public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-06-16 19:34 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-06-16 19:34 UTC (permalink / raw
  To: gentoo-commits

commit:     4f14cecc16899c822f3bc0eae536c80b0b62888b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 16 19:33:58 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Jun 16 19:34:11 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4f14cecc

www-client/chromium: disable xml catalogs

Bug: https://bugs.gentoo.org/653078
Package-Manager: Portage-2.3.40_p14, Repoman-2.3.9_p246

 www-client/chromium/chromium-69.0.3452.0.ebuild    |  1 +
 .../files/chromium-disable_xml_catalogs.patch      | 34 ++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/www-client/chromium/chromium-69.0.3452.0.ebuild b/www-client/chromium/chromium-69.0.3452.0.ebuild
index fa806ad8d2d..f6ce8e32881 100644
--- a/www-client/chromium/chromium-69.0.3452.0.ebuild
+++ b/www-client/chromium/chromium-69.0.3452.0.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-stdint.patch"
 	"${FILESDIR}/chromium-ffmpeg-r1.patch"
 	"${FILESDIR}/chromium-libwebp-shim-r0.patch"
+	"${FILESDIR}/chromium-disable_xml_catalogs.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-disable_xml_catalogs.patch b/www-client/chromium/files/chromium-disable_xml_catalogs.patch
new file mode 100644
index 00000000000..7aff36c782a
--- /dev/null
+++ b/www-client/chromium/files/chromium-disable_xml_catalogs.patch
@@ -0,0 +1,34 @@
+--- a/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
++++ b/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
+@@ -28,6 +28,10 @@
+ 
+ #include <libxml/parser.h>
+ #include <libxml/parserInternals.h>
++#include <libxml/xmlversion.h>
++#if defined(LIBXML_CATALOG_ENABLED)
++#include <libxml/catalog.h>
++#endif
+ #include <libxslt/xslt.h>
+ 
+ #include <memory>
+@@ -538,10 +542,6 @@
+ static bool ShouldAllowExternalLoad(const KURL& url) {
+   String url_string = url.GetString();
+ 
+-  // libxml should not be configured with catalogs enabled, so it
+-  // should not be asking to load default catalogs.
+-  CHECK(!IsLibxmlDefaultCatalogFile(url));
+-
+   // The most common DTD. There isn't much point in hammering www.w3c.org by
+   // requesting this URL for every XHTML document.
+   if (url_string.StartsWithIgnoringASCIICase("http://www.w3.org/TR/xhtml"))
+@@ -648,6 +648,9 @@
+   if (did_init)
+     return;
+ 
++#if defined(LIBXML_CATALOG_ENABLED)
++  xmlCatalogSetDefaults(XML_CATA_ALLOW_NONE);
++#endif
+   xmlInitParser();
+   xmlRegisterInputCallbacks(MatchFunc, OpenFunc, ReadFunc, CloseFunc);
+   xmlRegisterOutputCallbacks(MatchFunc, OpenFunc, WriteFunc, CloseFunc);


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-11-12 14:43 Matt Jolly
  0 siblings, 0 replies; 149+ messages in thread
From: Matt Jolly @ 2024-11-12 14:43 UTC (permalink / raw
  To: gentoo-commits

commit:     2d0658830c67cd92055e0eccbcb1d5b6b8753179
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 12 14:30:52 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Tue Nov 12 14:43:26 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d065883

www-client/chromium: add 132.0.6821.2

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/Manifest                       |    3 +
 www-client/chromium/chromium-132.0.6821.2.ebuild   | 1430 ++++++++++++++++++++
 .../chromium-132-bindgen-custom-toolchain.patch    |  104 ++
 3 files changed, 1537 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 17ec82dbaacf..9e3d30dc1feb 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -12,10 +12,13 @@ DIST chromium-131.0.6778.24-testdata.tar.xz 82892 BLAKE2B d94052ef8d90faaa3936dd
 DIST chromium-131.0.6778.24.tar.xz 4731348936 BLAKE2B 2b4018828896e7e28bc4aedc78bbbd5c4f3515c6e1aa4c1197a7379864a0f65a3bceaf9e98e65b586dd12d000c7ca1ccfbd8b272556ccfd128c40c091f23337a SHA512 8c73e7a689df53481f2f4058a42285bf4a3e22193959892f7a0a31a0cdbc16ab1bb2f264ca6d849f769952d68a926ad42e52ad159a83fd690b20380d564a23a0
 DIST chromium-131.0.6778.33-gentoo.tar.xz 4749423140 BLAKE2B b6c8988d2a69724bf57150fa55549a91cf219ad5d8f56d6cb6f82d53f05459f40b273a98b1dca7ff10497635b9523de532f71f41f5e256d6e7cc2ff6ed2107a1 SHA512 f3c098a1c018a81dbf1051569a6d9ef5dfde73836c0666e8e387bcd0268add47e6952ac6f37cca2880829a3f9eef4e31e0e2903a104735108149df7615df024c
 DIST chromium-131.0.6778.33-testdata-gentoo.tar.xz 83508 BLAKE2B deb0049943e725e41b6ea40f61b43a9713ca25a900de098acaa457e9a49609d8b02f967d599ca68eb8089d98abfc78325cd265a183a045f83de21fba67489884 SHA512 87e08849514e34a22b54e580c9639b21edf5f574d3c1a25decd3db373215de214da776685ad291762a0f2b33584720cdf52fff64ed492d18955150b00861a2df
+DIST chromium-132.0.6821.2-gentoo.tar.xz 4754158496 BLAKE2B 2fb502164874d5e0ca87be465bc4737e73fc415f5111a30d4b6c5cc8c865ac1249aa394bcf31e555ae187ef11c333e5ad9440914fe3f0a33507303f9edbc6dac SHA512 b0f6ef94b201effef49a68af709f34e8c5bcfe5a4ada28605e03d9ef21b90827f548b11c4125c681d57ef517ef84690d162d36f29ee628948d8fd8ca11e279f1
+DIST chromium-132.0.6821.2-testdata-gentoo.tar.xz 84172 BLAKE2B f45a5acf1c2b355eee4af59a276f2299cf8b7530daef83ebfa79079e8d772777b55628a28753f5f7f225ad1b35032f4f5f0b50d490c8a5e865f4edd37a484a6c SHA512 af0a6b6e21cdcc6413d47c5714a733bf9c4896468ee98eeeec6a91b16bff1295c8879dc82c953a23f0879b2e26b6e150df153702accd9ea05f4d27fdcabcb38c
 DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b
 DIST chromium-patches-129.tar.bz2 5071 BLAKE2B 080e1af8b0560a3c5365674e7c8d592310bbd2e273311b775b8112e410d91ccd48f170adbcf77cff566ad32de196217410663ac7b9e7e65544b6730fb1890aca SHA512 0a5bbc07dc9085b07332d5c6dd74940a9d55c4d0677f5603e75763ba54156f43664839d438f350bc86f3efc85aae452476e7f7040e06e60727847b156d1f0ab9
 DIST chromium-patches-130-2.tar.bz2 10151 BLAKE2B b46515a3e01153d8c4e5c3ee1f6e9f905265bf88b698d46c8ceed0f90d36a057b8bb30a860e8d934bf0b85f9c0a671bef2c9a00349228fa076b7aec37ff62ca0 SHA512 e1ecca666c3998ee285426751be3220a5b67a057f2c92b1f45c7b786efb8d0b0e1d49ba70471fa74155f79f22811d240af636f61007191756c9981b53d3b23de
 DIST chromium-patches-131-1.tar.bz2 4932 BLAKE2B 72006a6d751ae1207352547cdeef87f8cc9f9639283238da201d879c6fcd0f8bc499669cb030d8b4c2216fcd2730de46b0a071007b3d69a2bbdd22ba38bcd279 SHA512 11d7f861c007e9e28e5192fb354940180aea0e01e6e8ae77547e2dffd7b541b11f1acfe0fd0c8b6b4cbfc6c39ddfa79c8c08db42c1292ad329d49027d1406fc3
+DIST chromium-patches-132.tar.bz2 5040 BLAKE2B d5bd84dd90b395c6a15135637f51f931c72a2f301b1c24e9b938c744f2767fa36857b8edfdf5c44cf085a1efcb40475401fec226ce43446442f32fb174b55355 SHA512 29833b306a34ab6562ee58eb03669818da7235cd36666b27d829bcbd3c4d0035a530fb6be1c33cf88c1c11d43e68e3781f9b9602c0c004e7a37ffa69f9ee17c7
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium-testfonts-f26f29c9d3.tar.gz 32750602 BLAKE2B 498f8b2e0811c98dc3d4aaa75559e69c782afb4bd12328cfdb7244ddba5cae7ee47becd27b2549d7b36bed417601f70f4c192934b0f08496cef1547d0502d93c SHA512 96b090446862997c8134e2971f0e38793ecc1208d547e554c9b651ccfb4127c4de86754903fea57a7292a2823c45117bae0ec13ed87aed20c248fb779579fbde

diff --git a/www-client/chromium/chromium-132.0.6821.2.ebuild b/www-client/chromium/chromium-132.0.6821.2.ebuild
new file mode 100644
index 000000000000..3c992b2d2609
--- /dev/null
+++ b/www-client/chromium/chromium-132.0.6821.2.ebuild
@@ -0,0 +1,1430 @@
+# Copyright 2009-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# PACKAGING NOTES
+
+# This uses a gentoo-created tarball due to Google CI Failures.
+# Use 132 as a base for new official tarballs.
+
+GN_MIN_VER=0.2165
+# chromium-tools/get-chromium-toolchain-strings.py
+TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
+
+VIRTUALX_REQUIRED="pgo"
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+LLVM_COMPAT=( 18 19 )
+PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://www.chromium.org/"
+PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
+PATCH_V="${PV%%\.*}"
+SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz -> ${P}-gentoo.tar.xz
+		https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+	test? (
+		https://chromium-tarballs.distfiles.gentoo.org/${P}-testdata.tar.xz -> ${P}-testdata-gentoo.tar.xz
+		https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
+	)
+	ppc64? (
+		https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/dev"
+# Dev exists mostly to give devs some breathing room for beta/stable releases;
+# it shouldn't be keyworded but adventurous users can select it.
+if [[ ${SLOT} != "0/dev" ]]; then
+	KEYWORDS="~amd64 ~arm64"
+fi
+
+IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
+IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
+IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine"
+RESTRICT="
+	!bindist? ( bindist )
+	!test? ( test )
+"
+
+REQUIRED_USE="
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+	qt6? ( qt5 )
+	screencast? ( wayland )
+	ffmpeg-chromium? ( bindist proprietary-codecs )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-73.0:= )
+	>=dev-libs/libxml2-2.12.4:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	system-zstd? ( >=app-arch/zstd-1.5.5:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-base/xorg-proto:=
+			x11-libs/libX11:=
+			x11-libs/libxcb:=
+			x11-libs/libXext:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	bindist? (
+		!ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] )
+		ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} )
+	)
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
+	)
+	$(llvm_gen_dep '
+		sys-devel/clang:${LLVM_SLOT}
+		sys-devel/llvm:${LLVM_SLOT}
+		sys-devel/lld:${LLVM_SLOT}
+	')
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+	)
+	>=dev-util/bindgen-0.68.0
+	>=dev-build/gn-${GN_MIN_VER}
+	dev-build/ninja
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+	# Check build requirements: bugs #471810, #541816, #914220
+	# We're going to start doing maths here on the size of an unpacked source tarball,
+	# this should make updates easier as chromium continues to balloon in size.
+	local BASE_DISK=24
+	local EXTRA_DISK=1
+	local CHECKREQS_MEMORY="4G"
+	tc-is-cross-compiler && EXTRA_DISK=2
+	if tc-is-lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		tc-is-cross-compiler && EXTRA_DISK=4
+		use pgo && EXTRA_DISK=8
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags; then
+			EXTRA_DISK=13
+		fi
+		CHECKREQS_MEMORY="16G"
+	fi
+	CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G"
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+	fi
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set."
+		done
+	fi
+
+	if ! use bindist && use ffmpeg-chromium; then
+		ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set."
+	fi
+}
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+
+		# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
+		# We'll set these to clang here then use llvm-utils functions to very explicitly set these
+		# to a sane value.
+		# This is effectively the 'force-clang' path if GCC support is re-added.
+		# TODO: check if the user has already selected a specific impl via make.conf and respect that.
+		use_lto="false"
+		if tc-is-lto; then
+			use_lto="true"
+			# We can rely on GN to do this for us; anecdotally without this builds
+			# take significantly longer with LTO enabled and it doesn't hurt anything.
+			filter-lto
+		fi
+
+		if [ "$use_lto" = "false" ] && use official; then
+			einfo "USE=official selected and LTO not detected."
+			einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
+			einfo "and to be consistent with the upstream \"official\" build optimisations."
+		fi
+
+		if [ "$use_lto" = "false" ] && use test; then
+			die "Tests require CFI which requires LTO"
+		fi
+
+		export use_lto
+
+		# 936858
+		if tc-ld-is-mold; then
+			eerror "Your toolchain is using the mold linker."
+			eerror "This is not supported by Chromium."
+			die "Please switch to a different linker."
+		fi
+
+		# Forcing clang; user choice respected by llvm_slot_x USE
+		AR=llvm-ar
+		CPP="${CHOST}-clang++ -E"
+		NM=llvm-nm
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+
+		if tc-is-cross-compiler; then
+			use pgo && die "The pgo USE flag cannot be used when cross-compiling"
+			CPP="${CBUILD}-clang++ -E"
+		fi
+
+		llvm-r1_pkg_setup
+		rust_pkg_setup
+
+		# I hate doing this but upstream Rust have yet to come up with a better solution for
+		# us poor packagers. Required for Split LTO units, which are required for CFI.
+		export RUSTC_BOOTSTRAP=1
+
+		# Users should never hit this, it's purely a development convenience
+		if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+			die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_unpack() {
+	unpack ${P}-gentoo.tar.xz
+	unpack chromium-patches-${PATCH_V}.tar.bz2
+
+	use pgo && unpack chromium-profiler-0.2.tar
+
+	if use test; then
+		# A new testdata tarball is available for each release; but testfonts tend to remain stable
+		# for the duration of a release.
+		# This unpacks directly into/over ${WORKDIR}/${P} so we can just use `unpack`.
+		unpack ${P}-testdata-gentoo.tar.xz
+		# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
+		local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts"
+		local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
+		tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
+	fi
+
+	if use ppc64; then
+		unpack chromium_${PATCHSET_PPC64}.debian.tar.xz
+		unpack chromium-ppc64le-gentoo-patches-1.tar.xz
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc"
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-131-unbundle-icu-target.patch"
+		"${FILESDIR}/chromium-131-oauth2-client-switches.patch"
+		"${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch"
+	)
+
+	PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" )
+	# We can't use the bundled compiler builtins with the system toolchain
+	# `grep` is a development convenience to ensure we fail early when google changes something.
+	local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {"
+	grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins"
+	sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+		PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" )
+	fi
+
+	# This is a nightly option that does not exist any current release
+	# https://github.com/rust-lang/rust/commit/389a399a501a626ebf891ae0bb076c25e325ae64
+	if ver_test ${RUST_SLOT} -le "1.82.0"; then
+		sed '/rustflags = \[ "-Zdefault-visibility=hidden" \]/d' -i build/config/gcc/BUILD.gn ||
+			die "Failed to remove default visibility nightly option"
+	fi
+
+	default
+
+	rm third_party/node/linux/node-linux-x64/bin/node || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	# remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
+	# whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/volk
+		third_party/anonymous_tokens
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/bidimapper
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crabbyavif
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/d3
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/json5
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+		third_party/devtools-frontend/src/front_end/third_party/third-party-web
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/front_end/third_party/web-vitals
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fast_float
+		third_party/fdlibm
+		third_party/ffmpeg
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/highway
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/ink_stroke_modeler/src/ink_stroke_modeler
+		third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal
+		third_party/ink/src/ink/brush
+		third_party/ink/src/ink/color
+		third_party/ink/src/ink/geometry
+		third_party/ink/src/ink/rendering
+		third_party/ink/src/ink/rendering/skia/common_internal
+		third_party/ink/src/ink/rendering/skia/native
+		third_party/ink/src/ink/rendering/skia/native/internal
+		third_party/ink/src/ink/strokes
+		third_party/ink/src/ink/types
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/lens_server_proto
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/SVT-AV1
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libc++
+		third_party/llvm-libc
+		third_party/llvm-libc/src/shared/
+		third_party/libdrm
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/liburlpattern
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/libzip
+		third_party/lit
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/perfetto/protos/third_party/simpleperf
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private_membership
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/puffin
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/rapidhash
+		third_party/re2
+		third_party/rnnoise
+		third_party/rust
+		third_party/ruy
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/sentencepiece
+		third_party/sentencepiece/src/third_party/darts_clone
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/six
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/spirv-headers
+		third_party/spirv-tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/swiftshader/third_party/subzero
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite/src/third_party/xla/third_party/tsl
+		third_party/tflite/src/third_party/xla/xla/tsl/framework
+		third_party/tflite/src/third_party/xla/xla/tsl/lib/random
+		third_party/tflite/src/third_party/xla/xla/tsl/protobuf
+		third_party/tflite/src/third_party/xla/xla/tsl/util
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zlib/google
+		third_party/zxcvbn-cpp
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/utf8-decoder
+		v8/src/third_party/valgrind
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+
+	if use test; then
+		# tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}'
+		keeplibs+=(
+			third_party/breakpad/breakpad/src/processor
+			third_party/google_benchmark/src/include/benchmark
+			third_party/google_benchmark/src/src
+			third_party/perfetto/protos/third_party/pprof
+			third_party/test_fonts
+			third_party/test_fonts/fontconfig
+		)
+	fi
+
+	# USE=system-*
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+
+	if ! use system-zstd; then
+		keeplibs+=( third_party/zstd )
+	fi
+
+	# Arch-specific
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
+		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
+		# since we're not in a git repo
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
+	# and this enables us to hit them all at once.
+	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
+	whitelist_libs=(
+		net/third_party/quic
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/libjingle
+		third_party/mesa
+		third_party/skia/third_party/vulkan
+		third_party/vulkan
+	)
+	local not_found_libs=()
+	for lib in "${keeplibs[@]}"; do
+		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
+			not_found_libs+=( "${lib}" )
+		fi
+	done
+
+	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
+		eerror "The following \`keeplibs\` directories were not found in the source tree:"
+		for lib in "${not_found_libs[@]}"; do
+			eerror "  ${lib}"
+		done
+		die "Please update the ebuild."
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	einfo "Unbundling third-party libraries ..."
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed.
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# We already forced the "correct" clang via pkg_setup
+
+	if tc-is-cross-compiler; then
+		CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
+		CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
+		BUILD_AR=${AR}
+		BUILD_CC=${CC}
+		BUILD_CXX=${CXX}
+		BUILD_NM=${NM}
+	fi
+
+	strip-unsupported-flags
+
+	myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	# https://bugs.gentoo.org/918897#c32
+	append-ldflags -Wl,--undefined-version
+	myconf_gn+=" use_lld=true"
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# bindgen settings
+	# From 127, to make bindgen work, we need to provide a location for libclang.
+	# We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch
+	# rust_bindgen_root = directory with `bin/bindgen` beneath it.
+	myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
+
+	myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
+	# We don't need to set 'clang_base_bath' for anything in our build
+	# and it defaults to the google toolchain location. Instead provide a location
+	# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
+	myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
+
+	myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+	myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-zstd; then
+		gn_system_libraries+=( zstd )
+	fi
+
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
+	# drop the last line, then append the freetype line and a new curly brace to end the block
+	local freetype_gni="build/config/freetype/freetype.gni"
+	sed -i -e '$d' ${freetype_gni} || die
+	echo "  enable_freetype = true" >> ${freetype_gni} || die
+	echo "}" >> ${freetype_gni} || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# Allows distributions to link pulseaudio directly (DT_NEEDED) instead of
+	# using dlopen. This helps with automated detection of ABI mismatches and
+	# prevents silent errors.
+	if use pulseaudio; then
+		myconf_gn+=" link_pulseaudio=true"
+	fi
+
+	# Non-developer builds of Chromium (for example, non-Chrome browsers, or
+	# Chromium builds provided by Linux distros) should disable the testing config
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# The sysroot is the oldest debian image that chromium supports, we don't need it
+	myconf_gn+=" use_sysroot=false"
+
+	# Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi)
+	# instead of the system C++ library for C++ standard library support.
+	# default: true, but let's be explicit (forced since 120 ; USE removed 127).
+	myconf_gn+=" use_custom_libcxx=true"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	if use bindist ; then
+		# proprietary_codecs just forces Chromium to say that it can use h264/aac,
+		# the work is still done by ffmpeg. If this is set to no Chromium
+		# won't be able to load the codec even if the library can handle it
+		myconf_gn+=" proprietary_codecs=true"
+		myconf_gn+=" ffmpeg_branding=\"Chrome\""
+		# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
+		myconf_gn+=" is_component_ffmpeg=true"
+	else
+		ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+		myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+		myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+	fi
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		filter-flags "-g*"
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gn+=" treat_warnings_as_errors=false"
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	# We don't use the same clang version as upstream, and with -Werror
+	# we need to make sure that we don't get superfluous warnings.
+	append-flags -Wno-unknown-warning-option
+	if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Don't need nocompile checks and GN crashes with our config
+	myconf_gn+=" enable_nocompile_tests=false"
+
+	# 131 began laying the groundwork for replacing freetype with
+	# "Rust-based Fontations set of libraries plus Skia path rendering"
+	# We now need to opt-in
+	myconf_gn+=" enable_freetype=true"
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+			fi
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
+		fi
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	myconf_gn+=" use_thin_lto=${use_lto}"
+	myconf_gn+=" thin_lto_enable_optimizations=${use_lto}"
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		myconf_gn+=" is_cfi=${use_lto}"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium ..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests")
+
+	pax-mark m out/Release/chrome
+
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_test() {
+	# Initial list of tests to skip pulled from Alpine. Thanks Lauren!
+	# https://issues.chromium.org/issues/40939315
+	local skip_tests=(
+		'MessagePumpLibeventTest.NestedNotification*'
+		ClampTest.Death
+		OptionalTest.DereferencingNoValueCrashes
+		PlatformThreadTest.SetCurrentThreadTypeTest
+		RawPtrTest.TrivialRelocability
+		SafeNumerics.IntMaxOperations
+		StackTraceTest.TraceStackFramePointersFromBuffer
+		StringPieceTest.InvalidLengthDeath
+		StringPieceTest.OutOfBoundsDeath
+		ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
+		ValuesUtilTest.FilePath
+		# Gentoo-specific
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2
+		AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3
+		CharacterEncodingTest.GetCanonicalEncodingNameByAliasName
+		CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE
+		CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL
+		CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV
+		CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress
+		FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
+		FileTest.GetInfoForCreationTime
+		ICUStringConversionsTest.ConvertToUtf8AndNormalize
+		NumberFormattingTest.FormatPercent
+		PathServiceTest.CheckedGetFailure
+		PlatformThreadTest.CanChangeThreadType
+		RustLogIntegrationTest.CheckAllSeverity
+		StackCanary.ChangingStackCanaryCrashesOnReturn
+		StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
+		SysStrings.SysNativeMBAndWide
+		SysStrings.SysNativeMBToWide
+		SysStrings.SysWideToNativeMB
+		TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
+		ToolsSanityTest.BadVirtualCallNull
+		ToolsSanityTest.BadVirtualCallWrongType
+	)
+	local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
+	# test-launcher-bot-mode enables parallelism and plain output
+	./out/Release/base_unittests --test-launcher-bot-mode \
+		--test-launcher-jobs="$(makeopts_jobs)" \
+		--gtest_filter="${test_filter}" || die "Tests failed!"
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	newexe out/Release/chrome_sandbox chrome-sandbox
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+
+	if use bindist; then
+		# We built libffmpeg as a component library, but we can't distribute it
+		# with proprietary codec support. Remove it and make a symlink to the requested
+		# system library.
+		rm -f out/Release/libffmpeg.so \
+			|| die "Failed to remove bundled libffmpeg.so (with proprietary codecs)"
+		# symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium].
+		einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..."
+		dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \
+			/usr/$(get_libdir)/chromium-browser/libffmpeg.so
+	fi
+
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
+	fi
+
+	if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then
+		ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd"
+		ewarn "indicates that the Gentoo handbook was not followed to completion."
+		ewarn ""
+		ewarn "Chromium is known to behave unpredictably with this system configuration;"
+		ewarn "please complete the configuration of this system before logging any bugs."
+	fi
+}

diff --git a/www-client/chromium/files/chromium-132-bindgen-custom-toolchain.patch b/www-client/chromium/files/chromium-132-bindgen-custom-toolchain.patch
new file mode 100644
index 000000000000..f0cf20a50837
--- /dev/null
+++ b/www-client/chromium/files/chromium-132-bindgen-custom-toolchain.patch
@@ -0,0 +1,104 @@
+From 84b3b8335f7efbb8ed5ab9c9a260ea4f5d77192b Mon Sep 17 00:00:00 2001
+From: Matt Jolly <kangie@gentoo.org>
+Date: Mon, 11 Nov 2024 20:52:48 +1000
+Subject: [PATCH] Make bindgen wrapper work with unbundled toolchain
+
+The `run_bindgen.py` wrapper takes a --libclang-path option
+and uses it to set the appropriate environment variable.
+
+This is currently hardcoded to use libclang shipped alongside
+bindgen (in our rust toolchain), but distributions may want to
+override this and use a system path.
+
+Additionally enable distros to feed in appropriate library paths.
+--- a/build/config/rust.gni
++++ b/build/config/rust.gni
+@@ -60,6 +60,17 @@ declare_args() {
+   # the bindgen exectuable).
+   rust_bindgen_root = "//third_party/rust-toolchain"
+ 
++  # Directory under which to find one of `libclang.{dll,so}` (a `lib[64]` or
++  # `bin` directory containing the libclang shared library).
++  # We don't need to worry about multlib, but specify the full path here
++  # in case a distribution does.
++  if (host_os == "win") {
++    bindgen_libclang_path = "//third_party/rust-toolchain/bin"
++  } else {
++    bindgen_libclang_path = "//third_party/rust-toolchain/lib"
++  }
++
++
+   # If you're using a Rust toolchain as specified by rust_sysroot_absolute,
+   # set this to the output of `rustc -V`. Changing this string will cause all
+   # Rust targets to be rebuilt, which allows you to update your toolchain and
+--- a/build/rust/rust_bindgen.gni
++++ b/build/rust/rust_bindgen.gni
+@@ -17,13 +17,13 @@ if (host_os == "win") {
+   _bindgen_path = "${_bindgen_path}.exe"
+ }
+ 
+-# On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
+-# ../lib.
+-_libclang_path = rust_bindgen_root
+-if (host_os == "win") {
+-  _libclang_path += "/bin"
++if (clang_base_path != default_clang_base_path && custom_toolchain == "//build/toolchain/linux/unbundle:default") {
++  # Assume that the user has set this up properly, including handling multilib
++  _clang_libpath = clang_base_path + "/include"
++  _clang_ld_libpath  = bindgen_libclang_path
+ } else {
+-  _libclang_path += "/lib"
++  _clang_libpath = clang_base_path + "/lib/clang/" + clang_version
++  _clang_ld_libpath = clang_base_path + "/lib"
+ }
+ 
+ # Template to build Rust/C bindings with bindgen.
+--- a/build/rust/rust_bindgen_generator.gni
++++ b/build/rust/rust_bindgen_generator.gni
+@@ -151,7 +151,7 @@ template("rust_bindgen_generator") {
+       "--output",
+       rebase_path(output_file, root_build_dir),
+       "--libclang-path",
+-      rebase_path(_libclang_path, root_build_dir),
++      rebase_path(bindgen_libclang_path, root_build_dir),
+     ]
+ 
+     if (_wrap_static_fns) {
+@@ -172,7 +172,7 @@ template("rust_bindgen_generator") {
+       # point to.
+       args += [
+         "--ld-library-path",
+-        rebase_path(clang_base_path + "/lib", root_build_dir),
++        rebase_path(bindgen_libclang_path, root_build_dir),
+       ]
+     }
+ 
+@@ -215,9 +215,7 @@ template("rust_bindgen_generator") {
+     # says the wrong thing. We point it to our clang's resource dir which will
+     # make it behave consistently with our other command line flags and allows
+     # system headers to be found.
+-    clang_resource_dir =
+-        rebase_path(clang_base_path + "/lib/clang/" + clang_version,
+-                    root_build_dir)
++    clang_resource_dir = rebase_path(clang_base_path + "/include", root_build_dir)
+     args += [
+       "-resource-dir",
+       clang_resource_dir,
+@@ -238,6 +236,15 @@ template("rust_bindgen_generator") {
+       }
+     }
+ 
++    if (custom_toolchain == "//build/toolchain/linux/unbundle:default") {
++      # We need to pass the path to the libstdc++ headers to bindgen so that it
++      # can find them when parsing C++ headers.
++      args += [
++        "-I",
++        rebase_path(clang_base_path + "/include/", root_build_dir),
++      ]
++    }
++
+     if (is_win) {
+       # On Windows we fall back to using system headers from a sysroot from
+       # depot_tools. This is negotiated by python scripts and the result is
+-- 
+2.47.0


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-10-12 11:05 Matt Jolly
  0 siblings, 0 replies; 149+ messages in thread
From: Matt Jolly @ 2024-10-12 11:05 UTC (permalink / raw
  To: gentoo-commits

commit:     1984701bae3c8aec610e99d39d60e5ee68945fd1
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 12 08:19:57 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sat Oct 12 11:04:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1984701b

www-client/chromium: add 131.0.6753.0

This commit brings the development channel into ::gentoo.
We may remove it if the overheads prove too much, and
it is not a priority for updates.

The hope is that the development slot, if kept up-to-date,
will provide additional time to adapt the ebuild to upcoming
major versions of Chromium before they hit stable and become
security issues.

Changes:
  - use `filter-lto` and rely on GN to appropriately set LTO options.
  - Remove `updater` force-disable - it shouldn't be enabled anyway.

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/Manifest                       |    4 +
 www-client/chromium/chromium-131.0.6753.0.ebuild   | 1511 ++++++++++++++++++++
 ...hromium-131-const-atomicstring-conversion.patch |   35 +
 .../chromium-131-oauth2-client-switches.patch      |   39 +
 .../files/chromium-131-unbundle-icu-target.patch   |   21 +
 5 files changed, 1610 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e8882c795925..b0e1a37dccd2 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -10,9 +10,13 @@ DIST chromium-130-clang.tar.xz 52892060 BLAKE2B 7d2619ab3762569fb77bce8ff19056ca
 DIST chromium-130-rust.tar.xz 115068636 BLAKE2B 7d2ed89372fce24de7432e62100767e3559c53733446bab003c80cc97d5a38168df0ff662f7e896548fecc9bc919b85b63001eb40e4fa1fbb63fb34545513d67 SHA512 9a310a65f61ea455cbcabf58fc4104b8c2a89f1c40f6b45b2105b701255d7f786ec950d76c99f3b8b77d3dd07262cc22cd30a78497a460aad689971129b9970d
 DIST chromium-130.0.6723.31.tar.xz 6603542588 BLAKE2B 1ae06108070a8aa389260903f864eaba19825ab8a7ba13c74e9a3e3dbbc634b81996b1f8253900fa59e666d5c2dc93496ce82d73a95471518afdf2c5f8020c66 SHA512 dead20ba072de356e0f838920e85f4f22fc7d3b872d748c865d11f6a43ce9b4c9650cda5535232c63ffbe27716adcb971447ff55d1d4d39e8cd01589b4e4ac53
 DIST chromium-130.0.6723.44.tar.xz 6606219548 BLAKE2B 26abfc352c11519f70537ddc1a395dfe0e51e6838e3f6c078fcffe8e6cdb638bea588a3eaf7666c115507c59d59d176704afaa4a3ea9d64f5116308e3c4b3bfc SHA512 a32575aa4166a8b5750724b60180f1b0a96ca0a0963766db7268d34516d4919438d5302f36d9d8221685579df8df7c989f94821d714fb9a6596c61c3c264db77
+DIST chromium-131-clang.tar.xz 52892060 BLAKE2B 7d2619ab3762569fb77bce8ff19056caa07b430e3ed830fdc4a6445611771ee30fd5e7c8bf90c994d5cacc57f516974b0c1c6d973cba52aae0d7fc6de0bde26c SHA512 3c1c4c771e6aa3a15395c16e899729b751cb9cecb27b77a11ccaf079b6a913ac2d5176a3c628d2270653f3d6c66f3d136304d9957dbf18b6632b787c6102e784
+DIST chromium-131-rust.tar.xz 115068636 BLAKE2B 7d2ed89372fce24de7432e62100767e3559c53733446bab003c80cc97d5a38168df0ff662f7e896548fecc9bc919b85b63001eb40e4fa1fbb63fb34545513d67 SHA512 9a310a65f61ea455cbcabf58fc4104b8c2a89f1c40f6b45b2105b701255d7f786ec950d76c99f3b8b77d3dd07262cc22cd30a78497a460aad689971129b9970d
+DIST chromium-131.0.6753.0.tar.xz 6639635464 BLAKE2B a87035be45d530e8b84eb19fc90d0f6aab95920a95b8e5bac88fa6558a2e1b8cc15691ba868b5345168ea0480f2b4f1a08ae1dd9c8b88ab3035d721897f21e2e SHA512 20fcdaa63e57b59575c858e51fad87ef21a0d76fcb7261e46c506329e4847e9fdb935e9b9d93d3d1d67f784a894f2bc817465a730a8483dfba02f142787018f3
 DIST chromium-patches-128.tar.bz2 5087 BLAKE2B b0321fb45390a282afeeeb8fb4d6014d6e6b708e6851235e0897ac77d524160b4d33476aa70532df45d0ccf233fee3b4028cd4d845667dc6a2a46ecebfeb6752 SHA512 978908d27dc6fc620209486a9ad7f73babde8710728960f44f2680445276516e59a85c08656af2663d9e197df45874f24a1f19f14a21798fbcf7c5a10bb19371
 DIST chromium-patches-129.tar.bz2 5071 BLAKE2B 080e1af8b0560a3c5365674e7c8d592310bbd2e273311b775b8112e410d91ccd48f170adbcf77cff566ad32de196217410663ac7b9e7e65544b6730fb1890aca SHA512 0a5bbc07dc9085b07332d5c6dd74940a9d55c4d0677f5603e75763ba54156f43664839d438f350bc86f3efc85aae452476e7f7040e06e60727847b156d1f0ab9
 DIST chromium-patches-130.tar.bz2 5658 BLAKE2B a940ee50634beee965bea45f6604b59e8d20a6c99b8e374be3debbd35ae08b34e035649367d171d56ca951a54102648c91d2189ca88a4495b16b1c96534fea46 SHA512 9f77eefdc7a65ce5e20a322cd5b17d6bb5ffc2d66fd83d73d5191f8c932f723cb905df8f3d04ed3d5fbab726b7bca38c7b5645cac37f7454eb9a3a2f4ef9a53b
+DIST chromium-patches-131.tar.bz2 5661 BLAKE2B 7217a1c153321775e1c2fd7712b3dbfa670ba1bd72cd66361040e63dcaa154ee0e28b1e3f6d11d152b69a71d965592a6c6e3ee1f843d4356c97317e260e227dc SHA512 b1c96b19fabfd1756343a6f7fbaf0396024c0e330743743b328e3a1d94c47d5f6b1431b60b4f8e870120d9911bc9558074dd9a7d9a6538bdf5e318669cbb85fe
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_128.0.6613.119-1raptor0~deb12u1.debian.tar.xz 8673272 BLAKE2B 0ae1ead2b8d0ce196d5d16e132194da12d3dde3b43c270f794630c3427d38aaac6c6a289ac64b4748354e9d4d20ae8597076b64a4b7a7e1225c66a9f86e9f7ff SHA512 c896f8f07aa44cd6950375b36fe89fc2780ff9867e01feab71100c8551b22d3c89c5ba9e80cffbad22ff8575d20fc782b70969a51c68384fd8de62a09c4ffdcf

diff --git a/www-client/chromium/chromium-131.0.6753.0.ebuild b/www-client/chromium/chromium-131.0.6753.0.ebuild
new file mode 100644
index 000000000000..e369af92eeb8
--- /dev/null
+++ b/www-client/chromium/chromium-131.0.6753.0.ebuild
@@ -0,0 +1,1511 @@
+# Copyright 2009-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# PACKAGING NOTES
+
+# Google roll their bundled Clang every two weeks, and the bundled Rust
+# is rolled regularly and depends on that. While we do our best to build
+# with system Clang, we will eventually hit the point where we need to use
+# the bundled Clang due to the use of prerelease features. We've been lucky
+# enough so far that this hasn't been an issue.
+# We use llvm-utils.eclass directly due to chromium's inherent Googliness.
+
+# GN is bundled with Chromium, but we always use the system version. Remember to
+# check for upstream changes to GN and update ebuild (and version below) as required.
+
+# For binhost users, if USE=bindist is set, we configure Chromium in a way that it is able
+# to use proprietary codecs, and so that ffmpeg is an external component (libffmpeg.so),
+# then we remove ffmpeg from the image to ensure that the built package is distributable
+# (i.e. we don't owe royalties). A suitable libffmpeg.so is symlinked in its place;
+# as a result of this, ffmpeg[chromium] or ffmpeg-chromium must be installed on the system.
+
+# For non-binhost builds, we build the bundled ffmpeg and enable proprietary codecs because there's
+# no reason not to. Todo: Re-enable USE=system-ffmpeg.
+
+GN_MIN_VER=0.2200
+RUST_MIN_VER=1.78.0
+# chromium-tools/get-chromium-toolchain-strings.sh
+GOOGLE_CLANG_VER=llvmorg-20-init-3847-g69c43468-28
+# Upstream this is -3 but google haven't published the chromium-dev rust toolchain.
+GOOGLE_RUST_VER=009e73825af0e59ad4fc603562e038b3dbd6593a-2
+
+: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
+
+VIRTUALX_REQUIRED="pgo"
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+# While prerelease llvm is actually used in the google build, until we have a
+# sane way to select 'rust built with this llvm slot' that isn't stable and testing
+# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
+LLVM_COMPAT=( 17 18 )
+PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://www.chromium.org/"
+PATCHSET_PPC64="128.0.6613.84-1raptor0~deb12u1"
+PATCH_V="${PV%%\.*}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	system-toolchain? (
+		https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+	)
+	!system-toolchain? (
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${GOOGLE_CLANG_VER}.tar.xz
+			-> chromium-${PV%%\.*}-clang.tar.xz
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${GOOGLE_RUST_VER}-${GOOGLE_CLANG_VER%???}.tar.xz
+			-> chromium-${PV%%\.*}-rust.tar.xz
+	)
+	ppc64? (
+		https://quickbuild.io/~raptor-engineering-public/+archive/ubuntu/chromium/+files/chromium_${PATCHSET_PPC64}.debian.tar.xz
+		https://deps.gentoo.zip/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/dev"
+# Dev exists mostly to give devs some breathing room for beta/stable releases; it shouldn't be keyworded but adventurous users can select it.
+if [[ ${SLOT} == "0/dev" ]]; then
+	KEYWORDS=""
+else
+	KEYWORDS="~amd64 ~arm64"
+fi
+
+IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
+IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
+IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine"
+RESTRICT="!bindist? ( bindist )"
+
+REQUIRED_USE="
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+	qt6? ( qt5 )
+	screencast? ( wayland )
+	ffmpeg-chromium? ( bindist proprietary-codecs )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-73.0:= )
+	>=dev-libs/libxml2-2.12.4:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	system-zstd? ( >=app-arch/zstd-1.5.5:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-base/xorg-proto:=
+			x11-libs/libX11:=
+			x11-libs/libxcb:=
+			x11-libs/libXext:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	bindist? (
+		!ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] )
+		ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} )
+	)
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+	echo "virtual/rust:0/llvm-${1}[profiler(-)]"
+	echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
+}
+
+# Parse LLVM_COMPAT and generate a usedep for each version
+depend_clang_llvm_versions() {
+	if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
+		depend_clang_llvm_version ${#LLVM_COMPAT[0]}
+	else
+		echo "|| ("
+		for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
+			echo "("
+			depend_clang_llvm_version ${LLVM_COMPAT[i]}
+			echo ")"
+		done
+		echo ")"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
+	)
+	system-toolchain? (
+		$(depend_clang_llvm_versions)
+		pgo? (
+			>=dev-python/selenium-3.141.0
+			>=dev-util/web_page_replay_go-20220314
+		)
+		>=dev-util/bindgen-0.68.0
+	)
+	>=dev-build/gn-${GN_MIN_VER}
+	dev-build/ninja
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+	# Check build requirements: bugs #471810, #541816, #914220
+	# We're going to start doing maths here on the size of an unpacked source tarball,
+	# this should make updates easier as chromium continues to balloon in size.
+	local BASE_DISK=24
+	local EXTRA_DISK=1
+	local CHECKREQS_MEMORY="4G"
+	tc-is-cross-compiler && EXTRA_DISK=2
+	if tc-is-lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		tc-is-cross-compiler && EXTRA_DISK=4
+		use pgo && EXTRA_DISK=8
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags; then
+			EXTRA_DISK=13
+		fi
+		CHECKREQS_MEMORY="16G"
+	fi
+	CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G"
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+	fi
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set."
+		done
+	fi
+
+	if ! use bindist && use ffmpeg-chromium; then
+		ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set."
+	fi
+}
+
+# Chromium should build with any version of clang that we support
+# but we may need to pick the "best" one for a build (highest installed,
+# rust is built against it, etc.)
+# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
+# and output the _highest_ slot that is actually available on a system.
+chromium_pick_llvm_slot() {
+	# LLVM_COMPAT is always going to be oldest to newest (or one value)
+	# let's flip it and check from newest to oldest and return the first one we find.
+	local slot
+	for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
+		slot=${LLVM_COMPAT[i]}
+		if has_version "sys-devel/clang:${slot}" && \
+			has_version "sys-devel/llvm:${slot}" && \
+			has_version "sys-devel/lld:${slot}" && \
+			has_version "virtual/rust:0/llvm-${slot}" && \
+			( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
+
+			echo "${slot}"
+			return
+		fi
+	done
+
+	die_msg="
+No suitable clang/llvm/lld slot found.
+Slots checked: ${LLVM_COMPAT[*]}.
+"
+	die "${die_msg}"
+}
+
+# We need the rust version in src_configure and pkg_setup
+chromium_extract_rust_version() {
+	[[ ${MERGE_TYPE} == binary ]] && return
+	local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
+	rustc_version=${rustc_version[0]#rust-bin-}
+	rustc_version=${rustc_version#rust-}
+
+	[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+	echo $rustc_version
+}
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+
+		if use system-toolchain; then
+			# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
+			# We'll set these to clang here then use llvm-utils functions to very explicitly set these
+			# to a sane value.
+			# This is effectively the 'force-clang' path if GCC support is re-added.
+			# TODO: check if the user has already selected a specific impl via make.conf and respect that.
+			if ! tc-is-lto && use official; then
+				einfo "USE=official selected and LTO not detected."
+				einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
+				einfo "and to be consistent with the upstream \"official\" build optimisations."
+			fi
+
+			use_lto="false"
+			if tc-is-lto; then
+				use_lto="true"
+				# We can rely on GN to do this for us; anecdotally without this builds
+				# take significantly longer with LTO enabled and it doesn't hurt anything.
+				# TODO: compare build time, memory and disk usage on several builds.
+				filter-lto
+			fi
+
+			export use_lto
+
+			# 936858
+			if tc-ld-is-mold; then
+				eerror "Your toolchain is using the mold linker."
+				eerror "This is not supported by Chromium."
+				die "Please switch to a different linker."
+			fi
+
+			LLVM_SLOT=$(chromium_pick_llvm_slot)
+			export LLVM_SLOT # used in src_configure for rust-y business
+			AR=llvm-ar
+			CPP="${CHOST}-clang++ -E"
+			NM=llvm-nm
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+
+			if tc-is-cross-compiler; then
+				use pgo && die "The pgo USE flag cannot be used when cross-compiling"
+				CPP="${CBUILD}-clang++ -E"
+			fi
+
+			# The llvm-r1_pkg_setup we have at home.
+			# We prepend the path _first_ to explicitly use the selected slot.
+			llvm_prepend_path "${LLVM_SLOT}"
+
+			llvm_fix_clang_version CC CPP CXX
+			llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
+			llvm_fix_tool_path READELF STRINGS STRIP
+
+			# Set LLVM_CONFIG to help Meson (bug #907965) but only do it
+			# for empty ESYSROOT (as a proxy for "are we cross-compiling?").
+			if [[ -z ${ESYSROOT} ]] ; then
+				llvm_fix_tool_path LLVM_CONFIG
+			fi
+
+			einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
+
+			local rustc_ver=$(chromium_extract_rust_version)
+			if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
+					eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
+					eerror "The currently selected version is ${rustc_ver}"
+					eerror "Please run \`eselect rust\` and select an appropriate Rust."
+					die "Selected Rust version is too old"
+			else
+					einfo "Using Rust ${rustc_ver} to build"
+			fi
+
+			# Chromium requires the Rust profiler library while setting up its build environment.
+			# Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
+			# we'll just do a sanity check on the selected slot.
+			# The -bin always contains profiler support, so we only need to check for the non-bin version.
+			if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
+				local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
+				local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
+				if [[ -z "${profiler_lib}" ]]; then
+					eerror "Rust ${rustc_ver} is missing the profiler library."
+					eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
+					die "Please \`eselect\` a Rust slot that has the profiler."
+				fi
+			fi
+		fi
+
+		# Users should never hit this, it's purely a development convenience
+		if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+			die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_unpack() {
+	# In 126 Chromium upstream decided to change the way that the rust toolchain is packaged
+	# so now we get a fancy src_unpack function to ensure that we don't accidentally unpack
+	# one toolchain over the other. The addtional control over over unpacking also helps us
+	# ensure that GN doesn't try and use some bundled tool (like bindgen) instead of the system
+	# package by just not unpacking it unless we're using the bundled toolchain.
+	unpack ${P}.tar.xz
+	if use system-toolchain; then
+		unpack chromium-patches-${PATCH_V}.tar.bz2
+	else
+		unpack chromium-${PV%%\.*}-clang.tar.xz
+		local rust_dir="${WORKDIR}/rust-toolchain"
+		mkdir -p ${rust_dir} || die "Failed to create rust toolchain directory"
+		tar xf "${DISTDIR}/chromium-${PV%%\.*}-rust.tar.xz" -C ${rust_dir} || die "Failed to unpack rust toolchain"
+	fi
+
+	use pgo && unpack chromium-profiler-0.2.tar
+
+	if use ppc64; then
+		unpack chromium_${PATCHSET_PPC64}.debian.tar.xz
+		unpack chromium-ppc64le-gentoo-patches-1.tar.xz
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc"
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch"
+		"${FILESDIR}/chromium-131-unbundle-icu-target.patch"
+		"${FILESDIR}/chromium-131-oauth2-client-switches.patch"
+		"${FILESDIR}/chromium-131-const-atomicstring-conversion.patch"
+	)
+
+	if use system-toolchain; then
+		# The patchset is really only required if we're using the system-toolchain
+		PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" )
+		# We can't use the bundled compiler builtins with the system toolchain
+		# `grep` is a development convenience to ensure we fail early when google changes something.
+		local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {"
+		grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins"
+		sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn
+
+	else
+		mkdir -p third_party/llvm-build/Release+Asserts || die "Failed to bundle llvm"
+		ln -s "${WORKDIR}"/bin third_party/llvm-build/Release+Asserts/bin || die "Failed to symlink llvm bin"
+		ln -s "${WORKDIR}"/lib third_party/llvm-build/Release+Asserts/lib || die "Failed to symlink llvm lib"
+		echo "${GOOGLE_CLANG_VER}" > third_party/llvm-build/Release+Asserts/cr_build_revision || \
+			die "Failed to set clang version"
+		ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
+		cp "${WORKDIR}"/rust-toolchain/VERSION \
+			"${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
+	fi
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+		PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" )
+	fi
+
+	default
+
+	rm third_party/node/linux/node-linux-x64/bin/node || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/volk
+		third_party/anonymous_tokens
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/bidimapper
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crabbyavif
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/d3
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+		third_party/devtools-frontend/src/front_end/third_party/third-party-web
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/front_end/third_party/web-vitals
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fast_float
+		third_party/fdlibm
+		third_party/ffmpeg
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/highway
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/ink_stroke_modeler/src/ink_stroke_modeler
+		third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal
+		third_party/ink/src/ink/brush
+		third_party/ink/src/ink/color
+		third_party/ink/src/ink/geometry
+		third_party/ink/src/ink/rendering/skia/common_internal
+		third_party/ink/src/ink/rendering/skia/native
+		third_party/ink/src/ink/rendering/skia/native/internal
+		third_party/ink/src/ink/strokes
+		third_party/ink/src/ink/types
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/lens_server_proto
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/SVT-AV1
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libc++
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/liburlpattern
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/libzip
+		third_party/lit
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/perfetto/protos/third_party/simpleperf
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private_membership
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/puffin
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/rapidhash
+		third_party/re2
+		third_party/rnnoise
+		third_party/rust
+		third_party/ruy
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/sentencepiece
+		third_party/sentencepiece/src/third_party/darts_clone
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/six
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/spirv-headers
+		third_party/spirv-tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/swiftshader/third_party/subzero
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite/src/third_party/xla/third_party/tsl
+		third_party/tflite/src/third_party/xla/xla/tsl/framework
+		third_party/tflite/src/third_party/xla/xla/tsl/util
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zlib/google
+		third_party/zxcvbn-cpp
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/utf8-decoder
+		v8/src/third_party/valgrind
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+
+	# USE=system-*
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+
+	if ! use system-zstd; then
+		keeplibs+=( third_party/zstd )
+	fi
+
+	if ! use system-toolchain || [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == yes ]]; then
+			keeplibs+=( third_party/llvm )
+	fi
+
+	# Arch-specific
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
+		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
+		# since we're not in a git repo
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
+	# and this enables us to hit them all at once.
+	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
+	whitelist_libs=(
+		net/third_party/quic
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/libjingle
+		third_party/mesa
+		third_party/skia/third_party/vulkan
+		third_party/vulkan
+	)
+	local not_found_libs=()
+	for lib in "${keeplibs[@]}"; do
+		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
+			not_found_libs+=( "${lib}" )
+		fi
+	done
+
+	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
+		eerror "The following \`keeplibs\` directories were not found in the source tree:"
+		for lib in "${not_found_libs[@]}"; do
+			eerror "  ${lib}"
+		done
+		die "Please update the ebuild."
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	einfo "Unbundling third-party libraries ..."
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# We already forced the "correct" clang via pkg_setup
+	if use system-toolchain; then
+		if tc-is-cross-compiler; then
+			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_AR=${AR}
+			BUILD_CC=${CC}
+			BUILD_CXX=${CXX}
+			BUILD_NM=${NM}
+		fi
+
+		strip-unsupported-flags
+
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+		# https://bugs.gentoo.org/918897#c32
+		append-ldflags -Wl,--undefined-version
+		myconf_gn+=" use_lld=true"
+
+		# Make sure the build system will use the right tools, bug #340795.
+		tc-export AR CC CXX NM
+
+		myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+		if tc-is-cross-compiler; then
+			tc-export BUILD_{AR,CC,CXX,NM}
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+			myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+			# setup cups-config, build system only uses --libs option
+			if use cups; then
+				mkdir "${T}/cups-config" || die
+				cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+				export PATH="${PATH}:${T}/cups-config"
+			fi
+
+			# Don't inherit PKG_CONFIG_PATH from environment
+			local -x PKG_CONFIG_PATH=
+		else
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+		fi
+
+		# bindgen settings
+		# From 127, to make bindgen work, we need to provide a location for libclang.
+		# We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch
+		# rust_bindgen_root = directory with `bin/bindgen` beneath it.
+		myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
+
+		# from get_llvm_prefix
+		local prefix=${ESYSROOT}
+		[[ ${1} == -b ]] && prefix=${BROOT}
+		myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+		# We don't need to set 'clang_base_bath' for anything in our build
+		# and it defaults to the google toolchain location. Instead provide a location
+		# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
+		myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
+
+		# We need to provide this to GN in both the path to rust _and_ the version
+		local rustc_ver=$(chromium_extract_rust_version)
+		if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
+				myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
+		else
+				myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
+		fi
+		myconf_gn+=" rustc_version=\"${rustc_ver}\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-zstd; then
+		gn_system_libraries+=( zstd )
+	fi
+
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# Allows distributions to link pulseaudio directly (DT_NEEDED) instead of
+	# using dlopen. This helps with automated detection of ABI mismatches and
+	# prevents silent errors.
+	if use pulseaudio; then
+		myconf_gn+=" link_pulseaudio=true"
+	fi
+
+	# Non-developer builds of Chromium (for example, non-Chrome browsers, or
+	# Chromium builds provided by Linux distros) should disable the testing config
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# The sysroot is the oldest debian image that chromium supports, we don't need it
+	myconf_gn+=" use_sysroot=false"
+
+	# Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi)
+	# instead of the system C++ library for C++ standard library support.
+	# default: true, but let's be explicit (forced since 120 ; USE removed 127).
+	myconf_gn+=" use_custom_libcxx=true"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	if use bindist ; then
+		# proprietary_codecs just forces Chromium to say that it can use h264/aac,
+		# the work is still done by ffmpeg. If this is set to no Chromium
+		# won't be able to load the codec even if the library can handle it
+		myconf_gn+=" proprietary_codecs=true"
+		myconf_gn+=" ffmpeg_branding=\"Chrome\""
+		# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
+		myconf_gn+=" is_component_ffmpeg=true"
+	else
+		ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+		myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+		myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+	fi
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		filter-flags "-g*"
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gn+=" treat_warnings_as_errors=false"
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	# We don't use the same clang version as upstream, and with -Werror
+	# we need to make sure that we don't get superfluous warnings.
+	append-flags -Wno-unknown-warning-option
+	if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Don't need nocompile checks and GN crashes with our config
+	myconf_gn+=" enable_nocompile_tests=false"
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+			fi
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
+		fi
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	myconf_gn+=" use_thin_lto=${use_lto}"
+	myconf_gn+=" thin_lto_enable_optimizations=${use_lto}"
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Req's LTO; TODO: not compatible with -fno-split-lto-unit
+		# split-lto-unit can be enabled with RUSTC_BOOTSTRAP=1 (and an updated compiler patch),
+		# however I still got weird linking errors with CFI _and_ the split unit LTO OOMed after using 100G.
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium ..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	if ! use system-toolchain; then
+		QA_FLAGS_IGNORED="
+			usr/lib64/chromium-browser/chrome
+			usr/lib64/chromium-browser/chrome-sandbox
+			usr/lib64/chromium-browser/chromedriver
+			usr/lib64/chromium-browser/chrome_crashpad_handler
+			usr/lib64/chromium-browser/libEGL.so
+			usr/lib64/chromium-browser/libGLESv2.so
+			usr/lib64/chromium-browser/libVkICD_mock_icd.so
+			usr/lib64/chromium-browser/libVkLayer_khronos_validation.so
+			usr/lib64/chromium-browser/libqt5_shim.so
+			usr/lib64/chromium-browser/libvk_swiftshader.so
+			usr/lib64/chromium-browser/libvulkan.so.1
+		"
+	fi
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	newexe out/Release/chrome_sandbox chrome-sandbox
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+
+	if use bindist; then
+		# We built libffmpeg as a component library, but we can't distribute it
+		# with proprietary codec support. Remove it and make a symlink to the requested
+		# system library.
+		rm -f out/Release/libffmpeg.so \
+			|| die "Failed to remove bundled libffmpeg.so (with proprietary codecs)"
+		# symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium].
+		einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..."
+		dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \
+			/usr/$(get_libdir)/chromium-browser/libffmpeg.so
+	fi
+
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
+	fi
+
+	if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then
+		ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd"
+		ewarn "indicates that the Gentoo handbook was not followed to completion."
+		ewarn ""
+		ewarn "Chromium is known to behave unpredictably with this system configuration;"
+		ewarn "please complete the configuration of this system before logging any bugs."
+	fi
+}

diff --git a/www-client/chromium/files/chromium-131-const-atomicstring-conversion.patch b/www-client/chromium/files/chromium-131-const-atomicstring-conversion.patch
new file mode 100644
index 000000000000..52f746669b55
--- /dev/null
+++ b/www-client/chromium/files/chromium-131-const-atomicstring-conversion.patch
@@ -0,0 +1,35 @@
+From 403ee5b14df12c8ee3b3583177bbd30d930e9aaf Mon Sep 17 00:00:00 2001
+From: Matt Jolly <kangie@gentoo.org>
+Date: Sat, 12 Oct 2024 13:45:37 +1000
+Subject: [PATCH] Convert 'Const AtomicString' to 'const char *'.
+
+I don't know why this is suddenly required?
+--- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
++++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+@@ -323,7 +323,10 @@ void TextCodecICU::CreateICUConverter() const {
+   DCHECK(!converter_icu_);
+ 
+ #if defined(USING_SYSTEM_ICU)
+-  const char* name = encoding_.GetName();
++  //convert to WTF::String to use existing `const char *` dependent functions
++  WTF::String nameString = encoding_.GetName();
++  std::string nameUtf8 = nameString.Utf8();
++  const char* name = nameUtf8.c_str();
+   needs_gbk_fallbacks_ =
+       name[0] == 'G' && name[1] == 'B' && name[2] == 'K' && !name[3];
+ #endif
+@@ -448,7 +451,10 @@ String TextCodecICU::Decode(base::span<const uint8_t> data,
+   // <http://bugs.webkit.org/show_bug.cgi?id=17014>
+   // Simplified Chinese pages use the code A3A0 to mean "full-width space", but
+   // ICU decodes it as U+E5E5.
+-  if (!strcmp(encoding_.GetName(), "GBK")) {
++  // Convert AtomicString to String
++  WTF::String nameString = encoding_.GetName();
++  std::string nameUtf8 = nameString.Utf8();
++  if (!strcmp(nameUtf8.c_str(), "GBK")) {
+     if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030"))
+       resultString.Replace(0xE5E5, kIdeographicSpaceCharacter);
+     // Make GBK compliant to the encoding spec and align with GB18030
+-- 
+2.46.2
+

diff --git a/www-client/chromium/files/chromium-131-oauth2-client-switches.patch b/www-client/chromium/files/chromium-131-oauth2-client-switches.patch
new file mode 100644
index 000000000000..350775c93e18
--- /dev/null
+++ b/www-client/chromium/files/chromium-131-oauth2-client-switches.patch
@@ -0,0 +1,39 @@
+From 54951636d20fa798e148228118863b89a4580479 Mon Sep 17 00:00:00 2001
+From: Matt Jolly <kangie@gentoo.org>
+Date: Sat, 12 Oct 2024 12:40:16 +1000
+Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials -
+ 131 update
+
+131 moved a ton of things around; this is now in api_key_cache.cc
+
+Google doesn't let us bake in OAuth2 credentials, and for some time,
+Google sign-in has been broken. Arch dealt with this in March, and so
+did we to some degree, but in the last few months, our sign-in
+credentials have been broken. It appears that we actually did remove API
+credentials in March around Chrome 89, but they got added back, perhaps
+when rotating newer versions to replace older versions. Work around this
+by following Arch's lead: we remove the predefined credentials, as
+before, but also we patch Chromium so that people can use their own
+easily, using Arch's patch for that.
+--- a/google_apis/api_key_cache.cc
++++ b/google_apis/api_key_cache.cc
+@@ -214,14 +214,14 @@ ApiKeyCache::ApiKeyCache(const DefaultApiKeys& default_api_keys) {
+ 
+   std::string default_client_id = CalculateKeyValue(
+       default_api_keys.google_default_client_id,
+-      STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), nullptr,
++      STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), ::switches::kOAuth2ClientID,
+       std::string(), environment.get(), command_line, gaia_config,
+       default_api_keys.allow_override_via_environment,
+       default_api_keys.allow_unset_values);
+   std::string default_client_secret = CalculateKeyValue(
+       default_api_keys.google_default_client_secret,
+       STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(),
+-      nullptr, std::string(), environment.get(), command_line, gaia_config,
++      ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config,
+       default_api_keys.allow_override_via_environment,
+       default_api_keys.allow_unset_values);
+ 
+-- 
+2.46.2
+

diff --git a/www-client/chromium/files/chromium-131-unbundle-icu-target.patch b/www-client/chromium/files/chromium-131-unbundle-icu-target.patch
new file mode 100644
index 000000000000..618750f13f18
--- /dev/null
+++ b/www-client/chromium/files/chromium-131-unbundle-icu-target.patch
@@ -0,0 +1,21 @@
+From a665875b4013eed997bd042326a038e24f3296e7 Mon Sep 17 00:00:00 2001
+From: Matt Jolly <kangie@gentoo.org>
+Date: Thu, 10 Oct 2024 14:36:51 +1000
+Subject: [PATCH] unbundle: add missing icu target
+
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -65,6 +65,10 @@ group("icuuc_public") {
+   public_deps = [ ":icuuc" ]
+ }
+ 
++group("icui18n_hidden_visibility") {
++  public_deps = [ ":icuuc" ]
++}
++
+ shim_headers("icui18n_shim") {
+   root_path = "source/i18n"
+   headers = [
+-- 
+2.46.2
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-07-07  9:46 Matt Jolly
  0 siblings, 0 replies; 149+ messages in thread
From: Matt Jolly @ 2024-07-07  9:46 UTC (permalink / raw
  To: gentoo-commits

commit:     c1f57dfbd16e0b3de90e6c46f8e1fa7419b3723c
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Fri Jul  5 23:15:24 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sun Jul  7 09:42:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1f57dfb

www-client/chromium: add 127.0.6533.26

This release brings some major changes to the way that Chromium
is packaged in Gentoo. After masking GCC support since it broke beyond
the capabilities of the maintainers to fix in 120, changes
in 127 have made dependencies on LLVM stronger: in addition to
requiring LLVM for Rust we now directly depend on LLVM libraries for
bindgen.

As a result we're experimenting with completely dropping GCC support
from the ebuild. This isn't a decision that was made lightly, however
the advantages to going down this path make it very appealing:

- Our builds are closer to upstream (and nominally supportable)
- We don't need to maintain so many out-of-tree patches
  + We may actually be able to drop them entirely for most arches
- Ebuild logic is significantly simplified, making it easier to review
- Decreased maintainer hair-pulling.

The removed GCC support could be revisited if there is sufficient
interest, and as an added benefit the new, streamlined, and better
documented ebuild should provide a better basis for maintaining it.

One of the outcomes of this decision to double-down on LLVM support has
been the opportunity to properly select an implementation via upgrading
to the `llvm-r1` eclass, which also enables us to start trying to make
the Rust->LLVM dependency a bit more clear for our ebuild.

Notable changes:

- `llvm-r1` eclass
- Dropped GCC support
- Always bundled libcxx for stdlib
- GN/bindgen wrapper updated to work with system bindgen
  + needs upstreaming

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/Manifest                       |    4 +
 www-client/chromium/chromium-127.0.6533.26.ebuild  | 1358 ++++++++++++++++++++
 .../chromium-127-bindgen-custom-toolchain.patch    |  111 ++
 .../files/chromium-127-browser-ui-deps.patch       |   57 +
 4 files changed, 1530 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index bf863ee8a996..1f2d1a997914 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,7 +3,11 @@ DIST chromium-126-rust.tar.xz 150643432 BLAKE2B d9c827008a2fae07977628beccdf3cf4
 DIST chromium-126.0.6478.114.tar.xz 4167281776 BLAKE2B 4ca720b0280dc6f0aafb5da5d31f97d8d55faec9ac187fc7f3e16e447d147a6912b2b8f26247503390755146e42b32458e4c71a80e6a132cc456f414454ecf53 SHA512 49ca506eb7ac52cdfb5b491bff10deec46d62686feeb3392803eecd61a570ce6c9e6c97d61c79907aaaee39b6d32a4da399c92b8078dbdf2df097f37c757d286
 DIST chromium-126.0.6478.126.tar.xz 4166142564 BLAKE2B 4c709c3a02a01f6bef46309b4a2f3d8cd688007e6b69152a5119a098c98aa272e10ea1ebf418c75387d08e1b9dde75ad53eabc12cf860b288e732c9b974e6066 SHA512 4a86edb82ec530299f8298b7604a18efb5ccf6a6cde37950d7821a73b005b9e83805a0b7f36f2fa5b4f71e237bf70ec628c1864e4f81caa4333a5dc904fb3aab
 DIST chromium-126.0.6478.57.tar.xz 4162722444 BLAKE2B cc41d74916a81a1162aad8ae785e08423ca1c4a49b7b8cdfe0873efab3b67e90da4e240c8c564c77cb67466af6d7c6a61ca3acfa8aae227838060565c0fbb3a5 SHA512 e350cf34ddc7c010e6f2d87c3f8dbaa17f5dd448b10f07b6dd319e494f7d70c6caf3ef7e676de33ee1e05d602edfbae9bcf3807887ae74c32bc49a6db7aa79a7
+DIST chromium-127-clang.tar.xz 50869256 BLAKE2B a25c78c28e1a19bb251ce78831ff8aeea51f0ff0a3fcba4f57e14e676aadba38f248554a52d9f67da8c0ccf533ef9f60b4bbb26f8935914efa2b871444e61d8f SHA512 9033c2dd7dd217917caf3dbed52f72ded18fe81b431edd4ef82fe7c592f7b9fbf6d5d2c8f7ba4ebffb4994bef20579d30aea9dd1ad36db86bec5d0adb6eca062
+DIST chromium-127-rust.tar.xz 151082700 BLAKE2B 53b5e72724425ae97bbb22e128ca5e826a2db5fb49f615c5331cdf6d790c253d58061223ff9fbd7f4deecaa19668e7b905b0a661380f48ce74d7f66a9605be18 SHA512 a47fc0bdbf48da9c8c17c91d9dc1a4a3f09578e82199c0d5843dfb6188803161cdb98d065ee3f85ceaf78efd2c233397c325c4c9f2d19255f38734a81599404b
+DIST chromium-127.0.6533.26.tar.xz 6590894364 BLAKE2B 1806ba0d75aca8c9a6d491ff14401364d5429ad5fb2c3c605d2c7694492782007e5b584bf543f59fdc7732589871bf307503c9928b2da57121b54269cd0f6c30 SHA512 4a3a08ed6b3a0ba40597c99bf520112a92d2c92171ac8f3c13356b5ce7bfd6ba91473b69d4216b23757ac2ffc267aa34d18e77d21a6bbaabfe10c674ec791ace
 DIST chromium-patches-126.tar.bz2 4538 BLAKE2B c1f224015618ec908ef09d0c04a2243923371e2caeccd60d93747599fd1434b284291a5b4326008db21749cf78827d5a4b50d22fc805dcd3c1fd86303dc82729 SHA512 6692075adac0379b5f27d1023de1a051cf7f7f7138efd32dfc3af0d501b714142a16daf18022bb46d92218587f364f4dafe9f4aea24f6826e88b0e7cc2be7d0b
+DIST chromium-patches-127.tar.bz2 4545 BLAKE2B cd0221e74a886ad3fc598e92876021b847a92a587ddc66774357ccf06bdd14e23f8bfede9bbe6fd154af8cea570bfa6ee27a2ff393883bd314a7d1326c7260f5 SHA512 938926ecd406d96662a6ed6e9fab9efab156f5691e98c044c75c4d335075f61e80eae2cf3be9b626c01d3542c1785dd0fc63ac31e5cbf1555a8eca3c6aed8c56
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_124.0.6367.207-1raptor0~deb12u1.debian.tar.xz 587248 BLAKE2B 4c5a12b3e70be85b31d60d35d160281cbf8b93422169243f743fff25805bc7006ffeed5f95b415fb49e9cf4c3bf2c0a2d5ed10642d8f772df24cab1fe738125a SHA512 025ac185f27c66438a5eaf482120fded42d37403706fd012fbde1b6acf5c2e360bb2fb7723183d4883f66f36afe10167a2d919cde11735186a1a87b28ffaf9c6

diff --git a/www-client/chromium/chromium-127.0.6533.26.ebuild b/www-client/chromium/chromium-127.0.6533.26.ebuild
new file mode 100644
index 000000000000..f3ac63017ee6
--- /dev/null
+++ b/www-client/chromium/chromium-127.0.6533.26.ebuild
@@ -0,0 +1,1358 @@
+# Copyright 2009-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# PACKAGING NOTES
+
+# Google roll their bundled Clang every two weeks, and the bundled Rust
+# is rolled regularly and depends on that. While we do our best to build
+# with system Clang, we will eventually hit the point where we need to use
+# the bundled Clang due to the use of prerelease features. We've been lucky
+# enough so far that this hasn't been an issue.
+
+# GN is bundled with Chromium, but we always use the system version. Remember to
+# check for upstream changes to GN and update ebuild (and version below) as required.
+
+# For binhost users, if USE=bindist is set, we configure Chromium in a way that it is able
+# to use proprietary codecs, and so that ffmpeg is an external component (libffmpeg.so),
+# then we remove ffmpeg from the image to ensure that the built package is distributable
+# (i.e. we don't owe royalties). A suitable libffmpeg.so is symlinked in its place;
+# as a result of this, ffmpeg[chromium] or ffmpeg-chromium must be installed on the system.
+
+# For non-binhost builds, we build the bundled ffmpeg and enable proprietary codecs because there's
+# no reason not to. Todo: Re-enable USE=system-ffmpeg.
+
+GN_MIN_VER=0.2165
+RUST_MIN_VER=1.78.0
+# chromium-tools/get-chromium-toolchain-strings.sh
+GOOGLE_CLANG_VER=llvmorg-19-init-10646-g084e2b53-57
+GOOGLE_RUST_VER=32dd3795bce8b347fda786529cf5e42a813e0b7d-2
+
+: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
+
+VIRTUALX_REQUIRED="pgo"
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+# Since Google use prerelease llvm we can let any adventurous users try to build with prerelease
+# ebuilds; try to keep this up to date with the latest version in the tree.
+LLVM_COMPAT=( {17..18} )
+PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://www.chromium.org/"
+PATCHSET_PPC64="124.0.6367.207-1raptor0~deb12u1"
+PATCH_V="${PV%%\.*}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	system-toolchain? (
+		https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+	)
+	!system-toolchain? (
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${GOOGLE_CLANG_VER}.tar.xz
+			-> chromium-${PV%%\.*}-clang.tar.xz
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${GOOGLE_RUST_VER}-${GOOGLE_CLANG_VER%???}.tar.xz
+			-> chromium-${PV%%\.*}-rust.tar.xz
+	)
+	ppc64? (
+		https://quickbuild.io/~raptor-engineering-public/+archive/ubuntu/chromium/+files/chromium_${PATCHSET_PPC64}.debian.tar.xz
+		https://deps.gentoo.zip/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/beta"
+KEYWORDS="~amd64 ~arm64"
+IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
+IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +lto +official pax-kernel pgo +proprietary-codecs pulseaudio"
+IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine"
+RESTRICT="!bindist? ( bindist )"
+
+REQUIRED_USE="
+	!headless? ( || ( X wayland ) )
+	official? ( lto )
+	pgo? ( X !wayland )
+	qt6? ( qt5 )
+	screencast? ( wayland )
+	ffmpeg-chromium? ( bindist proprietary-codecs )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.12.4:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	system-zstd? ( >=app-arch/zstd-1.5.5:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	bindist? (
+		!ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] )
+		ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} )
+	)
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
+	)
+	system-toolchain? (
+		$(llvm_gen_dep '
+			sys-devel/clang:${LLVM_SLOT}
+			sys-devel/llvm:${LLVM_SLOT}
+			sys-devel/lld:${LLVM_SLOT}
+			virtual/rust:0/llvm-${LLVM_SLOT}[profiler(-)]
+			pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+		')
+		pgo? (
+			>=dev-python/selenium-3.141.0
+			>=dev-util/web_page_replay_go-20220314
+		)
+		dev-util/bindgen
+	)
+	>=dev-build/gn-${GN_MIN_VER}
+	dev-build/ninja
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+	# Check build requirements: bugs #471810, #541816, #914220
+	# We're going to start doing maths here on the size of an unpacked source tarball,
+	# this should make updates easier as chromium continues to balloon in size.
+	local BASE_DISK=22
+	local EXTRA_DISK=1
+	local CHECKREQS_MEMORY="4G"
+	tc-is-cross-compiler && EXTRA_DISK=2
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		tc-is-cross-compiler && EXTRA_DISK=4
+		use pgo && EXTRA_DISK=8
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags; then
+			EXTRA_DISK=13
+		fi
+		CHECKREQS_MEMORY="16G"
+	fi
+	CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G"
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+	fi
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set."
+		done
+	fi
+
+	if ! use bindist && use ffmpeg-chromium; then
+		ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set."
+	fi
+}
+
+pkg_setup() {
+	ewarn "PATH = ${PATH}"
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+
+		if use system-toolchain; then
+			# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
+			# We'll set these to clang here then let llvm-r1_pkg_setup reconfigure them to be
+			# specific to the selected slot.
+			# 935689 - call llvm-r1_pkg_setup once to make sure that PATH is set then again
+			# to make sure that CC and friends get updated appropriately.
+			llvm-r1_pkg_setup
+			AR=llvm-ar
+			CPP="${CHOST}-clang++ -E"
+			NM=llvm-nm
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+
+			if tc-is-cross-compiler; then
+				use pgo && die "The pgo USE flag cannot be used when cross-compiling"
+				CPP="${CBUILD}-clang++ -E"
+			fi
+
+			llvm-r1_pkg_setup
+
+		fi
+		# Users should never hit this, it's purely a development convenience
+		if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+			die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_unpack() {
+	# In 126 Chromium upstream decided to change the way that the rust toolchain is packaged
+	# so now we get a fancy src_unpack function to ensure that we don't accidentally unpack
+	# one toolchain over the other. The addtional control over over unpacking also helps us
+	# ensure that GN doesn't try and use some bundled tool (like bindgen) instead of the system
+	# package by just not unpacking it unless we're using the bundled toolchain.
+	unpack ${P}.tar.xz
+	if use system-toolchain; then
+		unpack chromium-patches-${PATCH_V}.tar.bz2
+	else
+		unpack chromium-${PV%%\.*}-clang.tar.xz
+		local rust_dir="${WORKDIR}/rust-toolchain"
+		mkdir -p ${rust_dir} || die "Failed to create rust toolchain directory"
+		tar xf "${DISTDIR}/chromium-${PV%%\.*}-rust.tar.xz" -C ${rust_dir} || die "Failed to unpack rust toolchain"
+	fi
+
+	use pgo && unpack chromium-profiler-0.2.tar
+
+	if use ppc64; then
+		unpack chromium_${PATCHSET_PPC64}.debian.tar.xz
+		unpack chromium-ppc64le-gentoo-patches-1.tar.xz
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-126-oauth2-client-switches.patch"
+		"${FILESDIR}/chromium-127-browser-ui-deps.patch"
+		"${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch"
+	)
+
+	# 127: test deps are broken for ui/lens with system ICU "//third_party/icu:icuuc_public"
+	sed -i '/source_set("unit_tests") {/,/}/d' \
+		chrome/browser/ui/lens/BUILD.gn || die "Failed to remove bad test target"
+	sed -i '/lens:unit_tests/d' chrome/test/BUILD.gn components/BUILD.gn \
+		|| die "Failed to remove dependencies on bad target"
+
+	if use system-toolchain; then
+		# The patchset is really only required if we're using the system-toolchain
+		PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" )
+		# We can't use the bundled compiler builtins
+		sed -i -e \
+			"/if (is_clang && toolchain_has_rust) {/,+2d" \
+			build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins"
+	else
+		mkdir -p third_party/llvm-build/Release+Asserts || die "Failed to bundle llvm"
+		ln -s "${WORKDIR}"/bin third_party/llvm-build/Release+Asserts/bin || die "Failed to symlink llvm bin"
+		ln -s "${WORKDIR}"/lib third_party/llvm-build/Release+Asserts/lib || die "Failed to symlink llvm lib"
+		echo "${GOOGLE_CLANG_VER}" > third_party/llvm-build/Release+Asserts/cr_build_revision || \
+			die "Failed to set clang version"
+		ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
+		cp "${WORKDIR}"/rust-toolchain/VERSION \
+			"${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
+	fi
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+		PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" )
+	fi
+
+	default
+
+	rm third_party/node/linux/node-linux-x64/bin/node || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/volk
+		third_party/anonymous_tokens
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/bidimapper
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crabbyavif
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/d3
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/front_end/third_party/web-vitals
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/ffmpeg
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/highway
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/lens_server_proto
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/SVT-AV1
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libc++
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/liburlpattern
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/libzip
+		third_party/lit
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/perfetto/protos/third_party/simpleperf
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private_membership
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/puffin
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/re2
+		third_party/rnnoise
+		third_party/rust
+		third_party/ruy
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/sentencepiece
+		third_party/sentencepiece/src/third_party/darts_clone
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/six
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/spirv-headers
+		third_party/spirv-tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/swiftshader/third_party/subzero
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite/src/third_party/xla/third_party/tsl
+		third_party/tflite/src/third_party/xla/xla/tsl/util
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zlib/google
+		third_party/zxcvbn-cpp
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/utf8-decoder
+		v8/src/third_party/valgrind
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+
+	# USE=system-*
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+
+	if ! use system-zstd; then
+		keeplibs+=( third_party/zstd )
+	fi
+
+	if ! use system-toolchain || [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == yes ]]; then
+			keeplibs+=( third_party/llvm )
+	fi
+
+	# Arch-specific
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
+		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
+		# since we're not in a git repo
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	einfo "Unbundling third-party libraries ..."
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_rust_version_check() {
+	[[ ${MERGE_TYPE} == binary ]] && return
+	local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
+	rustc_version=${rustc_version[0]#rust-bin-}
+	rustc_version=${rustc_version#rust-}
+
+	[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+	echo $rustc_version
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# We already forced the correct clang via {llvm-r1_}pkg_setup
+	if use system-toolchain; then
+		if tc-is-cross-compiler; then
+			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_AR=${AR}
+			BUILD_CC=${CC}
+			BUILD_CXX=${CXX}
+			BUILD_NM=${NM}
+		fi
+
+		strip-unsupported-flags
+
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+		# https://bugs.gentoo.org/918897#c32
+		append-ldflags -Wl,--undefined-version
+		myconf_gn+=" use_lld=true"
+
+		# Make sure the build system will use the right tools, bug #340795.
+		tc-export AR CC CXX NM
+
+		myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+		if tc-is-cross-compiler; then
+			tc-export BUILD_{AR,CC,CXX,NM}
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+			myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+			# setup cups-config, build system only uses --libs option
+			if use cups; then
+				mkdir "${T}/cups-config" || die
+				cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+				export PATH="${PATH}:${T}/cups-config"
+			fi
+
+			# Don't inherit PKG_CONFIG_PATH from environment
+			local -x PKG_CONFIG_PATH=
+		else
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+		fi
+
+		# bindgen settings
+		# From 127, to make bindgen work, we need to provide a location for libclang.
+		# We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch
+		# rust_bindgen_root = directory with `bin/bindgen` beneath it.
+		myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
+		myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
+		# We don't need to set 'clang_base_bath' for anything in our build
+		# and it defaults to the google toolchain location. Instead provide a location
+		# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
+		myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
+
+		local rustc_ver
+		rustc_ver=$(chromium_rust_version_check)
+		if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
+				eerror "Rust >=${RUST_MIN_VER} is required"
+				eerror "Please run 'eselect rust' and select the correct rust version"
+				die "Selected rust version is too old"
+		else
+				einfo "Using rust ${rustc_ver} to build"
+		fi
+		if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
+				myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
+		else
+				myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
+		fi
+		myconf_gn+=" rustc_version=\"${rustc_ver}\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-zstd; then
+		gn_system_libraries+=( zstd )
+	fi
+
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# Allows distributions to link pulseaudio directly (DT_NEEDED) instead of
+	# using dlopen. This helps with automated detection of ABI mismatches and
+	# prevents silent errors.
+	if use pulseaudio; then
+		myconf_gn+=" link_pulseaudio=true"
+	fi
+
+	# Non-developer builds of Chromium (for example, non-Chrome browsers, or
+	# Chromium builds provided by Linux distros) should disable the testing config
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# The sysroot is the oldest debian image that chromium supports, we don't need it
+	myconf_gn+=" use_sysroot=false"
+
+	# Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi)
+	# instead of the system C++ library for C++ standard library support.
+	# default: true, but let's be explicit (forced since 120 ; USE removed 127).
+	myconf_gn+=" use_custom_libcxx=true"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	if use bindist ; then
+		# proprietary_codecs just forces Chromium to say that it can use h264/aac,
+		# the work is still done by ffmpeg. If this is set to no Chromium
+		# won't be able to load the codec even if the library can handle it
+		myconf_gn+=" proprietary_codecs=true"
+		myconf_gn+=" ffmpeg_branding=\"Chrome\""
+		# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
+		myconf_gn+=" is_component_ffmpeg=true"
+	else
+		ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+		myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+		myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+	fi
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		filter-flags "-g*"
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gn+=" treat_warnings_as_errors=false"
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	# We don't use the same clang version as upstream, and with -Werror
+	# we need to make sure that we don't get superfluous warnings.
+	append-flags -Wno-unknown-warning-option
+	if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Don't need nocompile checks and GN crashes with our config
+	myconf_gn+=" enable_nocompile_tests=false"
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+			fi
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
+		fi
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Req's LTO; handled by REQUIRED_USE - TODO: not compatible with -fno-split-lto-unit
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium ..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	if ! use system-toolchain; then
+		QA_FLAGS_IGNORED="
+			usr/lib64/chromium-browser/chrome
+			usr/lib64/chromium-browser/chrome-sandbox
+			usr/lib64/chromium-browser/chromedriver
+			usr/lib64/chromium-browser/chrome_crashpad_handler
+			usr/lib64/chromium-browser/libEGL.so
+			usr/lib64/chromium-browser/libGLESv2.so
+			usr/lib64/chromium-browser/libVkICD_mock_icd.so
+			usr/lib64/chromium-browser/libVkLayer_khronos_validation.so
+			usr/lib64/chromium-browser/libqt5_shim.so
+			usr/lib64/chromium-browser/libvk_swiftshader.so
+			usr/lib64/chromium-browser/libvulkan.so.1
+		"
+	fi
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	newexe out/Release/chrome_sandbox chrome-sandbox
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+
+	if use bindist; then
+		# We built libffmpeg as a component library, but we can't distribute it
+		# with proprietary codec support. Remove it and make a symlink to the requested
+		# system library.
+		rm -f out/Release/libffmpeg.so \
+			|| die "Failed to remove bundled libffmpeg.so (with proprietary codecs)"
+		# symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium].
+		einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..."
+		dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \
+			/usr/$(get_libdir)/chromium-browser/libffmpeg.so
+	fi
+
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
+	fi
+
+	if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then
+		ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd"
+		ewarn "indicates that the Gentoo handbook was not followed to completion."
+		ewarn ""
+		ewarn "Chromium is known to behave unpredictably with this system configuration;"
+		ewarn "please complete the configuration of this system before logging any bugs."
+	fi
+}

diff --git a/www-client/chromium/files/chromium-127-bindgen-custom-toolchain.patch b/www-client/chromium/files/chromium-127-bindgen-custom-toolchain.patch
new file mode 100644
index 000000000000..e981df86d50b
--- /dev/null
+++ b/www-client/chromium/files/chromium-127-bindgen-custom-toolchain.patch
@@ -0,0 +1,111 @@
+From 6df5a080f58ddb6a49a9d33e4a3619a34fffa78c Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Fri, 5 Jul 2024 20:49:01 +1000
+Subject: [PATCH] Make bindgen wrapper work with unbundled toolchain
+
+The `run_bindgen.py` wrapper takes a --libclang-path option
+and uses it to set the appropriate environment variable.
+
+This is currently hardcoded to use libclang shipped alongside
+bindgen (in our rust toolchain), but distributions may want to
+override this and use a system path.
+
+Additionally enable distros to feed in appropriate library paths.
+---
+ build/config/rust.gni       | 11 +++++++++++
+ build/rust/rust_bindgen.gni | 28 ++++++++++++++++++----------
+ 2 files changed, 29 insertions(+), 10 deletions(-)
+
+diff --git a/build/config/rust.gni b/build/config/rust.gni
+index 97e788a227..78b9daa7e8 100644
+--- a/build/config/rust.gni
++++ b/build/config/rust.gni
+@@ -60,6 +60,17 @@ declare_args() {
+   # the bindgen exectuable).
+   rust_bindgen_root = "//third_party/rust-toolchain"
+ 
++  # Directory under which to find one of `libclang.{dll,so}` (a `lib[64]` or
++  # `bin` directory containing the libclang shared library).
++  # We don't need to worry about multlib, but specify the full path here
++  # in case a distribution does.
++  if (host_os == "win") {
++    bindgen_libclang_path = "//third_party/rust-toolchain/bin"
++  } else {
++    bindgen_libclang_path = "//third_party/rust-toolchain/lib"
++  }
++
++
+   # If you're using a Rust toolchain as specified by rust_sysroot_absolute,
+   # set this to the output of `rustc -V`. Changing this string will cause all
+   # Rust targets to be rebuilt, which allows you to update your toolchain and
+diff --git a/build/rust/rust_bindgen.gni b/build/rust/rust_bindgen.gni
+index bf110ca93c..d7eb04eb00 100644
+--- a/build/rust/rust_bindgen.gni
++++ b/build/rust/rust_bindgen.gni
+@@ -16,13 +16,13 @@ if (host_os == "win") {
+   _bindgen_path = "${_bindgen_path}.exe"
+ }
+ 
+-# On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
+-# ../lib.
+-_libclang_path = rust_bindgen_root
+-if (host_os == "win") {
+-  _libclang_path += "/bin"
++if (clang_base_path != default_clang_base_path && custom_toolchain == "//build/toolchain/linux/unbundle:default") {
++  # Assume that the user has set this up properly, including handling multilib
++  _clang_libpath = clang_base_path + "/include"
++  _clang_ld_libpath  = bindgen_libclang_path
+ } else {
+-  _libclang_path += "/lib"
++  _clang_libpath = clang_base_path + "/lib/clang/" + clang_version
++  _clang_ld_libpath = clang_base_path + "/lib"
+ }
+ 
+ # Template to build Rust/C bindings with bindgen.
+@@ -100,7 +100,7 @@ template("rust_bindgen") {
+       "--output",
+       rebase_path(out_gen_rs, root_build_dir),
+       "--libclang-path",
+-      rebase_path(_libclang_path, root_build_dir),
++      rebase_path(bindgen_libclang_path, root_build_dir),
+     ]
+ 
+     if (wrap_static_fns) {
+@@ -117,7 +117,7 @@ template("rust_bindgen") {
+       # point to.
+       args += [
+         "--ld-library-path",
+-        rebase_path(clang_base_path + "/lib", root_build_dir),
++        rebase_path(_clang_ld_libpath, root_build_dir),
+       ]
+     }
+ 
+@@ -145,8 +145,7 @@ template("rust_bindgen") {
+     # make it behave consistently with our other command line flags and allows
+     # system headers to be found.
+     clang_resource_dir =
+-        rebase_path(clang_base_path + "/lib/clang/" + clang_version,
+-                    root_build_dir)
++        rebase_path(_clang_libpath, root_build_dir)
+     args += [
+       "-resource-dir",
+       clang_resource_dir,
+@@ -167,6 +166,15 @@ template("rust_bindgen") {
+       }
+     }
+ 
++    if (custom_toolchain == "//build/toolchain/linux/unbundle:default") {
++      # We need to pass the path to the libstdc++ headers to bindgen so that it
++      # can find them when parsing C++ headers.
++      args += [
++        "-I",
++        rebase_path(clang_base_path + "/include/", root_build_dir),
++      ]
++    }
++
+     if (is_win) {
+       # On Windows we fall back to using system headers from a sysroot from
+       # depot_tools. This is negotiated by python scripts and the result is
+-- 
+2.45.2
+

diff --git a/www-client/chromium/files/chromium-127-browser-ui-deps.patch b/www-client/chromium/files/chromium-127-browser-ui-deps.patch
new file mode 100644
index 000000000000..e262e315c678
--- /dev/null
+++ b/www-client/chromium/files/chromium-127-browser-ui-deps.patch
@@ -0,0 +1,57 @@
+https://gitlab.exherbo.org/exherbo/desktop/-/raw/master/packages/net-www/chromium-beta/files/chromium-browser-ui-missing-deps.patch
+https://issues.chromium.org/u/2/issues/351157339
+Source: Tom Briden <tom@decompile.me.uk>
+Upstream: No
+
+--- a/chrome/browser/ui/views/side_panel/BUILD.gn
++++ b/chrome/browser/ui/views/side_panel/BUILD.gn
+@@ -142,18 +142,30 @@ static_library("side_panel") {
+   }
+   public_deps = [
+     "//base",
++    "//chrome/browser/cart:mojo_bindings",
+     "//chrome/browser/companion/core/mojom:mojo_bindings",
+     "//chrome/browser/profiles:profile",
+     "//chrome/browser/ui/actions:actions_headers",
+     "//chrome/browser/ui/color:color_headers",
++    "//chrome/browser/ui/webui/side_panel/customize_chrome:mojo_bindings",
++    "//chrome/browser/ui/webui/side_panel/bookmarks:mojo_bindings",
+     "//chrome/browser/ui/webui/side_panel/performance_controls:mojo_bindings",
++    "//chrome/browser/ui/webui/side_panel/reading_list:mojo_bindings",
++    "//chrome/browser/ui:webui_name_variants",
+     "//chrome/common",
+     "//chrome/common/accessibility:mojo_bindings",
++    "//chrome/common/companion:mojo_bindings",
++    "//components/enterprise/buildflags:buildflags",
++    "//components/enterprise/common/proto:connectors_proto",
+     "//components/lens",
+     "//components/lens:buildflags",
+     "//components/omnibox/browser",
++    "//components/page_image_service/mojom:mojo_bindings",
++    "//components/paint_preview/buildflags:buildflags",
+     "//components/prefs",
+     "//components/search_engines",
++    "//components/segmentation_platform/public/proto:proto",
++    "//components/webapps/common:mojo_bindings",
+     "//content/public/browser",
+     "//extensions/browser",
+     "//extensions/common",
+@@ -165,6 +177,8 @@ static_library("side_panel") {
+     "//ui/gfx/geometry",
+     "//ui/views",
+     "//ui/views/controls/webview",
++    "//ui/webui/resources/cr_components/commerce:mojo_bindings",
++    "//ui/webui/resources/cr_components/help_bubble:mojo_bindings",
+     "//url",
+   ]
+   deps = [
+--- a/chrome/browser/ui/webui/top_chrome/BUILD.gn
++++ b/chrome/browser/ui/webui/top_chrome/BUILD.gn
+@@ -19,6 +19,7 @@ source_set("top_chrome") {
+   deps = [
+     "//base",
+     "//chrome/browser/profiles:profile",
++    "//chrome/browser/ui:webui_name_variants",
+     "//components/site_engagement/content:content",
+     "//content/public/browser",
+     "//ui/webui",


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-05-21  5:59 Matt Jolly
  0 siblings, 0 replies; 149+ messages in thread
From: Matt Jolly @ 2024-05-21  5:59 UTC (permalink / raw
  To: gentoo-commits

commit:     2768b5411d655e8cca7b2d663253831ad540be00
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Mon May 20 05:58:25 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Tue May 21 05:52:49 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2768b541

www-client/chromium: add 126.0.6478.8, drop 125.0.6422.26

- Update for Python 3.13
- Make clang18 workaround more strict (only applies if Major Ver = 18
  and Mirco Ver < 6); this should give bad versions time to age out
  while reducing impact on up-to-date users.

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/Manifest                       |  5 ++-
 ...6422.26.ebuild => chromium-126.0.6478.8.ebuild} | 17 ++++----
 .../chromium-126-oauth2-client-switches.patch      | 45 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ee9effab0841..749210c250d6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,10 +4,13 @@ DIST chromium-124.0.6367.155.tar.xz 3446276744 BLAKE2B af057b9c1053878294ce3a4dd
 DIST chromium-124.0.6367.207.tar.xz 3450794132 BLAKE2B b5e66e5483e48f165dcdb4c4e540913c2e4d4f93550beb1c529502122e5850594d555057e02c762a5ac2d0cc5ee5531476a5adda4ee1b43a39e0e6fcfe27ccbe SHA512 4ab47f51653b214d78215a95ff6c52db7f1f0d9bf331ec67a9b74109be8df66e84ebc927794a74777e692a77cdfd7d3fdba79190e0a70e18ee975e33050941df
 DIST chromium-125-clang.tar.xz 50745124 BLAKE2B 6d9a8752a648c5e202c5597dd1adf52af9d37784166f75ab803a6dfbb4cd88e57f88851052f005d388020cd840d6854cbd295220f519325d5bfa3174ed9115dd SHA512 32200f39c1d4a24db30d67bfd324490c9fe4fcba2efb7bf83b6db14944a772cdd256dad93d7e23bf9efefc6c98007afde06ba7f8f2a1aafa7e27457e2193e23c
 DIST chromium-125-rust.tar.xz 150461068 BLAKE2B b62fd93d4de25803da5eb98f67c25c455d7ae8e86f202e614bcbe9787957e63ec01ef3eabde3eb7a69d51d25a95a32577477e69ab71c008dcb55411f6d755433 SHA512 6cedf2cfdfefea782c7f1b1b13daae8e44f0678cb2a92454cdea5cd95ada14bd331fc5634da0267369743ab31d9d73ec30d971bdd7a9b68c2f2270a22c552b8c
-DIST chromium-125.0.6422.26.tar.xz 3444217168 BLAKE2B 102b7c49728717e3f76760fd2b92a666423c9d86fd68acce41c06fcf39b8724b3bd14934d2760d3fbc5aeabf7a2052894a0829addfba0ee44bfba37adbdf21e9 SHA512 75c026bde0fc9c9020af6883c8a4fcf0beb6c4d46be390b3bedadc07899b7cca10f91931425c19128d55206f61ab9953373826c67b11bbfbcf2f883802a48733
 DIST chromium-125.0.6422.60.tar.xz 3453234996 BLAKE2B 67b98557fdff66d6f74363820a07ae0e22c2e0b9ce1ba23b14d59b9baea7a3b727db85e158c525a111b686ce8fcdc8f3cc28e07c2b049e36dba6acf131572e57 SHA512 531bebdd363373f12c3f978cbba9de47cf99386c0ea15a9723d92f5facda50f9beae5a8a5ed8f4e49f3787f1c616b3cd45b852f872f3559b14fc64673d4b4de6
+DIST chromium-126-clang.tar.xz 50615992 BLAKE2B 293709399ddf343ba195cec452974178228ebb72921931ad58136351956b881f8dc0bc8ca740252bcd4971701c9ee8ccc0a33648aee25a5b1cece56e0af6b83f SHA512 7bb2938b1df452585d0ee93da3bcf9c3e64e88e39059a713fe21758df670190b12ca002ef2764dc99efdb4284b4c4b7cde861e2e495d99956c21120a51b8c3dc
+DIST chromium-126-rust.tar.xz 150643432 BLAKE2B d9c827008a2fae07977628beccdf3cf4e5d9bf3c9728e4b2839c8bc86ee2f87844921064e30c067a1b620a3d53cbf54a74053172b1436239332fc668f772924d SHA512 431c0305a81e59da231d56f1b119226b661d7f5a93d0da92afbfc384b0e5be28f282c2911137983298a5369c93b60184d41875ec63b47048a782ee2b1301fc77
+DIST chromium-126.0.6478.8.tar.xz 4133359308 BLAKE2B bb9bdeace0119730c74ed2d7399df05ca8913f30e2f848c4107a8482654e7cf725c163ac0bf17fee1568772553af00799ef3d0ea315e617e51efe150105db6ff SHA512 e4e9a9779f074061b7ea36afbfa40f69f9228765262a65b8d6714d50e75d56060e0e23485bbd143dba4ccc6183fdec18c9af1c873bb3aa6cee063e90e6cbf4fd
 DIST chromium-patches-124.tar.bz2 4706 BLAKE2B 5acae233ce7b43669dbf65c368467f94c9a0ec509713ec4510943ede12d495dad1670a5c0a7435e0e16251c7429145e575cb1c9661439ff1c626d709856b6a94 SHA512 3d0d365b6d484def626153b07c0ab187195f27ebada63bd2547b52ed1e2157aab2415a6140c293a140d7a0545ae0fc1cdd431b37fa0c4a212a34c13baccb358c
 DIST chromium-patches-125.tar.bz2 4688 BLAKE2B 96cffec1931f59bfad53efee930292ca123e3daf3cf6f062583aae15853283c32ce2f564de7e35b678a34ed7981d5e8796059d00d5409c31d3e2e5839f93cf9c SHA512 fe4173b2409002d52fd443e87ce4894b53d0b24808f002766942086b99174cb9da42b6e7f92d80d6432d78d7ae3458265ec6cf091a76d0e4e25b44dfdd438dcf
+DIST chromium-patches-126.tar.bz2 4538 BLAKE2B c1f224015618ec908ef09d0c04a2243923371e2caeccd60d93747599fd1434b284291a5b4326008db21749cf78827d5a4b50d22fc805dcd3c1fd86303dc82729 SHA512 6692075adac0379b5f27d1023de1a051cf7f7f7138efd32dfc3af0d501b714142a16daf18022bb46d92218587f364f4dafe9f4aea24f6826e88b0e7cc2be7d0b
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_123.0.6312.105-1raptor0~deb12u1.debian.tar.xz 579484 BLAKE2B 587082358377f7bc0dca0dec83772abb7e040ad894ca4d456a294b7f5c19297acbc5b1dac725d3c1dbaaeefd480328c6c06c607438e560aa6359c1e98c4b1c9c SHA512 6b670a139e284cc96da65ff3c1b3e715cd9b436de2404792d619cfad23e2040fd931e7cc49f0b1ac17e11522804a4c9a621cb943e0dab33fb5bf422e954c5421

diff --git a/www-client/chromium/chromium-125.0.6422.26.ebuild b/www-client/chromium/chromium-126.0.6478.8.ebuild
similarity index 99%
rename from www-client/chromium/chromium-125.0.6422.26.ebuild
rename to www-client/chromium/chromium-126.0.6478.8.ebuild
index 595006853106..11b4f1f6b96b 100644
--- a/www-client/chromium/chromium-125.0.6422.26.ebuild
+++ b/www-client/chromium/chromium-126.0.6478.8.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{11..12} )
+PYTHON_COMPAT=( python3_{11..13} )
 PYTHON_REQ_USE="xml(+)"
 
 # PACKAGING NOTES
@@ -43,8 +43,8 @@ LLVM_MAX_SLOT=19
 LLVM_MIN_SLOT=17
 RUST_MIN_VER=1.72.0
 # chromium-tools/get-chromium-toolchain-strings.sh
-GOOGLE_CLANG_VER=llvmorg-19-init-8091-gab037c4f-1
-GOOGLE_RUST_VER=ab71ee7a9214c2793108a41efb065aa77aeb7326-1
+GOOGLE_CLANG_VER=llvmorg-19-init-9433-g76ea5feb-1
+GOOGLE_RUST_VER=31e6e8c6c5b6ce62656c922c7384d3376018c980-2
 
 # https://bugs.chromium.org/p/v8/issues/detail?id=14449 - V8 used in 120 can't build with GCC
 # Resolved upstream, requires testing and some backporting I'm sure
@@ -422,13 +422,11 @@ src_prepare() {
 		"chrome/browser/media/router/media_router_feature.cc" || die
 
 	local PATCHES=(
-		"${FILESDIR}/chromium-cross-compile.patch"
 		"${FILESDIR}/chromium-109-system-zlib.patch"
 		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-124-libwebp-shim-sharpyuv.patch"
-		"${FILESDIR}/chromium-125-oauth2-client-switches.patch"
 		"${FILESDIR}/chromium-125-system-zstd.patch"
-		"${FILESDIR}/chromium-125-ninja-1-12.patch"
+		"${FILESDIR}/chromium-126-oauth2-client-switches.patch"
+		"${FILESDIR}/chromium-cross-compile.patch"
 	)
 
 	if use system-toolchain; then
@@ -471,7 +469,6 @@ src_prepare() {
 	local keeplibs=(
 		base/third_party/cityhash
 		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
 		base/third_party/icu
 		base/third_party/nspr
 		base/third_party/superfasthash
@@ -658,6 +655,8 @@ src_prepare() {
 		third_party/s2cellid
 		third_party/securemessage
 		third_party/selenium-atoms
+		third_party/sentencepiece
+		third_party/sentencepiece/src/third_party/darts_clone
 		third_party/shell-encryption
 		third_party/simplejson
 		third_party/skia
@@ -817,7 +816,7 @@ chromium_configure() {
 			# Workaround for build failure with clang-18 and -march=native without
 			# avx512. Does not affect e.g. -march=skylake, only native (bug #931623).
 			use amd64 && is-flagq -march=native &&
-				[[ $(clang-major-version) -ge 18 ]] &&
+				[[ $(clang-major-version) -eq 18 ]] && [[ $(clang-minor-version) -lt 6 ]] &&
 				tc-cpp-is-true "!defined(__AVX512F__)" ${CXXFLAGS} &&
 				append-flags -mevex512
 		else

diff --git a/www-client/chromium/files/chromium-126-oauth2-client-switches.patch b/www-client/chromium/files/chromium-126-oauth2-client-switches.patch
new file mode 100644
index 000000000000..b7ddf794aa27
--- /dev/null
+++ b/www-client/chromium/files/chromium-126-oauth2-client-switches.patch
@@ -0,0 +1,45 @@
+From b6cda4bc2283a02a5b5209c0f4282a8365f6f33e Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Tue, 21 May 2024 10:04:24 +1000
+Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials -
+ 126 update
+
+126 changed the function proto; patch rebased.
+
+Google doesn't let us bake in OAuth2 credentials, and for some time,
+Google sign-in has been broken. Arch dealt with this in March, and so
+did we to some degree, but in the last few months, our sign-in
+credentials have been broken. It appears that we actually did remove API
+credentials in March around Chrome 89, but they got added back, perhaps
+when rotating newer versions to replace older versions. Work around this
+by following Arch's lead: we remove the predefined credentials, as
+before, but also we patch Chromium so that people can use their own
+easily, using Arch's patch for that.
+
+For more info, see:
+
+https://archlinux.org/news/chromium-losing-sync-support-in-early-march/
+https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5
+https://hackaday.com/2021/01/26/whats-the-deal-with-chromium-on-linux-google-at-odds-with-package-maintainers/
+
+Bug: https://bugs.gentoo.org/791871
+Signed-off-by: Matt Jolly <kangie@gentoo.org>
+--- a/google_apis/google_api_keys-inc.cc
++++ b/google_apis/google_api_keys-inc.cc
+@@ -193,11 +193,11 @@ class APIKeyCache {
+     std::string default_client_id = CalculateKeyValue(
+         GOOGLE_DEFAULT_CLIENT_ID,
+         STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(),
+-        nullptr, std::string(), environment.get(), command_line, gaia_config);
++        ::switches::kOAuth2ClientID, std::string(), environment.get(), command_line, gaia_config);
+     std::string default_client_secret = CalculateKeyValue(
+         GOOGLE_DEFAULT_CLIENT_SECRET,
+         STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(),
+-        nullptr, std::string(), environment.get(), command_line, gaia_config);
++        ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config);
+ 
+     // We currently only allow overriding the baked-in values for the
+     // default OAuth2 client ID and secret using a command-line
+-- 
+2.45.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-04-26  1:54 Matt Jolly
  0 siblings, 0 replies; 149+ messages in thread
From: Matt Jolly @ 2024-04-26  1:54 UTC (permalink / raw
  To: gentoo-commits

commit:     ac2dd4756267985998394341549e270ce8ae07a6
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 25 22:21:10 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Fri Apr 26 01:51:12 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac2dd475

www-client/chromium: fix Ninja 1.12 build for 125

We'll just let 124 age out over the next month or so
as I can't guarantee that there aren't further missing
dependencies.

Bug: https://bugs.gentoo.org/930112
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/chromium-125.0.6422.14.ebuild       |  3 ++-
 www-client/chromium/files/chromium-125-ninja-1-12.patch | 17 +++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/chromium-125.0.6422.14.ebuild b/www-client/chromium/chromium-125.0.6422.14.ebuild
index 9606d9fad4c8..474f868333a8 100644
--- a/www-client/chromium/chromium-125.0.6422.14.ebuild
+++ b/www-client/chromium/chromium-125.0.6422.14.ebuild
@@ -250,7 +250,7 @@ BDEPEND="
 		>=virtual/rust-${RUST_MIN_VER}[profiler(-)]
 	)
 	>=dev-build/gn-${GN_MIN_VER}
-	<dev-build/ninja-1.12
+	dev-build/ninja
 	dev-lang/perl
 	>=dev-util/gperf-3.0.3
 	dev-vcs/git
@@ -428,6 +428,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-124-libwebp-shim-sharpyuv.patch"
 		"${FILESDIR}/chromium-125-oauth2-client-switches.patch"
 		"${FILESDIR}/chromium-125-system-zstd.patch"
+		"${FILESDIR}/chromium-125-ninja-1-12.patch"
 	)
 
 	if use system-toolchain; then

diff --git a/www-client/chromium/files/chromium-125-ninja-1-12.patch b/www-client/chromium/files/chromium-125-ninja-1-12.patch
new file mode 100644
index 000000000000..55d0887cd94f
--- /dev/null
+++ b/www-client/chromium/files/chromium-125-ninja-1-12.patch
@@ -0,0 +1,17 @@
+https://chromium-review.googlesource.com/c/chromium/src/+/5487538
+commit a976cb05b4024b7a6452d1541378d718cdfe33e6
+Author: Takuto Ikuta <tikuta@chromium.org>
+Date:   Thu Apr 25 07:25:32 2024
+
+    [devtools] fix a missing build dependency to a generated file
+
+--- a/chrome/browser/devtools/BUILD.gn
++++ b/chrome/browser/devtools/BUILD.gn
+@@ -117,6 +117,7 @@
+     "//chrome/browser/autofill:autofill",
+     "//components/autofill/content/browser:browser",
+     "//components/autofill/core/browser:browser",
++    "//components/enterprise/buildflags",
+     "//components/paint_preview/buildflags:buildflags",
+     "//components/variations/service:service",
+     "//components/webapps/common:common",


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-04-18 15:30 Matt Jolly
  0 siblings, 0 replies; 149+ messages in thread
From: Matt Jolly @ 2024-04-18 15:30 UTC (permalink / raw
  To: gentoo-commits

commit:     9549b6e8362e0a5a5cc950ca4f0604353ac87152
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 18 10:34:56 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Thu Apr 18 15:28:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9549b6e8

www-client/chromium: add 125.0.6422.4

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/Manifest                       |    4 +
 www-client/chromium/chromium-125.0.6422.4.ebuild   | 1439 ++++++++++++++++++++
 .../chromium-125-oauth2-client-switches.patch      |   45 +
 .../chromium/files/chromium-125-system-zstd.patch  |   53 +
 4 files changed, 1541 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f6590d9de910..45a466f05223 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -5,8 +5,12 @@ DIST chromium-123.0.6312.122.tar.xz 3488275388 BLAKE2B 9f7e6c4984a41dbed6849eee0
 DIST chromium-124-clang.tar.xz 50212876 BLAKE2B f4786d4192306c005ce790ec3fc2595055d7a835b438e3c7a101b2c56653ad0ef3eb7b797224c9fe910c7ccd31c7cad50d502411ef220d151a8a1b432610d6b8 SHA512 4fb7bbb8abc9b3ae065b32215327d5de58e27c20c0199a8c243a9bfb89bf95b932ac1c2162e65acc954bde5975373a40ccada346cd0340d89889a12e4b8b96df
 DIST chromium-124-rust.tar.xz 145977368 BLAKE2B 3fccaed3a1f7b85a303f5e4281d0d7fe0d194f3203751bae4a937f3447260ecfa5141d49b945705d69d36e89901b99fd0955ce0e5bcff0c17c7096fd78782722 SHA512 272ef52b5b201aeb056db7339387504b78252411899ea13ed5829b77bab8c76fd84125d68678064ac204fa48caf16f86ee1d99c64d599d955fb1097d5e46fc51
 DIST chromium-124.0.6367.60.tar.xz 3432734968 BLAKE2B 8203576cf98c6118bf81d6f4440e7cb03d4f25530e9b6fb160c57b0cb38ee70311aa5f7d418d9f2e0ad6d0abe50e0e625022b36dea834e255a5113a034844590 SHA512 3c13cbd65b11d187576dbf40665b4e43397e706fe43516dd280ad238519aa663c490a314ff43a1f2b41c1f757e3d9dbeeefe88e2d0cf312bb149c7737d8713fd
+DIST chromium-125-clang.tar.xz 50745124 BLAKE2B 6d9a8752a648c5e202c5597dd1adf52af9d37784166f75ab803a6dfbb4cd88e57f88851052f005d388020cd840d6854cbd295220f519325d5bfa3174ed9115dd SHA512 32200f39c1d4a24db30d67bfd324490c9fe4fcba2efb7bf83b6db14944a772cdd256dad93d7e23bf9efefc6c98007afde06ba7f8f2a1aafa7e27457e2193e23c
+DIST chromium-125-rust.tar.xz 150461068 BLAKE2B b62fd93d4de25803da5eb98f67c25c455d7ae8e86f202e614bcbe9787957e63ec01ef3eabde3eb7a69d51d25a95a32577477e69ab71c008dcb55411f6d755433 SHA512 6cedf2cfdfefea782c7f1b1b13daae8e44f0678cb2a92454cdea5cd95ada14bd331fc5634da0267369743ab31d9d73ec30d971bdd7a9b68c2f2270a22c552b8c
+DIST chromium-125.0.6422.4.tar.xz 3435677640 BLAKE2B 3792beb294ea67944ba320397e3728342447a70d19609260153222dc8c6cf751d3ae8a0ab3e197421d1870ec70570eba0001c8b7f03aaf628257ed76705f4971 SHA512 4c6f5cb64ff433474436b82a92470ff1d3f21ede03fc5f202ca0e1a0490ae820312bcd36a02e8aa3055e21a085318cbc1cd4f5c4cc84ecb3bcaee6d7e59b89ef
 DIST chromium-patches-123.tar.bz2 4697 BLAKE2B 8a7dd76edb23afb7b2f65084696bce5d6e54d63ca34c4590052db1086ed0a422b1efde863c4daad4e2526f329eb65276b9ad5406017cd97fb75b1a9556c1f933 SHA512 ea47255deac1893896f64496629d34c7092f266a175b8400fcf4f01b9d038ae240e911bff488558bb28e6f5795bbcf276adf20ed1e0ccb8ac99f9ddd260742f9
 DIST chromium-patches-124.tar.bz2 4706 BLAKE2B 5acae233ce7b43669dbf65c368467f94c9a0ec509713ec4510943ede12d495dad1670a5c0a7435e0e16251c7429145e575cb1c9661439ff1c626d709856b6a94 SHA512 3d0d365b6d484def626153b07c0ab187195f27ebada63bd2547b52ed1e2157aab2415a6140c293a140d7a0545ae0fc1cdd431b37fa0c4a212a34c13baccb358c
+DIST chromium-patches-125.tar.bz2 4688 BLAKE2B 96cffec1931f59bfad53efee930292ca123e3daf3cf6f062583aae15853283c32ce2f564de7e35b678a34ed7981d5e8796059d00d5409c31d3e2e5839f93cf9c SHA512 fe4173b2409002d52fd443e87ce4894b53d0b24808f002766942086b99174cb9da42b6e7f92d80d6432d78d7ae3458265ec6cf091a76d0e4e25b44dfdd438dcf
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_123.0.6312.105-1raptor0~deb12u1.debian.tar.xz 579484 BLAKE2B 587082358377f7bc0dca0dec83772abb7e040ad894ca4d456a294b7f5c19297acbc5b1dac725d3c1dbaaeefd480328c6c06c607438e560aa6359c1e98c4b1c9c SHA512 6b670a139e284cc96da65ff3c1b3e715cd9b436de2404792d619cfad23e2040fd931e7cc49f0b1ac17e11522804a4c9a621cb943e0dab33fb5bf422e954c5421

diff --git a/www-client/chromium/chromium-125.0.6422.4.ebuild b/www-client/chromium/chromium-125.0.6422.4.ebuild
new file mode 100644
index 000000000000..c689e3abafef
--- /dev/null
+++ b/www-client/chromium/chromium-125.0.6422.4.ebuild
@@ -0,0 +1,1439 @@
+# Copyright 2009-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..12} )
+PYTHON_REQ_USE="xml(+)"
+
+# PACKAGING NOTES
+
+# Google roll their bundled Clang every two weeks, and the bundled Rust
+# is rolled regularly and depends on that. While we do our best to build
+# with system Clang, we will eventually hit the point where we need to use
+# the bundled Clang due to the use of prerelease features. We've been lucky
+# enough so far that this hasn't been an issue.
+
+# We try and avoid forcing the use of the custom/bundled libcxx, but sometimes
+# it is unavoidable. Remember to force the use of Clang when this is forced.
+
+# GCC is _not_ supported upstream, though patches are welcome. We do our
+# best to enable builds with GCC but reserve the right to force Clang
+# builds if we can't keep up with upstream's changes. Please comment
+# when forcing Clang builds so we can track the need for it.
+
+# GN is bundled with Chromium, but we always use the system version. Remember to
+# check for upstream changes to GN and update ebuild (and version below) as required.
+
+# For binhost users, if USE=bindist is set, we configure Chromium in a way that it is able
+# to use proprietary codecs, and so that ffmpeg is an external component (libffmpeg.so),
+# then we remove ffmpeg from the image to ensure that the built package is distributable
+# (i.e. we don't owe royalties). A suitable libffmpeg.so is symlinked in its place;
+# as a result of this, ffmpeg[chromium] or ffmpeg-chromium must be installed on the system.
+
+# For non-binhost builds, we build the bundled ffmpeg and enable proprietary codecs because there's
+# no reason not to. Todo: Re-enable USE=system-ffmpeg.
+
+# These variables let us easily bound supported major dependency versions in one place.
+GCC_MIN_VER=12
+GN_MIN_VER=0.2154
+# Since Google use prerelease llvm we can let any adventurous users try to build with prerelease
+# ebuilds; try to keep this up to date with the latest version in the tree.
+LLVM_MAX_SLOT=19
+LLVM_MIN_SLOT=17
+RUST_MIN_VER=1.72.0
+# chromium-tools/get-chromium-toolchain-strings.sh
+GOOGLE_CLANG_VER=llvmorg-19-init-8091-gab037c4f-1
+GOOGLE_RUST_VER=ab71ee7a9214c2793108a41efb065aa77aeb7326-1
+
+# https://bugs.chromium.org/p/v8/issues/detail?id=14449 - V8 used in 120 can't build with GCC
+# Resolved upstream, requires testing and some backporting I'm sure
+: ${CHROMIUM_FORCE_CLANG=yes}
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227 - Chromium 120:
+#    webrtc -  no matching member function for call to 'emplace'
+: ${CHROMIUM_FORCE_LIBCXX=yes}
+# 121's 'gcc_link_wrapper.py' currently fails if not using lld due to the addition of rust
+: ${CHROMIUM_FORCE_LLD=yes}
+
+: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
+
+VIRTUALX_REQUIRED="pgo"
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://www.chromium.org/"
+PATCHSET_PPC64="123.0.6312.105-1raptor0~deb12u1"
+PATCH_V="${PV%%\.*}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	system-toolchain? (
+		https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+	)
+	!system-toolchain? (
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${GOOGLE_CLANG_VER}.tar.xz
+			-> chromium-${PV%%\.*}-clang.tar.xz
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${GOOGLE_RUST_VER}-${GOOGLE_CLANG_VER%??}.tar.xz
+			-> chromium-${PV%%\.*}-rust.tar.xz
+	)
+	ppc64? (
+		https://quickbuild.io/~raptor-engineering-public/+archive/ubuntu/chromium/+files/chromium_${PATCHSET_PPC64}.debian.tar.xz
+		https://deps.gentoo.zip/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/beta"
+KEYWORDS="~amd64 ~arm64"
+IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
+IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos libcxx +lto +official pax-kernel pgo +proprietary-codecs pulseaudio"
+IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine"
+RESTRICT="!bindist? ( bindist )"
+
+REQUIRED_USE="
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+	qt6? ( qt5 )
+	screencast? ( wayland )
+	!system-toolchain? ( libcxx )
+	ffmpeg-chromium? ( bindist proprietary-codecs )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.12.4:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	system-zstd? ( >=app-arch/zstd-1.5.5:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	bindist? (
+		!ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] )
+		ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} )
+	)
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+# When passed multiple arguments we assume that
+# we want a range of versions, inclusive.
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	elif [[ $# -eq 2 ]]; then
+		if [[ $1 -eq $2 ]]; then
+			depend_clang_llvm_version "$1"
+		fi
+		echo "|| ("
+		for ((i=$1; i<=$2; i++)); do
+			echo "("
+			depend_clang_llvm_version "${i}"
+			echo ")"
+		done
+		echo ")"
+	else
+		die "depend_clang_llvm_versions() requires 1 or 2 arguments"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
+	)
+	system-toolchain? (
+		libcxx? ( >=sys-devel/clang-${LLVM_MIN_SLOT} )
+		lto? ( $(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT}) )
+		pgo? (
+			>=dev-python/selenium-3.141.0
+			>=dev-util/web_page_replay_go-20220314
+			$(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT})
+		)
+		>=virtual/rust-${RUST_MIN_VER}[profiler(-)]
+	)
+	>=dev-build/gn-${GN_MIN_VER}
+	dev-lang/perl
+	<dev-build/ninja-1.12.0
+	>=dev-util/gperf-3.0.3
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+="system-toolchain? ( >=sys-devel/clang-${LLVM_MIN_SLOT} ) "
+fi
+
+if [[ ${CHROMIUM_FORCE_LLD} == yes ]]; then
+	BDEPEND+="system-toolchain? ( >=sys-devel/lld-${LLVM_MIN_SLOT} ) "
+else
+	# #918897: Hack for arm64
+	BDEPEND+=" arm64? ( >=sys-devel/lld-${LLVM_MIN_SLOT} )"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+needs_lld() {
+	# #641556: Force lld for lto and pgo builds, otherwise disable
+	# #918897: Temporary hack w/ use arm64
+	[[ ${CHROMIUM_FORCE_LLD} == yes ]] || use lto || use pgo || use arm64
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements: bugs #471810, #541816, #914220
+	# We're going to start doing maths here on the size of an unpacked source tarball,
+	# this should make updates easier as chromium continues to balloon in size.
+	local BASE_DISK=19
+	local EXTRA_DISK=1
+	local CHECKREQS_MEMORY="4G"
+	tc-is-cross-compiler && EXTRA_DISK=2
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		tc-is-cross-compiler && EXTRA_DISK=4
+		use pgo && EXTRA_DISK=8
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags; then
+			EXTRA_DISK=13
+		fi
+		CHECKREQS_MEMORY="16G"
+	fi
+	CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G"
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+	fi
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set."
+		done
+	fi
+
+	if ! use bindist && use ffmpeg-chromium; then
+		ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set."
+	fi
+}
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+		pre_build_checks
+
+		if use system-toolchain; then
+			local -x CPP="$(tc-getCXX) -E"
+			if tc-is-gcc && ! ver_test "$(gcc-version)" -ge ${GCC_MIN_VER}; then
+				die "At least gcc ${GCC_MIN_VER} is required"
+			fi
+			if use pgo && tc-is-cross-compiler; then
+				die "The pgo USE flag cannot be used when cross-compiling"
+			fi
+			if needs_clang && ! tc-is-clang; then
+				if tc-is-cross-compiler; then
+					CPP="${CBUILD}-clang++ -E"
+				else
+					CPP="${CHOST}-clang++ -E"
+				fi
+			fi
+			if needs_clang || tc-is-clang; then
+				if ver_test "$(clang-major-version)" -lt ${LLVM_MIN_SLOT}; then
+					die "At least Clang ${LLVM_MIN_SLOT} is required"
+				fi
+				# Ideally we never see this, but it should help prevent bugs like 927154
+				if ver_test "$(clang-major-version)" -gt ${LLVM_MAX_SLOT}; then
+					die "Clang $(clang-major-version) is too new; ${LLVM_MAX_SLOT} is the highest supported version"
+				fi
+			fi
+		fi
+		# Users should never hit this, it's purely a development convenience
+		if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+			die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-124-libwebp-shim-sharpyuv.patch"
+		"${FILESDIR}/chromium-125-oauth2-client-switches.patch"
+		"${FILESDIR}/chromium-125-system-zstd.patch"
+	)
+
+	if use system-toolchain; then
+		# The patchset is really only required if we're using the system-toolchain
+		PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" )
+		# We can't use the bundled compiler builtins
+		sed -i -e \
+			"/if (is_clang && toolchain_has_rust) {/,+2d" \
+			build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins"
+	else
+		mkdir -p third_party/llvm-build/Release+Asserts || die "Failed to bundle llvm"
+		ln -s "${WORKDIR}"/bin third_party/llvm-build/Release+Asserts/bin || die "Failed to symlink llvm bin"
+		ln -s "${WORKDIR}"/lib third_party/llvm-build/Release+Asserts/lib || die "Failed to symlink llvm lib"
+		echo "${GOOGLE_CLANG_VER}" > third_party/llvm-build/Release+Asserts/cr_build_revision || \
+			die "Failed to set clang version"
+		ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
+		cp "${WORKDIR}"/rust-toolchain/VERSION \
+			"${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
+	fi
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+		PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" )
+		PATCHES+=( "${WORKDIR}/debian/patches/fixes/blink-fonts-shape-result.patch" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/volk
+		third_party/anonymous_tokens
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/d3
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/ffmpeg
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/lit
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/lens_server_proto
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/SVT-AV1
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/puffin
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/re2
+		third_party/rnnoise
+		third_party/rust
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite/src/third_party/xla/third_party/tsl
+		third_party/tflite/src/third_party/xla/xla/tsl/util
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+
+	# USE=system-*
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+
+	if ! use system-zstd; then
+		keeplibs+=( third_party/zstd )
+	fi
+
+	if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libc++ )
+	fi
+
+	if ! use system-toolchain || [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == yes ]]; then
+			keeplibs+=( third_party/llvm )
+	fi
+
+	# Arch-specific
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
+		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
+		# since we're not in a git repo
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	einfo "Unbundling third-party libraries ..."
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_rust_version_check() {
+	[[ ${MERGE_TYPE} == binary ]] && return
+	local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
+	rustc_version=${rustc_version[0]#rust-bin-}
+	rustc_version=${rustc_version#rust-}
+
+	[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+	echo $rustc_version
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	if use system-toolchain && [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == no ]]; then
+		# Make sure the build system will use the right tools, bug #340795.
+		tc-export AR CC CXX NM
+
+		if needs_clang && ! tc-is-clang; then
+			# Force clang since gcc is either broken or build is using libcxx.
+			if tc-is-cross-compiler; then
+				CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+				CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+				BUILD_CC=${CBUILD}-clang
+				BUILD_CXX=${CBUILD}-clang++
+			else
+				CC=${CHOST}-clang
+				CXX=${CHOST}-clang++
+			fi
+			strip-unsupported-flags
+		fi
+
+		if tc-is-clang; then
+			myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+		else
+			myconf_gn+=" is_clang=false"
+		fi
+
+		if needs_lld ; then
+			# https://bugs.gentoo.org/918897#c32
+			append-ldflags -Wl,--undefined-version
+			myconf_gn+=" use_lld=true"
+		else
+			# This doesn't prevent lld from being used, but rather prevents gn from forcing it
+			myconf_gn+=" use_lld=false"
+		fi
+
+		if use lto; then
+			AR=llvm-ar
+			NM=llvm-nm
+			if tc-is-cross-compiler; then
+				BUILD_AR=llvm-ar
+				BUILD_NM=llvm-nm
+			fi
+		fi
+
+		myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+		if tc-is-cross-compiler; then
+			tc-export BUILD_{AR,CC,CXX,NM}
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+			myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+			# setup cups-config, build system only uses --libs option
+			if use cups; then
+				mkdir "${T}/cups-config" || die
+				cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+				export PATH="${PATH}:${T}/cups-config"
+			fi
+
+			# Don't inherit PKG_CONFIG_PATH from environment
+			local -x PKG_CONFIG_PATH=
+		else
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+		fi
+
+		local rustc_ver
+		rustc_ver=$(chromium_rust_version_check)
+		if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
+				eerror "Rust >=${RUST_MIN_VER} is required"
+				eerror "Please run 'eselect rust' and select the correct rust version"
+				die "Selected rust version is too old"
+		else
+				einfo "Using rust ${rustc_ver} to build"
+		fi
+		if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
+				myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
+		else
+				myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
+		fi
+		myconf_gn+=" rustc_version=\"${rustc_ver}\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-zstd; then
+		gn_system_libraries+=( zstd )
+	fi
+
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# Allows distributions to link pulseaudio directly (DT_NEEDED) instead of
+	# using dlopen. This helps with automated detection of ABI mismatches and
+	# prevents silent errors.
+	if use pulseaudio; then
+		myconf_gn+=" link_pulseaudio=true"
+	fi
+
+	# Non-developer builds of Chromium (for example, non-Chrome browsers, or
+	# Chromium builds provided by Linux distros) should disable the testing config
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	if use system-toolchain; then
+		myconf_gn+=" use_gold=false"
+	fi
+
+	# The sysroot is the oldest debian image that chromium supports, we don't need it
+	myconf_gn+=" use_sysroot=false"
+
+	# This determines whether or not GN uses the bundled libcxx
+	# default: true
+	if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		myconf_gn+=" use_custom_libcxx=true"
+	else
+		myconf_gn+=" use_custom_libcxx=false"
+	fi
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	if use bindist ; then
+		# proprietary_codecs just forces Chromium to say that it can use h264/aac,
+		# the work is still done by ffmpeg. If this is set to no Chromium
+		# won't be able to load the codec even if the library can handle it
+		myconf_gn+=" proprietary_codecs=true"
+		myconf_gn+=" ffmpeg_branding=\"Chrome\""
+		# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
+		myconf_gn+=" is_component_ffmpeg=true"
+	else
+		ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+		myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+		myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+	fi
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		filter-flags "-g*"
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			local -x CPP="$(tc-getCXX) -E"
+			# https://bugs.gentoo.org/912381
+			filter-lto
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Don't need nocompile checks and GN crashes with our config
+	myconf_gn+=" enable_nocompile_tests=false"
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+			fi
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
+		fi
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium ..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	if ! use system-toolchain; then
+		QA_FLAGS_IGNORED="
+			usr/lib64/chromium-browser/chrome
+			usr/lib64/chromium-browser/chrome-sandbox
+			usr/lib64/chromium-browser/chromedriver
+			usr/lib64/chromium-browser/chrome_crashpad_handler
+			usr/lib64/chromium-browser/libEGL.so
+			usr/lib64/chromium-browser/libGLESv2.so
+			usr/lib64/chromium-browser/libVkICD_mock_icd.so
+			usr/lib64/chromium-browser/libVkLayer_khronos_validation.so
+			usr/lib64/chromium-browser/libqt5_shim.so
+			usr/lib64/chromium-browser/libvk_swiftshader.so
+			usr/lib64/chromium-browser/libvulkan.so.1
+		"
+	fi
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	newexe out/Release/chrome_sandbox chrome-sandbox
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+
+	if use bindist; then
+		# We built libffmpeg as a component library, but we can't distribute it
+		# with proprietary codec support. Remove it and make a symlink to the requested
+		# system library.
+		rm -f out/Release/libffmpeg.so \
+			|| die "Failed to remove bundled libffmpeg.so (with proprietary codecs)"
+		# symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium].
+		einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..."
+		dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \
+			/usr/$(get_libdir)/chromium-browser/libffmpeg.so
+	fi
+
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-125-oauth2-client-switches.patch b/www-client/chromium/files/chromium-125-oauth2-client-switches.patch
new file mode 100644
index 000000000000..6c7f56b56d96
--- /dev/null
+++ b/www-client/chromium/files/chromium-125-oauth2-client-switches.patch
@@ -0,0 +1,45 @@
+From 6a84205d0399a94e8b526176a7dcafd6c2051a95 Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Thu, 18 Apr 2024 21:15:20 +1000
+Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials -
+ 125 update
+
+125 moved the content to a new file.
+
+Google doesn't let us bake in OAuth2 credentials, and for some time,
+Google sign-in has been broken. Arch dealt with this in March, and so
+did we to some degree, but in the last few months, our sign-in
+credentials have been broken. It appears that we actually did remove API
+credentials in March around Chrome 89, but they got added back, perhaps
+when rotating newer versions to replace older versions. Work around this
+by following Arch's lead: we remove the predefined credentials, as
+before, but also we patch Chromium so that people can use their own
+easily, using Arch's patch for that.
+
+For more info, see:
+
+https://archlinux.org/news/chromium-losing-sync-support-in-early-march/
+https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5
+https://hackaday.com/2021/01/26/whats-the-deal-with-chromium-on-linux-google-at-odds-with-package-maintainers/
+
+Bug: https://bugs.gentoo.org/791871
+Signed-off-by: Matt Jolly <kangie@gentoo.org>
+--- a/google_apis/google_api_keys-inc.cc
++++ b/google_apis/google_api_keys-inc.cc
+@@ -182,11 +182,11 @@ class APIKeyCache {
+ 
+     std::string default_client_id = CalculateKeyValue(
+         GOOGLE_DEFAULT_CLIENT_ID,
+-        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr,
++        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID,
+         std::string(), environment.get(), command_line, gaia_config);
+     std::string default_client_secret = CalculateKeyValue(
+         GOOGLE_DEFAULT_CLIENT_SECRET,
+-        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr,
++        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret,
+         std::string(), environment.get(), command_line, gaia_config);
+ 
+     // We currently only allow overriding the baked-in values for the
+-- 
+2.44.0
+

diff --git a/www-client/chromium/files/chromium-125-system-zstd.patch b/www-client/chromium/files/chromium-125-system-zstd.patch
new file mode 100644
index 000000000000..6211662f98fa
--- /dev/null
+++ b/www-client/chromium/files/chromium-125-system-zstd.patch
@@ -0,0 +1,53 @@
+From 4ac5e29c999c7bbcb8409a2008b0061e1ae365dd Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Thu, 18 Apr 2024 21:54:54 +1000
+Subject: [PATCH] Zstd now needs compress, too
+
+Existing patch updated for 125, added source_set("compress")
+
+--- a/build/linux/unbundle/replace_gn_files.py
++++ b/build/linux/unbundle/replace_gn_files.py
+@@ -80,6 +80,7 @@ REPLACEMENTS = {
+   'vulkan_memory_allocator' : 'third_party/vulkan_memory_allocator/BUILD.gn',
+   'woff2': 'third_party/woff2/BUILD.gn',
+   'zlib': 'third_party/zlib/BUILD.gn',
++  'zstd': 'third_party/zstd/BUILD.gn',
+ }
+ 
+ 
+--- /dev/null
++++ b/build/linux/unbundle/zstd.gn
+@@ -0,0 +1,30 @@
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_zstd") {
++  packages = [ "libzstd" ]
++}
++
++shim_headers("zstd_shim") {
++  root_path = "src/lib"
++  headers = [
++    "zdict.h",
++    "zstd.h",
++    "zstd_errors.h",
++  ]
++}
++
++source_set("zstd") {
++  deps = [ ":zstd_shim" ]
++  public_configs = [ ":system_zstd" ]
++}
++
++source_set("compress") {
++  deps = [ ":zstd_shim" ]
++  public_configs = [ ":system_zstd" ]
++}
++
++source_set("decompress") {
++  deps = [ ":zstd_shim" ]
++  public_configs = [ ":system_zstd" ]
++}
+-- 
+2.44.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-01-31  9:42 Sam James
  0 siblings, 0 replies; 149+ messages in thread
From: Sam James @ 2024-01-31  9:42 UTC (permalink / raw
  To: gentoo-commits

commit:     7a5cbf7bd7a2f58ec7e0c83901872e32bdbef7e9
Author:     Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
AuthorDate: Tue Jan 30 11:13:59 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jan 31 09:41:21 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a5cbf7b

www-client/chromium: add 121.0.6167.139

This ebuild adds support for building with a reduced patchset,
using the Google toolchain. It's not going to be nearly as flexible
as using the system toolchain, but will help to future-proof us against
the use of prerelease clang or rust features in a stable ebuild.

Bug: https://bugs.gentoo.org/923370
Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-client/chromium/Manifest                       |    5 +
 www-client/chromium/chromium-121.0.6167.139.ebuild | 1367 ++++++++++++++++++++
 .../chromium/files/chromium-119-minizip-cast.patch |   23 +
 3 files changed, 1395 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8aff11073af1..64ce957609a9 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,10 +1,14 @@
 DIST chromium-120.0.6099.129.tar.xz 3283749920 BLAKE2B 889b91eec84fc12d42d0bfe04f41c779b84aab704b47f05a276fa9725696740fc0308764602e87161b1ad73a5bb260cc75e88a8133791dd1b074780363670e51 SHA512 2b12d2af7b469d2896000c785f0252eb260bffb523d8e1b82f1d8ab4098de8e297dd6fe901de58a1f57672c9699523d88342637fc69b5260fe5cf296183e3edf
 DIST chromium-120.0.6099.224.tar.xz 3299542904 BLAKE2B 70c7ab27796f00e18f3c90565ef8b9d8a3daa8c2637f71a207cb95ecdcaf47f95ffed6e51c249595d2af1c3c17bebdba249ba7861b866580c316fad6e1935340 SHA512 64a91dd3683b2b3b982c1a12ba6cb946b32a6dd0d76040036892061fa1d3e889fd61253fd7e05847e3076715e4ab9e7e5f6ff3764bec68c1486c1873d534fb52
+DIST chromium-121.0.6167.139-clang.tar.xz 50276852 BLAKE2B 9aa9eefeeb3b03bb8187c28b8de2f97ef26babdbec390b9d639c543dfc33e22dd338cc033419efada7fc4405ffdc7f7135c8f96b4a735df06dd883c114a9190d SHA512 5d7561ccc48121a56e29674aefb11d5184e65e1d055a94a8c3203768a8792b65418f0606a6ca40774bc8ba34172286d04c69584c1f56a5ba84d94b4c6e9c73bd
+DIST chromium-121.0.6167.139-rust.tar.xz 140303948 BLAKE2B 24b6d1cbf9d2bcf1a5a4bea4b509ad326a1dce6671250f6b3a93717ea21d4d1f09b12b4e820919b35814536609569ad52d26e3c8eb7afead92881facbd12e04c SHA512 bd7feb5426e66f304291f6f79ce1d8a5b845dff1b420854406951f702ae6ec44f2edfed431893dcf87c97d0f9c9f9b504d3e8ad3ad5ec99b053c4e0d3cbc642c
+DIST chromium-121.0.6167.139.tar.xz 3340424948 BLAKE2B dd3941a0c9e2db05f07d02f83c4e08376e05b09168d82af4fe7def1459ae2cc667e1891a4ba8170a2d07ccffc568ff57ab720d49b1a0532fd1d4fd562c1e08c7 SHA512 610529f46bee5acc6ef26fa2de8a5f94a36a9c1b3e9f56bdfdcc3f045a62b424f3c9054e1c01895bcd7df039491185c5700f4919bb5b9a3c93674a199b6bd32f
 DIST chromium-121.0.6167.85.tar.xz 3332417624 BLAKE2B 8568f224d5a749b01b7521822e3b8b1c0271ea05688f252c5546a8ff1e3cd3b5c12ad3df299258dec8eab11330d4827bc68892fb436706ec436eb7e5abbae502 SHA512 fce8a58524c457d44e2eedf612b8d5e3d2085246e2b554ff2e5354be80722fe0c58271d98af38088868dab11224e4e86784f3fb75197f9e70fe9c15ab8024f9b
 DIST chromium-122.0.6261.6-clang.tar.xz 50107164 BLAKE2B 6b07470aa9a3606d27784c4abfd1577ead70cc2c310c2db47d486a64d93d9984d9b7737493a9c30ea7e0f0868291f3aac8058ba23f81f940469d23bafa260bf1 SHA512 a46a7869bff2e5edd34167751257453fd89eae92bd5e291c4408ff0234997b04fae3df7906f46d83f72da5c4f11199489a14d8a55251d0efc3c0ffc1c56d9e22
 DIST chromium-122.0.6261.6-rust.tar.xz 140507448 BLAKE2B cb00e65a617801b59a852d921ec1600f577a5a4d16a2df37d413de5cfa9d7274fd8e54d9bf8d21a94f93230e2a27a50f55a36d65e774daf38ba08ba292f52a45 SHA512 2cec9e9a84a494babe581aa900bc76babb3ba7c4622bf050537adf234644f054426eea87c01a037dc7e5f850dec55498d45e982ae334b8d6e99a85679c8aed79
 DIST chromium-122.0.6261.6.tar.xz 3408053180 BLAKE2B 8dd67c992aa364dca54039fe0cad95d0284dcad2c2052f1c4f1612146148701450a9e745a2fadc26d76ecee6f716accfd0f162160faad55f7c63b812cc0e659c SHA512 729fe19fb2e6917ed8936bb7502edd4247e0cdf44334cb6369f774e8794cd8a2418bceece9e3c484e266212e0b56639ef936dfb64629c826bf928aed756b802c
 DIST chromium-patches-120.tar.bz2 8630 BLAKE2B aa815521d027036757e5316478c2974e107185662d4c6a200bc7f448558730a3cb11e0a6e28d6a48ff60379813eed10d91c04917002228cf97c8448423cc0994 SHA512 1af05a17c54ea2f23b6f18b40c21304a94076eda4f9dcdf34ff93e1a729ae5a6b69816d32b5855b1cbb412eefaefb3d343fce05afd99347dcf9302a1d47ad3e6
+DIST chromium-patches-121-1.tar.bz2 5078 BLAKE2B 1f6a91a5bcbfaad6df4f4cfc289e6cabbb7c67e90085bcb0e111657c875cbd5303a7409b447c240885c99a699a94491500afca0d89f82cbd74ec59542c8735ac SHA512 77208a91ea002d0e5463f65569bba4347b6a18381ca861aeac84938c34eee1d8ecc119427a8d426177345fb1f1bcd0fbd77bdc702e2713e457c3bc384bbf2487
 DIST chromium-patches-121.tar.bz2 5861 BLAKE2B 450591b24933f8bd194865960dcb33dbcf4b560dfe384436ad26d780c6f815b615d419fcaf4b3507cf1ced5c0ab6be9381a5101d1ff1441a3a9425911560c07a SHA512 12f356ae5deafa553b9a709eb72ee7f761fd3f0bd36b9c7542433bbe7825e3dc98ba6639ca8be7fcd766df52c3b77c629c84da545351f5089d7c10343da45f48
 DIST chromium-patches-122-1.tar.bz2 4868 BLAKE2B b2483fc908da3a85e23227ebf7a4006723b78cb7279fc81b4dcce14f147541cdef238d08035f4155368f1695b9be706de696b8141db8e94506beddd82e547b9b SHA512 245eb3e476beef57db028f984d88dbcf5c227f7875c2aa2da0949b884f88e811196de8f126a84cf24baab29103d3566750ea44eba1f1c948a829f6d3e3b2e9ea
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
@@ -12,3 +16,4 @@ DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b2655123
 DIST chromium_119.0.6045.159-1raptor0~deb12u1.debian.tar.xz 522464 BLAKE2B 687636b3c8f9b89db64b16643f6832cd2711f54f4be309d7e8dbaf0b8647bb3400ac095fa497f8a887bde628b521724f21f97a1273ab719f16d9f4114c36a6f0 SHA512 a4724ec5df4f3cfac7ede1514d8e886de20580bb812fed3a3e240e4ad91522b047a7bb065ab9e4402cffb9e8608c5cdc71d10c8b132f27d294ebb44db12294e4
 DIST chromium_120.0.6099.109-1raptor0~deb12u1.debian.tar.xz 534108 BLAKE2B ebfe063c5a141e3cd0f861c753c366297f868a5b475a6d4cfe136baec9b979f909e24f9d6eceeb215b9084a9c087c5fb5eb49e8d26921028b943c119a440356a SHA512 62d4d492f579d1bffeaec9778f275df5ee615f434c1ea5764f7feecec6004bc9862c114caf6b86737a433d97e822f14df5a5871b9cbc7bc891bf48d706d5bccf
 DIST chromium_120.0.6099.199-1raptor0~deb12u1.debian.tar.xz 534452 BLAKE2B 78a59831063256a96730f1b981fa52051ba920055ac863b9114d59532a0db3da664660404a6f2b5d6cd669dece149c7b74d85b995ee826a4d7874462d94b244c SHA512 f345faa72117f66c9819e3d1e304c811ac3a79af77bad1232109f912cbfeadabcdd5e38c29dadedd2e1c7d8447abbb45a426a5c0e9123f55fd853912607c1fd2
+DIST chromium_121.0.6167.85-1raptor0~deb12u1.debian.tar.xz 542644 BLAKE2B 298b383b8f311c55c42b75dbaf7d14e1af52e9934a78c9c1b7d6e7d8a5e415d1ef51fc488f0205e851113ca8bb9982707c78485939438d4ddc7c14d5945b5a2c SHA512 f2a8f460d45d1a2302c7958ac1e163276779e5fb76c2efbbd631a21d84a068926dffe064a37cf605bbb34780efc16e32de24ecc729e421ac851fb142c112185a

diff --git a/www-client/chromium/chromium-121.0.6167.139.ebuild b/www-client/chromium/chromium-121.0.6167.139.ebuild
new file mode 100644
index 000000000000..b5c67b7a9375
--- /dev/null
+++ b/www-client/chromium/chromium-121.0.6167.139.ebuild
@@ -0,0 +1,1367 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Can't do 12 yet: heavy use of imp, among other things (bug #915001, bug #915062)
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="xml(+)"
+
+# PACKAGING NOTES:
+# Google roll their bundled Clang every two weeks, and the bundled Rust
+# is rolled regularly and depends on that. While we do our best to build
+# with system Clang, we will eventually hit the point where we need to use
+# the bundled Clang due to the use of prerelease features. We've been lucky
+# enough so far that this hasn't been an issue.
+
+# We try and avoid forcing the use of libcxx, but sometimes it is unavoidable.
+# Remember to force the use of Clang when this is forced.
+
+# GCC is _not_ supported upstream, though patches are welcome. We do our
+# best to enable builds with GCC but reserve the right to force Clang
+# builds if we can't keep up with upstream's changes. Please comment
+# when forcing Clang builds so we can track the need for it.
+
+# GN is bundled with Chromium, but we always use the system version. Remember to
+# check for upstream changes to GN and update ebuild (and version below) as required.
+
+# These variables let us easily bound supported major dependency versions in one place.
+GCC_MIN_VER=12
+GN_MIN_VER=0.2143
+LLVM_MAX_SLOT=17
+LLVM_MIN_SLOT=16
+RUST_MIN_VER=1.72.0
+# grep 'CLANG_REVISION = ' ${S}/tools/clang/scripts/update.py -A1 | cut -c 18-
+GOOGLE_CLANG_VER="llvmorg-18-init-12938-geb1d5065-1"
+# grep 'RUST_REVISION = ' ${S}/tools/rust/update_rust.py -A1 | cut -c 17-
+GOOGLE_RUST_VER="df0295f07175acc7325ce3ca4152eb05752af1f2-1"
+
+# https://bugs.chromium.org/p/v8/issues/detail?id=14449 - V8 used in 120 can't build with GCC
+: ${CHROMIUM_FORCE_CLANG=yes}
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227 - Chromium 120:
+#    webrtc -  no matching member function for call to 'emplace'
+: ${CHROMIUM_FORCE_LIBCXX=yes}
+# 121's 'gcc_link_wrapper.py' currently fails if not using lld due to the addition of rust
+: ${CHROMIUM_FORCE_LLD=yes}
+
+: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
+
+VIRTUALX_REQUIRED="pgo"
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://www.chromium.org/"
+PATCHSET_PPC64="121.0.6167.85-1raptor0~deb12u1"
+PATCH_V="${PV%%\.*}-1"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	system-toolchain? (
+		https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+	)
+	!system-toolchain? (
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${GOOGLE_CLANG_VER}.tar.xz
+			-> ${P}-clang.tar.xz
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${GOOGLE_RUST_VER}-${GOOGLE_CLANG_VER%??}.tar.xz
+			-> ${P}-rust.tar.xz
+	)
+	ppc64? (
+		https://quickbuild.io/~raptor-engineering-public/+archive/ubuntu/chromium/+files/chromium_${PATCHSET_PPC64}.debian.tar.xz
+		https://deps.gentoo.zip/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/beta"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
+IUSE="+X ${IUSE_SYSTEM_LIBS} cups debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo +proprietary-codecs pulseaudio"
+IUSE+=" qt5 qt6 screencast selinux +system-toolchain vaapi wayland widevine"
+REQUIRED_USE="
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+	qt6? ( qt5 )
+	screencast? ( wayland )
+	!system-toolchain? ( libcxx )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.12.4:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	system-zstd? ( >=app-arch/zstd-1.5.5:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+# When passed multiple arguments we assume that
+# we want a range of versions, inclusive.
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	elif [[ $# -eq 2 ]]; then
+		if [[ $1 -eq $2 ]]; then
+			depend_clang_llvm_version "$1"
+		fi
+		echo "|| ("
+		for ((i=$1; i<=$2; i++)); do
+			echo "("
+			depend_clang_llvm_version "${i}"
+			echo ")"
+		done
+		echo ")"
+	else
+		die "depend_clang_llvm_versions() requires 1 or 2 arguments"
+	fi
+}
+
+# #923010 - add `profiler` USE to rust-bin
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
+	)
+	system-toolchain? (
+		libcxx? ( >=sys-devel/clang-${LLVM_MIN_SLOT} )
+		lto? ( $(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT}) )
+		pgo? (
+			>=dev-python/selenium-3.141.0
+			>=dev-util/web_page_replay_go-20220314
+			$(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT})
+		)
+		>=dev-lang/rust-${RUST_MIN_VER}[profiler]
+		>=dev-build/gn-${GN_MIN_VER}
+	)
+	dev-lang/perl
+	>=dev-build/ninja-1.7.2
+	>=dev-util/gperf-3.0.3
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+="system-toolchain? ( >=sys-devel/clang-${LLVM_MIN_SLOT} ) "
+fi
+
+if [[ ${CHROMIUM_FORCE_LLD} == yes ]]; then
+	BDEPEND+="system-toolchain? ( >=sys-devel/lld-${LLVM_MIN_SLOT} ) "
+else
+	# #918897: Hack for arm64
+	BDEPEND+=" arm64? ( >=sys-devel/lld-${LLVM_MIN_SLOT} )"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+needs_lld() {
+	# #641556: Force lld for lto and pgo builds, otherwise disable
+	# #918897: Temporary hack w/ use arm64
+	[[ ${CHROMIUM_FORCE_LLD} == yes ]] || tc-ld-is-lld || use lto || use pgo || use arm64
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements: bugs #471810, #541816, #914220
+	# We're going to start doing maths here on the size of an unpacked source tarball,
+	# this should make updates easier as chromium continues to balloon in size.
+	local BASE_DISK=18
+	local EXTRA_DISK=1
+	local CHECKREQS_MEMORY="4G"
+	tc-is-cross-compiler && EXTRA_DISK=2
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		tc-is-cross-compiler && EXTRA_DISK=4
+		use pgo && EXTRA_DISK=8
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags; then
+			EXTRA_DISK=13
+		fi
+		CHECKREQS_MEMORY="16G"
+	fi
+	CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G"
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	if use system-toolchain && needs_clang; then
+		llvm_pkg_setup
+	fi
+
+	pre_build_checks
+
+	if [[ ${MERGE_TYPE} != binary ]] && use system-toolchain; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge ${GCC_MIN_VER}; then
+			die "At least gcc ${GCC_MIN_VER} is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang && ! tc-is-clang; then
+			if tc-is-cross-compiler; then
+				CPP="${CBUILD}-clang++ -E"
+			else
+				CPP="${CHOST}-clang++ -E"
+			fi
+			if ver_test "$(clang-major-version)" -lt ${LLVM_MIN_SLOT}; then
+				die "At least Clang ${LLVM_MIN_SLOT} is required"
+			fi
+		fi
+		# Users should never hit this, it's purely a development convenience
+		if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+				die "dev-util/gn >= ${GN_MIN_VER} is required to build this Chromium"
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-117-system-zstd.patch"
+		"${FILESDIR}/chromium-119-minizip-cast.patch"
+	)
+
+	if use system-toolchain; then
+		# The patchset is really only required if we're not using the system-toolchain
+		PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" )
+		# We can't use the bundled compiler builtins
+		sed -i -e \
+			"/if (is_clang && toolchain_has_rust) {/,+2d" \
+			build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins"
+	else
+		mkdir -p third_party/llvm-build/Release+Asserts || die "Failed to bundle llvm"
+		ln -s "${WORKDIR}"/bin third_party/llvm-build/Release+Asserts/bin || die "Failed to symlink llvm bin"
+		ln -s "${WORKDIR}"/lib third_party/llvm-build/Release+Asserts/lib || die "Failed to symlink llvm lib"
+		echo "${GOOGLE_CLANG_VER}" > third_party/llvm-build/Release+Asserts/cr_build_revision || \
+			die "Failed to set clang version"
+		ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
+		cp "${WORKDIR}"/rust-toolchain/VERSION \
+			"${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
+	fi
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+	fi
+
+	if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+		PATCHES+=( "${FILESDIR}/chromium-119.0.6045.159-icu-74.patch" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/volk
+		third_party/anonymous_tokens
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/d3
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/ffmpeg
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/lit
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/SVT-AV1
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/puffin
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/re2
+		third_party/rnnoise
+		third_party/rust
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite/src/third_party/xla/third_party/tsl
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+
+	# USE=system-*
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+
+	if ! use system-zstd; then
+		keeplibs+=( third_party/zstd )
+	fi
+
+	if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libc++ )
+	fi
+
+	if ! use system-toolchain || [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == yes ]]; then
+			keeplibs+=( third_party/llvm )
+	fi
+
+	# Arch-specific
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	einfo "Unbundling third-party libraries ..."
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_rust_version_check() {
+	[[ ${MERGE_TYPE} == binary ]] && return
+	local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
+	rustc_version=${rustc_version[0]#rust-bin-}
+	rustc_version=${rustc_version#rust-}
+
+	[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+	echo $rustc_version
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	if use system-toolchain && [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == no ]]; then
+		# Make sure the build system will use the right tools, bug #340795.
+		tc-export AR CC CXX NM
+
+		if needs_clang && ! tc-is-clang; then
+			# Force clang since gcc is either broken or build is using libcxx.
+			if tc-is-cross-compiler; then
+				CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+				CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+				BUILD_CC=${CBUILD}-clang
+				BUILD_CXX=${CBUILD}-clang++
+			else
+				CC=${CHOST}-clang
+				CXX=${CHOST}-clang++
+			fi
+			strip-unsupported-flags
+		fi
+
+		if tc-is-clang; then
+			myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+		else
+			myconf_gn+=" is_clang=false"
+		fi
+
+		if needs_lld ; then
+			# https://bugs.gentoo.org/918897#c32
+			append-ldflags -Wl,--undefined-version
+			myconf_gn+=" use_lld=true"
+		else
+			# This doesn't prevent lld from being used, but rather prevents gn from forcing it
+			myconf_gn+=" use_lld=false"
+		fi
+
+		if use lto; then
+			AR=llvm-ar
+			NM=llvm-nm
+			if tc-is-cross-compiler; then
+				BUILD_AR=llvm-ar
+				BUILD_NM=llvm-nm
+			fi
+		fi
+
+		myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+		if tc-is-cross-compiler; then
+			tc-export BUILD_{AR,CC,CXX,NM}
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+			myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+			# setup cups-config, build system only uses --libs option
+			if use cups; then
+				mkdir "${T}/cups-config" || die
+				cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+				export PATH="${PATH}:${T}/cups-config"
+			fi
+
+			# Don't inherit PKG_CONFIG_PATH from environment
+			local -x PKG_CONFIG_PATH=
+		else
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+		fi
+
+		local rustc_ver
+		rustc_ver=$(chromium_rust_version_check)
+		if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
+			eerror "Rust >=${RUST_MIN_VER} is required"
+			eerror "Please run 'eselect rust' and select the correct rust version"
+			die "Selected rust version is too old"
+		else
+			einfo "Using rust ${rustc_ver} to build"
+		fi
+		myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
+		myconf_gn+=" rustc_version=\"${rustc_ver}\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-zstd; then
+		gn_system_libraries+=( zstd )
+	fi
+
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# Allows distributions to link pulseaudio directly (DT_NEEDED) instead of
+	# using dlopen. This helps with automated detection of ABI mismatches and
+	# prevents silent errors.
+	if use pulseaudio; then
+		myconf_gn+=" link_pulseaudio=true"
+	fi
+
+	# Non-developer builds of Chromium (for example, non-Chrome browsers, or
+	# Chromium builds provided by Linux distros) should disable the testing config
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	if use system-toolchain; then
+		myconf_gn+=" use_gold=false"
+	fi
+
+	# The sysroot is the oldest debian image that chromium supports, we don't need it
+	myconf_gn+=" use_sysroot=false"
+
+	# This determines whether or not GN uses the bundled
+	# default: true
+	if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		myconf_gn+=" use_custom_libcxx=true"
+	else
+		myconf_gn+=" use_custom_libcxx=false"
+	fi
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		filter-flags "-g*"
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			local -x CPP="$(tc-getCXX) -E"
+			# https://bugs.gentoo.org/912381
+			filter-lto
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Don't need nocompile checks and GN crashes with our config
+	myconf_gn+=" enable_nocompile_tests=false enable_nocompile_tests_new=false"
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+			fi
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
+		fi
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium ..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	newexe out/Release/chrome_sandbox chrome-sandbox
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-119-minizip-cast.patch b/www-client/chromium/files/chromium-119-minizip-cast.patch
new file mode 100644
index 000000000000..0d03e8ea3d9b
--- /dev/null
+++ b/www-client/chromium/files/chromium-119-minizip-cast.patch
@@ -0,0 +1,23 @@
+clang-16 does not get the types for an aggregate right and fails with narrowing error
+--- a/third_party/zlib/google/zip_internal.cc
++++ b/third_party/zlib/google/zip_internal.cc
+@@ -260,13 +260,12 @@ zip_fileinfo TimeToZipFileInfo(const base::Time& file_time) {
+     // It assumes that dates below 1980 are in the double digit format.
+     // Hence the fail safe option is to leave the date unset. Some programs
+     // might show the unset date as 1980-0-0 which is invalid.
+-    zip_info.tmz_date = {
+-        .tm_sec = static_cast<uInt>(file_time_parts.second),
+-        .tm_min = static_cast<uInt>(file_time_parts.minute),
+-        .tm_hour = static_cast<uInt>(file_time_parts.hour),
+-        .tm_mday = static_cast<uInt>(file_time_parts.day_of_month),
+-        .tm_mon = static_cast<uInt>(file_time_parts.month - 1),
+-        .tm_year = static_cast<uInt>(file_time_parts.year)};
++    zip_info.tmz_date.tm_sec = static_cast<uInt>(file_time_parts.second);
++    zip_info.tmz_date.tm_min = static_cast<uInt>(file_time_parts.minute);
++    zip_info.tmz_date.tm_hour = static_cast<uInt>(file_time_parts.hour);
++    zip_info.tmz_date.tm_mday = static_cast<uInt>(file_time_parts.day_of_month);
++    zip_info.tmz_date.tm_mon = static_cast<uInt>(file_time_parts.month - 1);
++    zip_info.tmz_date.tm_year = static_cast<uInt>(file_time_parts.year);
+   }
+ 
+   return zip_info;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2024-01-31  9:42 Sam James
  0 siblings, 0 replies; 149+ messages in thread
From: Sam James @ 2024-01-31  9:42 UTC (permalink / raw
  To: gentoo-commits

commit:     f48b12db292959fbc68cc38066e6cfdf1e19cd9e
Author:     Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
AuthorDate: Sun Jan 28 10:51:40 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jan 31 09:41:20 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f48b12db

www-client/chromium: add 122.0.6261.6-r1

This ebuild adds support for building with a reduced patchset,
using the Google toolchain. It's not going to be nearly as flexible
as using the system toolchain, but will help to future-proof us against
the use of prerelease clang or rust features in a stable ebuild.

Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-client/chromium/Manifest                       |    3 +
 .../chromium/chromium-122.0.6261.6-r1.ebuild       | 1366 ++++++++++++++++++++
 .../chromium/files/chromium-117-system-zstd.patch  |   46 +
 3 files changed, 1415 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 626f4422edf3..0c2c7245acd9 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,9 +4,12 @@ DIST chromium-121.0.6167.85.tar.xz 3332417624 BLAKE2B 8568f224d5a749b01b7521822e
 DIST chromium-122.0.6261.6.tar.xz 3408053180 BLAKE2B 8dd67c992aa364dca54039fe0cad95d0284dcad2c2052f1c4f1612146148701450a9e745a2fadc26d76ecee6f716accfd0f162160faad55f7c63b812cc0e659c SHA512 729fe19fb2e6917ed8936bb7502edd4247e0cdf44334cb6369f774e8794cd8a2418bceece9e3c484e266212e0b56639ef936dfb64629c826bf928aed756b802c
 DIST chromium-patches-120.tar.bz2 8630 BLAKE2B aa815521d027036757e5316478c2974e107185662d4c6a200bc7f448558730a3cb11e0a6e28d6a48ff60379813eed10d91c04917002228cf97c8448423cc0994 SHA512 1af05a17c54ea2f23b6f18b40c21304a94076eda4f9dcdf34ff93e1a729ae5a6b69816d32b5855b1cbb412eefaefb3d343fce05afd99347dcf9302a1d47ad3e6
 DIST chromium-patches-121.tar.bz2 5861 BLAKE2B 450591b24933f8bd194865960dcb33dbcf4b560dfe384436ad26d780c6f815b615d419fcaf4b3507cf1ced5c0ab6be9381a5101d1ff1441a3a9425911560c07a SHA512 12f356ae5deafa553b9a709eb72ee7f761fd3f0bd36b9c7542433bbe7825e3dc98ba6639ca8be7fcd766df52c3b77c629c84da545351f5089d7c10343da45f48
+DIST chromium-patches-122-1.tar.bz2 4868 BLAKE2B b2483fc908da3a85e23227ebf7a4006723b78cb7279fc81b4dcce14f147541cdef238d08035f4155368f1695b9be706de696b8141db8e94506beddd82e547b9b SHA512 245eb3e476beef57db028f984d88dbcf5c227f7875c2aa2da0949b884f88e811196de8f126a84cf24baab29103d3566750ea44eba1f1c948a829f6d3e3b2e9ea
 DIST chromium-patches-122.tar.bz2 5253 BLAKE2B c79199004d14cff23194da2fa394df9cda41507e6c60b0c844769eefd06fd80eacf07de2a27d757177f371d0d2636bfbf20570a1357d077774afd4e70936c621 SHA512 44fccce109f3e30ed64bfc99b9ef09245af763697aa77af06415d5270a27eb2773c8ae848c94288a94d9889a959da855965bb025775876f9c230a7ac9893e9da
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_119.0.6045.159-1raptor0~deb12u1.debian.tar.xz 522464 BLAKE2B 687636b3c8f9b89db64b16643f6832cd2711f54f4be309d7e8dbaf0b8647bb3400ac095fa497f8a887bde628b521724f21f97a1273ab719f16d9f4114c36a6f0 SHA512 a4724ec5df4f3cfac7ede1514d8e886de20580bb812fed3a3e240e4ad91522b047a7bb065ab9e4402cffb9e8608c5cdc71d10c8b132f27d294ebb44db12294e4
 DIST chromium_120.0.6099.109-1raptor0~deb12u1.debian.tar.xz 534108 BLAKE2B ebfe063c5a141e3cd0f861c753c366297f868a5b475a6d4cfe136baec9b979f909e24f9d6eceeb215b9084a9c087c5fb5eb49e8d26921028b943c119a440356a SHA512 62d4d492f579d1bffeaec9778f275df5ee615f434c1ea5764f7feecec6004bc9862c114caf6b86737a433d97e822f14df5a5871b9cbc7bc891bf48d706d5bccf
 DIST chromium_120.0.6099.199-1raptor0~deb12u1.debian.tar.xz 534452 BLAKE2B 78a59831063256a96730f1b981fa52051ba920055ac863b9114d59532a0db3da664660404a6f2b5d6cd669dece149c7b74d85b995ee826a4d7874462d94b244c SHA512 f345faa72117f66c9819e3d1e304c811ac3a79af77bad1232109f912cbfeadabcdd5e38c29dadedd2e1c7d8447abbb45a426a5c0e9123f55fd853912607c1fd2
+DIST chromium-122.0.6261.6-clang.tar.xz 50107164 BLAKE2B 6b07470aa9a3606d27784c4abfd1577ead70cc2c310c2db47d486a64d93d9984d9b7737493a9c30ea7e0f0868291f3aac8058ba23f81f940469d23bafa260bf1 SHA512 a46a7869bff2e5edd34167751257453fd89eae92bd5e291c4408ff0234997b04fae3df7906f46d83f72da5c4f11199489a14d8a55251d0efc3c0ffc1c56d9e22
+DIST chromium-122.0.6261.6-rust.tar.xz 140507448 BLAKE2B cb00e65a617801b59a852d921ec1600f577a5a4d16a2df37d413de5cfa9d7274fd8e54d9bf8d21a94f93230e2a27a50f55a36d65e774daf38ba08ba292f52a45 SHA512 2cec9e9a84a494babe581aa900bc76babb3ba7c4622bf050537adf234644f054426eea87c01a037dc7e5f850dec55498d45e982ae334b8d6e99a85679c8aed79

diff --git a/www-client/chromium/chromium-122.0.6261.6-r1.ebuild b/www-client/chromium/chromium-122.0.6261.6-r1.ebuild
new file mode 100644
index 000000000000..4b296b828d45
--- /dev/null
+++ b/www-client/chromium/chromium-122.0.6261.6-r1.ebuild
@@ -0,0 +1,1366 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Can't do 12 yet: heavy use of imp, among other things (bug #915001, bug #915062)
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="xml(+)"
+
+# PACKAGING NOTES:
+# Google roll their bundled Clang every two weeks, and the bundled Rust
+# is rolled regularly and depends on that. While we do our best to build
+# with system Clang, we will eventually hit the point where we need to use
+# the bundled Clang due to the use of prerelease features. We've been lucky
+# enough so far that this hasn't been an issue.
+
+# We try and avoid forcing the use of libcxx, but sometimes it is unavoidable.
+# Remember to force the use of Clang when this is forced.
+
+# GCC is _not_ supported upstream, though patches are welcome. We do our
+# best to enable builds with GCC but reserve the right to force Clang
+# builds if we can't keep up with upstream's changes. Please comment
+# when forcing Clang builds so we can track the need for it.
+
+# GN is bundled with Chromium, but we always use the system version. Remember to
+# check for upstream changes to GN and update ebuild (and version below) as required.
+
+# These variables let us easily bound supported major dependency versions in one place.
+GCC_MIN_VER=12
+GN_MIN_VER=0.2143
+LLVM_MAX_SLOT=17
+LLVM_MIN_SLOT=16
+RUST_MIN_VER=1.72.0
+# grep 'CLANG_REVISION = ' ${S}/tools/clang/scripts/update.py -A1 | cut -c 18-
+GOOGLE_CLANG_VER="llvmorg-18-init-16072-gc4146121e940-5"
+# grep 'RUST_REVISION = ' ${S}/tools/rust/update_rust.py -A1 | cut -c 17-
+GOOGLE_RUST_VER="df0295f07175acc7325ce3ca4152eb05752af1f2-5"
+
+# https://bugs.chromium.org/p/v8/issues/detail?id=14449 - V8 used in 120 can't build with GCC
+: ${CHROMIUM_FORCE_CLANG=yes}
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227 - Chromium 120:
+#    webrtc -  no matching member function for call to 'emplace'
+: ${CHROMIUM_FORCE_LIBCXX=yes}
+# 121's 'gcc_link_wrapper.py' currently fails if not using lld due to the addition of rust
+: ${CHROMIUM_FORCE_LLD=yes}
+
+: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
+
+VIRTUALX_REQUIRED="pgo"
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://www.chromium.org/"
+PATCHSET_PPC64="119.0.6045.159-1raptor0~deb12u1"
+PATCH_V="${PV%%\.*}-1"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	system-toolchain? (
+		https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+	)
+	!system-toolchain? (
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${GOOGLE_CLANG_VER}.tar.xz
+			-> ${P}-clang.tar.xz
+		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${GOOGLE_RUST_VER}-${GOOGLE_CLANG_VER%??}.tar.xz
+			-> ${P}-rust.tar.xz
+	)
+	ppc64? (
+		https://quickbuild.io/~raptor-engineering-public/+archive/ubuntu/chromium/+files/chromium_${PATCHSET_PPC64}.debian.tar.xz
+		https://deps.gentoo.zip/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/beta"
+KEYWORDS="~amd64 ~arm64"
+IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
+IUSE="+X ${IUSE_SYSTEM_LIBS} cups debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo +proprietary-codecs pulseaudio"
+IUSE+=" qt5 qt6 screencast selinux +system-toolchain vaapi wayland widevine"
+REQUIRED_USE="
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+	qt6? ( qt5 )
+	screencast? ( wayland )
+	!system-toolchain? ( libcxx )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.12.4:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	system-zstd? ( >=app-arch/zstd-1.5.5:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+# When passed multiple arguments we assume that
+# we want a range of versions, inclusive.
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	elif [[ $# -eq 2 ]]; then
+		if [[ $1 -eq $2 ]]; then
+			depend_clang_llvm_version "$1"
+		fi
+		echo "|| ("
+		for ((i=$1; i<=$2; i++)); do
+			echo "("
+			depend_clang_llvm_version "${i}"
+			echo ")"
+		done
+		echo ")"
+	else
+		die "depend_clang_llvm_versions() requires 1 or 2 arguments"
+	fi
+}
+
+# #923010 - add `profiler` USE to rust-bin
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
+	)
+	system-toolchain? (
+		libcxx? ( >=sys-devel/clang-${LLVM_MIN_SLOT} )
+		lto? ( $(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT}) )
+		pgo? (
+			>=dev-python/selenium-3.141.0
+			>=dev-util/web_page_replay_go-20220314
+			$(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT})
+		)
+		>=dev-lang/rust-${RUST_MIN_VER}[profiler]
+		>=dev-build/gn-${GN_MIN_VER}
+	)
+	dev-lang/perl
+	>=dev-build/ninja-1.7.2
+	>=dev-util/gperf-3.0.3
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+="system-toolchain? ( >=sys-devel/clang-${LLVM_MIN_SLOT} ) "
+fi
+
+if [[ ${CHROMIUM_FORCE_LLD} == yes ]]; then
+	BDEPEND+="system-toolchain? ( >=sys-devel/lld-${LLVM_MIN_SLOT} ) "
+else
+	# #918897: Hack for arm64
+	BDEPEND+=" arm64? ( >=sys-devel/lld-${LLVM_MIN_SLOT} )"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+needs_lld() {
+	# #641556: Force lld for lto and pgo builds, otherwise disable
+	# #918897: Temporary hack w/ use arm64
+	[[ ${CHROMIUM_FORCE_LLD} == yes ]] || use lto || use pgo || use arm64
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements: bugs #471810, #541816, #914220
+	# We're going to start doing maths here on the size of an unpacked source tarball,
+	# this should make updates easier as chromium continues to balloon in size.
+	local BASE_DISK=18
+	local EXTRA_DISK=1
+	local CHECKREQS_MEMORY="4G"
+	tc-is-cross-compiler && EXTRA_DISK=2
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		tc-is-cross-compiler && EXTRA_DISK=4
+		use pgo && EXTRA_DISK=8
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags; then
+			EXTRA_DISK=13
+		fi
+		CHECKREQS_MEMORY="16G"
+	fi
+	CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G"
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	if use system-toolchain && needs_clang; then
+		llvm_pkg_setup
+	fi
+
+	pre_build_checks
+
+	if [[ ${MERGE_TYPE} != binary ]] && use system-toolchain; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge ${GCC_MIN_VER}; then
+			die "At least gcc ${GCC_MIN_VER} is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang && ! tc-is-clang; then
+			if tc-is-cross-compiler; then
+				CPP="${CBUILD}-clang++ -E"
+			else
+				CPP="${CHOST}-clang++ -E"
+			fi
+			if ver_test "$(clang-major-version)" -lt ${LLVM_MIN_SLOT}; then
+				die "At least Clang ${LLVM_MIN_SLOT} is required"
+			fi
+		fi
+		# Users should never hit this, it's purely a development convenience
+		if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+				die "dev-util/gn >= ${GN_MIN_VER} is required to build this Chromium"
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-117-system-zstd.patch"
+	)
+
+	if use system-toolchain; then
+		# The patchset is really only required if we're not using the system-toolchain
+		PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" )
+		# We can't use the bundled compiler builtins
+		sed -i -e \
+			"/if (is_clang && toolchain_has_rust) {/,+2d" \
+			build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins"
+	else
+		mkdir -p third_party/llvm-build/Release+Asserts || die "Failed to bundle llvm"
+		ln -s "${WORKDIR}"/bin third_party/llvm-build/Release+Asserts/bin || die "Failed to symlink llvm bin"
+		ln -s "${WORKDIR}"/lib third_party/llvm-build/Release+Asserts/lib || die "Failed to symlink llvm lib"
+		echo "${GOOGLE_CLANG_VER}" > third_party/llvm-build/Release+Asserts/cr_build_revision || \
+			die "Failed to set clang version"
+		ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
+		cp "${WORKDIR}"/rust-toolchain/VERSION \
+			"${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
+	fi
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+	fi
+
+	if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+		PATCHES+=( "${FILESDIR}/chromium-119.0.6045.159-icu-74.patch" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/volk
+		third_party/anonymous_tokens
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/d3
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/ffmpeg
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/lit
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/SVT-AV1
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/puffin
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/re2
+		third_party/rnnoise
+		third_party/rust
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite/src/third_party/xla/third_party/tsl
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+
+	# USE=system-*
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+
+	if ! use system-zstd; then
+		keeplibs+=( third_party/zstd )
+	fi
+
+	if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libc++ )
+	fi
+
+	if ! use system-toolchain || [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == yes ]]; then
+			keeplibs+=( third_party/llvm )
+	fi
+
+	# Arch-specific
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	einfo "Unbundling third-party libraries ..."
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_rust_version_check() {
+	[[ ${MERGE_TYPE} == binary ]] && return
+	local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
+	rustc_version=${rustc_version[0]#rust-bin-}
+	rustc_version=${rustc_version#rust-}
+
+	[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+	echo $rustc_version
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	if use system-toolchain && [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == no ]]; then
+		# Make sure the build system will use the right tools, bug #340795.
+		tc-export AR CC CXX NM
+
+		if needs_clang && ! tc-is-clang; then
+			# Force clang since gcc is either broken or build is using libcxx.
+			if tc-is-cross-compiler; then
+				CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+				CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+				BUILD_CC=${CBUILD}-clang
+				BUILD_CXX=${CBUILD}-clang++
+			else
+				CC=${CHOST}-clang
+				CXX=${CHOST}-clang++
+			fi
+			strip-unsupported-flags
+		fi
+
+		if tc-is-clang; then
+			myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+		else
+			myconf_gn+=" is_clang=false"
+		fi
+
+		if needs_lld ; then
+			# https://bugs.gentoo.org/918897#c32
+			append-ldflags -Wl,--undefined-version
+			myconf_gn+=" use_lld=true"
+		else
+			# This doesn't prevent lld from being used, but rather prevents gn from forcing it
+			myconf_gn+=" use_lld=false"
+		fi
+
+		if use lto; then
+			AR=llvm-ar
+			NM=llvm-nm
+			if tc-is-cross-compiler; then
+				BUILD_AR=llvm-ar
+				BUILD_NM=llvm-nm
+			fi
+		fi
+
+		myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+		if tc-is-cross-compiler; then
+			tc-export BUILD_{AR,CC,CXX,NM}
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+			myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+			myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+			# setup cups-config, build system only uses --libs option
+			if use cups; then
+				mkdir "${T}/cups-config" || die
+				cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+				export PATH="${PATH}:${T}/cups-config"
+			fi
+
+			# Don't inherit PKG_CONFIG_PATH from environment
+			local -x PKG_CONFIG_PATH=
+		else
+			myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+		fi
+
+		local rustc_ver
+		rustc_ver=$(chromium_rust_version_check)
+		if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
+			eerror "Rust >=${RUST_MIN_VER} is required"
+			eerror "Please run 'eselect rust' and select the correct rust version"
+			die "Selected rust version is too old"
+		else
+			einfo "Using rust ${rustc_ver} to build"
+		fi
+		myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
+		myconf_gn+=" rustc_version=\"${rustc_ver}\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-zstd; then
+		gn_system_libraries+=( zstd )
+	fi
+
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# Allows distributions to link pulseaudio directly (DT_NEEDED) instead of
+	# using dlopen. This helps with automated detection of ABI mismatches and
+	# prevents silent errors.
+	if use pulseaudio; then
+		myconf_gn+=" link_pulseaudio=true"
+	fi
+
+	# Non-developer builds of Chromium (for example, non-Chrome browsers, or
+	# Chromium builds provided by Linux distros) should disable the testing config
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	if use system-toolchain; then
+		myconf_gn+=" use_gold=false"
+	fi
+
+	# The sysroot is the oldest debian image that chromium supports, we don't need it
+	myconf_gn+=" use_sysroot=false"
+
+	# This determines whether or not GN uses the bundled
+	# default: true
+	if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		myconf_gn+=" use_custom_libcxx=true"
+	else
+		myconf_gn+=" use_custom_libcxx=false"
+	fi
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		filter-flags "-g*"
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			local -x CPP="$(tc-getCXX) -E"
+			# https://bugs.gentoo.org/912381
+			filter-lto
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Don't need nocompile checks and GN crashes with our config
+	myconf_gn+=" enable_nocompile_tests=false enable_nocompile_tests_new=false"
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+			fi
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
+		fi
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium ..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	newexe out/Release/chrome_sandbox chrome-sandbox
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-117-system-zstd.patch b/www-client/chromium/files/chromium-117-system-zstd.patch
new file mode 100644
index 000000000000..0fcd3efc3a05
--- /dev/null
+++ b/www-client/chromium/files/chromium-117-system-zstd.patch
@@ -0,0 +1,46 @@
+From ae3ae3711784865bdc38bf119a6182a7b8dae91c Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Sun, 17 Sep 2023 16:51:42 +1000
+Subject: [PATCH] Add system-zstd
+
+--- a/build/linux/unbundle/replace_gn_files.py
++++ b/build/linux/unbundle/replace_gn_files.py
+@@ -74,6 +74,7 @@ REPLACEMENTS = {
+   #
+   'woff2': 'third_party/woff2/BUILD.gn',
+   'zlib': 'third_party/zlib/BUILD.gn',
++  'zstd': 'third_party/zstd/BUILD.gn',
+ }
+ 
+ 
+--- /dev/null
++++ b/build/linux/unbundle/zstd.gn
+@@ -0,0 +1,25 @@
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_zstd") {
++  packages = [ "libzstd" ]
++}
++
++shim_headers("zstd_shim") {
++  root_path = "src/lib"
++  headers = [
++    "zdict.h",
++    "zstd.h",
++    "zstd_errors.h",
++  ]
++}
++
++source_set("zstd") {
++  deps = [ ":zstd_shim" ]
++  public_configs = [ ":system_zstd" ]
++}
++
++source_set("decompress") {
++  deps = [ ":zstd_shim" ]
++  public_configs = [ ":system_zstd" ]
++}
+-- 
+2.42.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-11-24 22:48 Sam James
  0 siblings, 0 replies; 149+ messages in thread
From: Sam James @ 2023-11-24 22:48 UTC (permalink / raw
  To: gentoo-commits

commit:     ebf5fd28b663af33956cbda5b68dc758400b51ba
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 24 22:47:25 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Nov 24 22:48:07 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ebf5fd28

www-client/chromium: fix compat. w/ icu-74.1

Use the same workaround as for qtwebengine:6.

Closes: https://bugs.gentoo.org/917645
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../chromium/chromium-119.0.6045.159-r1.ebuild     | 1258 ++++++++++++++++++++
 .../files/chromium-119.0.6045.159-icu-74.patch     |   21 +
 2 files changed, 1279 insertions(+)

diff --git a/www-client/chromium/chromium-119.0.6045.159-r1.ebuild b/www-client/chromium/chromium-119.0.6045.159-r1.ebuild
new file mode 100644
index 000000000000..8d16e726548e
--- /dev/null
+++ b/www-client/chromium/chromium-119.0.6045.159-r1.ebuild
@@ -0,0 +1,1258 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Can't do 12 yet: heavy use of imp, among other things (bug #915001, bug #915062)
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="xml(+)"
+
+# These variables let us easily bound supported compiler versions in one place.
+# The bundled Clang is updated by Google every ~two weeks, so we can't
+# just assume that anything other than the latest version in ::gentoo
+# will work (and even that will probably break occasionally)
+LLVM_MAX_SLOT=17
+LLVM_MIN_SLOT=16
+MIN_GCC_VER=12
+GN_MIN_VER=0.2122
+
+VIRTUALX_REQUIRED="pgo"
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://www.chromium.org/"
+PATCHSET_PPC64="118.0.5993.70-1raptor0~deb11u1"
+PATCH_V="${PV%%\.*}-3"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+	ppc64? (
+		https://quickbuild.io/~raptor-engineering-public/+archive/ubuntu/chromium/+files/chromium_${PATCHSET_PPC64}.debian.tar.xz
+		https://deps.gentoo.zip/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/stable"
+KEYWORDS="~amd64 ~arm64"
+IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
+IUSE="+X ${IUSE_SYSTEM_LIBS} cups debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo +proprietary-codecs pulseaudio qt5 qt6 screencast selinux vaapi wayland widevine"
+REQUIRED_USE="
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+	qt6? ( qt5 )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	system-zstd? ( >=app-arch/zstd-1.5.5:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+# When passed multiple arguments we assume that
+# we want a range of versions, inclusive.
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	elif [[ $# -eq 2 ]]; then
+		if [[ $1 -eq $2 ]]; then
+			depend_clang_llvm_version "$1"
+		fi
+		echo "|| ("
+		for ((i=$1; i<=$2; i++)); do
+			echo "("
+			depend_clang_llvm_version "${i}"
+			echo ")"
+		done
+		echo ")"
+	else
+		die "depend_clang_llvm_versions() requires 1 or 2 arguments"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
+	)
+	libcxx? ( >=sys-devel/clang-${LLVM_MIN_SLOT} )
+	lto? ( $(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT}) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT})
+	)
+	dev-lang/perl
+	>=dev-util/gn-${GN_MIN_VER}
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-${LLVM_MIN_SLOT}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements: bugs #471810, #541816, #914220
+	# We're going to start doing maths here on the size of an unpacked source tarball,
+	# this should make updates easier as chromium continues to balloon in size.
+	local BASE_DISK=18
+	local EXTRA_DISK=1
+	local CHECKREQS_MEMORY="4G"
+	tc-is-cross-compiler && EXTRA_DISK=2
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		tc-is-cross-compiler && EXTRA_DISK=4
+		use pgo && EXTRA_DISK=8
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags; then
+			EXTRA_DISK=13
+		fi
+		CHECKREQS_MEMORY="16G"
+	fi
+	CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G"
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	if use lto || use pgo; then
+		llvm_pkg_setup
+	fi
+
+	pre_build_checks
+
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge ${MIN_GCC_VER}; then
+			die "At least gcc ${MIN_GCC_VER} is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang && ! tc-is-clang; then
+			if tc-is-cross-compiler; then
+				CPP="${CBUILD}-clang++ -E"
+			else
+				CPP="${CHOST}-clang++ -E"
+			fi
+			if ver_test "$(clang-major-version)" -lt ${LLVM_MIN_SLOT}; then
+				die "At least Clang ${LLVM_MIN_SLOT} is required"
+			fi
+		fi
+		# Users should never hit this, it's purely a development convenience
+		if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+				die "dev-util/gn >= ${GN_MIN_VER} is required to build this Chromium"
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	local PATCHES=(
+		"${WORKDIR}/chromium-patches-${PATCH_V}"
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+	)
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+	fi
+
+	if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+		PATCHES+=( "${FILESDIR}/chromium-119.0.6045.159-icu-74.patch" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/volk
+		third_party/anonymous_tokens
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/d3
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/ffmpeg
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/SVT-AV1
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/puffin
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/re2
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite/src/third_party/xla/third_party/tsl
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+
+	# USE=system-*
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+
+	if ! use system-zstd; then
+		keeplibs+=( third_party/zstd )
+	fi
+
+	if use libcxx; then
+		keeplibs+=( third_party/libc++ )
+	fi
+
+	# Arch-specific
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	einfo "Unbundling third-party libraries ..."
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto and pgo builds, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# Disable rust for now; it's only used for testing and we don't need the additional bdep
+	myconf_gn+=" enable_rust=false"
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-zstd; then
+		gn_system_libraries+=( zstd )
+	fi
+
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		filter-flags "-g*"
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			local -x CPP="$(tc-getCXX) -E"
+			local gcc_version="$(gcc-version)"
+			local need_gcc_fix=false
+			# Drop this complexity as gcc versions age out of ::gentoo
+			if ver_test "${gcc_version}" -lt 12.3; then
+				need_gcc_fix=true
+			elif ver_test "${gcc_version}" -ge 13 && ver_test "${gcc_version}" -lt 13.2; then
+				need_gcc_fix=true
+			fi
+			[[ ${need_gcc_fix} = true ]] && append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)"
+			# https://bugs.gentoo.org/912381
+			filter-lto
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Don't need nocompile checks and GN crashes with our config
+	myconf_gn+=" enable_nocompile_tests=false enable_nocompile_tests_new=false"
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+			fi
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
+		fi
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium ..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	newexe out/Release/chrome_sandbox chrome-sandbox
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-119.0.6045.159-icu-74.patch b/www-client/chromium/files/chromium-119.0.6045.159-icu-74.patch
new file mode 100644
index 000000000000..efb8fb161c61
--- /dev/null
+++ b/www-client/chromium/files/chromium-119.0.6045.159-icu-74.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/917645
+(copied patch from qtwebengine:6 - https://bugs.gentoo.org/917633)
+
+Quick fix for a static_assert failure with icu74. Still waiting
+for a proper upstream fix and unknown if entirely right, but is
+an extension of [1] (is now 48 rather than 43).
+
+[1] https://crrev.com/e60b571faa3f14dd9119a6792dccf12f8bf80192
+--- a/third_party/blink/renderer/platform/text/text_break_iterator.cc
++++ b/third_party/blink/renderer/platform/text/text_break_iterator.cc
+@@ -161,7 +161,9 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar
+ };
+ // clang-format on
+ 
+-#if U_ICU_VERSION_MAJOR_NUM >= 58
++#if U_ICU_VERSION_MAJOR_NUM >= 74
++#define BA_LB_COUNT (U_LB_COUNT - 8)
++#elif U_ICU_VERSION_MAJOR_NUM >= 58
+ #define BA_LB_COUNT (U_LB_COUNT - 3)
+ #else
+ #define BA_LB_COUNT U_LB_COUNT


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-08-15  8:02 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2023-08-15  8:02 UTC (permalink / raw
  To: gentoo-commits

commit:     375c6887c1fbb5e2fdbdf3db997153c9335cdf92
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 15 08:01:56 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Aug 15 08:02:17 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=375c6887

www-client/chromium: beta channel bump to 116.0.5845.96

Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 ++--
 ...845.82.ebuild => chromium-116.0.5845.96.ebuild} |  3 +--
 .../chromium/files/chromium-116-abseil-arm64.patch | 25 ----------------------
 3 files changed, 3 insertions(+), 29 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 37d34740e262..0f41271f4014 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,7 +1,7 @@
 DIST chromium-115-patchset-2.tar.xz 5648 BLAKE2B 6e30d36b20dea958474134f226edb477cb9fb50cb10e3732a9bd500aef1dd5a1a6c9f2cc5d0063f5e51c4120c7fd7e4a53af4a3a9ae63ba30df58000edf45539 SHA512 9cb29d2db5cadfd9f0d5b46129b25e3c6a3429e7bb2bd4c51f50b76f0c6bd87e396711e6cc2915d08653ad524c5d9292f6e37fab30110cec7641163accc02d5e
 DIST chromium-115.0.5790.170.tar.xz 1595419840 BLAKE2B ae08f2b86d69d5bd136e7451de94c673277a381edebd2ef92901608febeac3bbbe22529ebe4d477e2bfd260ed3663d97753bcf636c3026364b278db9130894e5 SHA512 0b05c66741b84d016326735614da2a29175cb1522140a56a1b5927522c626c4c49f0c4e55c6149f4e3a38be8897db560c4d29fcf1d55a02ec7798acb6188a000
-DIST chromium-116-patchset-1.tar.xz 5664 BLAKE2B ba77cc8fcc430046f32f3f5f97a014f1ffa2c23d84faaaf845a4f15ff07b56fd97180ec90e7c1c303832961174418ea7968b32e1f89fb9bfe704d7528ab9122b SHA512 b6b66a55867ea461b9b46cac44351ee5b0b64166e5f1f397ea95b41275a7d466a74308daf9e1b9923a57e89d4fa60c5c48551832243cdf009c6d98d43f94de55
-DIST chromium-116.0.5845.82.tar.xz 1599842168 BLAKE2B 0a946d3fe90d18140074ddd5821b5803e06c17d034ace50e3005d87661ad48a76744d6717fa73696b0d4764d270f2879dbdbb8220576c9afe1613c80b270e098 SHA512 c266e9e7fa880dbbb79d79102f6921051585d0da23cd2595e065334c01ec1ed9c9e4ec83d422d45487c9dd972ab95d6bf7e263ab33496ee810bd189001a37be0
+DIST chromium-116-patchset-2.tar.xz 5944 BLAKE2B bc67611ecfa93c75e1df8e05f1cabf432bfb807b7fefeb277ff4465f233a159128fecc5b0dd6e3f4954221ac675ff3e25d225352260a695d63f26b1ca6376003 SHA512 705950b3a679714adc14ae81ec51d637ba3bcbeff6dad30d9bbacec36ec6e1776534b8d1ad85fc7e838adeb588566e195a271a9ec220015d343a3038af705456
+DIST chromium-116.0.5845.96.tar.xz 1599788748 BLAKE2B 5489e670e82af801b81af1a74bc86fc6862b9771b424ad0d051861b37ce49625b53555b3f12fff92ff1318460760a13b9b1629cfe0acce929f1db3532e5f7207 SHA512 a47182e79784ac77bbc9902f01edb10d90c12c6b7809016fbe056a570d254d7add2d4a6bab4dde1572b7784834b7dd52d3af4c00c8502af41316710633fa4987
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_115.0.5790.102-1raptor0~deb11u2.debian.tar.xz 535516 BLAKE2B ee0a3659584ea304fafe334812fa1306e1294fce4a35002f59f66a049713762960dd8b508bed662a4bcc65e7151edda578794eb58866d174d4d67acb369bfb2f SHA512 6e0849d25ed533206404a3e8516e7541c22678d7613e5c2a644540bdc281da3973a9343db590b2bf6e8d09ec3759b57e5870ba0cfc2a5d9f4147542177d984da

diff --git a/www-client/chromium/chromium-116.0.5845.82.ebuild b/www-client/chromium/chromium-116.0.5845.96.ebuild
similarity index 99%
rename from www-client/chromium/chromium-116.0.5845.82.ebuild
rename to www-client/chromium/chromium-116.0.5845.96.ebuild
index 72ad775e75f2..c6fb57997645 100644
--- a/www-client/chromium/chromium-116.0.5845.82.ebuild
+++ b/www-client/chromium/chromium-116.0.5845.96.ebuild
@@ -18,7 +18,7 @@ inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://www.chromium.org/"
-PATCHSET="1"
+PATCHSET="2"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 PATCHSET_PPC64="115.0.5790.102-1raptor0~deb11u2"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
@@ -339,7 +339,6 @@ src_prepare() {
 		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-114-remove-evdev-dep.patch"
 		"${FILESDIR}/chromium-115-binutils-2.41.patch"
-		"${FILESDIR}/chromium-116-abseil-arm64.patch"
 	)
 
 	if use ppc64 ; then

diff --git a/www-client/chromium/files/chromium-116-abseil-arm64.patch b/www-client/chromium/files/chromium-116-abseil-arm64.patch
deleted file mode 100644
index df2091469cfb..000000000000
--- a/www-client/chromium/files/chromium-116-abseil-arm64.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 94d77fe3604dd86b5198f942110c240f01242439 Mon Sep 17 00:00:00 2001
-From: Derek Mauro <dmauro@google.com>
-Date: Tue, 20 Jun 2023 12:58:51 -0700
-Subject: [PATCH] Add missing #include <limits>
-
-Fixes #1482
-
-PiperOrigin-RevId: 542023050
-Change-Id: Iba712083edc9a24732a71f51be22ea970115809c
----
- absl/debugging/internal/stacktrace_aarch64-inl.inc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/absl/debugging/internal/stacktrace_aarch64-inl.inc b/absl/debugging/internal/stacktrace_aarch64-inl.inc
-index c8b84397949..3f087162022 100644
---- a/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc
-+++ b/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc
-@@ -13,6 +13,7 @@
- #include <cassert>
- #include <cstdint>
- #include <iostream>
-+#include <limits>
- 
- #include "absl/base/attributes.h"
- #include "absl/debugging/internal/address_is_readable.h"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-08-14  7:12 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2023-08-14  7:12 UTC (permalink / raw
  To: gentoo-commits

commit:     690605e6354e92faf1c2ca428fa87bde6dc016fa
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 14 07:12:15 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Aug 14 07:12:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=690605e6

www-client/chromium: fix building on arm64

Closes: https://bugs.gentoo.org/912224
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/chromium-116.0.5845.82.ebuild  |  1 +
 .../chromium/files/chromium-116-abseil-arm64.patch | 25 ++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/www-client/chromium/chromium-116.0.5845.82.ebuild b/www-client/chromium/chromium-116.0.5845.82.ebuild
index ce507628065b..72ad775e75f2 100644
--- a/www-client/chromium/chromium-116.0.5845.82.ebuild
+++ b/www-client/chromium/chromium-116.0.5845.82.ebuild
@@ -339,6 +339,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-114-remove-evdev-dep.patch"
 		"${FILESDIR}/chromium-115-binutils-2.41.patch"
+		"${FILESDIR}/chromium-116-abseil-arm64.patch"
 	)
 
 	if use ppc64 ; then

diff --git a/www-client/chromium/files/chromium-116-abseil-arm64.patch b/www-client/chromium/files/chromium-116-abseil-arm64.patch
new file mode 100644
index 000000000000..df2091469cfb
--- /dev/null
+++ b/www-client/chromium/files/chromium-116-abseil-arm64.patch
@@ -0,0 +1,25 @@
+From 94d77fe3604dd86b5198f942110c240f01242439 Mon Sep 17 00:00:00 2001
+From: Derek Mauro <dmauro@google.com>
+Date: Tue, 20 Jun 2023 12:58:51 -0700
+Subject: [PATCH] Add missing #include <limits>
+
+Fixes #1482
+
+PiperOrigin-RevId: 542023050
+Change-Id: Iba712083edc9a24732a71f51be22ea970115809c
+---
+ absl/debugging/internal/stacktrace_aarch64-inl.inc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/absl/debugging/internal/stacktrace_aarch64-inl.inc b/absl/debugging/internal/stacktrace_aarch64-inl.inc
+index c8b84397949..3f087162022 100644
+--- a/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc
++++ b/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc
+@@ -13,6 +13,7 @@
+ #include <cassert>
+ #include <cstdint>
+ #include <iostream>
++#include <limits>
+ 
+ #include "absl/base/attributes.h"
+ #include "absl/debugging/internal/address_is_readable.h"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-08-04  6:57 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2023-08-04  6:57 UTC (permalink / raw
  To: gentoo-commits

commit:     ac80d3a8a81ae6a7dc68a31dcac519c830980e65
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  4 06:54:08 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Fri Aug  4 06:55:00 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac80d3a8

www-client/chromium: fix building with binutils 2.41

Closes: https://bugs.gentoo.org/911687
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/chromium-115.0.5790.170.ebuild |  1 +
 .../files/chromium-115-binutils-2.41.patch         | 76 ++++++++++++++++++++++
 2 files changed, 77 insertions(+)

diff --git a/www-client/chromium/chromium-115.0.5790.170.ebuild b/www-client/chromium/chromium-115.0.5790.170.ebuild
index 665ca347d034..ee04adc672c3 100644
--- a/www-client/chromium/chromium-115.0.5790.170.ebuild
+++ b/www-client/chromium/chromium-115.0.5790.170.ebuild
@@ -341,6 +341,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-114-gcc12.patch"
 		"${FILESDIR}/chromium-114-remove-evdev-dep.patch"
+		"${FILESDIR}/chromium-115-binutils-2.41.patch"
 	)
 
 	if use ppc64 ; then

diff --git a/www-client/chromium/files/chromium-115-binutils-2.41.patch b/www-client/chromium/files/chromium-115-binutils-2.41.patch
new file mode 100644
index 000000000000..95f65eb6e33e
--- /dev/null
+++ b/www-client/chromium/files/chromium-115-binutils-2.41.patch
@@ -0,0 +1,76 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Signed-off-by: James Almer <jamrial@gmail.com>
+---
+ libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
+index 6298f5ed19..ca7e2dffc1 100644
+--- a/third_party/ffmpeg/libavcodec/x86/mathops.h
++++ b/third_party/ffmpeg/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+     int rt, dummy;
++    if (__builtin_constant_p(shift))
+     __asm__ (
+         "imull %3               \n\t"
+         "shrdl %4, %%edx, %%eax \n\t"
+         :"=a"(rt), "=d"(dummy)
+-        :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++        :"a"(a), "rm"(b), "i"(shift & 0x1F)
+     );
++    else
++        __asm__ (
++            "imull %3               \n\t"
++            "shrdl %4, %%edx, %%eax \n\t"
++            :"=a"(rt), "=d"(dummy)
++            :"a"(a), "rm"(b), "c"((uint8_t)shift)
++        );
+     return rt;
+ }
+ 
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline  int32_t NEG_SSR32( int32_t a, int8_t s){
++    if (__builtin_constant_p(s))
+     __asm__ ("sarl %1, %0\n\t"
+          : "+r" (a)
+-         : "ic" ((uint8_t)(-s))
++         : "i" (-s & 0x1F)
+     );
++    else
++        __asm__ ("sarl %1, %0\n\t"
++               : "+r" (a)
++               : "c" ((uint8_t)(-s))
++        );
+     return a;
+ }
+ 
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++    if (__builtin_constant_p(s))
+     __asm__ ("shrl %1, %0\n\t"
+          : "+r" (a)
+-         : "ic" ((uint8_t)(-s))
++         : "i" (-s & 0x1F)
+     );
++    else
++        __asm__ ("shrl %1, %0\n\t"
++               : "+r" (a)
++               : "c" ((uint8_t)(-s))
++        );
+     return a;
+ }
+ 
+-- 
+2.41.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-08-03 18:31 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2023-08-03 18:31 UTC (permalink / raw
  To: gentoo-commits

commit:     d47c4cddd04cb8291036653bc1be540414978d31
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  3 18:28:18 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Aug  3 18:31:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d47c4cdd

www-client/chromium: drop 114.0.5735.198

Bug: https://bugs.gentoo.org/910522
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |    3 -
 www-client/chromium/chromium-114.0.5735.198.ebuild | 1270 --------------------
 .../files/chromium-109-system-openh264.patch       |   20 -
 ...ium-113-gcc-13-0001-vulkanmemoryallocator.patch |   10 -
 .../files/chromium-113-swiftshader-cstdint.patch   |   40 -
 .../chromium/files/chromium-114-compiler.patch     |  171 ---
 .../chromium/files/chromium-114-iwyu-gcc-13.patch  |   75 --
 .../chromium/files/chromium-114-sigsegv-dom.patch  |   73 --
 8 files changed, 1662 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 71f2f4a8ce0f..08620e09e16d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,10 +1,7 @@
-DIST chromium-112-gcc-13-patches.tar.xz 8036 BLAKE2B 71347593c57f0ec8a32de3764359227ae7e8d666ef78f2676f939f7e07cb787f54ad57f8583504285ea84cc0c9cc99255873e28473468b30d5e66f3e0b0496ff SHA512 67dfa89ebbaba2c1d8ecb8471096c6c1b691cba4b5e68b7ee35ac2d6b65b560da39b4b2bb2eb0f6b6a3f2cc6bd8894c4d0e58ca51bc32a7f429aa1feed0571e5
-DIST chromium-114.0.5735.198.tar.xz 1570630092 BLAKE2B 3b267f105690fb3fafdd78d1ee882dce0b4c2a8c65b169e8d178a58e3f28379545941eb17c40ce32e875c8d68463efba8beecaaaa79d25c9ca04573c88185497 SHA512 a8fbc5a7e118c22e78230efc7c4a7aa34f1d43a96de51b8739eb1e4dfaa04cdcf208283e5688be3a653b2f4f58b09fec489752ac375c2493e8ce10a22d05f742
 DIST chromium-115-patchset-2.tar.xz 5648 BLAKE2B 6e30d36b20dea958474134f226edb477cb9fb50cb10e3732a9bd500aef1dd5a1a6c9f2cc5d0063f5e51c4120c7fd7e4a53af4a3a9ae63ba30df58000edf45539 SHA512 9cb29d2db5cadfd9f0d5b46129b25e3c6a3429e7bb2bd4c51f50b76f0c6bd87e396711e6cc2915d08653ad524c5d9292f6e37fab30110cec7641163accc02d5e
 DIST chromium-115.0.5790.102.tar.xz 1595015368 BLAKE2B 6531367d17827d66359e409207a55974dd485b3bc109be8f90c82ed92f9c6eb091df47d14bb5fcec6d43d67a6cc0872cca482b0e86a766029282cf6a7e886403 SHA512 04add3005a0c8c84138edd0e1ebf197f2e1c5edd3a48ce4e16184940ce9095088e27824c92fa9c85a36d09eaccea5aba24f9806096e4be63a30d625f386ab665
 DIST chromium-115.0.5790.170.tar.xz 1595419840 BLAKE2B ae08f2b86d69d5bd136e7451de94c673277a381edebd2ef92901608febeac3bbbe22529ebe4d477e2bfd260ed3663d97753bcf636c3026364b278db9130894e5 SHA512 0b05c66741b84d016326735614da2a29175cb1522140a56a1b5927522c626c4c49f0c4e55c6149f4e3a38be8897db560c4d29fcf1d55a02ec7798acb6188a000
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
-DIST chromium_114.0.5735.106-1raptor0~deb11u1.debian.tar.xz 514572 BLAKE2B 1bc2c5d98d951b985f79ff072aae46f84487a5ebf7b0499e2e18bc3826c364594a200af588019683a07c283224df3b232fa52197a31670df9f2e15ea21aae612 SHA512 f970d263efb3f6d4380ad25c7a6fd49a11c171465c225e6d72dc8d0e023a76da6eb101f8cfc82e245dac814e18d71526f84d9339d584ee423be0de9cfd9a0f7b
 DIST chromium_115.0.5790.102-1raptor0~deb11u2.debian.tar.xz 535516 BLAKE2B ee0a3659584ea304fafe334812fa1306e1294fce4a35002f59f66a049713762960dd8b508bed662a4bcc65e7151edda578794eb58866d174d4d67acb369bfb2f SHA512 6e0849d25ed533206404a3e8516e7541c22678d7613e5c2a644540bdc281da3973a9343db590b2bf6e8d09ec3759b57e5870ba0cfc2a5d9f4147542177d984da
 DIST chromium_115.0.5790.98-1raptor0~deb11u2.debian.tar.xz 534584 BLAKE2B 6cc74324b09132feb191bab932ab109a34a6cca6dc2e799f90d1a64b106caa033a7ea73f0f374675f2e014493b92fc86a77ab3678f8a8961122735c9c7b7c84c SHA512 69cc2b0c22a25090fca39af7fb0a60b46cead4848c47e041f36ef0cd47cde1f809ed6d54dd601c95f47332e9f4a6a68b6cf24f38b3d925fdd7d608217ace8f7b

diff --git a/www-client/chromium/chromium-114.0.5735.198.ebuild b/www-client/chromium/chromium-114.0.5735.198.ebuild
deleted file mode 100644
index f2912d6b2ff2..000000000000
--- a/www-client/chromium/chromium-114.0.5735.198.ebuild
+++ /dev/null
@@ -1,1270 +0,0 @@
-# Copyright 2009-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..11} )
-PYTHON_REQ_USE="xml(+)"
-LLVM_MAX_SLOT=16
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-VIRTUALX_REQUIRED="pgo"
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
-PATCHSET_NAME_PPC64="chromium_114.0.5735.106-1raptor0~deb11u1.debian"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz
-	ppc64? (
-		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
-		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="amd64 arm64 ~ppc64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid !libcxx )
-	screencast? ( wayland )
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxshmfence:=
-"
-
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-71.1:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng(-)] )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-1.6.0:=
-	system-av1? (
-		>=media-libs/dav1d-1.0.0:=
-		>=media-libs/libaom-3.4.0:=
-	)
-	sys-libs/zlib:=
-	x11-libs/libdrm:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-libs/libpulse:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-libs/libX11:=
-			x11-libs/libXext:=
-			x11-libs/libxcb:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		X? ( ${COMMON_X_DEPEND} )
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		cups? ( >=net-print/cups-1.3.11:= )
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtwidgets:5
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[X?,wayland?]
-		)
-		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
-	)
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
-		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
-	)
-"
-
-depend_clang_llvm_version() {
-	echo "sys-devel/clang:$1"
-	echo "sys-devel/llvm:$1"
-	echo "=sys-devel/lld-$1*"
-}
-
-depend_clang_llvm_versions() {
-	local _v
-	if [[ $# -gt 1 ]]; then
-		echo "|| ("
-		for _v in "$@"; do
-			echo "("
-			depend_clang_llvm_version "${_v}"
-			echo ")"
-		done
-		echo ")"
-	elif [[ $# -eq 1 ]]; then
-		depend_clang_llvm_version "$1"
-	fi
-}
-
-BDEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	!headless? (
-		qt5? ( dev-qt/qtcore:5 )
-	)
-	libcxx? ( >=sys-devel/clang-16 )
-	lto? ( $(depend_clang_llvm_versions 16) )
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-		$(depend_clang_llvm_versions 16)
-	)
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	dev-vcs/git
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-16"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-needs_clang() {
-	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
-}
-
-llvm_check_deps() {
-	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-pre_build_checks() {
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="12G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="13G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
-		use pgo && CHECKREQS_DISK_BUILD="20G"
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
-	pre_build_checks
-
-	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
-		for myiuse in ${headless_unused_flags[@]}; do
-			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
-		done
-	fi
-}
-
-pkg_setup() {
-	if use lto || use pgo; then
-		llvm_pkg_setup
-	fi
-
-	pre_build_checks
-
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 12; then
-			die "At least gcc 12 is required"
-		fi
-		if use pgo && tc-is-cross-compiler; then
-			die "The pgo USE flag cannot be used when cross-compiling"
-		fi
-		if needs_clang && ! tc-is-clang; then
-			if tc-is-cross-compiler; then
-				CPP="${CBUILD}-clang++ -E"
-			else
-				CPP="${CHOST}-clang++ -E"
-			fi
-			if ! ver_test "$(clang-major-version)" -ge 16; then
-				die "At least clang 16 is required"
-			fi
-		fi
-	fi
-
-	chromium_suid_sandbox_check_kernel_config
-
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# disable global media controls, crashes with libstdc++
-	sed -i -e \
-		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
-		"chrome/browser/media/router/media_router_feature.cc" || die
-	# Tis lazy, but tidy this up in 115.
-	pushd "${WORKDIR}/chromium-112-gcc-13-patches/" || die
-		rm chromium-112-gcc-13-0002-perfetto.patch || die
-		rm chromium-112-gcc-13-0004-swiftshader.patch || die
-		rm chromium-112-gcc-13-0007-misc.patch || die
-		rm chromium-112-gcc-13-0008-dawn.patch || die
-		rm chromium-112-gcc-13-0009-base.patch || die
-		rm chromium-112-gcc-13-0010-components.patch || die
-		rm chromium-112-gcc-13-0011-s2cellid.patch || die
-		rm chromium-112-gcc-13-0012-webrtc-base64.patch || die
-		rm chromium-112-gcc-13-0013-quiche.patch || die
-		rm chromium-112-gcc-13-0015-net.patch || die
-		rm chromium-112-gcc-13-0016-cc-targetproperty.patch || die
-		rm chromium-112-gcc-13-0017-gpu_feature_info.patch || die
-		rm chromium-112-gcc-13-0018-encounteredsurfacetracker.patch || die
-		rm chromium-112-gcc-13-0019-documentattachmentinfo.patch  || die
-		rm chromium-112-gcc-13-0020-pdfium.patch || die
-		rm chromium-112-gcc-13-0021-gcc-copy-list-init-net-HostCache.patch || die
-		rm chromium-112-gcc-13-0022-gcc-ambiguous-ViewTransitionElementId-type.patch || die
-		rm chromium-112-gcc-13-0023-gcc-incomplete-type-v8-subtype.patch || die
-	popd || die
-
-	local PATCHES=(
-		"${FILESDIR}/chromium-cross-compile.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-109-system-openh264.patch"
-		"${FILESDIR}/chromium-109-system-zlib.patch"
-		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
-		"${WORKDIR}/chromium-112-gcc-13-patches"
-		"${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch"
-		"${FILESDIR}/chromium-113-swiftshader-cstdint.patch"
-		"${FILESDIR}/chromium-114-compiler.patch"
-		"${FILESDIR}/chromium-114-gcc12.patch"
-		"${FILESDIR}/chromium-114-sigsegv-dom.patch"
-		"${FILESDIR}/chromium-114-iwyu-gcc-13.patch"
-		"${FILESDIR}/chromium-114-remove-evdev-dep.patch"
-	)
-
-	if use ppc64 ; then
-		local p
-		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
-			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
-				eapply "${WORKDIR}/debian/patches/${p}"
-			fi
-		done
-		PATCHES+=( "${WORKDIR}/ppc64le" )
-	fi
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/ceval
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/systeminfo
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/bidimapper
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/content_analysis_sdk
-		third_party/cpuinfo
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dawn
-		third_party/dawn/third_party/gn/webgpu-cts
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/fp16
-		third_party/freetype
-		third_party/fusejs
-		third_party/fxdiv
-		third_party/highway
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libaddressinput
-		third_party/libavif
-		third_party/libevent
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/omnibox_proto
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/pthreadpool
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
-		third_party/swiftshader/third_party/SPIRV-Tools
-		third_party/tensorflow_models
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/utf
-		third_party/vulkan
-		third_party/wayland
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/xnnpack
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if ! use system-av1; then
-		keeplibs+=(
-			third_party/dav1d
-			third_party/libaom
-			third_party/libaom/source/libaom/third_party/fastfeat
-			third_party/libaom/source/libaom/third_party/SVT-AV1
-			third_party/libaom/source/libaom/third_party/vector
-			third_party/libaom/source/libaom/third_party/x86inc
-		)
-	fi
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use libcxx; then
-		keeplibs+=( third_party/re2 )
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if needs_clang && ! tc-is-clang; then
-		# Force clang since gcc is either broken or build is using libcxx.
-		if tc-is-cross-compiler; then
-			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_CC=${CBUILD}-clang
-			BUILD_CXX=${CBUILD}-clang++
-		else
-			CC=${CHOST}-clang
-			CXX=${CHOST}-clang++
-		fi
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
-	if use lto || use pgo; then
-		myconf_gn+=" use_lld=true"
-	else
-		myconf_gn+=" use_lld=false"
-	fi
-
-	if use lto || use pgo; then
-		AR=llvm-ar
-		NM=llvm-nm
-		if tc-is-cross-compiler; then
-			BUILD_AR=llvm-ar
-			BUILD_NM=llvm-nm
-		fi
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
-		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-
-		# setup cups-config, build system only uses --libs option
-		if use cups; then
-			mkdir "${T}/cups-config" || die
-			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
-			export PATH="${PATH}:${T}/cups-config"
-		fi
-
-		# Don't inherit PKG_CONFIG_PATH from environment
-		local -x PKG_CONFIG_PATH=
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# Disable rust for now; it's only used for testing and we don't need the additional bdep
-	myconf_gn+=" enable_rust=false"
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if use system-av1; then
-		gn_system_libraries+=( dav1d libaom )
-	fi
-	# re2 library interface relies on std::string and std::vector
-	if ! use libcxx; then
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-
-	if use headless; then
-		myconf_gn+=" use_cups=false"
-		myconf_gn+=" use_kerberos=false"
-		myconf_gn+=" use_pulseaudio=false"
-		myconf_gn+=" use_vaapi=false"
-		myconf_gn+=" rtc_use_pipewire=false"
-	else
-		myconf_gn+=" use_cups=$(usex cups true false)"
-		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
-	fi
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
-	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-		fi
-
-		if tc-is-gcc; then
-			# https://bugs.gentoo.org/904455
-			append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)"
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Disable external code space for V8 for ppc64. It is disabled for ppc64
-	# by default, but cross-compiling on amd64 enables it again.
-	if tc-is-cross-compiler; then
-		if ! use amd64 && ! use arm64; then
-			myconf_gn+=" v8_enable_external_code_space=false"
-		fi
-	fi
-
-	# Only enabled for clang, but gcc has endian macros too
-	myconf_gn+=" v8_use_libm_trig_functions=true"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	if tc-is-clang; then
-		append-flags -Wno-unknown-warning-option
-		if tc-is-cross-compiler; then
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-		fi
-	fi
-
-	# Explicitly disable ICU data file support for system-icu/headless builds.
-	if use system-icu || use headless; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use headless; then
-		myconf_gn+=" ozone_platform=\"headless\""
-		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
-		myconf_gn+=" use_glib=false use_gio=false"
-		myconf_gn+=" use_pangocairo=false use_alsa=false"
-		myconf_gn+=" use_libpci=false use_udev=false"
-		myconf_gn+=" enable_print_preview=false"
-		myconf_gn+=" enable_remoting=false"
-	else
-		myconf_gn+=" use_system_libdrm=true"
-		myconf_gn+=" use_system_minigbm=true"
-		myconf_gn+=" use_xkbcommon=true"
-		if use qt5; then
-			local moc_dir="$(qt5_get_bindir)"
-			if tc-is-cross-compiler; then
-				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
-				cbuild_libdir=${cbuild_libdir:2}
-				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
-			fi
-			export PATH="${PATH}:${moc_dir}"
-		fi
-		myconf_gn+=" use_qt=$(usex qt5 true false)"
-		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
-		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
-		use wayland && myconf_gn+=" use_system_libffi=true"
-	fi
-
-	# Results in undefined references in chrome linking, may require CFI to work
-	if use arm64; then
-		myconf_gn+=" arm_control_flow_integrity=\"none\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=$(usex lto true false)"
-	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	if use pgo; then
-		myconf_gn+=" chrome_pgo_phase=${1}"
-		if [[ "$1" == "2" ]]; then
-			myconf_gn+=" pgo_data_path=\"${2}\""
-		fi
-	else
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
-	if use arm64 && tc-is-gcc; then
-		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
-			third_party/crc32c/src/src/crc32c_arm64.cc || die
-	fi
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=" devtools_skip_typecheck=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	chromium_configure $(usex pgo 1 0)
-}
-
-chromium_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	# Build mksnapshot and pax-mark it.
-	if use pax-kernel; then
-		local x
-		for x in mksnapshot v8_context_snapshot_generator; do
-			if tc-is-cross-compiler; then
-				eninja -C out/Release "host/${x}"
-				pax-mark m "out/Release/host/${x}"
-			else
-				eninja -C out/Release "${x}"
-				pax-mark m "out/Release/${x}"
-			fi
-		done
-	fi
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-# This function is called from virtx, and must always return so that Xvfb
-# session isn't left running. If we return 1, virtx will call die().
-chromium_profile() {
-	einfo "Profiling for PGO"
-
-	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
-
-	# Remove old profdata in case profiling was interrupted.
-	rm -rf "${1}" || return 1
-
-	if ! "${EPYTHON}" ./chromium_profiler.py \
-		--chrome-executable "${S}/out/Release/chrome" \
-		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
-		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
-		--profile-output "${1}"; then
-		eerror "Profiling failed"
-		return 1
-	fi
-
-	popd >/dev/null || return 1
-}
-
-src_compile() {
-	if use pgo; then
-		local profdata
-
-		profdata="${WORKDIR}/chromium.profdata"
-
-		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
-			chromium_compile
-			virtx chromium_profile "$profdata"
-
-			touch "${WORKDIR}/.pgo-profiled" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
-			# Remove phase 1 output
-			rm -r out/Release || die
-
-			chromium_configure 2 "$profdata"
-
-			touch "${WORKDIR}/.pgo-phase-2-configured" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
-			chromium_compile
-			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
-		fi
-	else
-		chromium_compile
-	fi
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	rm -f out/Release/locales/*.pak.info || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use X && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
-	doins out/Release/xdg-{settings,mime}
-
-	if ! use system-icu && ! use headless; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if ! use headless; then
-		if use vaapi; then
-			elog "VA-API is disabled by default at runtime. You have to enable it"
-			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-			elog "in /etc/chromium/default."
-		fi
-		if use screencast; then
-			elog "Screencast is disabled by default at runtime. Either enable it"
-			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-		if use gtk4; then
-			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
-			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-	fi
-}

diff --git a/www-client/chromium/files/chromium-109-system-openh264.patch b/www-client/chromium/files/chromium-109-system-openh264.patch
deleted file mode 100644
index 6be816b305b4..000000000000
--- a/www-client/chromium/files/chromium-109-system-openh264.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/build/linux/unbundle/openh264.gn
-+++ b/build/linux/unbundle/openh264.gn
-@@ -2,6 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
-+import("//build/buildflag_header.gni")
- import("//build/config/linux/pkg_config.gni")
- import("//build/shim_headers.gni")
- 
-@@ -34,3 +35,9 @@ source_set("encoder") {
-   deps = [ ":openh264_shim" ]
-   public_configs = [ ":config" ]
- }
-+
-+buildflag_header("buildflags") {
-+  header = "buildflags.h"
-+  header_dir = "third_party/openh264"
-+  flags = [ "OPENH264_API_WELS=1" ]
-+}

diff --git a/www-client/chromium/files/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch b/www-client/chromium/files/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch
deleted file mode 100644
index 28372caeb72c..000000000000
--- a/www-client/chromium/files/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
-+++ b/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
-@@ -2579,6 +2579,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeStatsString(
- #undef VMA_IMPLEMENTATION
- 
- #include <cstdint>
-+#include <cstdio>
- #include <cstdlib>
- #include <cstring>
- #include <utility>

diff --git a/www-client/chromium/files/chromium-113-swiftshader-cstdint.patch b/www-client/chromium/files/chromium-113-swiftshader-cstdint.patch
deleted file mode 100644
index 6c04f54996da..000000000000
--- a/www-client/chromium/files/chromium-113-swiftshader-cstdint.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From ecefa6c6596982616fa1f564fcee363ef8533808 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Wed, 03 May 2023 12:01:36 +0200
-Subject: [PATCH] IWYU: add cstdint for uintptr_t in llvm-10.0 Signals.h
-
-Upstream commit:
-
-  From ff1681ddb303223973653f7f5f3f3435b48a1983 Mon Sep 17 00:00:00 2001
-  From: Sergei Trofimovich <slyich@gmail.com>
-  Date: Mon, 23 May 2022 08:03:23 +0100
-  Subject: [PATCH] [Support] Add missing <cstdint> header to Signals.h
-
-  Without the change llvm build fails on this week's gcc-13 snapshot as:
-
-    [  0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
-    In file included from llvm/lib/Support/Signals.cpp:14:
-    llvm/include/llvm/Support/Signals.h:119:8: error: variable or field 'CleanupOnSignal' declared void
-      119 |   void CleanupOnSignal(uintptr_t Context);
-          |        ^~~~~~~~~~~~~~~
-
-Change-Id: Iabe0256d86012e7887e295815aa6cfd50694459a
-Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71608
-Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
-Kokoro-Result: kokoro <noreply+kokoro@google.com>
-Tested-by: Shahbaz Youssefi <syoussefi@google.com>
-Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
----
-
-diff --git a/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h b/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
-index e0a18e7..148216b 100644
---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
-+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
-@@ -14,6 +14,7 @@
- #ifndef LLVM_SUPPORT_SIGNALS_H
- #define LLVM_SUPPORT_SIGNALS_H
- 
-+#include <cstdint>
- #include <string>
- 
- namespace llvm {

diff --git a/www-client/chromium/files/chromium-114-compiler.patch b/www-client/chromium/files/chromium-114-compiler.patch
deleted file mode 100644
index f6a6b708da6f..000000000000
--- a/www-client/chromium/files/chromium-114-compiler.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-This patches the compiler settings for chromium to remove
-clang-specific settings, among other things.
-
-Just do a `git apply --reject` to the unpacked chromium source when
-it inevitably needs to be updated between versions.
-
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -289,9 +289,7 @@ config("compiler") {
- 
-   configs += [
-     # See the definitions below.
--    ":clang_revision",
-     ":rustc_revision",
--    ":compiler_cpu_abi",
-     ":compiler_codegen",
-     ":compiler_deterministic",
-   ]
-@@ -732,7 +730,6 @@ config("compiler") {
-         # toolchain has this flag.
-         # We only use one version of LLVM within a build so there's no need to
-         # upgrade debug info, which can be expensive since it runs the verifier.
--        ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
-       }
-     }
- 
-@@ -1406,27 +1403,6 @@ config("compiler_deterministic") {
-   }
- }
- 
--config("clang_revision") {
--  if (is_clang && clang_base_path == default_clang_base_path) {
--    update_args = [
--      "--print-revision",
--      "--verify-version=$clang_version",
--    ]
--    if (llvm_force_head_revision) {
--      update_args += [ "--llvm-force-head-revision" ]
--    }
--    clang_revision = exec_script("//tools/clang/scripts/update.py",
--                                 update_args,
--                                 "trim string")
--
--    # This is here so that all files get recompiled after a clang roll and
--    # when turning clang on or off. (defines are passed via the command line,
--    # and build system rebuild things when their commandline changes). Nothing
--    # should ever read this define.
--    defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ]
--  }
--}
--
- config("rustc_revision") {
-   if (rustc_revision != "") {
-     # Similar to the above config, this is here so that all files get recompiled
-@@ -1716,7 +1692,7 @@ config("chromium_code") {
-       defines = [ "_HAS_NODISCARD" ]
-     }
-   } else {
--    cflags = [ "-Wall" ]
-+    cflags = []
-     if (treat_warnings_as_errors) {
-       cflags += [ "-Werror" ]
- 
-@@ -1725,10 +1701,6 @@ config("chromium_code") {
-       # well.
-       ldflags = [ "-Werror" ]
-     }
--    if (is_clang) {
--      # Enable extra warnings for chromium_code when we control the compiler.
--      cflags += [ "-Wextra" ]
--    }
- 
-     if (treat_warnings_as_errors) {
-       # Turn rustc warnings into the "deny" lint level, which produce compiler
-@@ -1746,16 +1718,6 @@ config("chromium_code") {
-       "__STDC_FORMAT_MACROS",
-     ]
- 
--    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
--        current_cpu != "s390" && current_cpu != "ppc64" &&
--        current_cpu != "mips" && current_cpu != "mips64" &&
--        current_cpu != "riscv64" && current_cpu != "loong64") {
--      # Non-chromium code is not guaranteed to compile cleanly with
--      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
--      # disabled, so only do that for Release build.
--      defines += [ "_FORTIFY_SOURCE=2" ]
--    }
--
-     if (is_apple) {
-       cflags_objc = [ "-Wimplicit-retain-self" ]
-       cflags_objcc = [ "-Wimplicit-retain-self" ]
-@@ -2120,7 +2082,8 @@ config("default_stack_frames") {
- }
- 
- # Default "optimization on" config.
--config("optimize") {
-+config("optimize") { }
-+config("xoptimize") {
-   if (is_win) {
-     if (chrome_pgo_phase != 2) {
-       # Favor size over speed, /O1 must be before the common flags.
-@@ -2179,7 +2142,8 @@ config("optimize") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2219,7 +2183,8 @@ config("no_optimize") {
- # Turns up the optimization level. On Windows, this implies whole program
- # optimization and link-time code generation which is very expensive and should
- # be used sparingly.
--config("optimize_max") {
-+config("optimize_max") { }
-+config("xoptimize_max") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2252,7 +2217,8 @@ config("optimize_max") {
- #
- # TODO(crbug.com/621335) - rework how all of these configs are related
- # so that we don't need this disclaimer.
--config("optimize_speed") {
-+config("optimize_speed") { }
-+config("xoptimize_speed") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2278,7 +2244,8 @@ config("optimize_speed") {
-   }
- }
- 
--config("optimize_fuzzing") {
-+config("optimize_fuzzing") { }
-+config("xoptimize_fuzzing") {
-   cflags = [ "-O1" ] + common_optimize_on_cflags
-   rustflags = [ "-Copt-level=1" ]
-   ldflags = common_optimize_on_ldflags
-@@ -2403,7 +2370,8 @@ config("win_pdbaltpath") {
- }
- 
- # Full symbols.
--config("symbols") {
-+config("symbols") { }
-+config("xsymbols") {
-   rustflags = []
-   if (is_win) {
-     if (is_clang) {
-@@ -2546,7 +2514,8 @@ config("symbols") {
- # Minimal symbols.
- # This config guarantees to hold symbol for stack trace which are shown to user
- # when crash happens in unittests running on buildbot.
--config("minimal_symbols") {
-+config("minimal_symbols") { }
-+config("xminimal_symbols") {
-   if (is_win) {
-     # Functions, files, and line tables only.
-     cflags = []
-@@ -2620,7 +2589,8 @@ config("minimal_symbols") {
- # This configuration contains function names only. That is, the compiler is
- # told to not generate debug information and the linker then just puts function
- # names in the final debug information.
--config("no_symbols") {
-+config("no_symbols") { }
-+config("xno_symbols") {
-   if (is_win) {
-     ldflags = [ "/DEBUG" ]
- 

diff --git a/www-client/chromium/files/chromium-114-iwyu-gcc-13.patch b/www-client/chromium/files/chromium-114-iwyu-gcc-13.patch
deleted file mode 100644
index 564a9ee75843..000000000000
--- a/www-client/chromium/files/chromium-114-iwyu-gcc-13.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 75c57b5f810d6ac6f393459d2884877c7fcf774c Mon Sep 17 00:00:00 2001
-From: Bruno Pitrus <brunopitrus@hotmail.com>
-Date: Mon, 05 Jun 2023 21:22:55 +0000
-Subject: [PATCH] IWYU: Add missing standard includes for GCC13
-
-Bug: 957519
-Change-Id: Ie327653083173b41dfd5a456f82ccb490c305c26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4547709
-Commit-Queue: Nico Weber <thakis@chromium.org>
-Auto-Submit: Bruno Pitrus <brunopitrus@hotmail.com>
-Reviewed-by: Nico Weber <thakis@chromium.org>
-Reviewed-by: Eric Orth <ericorth@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1153468}
----
-
-diff --git a/base/cpu.h b/base/cpu.h
-index 10450e9..2ac00e9 100644
---- a/base/cpu.h
-+++ b/base/cpu.h
-@@ -5,6 +5,7 @@
- #ifndef BASE_CPU_H_
- #define BASE_CPU_H_
- 
-+#include <cstdint>
- #include <string>
- 
- #include "base/base_export.h"
-diff --git a/components/services/app_service/public/cpp/intent_filter.h b/components/services/app_service/public/cpp/intent_filter.h
-index 9c83ccf..48724963 100644
---- a/components/services/app_service/public/cpp/intent_filter.h
-+++ b/components/services/app_service/public/cpp/intent_filter.h
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_INTENT_FILTER_H_
- #define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_INTENT_FILTER_H_
- 
-+#include <memory>
- #include <set>
- #include <string>
- #include <utility>
-diff --git a/components/services/app_service/public/cpp/permission.h b/components/services/app_service/public/cpp/permission.h
-index 82d323a..ede8540 100644
---- a/components/services/app_service/public/cpp/permission.h
-+++ b/components/services/app_service/public/cpp/permission.h
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PERMISSION_H_
- #define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PERMISSION_H_
- 
-+#include <memory>
- #include <utility>
- #include <vector>
- 
-diff --git a/components/viz/common/view_transition_element_resource_id.h b/components/viz/common/view_transition_element_resource_id.h
-index 17ae568..44f980f 100644
---- a/components/viz/common/view_transition_element_resource_id.h
-+++ b/components/viz/common/view_transition_element_resource_id.h
-@@ -7,6 +7,7 @@
- 
- #include <stdint.h>
- 
-+#include <cstdint>
- #include <string>
- #include <vector>
- 
-diff --git a/net/cert/pki/string_util.h b/net/cert/pki/string_util.h
-index b18f716..7340408 100644
---- a/net/cert/pki/string_util.h
-+++ b/net/cert/pki/string_util.h
-@@ -9,6 +9,7 @@
- 
- #include <stdint.h>
- 
-+#include <cstdint>
- #include <string_view>
- #include <vector>
- 

diff --git a/www-client/chromium/files/chromium-114-sigsegv-dom.patch b/www-client/chromium/files/chromium-114-sigsegv-dom.patch
deleted file mode 100644
index fe4c2809693c..000000000000
--- a/www-client/chromium/files/chromium-114-sigsegv-dom.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-https://chromium.googlesource.com/chromium/src.git/+/2af2d08972d14d5bdd91e0515eb5b15b4444aee9
-blink::HTMLMediaElement::ShouldReusePlayer: avoid dereferencing a potentally NULL domWindow
-
-The domWindow() method of the Document class can potentially return nullptr
-as noted in renderer/core/dom/document.h
-
-> // A document may or may not have a browsing context
-> // (https://html.spec.whatwg.org/#browsing-context). A document with a browsing
-> // context is created by navigation, and has a non-null domWindow(), GetFrame(),
-> // Loader(), etc., and is visible to the user. It will have a valid
-> // GetExecutionContext(), which will be equal to domWindow(). If the Document
-> // constructor receives a DocumentInit created WithDocumentLoader(), it will
-> // have a browsing context.
-> // Documents created by all other APIs do not have a browsing context. These
-> // Documents still have a valid GetExecutionContext() (i.e., the domWindow() of
-> // the Document in which they were created), so they can still access
-> // script, but return null for domWindow(), GetFrame() and Loader(). Generally,
-> // they should not downcast the ExecutionContext to a LocalDOMWindow and access
-> // the properties of the window directly.
-
-Upon checking further, the offending document returns null for GetFrame() and
-Loader() aswell so this was likely just an oversight and no invariants are being
-violated
-
-Introduced in https://chromium-review.googlesource.com/c/chromium/src/+/4202152
-
-More details https://bugs.chromium.org/p/chromium/issues/detail?id=1447388
-
-Fixed: 1447388
-Change-Id: I85a6ef52baaac0ec7f5ec188d5d5bb2c518a8ecd
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4546610
-Reviewed-by: Fredrik Söderquist <fs@opera.com>
-Commit-Queue: Fredrik Söderquist <fs@opera.com>
-Cr-Commit-Position: refs/heads/main@{#1147184}
-
---- a/AUTHORS
-+++ b/AUTHORS
-
-@@ -1012,6 +1012,7 @@
- Prashant Hiremath <prashhir@cisco.com>
- Prashant Nevase <prashant.n@samsung.com>
- Prashant Patil <prashant.patil@imgtec.com>
-+Pratham <prathamIN@proton.me>
- Praveen Akkiraju <praveen.anp@samsung.com>
- Preeti Nayak <preeti.nayak@samsung.com>
- Pritam Nikam <pritam.nikam@samsung.com>
-
---- a/third_party/blink/renderer/core/html/media/html_media_element.cc
-+++ b/third_party/blink/renderer/core/html/media/html_media_element.cc
-
-@@ -648,6 +648,11 @@
- 
- bool HTMLMediaElement::ShouldReusePlayer(Document& old_document,
-                                          Document& new_document) const {
-+  // A NULL frame implies a NULL domWindow, so just check one of them
-+  if (!old_document.GetFrame() || !new_document.GetFrame()) {
-+    return false;
-+  }
-+
-   // Don't reuse player if the Document Picture-in-Picture API is disabled for
-   // both documents.
-   if (!RuntimeEnabledFeatures::DocumentPictureInPictureAPIEnabled(
-@@ -657,10 +662,6 @@
-     return false;
-   }
- 
--  if (!old_document.GetFrame() || !new_document.GetFrame()) {
--    return false;
--  }
--
-   auto* new_origin = new_document.GetFrame()
-                          ->LocalFrameRoot()
-                          .GetSecurityContext()


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-06-30 13:11 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2023-06-30 13:11 UTC (permalink / raw
  To: gentoo-commits

commit:     62c83482a1026387a5d2332ba9162227b3264d54
Author:     Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
AuthorDate: Fri Jun 30 06:48:44 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Fri Jun 30 13:11:00 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=62c83482

www-client/chromium: add 114.0.5735.198

Bug: https://bugs.gentoo.org/909283
Closes: https://bugs.gentoo.org/909055

Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-114.0.5735.198.ebuild | 1270 ++++++++++++++++++++
 .../files/chromium-114-remove-evdev-dep.patch      |   35 +
 3 files changed, 1306 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8b68c599bddb..ed273fe1733f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,6 @@
 DIST chromium-112-gcc-13-patches.tar.xz 8036 BLAKE2B 71347593c57f0ec8a32de3764359227ae7e8d666ef78f2676f939f7e07cb787f54ad57f8583504285ea84cc0c9cc99255873e28473468b30d5e66f3e0b0496ff SHA512 67dfa89ebbaba2c1d8ecb8471096c6c1b691cba4b5e68b7ee35ac2d6b65b560da39b4b2bb2eb0f6b6a3f2cc6bd8894c4d0e58ca51bc32a7f429aa1feed0571e5
 DIST chromium-114.0.5735.133.tar.xz 1570531072 BLAKE2B 7f3bea51297cc77b13845f0984d2e8f970c48a122b0742c979d1bd000ad524d11b7f635619b20355842a013dbba52d995692f2d1d6ce7ff5f62b4093de731f1b SHA512 110adf42c2dfc7249e97bd338710b647e94a4e6258c5f357161f32c55c351257b9b96672549de84ed343182e2b9eaac438e6578bc1660d9829040b5e41a13033
+DIST chromium-114.0.5735.198.tar.xz 1570630092 BLAKE2B 3b267f105690fb3fafdd78d1ee882dce0b4c2a8c65b169e8d178a58e3f28379545941eb17c40ce32e875c8d68463efba8beecaaaa79d25c9ca04573c88185497 SHA512 a8fbc5a7e118c22e78230efc7c4a7aa34f1d43a96de51b8739eb1e4dfaa04cdcf208283e5688be3a653b2f4f58b09fec489752ac375c2493e8ce10a22d05f742
 DIST chromium-115-patchset-2.tar.xz 5648 BLAKE2B 6e30d36b20dea958474134f226edb477cb9fb50cb10e3732a9bd500aef1dd5a1a6c9f2cc5d0063f5e51c4120c7fd7e4a53af4a3a9ae63ba30df58000edf45539 SHA512 9cb29d2db5cadfd9f0d5b46129b25e3c6a3429e7bb2bd4c51f50b76f0c6bd87e396711e6cc2915d08653ad524c5d9292f6e37fab30110cec7641163accc02d5e
 DIST chromium-115.0.5790.56.tar.xz 1595456208 BLAKE2B 074a33431bf67514cddf0baf5133f7a192beb7f878d8147f9428a9b307e13cf7b20aeb4fccd5d1acde53d4614599e9b91c9bea9c7554d596b001084578abbe1b SHA512 958c8d90e6af99884aa75733f9eaef11eb44c6cb2fe6b0dcb5dc9b82991464bd909cfeeddce808185f96fe159f25e3b2c14ba33b5be11920c02bc89757a598bf
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c

diff --git a/www-client/chromium/chromium-114.0.5735.198.ebuild b/www-client/chromium/chromium-114.0.5735.198.ebuild
new file mode 100644
index 000000000000..dacb4ae4c472
--- /dev/null
+++ b/www-client/chromium/chromium-114.0.5735.198.ebuild
@@ -0,0 +1,1270 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="xml(+)"
+LLVM_MAX_SLOT=16
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+VIRTUALX_REQUIRED="pgo"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
+PATCHSET_NAME_PPC64="chromium_114.0.5735.106-1raptor0~deb11u1.debian"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz
+	ppc64? (
+		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
+		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/stable"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid !libcxx )
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	system-av1? (
+		>=media-libs/dav1d-1.0.0:=
+		>=media-libs/libaom-3.4.0:=
+	)
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-libs/libpulse:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -gt 1 ]]; then
+		echo "|| ("
+		for _v in "$@"; do
+			echo "("
+			depend_clang_llvm_version "${_v}"
+			echo ")"
+		done
+		echo ")"
+	elif [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+	)
+	libcxx? ( >=sys-devel/clang-16 )
+	lto? ( $(depend_clang_llvm_versions 16) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions 16)
+	)
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-16"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="12G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		CHECKREQS_DISK_BUILD="13G"
+		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
+		use pgo && CHECKREQS_DISK_BUILD="20G"
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	if use lto || use pgo; then
+		llvm_pkg_setup
+	fi
+
+	pre_build_checks
+
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 12; then
+			die "At least gcc 12 is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang && ! tc-is-clang; then
+			if tc-is-cross-compiler; then
+				CPP="${CBUILD}-clang++ -E"
+			else
+				CPP="${CHOST}-clang++ -E"
+			fi
+			if ! ver_test "$(clang-major-version)" -ge 16; then
+				die "At least clang 16 is required"
+			fi
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+	# Tis lazy, but tidy this up in 115.
+	pushd "${WORKDIR}/chromium-112-gcc-13-patches/" || die
+		rm chromium-112-gcc-13-0002-perfetto.patch || die
+		rm chromium-112-gcc-13-0004-swiftshader.patch || die
+		rm chromium-112-gcc-13-0007-misc.patch || die
+		rm chromium-112-gcc-13-0008-dawn.patch || die
+		rm chromium-112-gcc-13-0009-base.patch || die
+		rm chromium-112-gcc-13-0010-components.patch || die
+		rm chromium-112-gcc-13-0011-s2cellid.patch || die
+		rm chromium-112-gcc-13-0012-webrtc-base64.patch || die
+		rm chromium-112-gcc-13-0013-quiche.patch || die
+		rm chromium-112-gcc-13-0015-net.patch || die
+		rm chromium-112-gcc-13-0016-cc-targetproperty.patch || die
+		rm chromium-112-gcc-13-0017-gpu_feature_info.patch || die
+		rm chromium-112-gcc-13-0018-encounteredsurfacetracker.patch || die
+		rm chromium-112-gcc-13-0019-documentattachmentinfo.patch  || die
+		rm chromium-112-gcc-13-0020-pdfium.patch || die
+		rm chromium-112-gcc-13-0021-gcc-copy-list-init-net-HostCache.patch || die
+		rm chromium-112-gcc-13-0022-gcc-ambiguous-ViewTransitionElementId-type.patch || die
+		rm chromium-112-gcc-13-0023-gcc-incomplete-type-v8-subtype.patch || die
+	popd || die
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-openh264.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${WORKDIR}/chromium-112-gcc-13-patches"
+		"${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch"
+		"${FILESDIR}/chromium-113-swiftshader-cstdint.patch"
+		"${FILESDIR}/chromium-114-compiler.patch"
+		"${FILESDIR}/chromium-114-gcc12.patch"
+		"${FILESDIR}/chromium-114-sigsegv-dom.patch"
+		"${FILESDIR}/chromium-114-iwyu-gcc-13.patch"
+		"${FILESDIR}/chromium-114-remove-evdev-dep.patch"
+	)
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/systeminfo
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if ! use system-av1; then
+		keeplibs+=(
+			third_party/dav1d
+			third_party/libaom
+			third_party/libaom/source/libaom/third_party/fastfeat
+			third_party/libaom/source/libaom/third_party/SVT-AV1
+			third_party/libaom/source/libaom/third_party/vector
+			third_party/libaom/source/libaom/third_party/x86inc
+		)
+	fi
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto || use pgo; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# Disable rust for now; it's only used for testing and we don't need the additional bdep
+	myconf_gn+=" enable_rust=false"
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-av1; then
+		gn_system_libraries+=( dav1d libaom )
+	fi
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)"
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5; then
+			local moc_dir="$(qt5_get_bindir)"
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
+			fi
+			export PATH="${PATH}:${moc_dir}"
+		fi
+		myconf_gn+=" use_qt=$(usex qt5 true false)"
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-114-remove-evdev-dep.patch b/www-client/chromium/files/chromium-114-remove-evdev-dep.patch
new file mode 100644
index 000000000000..61d09d341adc
--- /dev/null
+++ b/www-client/chromium/files/chromium-114-remove-evdev-dep.patch
@@ -0,0 +1,35 @@
+This patch removes the dependency on libevdev from remoting/host.
+
+According to sultan it's not (currently(?)) used so we can avoid that dependency.
+
+--- a/remoting/host/BUILD.gn
++++ b/remoting/host/BUILD.gn
+@@ -241,10 +241,6 @@ if (is_linux) {
+   pkg_config("xkbcommon") {
+     packages = [ "xkbcommon" ]
+   }
+-
+-  pkg_config("libevdev") {
+-    packages = [ "libevdev" ]
+-  }
+ }
+ 
+ # This must be a static library instead of a source set because
+@@ -572,7 +572,6 @@ static_library("common") {
+       "x11_display_util.cc",
+       "x11_display_util.h",
+     ]
+-    configs += [ ":libevdev" ]
+     libs += [ "//third_party/libei/lib64/libei.a" ]
+     public_deps += [
+       "//third_party/wayland:wayland_client",
+--- a/remoting/host/linux/remote_desktop_portal_injector.cc
++++ b/remoting/host/linux/remote_desktop_portal_injector.cc
+@@ -9,7 +9,6 @@
+ #include <glib-object.h>
+ #include <poll.h>
+ 
+-#include <libevdev/libevdev-uinput.h>
+ #include <utility>
+ 
+ #include "base/check.h"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-06-29 14:49 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2023-06-29 14:49 UTC (permalink / raw
  To: gentoo-commits

commit:     59ef18c5b9135715eb2af1048b1d4b8bc82f6299
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 29 14:48:57 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Jun 29 14:48:57 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59ef18c5

www-client/chromium: beta channel bump to 115.0.5790.56

Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +-
 ...790.40.ebuild => chromium-115.0.5790.56.ebuild} |  39 ++++++--
 www-client/chromium/files/chromium-qt6.patch       | 106 +++++++++++++++++++++
 3 files changed, 139 insertions(+), 8 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4e6ae644f0b7..33eb9931a4da 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,7 +3,7 @@ DIST chromium-113.0.5672.126.tar.xz 1556790928 BLAKE2B e945fb0f17027b5e927970a73
 DIST chromium-114.0.5735.110.tar.xz 1570743048 BLAKE2B 38c7baab57fd71fd0bf4834bf6552125c3476e6ce36daf1975aa8f56fb98de9c8ba2e00a7b864d4e9e5388b5c780379823fa3f6edae1e373b78f2edc1693f639 SHA512 fa8bb133b27b833115546f887c06e81bf54285521bf6e1098a1a9189b633400e2a1cd69c4618457e8c316e7b8389c9ddf26bfb4fc0dbaa9b57077f0875a898df
 DIST chromium-114.0.5735.133.tar.xz 1570531072 BLAKE2B 7f3bea51297cc77b13845f0984d2e8f970c48a122b0742c979d1bd000ad524d11b7f635619b20355842a013dbba52d995692f2d1d6ce7ff5f62b4093de731f1b SHA512 110adf42c2dfc7249e97bd338710b647e94a4e6258c5f357161f32c55c351257b9b96672549de84ed343182e2b9eaac438e6578bc1660d9829040b5e41a13033
 DIST chromium-115-patchset-2.tar.xz 5648 BLAKE2B 6e30d36b20dea958474134f226edb477cb9fb50cb10e3732a9bd500aef1dd5a1a6c9f2cc5d0063f5e51c4120c7fd7e4a53af4a3a9ae63ba30df58000edf45539 SHA512 9cb29d2db5cadfd9f0d5b46129b25e3c6a3429e7bb2bd4c51f50b76f0c6bd87e396711e6cc2915d08653ad524c5d9292f6e37fab30110cec7641163accc02d5e
-DIST chromium-115.0.5790.40.tar.xz 1595295492 BLAKE2B 9d054b1cb57f71d6fb378dfab96e4cccb456341be75e987116c4068819c5ea5d792b5592683cf7a63b4e20be63507b4b9b2291da867fd58a81f7a508714f2191 SHA512 03f3a522ffa2de112de24407f18c39d92b18c83436082cb472575ee7e1c3b77406a08b2245b03fd501d5d21403c283bc4af1184afa905335fa3c8ddcb7d39835
+DIST chromium-115.0.5790.56.tar.xz 1595456208 BLAKE2B 074a33431bf67514cddf0baf5133f7a192beb7f878d8147f9428a9b307e13cf7b20aeb4fccd5d1acde53d4614599e9b91c9bea9c7554d596b001084578abbe1b SHA512 958c8d90e6af99884aa75733f9eaef11eb44c6cb2fe6b0dcb5dc9b82991464bd909cfeeddce808185f96fe159f25e3b2c14ba33b5be11920c02bc89757a598bf
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_113.0.5672.63-2raptor0~deb11u1.debian.tar.xz 504340 BLAKE2B 580ab6f3e061e7b64e8747251c56f059015e3917fcd24445c480d1d8c409a5e0ba5fba6a14a5aeb48e95a83483a0c57663dfd708baddb4dc101e209497d2bd0c SHA512 f750589d22cf787c890801c097193572408b4b0883c4e9a34892ab34cc6921c051866b4911f68db599640537f489311b4b4d19ec0229850276e6154101b8165b

diff --git a/www-client/chromium/chromium-115.0.5790.40.ebuild b/www-client/chromium/chromium-115.0.5790.56.ebuild
similarity index 97%
rename from www-client/chromium/chromium-115.0.5790.40.ebuild
rename to www-client/chromium/chromium-115.0.5790.56.ebuild
index e4d21db25d90..bb4cf070fe49 100644
--- a/www-client/chromium/chromium-115.0.5790.40.ebuild
+++ b/www-client/chromium/chromium-115.0.5790.56.ebuild
@@ -33,12 +33,13 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD"
 SLOT="0/beta"
 KEYWORDS="~amd64 ~arm64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 qt6 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
 REQUIRED_USE="
 	component-build? ( !suid !libcxx )
 	screencast? ( wayland )
 	!headless? ( || ( X wayland ) )
 	pgo? ( X !wayland )
+	qt6? ( qt5 )
 "
 
 COMMON_X_DEPEND="
@@ -124,6 +125,7 @@ COMMON_DEPEND="
 			dev-qt/qtcore:5
 			dev-qt/qtwidgets:5
 		)
+		qt6? ( dev-qt/qtbase:6[gui,widgets] )
 	)
 "
 RDEPEND="${COMMON_DEPEND}
@@ -133,6 +135,7 @@ RDEPEND="${COMMON_DEPEND}
 			gui-libs/gtk:4[X?,wayland?]
 		)
 		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+		qt6? ( dev-qt/qtbase:6[X?,wayland?] )
 	)
 	virtual/ttf-fonts
 	selinux? ( sec-policy/selinux-chromium )
@@ -174,6 +177,7 @@ BDEPEND="
 	>=app-arch/gzip-1.7
 	!headless? (
 		qt5? ( dev-qt/qtcore:5 )
+		qt6? ( dev-qt/qtbase:6 )
 	)
 	libcxx? ( >=sys-devel/clang-16 )
 	lto? ( $(depend_clang_llvm_versions 16) )
@@ -281,7 +285,7 @@ pkg_pretend() {
 	pre_build_checks
 
 	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland")
 		for myiuse in ${headless_unused_flags[@]}; do
 			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
 		done
@@ -331,10 +335,12 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-cross-compile.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-qt6.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
 		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-109-system-zlib.patch"
 		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+
 	)
 
 	if use ppc64 ; then
@@ -947,17 +953,30 @@ chromium_configure() {
 		myconf_gn+=" use_system_libdrm=true"
 		myconf_gn+=" use_system_minigbm=true"
 		myconf_gn+=" use_xkbcommon=true"
-		if use qt5; then
-			local moc_dir="$(qt5_get_bindir)"
+		if use qt5 || use qt6; then
+			local cbuild_libdir=$(get_libdir)
 			if tc-is-cross-compiler; then
 				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
 				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
 				cbuild_libdir=${cbuild_libdir:2}
-				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
+				cbuild_libdir=${cbuild_libdir/% }
+			fi
+			if use qt5; then
+				if tc-is-cross-compiler; then
+					myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\""
+				else
+					myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\""
+				fi
+			fi
+			if use qt6; then
+				myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
 			fi
-			export PATH="${PATH}:${moc_dir}"
+
+			myconf_gn+=" use_qt=true"
+			myconf_gn+=" use_qt6=$(usex qt6 true false)"
+		else
+			myconf_gn+=" use_qt=false"
 		fi
-		myconf_gn+=" use_qt=$(usex qt5 true false)"
 		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
 		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
 		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
@@ -1240,5 +1259,11 @@ pkg_postinst() {
 			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
 			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
 		fi
+		if use qt5 && use qt6; then
+			elog "Chromium automatically selects Qt5 or Qt6 based on your desktop"
+			elog "environment. To override you need to pass --qt-version=5 or"
+			elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in"
+			elog "/etc/chromium/default."
+		fi
 	fi
 }

diff --git a/www-client/chromium/files/chromium-qt6.patch b/www-client/chromium/files/chromium-qt6.patch
new file mode 100644
index 000000000000..1f18a937331c
--- /dev/null
+++ b/www-client/chromium/files/chromium-qt6.patch
@@ -0,0 +1,106 @@
+--- a/ui/qt/qt.gni
++++ b/ui/qt/qt.gni
+@@ -12,9 +12,21 @@ declare_args() {
+   use_qt = is_linux && !is_castos && !is_msan
+ }
+ 
++declare_args() {
++  if(!use_sysroot && use_qt) {
++     moc_qt5_path = ""
++  }
++}
++
+ declare_args() {
+   use_qt6 = use_qt && use_sysroot
+ }
+ 
++declare_args() {
++  if(!use_sysroot && use_qt6) {
++     moc_qt6_path = ""
++  }
++}
++
+ # use_qt6 => use_qt
+ assert(!use_qt6 || use_qt)
+--- a/ui/qt/BUILD.gn
++++ b/ui/qt/BUILD.gn
+@@ -41,16 +41,19 @@ source_set("qt_interface") {
+   sources = [ "qt_interface.cc" ]
+ }
+ 
+-if (!use_sysroot) {
+-  action("generate_moc") {
+-    script = "moc_wrapper.py"
+-    inputs = [ "//ui/qt/qt_shim.h" ]
+-    outputs = [ "$root_gen_dir/qt_shim_moc.cc" ]
+-    args = rebase_path(inputs + outputs, root_build_dir)
++template("qt_shim") {
++  if (!use_sysroot) {
++    action("generate_moc" + invoker.qt_version) {
++      script = "moc_wrapper.py"
++      inputs = [ "//ui/qt/qt_shim.h" ]
++      outputs = [ "$root_gen_dir/qt" + invoker.qt_version + "/qt_shim_moc.cc" ]
++      args = rebase_path(inputs + outputs, root_build_dir)
++      if (invoker.moc_qt_path != "") {
++        args += [ "--path", invoker.moc_qt_path ]
++      }
++    }
+   }
+-}
+ 
+-template("qt_shim") {
+   pkg_config("qt" + invoker.qt_version + "_config") {
+     packages = [
+       "Qt" + invoker.qt_version + "Core",
+@@ -90,17 +93,23 @@ template("qt_shim") {
+       # avoid a build-time dependency on `moc` when using the sysroot.
+       sources += [ "qt" + invoker.qt_version + "_shim_moc.cc" ]
+     } else {
+-      sources += get_target_outputs(":generate_moc")
+-      deps += [ ":generate_moc" ]
++      sources += get_target_outputs(":generate_moc" + invoker.qt_version)
++      deps += [ ":generate_moc" + invoker.qt_version ]
+     }
+   }
+ }
+ qt_shim("qt5_shim") {
+   qt_version = "5"
++  if (!use_sysroot) {
++    moc_qt_path = "$moc_qt5_path"
++  }
+ }
+ if (use_qt6) {
+   qt_shim("qt6_shim") {
+     qt_version = "6"
++  if (!use_sysroot) {
++    moc_qt_path = "$moc_qt6_path"
++  }
+   }
+ }
+ 
+--- a/ui/qt/moc_wrapper.py
++++ b/ui/qt/moc_wrapper.py
+@@ -3,8 +3,21 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
++import argparse
+ import subprocess
+-import sys
+ 
++parser = argparse.ArgumentParser()
++parser.add_argument(
++    'input', type=str, help='Input header file.')
++parser.add_argument(
++    'output', type=str, help='Output file.')
++parser.add_argument(
++    '--path', required=False, type=str, default=None,
++    help='Path to moc binary.')
+ 
+-subprocess.check_call(["moc", sys.argv[1], "-o", sys.argv[2]])
++args = parser.parse_args()
++
++if args.path is None:
++    subprocess.check_call(["moc", args.input, "-o", args.output])
++else:
++    subprocess.check_call([args.path + "/moc", args.input, "-o", args.output])


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-06-14 15:09 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2023-06-14 15:09 UTC (permalink / raw
  To: gentoo-commits

commit:     95dc28cd8feecf8fd7e7d9d9310ccfa08a2e8ec8
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 14 15:08:31 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Jun 14 15:09:56 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95dc28cd

www-client/chromium: backport fix for missing includes

Bug: https://bugs.gentoo.org/908432
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-114.0.5735.133.ebuild |  1 +
 .../chromium/files/chromium-114-iwyu-gcc-13.patch  | 75 ++++++++++++++++++++++
 2 files changed, 76 insertions(+)

diff --git a/www-client/chromium/chromium-114.0.5735.133.ebuild b/www-client/chromium/chromium-114.0.5735.133.ebuild
index 2775c0204444..0c1897d84b89 100644
--- a/www-client/chromium/chromium-114.0.5735.133.ebuild
+++ b/www-client/chromium/chromium-114.0.5735.133.ebuild
@@ -360,6 +360,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-114-compiler.patch"
 		"${FILESDIR}/chromium-114-gcc12.patch"
 		"${FILESDIR}/chromium-114-sigsegv-dom.patch"
+		"${FILESDIR}/chromium-114-iwyu-gcc-13.patch"
 	)
 
 	if use ppc64 ; then

diff --git a/www-client/chromium/files/chromium-114-iwyu-gcc-13.patch b/www-client/chromium/files/chromium-114-iwyu-gcc-13.patch
new file mode 100644
index 000000000000..564a9ee75843
--- /dev/null
+++ b/www-client/chromium/files/chromium-114-iwyu-gcc-13.patch
@@ -0,0 +1,75 @@
+From 75c57b5f810d6ac6f393459d2884877c7fcf774c Mon Sep 17 00:00:00 2001
+From: Bruno Pitrus <brunopitrus@hotmail.com>
+Date: Mon, 05 Jun 2023 21:22:55 +0000
+Subject: [PATCH] IWYU: Add missing standard includes for GCC13
+
+Bug: 957519
+Change-Id: Ie327653083173b41dfd5a456f82ccb490c305c26
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4547709
+Commit-Queue: Nico Weber <thakis@chromium.org>
+Auto-Submit: Bruno Pitrus <brunopitrus@hotmail.com>
+Reviewed-by: Nico Weber <thakis@chromium.org>
+Reviewed-by: Eric Orth <ericorth@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1153468}
+---
+
+diff --git a/base/cpu.h b/base/cpu.h
+index 10450e9..2ac00e9 100644
+--- a/base/cpu.h
++++ b/base/cpu.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CPU_H_
+ #define BASE_CPU_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "base/base_export.h"
+diff --git a/components/services/app_service/public/cpp/intent_filter.h b/components/services/app_service/public/cpp/intent_filter.h
+index 9c83ccf..48724963 100644
+--- a/components/services/app_service/public/cpp/intent_filter.h
++++ b/components/services/app_service/public/cpp/intent_filter.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_INTENT_FILTER_H_
+ #define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_INTENT_FILTER_H_
+ 
++#include <memory>
+ #include <set>
+ #include <string>
+ #include <utility>
+diff --git a/components/services/app_service/public/cpp/permission.h b/components/services/app_service/public/cpp/permission.h
+index 82d323a..ede8540 100644
+--- a/components/services/app_service/public/cpp/permission.h
++++ b/components/services/app_service/public/cpp/permission.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PERMISSION_H_
+ #define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PERMISSION_H_
+ 
++#include <memory>
+ #include <utility>
+ #include <vector>
+ 
+diff --git a/components/viz/common/view_transition_element_resource_id.h b/components/viz/common/view_transition_element_resource_id.h
+index 17ae568..44f980f 100644
+--- a/components/viz/common/view_transition_element_resource_id.h
++++ b/components/viz/common/view_transition_element_resource_id.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+diff --git a/net/cert/pki/string_util.h b/net/cert/pki/string_util.h
+index b18f716..7340408 100644
+--- a/net/cert/pki/string_util.h
++++ b/net/cert/pki/string_util.h
+@@ -9,6 +9,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string_view>
+ #include <vector>
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-06-10  5:09 Sam James
  0 siblings, 0 replies; 149+ messages in thread
From: Sam James @ 2023-06-10  5:09 UTC (permalink / raw
  To: gentoo-commits

commit:     f747a372822f32bb299dc401b548db527c9a20f1
Author:     Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
AuthorDate: Wed Jun  7 14:31:31 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 10 05:09:01 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f747a372

www-client/chromium: add 114.0.5735.110

Add myself as a maintainer

Bug: https://bugs.gentoo.org/907999
Closes: https://bugs.gentoo.org/906911
Closes: https://bugs.gentoo.org/906962
Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
Closes: https://github.com/gentoo/gentoo/pull/31344
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-client/chromium/Manifest                       |    2 +
 www-client/chromium/chromium-114.0.5735.110.ebuild | 1268 ++++++++++++++++++++
 .../chromium/files/chromium-114-compiler.patch     |  171 +++
 www-client/chromium/files/chromium-114-gcc12.patch |   30 +
 .../chromium/files/chromium-114-sigsegv-dom.patch  |   73 ++
 www-client/chromium/metadata.xml                   |    8 +
 6 files changed, 1552 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f1de004adb5f..c5b5392927b4 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,7 +3,9 @@ DIST chromium-112.0.5615.165.tar.xz 1730146076 BLAKE2B 710f5490a48f9e268690bac1b
 DIST chromium-113.0.5672.126.tar.xz 1556790928 BLAKE2B e945fb0f17027b5e927970a73b6f6342a8ee0a1553422002c22e89988def79d28fc03564d510305cebe7cf4ee060a294761ec95f07fc5c92d89c5202470f0b71 SHA512 0e968fb68818bdc5be0b89334e1703ca7bc572ba58f641c4f0420618ee7719b203c5f1d895c56c5152706f391073de3f12754f5738acea53ff9f9c6a62258d99
 DIST chromium-113.0.5672.63.tar.xz 1556641240 BLAKE2B d52a8eec055f289eafd829db6dceaae5c08132d73015870ff51d5bc7856e79ad0f3feb976b1dc5b8b43302f843394bf312ab6ddf55bf547c79f56d69cdce370f SHA512 b99ce267ecfaf497b99262a243f43eab9b170563227b407ef17dd85f8f6d892d9c264df83b166a52683156ee33e8504f9fcf09db68c6edb29b6588d870833711
 DIST chromium-113.0.5672.92.tar.xz 1556728164 BLAKE2B d3f4b61213710cb98856ac91a1fb167883d6031958bfe930b7087f4b135bc0e7a8db09595f6d0e27f00bd3bf10479076dbc7e8a373817de972c0d3cf68efb8bb SHA512 30de7a92063feeb7217108b1065d34e44cd73c28cf9982820093ba8fed7a818a62ea65e1b6ea1bdad601da819c2fe00df3eb28ffa226eb1bd564577d959332c5
+DIST chromium-114.0.5735.110.tar.xz 1570743048 BLAKE2B 38c7baab57fd71fd0bf4834bf6552125c3476e6ce36daf1975aa8f56fb98de9c8ba2e00a7b864d4e9e5388b5c780379823fa3f6edae1e373b78f2edc1693f639 SHA512 fa8bb133b27b833115546f887c06e81bf54285521bf6e1098a1a9189b633400e2a1cd69c4618457e8c316e7b8389c9ddf26bfb4fc0dbaa9b57077f0875a898df
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_112.0.5615.49-2raptor0~deb11u1.debian.tar.xz 780000 BLAKE2B 2aa91c689b634f51978428f5992f41190e7c9b7d4009ee2f34a55e0666caf8ce02f5c5b6297702fe7ecb3a7961d5c84102ebda5189f3c513576a83f3c94dafa1 SHA512 b92b2a76a9ef6fc23ef06ae1d428f6755d9c8551230926a1c422c8c560ec95b1aa53a5a578519ba7426e6985c234cfd30573d8bb482499dd1532163975af293f
 DIST chromium_113.0.5672.63-2raptor0~deb11u1.debian.tar.xz 504340 BLAKE2B 580ab6f3e061e7b64e8747251c56f059015e3917fcd24445c480d1d8c409a5e0ba5fba6a14a5aeb48e95a83483a0c57663dfd708baddb4dc101e209497d2bd0c SHA512 f750589d22cf787c890801c097193572408b4b0883c4e9a34892ab34cc6921c051866b4911f68db599640537f489311b4b4d19ec0229850276e6154101b8165b
+DIST chromium_114.0.5735.106-1raptor0~deb11u1.debian.tar.xz 514572 BLAKE2B 1bc2c5d98d951b985f79ff072aae46f84487a5ebf7b0499e2e18bc3826c364594a200af588019683a07c283224df3b232fa52197a31670df9f2e15ea21aae612 SHA512 f970d263efb3f6d4380ad25c7a6fd49a11c171465c225e6d72dc8d0e023a76da6eb101f8cfc82e245dac814e18d71526f84d9339d584ee423be0de9cfd9a0f7b

diff --git a/www-client/chromium/chromium-114.0.5735.110.ebuild b/www-client/chromium/chromium-114.0.5735.110.ebuild
new file mode 100644
index 000000000000..8609002b5fcc
--- /dev/null
+++ b/www-client/chromium/chromium-114.0.5735.110.ebuild
@@ -0,0 +1,1268 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="xml(+)"
+LLVM_MAX_SLOT=16
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+VIRTUALX_REQUIRED="pgo"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
+PATCHSET_NAME_PPC64="chromium_114.0.5735.106-1raptor0~deb11u1.debian"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz
+	ppc64? (
+		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
+		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/stable"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid !libcxx )
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	system-av1? (
+		>=media-libs/dav1d-1.0.0:=
+		>=media-libs/libaom-3.4.0:=
+	)
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-sound/pulseaudio:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -gt 1 ]]; then
+		echo "|| ("
+		for _v in "$@"; do
+			echo "("
+			depend_clang_llvm_version "${_v}"
+			echo ")"
+		done
+		echo ")"
+	elif [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+	)
+	libcxx? ( >=sys-devel/clang-16 )
+	lto? ( $(depend_clang_llvm_versions 16) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions 16)
+	)
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-16"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="12G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		CHECKREQS_DISK_BUILD="13G"
+		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
+		use pgo && CHECKREQS_DISK_BUILD="20G"
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	if use lto || use pgo; then
+		llvm_pkg_setup
+	fi
+
+	pre_build_checks
+
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 12; then
+			die "At least gcc 12 is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang && ! tc-is-clang; then
+			if tc-is-cross-compiler; then
+				CPP="${CBUILD}-clang++ -E"
+			else
+				CPP="${CHOST}-clang++ -E"
+			fi
+			if ! ver_test "$(clang-major-version)" -ge 16; then
+				die "At least clang 16 is required"
+			fi
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+	# Tis lazy, but tidy this up in 115.
+	pushd "${WORKDIR}/chromium-112-gcc-13-patches/" || die
+		rm chromium-112-gcc-13-0002-perfetto.patch || die
+		rm chromium-112-gcc-13-0004-swiftshader.patch || die
+		rm chromium-112-gcc-13-0007-misc.patch || die
+		rm chromium-112-gcc-13-0008-dawn.patch || die
+		rm chromium-112-gcc-13-0009-base.patch || die
+		rm chromium-112-gcc-13-0010-components.patch || die
+		rm chromium-112-gcc-13-0011-s2cellid.patch || die
+		rm chromium-112-gcc-13-0012-webrtc-base64.patch || die
+		rm chromium-112-gcc-13-0013-quiche.patch || die
+		rm chromium-112-gcc-13-0015-net.patch || die
+		rm chromium-112-gcc-13-0016-cc-targetproperty.patch || die
+		rm chromium-112-gcc-13-0017-gpu_feature_info.patch || die
+		rm chromium-112-gcc-13-0018-encounteredsurfacetracker.patch || die
+		rm chromium-112-gcc-13-0019-documentattachmentinfo.patch  || die
+		rm chromium-112-gcc-13-0020-pdfium.patch || die
+		rm chromium-112-gcc-13-0021-gcc-copy-list-init-net-HostCache.patch || die
+		rm chromium-112-gcc-13-0022-gcc-ambiguous-ViewTransitionElementId-type.patch || die
+		rm chromium-112-gcc-13-0023-gcc-incomplete-type-v8-subtype.patch || die
+	popd || die
+
+	local PATCHES=(
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-openh264.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${WORKDIR}/chromium-112-gcc-13-patches"
+		"${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch"
+		"${FILESDIR}/chromium-113-swiftshader-cstdint.patch"
+		"${FILESDIR}/chromium-114-compiler.patch"
+		"${FILESDIR}/chromium-114-gcc12.patch"
+		"${FILESDIR}/chromium-114-sigsegv-dom.patch"
+	)
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/systeminfo
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if ! use system-av1; then
+		keeplibs+=(
+			third_party/dav1d
+			third_party/libaom
+			third_party/libaom/source/libaom/third_party/fastfeat
+			third_party/libaom/source/libaom/third_party/SVT-AV1
+			third_party/libaom/source/libaom/third_party/vector
+			third_party/libaom/source/libaom/third_party/x86inc
+		)
+	fi
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto || use pgo; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# Disable rust for now; it's only used for testing and we don't need the additional bdep
+	myconf_gn+=" enable_rust=false"
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-av1; then
+		gn_system_libraries+=( dav1d libaom )
+	fi
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)"
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5; then
+			local moc_dir="$(qt5_get_bindir)"
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
+			fi
+			export PATH="${PATH}:${moc_dir}"
+		fi
+		myconf_gn+=" use_qt=$(usex qt5 true false)"
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-114-compiler.patch b/www-client/chromium/files/chromium-114-compiler.patch
new file mode 100644
index 000000000000..f6a6b708da6f
--- /dev/null
+++ b/www-client/chromium/files/chromium-114-compiler.patch
@@ -0,0 +1,171 @@
+This patches the compiler settings for chromium to remove
+clang-specific settings, among other things.
+
+Just do a `git apply --reject` to the unpacked chromium source when
+it inevitably needs to be updated between versions.
+
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -289,9 +289,7 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+     ":rustc_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+     ":compiler_deterministic",
+   ]
+@@ -732,7 +730,6 @@ config("compiler") {
+         # toolchain has this flag.
+         # We only use one version of LLVM within a build so there's no need to
+         # upgrade debug info, which can be expensive since it runs the verifier.
+-        ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
+       }
+     }
+ 
+@@ -1406,27 +1403,6 @@ config("compiler_deterministic") {
+   }
+ }
+ 
+-config("clang_revision") {
+-  if (is_clang && clang_base_path == default_clang_base_path) {
+-    update_args = [
+-      "--print-revision",
+-      "--verify-version=$clang_version",
+-    ]
+-    if (llvm_force_head_revision) {
+-      update_args += [ "--llvm-force-head-revision" ]
+-    }
+-    clang_revision = exec_script("//tools/clang/scripts/update.py",
+-                                 update_args,
+-                                 "trim string")
+-
+-    # This is here so that all files get recompiled after a clang roll and
+-    # when turning clang on or off. (defines are passed via the command line,
+-    # and build system rebuild things when their commandline changes). Nothing
+-    # should ever read this define.
+-    defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ]
+-  }
+-}
+-
+ config("rustc_revision") {
+   if (rustc_revision != "") {
+     # Similar to the above config, this is here so that all files get recompiled
+@@ -1716,7 +1692,7 @@ config("chromium_code") {
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1725,10 +1701,6 @@ config("chromium_code") {
+       # well.
+       ldflags = [ "-Werror" ]
+     }
+-    if (is_clang) {
+-      # Enable extra warnings for chromium_code when we control the compiler.
+-      cflags += [ "-Wextra" ]
+-    }
+ 
+     if (treat_warnings_as_errors) {
+       # Turn rustc warnings into the "deny" lint level, which produce compiler
+@@ -1746,16 +1718,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+-        current_cpu != "s390" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64" &&
+-        current_cpu != "riscv64" && current_cpu != "loong64") {
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_apple) {
+       cflags_objc = [ "-Wimplicit-retain-self" ]
+       cflags_objcc = [ "-Wimplicit-retain-self" ]
+@@ -2120,7 +2082,8 @@ config("default_stack_frames") {
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     if (chrome_pgo_phase != 2) {
+       # Favor size over speed, /O1 must be before the common flags.
+@@ -2179,7 +2142,8 @@ config("optimize") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2219,7 +2183,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2252,7 +2217,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2278,7 +2244,8 @@ config("optimize_speed") {
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   rustflags = [ "-Copt-level=1" ]
+   ldflags = common_optimize_on_ldflags
+@@ -2403,7 +2370,8 @@ config("win_pdbaltpath") {
+ }
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   rustflags = []
+   if (is_win) {
+     if (is_clang) {
+@@ -2546,7 +2514,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Functions, files, and line tables only.
+     cflags = []
+@@ -2620,7 +2589,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (is_win) {
+     ldflags = [ "/DEBUG" ]
+ 

diff --git a/www-client/chromium/files/chromium-114-gcc12.patch b/www-client/chromium/files/chromium-114-gcc12.patch
new file mode 100644
index 000000000000..5070135c6117
--- /dev/null
+++ b/www-client/chromium/files/chromium-114-gcc12.patch
@@ -0,0 +1,30 @@
+https://chromium.googlesource.com/chromium/src/+/a1fec6273f3ad7c73b35bb420a5540355df35b74
+controlledframe: Fix start up crash
+
+This commit applies a fix from mail@maciej.szmigiero.name to prevent a
+null reference error in GetControlledFrameFeatureList(). The fix is to
+add static to `feature_list` so that the object lives past this
+function.
+
+BUG=1447422
+
+Change-Id: I22879831ec879ce7d6a178760540f88106b3ded4
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4555985
+Commit-Queue: Ovidio Ruiz-Henríquez <odejesush@chromium.org>
+Reviewed-by: David Roger <droger@chromium.org>
+Reviewed-by: Chase Phillips <cmp@chromium.org>
+Auto-Submit: Ovidio Ruiz-Henríquez <odejesush@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1149296}
+
+--- a/chrome/common/initialize_extensions_client.cc
++++ b/chrome/common/initialize_extensions_client.cc
+
+@@ -19,7 +19,7 @@
+ 
+ // This list should stay in sync with GetExpectedDelegatedFeaturesForTest().
+ base::span<const char* const> GetControlledFrameFeatureList() {
+-  constexpr const char* feature_list[] = {
++  static constexpr const char* feature_list[] = {
+       "controlledFrameInternal", "chromeWebViewInternal", "guestViewInternal",
+       "webRequestInternal",      "webViewInternal",
+   };

diff --git a/www-client/chromium/files/chromium-114-sigsegv-dom.patch b/www-client/chromium/files/chromium-114-sigsegv-dom.patch
new file mode 100644
index 000000000000..fe4c2809693c
--- /dev/null
+++ b/www-client/chromium/files/chromium-114-sigsegv-dom.patch
@@ -0,0 +1,73 @@
+https://chromium.googlesource.com/chromium/src.git/+/2af2d08972d14d5bdd91e0515eb5b15b4444aee9
+blink::HTMLMediaElement::ShouldReusePlayer: avoid dereferencing a potentally NULL domWindow
+
+The domWindow() method of the Document class can potentially return nullptr
+as noted in renderer/core/dom/document.h
+
+> // A document may or may not have a browsing context
+> // (https://html.spec.whatwg.org/#browsing-context). A document with a browsing
+> // context is created by navigation, and has a non-null domWindow(), GetFrame(),
+> // Loader(), etc., and is visible to the user. It will have a valid
+> // GetExecutionContext(), which will be equal to domWindow(). If the Document
+> // constructor receives a DocumentInit created WithDocumentLoader(), it will
+> // have a browsing context.
+> // Documents created by all other APIs do not have a browsing context. These
+> // Documents still have a valid GetExecutionContext() (i.e., the domWindow() of
+> // the Document in which they were created), so they can still access
+> // script, but return null for domWindow(), GetFrame() and Loader(). Generally,
+> // they should not downcast the ExecutionContext to a LocalDOMWindow and access
+> // the properties of the window directly.
+
+Upon checking further, the offending document returns null for GetFrame() and
+Loader() aswell so this was likely just an oversight and no invariants are being
+violated
+
+Introduced in https://chromium-review.googlesource.com/c/chromium/src/+/4202152
+
+More details https://bugs.chromium.org/p/chromium/issues/detail?id=1447388
+
+Fixed: 1447388
+Change-Id: I85a6ef52baaac0ec7f5ec188d5d5bb2c518a8ecd
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4546610
+Reviewed-by: Fredrik Söderquist <fs@opera.com>
+Commit-Queue: Fredrik Söderquist <fs@opera.com>
+Cr-Commit-Position: refs/heads/main@{#1147184}
+
+--- a/AUTHORS
++++ b/AUTHORS
+
+@@ -1012,6 +1012,7 @@
+ Prashant Hiremath <prashhir@cisco.com>
+ Prashant Nevase <prashant.n@samsung.com>
+ Prashant Patil <prashant.patil@imgtec.com>
++Pratham <prathamIN@proton.me>
+ Praveen Akkiraju <praveen.anp@samsung.com>
+ Preeti Nayak <preeti.nayak@samsung.com>
+ Pritam Nikam <pritam.nikam@samsung.com>
+
+--- a/third_party/blink/renderer/core/html/media/html_media_element.cc
++++ b/third_party/blink/renderer/core/html/media/html_media_element.cc
+
+@@ -648,6 +648,11 @@
+ 
+ bool HTMLMediaElement::ShouldReusePlayer(Document& old_document,
+                                          Document& new_document) const {
++  // A NULL frame implies a NULL domWindow, so just check one of them
++  if (!old_document.GetFrame() || !new_document.GetFrame()) {
++    return false;
++  }
++
+   // Don't reuse player if the Document Picture-in-Picture API is disabled for
+   // both documents.
+   if (!RuntimeEnabledFeatures::DocumentPictureInPictureAPIEnabled(
+@@ -657,10 +662,6 @@
+     return false;
+   }
+ 
+-  if (!old_document.GetFrame() || !new_document.GetFrame()) {
+-    return false;
+-  }
+-
+   auto* new_origin = new_document.GetFrame()
+                          ->LocalFrameRoot()
+                          .GetSecurityContext()

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index fef22ca7b2ca..f8c7b77e951c 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -5,6 +5,14 @@
 		<email>chromium@gentoo.org</email>
 		<name>Chromium in Gentoo Project</name>
 	</maintainer>
+	<maintainer type="person" proxied="yes">
+		<email>Matt.Jolly@footclan.ninja</email>
+		<name>Matt Jolly</name>
+	</maintainer>
+	<maintainer type="project" proxied="proxy">
+		<email>proxy-maint@gentoo.org</email>
+		<name>Proxy Maintainers</name>
+	</maintainer>
 	<use>
 		<flag name="component-build">Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>
 		<flag name="debug">Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-05-05 14:17 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2023-05-05 14:17 UTC (permalink / raw
  To: gentoo-commits

commit:     fd1482edaaf927eb217c5a5e241cb0c4d4a4720b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri May  5 14:13:17 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri May  5 14:15:50 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd1482ed

www-client/chromium: add 113.0.5672.63

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-113.0.5672.63.ebuild  | 1264 ++++++++++++++++++++
 .../chromium/files/chromium-113-compiler.patch     |  129 ++
 .../files/chromium-113-std-monospace.patch         |   36 +
 .../files/chromium-113-swiftshader-cstdint.patch   |   40 +
 .../chromium/files/chromium-113-system-zlib.patch  |   41 +
 .../files/chromium-113-web_view_impl-cstring.patch |   25 +
 7 files changed, 1536 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d579d99a7cee..c893fa86aab7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,6 @@
 DIST chromium-112-gcc-13-patches.tar.xz 8036 BLAKE2B 71347593c57f0ec8a32de3764359227ae7e8d666ef78f2676f939f7e07cb787f54ad57f8583504285ea84cc0c9cc99255873e28473468b30d5e66f3e0b0496ff SHA512 67dfa89ebbaba2c1d8ecb8471096c6c1b691cba4b5e68b7ee35ac2d6b65b560da39b4b2bb2eb0f6b6a3f2cc6bd8894c4d0e58ca51bc32a7f429aa1feed0571e5
 DIST chromium-112.0.5615.165.tar.xz 1730146076 BLAKE2B 710f5490a48f9e268690bac1bdf86bac9f0968639c3b9250b3b821433afdaa37af532a1607579206848c47ceb24cebef96b1a8dbdba11c9b4b4eb7af7518fe11 SHA512 51cd011a612bbd83c31f69666d87597dbf0d277cbb043855623afd5d3d1f26326201251ca8aa18d891a6ca0c7daf177d07bd56a2969ba390318348077636ed7c
+DIST chromium-113.0.5672.63.tar.xz 1556641240 BLAKE2B d52a8eec055f289eafd829db6dceaae5c08132d73015870ff51d5bc7856e79ad0f3feb976b1dc5b8b43302f843394bf312ab6ddf55bf547c79f56d69cdce370f SHA512 b99ce267ecfaf497b99262a243f43eab9b170563227b407ef17dd85f8f6d892d9c264df83b166a52683156ee33e8504f9fcf09db68c6edb29b6588d870833711
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_112.0.5615.49-2raptor0~deb11u1.debian.tar.xz 780000 BLAKE2B 2aa91c689b634f51978428f5992f41190e7c9b7d4009ee2f34a55e0666caf8ce02f5c5b6297702fe7ecb3a7961d5c84102ebda5189f3c513576a83f3c94dafa1 SHA512 b92b2a76a9ef6fc23ef06ae1d428f6755d9c8551230926a1c422c8c560ec95b1aa53a5a578519ba7426e6985c234cfd30573d8bb482499dd1532163975af293f

diff --git a/www-client/chromium/chromium-113.0.5672.63.ebuild b/www-client/chromium/chromium-113.0.5672.63.ebuild
new file mode 100644
index 000000000000..7c514d04f523
--- /dev/null
+++ b/www-client/chromium/chromium-113.0.5672.63.ebuild
@@ -0,0 +1,1264 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="xml(+)"
+LLVM_MAX_SLOT=16
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+VIRTUALX_REQUIRED="pgo"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
+PATCHSET_NAME_PPC64="chromium_112.0.5615.49-2raptor0~deb11u1.debian"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz
+	ppc64? (
+		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
+		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/stable"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid !libcxx )
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	system-av1? (
+		>=media-libs/dav1d-1.0.0:=
+		>=media-libs/libaom-3.4.0:=
+	)
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-sound/pulseaudio:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -gt 1 ]]; then
+		echo "|| ("
+		for _v in "$@"; do
+			echo "("
+			depend_clang_llvm_version "${_v}"
+			echo ")"
+		done
+		echo ")"
+	elif [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+	)
+	libcxx? ( >=sys-devel/clang-16 )
+	lto? ( $(depend_clang_llvm_versions 16) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions 16)
+	)
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-16"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="12G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		CHECKREQS_DISK_BUILD="13G"
+		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
+		use pgo && CHECKREQS_DISK_BUILD="20G"
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	if use lto || use pgo; then
+		llvm_pkg_setup
+	fi
+
+	pre_build_checks
+
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
+			die "At least gcc 10.4 is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang && ! tc-is-clang; then
+			if tc-is-cross-compiler; then
+				CPP="${CBUILD}-clang++ -E"
+			else
+				CPP="${CHOST}-clang++ -E"
+			fi
+			if ! ver_test "$(clang-major-version)" -ge 16; then
+				die "At least clang 16 is required"
+			fi
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0002-perfetto.patch" || die
+	rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0012-webrtc-base64.patch" || die
+	rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0013-quiche.patch" || die
+
+	local PATCHES=(
+		#"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-109-system-openh264.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-113-compiler.patch"
+		"${WORKDIR}/chromium-112-gcc-13-patches"
+		"${FILESDIR}/chromium-113-swiftshader-cstdint.patch"
+		"${FILESDIR}/chromium-113-system-zlib.patch"
+		"${FILESDIR}/chromium-113-web_view_impl-cstring.patch"
+		"${FILESDIR}/chromium-113-std-monospace.patch"
+	)
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/systeminfo
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if ! use system-av1; then
+		keeplibs+=(
+			third_party/dav1d
+			third_party/libaom
+			third_party/libaom/source/libaom/third_party/fastfeat
+			third_party/libaom/source/libaom/third_party/SVT-AV1
+			third_party/libaom/source/libaom/third_party/vector
+			third_party/libaom/source/libaom/third_party/x86inc
+		)
+	fi
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto || use pgo; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# Create dummy pkg-config file for libsystemd, only dependency of installer
+	mkdir "${T}/libsystemd" || die
+	cat <<- EOF > "${T}/libsystemd/libsystemd.pc"
+		Name:
+		Description:
+		Version:
+	EOF
+	local -x PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+"${PKG_CONFIG_PATH}:"}${T}/libsystemd"
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-av1; then
+		gn_system_libraries+=( dav1d libaom )
+	fi
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)"
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5; then
+			local moc_dir="$(qt5_get_bindir)"
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
+			fi
+			export PATH="${PATH}:${moc_dir}"
+		fi
+		myconf_gn+=" use_qt=$(usex qt5 true false)"
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-113-compiler.patch b/www-client/chromium/files/chromium-113-compiler.patch
new file mode 100644
index 000000000000..3b4c9238dbc5
--- /dev/null
+++ b/www-client/chromium/files/chromium-113-compiler.patch
@@ -0,0 +1,129 @@
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -289,9 +289,7 @@
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+     ":rustc_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+     ":compiler_deterministic",
+   ]
+@@ -1707,7 +1705,7 @@
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1716,10 +1714,6 @@
+       # well.
+       ldflags = [ "-Werror" ]
+     }
+-    if (is_clang) {
+-      # Enable extra warnings for chromium_code when we control the compiler.
+-      cflags += [ "-Wextra" ]
+-    }
+ 
+     if (treat_warnings_as_errors) {
+       # Turn rustc warnings into the "deny" lint level, which produce compiler
+@@ -1737,16 +1731,6 @@
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+-        current_cpu != "s390" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64" &&
+-        current_cpu != "riscv64" && current_cpu != "loong64") {
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2111,7 +2095,8 @@
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     if (chrome_pgo_phase != 2) {
+       # Favor size over speed, /O1 must be before the common flags.
+@@ -2170,7 +2155,8 @@
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2210,7 +2196,8 @@
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2243,7 +2230,8 @@
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2269,7 +2257,8 @@
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   rustflags = [ "-Copt-level=1" ]
+   ldflags = common_optimize_on_ldflags
+@@ -2394,7 +2383,8 @@
+ }
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (is_clang) {
+       cflags = [
+@@ -2534,7 +2524,8 @@
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Functions, files, and line tables only.
+     cflags = []
+@@ -2608,7 +2599,8 @@
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (is_win) {
+     ldflags = [ "/DEBUG" ]
+ 

diff --git a/www-client/chromium/files/chromium-113-std-monospace.patch b/www-client/chromium/files/chromium-113-std-monospace.patch
new file mode 100644
index 000000000000..48d69513e6df
--- /dev/null
+++ b/www-client/chromium/files/chromium-113-std-monospace.patch
@@ -0,0 +1,36 @@
+From e55c0bf35f4c54610c3bb40fcdc1b961bfd9f763 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Mon, 27 Mar 2023 16:38:29 +0000
+Subject: [PATCH] Do not use std::monospace for absl::variant
+
+authenticator_request_dialog_model.h introduced usage of
+std::monospace, though no include was added for it. But in this file
+it is using absl::variant. For uniformity, keep using absl::monospace
+before all the file moves to use std variants.
+
+This fixes a break in libstdc++ build.
+
+Bug: 957519
+Change-Id: I16adf924e935d2517916969000f8e94efc118c53
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4372590
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Reviewed-by: Nina Satragno <nsatragno@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1122463}
+---
+
+diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.h b/chrome/browser/webauthn/authenticator_request_dialog_model.h
+index f4992a7..6a4bcf68 100644
+--- a/chrome/browser/webauthn/authenticator_request_dialog_model.h
++++ b/chrome/browser/webauthn/authenticator_request_dialog_model.h
+@@ -181,9 +181,9 @@
+     // These types describe the type of Mechanism.
+     using Transport =
+         base::StrongAlias<class TransportTag, AuthenticatorTransport>;
+-    using WindowsAPI = base::StrongAlias<class WindowsAPITag, std::monostate>;
++    using WindowsAPI = base::StrongAlias<class WindowsAPITag, absl::monostate>;
+     using Phone = base::StrongAlias<class PhoneTag, std::string>;
+-    using AddPhone = base::StrongAlias<class AddPhoneTag, std::monostate>;
++    using AddPhone = base::StrongAlias<class AddPhoneTag, absl::monostate>;
+     using Type = absl::variant<Transport, WindowsAPI, Phone, AddPhone>;
+ 
+     Mechanism(Type type,

diff --git a/www-client/chromium/files/chromium-113-swiftshader-cstdint.patch b/www-client/chromium/files/chromium-113-swiftshader-cstdint.patch
new file mode 100644
index 000000000000..6c04f54996da
--- /dev/null
+++ b/www-client/chromium/files/chromium-113-swiftshader-cstdint.patch
@@ -0,0 +1,40 @@
+From ecefa6c6596982616fa1f564fcee363ef8533808 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 03 May 2023 12:01:36 +0200
+Subject: [PATCH] IWYU: add cstdint for uintptr_t in llvm-10.0 Signals.h
+
+Upstream commit:
+
+  From ff1681ddb303223973653f7f5f3f3435b48a1983 Mon Sep 17 00:00:00 2001
+  From: Sergei Trofimovich <slyich@gmail.com>
+  Date: Mon, 23 May 2022 08:03:23 +0100
+  Subject: [PATCH] [Support] Add missing <cstdint> header to Signals.h
+
+  Without the change llvm build fails on this week's gcc-13 snapshot as:
+
+    [  0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
+    In file included from llvm/lib/Support/Signals.cpp:14:
+    llvm/include/llvm/Support/Signals.h:119:8: error: variable or field 'CleanupOnSignal' declared void
+      119 |   void CleanupOnSignal(uintptr_t Context);
+          |        ^~~~~~~~~~~~~~~
+
+Change-Id: Iabe0256d86012e7887e295815aa6cfd50694459a
+Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71608
+Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
+Kokoro-Result: kokoro <noreply+kokoro@google.com>
+Tested-by: Shahbaz Youssefi <syoussefi@google.com>
+Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
+---
+
+diff --git a/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h b/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
+index e0a18e7..148216b 100644
+--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
+@@ -14,6 +14,7 @@
+ #ifndef LLVM_SUPPORT_SIGNALS_H
+ #define LLVM_SUPPORT_SIGNALS_H
+ 
++#include <cstdint>
+ #include <string>
+ 
+ namespace llvm {

diff --git a/www-client/chromium/files/chromium-113-system-zlib.patch b/www-client/chromium/files/chromium-113-system-zlib.patch
new file mode 100644
index 000000000000..8d225d495a11
--- /dev/null
+++ b/www-client/chromium/files/chromium-113-system-zlib.patch
@@ -0,0 +1,41 @@
+From c8b965be5b61c2412df938e1feb380b69bd92ee9 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 06 Apr 2023 07:15:03 +0000
+Subject: [PATCH] [unbundle] do not use ZipAnalyzer traits header
+
+It is enough to include chrome/common/safe_browsing/archive_analyzer_results.h.
+
+Bug: None
+Change-Id: Ia63a66b77c073fa4fdb8470db34b4c24722293cc
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4373706
+Reviewed-by: Daniel Rubery <drubery@chromium.org>
+Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
+Cr-Commit-Position: refs/heads/main@{#1127041}
+---
+
+diff --git a/chrome/services/file_util/public/mojom/BUILD.gn b/chrome/services/file_util/public/mojom/BUILD.gn
+index b9e80cc..461d2d0 100644
+--- a/chrome/services/file_util/public/mojom/BUILD.gn
++++ b/chrome/services/file_util/public/mojom/BUILD.gn
+@@ -55,7 +55,8 @@
+           cpp = "::safe_browsing::ArchiveAnalyzerResults"
+         },
+       ]
+-      traits_headers = [ "//chrome/common/safe_browsing/zip_analyzer.h" ]
++      traits_headers =
++          [ "//chrome/common/safe_browsing/archive_analyzer_results.h" ]
+       traits_private_headers = [ "safe_archive_analyzer_param_traits.h" ]
+       traits_public_deps = [
+         "//chrome/common/safe_browsing:proto",
+diff --git a/chrome/services/file_util/safe_archive_analyzer.h b/chrome/services/file_util/safe_archive_analyzer.h
+index 62307b8..0231205 100644
+--- a/chrome/services/file_util/safe_archive_analyzer.h
++++ b/chrome/services/file_util/safe_archive_analyzer.h
+@@ -7,6 +7,7 @@
+ 
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
+ #include "chrome/common/safe_browsing/rar_analyzer.h"
++#include "chrome/common/safe_browsing/zip_analyzer.h"
+ #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ 

diff --git a/www-client/chromium/files/chromium-113-web_view_impl-cstring.patch b/www-client/chromium/files/chromium-113-web_view_impl-cstring.patch
new file mode 100644
index 000000000000..44f7b2d36b48
--- /dev/null
+++ b/www-client/chromium/files/chromium-113-web_view_impl-cstring.patch
@@ -0,0 +1,25 @@
+From 2e14a3ac178ee87aa9154e5a15dcd986af1b6059 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 28 Mar 2023 14:34:55 +0000
+Subject: [PATCH] IWYU: add cstring for std::strlen in web_view_impl.cc
+
+Bug: 957519
+Change-Id: I15ad1e905eda3d96bbf164f5df8f3cf8e02bc370
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4376772
+Reviewed-by: Alex Ilin <alexilin@chromium.org>
+Commit-Queue: Alex Ilin <alexilin@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1123011}
+---
+
+diff --git a/chrome/test/chromedriver/chrome/web_view_impl.cc b/chrome/test/chromedriver/chrome/web_view_impl.cc
+index f726627..d96d481d 100644
+--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
++++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
+@@ -6,6 +6,7 @@
+ 
+ #include <stddef.h>
+ #include <algorithm>
++#include <cstring>
+ #include <memory>
+ #include <queue>
+ #include <utility>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-04-22 23:29 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2023-04-22 23:29 UTC (permalink / raw
  To: gentoo-commits

commit:     b80bfab7c8aba8c3a358b2fa87a1e00e335376d3
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 22 23:26:46 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Apr 22 23:28:44 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b80bfab7

www-client/chromium: add 112.0.5615.165

Bug: https://bugs.gentoo.org/904455
Bug: https://bugs.gentoo.org/904725
Bug: https://bugs.gentoo.org/904560
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-112.0.5615.165.ebuild | 1259 ++++++++++++++++++++
 .../chromium/files/chromium-112-swiftshader.patch  |   74 ++
 3 files changed, 1334 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 88cc102e95fd..0eaba5a4fed4 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,7 @@ DIST chromium-111-patchset-2.tar.xz 21480 BLAKE2B e59d67d261df23c110c2db0644250c
 DIST chromium-111.0.5563.110.tar.xz 1740800700 BLAKE2B 77563b784d2a84a5c5b83779b54c633dcb38e25d3523c2254c07dcb7a3daedc352a48ffe4cb43d04569a10f98654da347bd463221755b492507d70183f8c28a9 SHA512 1274b14ef9b1eb418a87589979703731eb4907a90eb8ea58f343344f1e6c2bee1c88b3cb290485c833c0bda79a7c8ae59ba425c492e8738d19740cb0514e8ac5
 DIST chromium-111.0.5563.64.tar.xz 1740670460 BLAKE2B 325cd15ebc5eeac2e51ebf754c71e090369a1063421d5e294d5704655d782fc02006f6eed4b284a2dc49fab9b7077144179db6887ce4652b6e88846174de79c3 SHA512 3ba60778031a2015cff4f1944a466102923cb2b455d3333abdd3ee077ac3a8717c4fa4090c7d950ffd5ad5a77f139f68640fb5032b7afcae36012e4a34485bcc
 DIST chromium-112.0.5615.121.tar.xz 1730330344 BLAKE2B da7f1841b5246e506daf8d261ce0c985816aaaebe17a866a29e56e410d03ebc0b492f11336dcd1d5aeb268268cf325a313b63f192f1231ccfac276e7a10dfcfb SHA512 ba2144c24d1eaf94206c7992ddeb095b8a8d1c33ec5c25b63791a910584b4c835892833f1b7b32bbda6f9588a03fa1230d48a1a63d860394f1d48eb4ba161db4
+DIST chromium-112.0.5615.165.tar.xz 1730146076 BLAKE2B 710f5490a48f9e268690bac1bdf86bac9f0968639c3b9250b3b821433afdaa37af532a1607579206848c47ceb24cebef96b1a8dbdba11c9b4b4eb7af7518fe11 SHA512 51cd011a612bbd83c31f69666d87597dbf0d277cbb043855623afd5d3d1f26326201251ca8aa18d891a6ca0c7daf177d07bd56a2969ba390318348077636ed7c
 DIST chromium-112.0.5615.49.tar.xz 1730346508 BLAKE2B 715d0e3e6311110207900eba34c11434e781bac77a97c32038d8d030c91cecd285ad11f5722593d10c906a97f9e421dcb7fe25fd721c453d47315b8f89491d2f SHA512 48387f8b960a33520da70953912076582e83263b2194fdb8afddf888f5e4d31ade0bf41e19fbdc8c2827c3371228428072520fdda41c229c78e2d71c341961e0
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c

diff --git a/www-client/chromium/chromium-112.0.5615.165.ebuild b/www-client/chromium/chromium-112.0.5615.165.ebuild
new file mode 100644
index 000000000000..7ee6d75449a5
--- /dev/null
+++ b/www-client/chromium/chromium-112.0.5615.165.ebuild
@@ -0,0 +1,1259 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="xml(+)"
+LLVM_MAX_SLOT=15
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+VIRTUALX_REQUIRED="pgo"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
+PATCHSET_NAME_PPC64="chromium_112.0.5615.49-2raptor0~deb11u1.debian"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	ppc64? (
+		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
+		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
+	)
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/stable"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid !libcxx )
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	system-av1? (
+		>=media-libs/dav1d-1.0.0:=
+		>=media-libs/libaom-3.4.0:=
+	)
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-sound/pulseaudio:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -gt 1 ]]; then
+		echo "|| ("
+		for _v in "$@"; do
+			echo "("
+			depend_clang_llvm_version "${_v}"
+			echo ")"
+		done
+		echo ")"
+	elif [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+	)
+	libcxx? ( >=sys-devel/clang-13 )
+	lto? ( $(depend_clang_llvm_versions 14 15) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions 14 15)
+	)
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-13"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="12G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		CHECKREQS_DISK_BUILD="13G"
+		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
+		use pgo && CHECKREQS_DISK_BUILD="20G"
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	if use lto || use pgo; then
+		llvm_pkg_setup
+	fi
+
+	pre_build_checks
+
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
+			die "At least gcc 10.4 is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang && ! tc-is-clang; then
+			if tc-is-cross-compiler; then
+				CPP="${CBUILD}-clang++ -E"
+			else
+				CPP="${CHOST}-clang++ -E"
+			fi
+			if ! ver_test "$(clang-major-version)" -ge 13; then
+				die "At least clang 13 is required"
+			fi
+		fi
+	fi
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	local PATCHES=(
+		#"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-109-system-openh264.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-cross-compile.patch"
+		"${FILESDIR}/chromium-112-compiler.patch"
+		"${FILESDIR}/chromium-112-libstdc++.patch"
+		"${FILESDIR}/chromium-112-libstdc++-1.patch"
+		"${FILESDIR}/chromium-112-sql-relax.patch"
+		"${FILESDIR}/chromium-112-gcc-mno-outline.patch"
+		"${FILESDIR}/chromium-112-swiftshader.patch"
+	)
+
+	if use ppc64 ; then
+		local p
+		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
+			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
+				eapply "${WORKDIR}/debian/patches/${p}"
+			fi
+		done
+		PATCHES+=( "${WORKDIR}/ppc64le" )
+	fi
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/systeminfo
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if ! use system-av1; then
+		keeplibs+=(
+			third_party/dav1d
+			third_party/libaom
+			third_party/libaom/source/libaom/third_party/fastfeat
+			third_party/libaom/source/libaom/third_party/SVT-AV1
+			third_party/libaom/source/libaom/third_party/vector
+			third_party/libaom/source/libaom/third_party/x86inc
+		)
+	fi
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto || use pgo; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# Create dummy pkg-config file for libsystemd, only dependency of installer
+	mkdir "${T}/libsystemd" || die
+	cat <<- EOF > "${T}/libsystemd/libsystemd.pc"
+		Name:
+		Description:
+		Version:
+	EOF
+	local -x PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+"${PKG_CONFIG_PATH}:"}${T}/libsystemd"
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-av1; then
+		gn_system_libraries+=( dav1d libaom )
+	fi
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+
+		if tc-is-gcc; then
+			# https://bugs.gentoo.org/904455
+			append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)"
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5; then
+			local moc_dir="$(qt5_get_bindir)"
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
+			fi
+			export PATH="${PATH}:${moc_dir}"
+		fi
+		myconf_gn+=" use_qt=$(usex qt5 true false)"
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-112-swiftshader.patch b/www-client/chromium/files/chromium-112-swiftshader.patch
new file mode 100644
index 000000000000..5f703d919555
--- /dev/null
+++ b/www-client/chromium/files/chromium-112-swiftshader.patch
@@ -0,0 +1,74 @@
+https://bugs.gentoo.org/904725
+
+From 451fb9470e4e1cd183ff05d5e171dc21bae6e47c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Thu, 16 Mar 2023 13:29:48 +0100
+Subject: [PATCH] Another C++20 fix for GCC
+
+This is a direct backport of commit 95d0d8e9e9d10da3cfa503fbba405e740aea3cc1
+from Richard Smith:
+    From: Richard Smith <richard@metafoo.co.uk>
+    Date: Tue, 23 Feb 2021 14:07:13 -0800
+    Subject: Fix constructor declarations that are invalid in C++20 onwards.
+
+    Fix constructor declarations that are invalid in C++20 onwards.
+
+    Under C++ CWG DR 2237, the constructor for a class template C must be
+    written as 'C(...)' not as 'C<T>(...)'. This fixes a build failure with
+    GCC in C++20 mode.
+
+    In passing, remove some other redundant '<T>' qualification from the
+    affected classes.
+
+Bug: chromium:819294
+Change-Id: I51a7f069d355d4932f4b50640fedbba1d5773f0b
+Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71088
+Kokoro-Result: kokoro <noreply+kokoro@google.com>
+Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
+Tested-by: Shahbaz Youssefi <syoussefi@google.com>
+Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
+---
+
+diff --git a/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h b/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h
+index 620209b..d0a48e8 100644
+--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h
++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h
+@@ -1415,9 +1415,9 @@
+   result_pair(std::size_t Index, IterOfRange<R> Iter)
+       : Index(Index), Iter(Iter) {}
+ 
+-  result_pair<R>(const result_pair<R> &Other)
++  result_pair(const result_pair<R> &Other)
+       : Index(Other.Index), Iter(Other.Iter) {}
+-  result_pair<R> &operator=(const result_pair<R> &Other) {
++  result_pair &operator=(const result_pair &Other) {
+     Index = Other.Index;
+     Iter = Other.Iter;
+     return *this;
+@@ -1451,22 +1451,22 @@
+   result_type &operator*() { return Result; }
+   const result_type &operator*() const { return Result; }
+ 
+-  enumerator_iter<R> &operator++() {
++  enumerator_iter &operator++() {
+     assert(Result.Index != std::numeric_limits<size_t>::max());
+     ++Result.Iter;
+     ++Result.Index;
+     return *this;
+   }
+ 
+-  bool operator==(const enumerator_iter<R> &RHS) const {
++  bool operator==(const enumerator_iter &RHS) const {
+     // Don't compare indices here, only iterators.  It's possible for an end
+     // iterator to have different indices depending on whether it was created
+     // by calling std::end() versus incrementing a valid iterator.
+     return Result.Iter == RHS.Result.Iter;
+   }
+ 
+-  enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
+-  enumerator_iter<R> &operator=(const enumerator_iter<R> &Other) {
++  enumerator_iter(const enumerator_iter &Other) : Result(Other.Result) {}
++  enumerator_iter &operator=(const enumerator_iter &Other) {
+     Result = Other.Result;
+     return *this;
+   }


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-04-14 15:57 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2023-04-14 15:57 UTC (permalink / raw
  To: gentoo-commits

commit:     23e62bcc9a854f4b988709b2a1e1baf2ca521cbe
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 14 15:55:58 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Apr 14 15:56:23 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=23e62bcc

www-client/chromium: add patch for clang-16 compat

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-112.0.5615.49.ebuild  |  1 +
 .../chromium/files/chromium-112-sql-relax.patch    | 46 ++++++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/www-client/chromium/chromium-112.0.5615.49.ebuild b/www-client/chromium/chromium-112.0.5615.49.ebuild
index a0663b22f3f0..0c39b812a76f 100644
--- a/www-client/chromium/chromium-112.0.5615.49.ebuild
+++ b/www-client/chromium/chromium-112.0.5615.49.ebuild
@@ -340,6 +340,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-112-compiler.patch"
 		"${FILESDIR}/chromium-112-libstdc++.patch"
 		"${FILESDIR}/chromium-112-libstdc++-1.patch"
+		"${FILESDIR}/chromium-112-sql-relax.patch"
 	)
 
 	if use ppc64 ; then

diff --git a/www-client/chromium/files/chromium-112-sql-relax.patch b/www-client/chromium/files/chromium-112-sql-relax.patch
new file mode 100644
index 000000000000..2510d1000034
--- /dev/null
+++ b/www-client/chromium/files/chromium-112-sql-relax.patch
@@ -0,0 +1,46 @@
+From 7d1394bd639e3bcf68082ac3fc33eeed6a00d2e6 Mon Sep 17 00:00:00 2001
+From: Elly Fong-Jones <ellyjones@chromium.org>
+Date: Thu, 02 Mar 2023 00:15:11 +0000
+Subject: [PATCH] sql: relax constraints on VirtualCursor layout
+
+VirtualCursor::FromSqliteCursor required that VirtualCursor had a
+standard layout, but in fact VirtualCursor shouldn't have a standard
+layout, and the fact that it does with libc++ is a deviation from the
+C++ standard. This change:
+
+1. Relaxes the requirement that VirtualCursor has a standard layout, and
+2. Relaxes the requirement that the sqlite_cursor_ field has to be at
+   offset 0
+
+by use of offsetof() and pointer subtraction. This change both improves
+standards compliance and makes this code build with libstdc++.
+
+Bug: 1380656
+Change-Id: I9c47abd9197b187da0360ca5619ccf7dadab4f33
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4292313
+Reviewed-by: Austin Sullivan <asully@chromium.org>
+Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1111925}
+---
+
+diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
+index 1970bdca..4cb0655 100644
+--- a/sql/recover_module/cursor.h
++++ b/sql/recover_module/cursor.h
+@@ -63,12 +63,10 @@
+   // |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor().
+   static inline VirtualCursor* FromSqliteCursor(
+       sqlite3_vtab_cursor* sqlite_cursor) {
+-    static_assert(std::is_standard_layout<VirtualCursor>::value,
+-                  "needed for the reinterpret_cast below");
+-    static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0,
+-                  "sqlite_cursor_ must be the first member of the class");
+-    VirtualCursor* result = reinterpret_cast<VirtualCursor*>(sqlite_cursor);
+-    DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
++    VirtualCursor* result = reinterpret_cast<VirtualCursor*>(
++        (reinterpret_cast<char*>(sqlite_cursor) -
++         offsetof(VirtualCursor, sqlite_cursor_)));
++    CHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
+     return result;
+   }
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-04-03 17:32 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2023-04-03 17:32 UTC (permalink / raw
  To: gentoo-commits

commit:     807cb87fc6bf6a6d76ad504a412306dc8b97a60e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Apr  3 17:32:12 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Apr  3 17:32:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=807cb87f

www-client/chromium: restore InkDropHost-crash patch

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 ...10.ebuild => chromium-111.0.5563.110-r1.ebuild} |  1 +
 .../files/chromium-111-InkDropHost-crash.patch     | 25 ++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/www-client/chromium/chromium-111.0.5563.110.ebuild b/www-client/chromium/chromium-111.0.5563.110-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-111.0.5563.110.ebuild
rename to www-client/chromium/chromium-111.0.5563.110-r1.ebuild
index d41b4c6b4d15..d83cbb6b2169 100644
--- a/www-client/chromium/chromium-111.0.5563.110.ebuild
+++ b/www-client/chromium/chromium-111.0.5563.110-r1.ebuild
@@ -342,6 +342,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-109-system-zlib.patch"
 		"${FILESDIR}/chromium-109-system-openh264.patch"
 		"${FILESDIR}/chromium-111-ozone-platform.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"
 	)

diff --git a/www-client/chromium/files/chromium-111-InkDropHost-crash.patch b/www-client/chromium/files/chromium-111-InkDropHost-crash.patch
new file mode 100644
index 000000000000..21dd8e41b8c8
--- /dev/null
+++ b/www-client/chromium/files/chromium-111-InkDropHost-crash.patch
@@ -0,0 +1,25 @@
+https://chromium-review.googlesource.com/c/chromium/src/+/2959890
+
+--- a/ui/views/animation/ink_drop_host.h
++++ b/ui/views/animation/ink_drop_host.h
+@@ -238,6 +238,11 @@ class VIEWS_EXPORT InkDropHost {
+   // Used to observe View and inform the InkDrop of host-transform changes.
+   ViewLayerTransformObserver host_view_transform_observer_;
+ 
++  // Declared before |ink_drop_|, because InkDropImpl may call
++  // RemoveInkDropLayer on partly destructed InkDropHost. In
++  // that case |ink_drop_mask_| must be still valid.
++  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
++
+   // Should not be accessed directly. Use GetInkDrop() instead.
+   std::unique_ptr<InkDrop> ink_drop_;
+ 
+@@ -261,8 +266,6 @@ class VIEWS_EXPORT InkDropHost {
+   int ink_drop_small_corner_radius_ = 2;
+   int ink_drop_large_corner_radius_ = 4;
+ 
+-  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
+-
+   base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
+   base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
+       create_ink_drop_ripple_callback_;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-03-28 15:29 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2023-03-28 15:29 UTC (permalink / raw
  To: gentoo-commits

commit:     9b1e4d12deb34a9bb9c63a76d351af7001668fc9
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 27 18:21:56 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Mar 28 15:26:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b1e4d12

www-client/chromium: drop versions

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   10 -
 www-client/chromium/chromium-109.0.5414.119.ebuild | 1250 --------------------
 .../chromium/chromium-109.0.5414.74-r1.ebuild      | 1249 -------------------
 .../chromium/chromium-110.0.5481.177-r1.ebuild     | 1244 -------------------
 www-client/chromium/chromium-110.0.5481.38.ebuild  | 1244 -------------------
 www-client/chromium/chromium-111.0.5545.6.ebuild   | 1235 -------------------
 .../chromium/files/chromium-109-system-icu.patch   |   58 -
 .../chromium/files/chromium-109-v8-icu72.patch     |  106 --
 .../files/chromium-93-InkDropHost-crash.patch      |   25 -
 .../chromium/files/chromium-shim_headers.patch     |   48 -
 10 files changed, 6469 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 444603680d9a..e3fdc8d3fd97 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,15 +1,5 @@
-DIST chromium-109-patchset-2.tar.xz 7280 BLAKE2B b7f86dbb6c40005df67764a7dea57c845010a97ed52e542da0c91182b828d74b2b7266db9b9d21bb9349c83a6c56f4721bbf9fd440e83d3356155ff5f6337719 SHA512 3ec55aa9031cd2c82f99233700c9d3a62eeaef792724254b2d0605f597ba7446fffa0afa81166145aa0ff6e64c78136fe18b7231afe49dd2f33de2c7ae27de15
-DIST chromium-109.0.5414.119.tar.xz 1747968612 BLAKE2B 9090fcb60165a8e4ba990df4c90cf0252798718407951947d50c35778f62bbbc91f588604af4e3de6cbcc069e7eea340379c450e28532f4b4bae29f3ab393c7c SHA512 3942b282072489134a70e85c60669c8360b35ffdd64fb310f75306cffa4d1117db78fed7b04659d90d13b62c45922503cb31022e1ca9b29a2872c3c445023104
-DIST chromium-109.0.5414.74.tar.xz 1747778008 BLAKE2B dc2893c59398caf72546c42ada961215ce1b25785da66272b72fe14ac0db00ac4282b0de5ee65cca932e273fe69f41704b4ee2aa173d21da535708e8d0aab633 SHA512 79ff744b813e833ab4f257361a2f1847a57df579b9c925bad7575484f079c4c1b0b1c59c2c48e683bcee27a79e4bfd87f96c83fa28e0209ba4d3a71340842579
-DIST chromium-110-patchset-4.tar.xz 13584 BLAKE2B 8ed3d438375ceabc02552ff66874ba8f15687fefa96239866cb2f86c57db72c162daafad6e1944df6117e792ca9d992b101c17d35132d429fc6edcf49db29940 SHA512 898416453e129e83dcd70728e382a2916e741b013887e8ec9b4d2737a4ef2738d83d4a868f9260c3906c4934bb9a7b3104a50cfc3d94064eb71a341279e9fcb9
-DIST chromium-110.0.5481.177.tar.xz 1703390456 BLAKE2B d9ee898090ea04bff72a5d6278e4aec5b36c8c160c310997835dbcaf963647645949a0d4fa3bc34573e362bb4ead63e4c21fa25c241c93493544e541c8ab5142 SHA512 542125f7530409ae37950a0870c0349d5bea218ebd8deb6bf9929b14f8b1f31ab8a4d910fbb66e5b6fc1e4a1a41c01d12a36dc2d4005d8dcd2b8f1724e7d570b
-DIST chromium-110.0.5481.38.tar.xz 1703266068 BLAKE2B 8b990eef533f8469afc6ea88c9fc70f316ccf33381fbbe30b43c89cde476a0487b201d7b07e8202bfdf94b44c2c5b184627f27225bb12ad7cef9fb505e608206 SHA512 4ad20231ce1c42d30886cfa179b154f1bd09efb61b971dc55a2aa70538a39141199f9a799c09b546c3e3501cf1981b6dd850e92e44aaa8f816ddb294fc194231
 DIST chromium-111-patchset-2.tar.xz 21480 BLAKE2B e59d67d261df23c110c2db0644250c20d9e1cd6b99cb9513dbd12463faad8aea8520c5b5dbbfd2187a7795f7e34ebd3379fac4c3b2b01e30ffb4451b45084866 SHA512 7a2e660a9271b9b643dce5f7522570182eb895935312446775bf7c03a4c2d50d7f95c2082cac2dd477060d03f68e5424c990f535e0b1de9f0d12ac248806d043
-DIST chromium-111.0.5545.6.tar.xz 1721481252 BLAKE2B 22f0d9386a5ea8b473e85324b448f4789f9d6365c723ef254b42db3d059b972bb3e620a4e331ce935805d2b22be867d0e6f923264268fce828fe29394f59c09c SHA512 a52a4e4ebac1cd05bbe08763e4c4cd3e48efd37f8bb60cb6e1d8119e698ddecdc96741d3d4f97ee74d87fb8f27bdc4a60dbe2d09d84c223576983c65bb9fb6b4
 DIST chromium-111.0.5563.64.tar.xz 1740670460 BLAKE2B 325cd15ebc5eeac2e51ebf754c71e090369a1063421d5e294d5704655d782fc02006f6eed4b284a2dc49fab9b7077144179db6887ce4652b6e88846174de79c3 SHA512 3ba60778031a2015cff4f1944a466102923cb2b455d3333abdd3ee077ac3a8717c4fa4090c7d950ffd5ad5a77f139f68640fb5032b7afcae36012e4a34485bcc
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
-DIST chromium_109.0.5414.119-1raptor0~deb11u1.debian.tar.xz 438932 BLAKE2B 1405965668248b53a6c79f6d648900725f5db727379e7893b639aebef3cc333099ebc4259face3625ed080bd281fa4f307336c1e8da8c68b737368254dbdac83 SHA512 2baad609b88acc0d16d0f6bff39292d7bd3fff06a9d074b219a89011c1c02fb8f429282aaebc2a0fe79619f38de324140c6d6ad2d2d2a35475e6965e8a9e0a42
-DIST chromium_109.0.5414.74-2raptor0~deb11u1.debian.tar.xz 445284 BLAKE2B 838df6439816d36df2e9bb9224745aa0c0a3f6c3e19ec2b29b78b8e2be8c59e8df9dde7fdba49a73ee7bdd2282016f0366500f5bd1579b870a6aab25f4bb115f SHA512 6e6523d5f2aed2d931074af1dddea7312d5c8ed09d2b143dd9309db634547c37b67ba3c905fefa67097fb44c64f4d45431eedeed7b33d8b07eb2bae73bdc7f16
-DIST chromium_110.0.5481.77-1raptor0~deb11u1.debian.tar.xz 445576 BLAKE2B 10795b53e75fb7d17fa143329228f0d642d365f56e0cd905dcf1dc2b17140c65eb4cf269807c571a7213a3fac0c0ac9546e47ab4b170dfe7c518902ad0ff3c50 SHA512 dcd781286ce7f41a5cf65ea4d02b80c865e032c45677f37097f46263c03100169c401a089a41b560749599a2b42fa8ef3a4b89d096ea86fbd861d4b2add7d1bb
 DIST chromium_111.0.5563.64-1raptor0~deb11u1.debian.tar.xz 442300 BLAKE2B ceb6691169073e1420daebba1eea1c00ab0f60786a276d116f02d8f693c542f853cc69083bb2f1dba4b2802413ba4d40591b04284a0816cbc814af99b0b9df38 SHA512 21525147a9c61de746c736b44007e57316155acdb71ba139d1b0f2f8d99ca1df7bf5087e736726f4062203e4dd20302ce3c523b9cb32309fb7ae017866f1f137

diff --git a/www-client/chromium/chromium-109.0.5414.119.ebuild b/www-client/chromium/chromium-109.0.5414.119.ebuild
deleted file mode 100644
index 82c5e2287dba..000000000000
--- a/www-client/chromium/chromium-109.0.5414.119.ebuild
+++ /dev/null
@@ -1,1250 +0,0 @@
-# Copyright 2009-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
-PYTHON_REQ_USE="xml(+)"
-LLVM_MAX_SLOT=15
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-VIRTUALX_REQUIRED="pgo"
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
-PATCHSET_NAME_PPC64="chromium_109.0.5414.119-1raptor0~deb11u1.debian"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	ppc64? (
-		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
-		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid !libcxx )
-	screencast? ( wayland )
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxshmfence:=
-"
-
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-71.1:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng(-)] )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-1.6.0:=
-	system-av1? (
-		>=media-libs/dav1d-1.0.0:=
-		>=media-libs/libaom-3.4.0:=
-	)
-	sys-libs/zlib:=
-	x11-libs/libdrm:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-sound/pulseaudio:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-libs/libX11:=
-			x11-libs/libXext:=
-			x11-libs/libxcb:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		X? ( ${COMMON_X_DEPEND} )
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		cups? ( >=net-print/cups-1.3.11:= )
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtwidgets:5
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[X?,wayland?]
-		)
-		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
-		x11-misc/xdg-utils
-	)
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
-		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
-	)
-"
-
-depend_clang_llvm_version() {
-	echo "sys-devel/clang:$1"
-	echo "sys-devel/llvm:$1"
-	echo "=sys-devel/lld-$1*"
-}
-
-depend_clang_llvm_versions() {
-	local _v
-	if [[ $# -gt 1 ]]; then
-		echo "|| ("
-		for _v in "$@"; do
-			echo "("
-			depend_clang_llvm_version "${_v}"
-			echo ")"
-		done
-		echo ")"
-	elif [[ $# -eq 1 ]]; then
-		depend_clang_llvm_version "$1"
-	fi
-}
-
-BDEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	!headless? (
-		qt5? ( dev-qt/qtcore:5 )
-	)
-	libcxx? ( >=sys-devel/clang-13 )
-	lto? ( $(depend_clang_llvm_versions 13 14 15) )
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-		$(depend_clang_llvm_versions 13 14 15)
-	)
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	dev-vcs/git
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-13"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-needs_clang() {
-	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
-}
-
-llvm_check_deps() {
-	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
-
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
-			die "At least gcc 10.4 is required"
-		fi
-		if use pgo && tc-is-cross-compiler; then
-			die "The pgo USE flag cannot be used when cross-compiling"
-		fi
-		if needs_clang || tc-is-clang; then
-			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
-			CPP+=" -E"
-			if ! ver_test "$(clang-major-version)" -ge 13; then
-				die "At least clang 13 is required"
-			fi
-			# bug #889374
-			if ! use libcxx; then
-				die "Builds using clang fail with USE=-libcxx"
-			fi
-		fi
-		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
-			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="12G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="13G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
-		use pgo && CHECKREQS_DISK_BUILD="20G"
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
-	pre_build_checks
-
-	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
-		for myiuse in ${headless_unused_flags[@]}; do
-			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
-		done
-	fi
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# disable global media controls, crashes with libstdc++
-	sed -i -e \
-		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
-		"chrome/browser/media/router/media_router_feature.cc" || die
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-109-system-zlib.patch"
-		"${FILESDIR}/chromium-109-system-openh264.patch"
-		"${FILESDIR}/chromium-109-system-icu.patch"
-		"${FILESDIR}/chromium-109-v8-icu72.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-		"${FILESDIR}/chromium-cross-compile.patch"
-	)
-
-	if use ppc64 ; then
-		local p
-		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
-			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
-				eapply "${WORKDIR}/debian/patches/${p}"
-			fi
-		done
-		PATCHES+=( "${WORKDIR}/ppc64le" )
-	fi
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/bidimapper
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/content_analysis_sdk
-		third_party/cpuinfo
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dawn
-		third_party/dawn/third_party/gn/webgpu-cts
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/fp16
-		third_party/freetype
-		third_party/fusejs
-		third_party/fxdiv
-		third_party/highway
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libaddressinput
-		third_party/libavif
-		third_party/libevent
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/omnibox_proto
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pthreadpool
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
-		third_party/swiftshader/third_party/SPIRV-Tools
-		third_party/tensorflow_models
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/xnnpack
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if ! use system-av1; then
-		keeplibs+=(
-			third_party/dav1d
-			third_party/libaom
-			third_party/libaom/source/libaom/third_party/fastfeat
-			third_party/libaom/source/libaom/third_party/SVT-AV1
-			third_party/libaom/source/libaom/third_party/vector
-			third_party/libaom/source/libaom/third_party/x86inc
-		)
-	fi
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use libcxx; then
-		keeplibs+=( third_party/re2 )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if needs_clang && ! tc-is-clang; then
-		# Force clang since gcc is either broken or build is using libcxx.
-		if tc-is-cross-compiler; then
-			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_CC=${CBUILD}-clang
-			BUILD_CXX=${CBUILD}-clang++
-		else
-			CC=${CHOST}-clang
-			CXX=${CHOST}-clang++
-		fi
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
-	if use lto || use pgo; then
-		myconf_gn+=" use_lld=true"
-	else
-		myconf_gn+=" use_lld=false"
-	fi
-
-	if use lto || use pgo; then
-		AR=llvm-ar
-		NM=llvm-nm
-		if tc-is-cross-compiler; then
-			BUILD_AR=llvm-ar
-			BUILD_NM=llvm-nm
-		fi
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
-		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-
-		# setup cups-config, build system only uses --libs option
-		if use cups; then
-			mkdir "${T}/cups-config" || die
-			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
-			export PATH="${PATH}:${T}/cups-config"
-		fi
-
-		# Don't inherit PKG_CONFIG_PATH from environment
-		local -x PKG_CONFIG_PATH=
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if use system-av1; then
-		gn_system_libraries+=( dav1d libaom )
-	fi
-	# re2 library interface relies on std::string and std::vector
-	if ! use libcxx; then
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-
-	if use headless; then
-		myconf_gn+=" use_cups=false"
-		myconf_gn+=" use_kerberos=false"
-		myconf_gn+=" use_pulseaudio=false"
-		myconf_gn+=" use_vaapi=false"
-		myconf_gn+=" rtc_use_pipewire=false"
-	else
-		myconf_gn+=" use_cups=$(usex cups true false)"
-		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
-	fi
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
-	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Disable external code space for V8 for ppc64. It is disabled for ppc64
-	# by default, but cross-compiling on amd64 enables it again.
-	if tc-is-cross-compiler; then
-		if ! use amd64 && ! use arm64; then
-			myconf_gn+=" v8_enable_external_code_space=false"
-		fi
-	fi
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	if tc-is-clang; then
-		append-flags -Wno-unknown-warning-option
-		if tc-is-cross-compiler; then
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-		fi
-	fi
-
-	# Explicitly disable ICU data file support for system-icu/headless builds.
-	if use system-icu || use headless; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use headless; then
-		myconf_gn+=" ozone_platform=\"headless\""
-		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
-		myconf_gn+=" use_glib=false use_gio=false"
-		myconf_gn+=" use_pangocairo=false use_alsa=false"
-		myconf_gn+=" use_libpci=false use_udev=false"
-		myconf_gn+=" enable_print_preview=false"
-		myconf_gn+=" enable_remoting=false"
-	else
-		myconf_gn+=" use_system_libdrm=true"
-		myconf_gn+=" use_system_minigbm=true"
-		myconf_gn+=" use_xkbcommon=true"
-		if use qt5; then
-			local moc_dir="$(qt5_get_bindir)"
-			if tc-is-cross-compiler; then
-				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
-				cbuild_libdir=${cbuild_libdir:2}
-				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
-			fi
-			export PATH="${PATH}:${moc_dir}"
-		fi
-		myconf_gn+=" use_qt=$(usex qt5 true false)"
-		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
-		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
-		if use wayland; then
-			myconf_gn+=" use_system_libwayland=true"
-			myconf_gn+=" use_system_wayland_scanner=true"
-		fi
-	fi
-
-	# Results in undefined references in chrome linking, may require CFI to work
-	if use arm64; then
-		myconf_gn+=" arm_control_flow_integrity=\"none\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=$(usex lto true false)"
-	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	if use pgo; then
-		myconf_gn+=" chrome_pgo_phase=${1}"
-		if [[ "$1" == "2" ]]; then
-			myconf_gn+=" pgo_data_path=\"${2}\""
-		fi
-	else
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
-	if use arm64 && tc-is-gcc; then
-		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
-			third_party/crc32c/src/src/crc32c_arm64.cc || die
-	fi
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=" devtools_skip_typecheck=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	chromium_configure $(usex pgo 1 0)
-}
-
-chromium_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-# This function is called from virtx, and must always return so that Xvfb
-# session isn't left running. If we return 1, virtx will call die().
-chromium_profile() {
-	einfo "Profiling for PGO"
-
-	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
-
-	# Remove old profdata in case profiling was interrupted.
-	rm -rf "${1}" || return 1
-
-	if ! "${EPYTHON}" ./chromium_profiler.py \
-		--chrome-executable "${S}/out/Release/chrome" \
-		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
-		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
-		--profile-output "${1}"; then
-		eerror "Profiling failed"
-		return 1
-	fi
-
-	popd >/dev/null || return 1
-}
-
-src_compile() {
-	if use pgo; then
-		local profdata
-
-		profdata="${WORKDIR}/chromium.profdata"
-
-		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
-			chromium_compile
-			virtx chromium_profile "$profdata"
-
-			touch "${WORKDIR}/.pgo-profiled" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
-			# Remove phase 1 output
-			rm -r out/Release || die
-
-			chromium_configure 2 "$profdata"
-
-			touch "${WORKDIR}/.pgo-phase-2-configured" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
-			chromium_compile
-			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
-		fi
-	else
-		chromium_compile
-	fi
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	rm -f out/Release/locales/*.pak.info || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use X && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu && ! use headless; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if ! use headless; then
-		if use vaapi; then
-			elog "VA-API is disabled by default at runtime. You have to enable it"
-			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-			elog "in /etc/chromium/default."
-		fi
-		if use screencast; then
-			elog "Screencast is disabled by default at runtime. Either enable it"
-			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-		if use gtk4; then
-			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
-			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-109.0.5414.74-r1.ebuild b/www-client/chromium/chromium-109.0.5414.74-r1.ebuild
deleted file mode 100644
index 4af75deaaaca..000000000000
--- a/www-client/chromium/chromium-109.0.5414.74-r1.ebuild
+++ /dev/null
@@ -1,1249 +0,0 @@
-# Copyright 2009-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
-PYTHON_REQ_USE="xml(+)"
-LLVM_MAX_SLOT=15
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-VIRTUALX_REQUIRED="pgo"
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
-PATCHSET_NAME_PPC64="chromium_109.0.5414.74-2raptor0~deb11u1.debian"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	ppc64? (
-		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
-		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="amd64 arm64 ~ppc64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid !libcxx )
-	screencast? ( wayland )
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxshmfence:=
-"
-
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-71.1:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng(-)] )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-1.6.0:=
-	system-av1? (
-		>=media-libs/dav1d-1.0.0:=
-		>=media-libs/libaom-3.4.0:=
-	)
-	sys-libs/zlib:=
-	x11-libs/libdrm:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-sound/pulseaudio:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-libs/libX11:=
-			x11-libs/libXext:=
-			x11-libs/libxcb:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		X? ( ${COMMON_X_DEPEND} )
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		cups? ( >=net-print/cups-1.3.11:= )
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtwidgets:5
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[X?,wayland?]
-		)
-		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
-		x11-misc/xdg-utils
-	)
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
-		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
-	)
-"
-
-depend_clang_llvm_version() {
-	echo "sys-devel/clang:$1"
-	echo "sys-devel/llvm:$1"
-	echo "=sys-devel/lld-$1*"
-}
-
-depend_clang_llvm_versions() {
-	local _v
-	if [[ $# -gt 1 ]]; then
-		echo "|| ("
-		for _v in "$@"; do
-			echo "("
-			depend_clang_llvm_version "${_v}"
-			echo ")"
-		done
-		echo ")"
-	elif [[ $# -eq 1 ]]; then
-		depend_clang_llvm_version "$1"
-	fi
-}
-
-BDEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	!headless? (
-		qt5? ( dev-qt/qtcore:5 )
-	)
-	libcxx? ( >=sys-devel/clang-13 )
-	lto? ( $(depend_clang_llvm_versions 13 14 15) )
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-		$(depend_clang_llvm_versions 13 14 15)
-	)
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	dev-vcs/git
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-13"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-needs_clang() {
-	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
-}
-
-llvm_check_deps() {
-	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
-
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
-			die "At least gcc 10.4 is required"
-		fi
-		if use pgo && tc-is-cross-compiler; then
-			die "The pgo USE flag cannot be used when cross-compiling"
-		fi
-		if needs_clang || tc-is-clang; then
-			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
-			CPP+=" -E"
-			if ! ver_test "$(clang-major-version)" -ge 13; then
-				die "At least clang 13 is required"
-			fi
-			# bug #889374
-			if ! use libcxx; then
-				die "Builds using clang fail with USE=-libcxx"
-			fi
-		fi
-		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
-			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="12G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="13G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
-		use pgo && CHECKREQS_DISK_BUILD="20G"
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
-	pre_build_checks
-
-	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
-		for myiuse in ${headless_unused_flags[@]}; do
-			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
-		done
-	fi
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# disable global media controls, crashes with libstdc++
-	sed -i -e \
-		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
-		"chrome/browser/media/router/media_router_feature.cc" || die
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-109-system-zlib.patch"
-		"${FILESDIR}/chromium-109-system-openh264.patch"
-		"${FILESDIR}/chromium-109-system-icu.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-		"${FILESDIR}/chromium-cross-compile.patch"
-	)
-
-	if use ppc64 ; then
-		local p
-		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
-			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
-				eapply "${WORKDIR}/debian/patches/${p}"
-			fi
-		done
-		PATCHES+=( "${WORKDIR}/ppc64le" )
-	fi
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/bidimapper
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/content_analysis_sdk
-		third_party/cpuinfo
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dawn
-		third_party/dawn/third_party/gn/webgpu-cts
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/fp16
-		third_party/freetype
-		third_party/fusejs
-		third_party/fxdiv
-		third_party/highway
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libaddressinput
-		third_party/libavif
-		third_party/libevent
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/omnibox_proto
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pthreadpool
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
-		third_party/swiftshader/third_party/SPIRV-Tools
-		third_party/tensorflow_models
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/xnnpack
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if ! use system-av1; then
-		keeplibs+=(
-			third_party/dav1d
-			third_party/libaom
-			third_party/libaom/source/libaom/third_party/fastfeat
-			third_party/libaom/source/libaom/third_party/SVT-AV1
-			third_party/libaom/source/libaom/third_party/vector
-			third_party/libaom/source/libaom/third_party/x86inc
-		)
-	fi
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use libcxx; then
-		keeplibs+=( third_party/re2 )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if needs_clang && ! tc-is-clang; then
-		# Force clang since gcc is either broken or build is using libcxx.
-		if tc-is-cross-compiler; then
-			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_CC=${CBUILD}-clang
-			BUILD_CXX=${CBUILD}-clang++
-		else
-			CC=${CHOST}-clang
-			CXX=${CHOST}-clang++
-		fi
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
-	if use lto || use pgo; then
-		myconf_gn+=" use_lld=true"
-	else
-		myconf_gn+=" use_lld=false"
-	fi
-
-	if use lto || use pgo; then
-		AR=llvm-ar
-		NM=llvm-nm
-		if tc-is-cross-compiler; then
-			BUILD_AR=llvm-ar
-			BUILD_NM=llvm-nm
-		fi
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
-		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-
-		# setup cups-config, build system only uses --libs option
-		if use cups; then
-			mkdir "${T}/cups-config" || die
-			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
-			export PATH="${PATH}:${T}/cups-config"
-		fi
-
-		# Don't inherit PKG_CONFIG_PATH from environment
-		local -x PKG_CONFIG_PATH=
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if use system-av1; then
-		gn_system_libraries+=( dav1d libaom )
-	fi
-	# re2 library interface relies on std::string and std::vector
-	if ! use libcxx; then
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-
-	if use headless; then
-		myconf_gn+=" use_cups=false"
-		myconf_gn+=" use_kerberos=false"
-		myconf_gn+=" use_pulseaudio=false"
-		myconf_gn+=" use_vaapi=false"
-		myconf_gn+=" rtc_use_pipewire=false"
-	else
-		myconf_gn+=" use_cups=$(usex cups true false)"
-		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
-	fi
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
-	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Disable external code space for V8 for ppc64. It is disabled for ppc64
-	# by default, but cross-compiling on amd64 enables it again.
-	if tc-is-cross-compiler; then
-		if ! use amd64 && ! use arm64; then
-			myconf_gn+=" v8_enable_external_code_space=false"
-		fi
-	fi
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	if tc-is-clang; then
-		append-flags -Wno-unknown-warning-option
-		if tc-is-cross-compiler; then
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-		fi
-	fi
-
-	# Explicitly disable ICU data file support for system-icu/headless builds.
-	if use system-icu || use headless; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use headless; then
-		myconf_gn+=" ozone_platform=\"headless\""
-		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
-		myconf_gn+=" use_glib=false use_gio=false"
-		myconf_gn+=" use_pangocairo=false use_alsa=false"
-		myconf_gn+=" use_libpci=false use_udev=false"
-		myconf_gn+=" enable_print_preview=false"
-		myconf_gn+=" enable_remoting=false"
-	else
-		myconf_gn+=" use_system_libdrm=true"
-		myconf_gn+=" use_system_minigbm=true"
-		myconf_gn+=" use_xkbcommon=true"
-		if use qt5; then
-			local moc_dir="$(qt5_get_bindir)"
-			if tc-is-cross-compiler; then
-				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
-				cbuild_libdir=${cbuild_libdir:2}
-				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
-			fi
-			export PATH="${PATH}:${moc_dir}"
-		fi
-		myconf_gn+=" use_qt=$(usex qt5 true false)"
-		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
-		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
-		if use wayland; then
-			myconf_gn+=" use_system_libwayland=true"
-			myconf_gn+=" use_system_wayland_scanner=true"
-		fi
-	fi
-
-	# Results in undefined references in chrome linking, may require CFI to work
-	if use arm64; then
-		myconf_gn+=" arm_control_flow_integrity=\"none\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=$(usex lto true false)"
-	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	if use pgo; then
-		myconf_gn+=" chrome_pgo_phase=${1}"
-		if [[ "$1" == "2" ]]; then
-			myconf_gn+=" pgo_data_path=\"${2}\""
-		fi
-	else
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
-	if use arm64 && tc-is-gcc; then
-		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
-			third_party/crc32c/src/src/crc32c_arm64.cc || die
-	fi
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=" devtools_skip_typecheck=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	chromium_configure $(usex pgo 1 0)
-}
-
-chromium_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-# This function is called from virtx, and must always return so that Xvfb
-# session isn't left running. If we return 1, virtx will call die().
-chromium_profile() {
-	einfo "Profiling for PGO"
-
-	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
-
-	# Remove old profdata in case profiling was interrupted.
-	rm -rf "${1}" || return 1
-
-	if ! "${EPYTHON}" ./chromium_profiler.py \
-		--chrome-executable "${S}/out/Release/chrome" \
-		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
-		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
-		--profile-output "${1}"; then
-		eerror "Profiling failed"
-		return 1
-	fi
-
-	popd >/dev/null || return 1
-}
-
-src_compile() {
-	if use pgo; then
-		local profdata
-
-		profdata="${WORKDIR}/chromium.profdata"
-
-		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
-			chromium_compile
-			virtx chromium_profile "$profdata"
-
-			touch "${WORKDIR}/.pgo-profiled" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
-			# Remove phase 1 output
-			rm -r out/Release || die
-
-			chromium_configure 2 "$profdata"
-
-			touch "${WORKDIR}/.pgo-phase-2-configured" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
-			chromium_compile
-			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
-		fi
-	else
-		chromium_compile
-	fi
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	rm -f out/Release/locales/*.pak.info || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use X && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu && ! use headless; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if ! use headless; then
-		if use vaapi; then
-			elog "VA-API is disabled by default at runtime. You have to enable it"
-			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-			elog "in /etc/chromium/default."
-		fi
-		if use screencast; then
-			elog "Screencast is disabled by default at runtime. Either enable it"
-			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-		if use gtk4; then
-			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
-			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-110.0.5481.177-r1.ebuild b/www-client/chromium/chromium-110.0.5481.177-r1.ebuild
deleted file mode 100644
index 99452165df2b..000000000000
--- a/www-client/chromium/chromium-110.0.5481.177-r1.ebuild
+++ /dev/null
@@ -1,1244 +0,0 @@
-# Copyright 2009-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
-PYTHON_REQ_USE="xml(+)"
-LLVM_MAX_SLOT=15
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-VIRTUALX_REQUIRED="pgo"
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="4"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
-PATCHSET_NAME_PPC64="chromium_110.0.5481.77-1raptor0~deb11u1.debian"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	ppc64? (
-		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
-		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid !libcxx )
-	screencast? ( wayland )
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxshmfence:=
-"
-
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-71.1:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng(-)] )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-1.6.0:=
-	system-av1? (
-		>=media-libs/dav1d-1.0.0:=
-		>=media-libs/libaom-3.4.0:=
-	)
-	sys-libs/zlib:=
-	x11-libs/libdrm:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-sound/pulseaudio:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-libs/libX11:=
-			x11-libs/libXext:=
-			x11-libs/libxcb:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		X? ( ${COMMON_X_DEPEND} )
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		cups? ( >=net-print/cups-1.3.11:= )
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtwidgets:5
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[X?,wayland?]
-		)
-		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
-		x11-misc/xdg-utils
-	)
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
-		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
-	)
-"
-
-depend_clang_llvm_version() {
-	echo "sys-devel/clang:$1"
-	echo "sys-devel/llvm:$1"
-	echo "=sys-devel/lld-$1*"
-}
-
-depend_clang_llvm_versions() {
-	local _v
-	if [[ $# -gt 1 ]]; then
-		echo "|| ("
-		for _v in "$@"; do
-			echo "("
-			depend_clang_llvm_version "${_v}"
-			echo ")"
-		done
-		echo ")"
-	elif [[ $# -eq 1 ]]; then
-		depend_clang_llvm_version "$1"
-	fi
-}
-
-BDEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	!headless? (
-		qt5? ( dev-qt/qtcore:5 )
-	)
-	libcxx? ( >=sys-devel/clang-13 )
-	lto? ( $(depend_clang_llvm_versions 13 14 15) )
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-		$(depend_clang_llvm_versions 13 14 15)
-	)
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	dev-vcs/git
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-13"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-needs_clang() {
-	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
-}
-
-llvm_check_deps() {
-	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
-
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
-			die "At least gcc 10.4 is required"
-		fi
-		if use pgo && tc-is-cross-compiler; then
-			die "The pgo USE flag cannot be used when cross-compiling"
-		fi
-		if needs_clang || tc-is-clang; then
-			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
-			CPP+=" -E"
-			if ! ver_test "$(clang-major-version)" -ge 13; then
-				die "At least clang 13 is required"
-			fi
-			# bug #889374
-			if ! use libcxx; then
-				die "Builds using clang fail with USE=-libcxx"
-			fi
-		fi
-		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
-			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="12G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="13G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
-		use pgo && CHECKREQS_DISK_BUILD="20G"
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
-	pre_build_checks
-
-	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
-		for myiuse in ${headless_unused_flags[@]}; do
-			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
-		done
-	fi
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# disable global media controls, crashes with libstdc++
-	sed -i -e \
-		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
-		"chrome/browser/media/router/media_router_feature.cc" || die
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-109-system-zlib.patch"
-		"${FILESDIR}/chromium-109-system-openh264.patch"
-		"${FILESDIR}/chromium-109-system-icu.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-		"${FILESDIR}/chromium-cross-compile.patch"
-	)
-
-	if use ppc64 ; then
-		local p
-		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
-			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
-				eapply "${WORKDIR}/debian/patches/${p}"
-			fi
-		done
-		PATCHES+=( "${WORKDIR}/ppc64le" )
-	fi
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/bidimapper
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/content_analysis_sdk
-		third_party/cpuinfo
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dawn
-		third_party/dawn/third_party/gn/webgpu-cts
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/fp16
-		third_party/freetype
-		third_party/fusejs
-		third_party/fxdiv
-		third_party/highway
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libaddressinput
-		third_party/libavif
-		third_party/libevent
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/omnibox_proto
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pthreadpool
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
-		third_party/swiftshader/third_party/SPIRV-Tools
-		third_party/tensorflow_models
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/utf
-		third_party/vulkan
-		third_party/wayland
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/xnnpack
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if ! use system-av1; then
-		keeplibs+=(
-			third_party/dav1d
-			third_party/libaom
-			third_party/libaom/source/libaom/third_party/fastfeat
-			third_party/libaom/source/libaom/third_party/SVT-AV1
-			third_party/libaom/source/libaom/third_party/vector
-			third_party/libaom/source/libaom/third_party/x86inc
-		)
-	fi
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use libcxx; then
-		keeplibs+=( third_party/re2 )
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if needs_clang && ! tc-is-clang; then
-		# Force clang since gcc is either broken or build is using libcxx.
-		if tc-is-cross-compiler; then
-			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_CC=${CBUILD}-clang
-			BUILD_CXX=${CBUILD}-clang++
-		else
-			CC=${CHOST}-clang
-			CXX=${CHOST}-clang++
-		fi
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
-	if use lto || use pgo; then
-		myconf_gn+=" use_lld=true"
-	else
-		myconf_gn+=" use_lld=false"
-	fi
-
-	if use lto || use pgo; then
-		AR=llvm-ar
-		NM=llvm-nm
-		if tc-is-cross-compiler; then
-			BUILD_AR=llvm-ar
-			BUILD_NM=llvm-nm
-		fi
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
-		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-
-		# setup cups-config, build system only uses --libs option
-		if use cups; then
-			mkdir "${T}/cups-config" || die
-			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
-			export PATH="${PATH}:${T}/cups-config"
-		fi
-
-		# Don't inherit PKG_CONFIG_PATH from environment
-		local -x PKG_CONFIG_PATH=
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if use system-av1; then
-		gn_system_libraries+=( dav1d libaom )
-	fi
-	# re2 library interface relies on std::string and std::vector
-	if ! use libcxx; then
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-
-	if use headless; then
-		myconf_gn+=" use_cups=false"
-		myconf_gn+=" use_kerberos=false"
-		myconf_gn+=" use_pulseaudio=false"
-		myconf_gn+=" use_vaapi=false"
-		myconf_gn+=" rtc_use_pipewire=false"
-	else
-		myconf_gn+=" use_cups=$(usex cups true false)"
-		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
-	fi
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
-	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Disable external code space for V8 for ppc64. It is disabled for ppc64
-	# by default, but cross-compiling on amd64 enables it again.
-	if tc-is-cross-compiler; then
-		if ! use amd64 && ! use arm64; then
-			myconf_gn+=" v8_enable_external_code_space=false"
-		fi
-	fi
-
-	# Only enabled for clang, but gcc has endian macros too
-	myconf_gn+=" v8_use_libm_trig_functions=true"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	if tc-is-clang; then
-		append-flags -Wno-unknown-warning-option
-		if tc-is-cross-compiler; then
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-		fi
-	fi
-
-	# Explicitly disable ICU data file support for system-icu/headless builds.
-	if use system-icu || use headless; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use headless; then
-		myconf_gn+=" ozone_platform=\"headless\""
-		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
-		myconf_gn+=" use_glib=false use_gio=false"
-		myconf_gn+=" use_pangocairo=false use_alsa=false"
-		myconf_gn+=" use_libpci=false use_udev=false"
-		myconf_gn+=" enable_print_preview=false"
-		myconf_gn+=" enable_remoting=false"
-	else
-		myconf_gn+=" use_system_libdrm=true"
-		myconf_gn+=" use_system_minigbm=true"
-		myconf_gn+=" use_xkbcommon=true"
-		if use qt5; then
-			local moc_dir="$(qt5_get_bindir)"
-			if tc-is-cross-compiler; then
-				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
-				cbuild_libdir=${cbuild_libdir:2}
-				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
-			fi
-			export PATH="${PATH}:${moc_dir}"
-		fi
-		myconf_gn+=" use_qt=$(usex qt5 true false)"
-		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
-		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
-		use wayland && myconf_gn+=" use_system_libffi=true"
-	fi
-
-	# Results in undefined references in chrome linking, may require CFI to work
-	if use arm64; then
-		myconf_gn+=" arm_control_flow_integrity=\"none\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=$(usex lto true false)"
-	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	if use pgo; then
-		myconf_gn+=" chrome_pgo_phase=${1}"
-		if [[ "$1" == "2" ]]; then
-			myconf_gn+=" pgo_data_path=\"${2}\""
-		fi
-	else
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
-	if use arm64 && tc-is-gcc; then
-		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
-			third_party/crc32c/src/src/crc32c_arm64.cc || die
-	fi
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=" devtools_skip_typecheck=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	chromium_configure $(usex pgo 1 0)
-}
-
-chromium_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-# This function is called from virtx, and must always return so that Xvfb
-# session isn't left running. If we return 1, virtx will call die().
-chromium_profile() {
-	einfo "Profiling for PGO"
-
-	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
-
-	# Remove old profdata in case profiling was interrupted.
-	rm -rf "${1}" || return 1
-
-	if ! "${EPYTHON}" ./chromium_profiler.py \
-		--chrome-executable "${S}/out/Release/chrome" \
-		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
-		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
-		--profile-output "${1}"; then
-		eerror "Profiling failed"
-		return 1
-	fi
-
-	popd >/dev/null || return 1
-}
-
-src_compile() {
-	if use pgo; then
-		local profdata
-
-		profdata="${WORKDIR}/chromium.profdata"
-
-		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
-			chromium_compile
-			virtx chromium_profile "$profdata"
-
-			touch "${WORKDIR}/.pgo-profiled" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
-			# Remove phase 1 output
-			rm -r out/Release || die
-
-			chromium_configure 2 "$profdata"
-
-			touch "${WORKDIR}/.pgo-phase-2-configured" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
-			chromium_compile
-			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
-		fi
-	else
-		chromium_compile
-	fi
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	rm -f out/Release/locales/*.pak.info || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use X && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu && ! use headless; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if ! use headless; then
-		if use vaapi; then
-			elog "VA-API is disabled by default at runtime. You have to enable it"
-			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-			elog "in /etc/chromium/default."
-		fi
-		if use screencast; then
-			elog "Screencast is disabled by default at runtime. Either enable it"
-			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-		if use gtk4; then
-			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
-			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-110.0.5481.38.ebuild b/www-client/chromium/chromium-110.0.5481.38.ebuild
deleted file mode 100644
index 8aaf2bfec27b..000000000000
--- a/www-client/chromium/chromium-110.0.5481.38.ebuild
+++ /dev/null
@@ -1,1244 +0,0 @@
-# Copyright 2009-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
-PYTHON_REQ_USE="xml(+)"
-LLVM_MAX_SLOT=15
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-VIRTUALX_REQUIRED="pgo"
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="4"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public"
-PATCHSET_NAME_PPC64="chromium_110.0.5481.77-1raptor0~deb11u1.debian"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	ppc64? (
-		${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz
-		https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-LICENSE="BSD"
-SLOT="0/beta"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid !libcxx )
-	screencast? ( wayland )
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxshmfence:=
-"
-
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-71.1:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng(-)] )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-1.6.0:=
-	system-av1? (
-		>=media-libs/dav1d-1.0.0:=
-		>=media-libs/libaom-3.4.0:=
-	)
-	sys-libs/zlib:=
-	x11-libs/libdrm:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-sound/pulseaudio:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-libs/libX11:=
-			x11-libs/libXext:=
-			x11-libs/libxcb:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		X? ( ${COMMON_X_DEPEND} )
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		cups? ( >=net-print/cups-1.3.11:= )
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtwidgets:5
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[X?,wayland?]
-		)
-		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
-		x11-misc/xdg-utils
-	)
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
-		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
-	)
-"
-
-depend_clang_llvm_version() {
-	echo "sys-devel/clang:$1"
-	echo "sys-devel/llvm:$1"
-	echo "=sys-devel/lld-$1*"
-}
-
-depend_clang_llvm_versions() {
-	local _v
-	if [[ $# -gt 1 ]]; then
-		echo "|| ("
-		for _v in "$@"; do
-			echo "("
-			depend_clang_llvm_version "${_v}"
-			echo ")"
-		done
-		echo ")"
-	elif [[ $# -eq 1 ]]; then
-		depend_clang_llvm_version "$1"
-	fi
-}
-
-BDEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	!headless? (
-		qt5? ( dev-qt/qtcore:5 )
-	)
-	libcxx? ( >=sys-devel/clang-13 )
-	lto? ( $(depend_clang_llvm_versions 13 14 15) )
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-		$(depend_clang_llvm_versions 13 14 15)
-	)
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	dev-vcs/git
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-13"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-needs_clang() {
-	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
-}
-
-llvm_check_deps() {
-	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
-
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
-			die "At least gcc 10.4 is required"
-		fi
-		if use pgo && tc-is-cross-compiler; then
-			die "The pgo USE flag cannot be used when cross-compiling"
-		fi
-		if needs_clang || tc-is-clang; then
-			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
-			CPP+=" -E"
-			if ! ver_test "$(clang-major-version)" -ge 13; then
-				die "At least clang 13 is required"
-			fi
-			# bug #889374
-			if ! use libcxx; then
-				die "Builds using clang fail with USE=-libcxx"
-			fi
-		fi
-		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
-			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="12G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="13G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
-		use pgo && CHECKREQS_DISK_BUILD="20G"
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
-	pre_build_checks
-
-	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
-		for myiuse in ${headless_unused_flags[@]}; do
-			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
-		done
-	fi
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# disable global media controls, crashes with libstdc++
-	sed -i -e \
-		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
-		"chrome/browser/media/router/media_router_feature.cc" || die
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-109-system-zlib.patch"
-		"${FILESDIR}/chromium-109-system-openh264.patch"
-		"${FILESDIR}/chromium-109-system-icu.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-		"${FILESDIR}/chromium-cross-compile.patch"
-	)
-
-	if use ppc64 ; then
-		local p
-		for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do
-			if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then
-				eapply "${WORKDIR}/debian/patches/${p}"
-			fi
-		done
-		PATCHES+=( "${WORKDIR}/ppc64le" )
-	fi
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/bidimapper
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/content_analysis_sdk
-		third_party/cpuinfo
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dawn
-		third_party/dawn/third_party/gn/webgpu-cts
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/fp16
-		third_party/freetype
-		third_party/fusejs
-		third_party/fxdiv
-		third_party/highway
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libaddressinput
-		third_party/libavif
-		third_party/libevent
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/omnibox_proto
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pthreadpool
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
-		third_party/swiftshader/third_party/SPIRV-Tools
-		third_party/tensorflow_models
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/utf
-		third_party/vulkan
-		third_party/wayland
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/xnnpack
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if ! use system-av1; then
-		keeplibs+=(
-			third_party/dav1d
-			third_party/libaom
-			third_party/libaom/source/libaom/third_party/fastfeat
-			third_party/libaom/source/libaom/third_party/SVT-AV1
-			third_party/libaom/source/libaom/third_party/vector
-			third_party/libaom/source/libaom/third_party/x86inc
-		)
-	fi
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use libcxx; then
-		keeplibs+=( third_party/re2 )
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if needs_clang && ! tc-is-clang; then
-		# Force clang since gcc is either broken or build is using libcxx.
-		if tc-is-cross-compiler; then
-			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_CC=${CBUILD}-clang
-			BUILD_CXX=${CBUILD}-clang++
-		else
-			CC=${CHOST}-clang
-			CXX=${CHOST}-clang++
-		fi
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
-	if use lto || use pgo; then
-		myconf_gn+=" use_lld=true"
-	else
-		myconf_gn+=" use_lld=false"
-	fi
-
-	if use lto || use pgo; then
-		AR=llvm-ar
-		NM=llvm-nm
-		if tc-is-cross-compiler; then
-			BUILD_AR=llvm-ar
-			BUILD_NM=llvm-nm
-		fi
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
-		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-
-		# setup cups-config, build system only uses --libs option
-		if use cups; then
-			mkdir "${T}/cups-config" || die
-			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
-			export PATH="${PATH}:${T}/cups-config"
-		fi
-
-		# Don't inherit PKG_CONFIG_PATH from environment
-		local -x PKG_CONFIG_PATH=
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if use system-av1; then
-		gn_system_libraries+=( dav1d libaom )
-	fi
-	# re2 library interface relies on std::string and std::vector
-	if ! use libcxx; then
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-
-	if use headless; then
-		myconf_gn+=" use_cups=false"
-		myconf_gn+=" use_kerberos=false"
-		myconf_gn+=" use_pulseaudio=false"
-		myconf_gn+=" use_vaapi=false"
-		myconf_gn+=" rtc_use_pipewire=false"
-	else
-		myconf_gn+=" use_cups=$(usex cups true false)"
-		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
-	fi
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
-	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Disable external code space for V8 for ppc64. It is disabled for ppc64
-	# by default, but cross-compiling on amd64 enables it again.
-	if tc-is-cross-compiler; then
-		if ! use amd64 && ! use arm64; then
-			myconf_gn+=" v8_enable_external_code_space=false"
-		fi
-	fi
-
-	# Only enabled for clang, but gcc has endian macros too
-	myconf_gn+=" v8_use_libm_trig_functions=true"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	if tc-is-clang; then
-		append-flags -Wno-unknown-warning-option
-		if tc-is-cross-compiler; then
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-		fi
-	fi
-
-	# Explicitly disable ICU data file support for system-icu/headless builds.
-	if use system-icu || use headless; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use headless; then
-		myconf_gn+=" ozone_platform=\"headless\""
-		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
-		myconf_gn+=" use_glib=false use_gio=false"
-		myconf_gn+=" use_pangocairo=false use_alsa=false"
-		myconf_gn+=" use_libpci=false use_udev=false"
-		myconf_gn+=" enable_print_preview=false"
-		myconf_gn+=" enable_remoting=false"
-	else
-		myconf_gn+=" use_system_libdrm=true"
-		myconf_gn+=" use_system_minigbm=true"
-		myconf_gn+=" use_xkbcommon=true"
-		if use qt5; then
-			local moc_dir="$(qt5_get_bindir)"
-			if tc-is-cross-compiler; then
-				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
-				cbuild_libdir=${cbuild_libdir:2}
-				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
-			fi
-			export PATH="${PATH}:${moc_dir}"
-		fi
-		myconf_gn+=" use_qt=$(usex qt5 true false)"
-		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
-		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
-		use wayland && myconf_gn+=" use_system_libffi=true"
-	fi
-
-	# Results in undefined references in chrome linking, may require CFI to work
-	if use arm64; then
-		myconf_gn+=" arm_control_flow_integrity=\"none\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=$(usex lto true false)"
-	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	if use pgo; then
-		myconf_gn+=" chrome_pgo_phase=${1}"
-		if [[ "$1" == "2" ]]; then
-			myconf_gn+=" pgo_data_path=\"${2}\""
-		fi
-	else
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
-	if use arm64 && tc-is-gcc; then
-		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
-			third_party/crc32c/src/src/crc32c_arm64.cc || die
-	fi
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=" devtools_skip_typecheck=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	chromium_configure $(usex pgo 1 0)
-}
-
-chromium_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-# This function is called from virtx, and must always return so that Xvfb
-# session isn't left running. If we return 1, virtx will call die().
-chromium_profile() {
-	einfo "Profiling for PGO"
-
-	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
-
-	# Remove old profdata in case profiling was interrupted.
-	rm -rf "${1}" || return 1
-
-	if ! "${EPYTHON}" ./chromium_profiler.py \
-		--chrome-executable "${S}/out/Release/chrome" \
-		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
-		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
-		--profile-output "${1}"; then
-		eerror "Profiling failed"
-		return 1
-	fi
-
-	popd >/dev/null || return 1
-}
-
-src_compile() {
-	if use pgo; then
-		local profdata
-
-		profdata="${WORKDIR}/chromium.profdata"
-
-		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
-			chromium_compile
-			virtx chromium_profile "$profdata"
-
-			touch "${WORKDIR}/.pgo-profiled" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
-			# Remove phase 1 output
-			rm -r out/Release || die
-
-			chromium_configure 2 "$profdata"
-
-			touch "${WORKDIR}/.pgo-phase-2-configured" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
-			chromium_compile
-			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
-		fi
-	else
-		chromium_compile
-	fi
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	rm -f out/Release/locales/*.pak.info || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use X && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu && ! use headless; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if ! use headless; then
-		if use vaapi; then
-			elog "VA-API is disabled by default at runtime. You have to enable it"
-			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-			elog "in /etc/chromium/default."
-		fi
-		if use screencast; then
-			elog "Screencast is disabled by default at runtime. Either enable it"
-			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-		if use gtk4; then
-			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
-			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-111.0.5545.6.ebuild b/www-client/chromium/chromium-111.0.5545.6.ebuild
deleted file mode 100644
index ff2e0d3567e4..000000000000
--- a/www-client/chromium/chromium-111.0.5545.6.ebuild
+++ /dev/null
@@ -1,1235 +0,0 @@
-# Copyright 2009-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
-PYTHON_REQ_USE="xml(+)"
-LLVM_MAX_SLOT=15
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-VIRTUALX_REQUIRED="pgo"
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-LICENSE="BSD"
-SLOT="0/dev"
-KEYWORDS="~amd64 ~arm64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid !libcxx )
-	screencast? ( wayland )
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxshmfence:=
-"
-
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-71.1:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng(-)] )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-1.6.0:=
-	system-av1? (
-		>=media-libs/dav1d-1.0.0:=
-		>=media-libs/libaom-3.4.0:=
-	)
-	sys-libs/zlib:=
-	x11-libs/libdrm:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-sound/pulseaudio:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-libs/libX11:=
-			x11-libs/libXext:=
-			x11-libs/libxcb:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		X? ( ${COMMON_X_DEPEND} )
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		cups? ( >=net-print/cups-1.3.11:= )
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtwidgets:5
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[X?,wayland?]
-		)
-		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
-	)
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
-		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
-	)
-"
-
-depend_clang_llvm_version() {
-	echo "sys-devel/clang:$1"
-	echo "sys-devel/llvm:$1"
-	echo "=sys-devel/lld-$1*"
-}
-
-depend_clang_llvm_versions() {
-	local _v
-	if [[ $# -gt 1 ]]; then
-		echo "|| ("
-		for _v in "$@"; do
-			echo "("
-			depend_clang_llvm_version "${_v}"
-			echo ")"
-		done
-		echo ")"
-	elif [[ $# -eq 1 ]]; then
-		depend_clang_llvm_version "$1"
-	fi
-}
-
-BDEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	!headless? (
-		qt5? ( dev-qt/qtcore:5 )
-	)
-	libcxx? ( >=sys-devel/clang-13 )
-	lto? ( $(depend_clang_llvm_versions 13 14 15) )
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-		$(depend_clang_llvm_versions 13 14 15)
-	)
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	dev-vcs/git
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-13"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-needs_clang() {
-	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
-}
-
-llvm_check_deps() {
-	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
-
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
-			die "At least gcc 10.4 is required"
-		fi
-		if use pgo && tc-is-cross-compiler; then
-			die "The pgo USE flag cannot be used when cross-compiling"
-		fi
-		if needs_clang || tc-is-clang; then
-			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
-			CPP+=" -E"
-			if ! ver_test "$(clang-major-version)" -ge 13; then
-				die "At least clang 13 is required"
-			fi
-		fi
-		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
-			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="12G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="13G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
-		use pgo && CHECKREQS_DISK_BUILD="20G"
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
-	pre_build_checks
-
-	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
-		for myiuse in ${headless_unused_flags[@]}; do
-			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
-		done
-	fi
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# disable global media controls, crashes with libstdc++
-	sed -i -e \
-		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
-		"chrome/browser/media/router/media_router_feature.cc" || die
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-109-system-zlib.patch"
-		"${FILESDIR}/chromium-109-system-openh264.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-cross-compile.patch"
-	)
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/ceval
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/systeminfo
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/bidimapper
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/content_analysis_sdk
-		third_party/cpuinfo
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dawn
-		third_party/dawn/third_party/gn/webgpu-cts
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/fp16
-		third_party/freetype
-		third_party/fusejs
-		third_party/fxdiv
-		third_party/highway
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libaddressinput
-		third_party/libavif
-		third_party/libevent
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/omnibox_proto
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/pthreadpool
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
-		third_party/swiftshader/third_party/SPIRV-Tools
-		third_party/tensorflow_models
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/utf
-		third_party/vulkan
-		third_party/wayland
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/xnnpack
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if ! use system-av1; then
-		keeplibs+=(
-			third_party/dav1d
-			third_party/libaom
-			third_party/libaom/source/libaom/third_party/fastfeat
-			third_party/libaom/source/libaom/third_party/SVT-AV1
-			third_party/libaom/source/libaom/third_party/vector
-			third_party/libaom/source/libaom/third_party/x86inc
-		)
-	fi
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use libcxx; then
-		keeplibs+=( third_party/re2 )
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if needs_clang && ! tc-is-clang; then
-		# Force clang since gcc is either broken or build is using libcxx.
-		if tc-is-cross-compiler; then
-			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_CC=${CBUILD}-clang
-			BUILD_CXX=${CBUILD}-clang++
-		else
-			CC=${CHOST}-clang
-			CXX=${CHOST}-clang++
-		fi
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
-	if use lto || use pgo; then
-		myconf_gn+=" use_lld=true"
-	else
-		myconf_gn+=" use_lld=false"
-	fi
-
-	if use lto || use pgo; then
-		AR=llvm-ar
-		NM=llvm-nm
-		if tc-is-cross-compiler; then
-			BUILD_AR=llvm-ar
-			BUILD_NM=llvm-nm
-		fi
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
-		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-
-		# setup cups-config, build system only uses --libs option
-		if use cups; then
-			mkdir "${T}/cups-config" || die
-			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
-			export PATH="${PATH}:${T}/cups-config"
-		fi
-
-		# Don't inherit PKG_CONFIG_PATH from environment
-		local -x PKG_CONFIG_PATH=
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# Create dummy pkg-config file for libsystemd, only dependency of installer
-	mkdir "${T}/libsystemd" || die
-	cat <<- EOF > "${T}/libsystemd/libsystemd.pc"
-		Name:
-		Description:
-		Version:
-	EOF
-	local -x PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+"${PKG_CONFIG_PATH}:"}${T}/libsystemd"
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if use system-av1; then
-		gn_system_libraries+=( dav1d libaom )
-	fi
-	# re2 library interface relies on std::string and std::vector
-	if ! use libcxx; then
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-
-	if use headless; then
-		myconf_gn+=" use_cups=false"
-		myconf_gn+=" use_kerberos=false"
-		myconf_gn+=" use_pulseaudio=false"
-		myconf_gn+=" use_vaapi=false"
-		myconf_gn+=" rtc_use_pipewire=false"
-	else
-		myconf_gn+=" use_cups=$(usex cups true false)"
-		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
-	fi
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
-	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Disable external code space for V8 for ppc64. It is disabled for ppc64
-	# by default, but cross-compiling on amd64 enables it again.
-	if tc-is-cross-compiler; then
-		if ! use amd64 && ! use arm64; then
-			myconf_gn+=" v8_enable_external_code_space=false"
-		fi
-	fi
-
-	# Only enabled for clang, but gcc has endian macros too
-	myconf_gn+=" v8_use_libm_trig_functions=true"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	if tc-is-clang; then
-		append-flags -Wno-unknown-warning-option
-		if tc-is-cross-compiler; then
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-		fi
-	fi
-
-	# Explicitly disable ICU data file support for system-icu/headless builds.
-	if use system-icu || use headless; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use headless; then
-		myconf_gn+=" ozone_platform=\"headless\""
-		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
-		myconf_gn+=" use_glib=false use_gio=false"
-		myconf_gn+=" use_pangocairo=false use_alsa=false"
-		myconf_gn+=" use_libpci=false use_udev=false"
-		myconf_gn+=" enable_print_preview=false"
-		myconf_gn+=" enable_remoting=false"
-	else
-		myconf_gn+=" use_system_libdrm=true"
-		myconf_gn+=" use_system_minigbm=true"
-		myconf_gn+=" use_xkbcommon=true"
-		if use qt5; then
-			local moc_dir="$(qt5_get_bindir)"
-			if tc-is-cross-compiler; then
-				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
-				cbuild_libdir=${cbuild_libdir:2}
-				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
-			fi
-			export PATH="${PATH}:${moc_dir}"
-		fi
-		myconf_gn+=" use_qt=$(usex qt5 true false)"
-		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
-		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
-		use wayland && myconf_gn+=" use_system_libffi=true"
-	fi
-
-	# Results in undefined references in chrome linking, may require CFI to work
-	if use arm64; then
-		myconf_gn+=" arm_control_flow_integrity=\"none\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=$(usex lto true false)"
-	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	if use pgo; then
-		myconf_gn+=" chrome_pgo_phase=${1}"
-		if [[ "$1" == "2" ]]; then
-			myconf_gn+=" pgo_data_path=\"${2}\""
-		fi
-	else
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
-	if use arm64 && tc-is-gcc; then
-		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
-			third_party/crc32c/src/src/crc32c_arm64.cc || die
-	fi
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=" devtools_skip_typecheck=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	chromium_configure $(usex pgo 1 0)
-}
-
-chromium_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-# This function is called from virtx, and must always return so that Xvfb
-# session isn't left running. If we return 1, virtx will call die().
-chromium_profile() {
-	einfo "Profiling for PGO"
-
-	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
-
-	# Remove old profdata in case profiling was interrupted.
-	rm -rf "${1}" || return 1
-
-	if ! "${EPYTHON}" ./chromium_profiler.py \
-		--chrome-executable "${S}/out/Release/chrome" \
-		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
-		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
-		--profile-output "${1}"; then
-		eerror "Profiling failed"
-		return 1
-	fi
-
-	popd >/dev/null || return 1
-}
-
-src_compile() {
-	if use pgo; then
-		local profdata
-
-		profdata="${WORKDIR}/chromium.profdata"
-
-		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
-			chromium_compile
-			virtx chromium_profile "$profdata"
-
-			touch "${WORKDIR}/.pgo-profiled" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
-			# Remove phase 1 output
-			rm -r out/Release || die
-
-			chromium_configure 2 "$profdata"
-
-			touch "${WORKDIR}/.pgo-phase-2-configured" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
-			chromium_compile
-			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
-		fi
-	else
-		chromium_compile
-	fi
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	rm -f out/Release/locales/*.pak.info || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use X && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
-	doins out/Release/xdg-{settings,mime}
-
-	if ! use system-icu && ! use headless; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if ! use headless; then
-		if use vaapi; then
-			elog "VA-API is disabled by default at runtime. You have to enable it"
-			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-			elog "in /etc/chromium/default."
-		fi
-		if use screencast; then
-			elog "Screencast is disabled by default at runtime. Either enable it"
-			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-		if use gtk4; then
-			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
-			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-	fi
-}

diff --git a/www-client/chromium/files/chromium-109-system-icu.patch b/www-client/chromium/files/chromium-109-system-icu.patch
deleted file mode 100644
index ea1be01d9270..000000000000
--- a/www-client/chromium/files/chromium-109-system-icu.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4885090741554be61cb2ed10194cefb29bf8be64 Mon Sep 17 00:00:00 2001
-From: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
-Date: Wed, 11 Jan 2023 23:51:39 +0000
-Subject: [PATCH] Fix the way to handle codecs in the system icu.
-
-The previous code does not register codecs whose standard name is
-different from the bundled ICU.  As a result, looking up such codecs
-seems to fail unexpectedly.
-
-Bug: 1382032
-Change-Id: I8a61f77d0f70104415d24dd954b3b7061ffca556
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4154277
-Reviewed-by: Kent Tamura <tkent@chromium.org>
-Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1091571}
----
-
-diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
-index a70b359..33ce43f 100644
---- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
-+++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
-@@ -116,6 +116,10 @@
-       continue;
-     }
- #endif
-+    // Avoid codecs supported by `TextCodecCJK`.
-+    if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) {
-+      continue;
-+    }
- 
- // A number of these aliases are handled in Chrome's copy of ICU, but
- // Chromium can be compiled with the system ICU.
-@@ -144,12 +148,13 @@
-     }
- #endif
- 
--    if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) {
--      continue;
-+    // Avoid registering codecs registered by
-+    // `TextCodecCJK::RegisterEncodingNames`.
-+    if (!is_text_codec_cjk_enabled ||
-+        !TextCodecCJK::IsSupported(standard_name)) {
-+      registrar(standard_name, standard_name);
-     }
- 
--    registrar(standard_name, standard_name);
--
-     uint16_t num_aliases = ucnv_countAliases(name, &error);
-     DCHECK(U_SUCCESS(error));
-     if (U_SUCCESS(error))
-@@ -289,6 +294,7 @@
-       continue;
-     }
- #endif
-+    // Avoid codecs supported by `TextCodecCJK`.
-     if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) {
-       continue;
-     }

diff --git a/www-client/chromium/files/chromium-109-v8-icu72.patch b/www-client/chromium/files/chromium-109-v8-icu72.patch
deleted file mode 100644
index 1de11c8cd1d6..000000000000
--- a/www-client/chromium/files/chromium-109-v8-icu72.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 2ada52cffbff11074abfaac18938bf02d85454f5 Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Wed, 16 Nov 2022 09:18:45 -0800
-Subject: [PATCH] [intl] Enhance Date parser to take Unicode SPACE
-
-This is needed to prepare for the landing of ICU72.
-Allow U+202F in the Date String, which the toLocaleString("en-US")
-will generate w/ ICU72.
-
-Bug: v8:13494
-Change-Id: I41b83c4094ce3d0737a72dcd6310b52c68fdcdca
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4027341
-Reviewed-by: Yang Guo <yangguo@chromium.org>
-Reviewed-by: Jungshik Shin <jshin@chromium.org>
-Commit-Queue: Frank Tang <ftang@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#84308}
----
-
-diff --git a/src/date/dateparser-inl.h b/src/date/dateparser-inl.h
-index 623986d..b45479d 100644
---- a/v8/src/date/dateparser-inl.h
-+++ b/v8/src/date/dateparser-inl.h
-@@ -192,7 +192,7 @@
-   if (in_->Skip('+')) return DateToken::Symbol('+');
-   if (in_->Skip('.')) return DateToken::Symbol('.');
-   if (in_->Skip(')')) return DateToken::Symbol(')');
--  if (in_->IsAsciiAlphaOrAbove()) {
-+  if (in_->IsAsciiAlphaOrAbove() && !in_->IsWhiteSpaceChar()) {
-     DCHECK_EQ(KeywordTable::kPrefixLength, 3);
-     uint32_t buffer[3] = {0, 0, 0};
-     int length = in_->ReadWord(buffer, 3);
-diff --git a/src/date/dateparser.h b/src/date/dateparser.h
-index 1a0a0b1..59b2f3c 100644
---- a/v8/src/date/dateparser.h
-+++ b/v8/src/date/dateparser.h
-@@ -91,7 +91,8 @@
-     // Return word length.
-     int ReadWord(uint32_t* prefix, int prefix_size) {
-       int len;
--      for (len = 0; IsAsciiAlphaOrAbove(); Next(), len++) {
-+      for (len = 0; IsAsciiAlphaOrAbove() && !IsWhiteSpaceChar();
-+           Next(), len++) {
-         if (len < prefix_size) prefix[len] = AsciiAlphaToLower(ch_);
-       }
-       for (int i = len; i < prefix_size; i++) prefix[i] = 0;
-@@ -115,6 +116,7 @@
-     bool IsEnd() const { return ch_ == 0; }
-     bool IsAsciiDigit() const { return IsDecimalDigit(ch_); }
-     bool IsAsciiAlphaOrAbove() const { return ch_ >= 'A'; }
-+    bool IsWhiteSpaceChar() const { return IsWhiteSpace(ch_); }
-     bool IsAsciiSign() const { return ch_ == '+' || ch_ == '-'; }
- 
-     // Return 1 for '+' and -1 for '-'.
-diff --git a/test/intl/regress-13494.js b/test/intl/regress-13494.js
-new file mode 100644
-index 0000000..d1446af
---- /dev/null
-+++ b/v8/test/intl/regress-13494.js
-@@ -0,0 +1,47 @@
-+// Copyright 2022 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Test the new Date( date.toLocaleString("en-US")) is not invalid.
-+// This is not guaranteed by the standard but many code use that to set the
-+// timezone as suggested in
-+// https://stackoverflow.com/questions/15141762/how-to-initialize-a-javascript-date-to-a-particular-time-zone
-+
-+let d = new Date();
-+
-+// https://tc39.es/ecma262/#sec-todatestring
-+// 21.4.4.41.4 ToDateString ( tv )
-+// 1. If tv is NaN, return "Invalid Date".
-+let invalid = "Invalid Date";
-+let largestDiff = 25*60*60*1000;
-+
-+let garbage = new Date("garbage");
-+assertTrue(invalid == garbage);
-+assertEquals(NaN, garbage.getTime());
-+
-+let d1 = new Date(d.toLocaleString("en-US"));
-+assertTrue(d1 != invalid);
-+assertTrue(d1.getTime() != NaN);
-+// The milliseconds are different between d1 and d.
-+assertTrue(Math.abs(d1-d) < 1000);
-+
-+// Force a version of date string which have  U+202f before AM
-+let nnbsp_am = new Date("11/16/2022, 9:04:55\u202fAM");
-+assertTrue(nnbsp_am  != invalid);
-+assertTrue(nnbsp_am.getTime() != NaN);
-+// Force a version of date string which have  U+202f before PM
-+let nnbsp_pm = new Date("11/16/2022, 9:04:55\u202fPM");
-+assertTrue(nnbsp_pm  != invalid);
-+assertTrue(nnbsp_pm.getTime() != NaN);
-+
-+let d2 = new Date(d.toLocaleString("en-US", {timeZone: "Asia/Taipei"}));
-+assertTrue(d2 != invalid);
-+assertTrue(d2.getTime() != NaN);
-+// The differences should be within 25 hours.
-+assertTrue(Math.abs(d2-d) < largestDiff);
-+
-+let d3 = new Date(d.toLocaleString("en-US", {timeZone: "Africa/Lusaka"}));
-+assertTrue(d3 != invalid);
-+assertTrue(d3.getTime() != NaN);
-+// The differences should be within 25 hours.
-+assertTrue(Math.abs(d3-d) < largestDiff);

diff --git a/www-client/chromium/files/chromium-93-InkDropHost-crash.patch b/www-client/chromium/files/chromium-93-InkDropHost-crash.patch
deleted file mode 100644
index 54d16db56cc2..000000000000
--- a/www-client/chromium/files/chromium-93-InkDropHost-crash.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/ui/views/animation/ink_drop_host_view.h b/ui/views/animation/ink_drop_host_view.h
-index bd0975b..e5df288 100644
---- a/ui/views/animation/ink_drop_host_view.h
-+++ b/ui/views/animation/ink_drop_host_view.h
-@@ -238,6 +238,11 @@ class VIEWS_EXPORT InkDropHost {
-   // Used to observe View and inform the InkDrop of host-transform changes.
-   ViewLayerTransformObserver host_view_transform_observer_;
- 
-+  // Declared before |ink_drop_|, because InkDropImpl may call
-+  // RemoveInkDropLayer on partly destructed InkDropHost. In
-+  // that case |ink_drop_mask_| must be still valid.
-+  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
-+
-   // Should not be accessed directly. Use GetInkDrop() instead.
-   std::unique_ptr<InkDrop> ink_drop_;
- 
-@@ -261,8 +266,6 @@ class VIEWS_EXPORT InkDropHost {
-   int ink_drop_small_corner_radius_ = 2;
-   int ink_drop_large_corner_radius_ = 4;
- 
--  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
--
-   base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
-   base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
-       create_ink_drop_ripple_callback_;

diff --git a/www-client/chromium/files/chromium-shim_headers.patch b/www-client/chromium/files/chromium-shim_headers.patch
deleted file mode 100644
index 9372632a3cc5..000000000000
--- a/www-client/chromium/files/chromium-shim_headers.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From e273172bbafedca36984fc40f4aa6c44b79ac2ef Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 25 Dec 2020 09:10:32 +0000
-Subject: [PATCH] shim_headers: fix outputs generation
-
----
- build/shim_headers.gni | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/build/shim_headers.gni b/build/shim_headers.gni
-index 0900cba..5138647 100644
---- a/build/shim_headers.gni
-+++ b/build/shim_headers.gni
-@@ -6,6 +6,8 @@ template("shim_headers") {
-   action_name = "gen_${target_name}"
-   config_name = "${target_name}_config"
-   shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}"
-+  shim_root_path    = rebase_path(invoker.root_path)
-+  shim_rel_path     = rebase_path("${shim_root_path}", rebase_path("//"))
- 
-   config(config_name) {
-     include_dirs = [ shim_headers_path ]
-@@ -16,7 +18,7 @@ template("shim_headers") {
-     args = [
-       "--generate",
-       "--headers-root",
--      rebase_path(invoker.root_path),
-+      "${shim_root_path}",
-       "--output-directory",
-       rebase_path(shim_headers_path),
-     ]
-@@ -27,9 +29,10 @@ template("shim_headers") {
-       ]
-     }
-     args += invoker.headers
--
--    outputs = process_file_template(invoker.headers,
--                                    "${shim_headers_path}/{{source_file_part}}")
-+    outputs = []
-+    foreach(shim_header, invoker.headers) {
-+      outputs += [ "${shim_headers_path}/${shim_rel_path}/" + shim_header ]
-+    }
-   }
- 
-   group(target_name) {
--- 
-2.26.2
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-03-13  2:01 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2023-03-13  2:01 UTC (permalink / raw
  To: gentoo-commits

commit:     f938a8ba3384388d87a3cec0a8ed3fa58a5c3803
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 13 01:59:11 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Mar 13 02:01:17 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f938a8ba

www-client/chromium: add 111.0.5563.64

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-111.0.5563.64.ebuild  | 1234 ++++++++++++++++++++
 .../files/chromium-111-ozone-platform.patch        |   32 +
 www-client/chromium/metadata.xml                   |    1 +
 4 files changed, 1268 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 78d0906681e4..edf0c7b5a654 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -6,6 +6,7 @@ DIST chromium-110.0.5481.177.tar.xz 1703390456 BLAKE2B d9ee898090ea04bff72a5d627
 DIST chromium-110.0.5481.38.tar.xz 1703266068 BLAKE2B 8b990eef533f8469afc6ea88c9fc70f316ccf33381fbbe30b43c89cde476a0487b201d7b07e8202bfdf94b44c2c5b184627f27225bb12ad7cef9fb505e608206 SHA512 4ad20231ce1c42d30886cfa179b154f1bd09efb61b971dc55a2aa70538a39141199f9a799c09b546c3e3501cf1981b6dd850e92e44aaa8f816ddb294fc194231
 DIST chromium-111-patchset-2.tar.xz 21480 BLAKE2B e59d67d261df23c110c2db0644250c20d9e1cd6b99cb9513dbd12463faad8aea8520c5b5dbbfd2187a7795f7e34ebd3379fac4c3b2b01e30ffb4451b45084866 SHA512 7a2e660a9271b9b643dce5f7522570182eb895935312446775bf7c03a4c2d50d7f95c2082cac2dd477060d03f68e5424c990f535e0b1de9f0d12ac248806d043
 DIST chromium-111.0.5545.6.tar.xz 1721481252 BLAKE2B 22f0d9386a5ea8b473e85324b448f4789f9d6365c723ef254b42db3d059b972bb3e620a4e331ce935805d2b22be867d0e6f923264268fce828fe29394f59c09c SHA512 a52a4e4ebac1cd05bbe08763e4c4cd3e48efd37f8bb60cb6e1d8119e698ddecdc96741d3d4f97ee74d87fb8f27bdc4a60dbe2d09d84c223576983c65bb9fb6b4
+DIST chromium-111.0.5563.64.tar.xz 1740670460 BLAKE2B 325cd15ebc5eeac2e51ebf754c71e090369a1063421d5e294d5704655d782fc02006f6eed4b284a2dc49fab9b7077144179db6887ce4652b6e88846174de79c3 SHA512 3ba60778031a2015cff4f1944a466102923cb2b455d3333abdd3ee077ac3a8717c4fa4090c7d950ffd5ad5a77f139f68640fb5032b7afcae36012e4a34485bcc
 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_109.0.5414.119-1raptor0~deb11u1.debian.tar.xz 438932 BLAKE2B 1405965668248b53a6c79f6d648900725f5db727379e7893b639aebef3cc333099ebc4259face3625ed080bd281fa4f307336c1e8da8c68b737368254dbdac83 SHA512 2baad609b88acc0d16d0f6bff39292d7bd3fff06a9d074b219a89011c1c02fb8f429282aaebc2a0fe79619f38de324140c6d6ad2d2d2a35475e6965e8a9e0a42

diff --git a/www-client/chromium/chromium-111.0.5563.64.ebuild b/www-client/chromium/chromium-111.0.5563.64.ebuild
new file mode 100644
index 000000000000..f0c2b1300027
--- /dev/null
+++ b/www-client/chromium/chromium-111.0.5563.64.ebuild
@@ -0,0 +1,1234 @@
+# Copyright 2009-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="xml(+)"
+LLVM_MAX_SLOT=15
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+VIRTUALX_REQUIRED="pgo"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET="2"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
+
+LICENSE="BSD"
+SLOT="0/dev"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid !libcxx )
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng(-)] )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	system-av1? (
+		>=media-libs/dav1d-1.0.0:=
+		>=media-libs/libaom-3.4.0:=
+	)
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-sound/pulseaudio:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/libffi:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		qt5? ( dev-qt/qtgui:5[X?,wayland?] )
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -gt 1 ]]; then
+		echo "|| ("
+		for _v in "$@"; do
+			echo "("
+			depend_clang_llvm_version "${_v}"
+			echo ")"
+		done
+		echo ")"
+	elif [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	!headless? (
+		qt5? ( dev-qt/qtcore:5 )
+	)
+	libcxx? ( >=sys-devel/clang-13 )
+	lto? ( $(depend_clang_llvm_versions 14 15) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions 14 15)
+	)
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-13"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
+
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then
+			die "At least gcc 10.4 is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang || tc-is-clang; then
+			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
+			CPP+=" -E"
+			if ! ver_test "$(clang-major-version)" -ge 13; then
+				die "At least clang 13 is required"
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="12G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		CHECKREQS_DISK_BUILD="13G"
+		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
+		use pgo && CHECKREQS_DISK_BUILD="20G"
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# disable global media controls, crashes with libstdc++
+	sed -i -e \
+		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
+		"chrome/browser/media/router/media_router_feature.cc" || die
+
+	rm "${WORKDIR}"/patches/chromium-110-dpf-arm64.patch || die
+	rm "${WORKDIR}"/patches/chromium-111-v8-std-layout1.patch || die
+	rm "${WORKDIR}"/patches/chromium-111-v8-std-layout2.patch || die
+
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-109-system-openh264.patch"
+		"${FILESDIR}/chromium-111-ozone-platform.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-cross-compile.patch"
+	)
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+	sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/ceval
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/systeminfo
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/material_color_utilities
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/pthreadpool
+		third_party/pyjson5
+		third_party/pyyaml
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/selenium-atoms
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow_models
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/wayland
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/glibc
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if ! use system-av1; then
+		keeplibs+=(
+			third_party/dav1d
+			third_party/libaom
+			third_party/libaom/source/libaom/third_party/fastfeat
+			third_party/libaom/source/libaom/third_party/SVT-AV1
+			third_party/libaom/source/libaom/third_party/vector
+			third_party/libaom/source/libaom/third_party/x86inc
+		)
+	fi
+	if ! use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto || use pgo; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# Create dummy pkg-config file for libsystemd, only dependency of installer
+	mkdir "${T}/libsystemd" || die
+	cat <<- EOF > "${T}/libsystemd/libsystemd.pc"
+		Name:
+		Description:
+		Version:
+	EOF
+	local -x PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+"${PKG_CONFIG_PATH}:"}${T}/libsystemd"
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-av1; then
+		gn_system_libraries+=( dav1d libaom )
+	fi
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_js_type_check=false"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Only enabled for clang, but gcc has endian macros too
+	myconf_gn+=" v8_use_libm_trig_functions=true"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		if use qt5; then
+			local moc_dir="$(qt5_get_bindir)"
+			if tc-is-cross-compiler; then
+				# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+				local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)
+				cbuild_libdir=${cbuild_libdir:2}
+				moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin
+			fi
+			export PATH="${PATH}:${moc_dir}"
+		fi
+		myconf_gn+=" use_qt=$(usex qt5 true false)"
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_libffi=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	# skipping typecheck is only supported on amd64, bug #876157
+	if ! use amd64; then
+		myconf_gn+=" devtools_skip_typecheck=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	# Build mksnapshot and pax-mark it.
+	if use pax-kernel; then
+		local x
+		for x in mksnapshot v8_context_snapshot_generator; do
+			if tc-is-cross-compiler; then
+				eninja -C out/Release "host/${x}"
+				pax-mark m "out/Release/host/${x}"
+			else
+				eninja -C out/Release "${x}"
+				pax-mark m "out/Release/${x}"
+			fi
+		done
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	rm -f out/Release/locales/*.pak.info || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	# Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland"
+	doins out/Release/xdg-{settings,mime}
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-111-ozone-platform.patch b/www-client/chromium/files/chromium-111-ozone-platform.patch
new file mode 100644
index 000000000000..cf9d11793e65
--- /dev/null
+++ b/www-client/chromium/files/chromium-111-ozone-platform.patch
@@ -0,0 +1,32 @@
+From eeb0b18565e6e644524fedb511a1658b502836cf Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 14 Feb 2023 19:09:47 +0000
+Subject: [PATCH] IWYU: missing PlatformKeyboardHook include in ozone_platform.cc
+
+libstdc++ implementation of std::unique_ptr requires full declaration
+of the contained type for converting from nullptr. Add the required
+include in OzonePlatform for PlatformKeyboardHook.
+
+This fixes this build error with GCC and libstdc++:
+    /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::PlatformKeyboardHook’
+
+Bug: 957519
+Change-Id: I20429925dd00108cf684548b0260ebb053a8ada2
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4239869
+Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#1105184}
+---
+
+diff --git a/ui/ozone/public/ozone_platform.cc b/ui/ozone/public/ozone_platform.cc
+index 81f8070..6c4ce21 100644
+--- a/ui/ozone/public/ozone_platform.cc
++++ b/ui/ozone/public/ozone_platform.cc
+@@ -15,6 +15,7 @@
+ #include "ui/ozone/platform_object.h"
+ #include "ui/ozone/platform_selection.h"
+ #include "ui/ozone/public/platform_global_shortcut_listener.h"
++#include "ui/ozone/public/platform_keyboard_hook.h"
+ #include "ui/ozone/public/platform_menu_utils.h"
+ #include "ui/ozone/public/platform_screen.h"
+ #include "ui/ozone/public/platform_user_input_monitor.h"

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 443b6a5b0071..405120c15e3e 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -15,6 +15,7 @@
 		<flag name="libcxx">Use bundled libc++ instead of libstdc++ for building.</flag>
 		<flag name="lto">Build with Link Time Optimizations (via clang's ThinLTO)</flag>
 		<flag name="official">Enable Official build instead of Developer build.</flag>
+		<flag name="pax-kernel">Allow building on a PaX-enabled kernel</flag>
 		<flag name="pgo">Build with Profile Guided Optimizations (2-stage compilation)</flag>
 		<flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
 		<flag name="proprietary-codecs">Enable codecs for patent-encumbered audio and video formats.</flag>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2023-01-14  8:38 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2023-01-14  8:38 UTC (permalink / raw
  To: gentoo-commits

commit:     bf7fc6e838f669c503dd127107a8e9f85ca2f951
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 14 08:36:30 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Jan 14 08:37:55 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf7fc6e8

www-client/chromium: promote M109 to stable

Closes: https://bugs.gentoo.org/890064
Bug: https://bugs.gentoo.org/884419
Bug: https://bugs.gentoo.org/890726
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ....74.ebuild => chromium-109.0.5414.74-r1.ebuild} | 18 +++----
 .../chromium/files/chromium-109-system-icu.patch   | 58 ++++++++++++++++++++++
 3 files changed, 67 insertions(+), 11 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e2469cf421ab..0047e6ce3874 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,6 @@
 DIST chromium-108-patchset-2.tar.xz 6480 BLAKE2B 2a40bb741fdd305b3525b790f82c2b36f6c909680788527a31aa2a11f519ff630aa12ffe7c53553b717f1909978c77e7db07a02a86c8e7d12d63375402802d7a SHA512 3fe182f0f928baaf0f5521efa8763080de765240b5608d5126e84e49335eb5edc788ab406aa71f5fa97c371afe1f6808e93e2e082c7f65169b5f157ff6c3e00b
 DIST chromium-108.0.5359.124.tar.xz 1731649648 BLAKE2B 1e5d2f58eab7303a8feaba105fc6739be69f27543876cc24a8ca21076461c6b5bb032f0ca29f79119d58487a62206647623dd52970f21a1ca1247b17c7a14f16 SHA512 e9bbe2c3d376265449216cc2f6f8ab1c94871387e1bf12f0af28b8d3bce299cee751b20283b1c832e887e38459d7928e8e8c0c8027514cba48a64cc15f8762a6
-DIST chromium-109-patchset-1.tar.xz 5736 BLAKE2B 25131fd64ef3d95920bd1c74dc16fd33322e166542bd4f4c279c0f6394b0c32ad95da1d864adc78a99f0f62aefbac36cd2ace553354252e0d8440b16c9aca0c4 SHA512 d4a6beecff2f8de07c7e96fdfe75a8e7a34e97a4d349c055a30b08917a85c01db05c77c086f6247d5714bfff38ee8d1feb9e607538af880db13ca4327bdf460b
+DIST chromium-109-patchset-2.tar.xz 7280 BLAKE2B b7f86dbb6c40005df67764a7dea57c845010a97ed52e542da0c91182b828d74b2b7266db9b9d21bb9349c83a6c56f4721bbf9fd440e83d3356155ff5f6337719 SHA512 3ec55aa9031cd2c82f99233700c9d3a62eeaef792724254b2d0605f597ba7446fffa0afa81166145aa0ff6e64c78136fe18b7231afe49dd2f33de2c7ae27de15
 DIST chromium-109.0.5414.74.tar.xz 1747778008 BLAKE2B dc2893c59398caf72546c42ada961215ce1b25785da66272b72fe14ac0db00ac4282b0de5ee65cca932e273fe69f41704b4ee2aa173d21da535708e8d0aab633 SHA512 79ff744b813e833ab4f257361a2f1847a57df579b9c925bad7575484f079c4c1b0b1c59c2c48e683bcee27a79e4bfd87f96c83fa28e0209ba4d3a71340842579
 DIST chromium-110-patchset-2.tar.xz 11196 BLAKE2B 97a4d65f9cdc1cdec15ddcee8561b6fef9d6ce8ea667c4c779da56b3665ff8fd67f2e81d8b55cf9709575c96e29545c4ab81b02dcb5b3fced7185cb9f43d63d2 SHA512 cff28487a6739cdffb007566c1b71977c87394bd2912e9b3ee32c9349bb0c1d882e252a2264132d908393bc5440520e3ea93736e1a0f155211280cab7d605037
 DIST chromium-110.0.5481.24.tar.xz 1703153748 BLAKE2B 8fa030928d51d9ea0a6aa4a674bb1e731e89833da146575f1e617e2e4fb4a7d55f963ba855341f2564488b4464b52d4aaa9d0f789e4f7f1dcb35df6f5e0232aa SHA512 49ff6fcfcc4a1cc30e073fa421fced527e2eb7248a1dfde5da91768a91ea69aa113934f80865ffe590a3c417634c5f7a2fe04145b199a2b4d751ea386f297e9a

diff --git a/www-client/chromium/chromium-109.0.5414.74.ebuild b/www-client/chromium/chromium-109.0.5414.74-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-109.0.5414.74.ebuild
rename to www-client/chromium/chromium-109.0.5414.74-r1.ebuild
index c740692317ab..67a1e38d6624 100644
--- a/www-client/chromium/chromium-109.0.5414.74.ebuild
+++ b/www-client/chromium/chromium-109.0.5414.74-r1.ebuild
@@ -17,14 +17,14 @@ inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="1"
+PATCHSET="2"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
 	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
 
 LICENSE="BSD"
-SLOT="0/beta"
+SLOT="0/stable"
 KEYWORDS="~amd64 ~arm64"
 IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
 REQUIRED_USE="
@@ -266,6 +266,10 @@ pre_build_checks() {
 			if ! ver_test "$(clang-major-version)" -ge 13; then
 				die "At least clang 13 is required"
 			fi
+			# bug #889374
+			if ! use libcxx; then
+				die "Builds using clang fail with USE=-libcxx"
+			fi
 		fi
 		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
 			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
@@ -320,17 +324,10 @@ src_prepare() {
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
 
-	# some web pages are crashing
-	if use system-icu; then
-		sed -i -e \
-			"/\"TextCodecCJKEnabled\",/{n;s/ENABLED/DISABLED/;}" \
-			"third_party/blink/common/features.cc" || die
-	fi
-
 	# disable global media controls, crashes with libstdc++
 	sed -i -e \
 		"/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \
-		"third_party/blink/common/features.cc" || die
+		"chrome/browser/media/router/media_router_feature.cc" || die
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
@@ -339,6 +336,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-109-system-zlib.patch"
 		"${FILESDIR}/chromium-109-system-openh264.patch"
+		"${FILESDIR}/chromium-109-system-icu.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"

diff --git a/www-client/chromium/files/chromium-109-system-icu.patch b/www-client/chromium/files/chromium-109-system-icu.patch
new file mode 100644
index 000000000000..ea1be01d9270
--- /dev/null
+++ b/www-client/chromium/files/chromium-109-system-icu.patch
@@ -0,0 +1,58 @@
+From 4885090741554be61cb2ed10194cefb29bf8be64 Mon Sep 17 00:00:00 2001
+From: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
+Date: Wed, 11 Jan 2023 23:51:39 +0000
+Subject: [PATCH] Fix the way to handle codecs in the system icu.
+
+The previous code does not register codecs whose standard name is
+different from the bundled ICU.  As a result, looking up such codecs
+seems to fail unexpectedly.
+
+Bug: 1382032
+Change-Id: I8a61f77d0f70104415d24dd954b3b7061ffca556
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4154277
+Reviewed-by: Kent Tamura <tkent@chromium.org>
+Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1091571}
+---
+
+diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+index a70b359..33ce43f 100644
+--- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
++++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+@@ -116,6 +116,10 @@
+       continue;
+     }
+ #endif
++    // Avoid codecs supported by `TextCodecCJK`.
++    if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) {
++      continue;
++    }
+ 
+ // A number of these aliases are handled in Chrome's copy of ICU, but
+ // Chromium can be compiled with the system ICU.
+@@ -144,12 +148,13 @@
+     }
+ #endif
+ 
+-    if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) {
+-      continue;
++    // Avoid registering codecs registered by
++    // `TextCodecCJK::RegisterEncodingNames`.
++    if (!is_text_codec_cjk_enabled ||
++        !TextCodecCJK::IsSupported(standard_name)) {
++      registrar(standard_name, standard_name);
+     }
+ 
+-    registrar(standard_name, standard_name);
+-
+     uint16_t num_aliases = ucnv_countAliases(name, &error);
+     DCHECK(U_SUCCESS(error));
+     if (U_SUCCESS(error))
+@@ -289,6 +294,7 @@
+       continue;
+     }
+ #endif
++    // Avoid codecs supported by `TextCodecCJK`.
+     if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) {
+       continue;
+     }


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-12-04 23:40 Sam James
  0 siblings, 0 replies; 149+ messages in thread
From: Sam James @ 2022-12-04 23:40 UTC (permalink / raw
  To: gentoo-commits

commit:     d7c445871003a62c278c8e1177df10621662513e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Dec  4 23:38:13 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Dec  4 23:38:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d7c44587

www-client/chromium: fix build with GCC

Closes: https://bugs.gentoo.org/884197
Thanks-to: Stephan Hartmann <sultan <AT> gentoo.org>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-client/chromium/chromium-108.0.5359.94.ebuild  |  1 +
 .../chromium-108-DocumentLoader-private.patch      | 36 ++++++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/www-client/chromium/chromium-108.0.5359.94.ebuild b/www-client/chromium/chromium-108.0.5359.94.ebuild
index 98e568b9d30a..99327ea17821 100644
--- a/www-client/chromium/chromium-108.0.5359.94.ebuild
+++ b/www-client/chromium/chromium-108.0.5359.94.ebuild
@@ -328,6 +328,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-107-system-zlib.patch"
 		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-108-revert-GlobalMediaControlsCastStartStop.patch"
+		"${FILESDIR}/chromium-108-DocumentLoader-private.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"

diff --git a/www-client/chromium/files/chromium-108-DocumentLoader-private.patch b/www-client/chromium/files/chromium-108-DocumentLoader-private.patch
new file mode 100644
index 000000000000..1ea2116edc1c
--- /dev/null
+++ b/www-client/chromium/files/chromium-108-DocumentLoader-private.patch
@@ -0,0 +1,36 @@
+https://bugs.gentoo.org/884197
+--- a/third_party/blink/renderer/core/loader/document_loader.cc
++++ b/third_party/blink/renderer/core/loader/document_loader.cc
+@@ -155,6 +155,11 @@
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+ 
+ namespace blink {
++
++struct DecodedBodyDataWrap {
++  using DecodedBodyDataType = DocumentLoader::DecodedBodyData;
++};
++
+ namespace {
+ 
+ Vector<OriginTrialFeature> CopyInitiatorOriginTrials(
+@@ -261,7 +266,7 @@ struct SameSizeAsDocumentLoader
+   bool finish_loading_when_parser_resumed;
+   bool in_commit_data;
+   scoped_refptr<SharedBuffer> data_buffer;
+-  Vector<DocumentLoader::DecodedBodyData> decoded_data_buffer_;
++  Vector<blink::DecodedBodyDataWrap::DecodedBodyDataType> decoded_data_buffer_;
+   base::UnguessableToken devtools_navigation_token;
+   LoaderFreezeMode defers_loading;
+   bool last_navigation_had_transient_user_activation;
+--- a/third_party/blink/renderer/core/loader/document_loader.h
++++ b/third_party/blink/renderer/core/loader/document_loader.h
+@@ -467,7 +467,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>,
+   Member<MHTMLArchive> archive_;
+ 
+  private:
+-  friend struct SameSizeAsDocumentLoader;
++  friend struct DecodedBodyDataWrap;
+   class BodyData;
+   class EncodedBodyData;
+   class DecodedBodyData;
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-10-01  9:58 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-10-01  9:58 UTC (permalink / raw
  To: gentoo-commits

commit:     a634979cfccf3a758b953f30df483d044396c2dd
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Oct  1 09:57:57 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Oct  1 09:58:11 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a634979c

www-client/chromium: drop 105.0.5195.125

Bug: https://bugs.gentoo.org/873217
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |    2 -
 www-client/chromium/chromium-105.0.5195.125.ebuild | 1186 --------------------
 .../files/chromium-104-tflite-system-zlib.patch    |   70 --
 3 files changed, 1258 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 5be0bee51fb9..05b828c050b9 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-DIST chromium-105-patchset-1.tar.xz 9116 BLAKE2B 7728b83899e19b3c0ba4a69c660b68af7ea549a0144c15ab9fa972001441d9d145de20b7a1bafabf2b0667335b7436f6374c9934d4433160805c31bc743e867e SHA512 8f97aecf7b24c3f676bc74b88382dc4a5d967a090a4b4890971cb342973b0a20fd563c658b1c3fdaf036e830317d97470143ab78b28f336b315d491217368a81
-DIST chromium-105.0.5195.125.tar.xz 1597584952 BLAKE2B 690c10de16bbb92b6b69950c378f16a469b29176ad57de6d1f0827358c1443c25c273b962c434bcca38f1868e4e762115b61ee292ada2d5be12e7d19fbbac0af SHA512 a8aaa24d779b69ee8173ed45006c9e7d6ada57de465cfa0a15720f3cd72d271f0560cedf8ae4aa0fde45ae6b750bb4577dcb23349d9cb49a036a7f0a4a5d68ac
 DIST chromium-106-patchset-3.tar.xz 6672 BLAKE2B 4c56702e84c761b5b4e5ea84a3e9bed0c9c81cbf448998c51b149a5f3b745944e8c824384a879798fba284eb96d76ebbc22ce038971daf9a574ea02d52f204b5 SHA512 3e58bf2811a6674bbe04ab12c0404faad5e6b17c7a5de213e661a7cc34dd4c3329b8736e3b1ffd43a442eae4ad132ff05b042ef904d451bbe0c9a76554499b61
 DIST chromium-106.0.5249.61.tar.xz 1621965008 BLAKE2B f15043eeefb898809adf580c6ef9258f9512ec29f9f0688865c226b13a47d6dd8733a51a64c6a0e5ba0b67e5d5b54419e5264401fa4ef96112dcbdfb70c4aa17 SHA512 472754e11472d4b6d7545d3dfb784b3ca6ecb951753e6e966b5a2ee18aab35e185872d55bece98a99d4d2c2d1ef38e07a29a4d6989e5a287046108100a799ac1
 DIST chromium-107-patchset-1.tar.xz 5736 BLAKE2B 581ca307d63635ef91aaa907aeebb8c735be6d6bbfcc3fe064fed7531b8848b5d918e017031ee606ed3bd8f0fc23aa6d2f8af4b36d33483dbeee2b5c8eacac82 SHA512 acbfb41c31a510a689cad3b0686e24925b018bd7a2a8f56f74b730dc36d878c266a11b3bb76b131e66f7b859f483ff00e16cbaae1b2b6944010c7396310c03b8

diff --git a/www-client/chromium/chromium-105.0.5195.125.ebuild b/www-client/chromium/chromium-105.0.5195.125.ebuild
deleted file mode 100644
index d250e9ebaf24..000000000000
--- a/www-client/chromium/chromium-105.0.5195.125.ebuild
+++ /dev/null
@@ -1,1186 +0,0 @@
-# Copyright 2009-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
-PYTHON_REQ_USE="xml(+)"
-LLVM_MAX_SLOT=14
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-VIRTUALX_REQUIRED="pgo"
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="1"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	pgo? ( https://blackhole.sk/~kabel/src/chromium-profiler-0.1.tar )"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="~amd64 arm64"
-IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid !libcxx )
-	screencast? ( wayland )
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxshmfence:=
-"
-
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-71.1:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng] )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-1.6.0:=
-	sys-libs/zlib:=
-	x11-libs/libdrm:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-sound/pulseaudio:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=x11-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-libs/libX11:=
-			x11-libs/libXext:=
-			x11-libs/libxcb:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		X? ( ${COMMON_X_DEPEND} )
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		media-libs/mesa:=[X?,wayland?]
-		cups? ( >=net-print/cups-1.3.11:= )
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[X?,wayland?]
-		)
-		x11-misc/xdg-utils
-	)
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
-		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
-	)
-"
-
-depend_clang_llvm_version() {
-	echo "sys-devel/clang:$1"
-	echo "sys-devel/llvm:$1"
-	echo "=sys-devel/lld-$1*"
-}
-
-depend_clang_llvm_versions() {
-	local _v
-	if [[ $# -gt 1 ]]; then
-		echo "|| ("
-		for _v in "$@"; do
-			echo "("
-			depend_clang_llvm_version "${_v}"
-			echo ")"
-		done
-		echo ")"
-	elif [[ $# -eq 1 ]]; then
-		depend_clang_llvm_version "$1"
-	fi
-}
-
-BDEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	libcxx? ( >=sys-devel/clang-12 )
-	lto? ( $(depend_clang_llvm_versions 13 14 15) )
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-		$(depend_clang_llvm_versions 13 14 15)
-	)
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	dev-vcs/git
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-12"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-needs_clang() {
-	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
-}
-
-llvm_check_deps() {
-	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
-		return 1
-	fi
-
-	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
-
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		if use pgo && tc-is-cross-compiler; then
-			die "The pgo USE flag cannot be used when cross-compiling"
-		fi
-		if needs_clang || tc-is-clang; then
-			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
-			CPP+=" -E"
-			if ! ver_test "$(clang-major-version)" -ge 12; then
-				die "At least clang 12 is required"
-			fi
-		fi
-		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
-			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="12G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="13G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
-		use pgo && CHECKREQS_DISK_BUILD="20G"
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
-	pre_build_checks
-
-	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "vaapi" "wayland")
-		for myiuse in ${headless_unused_flags[@]}; do
-			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
-		done
-	fi
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-104-tflite-system-zlib.patch"
-		"${FILESDIR}/chromium-105-swiftshader-no-wayland.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-		"${FILESDIR}/chromium-cross-compile.patch"
-	)
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/content_analysis_sdk
-		third_party/cpuinfo
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/gn/webgpu-cts
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/fp16
-		third_party/freetype
-		third_party/fusejs
-		third_party/fxdiv
-		third_party/highway
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/fastfeat
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libevent
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pthreadpool
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
-		third_party/swiftshader/third_party/SPIRV-Tools
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/xnnpack
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if use libcxx; then
-		keeplibs+=( third_party/re2 )
-	fi
-	if use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng/utils )
-	else
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-		# only need the .gn files
-		rm -r third_party/wayland/src || die
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if needs_clang && ! tc-is-clang; then
-		# Force clang since gcc is either broken or build is using libcxx.
-		if tc-is-cross-compiler; then
-			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_CC=${CBUILD}-clang
-			BUILD_CXX=${CBUILD}-clang++
-		else
-			CC=${CHOST}-clang
-			CXX=${CHOST}-clang++
-		fi
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
-	if use lto || use pgo; then
-		myconf_gn+=" use_lld=true"
-	else
-		myconf_gn+=" use_lld=false"
-	fi
-
-	if use lto || use pgo; then
-		AR=llvm-ar
-		NM=llvm-nm
-		if tc-is-cross-compiler; then
-			BUILD_AR=llvm-ar
-			BUILD_NM=llvm-nm
-		fi
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
-		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-
-		# setup cups-config, build system only uses --libs option
-		if use cups; then
-			mkdir "${T}/cups-config" || die
-			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
-			export PATH="${PATH}:${T}/cups-config"
-		fi
-
-		# Don't inherit PKG_CONFIG_PATH from environment
-		local -x PKG_CONFIG_PATH=
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	# re2 library interface relies on std::string and std::vector
-	if ! use libcxx; then
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-
-	if use headless; then
-		myconf_gn+=" use_cups=false"
-		myconf_gn+=" use_kerberos=false"
-		myconf_gn+=" use_pulseaudio=false"
-		myconf_gn+=" use_vaapi=false"
-		myconf_gn+=" rtc_use_pipewire=false"
-	else
-		myconf_gn+=" use_cups=$(usex cups true false)"
-		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
-	fi
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
-	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Disable external code space for V8 for ppc64. It is disabled for ppc64
-	# by default, but cross-compiling on amd64 enables it again.
-	if tc-is-cross-compiler; then
-		if ! use amd64 && ! use arm64; then
-			myconf_gn+=" v8_enable_external_code_space=false"
-		fi
-	fi
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	if tc-is-clang; then
-		append-flags -Wno-unknown-warning-option
-		if tc-is-cross-compiler; then
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-		fi
-	fi
-
-	# Explicitly disable ICU data file support for system-icu/headless builds.
-	if use system-icu || use headless; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use headless; then
-		myconf_gn+=" ozone_platform=\"headless\""
-		myconf_gn+=" use_xkbcommon=false use_gtk=false"
-		myconf_gn+=" use_glib=false use_gio=false"
-		myconf_gn+=" use_pangocairo=false use_alsa=false"
-		myconf_gn+=" use_libpci=false use_udev=false"
-		myconf_gn+=" enable_print_preview=false"
-		myconf_gn+=" enable_remoting=false"
-	else
-		myconf_gn+=" use_system_libdrm=true"
-		myconf_gn+=" use_system_minigbm=true"
-		myconf_gn+=" use_xkbcommon=true"
-		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
-		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
-		use wayland && myconf_gn+=" use_system_wayland_scanner=true"
-	fi
-
-	# Results in undefined references in chrome linking, may require CFI to work
-	if use arm64; then
-		myconf_gn+=" arm_control_flow_integrity=\"none\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=$(usex lto true false)"
-	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	if use pgo; then
-		myconf_gn+=" chrome_pgo_phase=${1}"
-		if [[ "$1" == "2" ]]; then
-			myconf_gn+=" pgo_data_path=\"${2}\""
-		fi
-	else
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
-	if use arm64 && tc-is-gcc; then
-		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
-			third_party/crc32c/src/src/crc32c_arm64.cc || die
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	chromium_configure $(usex pgo 1 0)
-}
-
-chromium_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-# This function is called from virtx, and must always return so that Xvfb
-# session isn't left running. If we return 1, virtx will call die().
-chromium_profile() {
-	einfo "Profiling for PGO"
-
-	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
-
-	# Remove old profdata in case profiling was interrupted.
-	rm -rf "${1}" || return 1
-
-	if ! "${EPYTHON}" ./chromium_profiler.py \
-		--chrome-executable "${S}/out/Release/chrome" \
-		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
-		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
-		--profile-output "${1}"; then
-		eerror "Profiling failed"
-		return 1
-	fi
-
-	popd >/dev/null || return 1
-}
-
-src_compile() {
-	if use pgo; then
-		local profdata
-
-		profdata="${WORKDIR}/chromium.profdata"
-
-		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
-			chromium_compile
-			virtx chromium_profile "$profdata"
-
-			touch "${WORKDIR}/.pgo-profiled" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
-			# Remove phase 1 output
-			rm -r out/Release || die
-
-			chromium_configure 2 "$profdata"
-
-			touch "${WORKDIR}/.pgo-phase-2-configured" || die
-		fi
-
-		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
-			chromium_compile
-			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
-		fi
-	else
-		chromium_compile
-	fi
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use X && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu && ! use headless; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if ! use headless; then
-		if use vaapi; then
-			elog "VA-API is disabled by default at runtime. You have to enable it"
-			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-			elog "in /etc/chromium/default."
-		fi
-		if use screencast; then
-			elog "Screencast is disabled by default at runtime. Either enable it"
-			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-		if use gtk4; then
-			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
-			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
-			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-		fi
-	fi
-}

diff --git a/www-client/chromium/files/chromium-104-tflite-system-zlib.patch b/www-client/chromium/files/chromium-104-tflite-system-zlib.patch
deleted file mode 100644
index 91ef5726bc8d..000000000000
--- a/www-client/chromium/files/chromium-104-tflite-system-zlib.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
-+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
-@@ -21,8 +21,8 @@ limitations under the License.
- #include "absl/status/status.h"        // from @com_google_absl
- #include "absl/strings/str_format.h"   // from @com_google_absl
- #include "absl/strings/string_view.h"  // from @com_google_absl
--#include "contrib/minizip/ioapi.h"
--#include "contrib/minizip/unzip.h"
-+#include "third_party/zlib/contrib/minizip/ioapi.h"
-+#include "third_party/zlib/contrib/minizip/unzip.h"
- #include "flatbuffers/flatbuffers.h"  // from @flatbuffers
- #include "tensorflow/lite/schema/schema_generated.h"
- #include "tensorflow_lite_support/cc/common.h"
---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
-+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
-@@ -19,8 +19,8 @@ limitations under the License.
- #include <cstring>
- #include <functional>
- 
--#include "contrib/minizip/ioapi.h"
--#include "contrib/minizip/zip.h"
-+#include "third_party/zlib/contrib/minizip/ioapi.h"
-+#include "third_party/zlib/contrib/minizip/zip.h"
- #include "flatbuffers/flatbuffers.h"  // from @flatbuffers
- #include "tensorflow/lite/schema/schema_generated.h"
- #include "tensorflow_lite_support/cc/common.h"
---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
-+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
-@@ -19,7 +19,7 @@ limitations under the License.
- #include <cstdio>
- 
- #include "absl/strings/string_view.h"  // from @com_google_absl
--#include "contrib/minizip/ioapi.h"
-+#include "third_party/zlib/contrib/minizip/ioapi.h"
- 
- namespace tflite {
- namespace metadata {
---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
-+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
-@@ -19,7 +19,7 @@ limitations under the License.
- #include <cstdlib>
- 
- #include "absl/strings/string_view.h"  // from @com_google_absl
--#include "contrib/minizip/ioapi.h"
-+#include "third_party/zlib/contrib/minizip/ioapi.h"
- 
- namespace tflite {
- namespace metadata {
---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
-+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
-@@ -19,7 +19,7 @@ limitations under the License.
- #include <cstdio>
- 
- #include "absl/strings/string_view.h"  // from @com_google_absl
--#include "contrib/minizip/ioapi.h"
-+#include "third_party/zlib/contrib/minizip/ioapi.h"
- 
- namespace tflite {
- namespace metadata {
---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
-+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
-@@ -19,7 +19,7 @@ limitations under the License.
- #include <cstdlib>
- 
- #include "absl/strings/string_view.h"  // from @com_google_absl
--#include "contrib/minizip/ioapi.h"
-+#include "third_party/zlib/contrib/minizip/ioapi.h"
- 
- namespace tflite {
- namespace metadata {


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-09-26 20:33 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-09-26 20:33 UTC (permalink / raw
  To: gentoo-commits

commit:     0af9c2e915acc1f39bd0363cfb96fab93679ac00
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 26 20:29:30 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Sep 26 20:31:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0af9c2e9

www-client/chromium: dev channel bump to 107.0.5304.10

Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |    2 +
 www-client/chromium/chromium-107.0.5304.10.ebuild  | 1205 ++++++++++++++++++++
 .../chromium/files/chromium-107-system-zlib.patch  |   10 +
 www-client/chromium/metadata.xml                   |    1 +
 4 files changed, 1218 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 3586e31fb5ae..6638dff5ba7c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,4 +3,6 @@ DIST chromium-105.0.5195.102.tar.xz 1597977496 BLAKE2B dada382717f8d48c87f586ba1
 DIST chromium-105.0.5195.125.tar.xz 1597584952 BLAKE2B 690c10de16bbb92b6b69950c378f16a469b29176ad57de6d1f0827358c1443c25c273b962c434bcca38f1868e4e762115b61ee292ada2d5be12e7d19fbbac0af SHA512 a8aaa24d779b69ee8173ed45006c9e7d6ada57de465cfa0a15720f3cd72d271f0560cedf8ae4aa0fde45ae6b750bb4577dcb23349d9cb49a036a7f0a4a5d68ac
 DIST chromium-106-patchset-2.tar.xz 6324 BLAKE2B acd848057ebc685149c77311a8394bbc6c17c9edb47ffda13855751e012794239175b3a9a19fa31645e39afaf321daf11b7bdc6156fa422a341685be55d88778 SHA512 0188e7c9511ffddf44dc7027a098b72345d29af7ed7d4d5d4cc353a2a78323d2931d1e9f3196a3d9a46d3eb69966018e8f4e1adc75dc2bc9742d9dbe2911f288
 DIST chromium-106.0.5249.51.tar.xz 1622278168 BLAKE2B 9f91f20df36f376e0a837bfb60518f17896535f1aeddb0d1733688b9954bfc5c591eca262354277905b70b71f8d1707d783ba3204edc1bc5162811d84c85b1c1 SHA512 0f34ffa646f06e3ff70564f1ac21c7ffbe294b7c7746f1ab20aa027924ae3000aacb96ddecb96c75d79b931abb76d5b6fd7ad03d5bec70350baf935176433fac
+DIST chromium-107-patchset-1.tar.xz 5736 BLAKE2B 581ca307d63635ef91aaa907aeebb8c735be6d6bbfcc3fe064fed7531b8848b5d918e017031ee606ed3bd8f0fc23aa6d2f8af4b36d33483dbeee2b5c8eacac82 SHA512 acbfb41c31a510a689cad3b0686e24925b018bd7a2a8f56f74b730dc36d878c266a11b3bb76b131e66f7b859f483ff00e16cbaae1b2b6944010c7396310c03b8
+DIST chromium-107.0.5304.10.tar.xz 1692683848 BLAKE2B dded32b4fb20013298136257ee4e4af9395c05125423c5899acfe562e1f1858a1f0763e76aaee3e546fa00474b9dfc8d981279cc38531164a1be1708288e7d2f SHA512 39405bc7885670013ed9a84bfad2f504a7f80a9e7de1661409560d9c54e8a0f82dc05393e35ce2063e6bdbfa323ea85d3b4b5051e462a2a7464004d80843f1b4
 DIST chromium-profiler-0.1.tar 269066240 BLAKE2B 6897387b63ff9a724b67f2e8799fe803dc75da376da809e752d19d6f5cf98bd84ac24161d07ac4a967577279e9ad5a8a46f0825332a7ee933a27693d6dc95611 SHA512 3fb6132599d28455d1b5c04d856ea7623e49b0b0b96f021c31d0952c4ba57d69d0a1cae6f0b91470a235221c89cc0d3bb38303ff02594ed0739712e6e2f8dbcc

diff --git a/www-client/chromium/chromium-107.0.5304.10.ebuild b/www-client/chromium/chromium-107.0.5304.10.ebuild
new file mode 100644
index 000000000000..fb48545c8189
--- /dev/null
+++ b/www-client/chromium/chromium-107.0.5304.10.ebuild
@@ -0,0 +1,1205 @@
+# Copyright 2009-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_REQ_USE="xml(+)"
+LLVM_MAX_SLOT=15
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+VIRTUALX_REQUIRED="pgo"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET="1"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+	pgo? ( https://blackhole.sk/~kabel/src/chromium-profiler-0.1.tar )"
+
+LICENSE="BSD"
+SLOT="0/dev"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid !libcxx )
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng] )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	system-av1? (
+		>=media-libs/dav1d-1.0.0:=
+		>=media-libs/libaom-3.4.0:=
+	)
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-sound/pulseaudio:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=x11-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-atk-2.26:2
+		>=app-accessibility/at-spi2-core-2.26:2
+		>=dev-libs/atk-2.26
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtwidgets:5
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		x11-misc/xdg-utils
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -gt 1 ]]; then
+		echo "|| ("
+		for _v in "$@"; do
+			echo "("
+			depend_clang_llvm_version "${_v}"
+			echo ")"
+		done
+		echo ")"
+	elif [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	libcxx? ( >=sys-devel/clang-12 )
+	lto? ( $(depend_clang_llvm_versions 13 14 15) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions 13 14 15)
+	)
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
+
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+			die "At least gcc 9.2 is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang || tc-is-clang; then
+			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
+			CPP+=" -E"
+			if ! ver_test "$(clang-major-version)" -ge 12; then
+				die "At least clang 12 is required"
+			fi
+		fi
+		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
+			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="12G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		CHECKREQS_DISK_BUILD="13G"
+		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
+		use pgo && CHECKREQS_DISK_BUILD="20G"
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-105-swiftshader-no-wayland.patch"
+		"${FILESDIR}/chromium-107-system-zlib.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-shim_headers.patch"
+		"${FILESDIR}/chromium-cross-compile.patch"
+	)
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/bidimapper
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit-html
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/libgifcodec
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libjxl
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/omnibox_proto
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pthreadpool
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if ! use system-av1; then
+		keep_libs+=(
+			third_party/dav1d
+			third_party/libaom
+			third_party/libaom/source/libaom/third_party/fastfeat
+			third_party/libaom/source/libaom/third_party/vector
+			third_party/libaom/source/libaom/third_party/x86inc
+		)
+	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
+	if use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng/utils )
+	else
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use wayland && ! use headless ; then
+		keeplibs+=( third_party/wayland )
+		# only need the .gn files
+		rm -r third_party/wayland/src || die
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	if use js-type-check; then
+		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+	fi
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto || use pgo; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if use system-av1; then
+		gn_system_libraries+=( dav1d libaom )
+	fi
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		myconf_gn+=" use_qt=$(usex qt5 true false)"
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		if use wayland; then
+			myconf_gn+=" use_system_libwayland_server=true"
+			myconf_gn+=" use_system_wayland_scanner=true"
+		fi
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-107-system-zlib.patch b/www-client/chromium/files/chromium-107-system-zlib.patch
new file mode 100644
index 000000000000..5ee7dccb7ab2
--- /dev/null
+++ b/www-client/chromium/files/chromium-107-system-zlib.patch
@@ -0,0 +1,10 @@
+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
+@@ -19,7 +19,6 @@ limitations under the License.
+ #include <cstdio>
+ 
+ #include "absl/strings/string_view.h"  // from @com_google_absl
+-#include "contrib/minizip/ioapi.h"
+ 
+ namespace tflite {
+ namespace metadata {

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 8d7ae046c973..cdb8b565f3f1 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -19,6 +19,7 @@
 		<flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
 		<flag name="proprietary-codecs">Enable codecs for patent-encumbered audio and video formats.</flag>
 		<flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>
+		<flag name="system-av1">Use system libaom and dav1d instead of the bundled one.</flag>
 		<flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
 		<flag name="system-harfbuzz">Use system harfbuzz instead of the bundled one.</flag>
 		<flag name="system-icu">Use system icu instead of the bundled one</flag>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-08-20 18:07 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-08-20 18:07 UTC (permalink / raw
  To: gentoo-commits

commit:     5d40295512183ee558a0ce9654abe23c6f41608e
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 20 18:05:23 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Aug 20 18:07:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d402955

www-client/chromium: beta channel bump to 105.0.5195.37

Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |    2 +
 www-client/chromium/chromium-105.0.5195.37.ebuild  | 1197 ++++++++++++++++++++
 .../chromium-105-swiftshader-no-wayland.patch      |   11 +
 3 files changed, 1210 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 70aa6c306f2e..0ad243ad7b73 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,4 +3,6 @@ DIST chromium-103.0.5060.134.tar.xz 1488286096 BLAKE2B 5750317f9998fa42d01a245ce
 DIST chromium-104-patchset-2.tar.xz 6168 BLAKE2B 57e9f2090315d2fa9baa0d285e40fd7809b35a897fba7684672d04850c2b59ea1bc11383654a8178ece2d4baa9bb2e248898d2435618b9e8a995461d6e92ac53 SHA512 f23effc604051c18acfad3bfb974efd4aa675b84135f4eb95e0dd97261dcc9099f283a8015854c375499370f4155bb9fad51fca59555ec2f41f2d7ab90be7208
 DIST chromium-104.0.5112.101.tar.xz 1510110428 BLAKE2B 33b5ac2339d88e03096f3ca8cba9b388eeea2f120ab137a38d3e6d0c03315136cfb9f01a4c7b52b5eb7e78921d00a502dfcab3c0cf167074fbc197490fd3866b SHA512 a955cee81e983212c27a972db8e4857000e626b5e85ce07db71b7f19a4f1a10b675fb4d3df055265681670b4166dc96a3b597a00cf60b837016be9c81e6972b1
 DIST chromium-104.0.5112.79.tar.xz 1509100404 BLAKE2B 06cb36a07c25d3957648b572fea8e9eb43e6f7d418864ac47e52332d22b050f886270080c3277f8c7014f2f3c1f6728cad7576fbc3496aecc8079115c017a843 SHA512 3c6814c6670ccb938a4d2502f36e89ba5ddec9ffdc7c201111054edad5f54a31a93d9fb34c2c04265788ea6f7a8f4391aa0878a0820eac45674a69eba443480d
+DIST chromium-105-patchset-1.tar.xz 9116 BLAKE2B 7728b83899e19b3c0ba4a69c660b68af7ea549a0144c15ab9fa972001441d9d145de20b7a1bafabf2b0667335b7436f6374c9934d4433160805c31bc743e867e SHA512 8f97aecf7b24c3f676bc74b88382dc4a5d967a090a4b4890971cb342973b0a20fd563c658b1c3fdaf036e830317d97470143ab78b28f336b315d491217368a81
+DIST chromium-105.0.5195.37.tar.xz 1597759960 BLAKE2B cda98fac8b4d7b0e4d9004c5cf896dee954048fecb331f92e8f69c2690ff0e21462622608b334e6fb7e6c47463efdd7ff3c2414b9b7d75be8fbc0badcb34ebc9 SHA512 f71012934146682c1f557117f46cf2996070aa2943048b12a419bbee537d8955aaaa283fcd8a4b803b7a4089bce12f167353a3f60cc7ab72b74225b5e706dce8
 DIST chromium-profiler-0.1.tar 269066240 BLAKE2B 6897387b63ff9a724b67f2e8799fe803dc75da376da809e752d19d6f5cf98bd84ac24161d07ac4a967577279e9ad5a8a46f0825332a7ee933a27693d6dc95611 SHA512 3fb6132599d28455d1b5c04d856ea7623e49b0b0b96f021c31d0952c4ba57d69d0a1cae6f0b91470a235221c89cc0d3bb38303ff02594ed0739712e6e2f8dbcc

diff --git a/www-client/chromium/chromium-105.0.5195.37.ebuild b/www-client/chromium/chromium-105.0.5195.37.ebuild
new file mode 100644
index 000000000000..d9ba1e2aaa5f
--- /dev/null
+++ b/www-client/chromium/chromium-105.0.5195.37.ebuild
@@ -0,0 +1,1197 @@
+# Copyright 2009-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="xml"
+LLVM_MAX_SLOT=14
+
+CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk ur vi zh-CN zh-TW"
+
+VIRTUALX_REQUIRED="pgo"
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET="1"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+	pgo? ( https://blackhole.sk/~kabel/src/chromium-profiler-0.1.tar )"
+
+LICENSE="BSD"
+SLOT="0/beta"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx lto +official pgo pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid !libcxx )
+	screencast? ( wayland )
+	!headless? ( || ( X wayland ) )
+	pgo? ( X !wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxshmfence:=
+"
+
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-71.1:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng] )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-sound/pulseaudio:= )
+		sys-apps/pciutils:=
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=x11-libs/libva-2.7:=[X?,wayland?] )
+		X? (
+			x11-libs/libX11:=
+			x11-libs/libXext:=
+			x11-libs/libxcb:=
+		)
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	media-libs/flac:=
+	sys-libs/zlib:=[minizip]
+	!headless? (
+		X? ( ${COMMON_X_DEPEND} )
+		>=app-accessibility/at-spi2-atk-2.26:2
+		>=app-accessibility/at-spi2-core-2.26:2
+		>=dev-libs/atk-2.26
+		media-libs/mesa:=[X?,wayland?]
+		cups? ( >=net-print/cups-1.3.11:= )
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/gdk-pixbuf:2
+		x11-libs/pango:=
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X?,wayland?]
+			gui-libs/gtk:4[X?,wayland?]
+		)
+		x11-misc/xdg-utils
+	)
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+	)
+"
+
+depend_clang_llvm_version() {
+	echo "sys-devel/clang:$1"
+	echo "sys-devel/llvm:$1"
+	echo "=sys-devel/lld-$1*"
+}
+
+depend_clang_llvm_versions() {
+	local _v
+	if [[ $# -gt 1 ]]; then
+		echo "|| ("
+		for _v in "$@"; do
+			echo "("
+			depend_clang_llvm_version "${_v}"
+			echo ")"
+		done
+		echo ")"
+	elif [[ $# -eq 1 ]]; then
+		depend_clang_llvm_version "$1"
+	fi
+}
+
+BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	libcxx? ( >=sys-devel/clang-12 )
+	lto? ( $(depend_clang_llvm_versions 13 14) )
+	pgo? (
+		>=dev-python/selenium-3.141.0
+		>=dev-util/web_page_replay_go-20220314
+		$(depend_clang_llvm_versions 13 14)
+	)
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	dev-vcs/git
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+needs_clang() {
+	[[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo
+}
+
+llvm_check_deps() {
+	if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+		einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+		einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+		return 1
+	fi
+
+	einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		[[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && ( use lto || use pgo ) && llvm_pkg_setup
+
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+			die "At least gcc 9.2 is required"
+		fi
+		if use pgo && tc-is-cross-compiler; then
+			die "The pgo USE flag cannot be used when cross-compiling"
+		fi
+		if needs_clang || tc-is-clang; then
+			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
+			CPP+=" -E"
+			if ! ver_test "$(clang-major-version)" -ge 12; then
+				die "At least clang 12 is required"
+			fi
+		fi
+		if [[ ${EBUILD_PHASE_FUNC} == pkg_setup ]] && use js-type-check; then
+			"${BROOT}"/usr/bin/java -version 2>1 > /dev/null || die "Java VM not setup correctly"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="11G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G"
+	if use lto || use pgo; then
+		CHECKREQS_MEMORY="9G"
+		CHECKREQS_DISK_BUILD="13G"
+		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G"
+		use pgo && CHECKREQS_DISK_BUILD="20G"
+	fi
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-104-tflite-system-zlib.patch"
+		"${FILESDIR}/chromium-105-swiftshader-no-wayland.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-shim_headers.patch"
+		"${FILESDIR}/chromium-cross-compile.patch"
+	)
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/content_analysis_sdk
+		third_party/cpuinfo
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/gn/webgpu-cts
+		third_party/dawn/third_party/khronos
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit-html
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/fp16
+		third_party/freetype
+		third_party/fusejs
+		third_party/fxdiv
+		third_party/highway
+		third_party/libgifcodec
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libevent
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libjxl
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pthreadpool
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+		third_party/swiftshader/third_party/SPIRV-Tools
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/utf
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/xnnpack
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
+	if use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng/utils )
+	else
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use wayland && ! use headless ; then
+		keeplibs+=( third_party/wayland )
+		# only need the .gn files
+		rm -r third_party/wayland/src || die
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		# requires git and clang, bug #832803
+		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \
+			generate_gni.sh || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+
+		pushd third_party/ffmpeg >/dev/null || die
+		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	if use js-type-check; then
+		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+	fi
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+chromium_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if needs_clang && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Force lld for lto or pgo builds only, otherwise disable, bug 641556
+	if use lto || use pgo; then
+		myconf_gn+=" use_lld=true"
+	else
+		myconf_gn+=" use_lld=false"
+	fi
+
+	if use lto || use pgo; then
+		AR=llvm-ar
+		NM=llvm-nm
+		if tc-is-cross-compiler; then
+			BUILD_AR=llvm-ar
+			BUILD_NM=llvm-nm
+		fi
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		libxml
+		libxslt
+		openh264
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Disable external code space for V8 for ppc64. It is disabled for ppc64
+	# by default, but cross-compiling on amd64 enables it again.
+	if tc-is-cross-compiler; then
+		if ! use amd64 && ! use arm64; then
+			myconf_gn+=" v8_enable_external_code_space=false"
+		fi
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
+
+	# Disable opaque pointers, https://crbug.com/1316298
+	if tc-is-clang; then
+		if test-flag-CXX -Xclang -no-opaque-pointers; then
+			append-flags -Xclang -no-opaque-pointers
+			if tc-is-cross-compiler; then
+				export BUILD_CXXFLAGS+=" -Xclang -no-opaque-pointers"
+				export BUILD_CFLAGS+=" -Xclang -no-opaque-pointers"
+			fi
+		fi
+	fi
+
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use headless; then
+		myconf_gn+=" ozone_platform=\"headless\""
+		myconf_gn+=" use_xkbcommon=false use_gtk=false"
+		myconf_gn+=" use_glib=false use_gio=false"
+		myconf_gn+=" use_pangocairo=false use_alsa=false"
+		myconf_gn+=" use_libpci=false use_udev=false"
+		myconf_gn+=" enable_print_preview=false"
+		myconf_gn+=" enable_remoting=false"
+	else
+		myconf_gn+=" use_system_libdrm=true"
+		myconf_gn+=" use_system_minigbm=true"
+		myconf_gn+=" use_xkbcommon=true"
+		myconf_gn+=" ozone_platform_x11=$(usex X true false)"
+		myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+		myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")"
+		use wayland && myconf_gn+=" use_system_wayland_scanner=true"
+	fi
+
+	# Results in undefined references in chrome linking, may require CFI to work
+	if use arm64; then
+		myconf_gn+=" arm_control_flow_integrity=\"none\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=$(usex lto true false)"
+	myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	if use pgo; then
+		myconf_gn+=" chrome_pgo_phase=${1}"
+		if [[ "$1" == "2" ]]; then
+			myconf_gn+=" pgo_data_path=\"${2}\""
+		fi
+	else
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	# user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639
+	if use arm64 && tc-is-gcc; then
+		sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \
+			third_party/crc32c/src/src/crc32c_arm64.cc || die
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	chromium_configure $(usex pgo 1 0)
+}
+
+chromium_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+# This function is called from virtx, and must always return so that Xvfb
+# session isn't left running. If we return 1, virtx will call die().
+chromium_profile() {
+	einfo "Profiling for PGO"
+
+	pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1
+
+	# Remove old profdata in case profiling was interrupted.
+	rm -rf "${1}" || return 1
+
+	if ! "${EPYTHON}" ./chromium_profiler.py \
+		--chrome-executable "${S}/out/Release/chrome" \
+		--chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \
+		--add-arg no-sandbox --add-arg disable-dev-shm-usage \
+		--profile-output "${1}"; then
+		eerror "Profiling failed"
+		return 1
+	fi
+
+	popd >/dev/null || return 1
+}
+
+src_compile() {
+	if use pgo; then
+		local profdata
+
+		profdata="${WORKDIR}/chromium.profdata"
+
+		if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then
+			chromium_compile
+			virtx chromium_profile "$profdata"
+
+			touch "${WORKDIR}/.pgo-profiled" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then
+			# Remove phase 1 output
+			rm -r out/Release || die
+
+			chromium_configure 2 "$profdata"
+
+			touch "${WORKDIR}/.pgo-phase-2-configured" || die
+		fi
+
+		if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then
+			chromium_compile
+			touch "${WORKDIR}/.pgo-phase-2-compiled" || die
+		fi
+	else
+		chromium_compile
+	fi
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use X && use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	if ! use system-icu && ! use headless; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+	fi
+}

diff --git a/www-client/chromium/files/chromium-105-swiftshader-no-wayland.patch b/www-client/chromium/files/chromium-105-swiftshader-no-wayland.patch
new file mode 100644
index 000000000000..71326dbd8011
--- /dev/null
+++ b/www-client/chromium/files/chromium-105-swiftshader-no-wayland.patch
@@ -0,0 +1,11 @@
+--- a/third_party/swiftshader/src/WSI/BUILD.gn
++++ b/third_party/swiftshader/src/WSI/BUILD.gn
+@@ -84,7 +84,7 @@ swiftshader_source_set("WSI") {
+     "../Vulkan:swiftshader_libvulkan_headers",
+   ]
+ 
+-  if (is_linux && !use_system_libwayland) {
++  if (is_linux && !use_system_libwayland && ozone_platform_wayland) {
+     # Use third-party targets
+     deps += [ "$wayland_gn_dir:wayland_client" ]
+   }


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-08-20  8:18 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-08-20  8:18 UTC (permalink / raw
  To: gentoo-commits

commit:     2197ac9c808d24fdf1f039cec0b9d40038a4e784
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 20 08:17:43 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Aug 20 08:18:03 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2197ac9c

www-client/chromium: fix building on arm64

Closes: https://bugs.gentoo.org/858587
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/chromium-104.0.5112.101.ebuild |  1 +
 .../chromium/files/chromium-104-v8-neon.patch      | 72 ++++++++++++++++++++++
 2 files changed, 73 insertions(+)

diff --git a/www-client/chromium/chromium-104.0.5112.101.ebuild b/www-client/chromium/chromium-104.0.5112.101.ebuild
index 21b76aac3497..21adbac9cf6b 100644
--- a/www-client/chromium/chromium-104.0.5112.101.ebuild
+++ b/www-client/chromium/chromium-104.0.5112.101.ebuild
@@ -316,6 +316,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
 		"${FILESDIR}/chromium-104-tflite-system-zlib.patch"
 		"${FILESDIR}/chromium-104-swiftshader-no-wayland.patch"
+		"${FILESDIR}/chromium-104-v8-neon.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"

diff --git a/www-client/chromium/files/chromium-104-v8-neon.patch b/www-client/chromium/files/chromium-104-v8-neon.patch
new file mode 100644
index 000000000000..ee573f8862e6
--- /dev/null
+++ b/www-client/chromium/files/chromium-104-v8-neon.patch
@@ -0,0 +1,72 @@
+From 0fc6592cf8867f0cd6d8d41b43392fb52d359649 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 07 Jun 2022 15:44:35 +0200
+Subject: [PATCH] GCC: fix compilation of NEON64 extract_first_nonzero_index
+
+GCC fails to compile extract_first_nonzero_index because of the
+signedness type mismatch in the NEON intrinsics.
+
+Bug: chromium:819294
+Change-Id: I9b73e5fa1d5fbf161740ab1b5d77f5c494369dfa
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3693709
+Reviewed-by: Toon Verwaest <verwaest@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#81063}
+---
+
+diff --git a/v8/src/objects/simd.cc b/v8/src/objects/simd.cc
+index d3cedfe..0a73b9c 100644
+--- a/v8/src/objects/simd.cc
++++ b/v8/src/objects/simd.cc
+@@ -95,24 +95,21 @@
+ }
+ 
+ template <>
+-inline int extract_first_nonzero_index(int32x4_t v) {
+-  int32x4_t mask = {4, 3, 2, 1};
++inline int extract_first_nonzero_index(uint32x4_t v) {
++  uint32x4_t mask = {4, 3, 2, 1};
+   mask = vandq_u32(mask, v);
+   return 4 - vmaxvq_u32(mask);
+ }
+ 
+ template <>
+-inline int extract_first_nonzero_index(int64x2_t v) {
+-  int32x4_t mask = {2, 0, 1, 0};  // Could also be {2,2,1,1} or {0,2,0,1}
+-  mask = vandq_u32(mask, vreinterpretq_s32_s64(v));
++inline int extract_first_nonzero_index(uint64x2_t v) {
++  uint32x4_t mask = {2, 0, 1, 0};  // Could also be {2,2,1,1} or {0,2,0,1}
++  mask = vandq_u32(mask, vreinterpretq_u32_u64(v));
+   return 2 - vmaxvq_u32(mask);
+ }
+ 
+-template <>
+-inline int extract_first_nonzero_index(float64x2_t v) {
+-  int32x4_t mask = {2, 0, 1, 0};  // Could also be {2,2,1,1} or {0,2,0,1}
+-  mask = vandq_u32(mask, vreinterpretq_s32_f64(v));
+-  return 2 - vmaxvq_u32(mask);
++inline int32_t reinterpret_vmaxvq_u64(uint64x2_t v) {
++  return vmaxvq_u32(vreinterpretq_u32_u64(v));
+ }
+ #endif
+ 
+@@ -204,14 +201,14 @@
+   }
+ #elif defined(NEON64)
+   if constexpr (std::is_same<T, uint32_t>::value) {
+-    VECTORIZED_LOOP_Neon(int32x4_t, int32x4_t, vdupq_n_u32, vceqq_u32,
++    VECTORIZED_LOOP_Neon(uint32x4_t, uint32x4_t, vdupq_n_u32, vceqq_u32,
+                          vmaxvq_u32)
+   } else if constexpr (std::is_same<T, uint64_t>::value) {
+-    VECTORIZED_LOOP_Neon(int64x2_t, int64x2_t, vdupq_n_u64, vceqq_u64,
+-                         vmaxvq_u32)
++    VECTORIZED_LOOP_Neon(uint64x2_t, uint64x2_t, vdupq_n_u64, vceqq_u64,
++                         reinterpret_vmaxvq_u64)
+   } else if constexpr (std::is_same<T, double>::value) {
+-    VECTORIZED_LOOP_Neon(float64x2_t, float64x2_t, vdupq_n_f64, vceqq_f64,
+-                         vmaxvq_f64)
++    VECTORIZED_LOOP_Neon(float64x2_t, uint64x2_t, vdupq_n_f64, vceqq_f64,
++                         reinterpret_vmaxvq_u64)
+   }
+ #else
+   UNREACHABLE();


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-03-11 17:10 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-03-11 17:10 UTC (permalink / raw
  To: gentoo-commits

commit:     ae3aa2dad804883530914df28ed53408f139398a
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 11 17:09:49 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Fri Mar 11 17:10:19 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae3aa2da

www-client/chromium: dev channel bump to 101.0.4929.5

Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 ++--
 ....4919.0.ebuild => chromium-101.0.4929.5.ebuild} |  3 +--
 .../chromium/files/chromium-101-system-icu.patch   | 26 ----------------------
 3 files changed, 3 insertions(+), 30 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4765553788af..abfdc1144c90 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,6 @@
 DIST chromium-100-patchset-4.tar.xz 5676 BLAKE2B aaa96413cc44ea75d2664b7d85130ca6f9ea4dfe736278806bb846baf97838fc1c8412b0320b8b22d5a2946fe1fb23fae244e297b924baafeb7a4983dab7e292 SHA512 3f88272d42f30112733e5e7473aec9dc31458386b34192ee34465b7045f63b0e8d496cddfc7efb2156cd8a9a84efd68437c1b194be13595cbe6e3736dcc187c9
 DIST chromium-100.0.4896.20.tar.xz 1351401408 BLAKE2B 34efdfc4a369c9d39b6002e07655984f39f01f491b7afed8bb77baf73e56b435d7fbb6e7eef0c44dcd081248a517f1d250955c25c693bb41fab944a0ebfe549d SHA512 5f28027968011dcb712dc3d771c6d112d4596e381a1418e01aa1f4cbd1ab03586fb641eddb4cacd5ea9c153353e09fdf563d263315af483c4f015b4db8e7235b
-DIST chromium-101-patchset-1.tar.xz 4864 BLAKE2B cb0d0b96778af773026bf423800ef1bd9e85625e554e3988185c6c6c9d1850500d436f0fb8a56e4d854adbc31f6d41e4b8b3ec6e4bf6dbb0f7db26084a55eee7 SHA512 3b30d08fde6c53b92f8809816750136fa6ba6e605975f22fcaea663c0f62119f80a9ac0d3f29e7a6ba7d2c3e6f5c45c63ea754249c3a018f45cec01366a8fb62
-DIST chromium-101.0.4919.0.tar.xz 1352317040 BLAKE2B 78b9d9a5f6d5cde318ab794bdcb322db706a8c03fb750703dcea26105f0f0d06d529e68f994b56c9b10ea257ed8a52f68384113dfcb2a30e1ea6143609eb59bd SHA512 b0e7969a442baea0a8665a31e4b452d84cd9318e0fd482c67bfff0d89f4c27d2f61745abaaf8f4d4ffda7a05c7b1310c8129f7d38ef2cfa9b46712208ad2048a
+DIST chromium-101-patchset-2.tar.xz 4172 BLAKE2B 9083a6b469f9d36886cc85b34fccafb8611bc29ac5980ce657988137748fe0d3797a2a7b243d0b3f58d963b8cf9147343a1b2a7a7003f62dc973013af9434943 SHA512 60c23fedf21408e0f81f61bc4b14e96f49db3322206498323739999fb3a12a7a0d79240c3ccbddda3820470264fd48fbccabbd23071828e0565bc5dd5467f51c
+DIST chromium-101.0.4929.5.tar.xz 1352192080 BLAKE2B f78b8854665d709b02b92125b68e6be87140e8da6e297e91b5146e97a5cf5737071324b3bef0537fa59f5e9c1f6a1843458bef7240f22c80183f5be50fafc2b7 SHA512 bf5729203c894ebf50af3cbcd56d5cecaa8b2459eba99d38f5501cb0f55af386fd98ce42bb10b6c0abbb88e65c62aeccdfe57f57f249982bc84512d3c3924aa6
 DIST chromium-99-patchset-3.tar.xz 3912 BLAKE2B 79030156e81ebd6b3c348fb429e23d0c866059e047e7cdc0f656a1b1ee290f3afa8b358d0e1df18a86616a35a9a256e7432a5ab4e9b952c7a360aed871236659 SHA512 63d951cb3d17c1d02d9ddbee3a44aca000c5ba2f908012584944ce7fc435aebfe39b9628d4bd043df97c4dd7afa0ad614c65368ca759b64a84654126f06f9ea8
 DIST chromium-99.0.4844.51.tar.xz 1316125164 BLAKE2B 5dc0c956b68301d48cd02af6ca2ac7330eaf46175038426587f7c7fe9baa228c25c17dc184f80f8b8fb6d069da981fcf1cb00231810bd70796dc4b0097cffc9b SHA512 85f81afa35907d59e7dee328c1c30d61a4106b8d5e9dabad4888c0a1962d8e4debfb88358417123979d8a4ad471acbf8d90c0a3bb2cc9bac5fef71b800bcc1af

diff --git a/www-client/chromium/chromium-101.0.4919.0.ebuild b/www-client/chromium/chromium-101.0.4929.5.ebuild
similarity index 99%
rename from www-client/chromium/chromium-101.0.4919.0.ebuild
rename to www-client/chromium/chromium-101.0.4929.5.ebuild
index 86e690d0f33d..909a2e05c304 100644
--- a/www-client/chromium/chromium-101.0.4919.0.ebuild
+++ b/www-client/chromium/chromium-101.0.4929.5.ebuild
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="1"
+PATCHSET="2"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
@@ -247,7 +247,6 @@ src_prepare() {
 		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
 		"${FILESDIR}/chromium-101-libxml-unbundle.patch"
-		"${FILESDIR}/chromium-101-system-icu.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"

diff --git a/www-client/chromium/files/chromium-101-system-icu.patch b/www-client/chromium/files/chromium-101-system-icu.patch
deleted file mode 100644
index 2e8557257da2..000000000000
--- a/www-client/chromium/files/chromium-101-system-icu.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From f5dc3a38095d2d303284c9fd97de5606c782294f Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 4 Mar 2022 21:27:55 +0000
-Subject: [PATCH] unbundle: fix function name in character_emoji
-
-GetFreezePatternMutex was defined but GetFreezePatternLock is called.
----
- third_party/blink/renderer/platform/text/character_emoji.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/blink/renderer/platform/text/character_emoji.cc b/third_party/blink/renderer/platform/text/character_emoji.cc
-index 9516966..6cb50dc 100644
---- a/third_party/blink/renderer/platform/text/character_emoji.cc
-+++ b/third_party/blink/renderer/platform/text/character_emoji.cc
-@@ -13,7 +13,7 @@
- #include <unicode/uniset.h>
- 
- namespace {
--base::Lock& GetFreezePatternMutex() {
-+base::Lock& GetFreezePatternLock() {
-   DEFINE_THREAD_SAFE_STATIC_LOCAL(base::Lock, lock, ());
-   return lock;
- }
--- 
-2.34.1
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-03-03 18:09 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-03-03 18:09 UTC (permalink / raw
  To: gentoo-commits

commit:     52824df723a9b604fb9741028a9e35b2e01af339
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  3 18:09:03 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Mar  3 18:09:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=52824df7

www-client/chromium: dev channel bump to 100.0.4896.20

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...896.12.ebuild => chromium-100.0.4896.20.ebuild} |  1 -
 .../chromium-100-FindByDottedPath-nullptr.patch    | 35 ----------------------
 3 files changed, 1 insertion(+), 37 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ee7887ff9efc..d55771717801 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-100-patchset-4.tar.xz 5676 BLAKE2B aaa96413cc44ea75d2664b7d85130ca6f9ea4dfe736278806bb846baf97838fc1c8412b0320b8b22d5a2946fe1fb23fae244e297b924baafeb7a4983dab7e292 SHA512 3f88272d42f30112733e5e7473aec9dc31458386b34192ee34465b7045f63b0e8d496cddfc7efb2156cd8a9a84efd68437c1b194be13595cbe6e3736dcc187c9
-DIST chromium-100.0.4896.12.tar.xz 1350939468 BLAKE2B c6fdb5142991ff58d426875463f43ac4c7622e865804b8c3577848cff4643113ae5fdeb6aad64e854f84ab1dc183cc0f4d7110895718424075b2d3ad156957ae SHA512 b04a8df2df44d3d747e52a5f778c5ad7046e6d8c52e6bbd1463e011a4211cf42dbd2ff52c4d4f146142387d67ee3fadcdf6f6cc526ab0a1fa5917525ce190a12
+DIST chromium-100.0.4896.20.tar.xz 1351401408 BLAKE2B 34efdfc4a369c9d39b6002e07655984f39f01f491b7afed8bb77baf73e56b435d7fbb6e7eef0c44dcd081248a517f1d250955c25c693bb41fab944a0ebfe549d SHA512 5f28027968011dcb712dc3d771c6d112d4596e381a1418e01aa1f4cbd1ab03586fb641eddb4cacd5ea9c153353e09fdf563d263315af483c4f015b4db8e7235b
 DIST chromium-98-patchset-5.tar.xz 4928 BLAKE2B f96fb34d5cb3c3ac2c6e327805322e5d6047b0b190a043795de1063c934ca6400800aafaaa4eea7ebad571298b96bf67e48ee0d2d1eb3e0bf23b14932734e026 SHA512 fae1010b91af7e6aa981ea22fc15c32a510b3e78ab71fec73b65290d963dfe6c42e5a2965446803519356858b60cd587018b1b2aea36e112e4d315efbdad7d8f
 DIST chromium-98.0.4758.102.tar.xz 1242565220 BLAKE2B f3c52961f62697108ee993fb2e5f2117d45f4ec3b1bd31a326f9b10cf3f5e62bbbc6b3dd5257da5fb248df6cf7ad5b8b169d6967ab952916d76a16951cdf81ad SHA512 7bcbeb8c8701b77e6143a811667dbc00d6b36a16b2256ced66d7ad49dafdb1f9fede61811e4ddd2aff478bda604aad5ce675261c2cb5f16722ff6d55bdf803a4
 DIST chromium-99-patchset-3.tar.xz 3912 BLAKE2B 79030156e81ebd6b3c348fb429e23d0c866059e047e7cdc0f656a1b1ee290f3afa8b358d0e1df18a86616a35a9a256e7432a5ab4e9b952c7a360aed871236659 SHA512 63d951cb3d17c1d02d9ddbee3a44aca000c5ba2f908012584944ce7fc435aebfe39b9628d4bd043df97c4dd7afa0ad614c65368ca759b64a84654126f06f9ea8

diff --git a/www-client/chromium/chromium-100.0.4896.12.ebuild b/www-client/chromium/chromium-100.0.4896.20.ebuild
similarity index 99%
rename from www-client/chromium/chromium-100.0.4896.12.ebuild
rename to www-client/chromium/chromium-100.0.4896.20.ebuild
index be7eb8d4d52b..72ca6cc04b28 100644
--- a/www-client/chromium/chromium-100.0.4896.12.ebuild
+++ b/www-client/chromium/chromium-100.0.4896.20.ebuild
@@ -246,7 +246,6 @@ src_prepare() {
 		"${FILESDIR}/chromium-97-arm-tflite-cast.patch"
 		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-100-FindByDottedPath-nullptr.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"

diff --git a/www-client/chromium/files/chromium-100-FindByDottedPath-nullptr.patch b/www-client/chromium/files/chromium-100-FindByDottedPath-nullptr.patch
deleted file mode 100644
index a8115a6741f8..000000000000
--- a/www-client/chromium/files/chromium-100-FindByDottedPath-nullptr.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From ae21059c1d1aed902da40dd7502fbca9c5cf8e3f Mon Sep 17 00:00:00 2001
-From: Daniel Cheng <dcheng@chromium.org>
-Date: Sat, 19 Feb 2022 21:38:32 -0800
-Subject: [PATCH] Add missing null check in base::Value::Dict::FindByDottedPath()
-
-This happens to not crash through sheer luck most of the time.
-`GetIfDict()`'s implementation looks like:
-
-  return absl::get_if<Value::Dict>(&data_);
-
-`data_` is the first member of `base::Value::Dict`, and so `&data_`
-evaluates to a null pointer. `absl::get_if<T>()` returns `nullptr` if
-the input pointer is null, so it happens to silently (but incorrectly)
-work most of the time.
-
-Fixed: 1299245
-Change-Id: I95ac65542b27f1ee0f7ce0bdec4575035a953820
-
-(without unittest)
----
-
-diff --git a/base/values.cc b/base/values.cc
-index 25feea9..fcb00bf 100644
---- a/base/values.cc
-+++ b/base/values.cc
-@@ -608,6 +608,9 @@
-     if (!splitter.HasNext()) {
-       return current_value;
-     }
-+    if (!current_value) {
-+      return nullptr;
-+    }
-     current_dict = current_value->GetIfDict();
-     if (!current_dict) {
-       return nullptr;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-02-20 14:12 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-02-20 14:12 UTC (permalink / raw
  To: gentoo-commits

commit:     daf3009f01504b783a89ce1823b471a546bd855e
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 20 14:11:16 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Feb 20 14:11:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=daf3009f

www-client/chromium: dev channel bump to 100.0.4892.0

Bug: https://bugs.gentoo.org/833619
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +--
 ....4878.0.ebuild => chromium-100.0.4892.0.ebuild} |  7 ++---
 .../chromium-100-FindByDottedPath-nullptr.patch    | 35 ++++++++++++++++++++++
 3 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4729cd5f5657..d4a77beb8b96 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
-DIST chromium-100-patchset-2.tar.xz 5236 BLAKE2B e16bec015bd76b0129168e3c74e616d650d6d3e289fca4ecbfe4488ac94da47ba040366c71f0218a0d667ed5e9be67ec490452e83db70dc5b52c468327770b6b SHA512 7acaaca93a7478f7086d01f3bbd24381b14063548106002af050d2a38375b5ad6480167c38b4d7f304774a33fb1ca7806e610970e293812fa843f7c1ee372804
-DIST chromium-100.0.4878.0.tar.xz 1347295152 BLAKE2B f0cf6120bbaad695607440b5ce504ed5922a3378e23000e87296a8634c26caedad7fa9be0f3554c36f7b9da408fc7fb96495951dbf5eef37485ce61f3d9de6bc SHA512 38878447548d01a3b3a0681955c06f448b3bfc9a589aa8610ac233cab50072cb1a11b6d43c24573d79d4837417ceebe8f8f5a0e2ec9d45b9e2251b74659a9435
+DIST chromium-100-patchset-3.tar.xz 4664 BLAKE2B a7f1798b115ad885d4341ba5081e3c3c8c02665d714cede0a65a4b81713e5feab0836ca04405351245603a3818fd4fd7422bdc826112f9972477a55451d5fbf5 SHA512 215d655572fd0629a1a9b7597b3cde27456608c37258818f8fa472e098408e318b2d49d8abc2ed7c5a3ef08130de97b20ab4c05a229feb0e7c9d0620b0431d3e
+DIST chromium-100.0.4892.0.tar.xz 1349973152 BLAKE2B c858d0fd76121ab03050b0265a6c969658317afa73b734ef7e91dcde5b13e1ccc3c59e0f5cacd5662ac062e6b6c572788d82a2714a1b380a988cb4db500e080a SHA512 fd6cd5e13a931e9e65132e93936064f0514d6285d91d31319a958fae37c8a96b70340b423e8b7f430209850255a13a9104e1d44ecb9038bb0617fc35cf38a5d3
 DIST chromium-98-patchset-5.tar.xz 4928 BLAKE2B f96fb34d5cb3c3ac2c6e327805322e5d6047b0b190a043795de1063c934ca6400800aafaaa4eea7ebad571298b96bf67e48ee0d2d1eb3e0bf23b14932734e026 SHA512 fae1010b91af7e6aa981ea22fc15c32a510b3e78ab71fec73b65290d963dfe6c42e5a2965446803519356858b60cd587018b1b2aea36e112e4d315efbdad7d8f
 DIST chromium-98.0.4758.102.tar.xz 1242565220 BLAKE2B f3c52961f62697108ee993fb2e5f2117d45f4ec3b1bd31a326f9b10cf3f5e62bbbc6b3dd5257da5fb248df6cf7ad5b8b169d6967ab952916d76a16951cdf81ad SHA512 7bcbeb8c8701b77e6143a811667dbc00d6b36a16b2256ced66d7ad49dafdb1f9fede61811e4ddd2aff478bda604aad5ce675261c2cb5f16722ff6d55bdf803a4
 DIST chromium-99-patchset-3.tar.xz 3912 BLAKE2B 79030156e81ebd6b3c348fb429e23d0c866059e047e7cdc0f656a1b1ee290f3afa8b358d0e1df18a86616a35a9a256e7432a5ab4e9b952c7a360aed871236659 SHA512 63d951cb3d17c1d02d9ddbee3a44aca000c5ba2f908012584944ce7fc435aebfe39b9628d4bd043df97c4dd7afa0ad614c65368ca759b64a84654126f06f9ea8

diff --git a/www-client/chromium/chromium-100.0.4878.0.ebuild b/www-client/chromium/chromium-100.0.4892.0.ebuild
similarity index 99%
rename from www-client/chromium/chromium-100.0.4878.0.ebuild
rename to www-client/chromium/chromium-100.0.4892.0.ebuild
index dea4a2b373c0..35bf83892d8b 100644
--- a/www-client/chromium/chromium-100.0.4878.0.ebuild
+++ b/www-client/chromium/chromium-100.0.4892.0.ebuild
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
+PATCHSET="3"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
@@ -120,7 +120,6 @@ DEPEND="${COMMON_DEPEND}
 		!gtk4? ( x11-libs/gtk+:3[X,wayland?] )
 	)
 "
-# dev-vcs/git - https://bugs.gentoo.org/593476
 BDEPEND="
 	${COMMON_SNAPSHOT_DEPEND}
 	${PYTHON_DEPS}
@@ -131,7 +130,6 @@ BDEPEND="
 	libcxx? ( >=sys-devel/clang-12 )
 	dev-lang/perl
 	>=dev-util/gn-0.1807
-	dev-vcs/git
 	>=dev-util/gperf-3.0.3
 	>=dev-util/ninja-1.7.2
 	>=net-libs/nodejs-7.6.0[inspector]
@@ -248,6 +246,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-97-arm-tflite-cast.patch"
 		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
+		"${FILESDIR}/chromium-100-FindByDottedPath-nullptr.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"
@@ -1000,7 +999,7 @@ pkg_postinst() {
 		if use screencast; then
 			elog "Screencast is disabled by default at runtime. Either enable it"
 			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-			elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
 			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
 		fi
 		if use gtk4; then

diff --git a/www-client/chromium/files/chromium-100-FindByDottedPath-nullptr.patch b/www-client/chromium/files/chromium-100-FindByDottedPath-nullptr.patch
new file mode 100644
index 000000000000..a8115a6741f8
--- /dev/null
+++ b/www-client/chromium/files/chromium-100-FindByDottedPath-nullptr.patch
@@ -0,0 +1,35 @@
+From ae21059c1d1aed902da40dd7502fbca9c5cf8e3f Mon Sep 17 00:00:00 2001
+From: Daniel Cheng <dcheng@chromium.org>
+Date: Sat, 19 Feb 2022 21:38:32 -0800
+Subject: [PATCH] Add missing null check in base::Value::Dict::FindByDottedPath()
+
+This happens to not crash through sheer luck most of the time.
+`GetIfDict()`'s implementation looks like:
+
+  return absl::get_if<Value::Dict>(&data_);
+
+`data_` is the first member of `base::Value::Dict`, and so `&data_`
+evaluates to a null pointer. `absl::get_if<T>()` returns `nullptr` if
+the input pointer is null, so it happens to silently (but incorrectly)
+work most of the time.
+
+Fixed: 1299245
+Change-Id: I95ac65542b27f1ee0f7ce0bdec4575035a953820
+
+(without unittest)
+---
+
+diff --git a/base/values.cc b/base/values.cc
+index 25feea9..fcb00bf 100644
+--- a/base/values.cc
++++ b/base/values.cc
+@@ -608,6 +608,9 @@
+     if (!splitter.HasNext()) {
+       return current_value;
+     }
++    if (!current_value) {
++      return nullptr;
++    }
+     current_dict = current_value->GetIfDict();
+     if (!current_dict) {
+       return nullptr;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-01-30  8:37 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-01-30  8:37 UTC (permalink / raw
  To: gentoo-commits

commit:     c65f1fb18943313a621d8cce43d0a68ebf65d2f4
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 30 08:36:59 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Jan 30 08:37:35 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c65f1fb1

www-client/chromium: dev channel bump to 99.0.4844.11

- improve headless builds
- fix cross compiling
- remove CHROMIUM_FORCE_LIBCXX and add USE=libcxx instead
- allow building with GTK4

Bug: https://bugs.gentoo.org/786597
Bug: https://bugs.gentoo.org/828442
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   4 +-
 ....4840.0.ebuild => chromium-99.0.4844.11.ebuild} | 242 +++++++++++++--------
 .../chromium/files/chromium-cross-compile.patch    |  12 +
 www-client/chromium/metadata.xml                   |   2 +
 4 files changed, 162 insertions(+), 98 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1a157501d7c6..3bcb68c6ac93 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,5 +2,5 @@ DIST chromium-97-patchset-4.tar.xz 4240 BLAKE2B 450d013b6fd68f7e0bcb21a2b0828d53
 DIST chromium-97.0.4692.99.tar.xz 1213731872 BLAKE2B e7fdf30f562fe6d50615b8213e762825d3b346c9c87e3512c957cc68dc75bf31b551b262f72801a3b0b51f2ff5ee31939dc7d4b2c2f005a4aaaec1c37983909d SHA512 928684286b5bbc15b0e60bdf3b1eb5d644f31d13baa0b55c652b9e302f48776fac367af99d89b85ff8258455551846f7efb4f11772b182aa743c6beff844e7d5
 DIST chromium-98-patchset-5.tar.xz 4928 BLAKE2B f96fb34d5cb3c3ac2c6e327805322e5d6047b0b190a043795de1063c934ca6400800aafaaa4eea7ebad571298b96bf67e48ee0d2d1eb3e0bf23b14932734e026 SHA512 fae1010b91af7e6aa981ea22fc15c32a510b3e78ab71fec73b65290d963dfe6c42e5a2965446803519356858b60cd587018b1b2aea36e112e4d315efbdad7d8f
 DIST chromium-98.0.4758.74.tar.xz 1242612520 BLAKE2B ed4beb62e04254508d2d8ebd35c69308f403954bd082cd8dce0f23c5f36df155193c96d3204d8cf9a4d8767ca5a692a32a199d30ada6363865b000f86650332f SHA512 dd9ba829d4d8e28299f84eeaffa8f94d30cdc3daa7709938886a31e67fcb6a458bfcb68be69b31a92872e028b76a88421a1a1e02cd44c7d78ed7e4fc4da18e45
-DIST chromium-99-patchset-2.tar.xz 4264 BLAKE2B 3c81029085931df7db5724845a9a1ef17fd19e1964cdb53f78cf0b8c3765ff81f97ccea344e4db853f780c14e18b6bf1839f0ef142906042385bfcde01364ab8 SHA512 14eef917ecab7668072834aac277d2faf32e9c2ca85268a7591b94ff69e9df331c0114da1ebcb92a332f8ad066eeaebd841a937e80198baf4649065b677cc2c3
-DIST chromium-99.0.4840.0.tar.xz 1315491932 BLAKE2B 7c01c962e604c8147d446cf0e9fd86538b7112d93a535ffdfd2a938462f0e9edf51c12bf01b068ff0d64776726bbfb04991fbfa0dcfedd428e7ee79610534559 SHA512 79f9b2e8f7e56ae0bcc49d1f5b7dc306d167dfc6b2652874b6f4fc795d63c6f4dc3bb74545ba586e57ba5e0a5f350eaf8ac1202953d9ed2f94b71198f494c907
+DIST chromium-99-patchset-3.tar.xz 3912 BLAKE2B 79030156e81ebd6b3c348fb429e23d0c866059e047e7cdc0f656a1b1ee290f3afa8b358d0e1df18a86616a35a9a256e7432a5ab4e9b952c7a360aed871236659 SHA512 63d951cb3d17c1d02d9ddbee3a44aca000c5ba2f908012584944ce7fc435aebfe39b9628d4bd043df97c4dd7afa0ad614c65368ca759b64a84654126f06f9ea8
+DIST chromium-99.0.4844.11.tar.xz 1315744804 BLAKE2B f91dfdca603d789dbc34eeb563868f7ae20a2946b2978db7455b3b9f332fd2a8a59f3aa408dd99f77b13074b47a9992fc2aea029116b3363156f76e306efdb69 SHA512 eb353fe470abffb8f99a4aa8b86991b43678786f8b0c456c676ebe000653ba938384cc135438f5bee9f39e236908b1acef6e12fa2b13880b69177b0f271fdec4

diff --git a/www-client/chromium/chromium-99.0.4840.0.ebuild b/www-client/chromium/chromium-99.0.4844.11.ebuild
similarity index 85%
rename from www-client/chromium/chromium-99.0.4840.0.ebuild
rename to www-client/chromium/chromium-99.0.4844.11.ebuild
index 539cfcc65eb4..ce883356d49c 100644
--- a/www-client/chromium/chromium-99.0.4840.0.ebuild
+++ b/www-client/chromium/chromium-99.0.4844.11.ebuild
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
+PATCHSET="3"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
@@ -21,44 +21,64 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD"
 SLOT="0/dev"
 KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+IUSE="component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless +js-type-check kerberos libcxx +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
 REQUIRED_USE="
-	component-build? ( !suid )
+	component-build? ( !suid !libcxx )
 	screencast? ( wayland )
 "
 
 COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm(+)]
-	x11-libs/libX11:=
+	x11-libs/gdk-pixbuf:2
 	x11-libs/libXcomposite:=
 	x11-libs/libXcursor:=
 	x11-libs/libXdamage:=
-	x11-libs/libXext:=
 	x11-libs/libXfixes:=
 	>=x11-libs/libXi-1.6.0:=
 	x11-libs/libXrandr:=
 	x11-libs/libXrender:=
 	x11-libs/libXtst:=
-	x11-libs/libxcb:=
 	x11-libs/libxshmfence:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+	virtual/opengl
 "
 
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
+COMMON_SNAPSHOT_DEPEND="
+	system-icu? ( >=dev-libs/icu-69.1:= )
 	>=dev-libs/libxml2-2.9.4-r3:=[icu]
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
+	!libcxx? ( >=dev-libs/re2-0.2019.08.01:= )
+	dev-libs/libxslt:=
 	media-libs/fontconfig:=
 	>=media-libs/freetype-2.11.0-r1:=
 	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
 	media-libs/libjpeg-turbo:=
 	system-png? ( media-libs/libpng:=[-apng] )
-	pulseaudio? ( media-sound/pulseaudio:= )
+	>=media-libs/libwebp-0.4.0:=
+	media-libs/mesa:=[gbm(+)]
+	>=media-libs/openh264-1.6.0:=
+	sys-libs/zlib:=
+	x11-libs/libdrm:=
+	!headless? (
+		dev-libs/glib:2
+		>=media-libs/alsa-lib-1.0.19:=
+		pulseaudio? ( media-sound/pulseaudio:= )
+		kerberos? ( virtual/krb5 )
+		vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+		x11-libs/libX11:=
+		x11-libs/libXext:=
+		x11-libs/libxcb:=
+		x11-libs/libxkbcommon:=
+		wayland? (
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+		)
+	)
+"
+
+COMMON_DEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
+	app-arch/bzip2:=
+	dev-libs/expat:=
 	system-ffmpeg? (
 		>=media-video/ffmpeg-4.3:=
 		|| (
@@ -69,45 +89,46 @@ COMMON_DEPEND="
 	)
 	net-misc/curl[ssl]
 	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/libxkbcommon:=
-	x11-libs/pango:=
 	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
 	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
 	!headless? (
 		${COMMON_X_DEPEND}
 		>=app-accessibility/at-spi2-atk-2.26:2
 		>=app-accessibility/at-spi2-core-2.26:2
 		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-		)
+		cups? ( >=net-print/cups-1.3.11:= )
+		sys-apps/pciutils:=
+		virtual/udev
+		x11-libs/cairo:=
+		x11-libs/pango:=
 	)
 "
 RDEPEND="${COMMON_DEPEND}
+	!headless? (
+		|| (
+			x11-libs/gtk+:3[X,wayland?]
+			gui-libs/gtk:4[X,wayland?]
+		)
+	)
 	x11-misc/xdg-utils
-	virtual/opengl
 	virtual/ttf-fonts
 	selinux? ( sec-policy/selinux-chromium )
 "
 DEPEND="${COMMON_DEPEND}
+	!headless? (
+		gtk4? ( gui-libs/gtk:4[X,wayland?] )
+		!gtk4? ( x11-libs/gtk+:3[X,wayland?] )
+	)
 "
 # dev-vcs/git - https://bugs.gentoo.org/593476
 BDEPEND="
+	${COMMON_SNAPSHOT_DEPEND}
 	${PYTHON_DEPS}
 	$(python_gen_any_dep '
 		dev-python/setuptools[${PYTHON_USEDEP}]
 	')
 	>=app-arch/gzip-1.7
+	libcxx? ( >=sys-devel/clang-12 )
 	dev-lang/perl
 	>=dev-util/gn-0.1807
 	dev-vcs/git
@@ -122,26 +143,11 @@ BDEPEND="
 
 # These are intended for ebuild maintainer use to force clang if GCC is broken.
 : ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
 	BDEPEND+=" >=sys-devel/clang-12"
 fi
 
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-12"
-	DEPEND+=" >=sys-libs/libcxx-12"
-else
-	COMMON_DEPEND="
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-69.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
 if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
 	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
 fi
@@ -185,8 +191,9 @@ pre_build_checks() {
 		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
 			die "At least gcc 9.2 is required"
 		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			CPP="${CHOST}-clang++ -E"
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang || use libcxx; then
+			tc-is-cross-compiler && CPP=${CBUILD}-clang++ || CPP=${CHOST}-clang++
+			CPP+=" -E"
 			if ! ver_test "$(clang-major-version)" -ge 12; then
 				die "At least clang 12 is required"
 			fi
@@ -196,6 +203,7 @@ pre_build_checks() {
 	# Check build requirements, bug #541816 and bug #471810 .
 	CHECKREQS_MEMORY="4G"
 	CHECKREQS_DISK_BUILD="9G"
+	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="12G"
 	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
 		if use custom-cflags || use component-build; then
 			CHECKREQS_DISK_BUILD="25G"
@@ -209,6 +217,13 @@ pre_build_checks() {
 
 pkg_pretend() {
 	pre_build_checks
+
+	if use headless; then
+		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "vaapi" "wayland")
+		for myiuse in ${headless_unused_flags[@]}; do
+			use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set."
+		done
+	fi
 }
 
 pkg_setup() {
@@ -236,6 +251,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-glibc-2.34-r1.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
+		"${FILESDIR}/chromium-cross-compile.patch"
 	)
 
 	default
@@ -492,6 +508,9 @@ src_prepare() {
 	if ! use system-png; then
 		keeplibs+=( third_party/libpng )
 	fi
+	if use libcxx; then
+		keeplibs+=( third_party/re2 )
+	fi
 	if use system-harfbuzz; then
 		keeplibs+=( third_party/harfbuzz-ng/utils )
 	else
@@ -500,15 +519,6 @@ src_prepare() {
 	if use wayland && ! use headless ; then
 		keeplibs+=( third_party/wayland )
 	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
 	if use arm64 || use ppc64 ; then
 		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
 	fi
@@ -542,19 +552,23 @@ src_configure() {
 	# Make sure the build system will use the right tools, bug #340795.
 	tc-export AR CC CXX NM
 
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
+	if { [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx; } && ! tc-is-clang; then
+		# Force clang since gcc is either broken or build is using libcxx.
+		if tc-is-cross-compiler; then
+			CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}"
+			CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}"
+			BUILD_CC=${CBUILD}-clang
+			BUILD_CXX=${CBUILD}-clang++
+		else
+			CC=${CHOST}-clang
+			CXX=${CHOST}-clang++
+		fi
 		strip-unsupported-flags
 	fi
 
-	if tc-is-clang; then
+	if tc-is-clang || use libcxx; then
 		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
 	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
 		myconf_gn+=" is_clang=false"
 	fi
 
@@ -565,6 +579,18 @@ src_configure() {
 		tc-export BUILD_{AR,CC,CXX,NM}
 		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
 		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" pkg_config=\"$(tc-get_PKG_CONFIG)\""
+		myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+
+		# setup cups-config, build system only uses --libs option
+		if use cups; then
+			mkdir "${T}/cups-config" || die
+			cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+			export PATH="${PATH}:${T}/cups-config"
+		fi
+
+		# Don't inherit PKG_CONFIG_PATH from environment
+		local -x PKG_CONFIG_PATH=
 	else
 		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
 	fi
@@ -600,6 +626,9 @@ src_configure() {
 		libdrm
 		libjpeg
 		libwebp
+		libxml
+		libxslt
+		openh264
 		zlib
 	)
 	if use system-ffmpeg; then
@@ -611,11 +640,8 @@ src_configure() {
 	if use system-png; then
 		gn_system_libraries+=( libpng )
 	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
+	# re2 library interface relies on std::string and std::vector
+	if ! use libcxx; then
 		gn_system_libraries+=( re2 )
 	fi
 	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
@@ -630,11 +656,21 @@ src_configure() {
 	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
 	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
 	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+
+	if use headless; then
+		myconf_gn+=" use_cups=false"
+		myconf_gn+=" use_kerberos=false"
+		myconf_gn+=" use_pulseaudio=false"
+		myconf_gn+=" use_vaapi=false"
+		myconf_gn+=" rtc_use_pipewire=false"
+	else
+		myconf_gn+=" use_cups=$(usex cups true false)"
+		myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+		myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+		myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+		myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+		myconf_gn+=" gtk_version=$(usex gtk4 4 3)"
+	fi
 
 	# TODO: link_pulseaudio=true for GN.
 
@@ -643,7 +679,8 @@ src_configure() {
 	# Never use bundled gold binary. Disable gold linker flags for now.
 	# Do not use bundled clang.
 	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)"
 
 	# Disable forced lld, bug 641556
 	myconf_gn+=" use_lld=false"
@@ -688,11 +725,6 @@ src_configure() {
 		fi
 	fi
 
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
 	if [[ $myarch = amd64 ]] ; then
 		myconf_gn+=" target_cpu=\"x64\""
 		ffmpeg_target_arch=x64
@@ -749,10 +781,16 @@ src_configure() {
 	fi
 
 	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
+	if tc-is-clang; then
+		append-flags -Wno-unknown-warning-option
+		if tc-is-cross-compiler; then
+			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+		fi
+	fi
 
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
+	# Explicitly disable ICU data file support for system-icu/headless builds.
+	if use system-icu || use headless; then
 		myconf_gn+=" icu_use_data_file=false"
 	fi
 
@@ -763,7 +801,12 @@ src_configure() {
 	if use wayland || use headless; then
 		if use headless; then
 			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
+			myconf_gn+=" use_xkbcommon=false use_gtk=false"
+			myconf_gn+=" use_glib=false use_gio=false"
+			myconf_gn+=" use_pangocairo=false use_alsa=false"
+			myconf_gn+=" use_libpci=false use_udev=false"
+			myconf_gn+=" enable_print_preview=false"
+			myconf_gn+=" enable_remoting=false"
 		else
 			myconf_gn+=" ozone_platform_wayland=true"
 			myconf_gn+=" use_system_libdrm=true"
@@ -897,7 +940,7 @@ src_install() {
 		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
 	)
 
-	if ! use system-icu; then
+	if ! use system-icu && ! use headless; then
 		doins out/Release/icudtl.dat
 	fi
 
@@ -947,15 +990,22 @@ pkg_postinst() {
 	xdg_desktop_database_update
 	readme.gentoo_print_elog
 
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. You have to enable it"
-		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-		elog "in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+	if ! use headless; then
+		if use vaapi; then
+			elog "VA-API is disabled by default at runtime. You have to enable it"
+			elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+			elog "in /etc/chromium/default."
+		fi
+		if use screencast; then
+			elog "Screencast is disabled by default at runtime. Either enable it"
+			elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+			elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
+		if use gtk4; then
+			elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+			elog "behavior you need to pass --gtk-version=4, e.g. by adding it"
+			elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+		fi
 	fi
 }

diff --git a/www-client/chromium/files/chromium-cross-compile.patch b/www-client/chromium/files/chromium-cross-compile.patch
new file mode 100644
index 000000000000..430ceb7a4924
--- /dev/null
+++ b/www-client/chromium/files/chromium-cross-compile.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@ gcc_toolchain("host") {
+   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/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index dcdaa4ce4a04..b97df5c6f029 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -9,8 +9,10 @@
 		<flag name="js-type-check">Enable JavaScript type-checking for Chrome's web technology-based UI. Requires Java.</flag>
 		<flag name="component-build">Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>
 		<flag name="debug">Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>
+		<flag name="gtk4">Build with GTK4 headers.</flag>
 		<flag name="headless">Build Ozone only with headless backend, NOT RECOMMENDED for general use.</flag>
 		<flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag>
+		<flag name="libcxx">Use bundled libc++ instead of libstdc++ for building.</flag>
 		<flag name="official">Enable Official build instead of Developer build.</flag>
 		<flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
 		<flag name="proprietary-codecs">Enable codecs for patent-encumbered audio and video formats.</flag>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-01-24  9:33 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-01-24  9:33 UTC (permalink / raw
  To: gentoo-commits

commit:     1a9e3fb2365b41893c688580123a49ad64068d4a
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 24 09:32:53 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Jan 24 09:33:18 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a9e3fb2

www-client/chromium: dev channel bump to 99.0.4840.0

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +--
 ...0.4818.0.ebuild => chromium-99.0.4840.0.ebuild} |  4 +--
 .../files/chromium-97-fix-tag-dragging-i3.patch    | 35 ----------------------
 3 files changed, 4 insertions(+), 39 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0032f9f4b6ad..815d9898c11f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,5 +2,5 @@ DIST chromium-97-patchset-4.tar.xz 4240 BLAKE2B 450d013b6fd68f7e0bcb21a2b0828d53
 DIST chromium-97.0.4692.99.tar.xz 1213731872 BLAKE2B e7fdf30f562fe6d50615b8213e762825d3b346c9c87e3512c957cc68dc75bf31b551b262f72801a3b0b51f2ff5ee31939dc7d4b2c2f005a4aaaec1c37983909d SHA512 928684286b5bbc15b0e60bdf3b1eb5d644f31d13baa0b55c652b9e302f48776fac367af99d89b85ff8258455551846f7efb4f11772b182aa743c6beff844e7d5
 DIST chromium-98-patchset-5.tar.xz 4928 BLAKE2B f96fb34d5cb3c3ac2c6e327805322e5d6047b0b190a043795de1063c934ca6400800aafaaa4eea7ebad571298b96bf67e48ee0d2d1eb3e0bf23b14932734e026 SHA512 fae1010b91af7e6aa981ea22fc15c32a510b3e78ab71fec73b65290d963dfe6c42e5a2965446803519356858b60cd587018b1b2aea36e112e4d315efbdad7d8f
 DIST chromium-98.0.4758.66.tar.xz 1242209580 BLAKE2B 0e905caf6bee24ca357f3dcdadd0f105ea41f156030062b8b02febd15b73b3f1b774093c8f5bf23c7afa2863f342a85f6c994a9bf5aa3c8d0dc0310ef12c7db9 SHA512 0a05ca92ac114ed33523d7067c857834942ce533c77a3212f76b50c3e8e673d0b8d697d61e465e4ce8f7aab4a0d4b381682c48107321b394f93d2b20a0117e10
-DIST chromium-99-patchset-1.tar.xz 5076 BLAKE2B 3cc721ac21e56cb4b80a3377d8aaf354b56159662fc2b90c3f369496f7abcef1755313d8d8b8e44361fffb21023d68260ce8a41f58481ce12d93ae794e56d210 SHA512 97212a16cd59c1ab80d79425a2bda7742d3dbe68f4d47550651c88fbb8f7f286f70f8692aec8e69be8676c4c6b3c2ad8716bccab943ae4435290c1b6ba91dd81
-DIST chromium-99.0.4818.0.tar.xz 1313012452 BLAKE2B 6c31f15049295046e9c0ea12c6ed8fcd614548e724960c68c1fdee16828a4cdbd189c07b6da9cd59903897f6cbd206acbb1f9f6441ab77180c29fb4fb40f788b SHA512 3a96a9c8529cb6b01f9d765418d71cc5eac1c318ebcc50200e066ed3f44ec0dbfb6b43b313e5fcf5e78ab84304ea663ae162b7870538eeb38922ab53b83bd33b
+DIST chromium-99-patchset-2.tar.xz 4264 BLAKE2B 3c81029085931df7db5724845a9a1ef17fd19e1964cdb53f78cf0b8c3765ff81f97ccea344e4db853f780c14e18b6bf1839f0ef142906042385bfcde01364ab8 SHA512 14eef917ecab7668072834aac277d2faf32e9c2ca85268a7591b94ff69e9df331c0114da1ebcb92a332f8ad066eeaebd841a937e80198baf4649065b677cc2c3
+DIST chromium-99.0.4840.0.tar.xz 1315491932 BLAKE2B 7c01c962e604c8147d446cf0e9fd86538b7112d93a535ffdfd2a938462f0e9edf51c12bf01b068ff0d64776726bbfb04991fbfa0dcfedd428e7ee79610534559 SHA512 79f9b2e8f7e56ae0bcc49d1f5b7dc306d167dfc6b2652874b6f4fc795d63c6f4dc3bb74545ba586e57ba5e0a5f350eaf8ac1202953d9ed2f94b71198f494c907

diff --git a/www-client/chromium/chromium-99.0.4818.0.ebuild b/www-client/chromium/chromium-99.0.4840.0.ebuild
similarity index 99%
rename from www-client/chromium/chromium-99.0.4818.0.ebuild
rename to www-client/chromium/chromium-99.0.4840.0.ebuild
index b2d9fb16d746..539cfcc65eb4 100644
--- a/www-client/chromium/chromium-99.0.4818.0.ebuild
+++ b/www-client/chromium/chromium-99.0.4840.0.ebuild
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="1"
+PATCHSET="2"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
@@ -230,7 +230,6 @@ src_prepare() {
 	local PATCHES=(
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-97-fix-tag-dragging-i3.patch"
 		"${FILESDIR}/chromium-97-arm-tflite-cast.patch"
 		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-system-libdrm.patch"
@@ -312,6 +311,7 @@ src_prepare() {
 		third_party/devscripts
 		third_party/devtools-frontend
 		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
 		third_party/devtools-frontend/src/front_end/third_party/axe-core
 		third_party/devtools-frontend/src/front_end/third_party/chromium
 		third_party/devtools-frontend/src/front_end/third_party/codemirror

diff --git a/www-client/chromium/files/chromium-97-fix-tag-dragging-i3.patch b/www-client/chromium/files/chromium-97-fix-tag-dragging-i3.patch
deleted file mode 100644
index e31f0112478f..000000000000
--- a/www-client/chromium/files/chromium-97-fix-tag-dragging-i3.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 98715f8730c5f389976538848e58401db66f9b5d Mon Sep 17 00:00:00 2001
-From: Marco Genasci <fedeliallalinea@gmail.com>
-Date: Wed, 12 Jan 2022 16:11:15 +0100
-Subject: [PATCH 2/2] [X11] Fix tag dragging in i3
-
-ref: https://bugs.chromium.org/p/chromium/issues/detail?id=1279532
-caused by: https://bugs.chromium.org/p/chromium/issues/detail?id=1263023
-Patch from:
-https://chromium-review.googlesource.com/c/chromium/src/+/3381679
----
- ui/platform_window/x11/x11_topmost_window_finder.cc | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
-index e20bf0abf..c9c672c60 100644
---- a/ui/platform_window/x11/x11_topmost_window_finder.cc
-+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
-@@ -42,12 +42,12 @@ bool EnumerateChildren(ShouldStopIteratingCallback should_stop_iterating,
-   // reverse-iterate the list to check the windows from top-to-bottom.
-   std::vector<x11::Window>::reverse_iterator iter;
-   for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
--    if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
--      return true;
-     if (depth < max_depth) {
-       if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth + 1))
-         return true;
-     }
-+    if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
-+      return true;
-   }
- 
-   return false;
--- 
-2.34.1
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-01-23 18:05 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-01-23 18:05 UTC (permalink / raw
  To: gentoo-commits

commit:     1f36f78345f36b2a80b882f7b1512f111b9b88dd
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 23 18:05:37 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Jan 23 18:05:53 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f36f783

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/831624
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 -
 .../chromium/chromium-97.0.4692.71-r1.ebuild       | 963 ---------------------
 .../files/chromium-97-fix-tag-dragging.patch       |  52 --
 3 files changed, 1016 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0c3a40d96f81..0032f9f4b6ad 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,4 @@
 DIST chromium-97-patchset-4.tar.xz 4240 BLAKE2B 450d013b6fd68f7e0bcb21a2b0828d531eda86965e636fe24fc36c2e7e1f74fe93f27f0d4b1d03e67c605797e28db37de4949ff78d5106e07b0362bec4bc5d8a SHA512 181c706c83bdbe07b2e7f02b654922a860aea761ad267e6545fb7d56b66373b003c1c79fae5cd45eeb3be8917782fa45df1c05bbb00e170f0146e7385f4246c4
-DIST chromium-97.0.4692.71.tar.xz 1213607776 BLAKE2B 203cea4fbc2dabda7e8f85c1caf0c98207c2e22b27a39720a7155b32a72eb61ae9f8551d67b5ba93f5fcb17cc41ccc6d5492ad8defb60c6f3aa48b13a2884021 SHA512 4087950d5353b6fa824de5aeb43a578b0b2361d5a2f32977814f13c75ff0c5ab5f9bd5f70f6331c1e16654733ac2c1d0b5023d856171ea658658336ff3424af4
 DIST chromium-97.0.4692.99.tar.xz 1213731872 BLAKE2B e7fdf30f562fe6d50615b8213e762825d3b346c9c87e3512c957cc68dc75bf31b551b262f72801a3b0b51f2ff5ee31939dc7d4b2c2f005a4aaaec1c37983909d SHA512 928684286b5bbc15b0e60bdf3b1eb5d644f31d13baa0b55c652b9e302f48776fac367af99d89b85ff8258455551846f7efb4f11772b182aa743c6beff844e7d5
 DIST chromium-98-patchset-5.tar.xz 4928 BLAKE2B f96fb34d5cb3c3ac2c6e327805322e5d6047b0b190a043795de1063c934ca6400800aafaaa4eea7ebad571298b96bf67e48ee0d2d1eb3e0bf23b14932734e026 SHA512 fae1010b91af7e6aa981ea22fc15c32a510b3e78ab71fec73b65290d963dfe6c42e5a2965446803519356858b60cd587018b1b2aea36e112e4d315efbdad7d8f
 DIST chromium-98.0.4758.66.tar.xz 1242209580 BLAKE2B 0e905caf6bee24ca357f3dcdadd0f105ea41f156030062b8b02febd15b73b3f1b774093c8f5bf23c7afa2863f342a85f6c994a9bf5aa3c8d0dc0310ef12c7db9 SHA512 0a05ca92ac114ed33523d7067c857834942ce533c77a3212f76b50c3e8e673d0b8d697d61e465e4ce8f7aab4a0d4b381682c48107321b394f93d2b20a0117e10

diff --git a/www-client/chromium/chromium-97.0.4692.71-r1.ebuild b/www-client/chromium/chromium-97.0.4692.71-r1.ebuild
deleted file mode 100644
index 1534ae2ed09e..000000000000
--- a/www-client/chromium/chromium-97.0.4692.71-r1.ebuild
+++ /dev/null
@@ -1,963 +0,0 @@
-# Copyright 2009-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="4"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="amd64 ~arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm(+)]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxcb:=
-	x11-libs/libxshmfence:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng] )
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/libxkbcommon:=
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	!headless? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-12"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-12"
-	DEPEND+=" >=sys-libs/libcxx-12"
-else
-	COMMON_DEPEND="
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-69.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			CPP="${CHOST}-clang++ -E"
-			if ! ver_test "$(clang-major-version)" -ge 12; then
-				die "At least clang 12 is required"
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="9G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-97-arm64-mte-clang.patch"
-		"${FILESDIR}/chromium-97-fix-tag-dragging.patch"
-		"${FILESDIR}/chromium-97-fix-tag-dragging-i3.patch"
-		"${FILESDIR}/chromium-97-arm-tflite-cast.patch"
-		"${FILESDIR}/chromium-glibc-2.34.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-	)
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/khronos
-		third_party/dawn/third_party/tint
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/fusejs
-		third_party/highway
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/fastfeat
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/tcmalloc
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng/utils )
-	else
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	myconf_gn+=" ozone_platform_x11=$(usex headless false true)"
-	if use wayland || use headless; then
-		if use headless; then
-			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
-		else
-			myconf_gn+=" ozone_platform_wayland=true"
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	else
-		myconf_gn+=" ozone_platform=\"x11\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=false"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-		# Don't add symbols to build
-		myconf_gn+=" symbol_level=0"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. You have to enable it"
-		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-		elog "in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-}

diff --git a/www-client/chromium/files/chromium-97-fix-tag-dragging.patch b/www-client/chromium/files/chromium-97-fix-tag-dragging.patch
deleted file mode 100644
index 6afd5a78ec05..000000000000
--- a/www-client/chromium/files/chromium-97-fix-tag-dragging.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 692ed3e237fc645253fff3fbb932ad45a525a7ba Mon Sep 17 00:00:00 2001
-From: Marco Genasci <fedeliallalinea@gmail.com>
-Date: Wed, 12 Jan 2022 16:08:41 +0100
-Subject: [PATCH 1/2] [X11] Fix tag dragging in Mutter and KWin
-
-ref: https://bugs.chromium.org/p/chromium/issues/detail?id=1279532
-caused by: https://bugs.chromium.org/p/chromium/issues/detail?id=1263023
-Patches from:
-https://chromium-review.googlesource.com/c/chromium/src/+/3373204
-https://chromium-review.googlesource.com/c/chromium/src/+/3355376
----
- .../x11/x11_topmost_window_finder.cc            | 17 +++++------------
- 1 file changed, 5 insertions(+), 12 deletions(-)
-
-diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
-index 50e75e17f..e20bf0abf 100644
---- a/ui/platform_window/x11/x11_topmost_window_finder.cc
-+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
-@@ -44,15 +44,8 @@ bool EnumerateChildren(ShouldStopIteratingCallback should_stop_iterating,
-   for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
-     if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
-       return true;
--  }
--
--  // If we're at this point, we didn't find the window we're looking for at the
--  // current level, so we need to recurse to the next level.  We use a second
--  // loop because the recursion and call to XQueryTree are expensive and is only
--  // needed for a small number of cases.
--  if (++depth <= max_depth) {
--    for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
--      if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth))
-+    if (depth < max_depth) {
-+      if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth + 1))
-         return true;
-     }
-   }
-@@ -68,9 +61,9 @@ bool EnumerateAllWindows(ShouldStopIteratingCallback should_stop_iterating,
- 
- void EnumerateTopLevelWindows(
-     ui::ShouldStopIteratingCallback should_stop_iterating) {
--  // Some WMs parent 'top-level' windows in unnamed actual top-level windows
--  // (ion WM), so extend the search depth to all children of top-level windows.
--  const int kMaxSearchDepth = 1;
-+  // WMs may reparent toplevel windows inside their own containers, so extend
-+  // the search to all grandchildren of all toplevel windows.
-+  const int kMaxSearchDepth = 2;
-   ui::EnumerateAllWindows(should_stop_iterating, kMaxSearchDepth);
- }
- 
--- 
-2.34.1
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-01-23 18:03 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-01-23 18:03 UTC (permalink / raw
  To: gentoo-commits

commit:     78178da86f07ac4fff8db334a98559a083a896c5
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 23 18:03:26 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Jan 23 18:03:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78178da8

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/830642
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   3 -
 www-client/chromium/chromium-96.0.4664.110.ebuild  | 968 ---------------------
 .../files/chromium-96-freetype-unbundle.patch      |  10 -
 3 files changed, 981 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 3008592257d4..0c3a40d96f81 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,3 @@
-DIST chromium-96-patchset-4.tar.xz 4812 BLAKE2B 5d82d212b8ec1689be6f4a7a0646256311d06c17e74ee0e5b2035c32125a5235e4b6b7605cefffa367cc53e651be17b75f5e339149b4c80dca50cd959b1623f1 SHA512 a72c1bb2c58e9e2912a641093c153f01ad7239dc971c7c96481ba4164204afe41741f3253e8af03070dab8276179784dc6a11761b39ad7902ed2553016778282
-DIST chromium-96-ppc64le-1.tar.xz 29224 BLAKE2B 3369a3b15eb4f42761e01758135995a1f34e40cecbfc0372a4bc17b393d50b276ea5a0813d1c57f73f0dd34cf2a021356d25c2b4dcaa95998ffc082545dc915c SHA512 256d64fbf192e55d77c6580d36766a67dadfbd0f1e34e49bfc6d55114da7f2252d783db0dd09123996a71a01ec4a3d5c70fd1a5c8852db135857b8495f7cfbf1
-DIST chromium-96.0.4664.110.tar.xz 1209944416 BLAKE2B 1cec11b248b9225e47caf6bf8ec243e301bb63df2b0a070fb55b829b712e513b2510944f72306cebde3715704cae5b2c6be83847e91b358cb5135b56d55255b3 SHA512 7db962dc7016f531c33e915408303f06f429b53d1c5a69b281e64f6204d4bdb413fd281c3d891bb696d846f80f6182289c10f4b19b3b4c2c8b7fd72070de3f02
 DIST chromium-97-patchset-4.tar.xz 4240 BLAKE2B 450d013b6fd68f7e0bcb21a2b0828d531eda86965e636fe24fc36c2e7e1f74fe93f27f0d4b1d03e67c605797e28db37de4949ff78d5106e07b0362bec4bc5d8a SHA512 181c706c83bdbe07b2e7f02b654922a860aea761ad267e6545fb7d56b66373b003c1c79fae5cd45eeb3be8917782fa45df1c05bbb00e170f0146e7385f4246c4
 DIST chromium-97.0.4692.71.tar.xz 1213607776 BLAKE2B 203cea4fbc2dabda7e8f85c1caf0c98207c2e22b27a39720a7155b32a72eb61ae9f8551d67b5ba93f5fcb17cc41ccc6d5492ad8defb60c6f3aa48b13a2884021 SHA512 4087950d5353b6fa824de5aeb43a578b0b2361d5a2f32977814f13c75ff0c5ab5f9bd5f70f6331c1e16654733ac2c1d0b5023d856171ea658658336ff3424af4
 DIST chromium-97.0.4692.99.tar.xz 1213731872 BLAKE2B e7fdf30f562fe6d50615b8213e762825d3b346c9c87e3512c957cc68dc75bf31b551b262f72801a3b0b51f2ff5ee31939dc7d4b2c2f005a4aaaec1c37983909d SHA512 928684286b5bbc15b0e60bdf3b1eb5d644f31d13baa0b55c652b9e302f48776fac367af99d89b85ff8258455551846f7efb4f11772b182aa743c6beff844e7d5

diff --git a/www-client/chromium/chromium-96.0.4664.110.ebuild b/www-client/chromium/chromium-96.0.4664.110.ebuild
deleted file mode 100644
index c46e097f6912..000000000000
--- a/www-client/chromium/chromium-96.0.4664.110.ebuild
+++ /dev/null
@@ -1,968 +0,0 @@
-# Copyright 2009-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="4"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-PPC64LE_PATCHSET="1"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-$(ver_cut 1)-ppc64le-${PPC64LE_PATCHSET}.tar.xz )"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="amd64 arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm(+)]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxcb:=
-	x11-libs/libxshmfence:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-png? ( media-libs/libpng:=[-apng] )
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/libxkbcommon:=
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	!headless? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:0/0.3 )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-12"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-12"
-	DEPEND+=" >=sys-libs/libcxx-12"
-else
-	COMMON_DEPEND="
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-69.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			CPP="${CHOST}-clang++ -E"
-			if ! ver_test "$(clang-major-version)" -ge 12; then
-				die "At least clang 12 is required"
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="9G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-96-freetype-unbundle.patch"
-		"${FILESDIR}/chromium-glibc-2.34.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-	)
-
-	use ppc64 && PATCHES+=( "${WORKDIR}/${PN}-ppc64le" )
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/khronos
-		third_party/dawn/third_party/tint
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/distributed_point_functions
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/fusejs
-		third_party/highway
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/fastfeat
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/maldoca
-		third_party/maldoca/src/third_party/tensorflow_protos
-		third_party/maldoca/src/third_party/zlibwrapper
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/snappy
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/tcmalloc
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-png; then
-		keeplibs+=( third_party/libpng )
-	fi
-	if use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng/utils )
-	else
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-png; then
-		gn_system_libraries+=( libpng )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# highway/libjxl fail on ppc64 without extra patches, disable for now.
-	use ppc64 && myconf_gn+=" enable_jxl_decoder=false"
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	myconf_gn+=" ozone_platform_x11=$(usex headless false true)"
-	if use wayland || use headless; then
-		if use headless; then
-			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
-		else
-			myconf_gn+=" ozone_platform_wayland=true"
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	else
-		myconf_gn+=" ozone_platform=\"x11\""
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=false"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-
-	# Build vk_swiftshader_icd.json; bug #827861
-	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
-		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
-		out/Release/vk_swiftshader_icd.json || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	ozone_auto_session () {
-		use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-	doins -r out/Release/MEIPreload
-
-	# Install vk_swiftshader_icd.json; bug #827861
-	doins out/Release/vk_swiftshader_icd.json
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. You have to enable it"
-		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-		elog "in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-}

diff --git a/www-client/chromium/files/chromium-96-freetype-unbundle.patch b/www-client/chromium/files/chromium-96-freetype-unbundle.patch
deleted file mode 100644
index 6ef5ff6832c7..000000000000
--- a/www-client/chromium/files/chromium-96-freetype-unbundle.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/build/linux/BUILD.gn
-+++ b/build/linux/BUILD.gn
-@@ -23,6 +23,7 @@
-   # 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",
-     ]


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-01-12 18:53 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-01-12 18:53 UTC (permalink / raw
  To: gentoo-commits

commit:     c33c6f564944ad947b8e736abc6cfe53708a49b6
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 12 18:52:39 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Jan 12 18:52:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c33c6f56

www-client/chromium: dev channel bump to 99.0.4818.0

Bug: https://bugs.gentoo.org/830990
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +
 www-client/chromium/chromium-99.0.4818.0.ebuild    | 960 +++++++++++++++++++++
 .../files/chromium-97-fix-tag-dragging-i3.patch    |  35 +
 .../chromium/files/chromium-glibc-2.34-r1.patch    |  20 +
 4 files changed, 1017 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a7edb8cc9a01..da690c88b8db 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -5,3 +5,5 @@ DIST chromium-97-patchset-4.tar.xz 4240 BLAKE2B 450d013b6fd68f7e0bcb21a2b0828d53
 DIST chromium-97.0.4692.71.tar.xz 1213607776 BLAKE2B 203cea4fbc2dabda7e8f85c1caf0c98207c2e22b27a39720a7155b32a72eb61ae9f8551d67b5ba93f5fcb17cc41ccc6d5492ad8defb60c6f3aa48b13a2884021 SHA512 4087950d5353b6fa824de5aeb43a578b0b2361d5a2f32977814f13c75ff0c5ab5f9bd5f70f6331c1e16654733ac2c1d0b5023d856171ea658658336ff3424af4
 DIST chromium-98-patchset-4.tar.xz 5332 BLAKE2B a3c7e1774e421c4937b39c984e2f39ff13ebc68a8d9f658ffe4ffe8ea381efb99250516bd5f7286f384fd2e0187a8d3410e57223555c9400db4a0cf63c23944e SHA512 7c92787f79a0cc41806bca9277de7bff41da9bc5d713bfeb22214d7103a7833fe000b46cd18b21d621f9baec6d70a58c3158a4903ad9121f999b13f1af9ca1b7
 DIST chromium-98.0.4758.9.tar.xz 1234078444 BLAKE2B ac214ae340f53ea55d1e1a7d0484d3696a5781b98247e3c2e3e909e8a25dad9d1bfb135693ba58900c66eb5f8fcf5462fb96ccef65ebbba3ddd65708463932dd SHA512 82cde4c157dc1029c54e15b332eb78e3da5fce1a26f449c45afa99502e84407732593f53211fdca4301ecbb4e9860dff43cd48611ab4490df295f404c71d7abb
+DIST chromium-99-patchset-1.tar.xz 5076 BLAKE2B 3cc721ac21e56cb4b80a3377d8aaf354b56159662fc2b90c3f369496f7abcef1755313d8d8b8e44361fffb21023d68260ce8a41f58481ce12d93ae794e56d210 SHA512 97212a16cd59c1ab80d79425a2bda7742d3dbe68f4d47550651c88fbb8f7f286f70f8692aec8e69be8676c4c6b3c2ad8716bccab943ae4435290c1b6ba91dd81
+DIST chromium-99.0.4818.0.tar.xz 1313012452 BLAKE2B 6c31f15049295046e9c0ea12c6ed8fcd614548e724960c68c1fdee16828a4cdbd189c07b6da9cd59903897f6cbd206acbb1f9f6441ab77180c29fb4fb40f788b SHA512 3a96a9c8529cb6b01f9d765418d71cc5eac1c318ebcc50200e066ed3f44ec0dbfb6b43b313e5fcf5e78ab84304ea663ae162b7870538eeb38922ab53b83bd33b

diff --git a/www-client/chromium/chromium-99.0.4818.0.ebuild b/www-client/chromium/chromium-99.0.4818.0.ebuild
new file mode 100644
index 000000000000..709268237eb6
--- /dev/null
+++ b/www-client/chromium/chromium-99.0.4818.0.ebuild
@@ -0,0 +1,960 @@
+# Copyright 2009-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET="1"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0/dev"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid )
+	screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+	media-libs/mesa:=[gbm(+)]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxcb:=
+	x11-libs/libxshmfence:=
+	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/expat:=
+	dev-libs/glib:2
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng] )
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/libxkbcommon:=
+	x11-libs/pango:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+	!headless? (
+		${COMMON_X_DEPEND}
+		>=app-accessibility/at-spi2-atk-2.26:2
+		>=app-accessibility/at-spi2-core-2.26:2
+		>=dev-libs/atk-2.26
+		x11-libs/gtk+:3[X]
+		wayland? (
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:= )
+			x11-libs/gtk+:3[wayland,X]
+			x11-libs/libdrm:=
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+	RDEPEND+=" >=sys-libs/libcxx-12"
+	DEPEND+=" >=sys-libs/libcxx-12"
+else
+	COMMON_DEPEND="
+		dev-libs/libxslt:=
+		>=dev-libs/re2-0.2019.08.01:=
+		>=media-libs/openh264-1.6.0:=
+		system-icu? ( >=dev-libs/icu-69.1:= )
+	"
+	RDEPEND+="${COMMON_DEPEND}"
+	DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+			die "At least gcc 9.2 is required"
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			CPP="${CHOST}-clang++ -E"
+			if ! ver_test "$(clang-major-version)" -ge 12; then
+				die "At least clang 12 is required"
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="9G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-97-fix-tag-dragging-i3.patch"
+		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-98-system-libdrm.patch"
+		"${FILESDIR}/chromium-glibc-2.34-r1.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-shim_headers.patch"
+	)
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/khronos
+		third_party/dawn/third_party/tint
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit-html
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/freetype
+		third_party/fusejs
+		third_party/highway
+		third_party/libgifcodec
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libjxl
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/opencv
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/tcmalloc
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/usrsctp
+		third_party/utf
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng/utils )
+	else
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use wayland && ! use headless ; then
+		keeplibs+=( third_party/wayland )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libxml )
+		keeplibs+=( third_party/libxslt )
+		keeplibs+=( third_party/openh264 )
+		keeplibs+=( third_party/re2 )
+		if use system-icu; then
+			keeplibs+=( third_party/icu )
+		fi
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	if use js-type-check; then
+		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+	fi
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+			die "Compiling with sys-libs/libcxx requires clang."
+		fi
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+		gn_system_libraries+=( libxml )
+		gn_system_libraries+=( libxslt )
+		gn_system_libraries+=( openh264 )
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+		fi
+	fi
+
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		append-flags -stdlib=libc++
+		append-ldflags -stdlib=libc++
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Disable unknown warning message from clang.
+	tc-is-clang && append-flags -Wno-unknown-warning-option
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	myconf_gn+=" ozone_platform_x11=$(usex headless false true)"
+	if use wayland || use headless; then
+		if use headless; then
+			myconf_gn+=" ozone_platform=\"headless\""
+			myconf_gn+=" use_x11=false"
+		else
+			myconf_gn+=" ozone_platform_wayland=true"
+			myconf_gn+=" use_system_libdrm=true"
+			myconf_gn+=" use_system_minigbm=true"
+			myconf_gn+=" use_xkbcommon=true"
+			myconf_gn+=" ozone_platform=\"wayland\""
+		fi
+	else
+		myconf_gn+=" ozone_platform=\"x11\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=false"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+
+	# Build vk_swiftshader_icd.json; bug #827861
+	sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \
+		third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \
+		out/Release/vk_swiftshader_icd.json || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/MEIPreload
+
+	# Install vk_swiftshader_icd.json; bug #827861
+	doins out/Release/vk_swiftshader_icd.json
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if use vaapi; then
+		elog "VA-API is disabled by default at runtime. You have to enable it"
+		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+		elog "in /etc/chromium/default."
+	fi
+	if use screencast; then
+		elog "Screencast is disabled by default at runtime. Either enable it"
+		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+	fi
+}

diff --git a/www-client/chromium/files/chromium-97-fix-tag-dragging-i3.patch b/www-client/chromium/files/chromium-97-fix-tag-dragging-i3.patch
new file mode 100644
index 000000000000..e31f0112478f
--- /dev/null
+++ b/www-client/chromium/files/chromium-97-fix-tag-dragging-i3.patch
@@ -0,0 +1,35 @@
+From 98715f8730c5f389976538848e58401db66f9b5d Mon Sep 17 00:00:00 2001
+From: Marco Genasci <fedeliallalinea@gmail.com>
+Date: Wed, 12 Jan 2022 16:11:15 +0100
+Subject: [PATCH 2/2] [X11] Fix tag dragging in i3
+
+ref: https://bugs.chromium.org/p/chromium/issues/detail?id=1279532
+caused by: https://bugs.chromium.org/p/chromium/issues/detail?id=1263023
+Patch from:
+https://chromium-review.googlesource.com/c/chromium/src/+/3381679
+---
+ ui/platform_window/x11/x11_topmost_window_finder.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
+index e20bf0abf..c9c672c60 100644
+--- a/ui/platform_window/x11/x11_topmost_window_finder.cc
++++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
+@@ -42,12 +42,12 @@ bool EnumerateChildren(ShouldStopIteratingCallback should_stop_iterating,
+   // reverse-iterate the list to check the windows from top-to-bottom.
+   std::vector<x11::Window>::reverse_iterator iter;
+   for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
+-    if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
+-      return true;
+     if (depth < max_depth) {
+       if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth + 1))
+         return true;
+     }
++    if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
++      return true;
+   }
+ 
+   return false;
+-- 
+2.34.1
+

diff --git a/www-client/chromium/files/chromium-glibc-2.34-r1.patch b/www-client/chromium/files/chromium-glibc-2.34-r1.patch
new file mode 100644
index 000000000000..0747b4f1cedb
--- /dev/null
+++ b/www-client/chromium/files/chromium-glibc-2.34-r1.patch
@@ -0,0 +1,20 @@
+--- a/sandbox/linux/services/credentials.cc
++++ b/sandbox/linux/services/credentials.cc
+@@ -11,6 +11,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+@@ -100,7 +101,8 @@ bool ChrootToSafeEmptyDir() {
+   // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f.
+   clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
+ 
+-  char tls_buf[PTHREAD_STACK_MIN] = {0};
++  char tls_buf[PTHREAD_STACK_MIN];
++  memset(tls_buf, 0, PTHREAD_STACK_MIN);
+   tls = tls_buf;
+ #endif
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2022-01-03 18:20 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2022-01-03 18:20 UTC (permalink / raw
  To: gentoo-commits

commit:     955fd16c7f4bb915f6ba5531443b8df8fb220632
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  3 18:19:31 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Jan  3 18:20:18 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=955fd16c

www-client/chromium: fix build on arm64 with clang (M97)

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/chromium-97.0.4692.71.ebuild   |  3 +-
 .../files/chromium-97-arm64-mte-clang.patch        | 34 ++++++++++++++++++++++
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/chromium-97.0.4692.71.ebuild b/www-client/chromium/chromium-97.0.4692.71.ebuild
index bf72c0ce4bb4..65119a3ae012 100644
--- a/www-client/chromium/chromium-97.0.4692.71.ebuild
+++ b/www-client/chromium/chromium-97.0.4692.71.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2009-2021 Gentoo Authors
+# Copyright 2009-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -231,6 +231,7 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-97-arm64-mte-clang.patch"
 		"${FILESDIR}/chromium-glibc-2.34.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"

diff --git a/www-client/chromium/files/chromium-97-arm64-mte-clang.patch b/www-client/chromium/files/chromium-97-arm64-mte-clang.patch
new file mode 100644
index 000000000000..e86110bfb0ea
--- /dev/null
+++ b/www-client/chromium/files/chromium-97-arm64-mte-clang.patch
@@ -0,0 +1,34 @@
+From c04406585217092f85f3188dab4875b7be78af1d Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 02 Dec 2021 16:56:39 +0000
+Subject: [PATCH] base: enable mte via -Xclang instead
+
+-march is fragile as it may get overridden later on by
+e.g. distributors.
+
+Bug: 1137393
+Change-Id: Ia6b98491ef6f955929d0699e9f435844de48e1da
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3310965
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
+Cr-Commit-Position: refs/heads/main@{#947530}
+---
+
+diff --git a/base/BUILD.gn b/base/BUILD.gn
+index df6293d..eaa02b7 100644
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -104,7 +104,12 @@
+     # but they're not backwards compatible. Use base::CPU::has_mte()
+     # beforehand to confirm or use indirect functions (ifuncs) to select
+     # an MTE-specific implementation at dynamic link-time.
+-    cflags = [ "-march=armv8-a+memtag" ]
++    cflags = [
++      "-Xclang",
++      "-target-feature",
++      "-Xclang",
++      "+mte",
++    ]
+   }
+ }
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-11-22 16:03 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-11-22 16:03 UTC (permalink / raw
  To: gentoo-commits

commit:     572543329f9479c9b454fe97917b4d3f3b3cf8ca
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 22 16:02:58 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Nov 22 16:02:58 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57254332

www-client/chromium: dev channel bump to 98.0.4710.4

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +
 www-client/chromium/chromium-98.0.4710.4.ebuild    | 956 +++++++++++++++++++++
 .../files/chromium-98-EnumTable-crash.patch        |  76 ++
 .../chromium/files/chromium-98-system-libdrm.patch |  34 +
 www-client/chromium/metadata.xml                   |   1 +
 5 files changed, 1069 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d2577b96d37c..25a784ab1d5e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,3 +4,5 @@ DIST chromium-96-patchset-4.tar.xz 4812 BLAKE2B 5d82d212b8ec1689be6f4a7a06462563
 DIST chromium-96.0.4664.45.tar.xz 1221965612 BLAKE2B e990a2c3f0ae6d8bc4b6dddbecea2c640bb6491d9b321a301c1f168a35ad37553a23b8290a28dc05d50be005d3ad57fa69af2d3574266b9c83dcd24e65116c35 SHA512 0b1ccaf95697c14cb080dcb22e8584817ddcd98e704d081bc4f35a22dcfc8cca82dcabc4b82ad89ed0cd64752d226f389941bfab33b615e3948e2f778b9d9028
 DIST chromium-97-patchset-4.tar.xz 4240 BLAKE2B 450d013b6fd68f7e0bcb21a2b0828d531eda86965e636fe24fc36c2e7e1f74fe93f27f0d4b1d03e67c605797e28db37de4949ff78d5106e07b0362bec4bc5d8a SHA512 181c706c83bdbe07b2e7f02b654922a860aea761ad267e6545fb7d56b66373b003c1c79fae5cd45eeb3be8917782fa45df1c05bbb00e170f0146e7385f4246c4
 DIST chromium-97.0.4692.20.tar.xz 1225705204 BLAKE2B fd972611d2f6fdd385a7b33dd6ecb73a09804c6f94c8f4b8663efac1aada87df778c1f6172594e3b8cd9fcce404f0b32ff80998cb996a18428efb04e8ed179db SHA512 3cd83efb93c88052e1f4b80342247536ec999bb2fffa3fd0394ef21d805de734b9582be4b82f65de1cfd8acc53c5118e7e9a2719a1279f6d1a22aefcf22bd9d7
+DIST chromium-98-patchset-1.tar.xz 3792 BLAKE2B c35ec4b6343de1c8257fa8581ab05bdaee9d385947fb888bed461f90588405da74acdde5ba4dd9941574b96d54a95e54d7240da6f5d818b389f0aa37db5deb85 SHA512 95cc123557549be6675c8e4f4d70af12b0fab3e592543b826dc9326d4a74b84fe62ded380c8130e70c198595c1f1a4ef08f289956ded8856fbdaf02831221f9b
+DIST chromium-98.0.4710.4.tar.xz 1222819976 BLAKE2B 1af16bcecf4be8f53b4c8f41c9fca18014a72a69fe2703aa7119c2228338ba75c76e4fc2eefa098279228ea4c13e16235bc8f642cd6597e424830fb9774cace3 SHA512 256b695d41a7810beb3f75e23ab0aead25f10dd60af0cc5b3379c0f821e9161e08b5bac3633d38afd36f110342698263d0c5de36c84bb6de8747b35f3c546180

diff --git a/www-client/chromium/chromium-98.0.4710.4.ebuild b/www-client/chromium/chromium-98.0.4710.4.ebuild
new file mode 100644
index 000000000000..27f45f3e4b5d
--- /dev/null
+++ b/www-client/chromium/chromium-98.0.4710.4.ebuild
@@ -0,0 +1,956 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET="1"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0/dev"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid )
+	screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+	media-libs/mesa:=[gbm(+)]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxcb:=
+	x11-libs/libxshmfence:=
+	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/expat:=
+	dev-libs/glib:2
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0-r1:=
+	system-harfbuzz? ( >=media-libs/harfbuzz-2.9.0:0=[icu(-)] )
+	media-libs/libjpeg-turbo:=
+	system-png? ( media-libs/libpng:=[-apng] )
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/libxkbcommon:=
+	x11-libs/pango:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+	!headless? (
+		${COMMON_X_DEPEND}
+		>=app-accessibility/at-spi2-atk-2.26:2
+		>=app-accessibility/at-spi2-core-2.26:2
+		>=dev-libs/atk-2.26
+		x11-libs/gtk+:3[X]
+		wayland? (
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:0/0.3 )
+			x11-libs/gtk+:3[wayland,X]
+			x11-libs/libdrm:=
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+	RDEPEND+=" >=sys-libs/libcxx-12"
+	DEPEND+=" >=sys-libs/libcxx-12"
+else
+	COMMON_DEPEND="
+		dev-libs/libxslt:=
+		>=dev-libs/re2-0.2019.08.01:=
+		>=media-libs/openh264-1.6.0:=
+		system-icu? ( >=dev-libs/icu-69.1:= )
+	"
+	RDEPEND+="${COMMON_DEPEND}"
+	DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+			die "At least gcc 9.2 is required"
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			CPP="${CHOST}-clang++ -E"
+			if ! ver_test "$(clang-major-version)" -ge 12; then
+				die "At least clang 12 is required"
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="4G"
+	CHECKREQS_DISK_BUILD="9G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-98-system-libdrm.patch"
+		"${FILESDIR}/chromium-glibc-2.34.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-shim_headers.patch"
+	)
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/khronos
+		third_party/dawn/third_party/tint
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit-html
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/freetype
+		third_party/fusejs
+		third_party/highway
+		third_party/libgifcodec
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libjxl
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/maldoca
+		third_party/maldoca/src/third_party/tensorflow_protos
+		third_party/maldoca/src/third_party/zlibwrapper
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/opencv
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/snappy
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/tcmalloc
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/usrsctp
+		third_party/utf
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-png; then
+		keeplibs+=( third_party/libpng )
+	fi
+	if use system-harfbuzz; then
+		keeplibs+=( third_party/harfbuzz-ng/utils )
+	else
+		keeplibs+=( third_party/harfbuzz-ng )
+	fi
+	if use wayland && ! use headless ; then
+		keeplibs+=( third_party/wayland )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libxml )
+		keeplibs+=( third_party/libxslt )
+		keeplibs+=( third_party/openh264 )
+		keeplibs+=( third_party/re2 )
+		if use system-icu; then
+			keeplibs+=( third_party/icu )
+		fi
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	if use js-type-check; then
+		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+	fi
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+			die "Compiling with sys-libs/libcxx requires clang."
+		fi
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libwebp
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-png; then
+		gn_system_libraries+=( libpng )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+		gn_system_libraries+=( libxml )
+		gn_system_libraries+=( libxslt )
+		gn_system_libraries+=( openh264 )
+		gn_system_libraries+=( re2 )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+		fi
+	fi
+
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		append-flags -stdlib=libc++
+		append-ldflags -stdlib=libc++
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+	# Disable unknown warning message from clang.
+	tc-is-clang && append-flags -Wno-unknown-warning-option
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	myconf_gn+=" ozone_platform_x11=$(usex headless false true)"
+	if use wayland || use headless; then
+		if use headless; then
+			myconf_gn+=" ozone_platform=\"headless\""
+			myconf_gn+=" use_x11=false"
+		else
+			myconf_gn+=" ozone_platform_wayland=true"
+			myconf_gn+=" use_system_libdrm=true"
+			myconf_gn+=" use_system_minigbm=true"
+			myconf_gn+=" use_xkbcommon=true"
+			myconf_gn+=" ozone_platform=\"wayland\""
+		fi
+	else
+		myconf_gn+=" ozone_platform=\"x11\""
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=false"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+		# Don't add symbols to build
+		myconf_gn+=" symbol_level=0"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
+	local -x PYTHONPATH=
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/chrome_crashpad_handler
+
+	ozone_auto_session () {
+		use wayland && ! use headless && echo true || echo false
+	}
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+	doins -r out/Release/MEIPreload
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if use vaapi; then
+		elog "VA-API is disabled by default at runtime. You have to enable it"
+		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+		elog "in /etc/chromium/default."
+	fi
+	if use screencast; then
+		elog "Screencast is disabled by default at runtime. Either enable it"
+		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+	fi
+}

diff --git a/www-client/chromium/files/chromium-98-EnumTable-crash.patch b/www-client/chromium/files/chromium-98-EnumTable-crash.patch
new file mode 100644
index 000000000000..f058ec18327a
--- /dev/null
+++ b/www-client/chromium/files/chromium-98-EnumTable-crash.patch
@@ -0,0 +1,76 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index 842553a..89de703 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -8,6 +8,7 @@
+ #include <cstdint>
+ #include <cstring>
+ #include <ostream>
++#include <vector>
+ 
+ #include "base/check_op.h"
+ #include "base/notreached.h"
+@@ -187,7 +188,6 @@ class
+   inline constexpr GenericEnumTableEntry(int32_t value);
+   inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
+ 
+-  GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
+   GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
+ 
+  private:
+@@ -253,7 +253,6 @@ class EnumTable {
+     constexpr Entry(E value, base::StringPiece str)
+         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+ 
+-    Entry(const Entry&) = delete;
+     Entry& operator=(const Entry&) = delete;
+   };
+ 
+@@ -312,15 +311,14 @@ class EnumTable {
+     if (is_sorted_) {
+       const std::size_t index = static_cast<std::size_t>(value);
+       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+-        const auto& entry = data_.begin()[index];
++        const auto& entry = data_[index];
+         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+           return entry.str();
+       }
+       return absl::nullopt;
+     }
+     return GenericEnumTableEntry::FindByValue(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), static_cast<int32_t>(value));
++        &data_[0], data_.size(), static_cast<int32_t>(value));
+   }
+ 
+   // This overload of GetString is designed for cases where the argument is a
+@@ -348,8 +346,7 @@ class EnumTable {
+   // enum value directly.
+   absl::optional<E> GetEnum(base::StringPiece str) const {
+     auto* entry = GenericEnumTableEntry::FindByString(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), str);
++        &data_[0], data_.size(), str);
+     return entry ? static_cast<E>(entry->value) : absl::optional<E>();
+   }
+ 
+@@ -364,7 +361,7 @@ class EnumTable {
+   // Align the data on a cache line boundary.
+   alignas(64)
+ #endif
+-      std::initializer_list<Entry> data_;
++      const std::vector<Entry> data_;
+   bool is_sorted_;
+ 
+   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -376,8 +373,8 @@ class EnumTable {
+ 
+     for (std::size_t i = 0; i < data.size(); i++) {
+       for (std::size_t j = i + 1; j < data.size(); j++) {
+-        const Entry& ei = data.begin()[i];
+-        const Entry& ej = data.begin()[j];
++        const Entry& ei = data[i];
++        const Entry& ej = data[j];
+         DCHECK(ei.value != ej.value)
+             << "Found duplicate enum values at indices " << i << " and " << j;
+         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))

diff --git a/www-client/chromium/files/chromium-98-system-libdrm.patch b/www-client/chromium/files/chromium-98-system-libdrm.patch
new file mode 100644
index 000000000000..f2f18beda3db
--- /dev/null
+++ b/www-client/chromium/files/chromium-98-system-libdrm.patch
@@ -0,0 +1,34 @@
+diff --git a/media/gpu/chromeos/BUILD.gn b/media/gpu/chromeos/BUILD.gn
+index a5c8945..d742d80 100644
+--- a/media/gpu/chromeos/BUILD.gn
++++ b/media/gpu/chromeos/BUILD.gn
+@@ -32,6 +32,7 @@ source_set("chromeos") {
+ 
+   if (use_vaapi) {
+     deps += [
++      "//build/config/linux/libdrm",
+       "//media/gpu/vaapi",
+       "//media/gpu/vaapi:common",
+     ]
+diff --git a/media/gpu/chromeos/video_decoder_pipeline.cc b/media/gpu/chromeos/video_decoder_pipeline.cc
+index 2d77cd9..1883fd4 100644
+--- a/media/gpu/chromeos/video_decoder_pipeline.cc
++++ b/media/gpu/chromeos/video_decoder_pipeline.cc
+@@ -4,6 +4,9 @@
+ 
+ #include "media/gpu/chromeos/video_decoder_pipeline.h"
+ 
++#if BUILDFLAG(USE_VAAPI)
++#include <drm_fourcc.h>
++#endif
+ #include <memory>
+ 
+ #include "base/bind.h"
+@@ -28,7 +31,6 @@
+ 
+ #if BUILDFLAG(USE_VAAPI)
+ #include "media/gpu/vaapi/vaapi_video_decoder.h"
+-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+ #elif BUILDFLAG(USE_V4L2_CODEC)
+ #include "media/gpu/v4l2/v4l2_video_decoder.h"
+ #else

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 6797780530d5..dcdaa4ce4a04 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -19,6 +19,7 @@
 		<flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
 		<flag name="system-harfbuzz">Use system harfbuzz instead of the bundled one.</flag>
 		<flag name="system-icu">Use system icu instead of the bundled one</flag>
+		<flag name="system-png">Use system libpng instead of the bundled one.</flag>
 		<flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>
 	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-11-13 20:08 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-11-13 20:08 UTC (permalink / raw
  To: gentoo-commits

commit:     574de6d3160c7dc97d8d9f3bff9b9e14e925251c
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 13 20:06:30 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Nov 13 20:06:51 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=574de6d3

www-client/chromium: beta channel bump to 96.0.4664.45

Bug: https://bugs.gentoo.org/816699
Bug: https://bugs.gentoo.org/819771
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...4664.35.ebuild => chromium-96.0.4664.45.ebuild} |  5 ++-
 .../chromium/files/chromium-96-xfce-maximize.patch | 51 ++++++++++++++++++++++
 .../chromium/files/chromium-glibc-2.34.patch       | 28 ++++++++++++
 4 files changed, 83 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 373b0ac2b05..10e690bbe24 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,6 @@
 DIST chromium-95-patchset-4.tar.xz 4308 BLAKE2B e91cb78d2357af8c0dfc66e4d148c5e6ef20cf9a811bcebf411e07cc5af73f30760d889842923afb2945e57b0f67330deac3f9068b6ce7c487482a6434e5c672 SHA512 152657e13afab3caca6a9ff6c0b51203f5bc8b0a4075a4396794d7a85caddce1b26f989c7dede5fa9a54316334099d21889e6767885fbf974260a6e9bd90df9d
 DIST chromium-95.0.4638.69.tar.xz 1213470900 BLAKE2B 31619448fd42bce74dac4fb3b7e04c59a2eb05461358e4fa59ab7122b07cd2dc6632a1a8c92a9bacd93c78c37a9e7fadfa7b9ded6371697177c419ce4e6665a5 SHA512 e8845a3add5f784342c51c530ed4fbf144f8ab16701d9dd6a2eedbd255167f39c26cf400d22f246ef5ad4afbb6a6133e17d767711587dd4bae18e3b5a997f95e
 DIST chromium-96-patchset-4.tar.xz 4812 BLAKE2B 5d82d212b8ec1689be6f4a7a0646256311d06c17e74ee0e5b2035c32125a5235e4b6b7605cefffa367cc53e651be17b75f5e339149b4c80dca50cd959b1623f1 SHA512 a72c1bb2c58e9e2912a641093c153f01ad7239dc971c7c96481ba4164204afe41741f3253e8af03070dab8276179784dc6a11761b39ad7902ed2553016778282
-DIST chromium-96.0.4664.35.tar.xz 1221769064 BLAKE2B ea81a4a521b5999f7bc485d2fecbcdc8950bab91a0d0ff9b30347f2de00cf7bb82b717293d0d302e298a30fa75f2653e7e97aa382a8a779d5f48604e70356088 SHA512 974467c24e245cf4f70a68282e4acdd6542e709e258d39304bca4b8b917095fe3bce34a20526e0e1a160b2362c03bbe2f1b76e05a1a97327c18ab777cded3ad4
+DIST chromium-96.0.4664.45.tar.xz 1221965612 BLAKE2B e990a2c3f0ae6d8bc4b6dddbecea2c640bb6491d9b321a301c1f168a35ad37553a23b8290a28dc05d50be005d3ad57fa69af2d3574266b9c83dcd24e65116c35 SHA512 0b1ccaf95697c14cb080dcb22e8584817ddcd98e704d081bc4f35a22dcfc8cca82dcabc4b82ad89ed0cd64752d226f389941bfab33b615e3948e2f778b9d9028
 DIST chromium-97-patchset-3.tar.xz 3444 BLAKE2B 3005964bfc9f1a373868dd7fa7fa66b30b62dbd8059f7ae3b259d5ca5841861cc47dfa218a9d154a862145e45798eb5c9869eb37b4b94a70eb0dedadffaa8fc1 SHA512 14d1336fb96efee954713f9e8534f4a3c78061b402b9fb582a295595c711d42787861fd176ca27c327d92bb80594c533e25092d1199797243bcaf877f1288a2d
 DIST chromium-97.0.4688.2.tar.xz 1223299644 BLAKE2B e1363e0c8425b9689168a05fae51e190a5d67a6ce7e817c0b8edce5be721789729ec62b98f4005a8b36bbedb44eb39a7dc2cd0cfdcb788c7837ee8a38c2a77bf SHA512 980aac2e3a73704a3df16a8a79409c890b21fd465978afda445af2b2ac7caceed8355600687bb854b7010f5aaab4a7e30d20d02d0eefd5d82c7e8cf5c1098a45

diff --git a/www-client/chromium/chromium-96.0.4664.35.ebuild b/www-client/chromium/chromium-96.0.4664.45.ebuild
similarity index 99%
rename from www-client/chromium/chromium-96.0.4664.35.ebuild
rename to www-client/chromium/chromium-96.0.4664.45.ebuild
index 43a88629c0b..251c2c2bcec 100644
--- a/www-client/chromium/chromium-96.0.4664.35.ebuild
+++ b/www-client/chromium/chromium-96.0.4664.45.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
 
 LICENSE="BSD"
-SLOT="0"
+SLOT="0/beta"
 KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu vaapi wayland widevine"
 REQUIRED_USE="
@@ -231,9 +231,10 @@ src_prepare() {
 	local PATCHES=(
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-95-xfce-maximize.patch"
 		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-96-freetype-unbundle.patch"
+		"${FILESDIR}/chromium-96-xfce-maximize.patch"
+		"${FILESDIR}/chromium-glibc-2.34.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)

diff --git a/www-client/chromium/files/chromium-96-xfce-maximize.patch b/www-client/chromium/files/chromium-96-xfce-maximize.patch
new file mode 100644
index 00000000000..77cf410cfe9
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-xfce-maximize.patch
@@ -0,0 +1,51 @@
+From 245e71ae8de3f4b5f3478739be819981bb12dfab Mon Sep 17 00:00:00 2001
+From: Alexander Dunaev <adunaev@igalia.com>
+Date: Sat, 13 Nov 2021 06:35:35 +0000
+Subject: [PATCH] [linux/xfce] Introduced a hack for Xfwm.
+
+This proposes an alternative to [1].  Either this patch or that one
+should be landed, but not both.  See the linked crbug for the details.
+
+Setting the frame extents via the _GTK_FRAME_EXTENTS property turned out
+to be problematic at Xfwm.  While the issue is agreed to be a bug in the
+window manager, for now we disable setting the frame extents on that WM.
+
+This patch introduces a logic that disables setting the window property
+on Xfwm.
+
+[1] https://chromium-review.googlesource.com/c/chromium/src/+/3275653
+
+Bug: 1260821
+Change-Id: I4b734ac0dc2b97d7ed6b1842564a33ec6e4b4035
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3275272
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Alexander Dunaev <adunaev@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#941444}
+---
+
+diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
+index 2b20835..4fa2992 100644
+--- a/ui/platform_window/x11/x11_window.cc
++++ b/ui/platform_window/x11/x11_window.cc
+@@ -1016,6 +1016,21 @@
+ }
+ 
+ bool X11Window::CanSetDecorationInsets() const {
++  // Xfwm handles _GTK_FRAME_EXTENTS a bit unexpected way.  That is a known bug
++  // that will be eventually fixed, but for now we have to disable the function
++  // for Xfce.  The block below should be removed when Xfwm is updated with the
++  // fix and is known to work properly.
++  // See https://crbug.com/1260821.
++  {
++    static WindowManagerName wm_name = WM_OTHER;
++    static bool checked_for_wm = false;
++    if (!checked_for_wm) {
++      wm_name = GuessWindowManager();
++      checked_for_wm = true;
++    }
++    if (wm_name == WM_XFWM4)
++      return false;
++  }
+   return ui::WmSupportsHint(x11::GetAtom("_GTK_FRAME_EXTENTS"));
+ }
+ 

diff --git a/www-client/chromium/files/chromium-glibc-2.34.patch b/www-client/chromium/files/chromium-glibc-2.34.patch
new file mode 100644
index 00000000000..0cb85b2ca51
--- /dev/null
+++ b/www-client/chromium/files/chromium-glibc-2.34.patch
@@ -0,0 +1,28 @@
+From 600d63c2c59a9892dbc5423d7d8bb1565a9f91e7 Mon Sep 17 00:00:00 2001
+From: Michel Salim <michel@fb.com>
+Date: Thu, 04 Nov 2021 14:22:40 -0700
+Subject: [PATCH] Handle long SIGSTKSZ in glibc > 2.33
+
+`SIGSTKSZ` is no longer constant in glibc > 2.33 but a function
+returning a long. Cast before taking `max`.
+
+See https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=85e84fe53699fe9e392edffa993612ce08b2954a;hb=HEAD
+
+Signed-off-by: Michel Salim <michel@fb.com>
+Change-Id: I197f8ff3053eede80d6aed096be4f0113dd43241
+(relocated to chromium repo, removed static)
+---
+
+diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+index ca353c4..5cdabcf 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -138,7 +138,7 @@
+   // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
+   // the alternative stack. Ensure that the size of the alternative stack is
+   // large enough.
+-  static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
++  const unsigned kSigStackSize = std::max(16384U, (unsigned)SIGSTKSZ);
+ 
+   // Only set an alternative stack if there isn't already one, or if the current
+   // one is too small.


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-11-04 20:16 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-11-04 20:16 UTC (permalink / raw
  To: gentoo-commits

commit:     2936d731c4d39399124253fd099818a5676555ea
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  4 20:15:44 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Nov  4 20:16:05 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2936d731

www-client/chromium: fix building with gn-0.1943 (M96, M97)

Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/chromium-96.0.4664.35.ebuild              |  1 +
 www-client/chromium/chromium-97.0.4688.2.ebuild               |  1 +
 www-client/chromium/files/chromium-96-freetype-unbundle.patch | 10 ++++++++++
 3 files changed, 12 insertions(+)

diff --git a/www-client/chromium/chromium-96.0.4664.35.ebuild b/www-client/chromium/chromium-96.0.4664.35.ebuild
index 22342835f29..43a88629c0b 100644
--- a/www-client/chromium/chromium-96.0.4664.35.ebuild
+++ b/www-client/chromium/chromium-96.0.4664.35.ebuild
@@ -233,6 +233,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-95-xfce-maximize.patch"
 		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-96-freetype-unbundle.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)

diff --git a/www-client/chromium/chromium-97.0.4688.2.ebuild b/www-client/chromium/chromium-97.0.4688.2.ebuild
index 912a51e9ac8..a78067d2771 100644
--- a/www-client/chromium/chromium-97.0.4688.2.ebuild
+++ b/www-client/chromium/chromium-97.0.4688.2.ebuild
@@ -233,6 +233,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-95-xfce-maximize.patch"
 		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-96-freetype-unbundle.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)

diff --git a/www-client/chromium/files/chromium-96-freetype-unbundle.patch b/www-client/chromium/files/chromium-96-freetype-unbundle.patch
new file mode 100644
index 00000000000..6ef5ff6832c
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-freetype-unbundle.patch
@@ -0,0 +1,10 @@
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@
+   # 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",
+     ]


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-10-30 17:30 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-10-30 17:30 UTC (permalink / raw
  To: gentoo-commits

commit:     4a035ae5851832c168d6db5955027ef3f9051534
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 30 17:29:36 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Oct 30 17:30:01 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a035ae5

www-client/chromium: dev channel bump to 97.0.4682.3

Bug: https://bugs.gentoo.org/819771
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +--
 ...0.4676.0.ebuild => chromium-97.0.4682.3.ebuild} |  9 +++----
 .../chromium/files/chromium-95-xfce-maximize.patch | 30 ++++++++++++++++++++++
 3 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f3a182b1902..4fd27fce870 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,5 +2,5 @@ DIST chromium-95-patchset-4.tar.xz 4308 BLAKE2B e91cb78d2357af8c0dfc66e4d148c5e6
 DIST chromium-95.0.4638.54.tar.xz 1213374932 BLAKE2B 75e1017a50eb0f42c714863969414308df7ee69160271d3bcd5ba7af79c96c5eb53edd9d892f33db6c2455d0b2dfa12dadfa8cb01d4baf1f89d57fde5291783e SHA512 159c8d37e8cfb5bb0e55d3d1329295dab585164b84b8c514ea80f0f68ce0b491f4c40a186a2bc108baae2341cf320dee78c654c0a038d5aeb17b5a19c7f043d9
 DIST chromium-96-patchset-4.tar.xz 4812 BLAKE2B 5d82d212b8ec1689be6f4a7a0646256311d06c17e74ee0e5b2035c32125a5235e4b6b7605cefffa367cc53e651be17b75f5e339149b4c80dca50cd959b1623f1 SHA512 a72c1bb2c58e9e2912a641093c153f01ad7239dc971c7c96481ba4164204afe41741f3253e8af03070dab8276179784dc6a11761b39ad7902ed2553016778282
 DIST chromium-96.0.4664.27.tar.xz 1221600064 BLAKE2B 707596f44897660057edf977011db34341028c4b99dbe61878109090049e727232bfe784a1ea1447847a559584d0b2297a218c06817b618be76b5e96aafa8ea6 SHA512 4b87a04d055dedb508466e188151ea7f46d14a8a76dd64b4e783d8b6cc8e4d0d54ca5fdfb4ac60727028fbc3539e64bcb77d424904af2a64cb8f5d44d065f08e
-DIST chromium-97-patchset-1.tar.xz 4508 BLAKE2B a30d60cb4d5f883b3f72e23df1bed8339d144c75de9ab231f5e00ffb80899c87bc6e4a46cf1126c9b163573313ce7342be4dabac1e854bcf24c49f344807feb7 SHA512 651ad56c216b7569df436d13e6f0da13181dc236af8cd4bc177a7d5461eb9ccb0650c122c68231427b6ffd4290d5e7840c5dfa9a1c7ffd8ef7882a3efd053fc4
-DIST chromium-97.0.4676.0.tar.xz 1224908136 BLAKE2B cdb0c94aa364757c0a88fb8c4320164ad96839bef77058d2cc8c10a59882930bd28b20d0bdb324aca785c506e7af24718f62860b714cae5f349d64b9e31234e3 SHA512 1184a56cfcba029f9bd34b5bd422fc01ebbfbc7399223f88d6e9c5f2557e9adfc4332fec26a62e1beb2d7c815163ec9a5f409b0f235e425d93b83677a332c92f
+DIST chromium-97-patchset-2.tar.xz 3756 BLAKE2B a690466a5d359f38805f468d096f909d3063a4134aa28599a145c4741a15244c7dc06dd8151f53ef0dd29a6a604447ce37f99181a05170ac88483a837dea71cc SHA512 e088d84ea43ffc05e4e83b1c87d83fb73d985df1cf92d3a17e50201e96c32dfda29d7d9b84943307380b2d75cda699ddf65ef6414e3e4484f01ac5b957605ccd
+DIST chromium-97.0.4682.3.tar.xz 1221976628 BLAKE2B 7b1e753568d806a03ed130cfde91032234f5fc7ae3e45ab247ebc76b8804dfa4b645a8668514bd0e6fe4bff1a779de30836fb557a2b4eaaaae310b41442ce17d SHA512 39b379ddfe59b8b4b2a9f4d4e502ac4450580da72bf9f59b4b185d4ac3b81ab1a1077c270b1ba65a32d80702f7b0fbe38059014bada9dc5a68160aea3e162e04

diff --git a/www-client/chromium/chromium-97.0.4676.0.ebuild b/www-client/chromium/chromium-97.0.4682.3.ebuild
similarity index 99%
rename from www-client/chromium/chromium-97.0.4676.0.ebuild
rename to www-client/chromium/chromium-97.0.4682.3.ebuild
index 84b87e1c066..51304ed5d3d 100644
--- a/www-client/chromium/chromium-97.0.4676.0.ebuild
+++ b/www-client/chromium/chromium-97.0.4682.3.ebuild
@@ -13,13 +13,13 @@ inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="1"
+PATCHSET="2"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
 
 LICENSE="BSD"
-SLOT="0"
+SLOT="0/dev"
 KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu vaapi wayland widevine"
 REQUIRED_USE="
@@ -134,7 +134,6 @@ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
 	DEPEND+=" >=sys-libs/libcxx-12"
 else
 	COMMON_DEPEND="
-		app-arch/snappy:=
 		dev-libs/libxslt:=
 		>=dev-libs/re2-0.2019.08.01:=
 		>=media-libs/openh264-1.6.0:=
@@ -233,6 +232,7 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-95-xfce-maximize.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
@@ -430,6 +430,7 @@ src_prepare() {
 		third_party/skia/third_party/skcms
 		third_party/skia/third_party/vulkan
 		third_party/smhasher
+		third_party/snappy
 		third_party/sqlite
 		third_party/swiftshader
 		third_party/swiftshader/third_party/astc-encoder
@@ -499,7 +500,6 @@ src_prepare() {
 		keeplibs+=( third_party/libxslt )
 		keeplibs+=( third_party/openh264 )
 		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
 		if use system-icu; then
 			keeplibs+=( third_party/icu )
 		fi
@@ -610,7 +610,6 @@ src_configure() {
 		gn_system_libraries+=( libxslt )
 		gn_system_libraries+=( openh264 )
 		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
 	fi
 	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
 

diff --git a/www-client/chromium/files/chromium-95-xfce-maximize.patch b/www-client/chromium/files/chromium-95-xfce-maximize.patch
new file mode 100644
index 00000000000..296d97873dd
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-xfce-maximize.patch
@@ -0,0 +1,30 @@
+From 603d765ca5154db27718d89a2ee9be2a95a64254 Mon Sep 17 00:00:00 2001
+From: Alexander Dunaev <adunaev@igalia.com>
+Date: Fri, 29 Oct 2021 20:54:46 +0700
+Subject: [PATCH] [linux/xfce] Set zero insets on maximising the window.
+
+It turned out that Xfwm handles the frame insets not the way KWin and
+Mutter do.
+
+Bug: 1260821
+Change-Id: I69e71049157c03b74d78bc5edb7a60bf39cdda8b
+---
+
+diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
+index dd381747..706f19c 100644
+--- a/ui/platform_window/x11/x11_window.cc
++++ b/ui/platform_window/x11/x11_window.cc
+@@ -676,6 +676,13 @@
+   // save this one for later too.
+   should_maximize_after_map_ = !window_mapped_in_client_;
+ 
++  // Some WMs keep respecting the frame extents even if the window is maximised.
++  // Remove the insets when maximising.  The extents will be set again when the
++  // window is restored to normal state.
++  // See https://crbug.com/1260821
++  if (CanSetDecorationInsets())
++    SetDecorationInsets(nullptr);
++
+   SetWMSpecState(true, x11::GetAtom("_NET_WM_STATE_MAXIMIZED_VERT"),
+                  x11::GetAtom("_NET_WM_STATE_MAXIMIZED_HORZ"));
+ }


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-10-24  7:30 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-10-24  7:30 UTC (permalink / raw
  To: gentoo-commits

commit:     328b853d9da8be2b60b9e863562a8c71b6f2dde3
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 24 07:29:02 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Oct 24 07:30:04 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=328b853d

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/819054
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                      |   2 -
 www-client/chromium/chromium-94.0.4606.81.ebuild  | 943 ----------------------
 www-client/chromium/files/chromium-launcher-r6.sh |  48 --
 3 files changed, 993 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index bb5d9cbfb3e..bb34c477828 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-DIST chromium-94-patchset-3.tar.xz 5052 BLAKE2B 3946b555d22792023696e85dbdb02a5fc43e39819c3a1a25c782d12771a608b068a7d11f757fa6390e7d295fe9c2b3b8085c31bd79d35edcd882a3f9f66df8dd SHA512 42f7beb412a7e691f35603625cbb316223706891f2a289301e4786ab92cfd4414d2f4a365f7637ba49a28508e18523670e59ae88512bc56afdd79d22f62f407e
-DIST chromium-94.0.4606.81.tar.xz 1039841108 BLAKE2B ff7cead6f4d12e31d48458f5307d2d6055041493f95bee38e1481aa3f16360dbcee6484fc4441dc0bec26313139786c04735cff8f29e410ad23586da10626f8c SHA512 59bde106e41da1daa1e806f790cbeea8623e5b5a191222981981f2722da97a26c7f70cbe3a9108e5d84e411712627657a86b3931ec940121c7e61bdb09b5bee8
 DIST chromium-95-patchset-4.tar.xz 4308 BLAKE2B e91cb78d2357af8c0dfc66e4d148c5e6ef20cf9a811bcebf411e07cc5af73f30760d889842923afb2945e57b0f67330deac3f9068b6ce7c487482a6434e5c672 SHA512 152657e13afab3caca6a9ff6c0b51203f5bc8b0a4075a4396794d7a85caddce1b26f989c7dede5fa9a54316334099d21889e6767885fbf974260a6e9bd90df9d
 DIST chromium-95.0.4638.54.tar.xz 1213374932 BLAKE2B 75e1017a50eb0f42c714863969414308df7ee69160271d3bcd5ba7af79c96c5eb53edd9d892f33db6c2455d0b2dfa12dadfa8cb01d4baf1f89d57fde5291783e SHA512 159c8d37e8cfb5bb0e55d3d1329295dab585164b84b8c514ea80f0f68ce0b491f4c40a186a2bc108baae2341cf320dee78c654c0a038d5aeb17b5a19c7f043d9
 DIST chromium-96-patchset-4.tar.xz 4812 BLAKE2B 5d82d212b8ec1689be6f4a7a0646256311d06c17e74ee0e5b2035c32125a5235e4b6b7605cefffa367cc53e651be17b75f5e339149b4c80dca50cd959b1623f1 SHA512 a72c1bb2c58e9e2912a641093c153f01ad7239dc971c7c96481ba4164204afe41741f3253e8af03070dab8276179784dc6a11761b39ad7902ed2553016778282

diff --git a/www-client/chromium/chromium-94.0.4606.81.ebuild b/www-client/chromium/chromium-94.0.4606.81.ebuild
deleted file mode 100644
index 0c9e3bc72ae..00000000000
--- a/www-client/chromium/chromium-94.0.4606.81.ebuild
+++ /dev/null
@@ -1,943 +0,0 @@
-# Copyright 2009-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{8,9} )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="3"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm(+)]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxcb:=
-	x11-libs/libxshmfence:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-2.9.0:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/libxkbcommon:=
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	!headless? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:0/0.3 )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	$(python_gen_any_dep '
-		dev-python/setuptools[${PYTHON_USEDEP}]
-	')
-	>=app-arch/gzip-1.7
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-12"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-12"
-	DEPEND+=" >=sys-libs/libcxx-12"
-else
-	COMMON_DEPEND="
-		app-arch/snappy:=
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-69.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-python_check_deps() {
-	has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			CPP="${CHOST}-clang++ -E"
-			if ! ver_test "$(clang-major-version)" -ge 12; then
-				die "At least clang 12 is required"
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="9G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-	)
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4-4.9.3
-		third_party/catapult/third_party/html5lib-1.1
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/khronos
-		third_party/dawn/third_party/tint
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/fusejs
-		third_party/highway
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/fastfeat
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/tcmalloc
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/tflite-support
-		third_party/ruy
-		third_party/six
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng/utils )
-	else
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
-	# DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
-	myconf_gn+=" dcheck_always_on=$(usex debug true false)"
-	myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" disable_fieldtrial_testing_config=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	# Disable code formating of generated files
-	myconf_gn+=" blink_enable_generated_code_formatting=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use wayland || use headless; then
-		if use headless; then
-			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
-		else
-			myconf_gn+=" ozone_platform_wayland=true"
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=false"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Don't inherit PYTHONPATH from environment, bug #789021, #812689
-	local -x PYTHONPATH=
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/chrome_crashpad_handler
-
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
-			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-	doins -r out/Release/MEIPreload
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. You have to enable it"
-		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-		elog "in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-}

diff --git a/www-client/chromium/files/chromium-launcher-r6.sh b/www-client/chromium/files/chromium-launcher-r6.sh
deleted file mode 100644
index 637cfd612aa..00000000000
--- a/www-client/chromium/files/chromium-launcher-r6.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-
-# Allow the user to override command-line flags, bug #357629.
-# This is based on Debian's chromium-browser package, and is intended
-# to be consistent with Debian.
-for f in /etc/chromium/*; do
-    [[ -f ${f} ]] && source "${f}"
-done
-
-# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
-# default CHROMIUM_FLAGS (from /etc/chromium/default).
-CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
-
-# Let the wrapped binary know that it has been run through the wrapper
-export CHROME_WRAPPER=$(readlink -f "$0")
-
-PROGDIR=${CHROME_WRAPPER%/*}
-
-case ":$PATH:" in
-  *:$PROGDIR:*)
-    # $PATH already contains $PROGDIR
-    ;;
-  *)
-    # Append $PROGDIR to $PATH
-    export PATH="$PATH:$PROGDIR"
-    ;;
-esac
-
-if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
-	# Running as root with HOME owned by root.
-	# Pass --user-data-dir to work around upstream failsafe.
-	CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
-		${CHROMIUM_FLAGS}"
-fi
-
-# Select session type and platform
-if @@FORCE_OZONE_PLATFORM@@; then
-	CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
-elif @@OZONE_AUTO_SESSION@@ && ! ${DISABLE_OZONE_PLATFORM:-false}; then
-	if [[ ${XDG_SESSION_TYPE} == wayland || -n ${WAYLAND_DISPLAY} && ${XDG_SESSION_TYPE} != x11 ]]; then
-		CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
-	fi
-fi
-
-# Set the .desktop file name
-export CHROME_DESKTOP="chromium-browser-chromium.desktop"
-
-exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-10-10 17:45 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-10-10 17:45 UTC (permalink / raw
  To: gentoo-commits

commit:     f9174d614aabab26d9bddaa84d45b235de8e3792
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 10 17:43:42 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Oct 10 17:45:29 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9174d61

www-client/chromium: dev channel bump to 96.0.4662.6

Bug: https://bugs.gentoo.org/813705
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +-
 ...0.4655.0.ebuild => chromium-96.0.4662.6.ebuild} | 12 ++--
 .../files/chromium-96-EnumTable-crash.patch        | 76 ++++++++++++++++++++++
 3 files changed, 83 insertions(+), 9 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 709f243ac8b..2268a15fbb4 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,5 +3,5 @@ DIST chromium-94.0.4606.71.tar.xz 1039867644 BLAKE2B fca167a133b417554e22a4868a4
 DIST chromium-94.0.4606.81.tar.xz 1039841108 BLAKE2B ff7cead6f4d12e31d48458f5307d2d6055041493f95bee38e1481aa3f16360dbcee6484fc4441dc0bec26313139786c04735cff8f29e410ad23586da10626f8c SHA512 59bde106e41da1daa1e806f790cbeea8623e5b5a191222981981f2722da97a26c7f70cbe3a9108e5d84e411712627657a86b3931ec940121c7e61bdb09b5bee8
 DIST chromium-95-patchset-4.tar.xz 4308 BLAKE2B e91cb78d2357af8c0dfc66e4d148c5e6ef20cf9a811bcebf411e07cc5af73f30760d889842923afb2945e57b0f67330deac3f9068b6ce7c487482a6434e5c672 SHA512 152657e13afab3caca6a9ff6c0b51203f5bc8b0a4075a4396794d7a85caddce1b26f989c7dede5fa9a54316334099d21889e6767885fbf974260a6e9bd90df9d
 DIST chromium-95.0.4638.40.tar.xz 1213280408 BLAKE2B 29421623b9adf95608574226a5ddf3666c0d8e51225c047f9978fee34b7460324bf31785c1b68213e5264e8b9c77ed3c496b8cdc327af5e8afaec5af92074e16 SHA512 3ccd24a93d4a68f7646d44862127746c78766451071790cb541dbe1e1eeb959ee5e2bf31859ae139971f70ca1680e15e3cbaed95303473f0bbd857a6fe28dcb7
-DIST chromium-96-patchset-2.tar.xz 4208 BLAKE2B a5b1c9eafb7a6807bc28ba9f6f1136adc73337c7964c22c4a245ab7c622fb9f6daa28eb46292cbc80d5fd8ac827d733f36929e620327d637f8bae60e3e41b27a SHA512 d8b5e94f95e3b57313fa5e132940056f73fb4f0ea922db0b40c6c41f0ee51e0c9043c816b378a9e5bf3a151d4cdf293c6a33c98ab2248b2b9e8109f8b4317bfd
-DIST chromium-96.0.4655.0.tar.xz 1218779336 BLAKE2B ee3bb0dfa7a417ed39d5f33fcac581856c9cd58579b9b24e037cc93998dfba39807a36e690b30a70afe47b2af772e9caa222825354dba3802bc4b2a88e9d79b3 SHA512 cc77db8f028968176cae647897812e765b477664a8f27d7df2b832f378891719244aace2b2a9a7ff3ca43e3898c39665d5f632e14b6c010a45056fc5f8a305e4
+DIST chromium-96-patchset-3.tar.xz 4576 BLAKE2B c483194b40d689374013f105718f611e647813b205dbcf0fe124efdb3e150569daa27aba6c0aacdff8206c925a5568553251dd813d1336809caa42c4aa43e993 SHA512 e837243d46fe1be839387f221a6e7c68da3001ce120eb2b2c2e2161d11d5c56e82f3dc1d1b616ddb6f7fd4e3875775ca6db6bc71356698afafd7dc114174fb9d
+DIST chromium-96.0.4662.6.tar.xz 1220630676 BLAKE2B 821a42f67ef45fb1305489aa1720bc1f87da95fd3d6b92a28224d25a9c047ed6f5d33656126b92c53875600de8fe821d5cb2b20282be49cd8adb5f51d2ee2063 SHA512 781d9b7b4b096e6d8ca6bdbcd25611f2f37ac6a07e787a052bc98cdd90df32f2fc208be171b06c08786dd71595657856926c5cd7401d92d7cd71776f7bf286db

diff --git a/www-client/chromium/chromium-96.0.4655.0.ebuild b/www-client/chromium/chromium-96.0.4662.6.ebuild
similarity index 98%
rename from www-client/chromium/chromium-96.0.4655.0.ebuild
rename to www-client/chromium/chromium-96.0.4662.6.ebuild
index d53a4e5b63b..bac8a0908d6 100644
--- a/www-client/chromium/chromium-96.0.4655.0.ebuild
+++ b/www-client/chromium/chromium-96.0.4662.6.ebuild
@@ -1,7 +1,7 @@
 # Copyright 2009-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
 PYTHON_COMPAT=( python3_{8,9} )
 PYTHON_REQ_USE="xml"
 
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
+PATCHSET="3"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
@@ -21,7 +21,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu vaapi wayland widevine"
+IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos +official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu vaapi wayland widevine"
 REQUIRED_USE="
 	component-build? ( !suid )
 	screencast? ( wayland )
@@ -231,11 +231,8 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-95-eigen-avx-1.patch"
-		"${FILESDIR}/chromium-95-eigen-avx-2.patch"
-		"${FILESDIR}/chromium-95-eigen-avx-3.patch"
+		"${FILESDIR}/chromium-96-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
@@ -327,6 +324,7 @@ src_prepare() {
 		third_party/devtools-frontend/src/front_end/third_party/wasmparser
 		third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
 		third_party/devtools-frontend/src/third_party
+		third_party/distributed_point_functions
 		third_party/dom_distiller_js
 		third_party/eigen3
 		third_party/emoji-segmenter

diff --git a/www-client/chromium/files/chromium-96-EnumTable-crash.patch b/www-client/chromium/files/chromium-96-EnumTable-crash.patch
new file mode 100644
index 00000000000..9736739c822
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-EnumTable-crash.patch
@@ -0,0 +1,76 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index aad9e08..2f3fcad 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -8,6 +8,7 @@
+ #include <cstdint>
+ #include <cstring>
+ #include <ostream>
++#include <vector>
+ 
+ #include "base/check_op.h"
+ #include "base/macros.h"
+@@ -188,7 +189,6 @@ class
+   inline constexpr GenericEnumTableEntry(int32_t value);
+   inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
+ 
+-  GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
+   GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
+ 
+  private:
+@@ -254,7 +254,6 @@ class EnumTable {
+     constexpr Entry(E value, base::StringPiece str)
+         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+ 
+-    Entry(const Entry&) = delete;
+     Entry& operator=(const Entry&) = delete;
+   };
+ 
+@@ -313,15 +312,14 @@ class EnumTable {
+     if (is_sorted_) {
+       const std::size_t index = static_cast<std::size_t>(value);
+       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+-        const auto& entry = data_.begin()[index];
++        const auto& entry = data_[index];
+         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+           return entry.str();
+       }
+       return absl::nullopt;
+     }
+     return GenericEnumTableEntry::FindByValue(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), static_cast<int32_t>(value));
++        &data_[0], data_.size(), static_cast<int32_t>(value));
+   }
+ 
+   // This overload of GetString is designed for cases where the argument is a
+@@ -349,8 +347,7 @@ class EnumTable {
+   // enum value directly.
+   absl::optional<E> GetEnum(base::StringPiece str) const {
+     auto* entry = GenericEnumTableEntry::FindByString(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), str);
++        &data_[0], data_.size(), str);
+     return entry ? static_cast<E>(entry->value) : absl::optional<E>();
+   }
+ 
+@@ -365,7 +362,7 @@ class EnumTable {
+   // Align the data on a cache line boundary.
+   alignas(64)
+ #endif
+-      std::initializer_list<Entry> data_;
++      const std::vector<Entry> data_;
+   bool is_sorted_;
+ 
+   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -377,8 +374,8 @@ class EnumTable {
+ 
+     for (std::size_t i = 0; i < data.size(); i++) {
+       for (std::size_t j = i + 1; j < data.size(); j++) {
+-        const Entry& ei = data.begin()[i];
+-        const Entry& ej = data.begin()[j];
++        const Entry& ei = data[i];
++        const Entry& ej = data[j];
+         DCHECK(ei.value != ej.value)
+             << "Found duplicate enum values at indices " << i << " and " << j;
+         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-10-04 20:58 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-10-04 20:58 UTC (permalink / raw
  To: gentoo-commits

commit:     b2ffd5b5e35dea8fd3c9dc8ab89bc20133024cdc
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  4 20:57:33 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Oct  4 20:58:26 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2ffd5b5

www-client/chromium: fix building without AVX2

Closes: https://bugs.gentoo.org/815487
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/chromium-95.0.4638.32.ebuild   |   3 +
 www-client/chromium/chromium-96.0.4655.0.ebuild    |   3 +
 .../chromium/files/chromium-95-eigen-avx-1.patch   | 229 +++++++++++++++++++++
 .../chromium/files/chromium-95-eigen-avx-2.patch   |  30 +++
 .../chromium/files/chromium-95-eigen-avx-3.patch   |  44 ++++
 5 files changed, 309 insertions(+)

diff --git a/www-client/chromium/chromium-95.0.4638.32.ebuild b/www-client/chromium/chromium-95.0.4638.32.ebuild
index 15e8a266530..96e6f24a0b1 100644
--- a/www-client/chromium/chromium-95.0.4638.32.ebuild
+++ b/www-client/chromium/chromium-95.0.4638.32.ebuild
@@ -234,6 +234,9 @@ src_prepare() {
 		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-95-maldoca-zlib.patch"
+		"${FILESDIR}/chromium-95-eigen-avx-1.patch"
+		"${FILESDIR}/chromium-95-eigen-avx-2.patch"
+		"${FILESDIR}/chromium-95-eigen-avx-3.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)

diff --git a/www-client/chromium/chromium-96.0.4655.0.ebuild b/www-client/chromium/chromium-96.0.4655.0.ebuild
index 15e18722e20..d53a4e5b63b 100644
--- a/www-client/chromium/chromium-96.0.4655.0.ebuild
+++ b/www-client/chromium/chromium-96.0.4655.0.ebuild
@@ -233,6 +233,9 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-95-eigen-avx-1.patch"
+		"${FILESDIR}/chromium-95-eigen-avx-2.patch"
+		"${FILESDIR}/chromium-95-eigen-avx-3.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)

diff --git a/www-client/chromium/files/chromium-95-eigen-avx-1.patch b/www-client/chromium/files/chromium-95-eigen-avx-1.patch
new file mode 100644
index 00000000000..21d520cc4d4
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-eigen-avx-1.patch
@@ -0,0 +1,229 @@
+From 3d4ba855e014987cad86d62a8dff533492255695 Mon Sep 17 00:00:00 2001
+From: Antonio Sanchez <cantonios@google.com>
+Date: Wed, 1 Sep 2021 14:11:21 -0700
+Subject: [PATCH] Fix AVX integer packet issues.
+
+Most are instances of AVX2 functions not protected by
+`EIGEN_VECTORIZE_AVX2`.  There was also a missing semi-colon
+for AVX512.
+---
+ Eigen/src/Core/arch/AVX/PacketMath.h    | 83 ++++++++++++++++++-------
+ Eigen/src/Core/arch/AVX512/PacketMath.h |  6 +-
+ 2 files changed, 63 insertions(+), 26 deletions(-)
+
+diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+index dc1a1d6b0..247ee4efd 100644
+--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
++++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+@@ -262,10 +262,6 @@ template<> EIGEN_STRONG_INLINE Packet4d peven_mask(const Packet4d& /*a*/) { retu
+ template<> EIGEN_STRONG_INLINE Packet8f pload1<Packet8f>(const float*  from) { return _mm256_broadcast_ss(from); }
+ template<> EIGEN_STRONG_INLINE Packet4d pload1<Packet4d>(const double* from) { return _mm256_broadcast_sd(from); }
+ 
+-template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return _mm256_add_ps(_mm256_set1_ps(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
+-template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return _mm256_add_pd(_mm256_set1_pd(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
+-template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return _mm256_add_epi32(_mm256_set1_epi32(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
+-
+ template<> EIGEN_STRONG_INLINE Packet8f padd<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_add_ps(a,b); }
+ template<> EIGEN_STRONG_INLINE Packet4d padd<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_add_pd(a,b); }
+ template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const Packet8i& b) {
+@@ -278,6 +274,10 @@ template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const
+ #endif
+ }
+ 
++template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
++template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
++template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
++
+ template<> EIGEN_STRONG_INLINE Packet8f psub<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_sub_ps(a,b); }
+ template<> EIGEN_STRONG_INLINE Packet4d psub<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_sub_pd(a,b); }
+ template<> EIGEN_STRONG_INLINE Packet8i psub<Packet8i>(const Packet8i& a, const Packet8i& b) {
+@@ -300,7 +300,7 @@ template<> EIGEN_STRONG_INLINE Packet4d pnegate(const Packet4d& a)
+ }
+ template<> EIGEN_STRONG_INLINE Packet8i pnegate(const Packet8i& a)
+ {
+-  return _mm256_sub_epi32(_mm256_set1_epi32(0), a);
++  return psub(pzero(a), a);
+ }
+ 
+ template<> EIGEN_STRONG_INLINE Packet8f pconj(const Packet8f& a) { return a; }
+@@ -419,7 +419,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pmin<Packet4d>(const Packet4d& a, const
+ #endif
+ }
+ template<> EIGEN_STRONG_INLINE Packet8i pmin<Packet8i>(const Packet8i& a, const Packet8i& b) {
++#ifdef EIGEN_VECTORIZE_AVX2
+   return _mm256_min_epi32(a, b);
++#else
++  __m128i lo = _mm_min_epi32(_mm256_extractf128_si256(a, 0), _mm256_extractf128_si256(b, 0));
++  __m128i hi = _mm_min_epi32(_mm256_extractf128_si256(a, 1), _mm256_extractf128_si256(b, 1));
++  return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
++#endif
+ }
+ 
+ template<> EIGEN_STRONG_INLINE Packet8f pmax<Packet8f>(const Packet8f& a, const Packet8f& b) {
+@@ -445,7 +451,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pmax<Packet4d>(const Packet4d& a, const
+ #endif
+ }
+ template<> EIGEN_STRONG_INLINE Packet8i pmax<Packet8i>(const Packet8i& a, const Packet8i& b) {
++#ifdef EIGEN_VECTORIZE_AVX2
+   return _mm256_max_epi32(a, b);
++#else
++  __m128i lo = _mm_max_epi32(_mm256_extractf128_si256(a, 0), _mm256_extractf128_si256(b, 0));
++  __m128i hi = _mm_max_epi32(_mm256_extractf128_si256(a, 1), _mm256_extractf128_si256(b, 1));
++  return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
++#endif
+ }
+ 
+ // Add specializations for min/max with prescribed NaN progation.
+@@ -641,17 +653,25 @@ template<> EIGEN_STRONG_INLINE Packet8f ploaddup<Packet8f>(const float* from)
+   // then we can perform a consistent permutation on the global register to get everything in shape:
+   return  _mm256_permute_ps(tmp, _MM_SHUFFLE(3,3,2,2));
+ }
+-// Loads 2 doubles from memory a returns the packet {a0, a0  a1, a1}
++// Loads 2 doubles from memory a returns the packet {a0, a0, a1, a1}
+ template<> EIGEN_STRONG_INLINE Packet4d ploaddup<Packet4d>(const double* from)
+ {
+   Packet4d tmp = _mm256_broadcast_pd((const __m128d*)(const void*)from);
+   return  _mm256_permute_pd(tmp, 3<<2);
+ }
+-// Loads 4 integers from memory a returns the packet {a0, a0  a1, a1, a2, a2, a3, a3}
++// Loads 4 integers from memory a returns the packet {a0, a0, a1, a1, a2, a2, a3, a3}
+ template<> EIGEN_STRONG_INLINE Packet8i ploaddup<Packet8i>(const int* from)
+ {
+-  Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
++#ifdef EIGEN_VECTORIZE_AVX2
++  const Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
+   return _mm256_permutevar8x32_epi32(a, _mm256_setr_epi32(0, 0, 1, 1, 2, 2, 3, 3));
++#else
++  __m256 tmp = _mm256_broadcast_ps((const __m128*)(const void*)from);
++  // mimic an "inplace" permutation of the lower 128bits using a blend
++  tmp = _mm256_blend_ps(tmp,_mm256_castps128_ps256(_mm_permute_ps( _mm256_castps256_ps128(tmp), _MM_SHUFFLE(1,0,1,0))), 15);
++  // then we can perform a consistent permutation on the global register to get everything in shape:
++  return  _mm256_castps_si256(_mm256_permute_ps(tmp, _MM_SHUFFLE(3,3,2,2)));
++#endif
+ }
+ 
+ // Loads 2 floats from memory a returns the packet {a0, a0  a0, a0, a1, a1, a1, a1}
+@@ -662,7 +682,7 @@ template<> EIGEN_STRONG_INLINE Packet8f ploadquad<Packet8f>(const float* from)
+ }
+ template<> EIGEN_STRONG_INLINE Packet8i ploadquad<Packet8i>(const int* from)
+ {
+-  return _mm256_inserti128_si256(_mm256_set1_epi32(*from), _mm_set1_epi32(*(from+1)), 1);
++  return _mm256_insertf128_si256(_mm256_set1_epi32(*from), _mm_set1_epi32(*(from+1)), 1);
+ }
+ 
+ template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet8f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm256_store_ps(to, from); }
+@@ -723,13 +743,13 @@ template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet4d>(double* to,
+ }
+ template<> EIGEN_DEVICE_FUNC inline void pscatter<int, Packet8i>(int* to, const Packet8i& from, Index stride)
+ {
+-  __m128i low = _mm256_extracti128_si256(from, 0);
++  __m128i low = _mm256_extractf128_si256(from, 0);
+   to[stride*0] = _mm_extract_epi32(low, 0);
+   to[stride*1] = _mm_extract_epi32(low, 1);
+   to[stride*2] = _mm_extract_epi32(low, 2);
+   to[stride*3] = _mm_extract_epi32(low, 3);
+ 
+-  __m128i high = _mm256_extracti128_si256(from, 1);
++  __m128i high = _mm256_extractf128_si256(from, 1);
+   to[stride*4] = _mm_extract_epi32(high, 0);
+   to[stride*5] = _mm_extract_epi32(high, 1);
+   to[stride*6] = _mm_extract_epi32(high, 2);
+@@ -803,7 +823,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pabs(const Packet4d& a)
+ }
+ template<> EIGEN_STRONG_INLINE Packet8i pabs(const Packet8i& a)
+ {
++#ifdef EIGEN_VECTORIZE_AVX2
+   return _mm256_abs_epi32(a);
++#else
++  __m128i lo = _mm_abs_epi32(_mm256_extractf128_si256(a, 0));
++  __m128i hi = _mm_abs_epi32(_mm256_extractf128_si256(a, 1));
++  return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
++#endif
+ }
+ 
+ template<> EIGEN_STRONG_INLINE Packet8f pfrexp<Packet8f>(const Packet8f& a, Packet8f& exponent) {
+@@ -989,16 +1015,27 @@ ptranspose(PacketBlock<Packet8f,4>& kernel) {
+ #define MM256_SHUFFLE_EPI32(A, B, M) \
+   _mm256_castps_si256(_mm256_shuffle_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B), M))
+ 
++#ifdef EIGEN_VECTORIZE_AVX2
++#define MM256_UNPACKLO_EPI32(A, B) \
++  _mm256_castps_si256(_mm256_unpacklo_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
++#define MM256_UNPACKHI_EPI32(A, B) \
++  _mm256_castps_si256(_mm256_unpackhi_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
++#else
++#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_ps(A, B)
++#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_ps(A, B)
++#endif
++
++
+ EIGEN_DEVICE_FUNC inline void
+ ptranspose(PacketBlock<Packet8i,8>& kernel) {
+-  __m256i T0 = _mm256_unpacklo_epi32(kernel.packet[0], kernel.packet[1]);
+-  __m256i T1 = _mm256_unpackhi_epi32(kernel.packet[0], kernel.packet[1]);
+-  __m256i T2 = _mm256_unpacklo_epi32(kernel.packet[2], kernel.packet[3]);
+-  __m256i T3 = _mm256_unpackhi_epi32(kernel.packet[2], kernel.packet[3]);
+-  __m256i T4 = _mm256_unpacklo_epi32(kernel.packet[4], kernel.packet[5]);
+-  __m256i T5 = _mm256_unpackhi_epi32(kernel.packet[4], kernel.packet[5]);
+-  __m256i T6 = _mm256_unpacklo_epi32(kernel.packet[6], kernel.packet[7]);
+-  __m256i T7 = _mm256_unpackhi_epi32(kernel.packet[6], kernel.packet[7]);
++  __m256i T0 = MM256_UNPACKLO_EPI32(kernel.packet[0], kernel.packet[1]);
++  __m256i T1 = MM256_UNPACKHI_EPI32(kernel.packet[0], kernel.packet[1]);
++  __m256i T2 = MM256_UNPACKLO_EPI32(kernel.packet[2], kernel.packet[3]);
++  __m256i T3 = MM256_UNPACKHI_EPI32(kernel.packet[2], kernel.packet[3]);
++  __m256i T4 = MM256_UNPACKLO_EPI32(kernel.packet[4], kernel.packet[5]);
++  __m256i T5 = MM256_UNPACKHI_EPI32(kernel.packet[4], kernel.packet[5]);
++  __m256i T6 = MM256_UNPACKLO_EPI32(kernel.packet[6], kernel.packet[7]);
++  __m256i T7 = MM256_UNPACKHI_EPI32(kernel.packet[6], kernel.packet[7]);
+   __m256i S0 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(1,0,1,0));
+   __m256i S1 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(3,2,3,2));
+   __m256i S2 = MM256_SHUFFLE_EPI32(T1,T3,_MM_SHUFFLE(1,0,1,0));
+@@ -1019,10 +1056,10 @@ ptranspose(PacketBlock<Packet8i,8>& kernel) {
+ 
+ EIGEN_DEVICE_FUNC inline void
+ ptranspose(PacketBlock<Packet8i,4>& kernel) {
+-  __m256i T0 = _mm256_unpacklo_epi32(kernel.packet[0], kernel.packet[1]);
+-  __m256i T1 = _mm256_unpackhi_epi32(kernel.packet[0], kernel.packet[1]);
+-  __m256i T2 = _mm256_unpacklo_epi32(kernel.packet[2], kernel.packet[3]);
+-  __m256i T3 = _mm256_unpackhi_epi32(kernel.packet[2], kernel.packet[3]);
++  __m256i T0 = MM256_UNPACKLO_EPI32(kernel.packet[0], kernel.packet[1]);
++  __m256i T1 = MM256_UNPACKHI_EPI32(kernel.packet[0], kernel.packet[1]);
++  __m256i T2 = MM256_UNPACKLO_EPI32(kernel.packet[2], kernel.packet[3]);
++  __m256i T3 = MM256_UNPACKHI_EPI32(kernel.packet[2], kernel.packet[3]);
+ 
+   __m256i S0 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(1,0,1,0));
+   __m256i S1 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(3,2,3,2));
+diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
+index 6ce15c677..0810f66ee 100644
+--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
++++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
+@@ -1028,7 +1028,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
+ 
+ // AVX512F does not define _mm512_extracti32x8_epi32 to extract _m256i from _m512i
+ #define EIGEN_EXTRACT_8i_FROM_16i(INPUT, OUTPUT)                           \
+-  __m256i OUTPUT##_0 = _mm512_extracti32x8_epi32(INPUT, 0)                 \
++  __m256i OUTPUT##_0 = _mm512_extracti32x8_epi32(INPUT, 0);                \
+   __m256i OUTPUT##_1 = _mm512_extracti32x8_epi32(INPUT, 1) 
+ #else
+ #define EIGEN_EXTRACT_8f_FROM_16f(INPUT, OUTPUT)                \
+@@ -1037,7 +1037,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
+       _mm512_extractf32x4_ps(INPUT, 1), 1);                     \
+   __m256 OUTPUT##_1 = _mm256_insertf128_ps(                     \
+       _mm256_castps128_ps256(_mm512_extractf32x4_ps(INPUT, 2)), \
+-      _mm512_extractf32x4_ps(INPUT, 3), 1);
++      _mm512_extractf32x4_ps(INPUT, 3), 1)
+ 
+ #define EIGEN_EXTRACT_8i_FROM_16i(INPUT, OUTPUT)                    \
+   __m256i OUTPUT##_0 = _mm256_insertf128_si256(                     \
+@@ -1045,7 +1045,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
+       _mm512_extracti32x4_epi32(INPUT, 1), 1);                      \
+   __m256i OUTPUT##_1 = _mm256_insertf128_si256(                     \
+       _mm256_castsi128_si256(_mm512_extracti32x4_epi32(INPUT, 2)),  \
+-      _mm512_extracti32x4_epi32(INPUT, 3), 1);
++      _mm512_extracti32x4_epi32(INPUT, 3), 1)
+ #endif
+ 
+ #ifdef EIGEN_VECTORIZE_AVX512DQ
+-- 
+GitLab
+

diff --git a/www-client/chromium/files/chromium-95-eigen-avx-2.patch b/www-client/chromium/files/chromium-95-eigen-avx-2.patch
new file mode 100644
index 00000000000..1cb8007b6a6
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-eigen-avx-2.patch
@@ -0,0 +1,30 @@
+From def145547fc6abd14236e103b9443a36064f664f Mon Sep 17 00:00:00 2001
+From: Antonio Sanchez <cantonios@google.com>
+Date: Thu, 2 Sep 2021 16:21:07 -0700
+Subject: [PATCH] Add missing packet types in pset1 call.
+
+Oops, introduced this when "fixing" integer packets.
+---
+ Eigen/src/Core/arch/AVX/PacketMath.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+index 247ee4efd..8da9031dc 100644
+--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
++++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+@@ -274,9 +274,9 @@ template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const
+ #endif
+ }
+ 
+-template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
+-template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
+-template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
++template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1<Packet8f>(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
++template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1<Packet4d>(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
++template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1<Packet8i>(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
+ 
+ template<> EIGEN_STRONG_INLINE Packet8f psub<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_sub_ps(a,b); }
+ template<> EIGEN_STRONG_INLINE Packet4d psub<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_sub_pd(a,b); }
+-- 
+GitLab
+

diff --git a/www-client/chromium/files/chromium-95-eigen-avx-3.patch b/www-client/chromium/files/chromium-95-eigen-avx-3.patch
new file mode 100644
index 00000000000..44e9ef4e0ec
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-eigen-avx-3.patch
@@ -0,0 +1,44 @@
+From 7792b1e909a98703181aecb8810b4b654004c25d Mon Sep 17 00:00:00 2001
+From: Antonio Sanchez <cantonios@google.com>
+Date: Fri, 3 Sep 2021 10:41:35 -0700
+Subject: [PATCH] Fix AVX2 PacketMath.h.
+
+There were a couple typos ps -> epi32, and an unaligned load issue.
+---
+ Eigen/src/Core/arch/AVX/PacketMath.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+index 8da9031dc..41cb7af9c 100644
+--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
++++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+@@ -663,7 +663,7 @@ template<> EIGEN_STRONG_INLINE Packet4d ploaddup<Packet4d>(const double* from)
+ template<> EIGEN_STRONG_INLINE Packet8i ploaddup<Packet8i>(const int* from)
+ {
+ #ifdef EIGEN_VECTORIZE_AVX2
+-  const Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
++  const Packet8i a = _mm256_castsi128_si256(ploadu<Packet4i>(from));
+   return _mm256_permutevar8x32_epi32(a, _mm256_setr_epi32(0, 0, 1, 1, 2, 2, 3, 3));
+ #else
+   __m256 tmp = _mm256_broadcast_ps((const __m128*)(const void*)from);
+@@ -1015,14 +1015,14 @@ ptranspose(PacketBlock<Packet8f,4>& kernel) {
+ #define MM256_SHUFFLE_EPI32(A, B, M) \
+   _mm256_castps_si256(_mm256_shuffle_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B), M))
+ 
+-#ifdef EIGEN_VECTORIZE_AVX2
++#ifndef EIGEN_VECTORIZE_AVX2
+ #define MM256_UNPACKLO_EPI32(A, B) \
+   _mm256_castps_si256(_mm256_unpacklo_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
+ #define MM256_UNPACKHI_EPI32(A, B) \
+   _mm256_castps_si256(_mm256_unpackhi_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
+ #else
+-#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_ps(A, B)
+-#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_ps(A, B)
++#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_epi32(A, B)
++#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_epi32(A, B)
+ #endif
+ 
+ 
+-- 
+GitLab
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-09-14 11:27 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-09-14 11:27 UTC (permalink / raw
  To: gentoo-commits

commit:     d6035f09c961fb1eec9c6bb6e3a4eada55865486
Author:     Marek Behún <kabel <AT> kernel <DOT> org>
AuthorDate: Tue Sep 14 09:27:51 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Sep 14 10:58:24 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6035f09

www-client/chromium: stable channel bump to 93.0.4577.82

Bug: https://bugs.gentoo.org/813035
Signed-off-by: Marek Behún <kabel <AT> kernel.org>
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-93.0.4577.82.ebuild   | 945 +++++++++++++++++++++
 .../chromium-93-fix-build-with-system-ffmpeg.patch |  85 ++
 3 files changed, 1031 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c4c52931199..9d3bf0e01b6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,7 @@
 DIST chromium-92-glibc-2.33-patch.tar.xz 12636 BLAKE2B 0621d2135c1a0864374010c36959deda7b612d448e28780bfe8968fcd45363c091a84413eb3c6f560e9f805a421b910f33e9cc023055e7bf7801aa374d41dc80 SHA512 6d9e999c0b18186f2db28a804f9f84f6b472cf2fac33d72a0b09ded3106f43378a6eaf52b316e0b07a3876d9074ba299a285bdf06193553ee81bdbea4bc66294
 DIST chromium-93-patchset-6.tar.xz 6796 BLAKE2B 2688c68becac1187668b459f9827ffca79de6c7ee64299dff20f91cb774af676ec3d95d809b4fc5f7bd663c3b8c904a46ac9cd3ec70a5ce248456dcd48834932 SHA512 eaf0d2bc29c53c7021ccded9c14463bbde2887926c069154c0126ee1bf513bf41a38eeb3dc21023a2e9637ce3e1e541a3b2a79a990bb8becae0da0a04e57c76a
 DIST chromium-93.0.4577.63.tar.xz 1038816588 BLAKE2B aa0eeea52345c7269e614ecc32710ea6c5b071d24a773040389df38159b1c60c99f5cf0e1c9e753e776aa23e9b58ef2f2e13d8ba448c3789f10fccd364babaad SHA512 b7d85dfe34d9a37e6b4f9b440ba6aaa2778d30f8bda583151dd6e5d2ab9d6136ee1ab321bfc5f59aa10b289c07f72298db11182d06ede8574ac280b2b6d8fa2f
+DIST chromium-93.0.4577.82.tar.xz 1038808440 BLAKE2B ec6fd783b40b8e02bbf6cc48eb1ff0a99b059d64de16e91eeadf69bf3297d2e6d0430823d6d15a2a838c579f84c9f5f894da345009b126a84509781998d57ffc SHA512 730e4a316fee4a5be1bf95301cf25c0c1d192ceeb661f051c1d74b7083fe928f1c5fd24c744cbbda6ef39c9edc64607a2621644e153e5e3de2201b5ac60e4d64
 DIST chromium-94-patchset-3.tar.xz 5052 BLAKE2B 3946b555d22792023696e85dbdb02a5fc43e39819c3a1a25c782d12771a608b068a7d11f757fa6390e7d295fe9c2b3b8085c31bd79d35edcd882a3f9f66df8dd SHA512 42f7beb412a7e691f35603625cbb316223706891f2a289301e4786ab92cfd4414d2f4a365f7637ba49a28508e18523670e59ae88512bc56afdd79d22f62f407e
 DIST chromium-94.0.4606.41.tar.xz 1039866508 BLAKE2B b8a47fe1554966d9302127e05e1ea2ab3314c92c637985baaec849fd68420ced88231f9df1c96a6cc9a7e6c9e000ca8ad3982002b2cd62a18830f0950726096d SHA512 1f10f52680e3765056ce00e77d3463b3c84b16d3d39c5b44646499aabc1cca9ab11bd2ea65d4154768392ac4712710e9a7f99ee691ad7b402c07ea2076453141
 DIST chromium-95-patchset-3.tar.xz 4040 BLAKE2B 4d3b31cf667b4a6b4ef0987d990a6e8bd5c57b3a3c0a71063360d77b0834154fff398b22e13a1de40c2b56833d33c1cb3fb364e4a47861d6fff8a311ddb64911 SHA512 7fbd1b76e28e5ebccd22fbcb735c93149702ea4c1fe4096f4e37730d97336eb84253ba2aab8a6d055d0dc0d519672608229e3b9941653594427e76c6ea07a0cc

diff --git a/www-client/chromium/chromium-93.0.4577.82.ebuild b/www-client/chromium/chromium-93.0.4577.82.ebuild
new file mode 100644
index 00000000000..e68575687a2
--- /dev/null
+++ b/www-client/chromium/chromium-93.0.4577.82.ebuild
@@ -0,0 +1,945 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{8,9} )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET="6"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+	https://dev.gentoo.org/~sultan/distfiles/www-client/${PN}/${PN}-92-glibc-2.33-patch.tar.xz
+	arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+	component-build? ( !suid )
+	screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+	media-libs/mesa:=[gbm(+)]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libxcb:=
+	x11-libs/libxshmfence:=
+	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/expat:=
+	dev-libs/glib:2
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	>=media-libs/freetype-2.11.0:=
+	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	net-misc/curl[ssl]
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/libxkbcommon:=
+	x11-libs/pango:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+	!headless? (
+		${COMMON_X_DEPEND}
+		>=app-accessibility/at-spi2-atk-2.26:2
+		>=app-accessibility/at-spi2-core-2.26:2
+		>=dev-libs/atk-2.26
+		x11-libs/gtk+:3[X]
+		wayland? (
+			dev-libs/wayland:=
+			screencast? ( media-video/pipewire:0/0.3 )
+			x11-libs/gtk+:3[wayland,X]
+			x11-libs/libdrm:=
+		)
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
+	>=app-arch/gzip-1.7
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+	RDEPEND+=" >=sys-libs/libcxx-12"
+	DEPEND+=" >=sys-libs/libcxx-12"
+else
+	COMMON_DEPEND="
+		app-arch/snappy:=
+		dev-libs/libxslt:=
+		>=dev-libs/re2-0.2019.08.01:=
+		>=media-libs/openh264-1.6.0:=
+		system-icu? ( >=dev-libs/icu-69.1:= )
+	"
+	RDEPEND+="${COMMON_DEPEND}"
+	DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+	has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+			die "At least gcc 9.2 is required"
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			CPP="${CHOST}-clang++ -E"
+			if ! ver_test "$(clang-major-version)" -ge 12; then
+				die "At least clang 12 is required"
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="8G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${WORKDIR}/sandbox-patches/chromium-syscall_broker.patch"
+		"${WORKDIR}/sandbox-patches/chromium-fstatat-crash.patch"
+		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-shim_headers.patch"
+		"${FILESDIR}/chromium-93-fix-build-with-system-ffmpeg.patch"
+	)
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	# adjust python interpreter version
+	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+	# bundled highway library does not support arm64 with GCC
+	if use arm64; then
+		rm -r third_party/highway/src || die
+		ln -s "${WORKDIR}/highway-0.12.1" third_party/highway/src || die
+	fi
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4-4.9.3
+		third_party/catapult/third_party/html5lib-1.1
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/dawn/third_party/khronos
+		third_party/dawn/third_party/tint
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/axe-core
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/diff
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit-html
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/puppeteer
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/third_party
+		third_party/dom_distiller_js
+		third_party/eigen3
+		third_party/emoji-segmenter
+		third_party/farmhash
+		third_party/fdlibm
+		third_party/fft2d
+		third_party/flatbuffers
+		third_party/freetype
+		third_party/fusejs
+		third_party/highway
+		third_party/libgifcodec
+		third_party/liburlpattern
+		third_party/libzip
+		third_party/gemmlowp
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/harfbuzz-ng/utils
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libgav1
+		third_party/libjingle
+		third_party/libjxl
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libva_protected_content
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		third_party/libwebm
+		third_party/libx11
+		third_party/libxcb-keysyms
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/minigbm
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/neon_2_sse
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/opencv
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/perfetto/protos/third_party/chromium
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/private_membership
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/securemessage
+		third_party/shell-encryption
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/tcmalloc
+		third_party/tensorflow-text
+		third_party/tflite
+		third_party/tflite/src/third_party/eigen3
+		third_party/tflite/src/third_party/fft2d
+		third_party/tflite-support
+		third_party/ruy
+		third_party/six
+		third_party/ukey2
+		third_party/unrar
+		third_party/usrsctp
+		third_party/utf
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webgpu-cts
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/x11proto
+		third_party/xcbproto
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if use wayland && ! use headless ; then
+		keeplibs+=( third_party/wayland )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libxml )
+		keeplibs+=( third_party/libxslt )
+		keeplibs+=( third_party/openh264 )
+		keeplibs+=( third_party/re2 )
+		keeplibs+=( third_party/snappy )
+		if use system-icu; then
+			keeplibs+=( third_party/icu )
+		fi
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	# it has to be done before unbundling.
+	if use ppc64; then
+		pushd third_party/libvpx >/dev/null || die
+		mkdir -p source/config/linux/ppc64 || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+	if use js-type-check; then
+		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+	fi
+
+	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+	mkdir -p buildtools/third_party/eu-strip/bin || die
+	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+			die "Compiling with sys-libs/libcxx requires clang."
+		fi
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+		gn_system_libraries+=( libxml )
+		gn_system_libraries+=( libxslt )
+		gn_system_libraries+=( openh264 )
+		gn_system_libraries+=( re2 )
+		gn_system_libraries+=( snappy )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	# Disable pseudolocales, only used for testing
+	myconf_gn+=" enable_pseudolocales=false"
+
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+		fi
+	fi
+
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		append-flags -stdlib=libc++
+		append-ldflags -stdlib=libc++
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+	# highway/libjxl relies on this with arm64
+	if use arm64 && tc-is-gcc; then
+		append-cxxflags -flax-vector-conversions
+	fi
+
+	# Disable unknown warning message from clang.
+	tc-is-clang && append-flags -Wno-unknown-warning-option
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+	myconf_gn+=" ozone_platform_headless=true"
+	if use wayland || use headless; then
+		if use headless; then
+			myconf_gn+=" ozone_platform=\"headless\""
+			myconf_gn+=" use_x11=false"
+		else
+			myconf_gn+=" ozone_platform_wayland=true"
+			myconf_gn+=" use_system_libdrm=true"
+			myconf_gn+=" use_system_minigbm=true"
+			myconf_gn+=" use_xkbcommon=true"
+			myconf_gn+=" ozone_platform=\"wayland\""
+		fi
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	myconf_gn+=" use_thin_lto=false"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+		# Disable PGO, because profile data is only compatible with >=clang-11
+		myconf_gn+=" chrome_pgo_phase=0"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	mv out/Release/chromedriver{.unstripped,} || die
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+	doexe out/Release/crashpad_handler
+
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so out/Release/*.so.[0-9])
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+
+	if use vaapi; then
+		elog "VA-API is disabled by default at runtime. You have to enable it"
+		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+		elog "in /etc/chromium/default."
+	fi
+	if use screencast; then
+		elog "Screencast is disabled by default at runtime. Either enable it"
+		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+	fi
+}

diff --git a/www-client/chromium/files/chromium-93-fix-build-with-system-ffmpeg.patch b/www-client/chromium/files/chromium-93-fix-build-with-system-ffmpeg.patch
new file mode 100644
index 00000000000..c1906683719
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-fix-build-with-system-ffmpeg.patch
@@ -0,0 +1,85 @@
+From: 52c3e9c0f140a8742034e107fb0f371c0d73bf1d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>
+Date: Sun, 12 Sep 2021 04:20:11 +0200
+Subject: [PATCH] chromium-93: fix building with system-ffmpeg
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The version of ffmpeg bundled in Chromium changed ABI a little, which
+affected the code in that the type of the last parameter of
+av_packet_get_side_data() is now size_t instead of int.
+
+This causes Chromium to fail to build with system-ffmpeg if the system
+ffmpeg's version does not yet have this ABI change.
+
+Fix the code to be able to compile with older ffmpeg as well.
+
+Signed-off-by: Marek Behún <kabel@kernel.org>
+---
+ media/filters/audio_decoder_unittest.cc |  4 ++++
+ media/filters/ffmpeg_demuxer.cc         | 16 ++++++++++++++++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
+--- a/media/filters/audio_decoder_unittest.cc
++++ b/media/filters/audio_decoder_unittest.cc
+@@ -109,7 +109,11 @@ void SetDiscardPadding(AVPacket* packet,
+   }
+ 
+   // If the timestamp is positive, try to use FFmpeg's discard data.
++#if LIBAVUTIL_VERSION_MAJOR < 57
++  int skip_samples_size = 0;
++#else
+   size_t skip_samples_size = 0;
++#endif
+   const uint32_t* skip_samples_ptr =
+       reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
+           packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -427,11 +427,19 @@ void FFmpegDemuxerStream::EnqueuePacket(
+   scoped_refptr<DecoderBuffer> buffer;
+ 
+   if (type() == DemuxerStream::TEXT) {
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int id_size = 0;
++#else
+     size_t id_size = 0;
++#endif
+     uint8_t* id_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
+ 
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int settings_size = 0;
++#else
+     size_t settings_size = 0;
++#endif
+     uint8_t* settings_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
+ 
+@@ -443,7 +451,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
+     buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
+                                      side_data.data(), side_data.size());
+   } else {
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int side_data_size = 0;
++#else
+     size_t side_data_size = 0;
++#endif
+     uint8_t* side_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
+ 
+@@ -504,7 +516,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
+                                        packet->size - data_offset);
+     }
+ 
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int skip_samples_size = 0;
++#else
+     size_t skip_samples_size = 0;
++#endif
+     const uint32_t* skip_samples_ptr =
+         reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
+             packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-09-11  7:47 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-09-11  7:47 UTC (permalink / raw
  To: gentoo-commits

commit:     402f40cd18da25d2d1d410b4aff02a020c905b6c
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 11 07:46:26 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Sep 11 07:47:00 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=402f40cd

www-client/chromium: dev channel bump to 95.0.4636.4

Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +-
 ...0.4628.3.ebuild => chromium-95.0.4636.4.ebuild} | 13 +++--
 www-client/chromium/files/chromium-launcher-r7.sh  | 59 ++++++++++++++++++++++
 3 files changed, 70 insertions(+), 6 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0dcf849c765..c4c52931199 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,6 +3,6 @@ DIST chromium-93-patchset-6.tar.xz 6796 BLAKE2B 2688c68becac1187668b459f9827ffca
 DIST chromium-93.0.4577.63.tar.xz 1038816588 BLAKE2B aa0eeea52345c7269e614ecc32710ea6c5b071d24a773040389df38159b1c60c99f5cf0e1c9e753e776aa23e9b58ef2f2e13d8ba448c3789f10fccd364babaad SHA512 b7d85dfe34d9a37e6b4f9b440ba6aaa2778d30f8bda583151dd6e5d2ab9d6136ee1ab321bfc5f59aa10b289c07f72298db11182d06ede8574ac280b2b6d8fa2f
 DIST chromium-94-patchset-3.tar.xz 5052 BLAKE2B 3946b555d22792023696e85dbdb02a5fc43e39819c3a1a25c782d12771a608b068a7d11f757fa6390e7d295fe9c2b3b8085c31bd79d35edcd882a3f9f66df8dd SHA512 42f7beb412a7e691f35603625cbb316223706891f2a289301e4786ab92cfd4414d2f4a365f7637ba49a28508e18523670e59ae88512bc56afdd79d22f62f407e
 DIST chromium-94.0.4606.41.tar.xz 1039866508 BLAKE2B b8a47fe1554966d9302127e05e1ea2ab3314c92c637985baaec849fd68420ced88231f9df1c96a6cc9a7e6c9e000ca8ad3982002b2cd62a18830f0950726096d SHA512 1f10f52680e3765056ce00e77d3463b3c84b16d3d39c5b44646499aabc1cca9ab11bd2ea65d4154768392ac4712710e9a7f99ee691ad7b402c07ea2076453141
-DIST chromium-95-patchset-2.tar.xz 4608 BLAKE2B bf3d17c1aa79b6070f64b3178d056682b61c9fa8414478379e72e346a805eb71b0e9ae649e13c51b933aa5424f038dbe350327989e3c8f237a7a4bfe1740607c SHA512 371de2fade344b230acbb19e5abdce0d30d27f8d85a862d43e97e8b6d20bd6878401df49729ebee26b93c8bbe38c8b9a0a785ef35aa93b28f53c9e4c3b4e5900
-DIST chromium-95.0.4628.3.tar.xz 1214022616 BLAKE2B 308f1f8411a8963352da4c1464152e750ee7e33d5830a7bcd76d5f9887622dafb17ee0968c27f17270d994a6946508a24cbefab27aeb1f00085236085db5b86c SHA512 32133bd50b98cd33bef6e6d6a5b3d44db8e38ce89a6961f308a656e4c27fe6056645318d1dfb6a8ed23562de76035e4d0b1a908ce0320d159bef3d27a0f19ad8
+DIST chromium-95-patchset-3.tar.xz 4040 BLAKE2B 4d3b31cf667b4a6b4ef0987d990a6e8bd5c57b3a3c0a71063360d77b0834154fff398b22e13a1de40c2b56833d33c1cb3fb364e4a47861d6fff8a311ddb64911 SHA512 7fbd1b76e28e5ebccd22fbcb735c93149702ea4c1fe4096f4e37730d97336eb84253ba2aab8a6d055d0dc0d519672608229e3b9941653594427e76c6ea07a0cc
+DIST chromium-95.0.4636.4.tar.xz 1212923072 BLAKE2B 3ae2700ef6f8dfab61baa1862f1f7c198fc6807ca64db04366631381db6630343b094f70faac737b440ba517fdb5bb1ae803f38a10f6303d282e1a71451ff33b SHA512 1839d66780746fd93f46d856dd42388b5fae54f297c637d1dfe4913deaa7e2b5cdedc64d7e82c7bd8779ee07d825aec620eae4b2927fb1b7120577f5935966a6
 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb

diff --git a/www-client/chromium/chromium-95.0.4628.3.ebuild b/www-client/chromium/chromium-95.0.4636.4.ebuild
similarity index 98%
rename from www-client/chromium/chromium-95.0.4628.3.ebuild
rename to www-client/chromium/chromium-95.0.4636.4.ebuild
index d2d31bd7ebe..02edb1ff604 100644
--- a/www-client/chromium/chromium-95.0.4628.3.ebuild
+++ b/www-client/chromium/chromium-95.0.4636.4.ebuild
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
+PATCHSET="3"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
@@ -749,6 +749,7 @@ src_configure() {
 	# Enable ozone wayland and/or headless support
 	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
 	myconf_gn+=" ozone_platform_headless=true"
+	myconf_gn+=" ozone_platform_x11=$(usex headless false true)"
 	if use wayland || use headless; then
 		if use headless; then
 			myconf_gn+=" ozone_platform=\"headless\""
@@ -760,6 +761,8 @@ src_configure() {
 			myconf_gn+=" use_xkbcommon=true"
 			myconf_gn+=" ozone_platform=\"wayland\""
 		fi
+	else
+		myconf_gn+=" ozone_platform=\"x11\""
 	fi
 
 	# Enable official builds
@@ -839,12 +842,14 @@ src_install() {
 	doexe out/Release/chromedriver
 	doexe out/Release/chrome_crashpad_handler
 
+	ozone_auto_session () {
+		use wayland && ! use headless && echo true || echo false
+	}
 	local sedargs=( -e
 			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
-			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
 	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
 	doexe chromium-launcher.sh
 
 	# It is important that we name the target "chromium-browser",

diff --git a/www-client/chromium/files/chromium-launcher-r7.sh b/www-client/chromium/files/chromium-launcher-r7.sh
new file mode 100644
index 00000000000..1163ff3ddc0
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r7.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# Allow the user to override command-line flags, bug #357629.
+# This is based on Debian's chromium-browser package, and is intended
+# to be consistent with Debian.
+for f in /etc/chromium/*; do
+    [[ -f ${f} ]] && source "${f}"
+done
+
+# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
+# default CHROMIUM_FLAGS (from /etc/chromium/default).
+CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
+
+# Let the wrapped binary know that it has been run through the wrapper
+export CHROME_WRAPPER=$(readlink -f "$0")
+
+PROGDIR=${CHROME_WRAPPER%/*}
+
+case ":$PATH:" in
+  *:$PROGDIR:*)
+    # $PATH already contains $PROGDIR
+    ;;
+  *)
+    # Append $PROGDIR to $PATH
+    export PATH="$PATH:$PROGDIR"
+    ;;
+esac
+
+if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
+	# Running as root with HOME owned by root.
+	# Pass --user-data-dir to work around upstream failsafe.
+	CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
+		${CHROMIUM_FLAGS}"
+fi
+
+# Select session type and platform
+if @@OZONE_AUTO_SESSION@@; then
+	platform=
+	if [[ ${XDG_SESSION_TYPE} == x11 ]]; then
+		platform=x11
+	elif [[ ${XDG_SESSION_TYPE} == wayland ]]; then
+		platform=wayland
+	else
+		if [[ -n ${WAYLAND_DISPLAY} ]]; then
+			platform=wayland
+		else
+			platform=x11
+		fi
+	fi
+	if ${DISABLE_OZONE_PLATFORM:-false}; then
+		platform=x11
+	fi
+	CHROMIUM_FLAGS="--ozone-platform=${platform} ${CHROMIUM_FLAGS}"
+fi
+
+# Set the .desktop file name
+export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+
+exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-09-08 20:00 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-09-08 20:00 UTC (permalink / raw
  To: gentoo-commits

commit:     602fbae37ad841fc5f6467cde41b9efdbe506174
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Sep  8 20:00:12 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Sep  8 20:00:12 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=602fbae3

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/811348
Closes: https://bugs.gentoo.org/698974
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   4 -
 www-client/chromium/chromium-92.0.4515.159.ebuild  | 958 ---------------------
 .../files/chromium-92-EnumTable-crash.patch        |  71 --
 .../files/chromium-92-crashpad-consent.patch       |  46 -
 .../chromium/files/chromium-freetype-2.11.patch    |  50 --
 5 files changed, 1129 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 124e68ad842..d3cb7f1b180 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,7 +1,4 @@
 DIST chromium-92-glibc-2.33-patch.tar.xz 12636 BLAKE2B 0621d2135c1a0864374010c36959deda7b612d448e28780bfe8968fcd45363c091a84413eb3c6f560e9f805a421b910f33e9cc023055e7bf7801aa374d41dc80 SHA512 6d9e999c0b18186f2db28a804f9f84f6b472cf2fac33d72a0b09ded3106f43378a6eaf52b316e0b07a3876d9074ba299a285bdf06193553ee81bdbea4bc66294
-DIST chromium-92-patchset-7.tar.xz 4004 BLAKE2B 8587663a072eb08abacbc2e54924855f29efefdbec46acf5cb8b0cc40b816b96ba7694c4ab1abe997572a6dbecf94ea27f368a7337263adfff44f2b4b042d862 SHA512 65c8267ab0921719c71d4b03a4315bbb1ceec35ce4794de9dcc6099b2c349baf4782b67316ebb8c9db233630b7fc89fa0baf719f9f0f41eb39972cdeb437e612
-DIST chromium-92-ppc64le-1.tar.xz 30416 BLAKE2B e953e3ba1ac0ff4bae437328eb1c52fb3863007ff92db91c6858c8c5f7b4c5c39fb8bf6898c3385c7faa82666f1a18aae7fcb5379b9199e58c5c0526fbd9dbee SHA512 b5a20076a34705c53c56d7763189ebfd860a456ca544a7f0c9ce30c877be92270ea724f1bebb9b597b301def27dde0a672b0c30e16e6abbf958cecfd60b07ec5
-DIST chromium-92.0.4515.159.tar.xz 958060524 BLAKE2B df4f06bc18c4c92061db55d098bde0a811f94f72fdf70cf973754e41db507a70274f48ebdcdacd13a787a35559553fa36d861787d4bc94c2cf2320dd06862970 SHA512 d6d563631278e721f38b045c39c9e205fbedefb0666af2f027a2a14c0d04814a96909da17e5b299bf40a94fe54bdfda0a91186983c8f929e7fbc7cdaffab922a
 DIST chromium-93-patchset-6.tar.xz 6796 BLAKE2B 2688c68becac1187668b459f9827ffca79de6c7ee64299dff20f91cb774af676ec3d95d809b4fc5f7bd663c3b8c904a46ac9cd3ec70a5ce248456dcd48834932 SHA512 eaf0d2bc29c53c7021ccded9c14463bbde2887926c069154c0126ee1bf513bf41a38eeb3dc21023a2e9637ce3e1e541a3b2a79a990bb8becae0da0a04e57c76a
 DIST chromium-93.0.4577.63.tar.xz 1038816588 BLAKE2B aa0eeea52345c7269e614ecc32710ea6c5b071d24a773040389df38159b1c60c99f5cf0e1c9e753e776aa23e9b58ef2f2e13d8ba448c3789f10fccd364babaad SHA512 b7d85dfe34d9a37e6b4f9b440ba6aaa2778d30f8bda583151dd6e5d2ab9d6136ee1ab321bfc5f59aa10b289c07f72298db11182d06ede8574ac280b2b6d8fa2f
 DIST chromium-94-patchset-3.tar.xz 5052 BLAKE2B 3946b555d22792023696e85dbdb02a5fc43e39819c3a1a25c782d12771a608b068a7d11f757fa6390e7d295fe9c2b3b8085c31bd79d35edcd882a3f9f66df8dd SHA512 42f7beb412a7e691f35603625cbb316223706891f2a289301e4786ab92cfd4414d2f4a365f7637ba49a28508e18523670e59ae88512bc56afdd79d22f62f407e
@@ -9,4 +6,3 @@ DIST chromium-94.0.4606.31.tar.xz 1039757224 BLAKE2B 7c9b940dbea8708d2815a25b669
 DIST chromium-95-patchset-2.tar.xz 4608 BLAKE2B bf3d17c1aa79b6070f64b3178d056682b61c9fa8414478379e72e346a805eb71b0e9ae649e13c51b933aa5424f038dbe350327989e3c8f237a7a4bfe1740607c SHA512 371de2fade344b230acbb19e5abdce0d30d27f8d85a862d43e97e8b6d20bd6878401df49729ebee26b93c8bbe38c8b9a0a785ef35aa93b28f53c9e4c3b4e5900
 DIST chromium-95.0.4628.3.tar.xz 1214022616 BLAKE2B 308f1f8411a8963352da4c1464152e750ee7e33d5830a7bcd76d5f9887622dafb17ee0968c27f17270d994a6946508a24cbefab27aeb1f00085236085db5b86c SHA512 32133bd50b98cd33bef6e6d6a5b3d44db8e38ce89a6961f308a656e4c27fe6056645318d1dfb6a8ed23562de76035e4d0b1a908ce0320d159bef3d27a0f19ad8
 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb
-DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-92.0.4515.159.ebuild b/www-client/chromium/chromium-92.0.4515.159.ebuild
deleted file mode 100644
index 7e6e71b9a32..00000000000
--- a/www-client/chromium/chromium-92.0.4515.159.ebuild
+++ /dev/null
@@ -1,958 +0,0 @@
-# Copyright 2009-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{8,9} )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="7"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-PPC64LE_PATCHSET="92-ppc64le-1"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	https://dev.gentoo.org/~sultan/distfiles/www-client/${PN}/${PN}-92-glibc-2.33-patch.tar.xz
-	arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )
-	ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-${PPC64LE_PATCHSET}.tar.xz )"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm(+)]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxcb:=
-	x11-libs/libxshmfence:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/libxkbcommon:=
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	!headless? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:0/0.3 )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	app-arch/unzip
-	dev-lang/perl
-	dev-lang/python:2.7[xml]
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-12"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-12"
-	DEPEND+=" >=sys-libs/libcxx-12"
-else
-	COMMON_DEPEND="
-		app-arch/snappy:=
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-69.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			CPP="${CHOST}-clang++ -E"
-			if ! ver_test "$(clang-major-version)" -ge 12; then
-				die "At least clang 12 is required"
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="8G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${WORKDIR}/sandbox-patches/chromium-syscall_broker.patch"
-		"${WORKDIR}/sandbox-patches/chromium-fstatat-crash.patch"
-		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-92-crashpad-consent.patch"
-		"${FILESDIR}/chromium-freetype-2.11.patch"
-		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-	)
-
-	if use ppc64; then
-		eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-libvpx.patch"
-		eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-support.patch"
-		eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-swiftshader.patch"
-	fi
-
-	default
-
-	# this patch needs to be applied after gentoo sandbox patchset
-	use ppc64 && eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-sandbox_kernel_stat.patch"
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# adjust python interpreter versions
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-	sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
-
-	# bundled highway library does not support arm64 with GCC
-	if use arm64; then
-		rm -r third_party/highway/src || die
-		ln -s "${WORKDIR}/highway-0.12.1" third_party/highway/src || die
-	fi
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/khronos
-		third_party/dawn/third_party/tint
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/fusejs
-		third_party/highway
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/harfbuzz-ng/utils
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/fastfeat
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/tcmalloc
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/tflite-support
-		third_party/ruy
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-
-	# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-	mkdir -p buildtools/third_party/eu-strip/bin || die
-	ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info. The OAuth2 credentials, however, have been left out.
-	# Those OAuth2 credentials have been broken for quite some time anyway.
-	# Instead we apply a patch to use the --oauth2-client-id= and
-	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
-	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
-	# Chromium without baked-in values.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# highway/libjxl relies on this with arm64
-	if use arm64 && tc-is-gcc; then
-		append-cxxflags -flax-vector-conversions
-	fi
-
-	# highway/libjxl fail on ppc64 without extra patches, disable for now.
-	use ppc64 && myconf_gn+=" enable_jxl_decoder=false"
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use wayland || use headless; then
-		if use headless; then
-			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
-		else
-			myconf_gn+=" ozone_platform_wayland=true"
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=false"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# https://bugs.gentoo.org/717456
-	# don't inherit PYTHONPATH from environment, bug #789021
-	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	mv out/Release/chromedriver{.unstripped,} || die
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-	doexe out/Release/crashpad_handler
-
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
-			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. You have to enable it"
-		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-		elog "in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-}

diff --git a/www-client/chromium/files/chromium-92-EnumTable-crash.patch b/www-client/chromium/files/chromium-92-EnumTable-crash.patch
deleted file mode 100644
index 7fb7360e026..00000000000
--- a/www-client/chromium/files/chromium-92-EnumTable-crash.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
-index e3130c7..2ad16ea 100644
---- a/components/cast_channel/enum_table.h
-+++ b/components/cast_channel/enum_table.h
-@@ -212,7 +212,7 @@ class
- 
-   template <typename E>
-   friend class EnumTable;
--  DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
-+  DISALLOW_ASSIGN(GenericEnumTableEntry);
- };
- 
- // Yes, these constructors really needs to be inlined.  Even though they look
-@@ -250,8 +250,7 @@ class EnumTable {
-     // Constructor for regular entries.
-     constexpr Entry(E value, base::StringPiece str)
-         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
--
--    DISALLOW_COPY_AND_ASSIGN(Entry);
-+    DISALLOW_ASSIGN(Entry);
-   };
- 
-   static_assert(sizeof(E) <= sizeof(int32_t),
-@@ -306,15 +305,14 @@ class EnumTable {
-     if (is_sorted_) {
-       const std::size_t index = static_cast<std::size_t>(value);
-       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
--        const auto& entry = data_.begin()[index];
-+        const auto& entry = data_[index];
-         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
-           return entry.str();
-       }
-       return absl::nullopt;
-     }
-     return GenericEnumTableEntry::FindByValue(
--        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
--        data_.size(), static_cast<int32_t>(value));
-+        &data_[0], data_.size(), static_cast<int32_t>(value));
-   }
- 
-   // This overload of GetString is designed for cases where the argument is a
-@@ -342,8 +340,7 @@ class EnumTable {
-   // enum value directly.
-   absl::optional<E> GetEnum(base::StringPiece str) const {
-     auto* entry = GenericEnumTableEntry::FindByString(
--        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
--        data_.size(), str);
-+        &data_[0], data_.size(), str);
-     return entry ? static_cast<E>(entry->value) : absl::optional<E>();
-   }
- 
-@@ -358,7 +355,7 @@ class EnumTable {
-   // Align the data on a cache line boundary.
-   alignas(64)
- #endif
--      std::initializer_list<Entry> data_;
-+      const std::vector<Entry> data_;
-   bool is_sorted_;
- 
-   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
-@@ -370,8 +367,8 @@ class EnumTable {
- 
-     for (std::size_t i = 0; i < data.size(); i++) {
-       for (std::size_t j = i + 1; j < data.size(); j++) {
--        const Entry& ei = data.begin()[i];
--        const Entry& ej = data.begin()[j];
-+        const Entry& ei = data[i];
-+        const Entry& ej = data[j];
-         DCHECK(ei.value != ej.value)
-             << "Found duplicate enum values at indices " << i << " and " << j;
-         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))

diff --git a/www-client/chromium/files/chromium-92-crashpad-consent.patch b/www-client/chromium/files/chromium-92-crashpad-consent.patch
deleted file mode 100644
index 956d19eee23..00000000000
--- a/www-client/chromium/files/chromium-92-crashpad-consent.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From dad7c5dc4504aa66c39f2a38b3c563d18dd1395a Mon Sep 17 00:00:00 2001
-From: Andrey Lushnikov <lushnikov@chromium.org>
-Date: Mon, 12 Jul 2021 18:47:01 +0000
-Subject: [PATCH] Respect stat collection consent for crashpad user metrics collection
-
-With this patch, crashpad will no longer collect metrics if there is no
-user consent for stats collections.
-
-This is a follow-up to the discussion in https://crrev.com/c/2923889
-
-BUG=1210598
-
-Change-Id: I1eceaa10f9d09f95b74cb4a2d2eac03008ec5b40
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2999433
-Reviewed-by: Mark Mentovai <mark@chromium.org>
-Reviewed-by: Greg Thompson <grt@chromium.org>
-Commit-Queue: Andrey Lushnikov <lushnikov@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#900573}
----
-
-diff --git a/chrome/app/chrome_crash_reporter_client.cc b/chrome/app/chrome_crash_reporter_client.cc
-index cd9a053..b34ad0d 100644
---- a/chrome/app/chrome_crash_reporter_client.cc
-+++ b/chrome/app/chrome_crash_reporter_client.cc
-@@ -144,6 +144,8 @@
- #if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS)
- bool ChromeCrashReporterClient::GetCrashMetricsLocation(
-     base::FilePath* metrics_dir) {
-+  if (!GetCollectStatsConsent())
-+    return false;
-   return base::PathService::Get(chrome::DIR_USER_DATA, metrics_dir);
- }
- #endif  // defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-diff --git a/chrome/app/chrome_crash_reporter_client_win.cc b/chrome/app/chrome_crash_reporter_client_win.cc
-index 474bf8e..2a66a3aa 100644
---- a/chrome/app/chrome_crash_reporter_client_win.cc
-+++ b/chrome/app/chrome_crash_reporter_client_win.cc
-@@ -160,6 +160,8 @@
- 
- bool ChromeCrashReporterClient::GetCrashMetricsLocation(
-     std::wstring* metrics_dir) {
-+  if (!GetCollectStatsConsent())
-+    return false;
-   install_static::GetUserDataDirectory(metrics_dir, nullptr);
-   return !metrics_dir->empty();
- }

diff --git a/www-client/chromium/files/chromium-freetype-2.11.patch b/www-client/chromium/files/chromium-freetype-2.11.patch
deleted file mode 100644
index aee6dc82e98..00000000000
--- a/www-client/chromium/files/chromium-freetype-2.11.patch
+++ /dev/null
@@ -1,50 +0,0 @@
---- a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
-+++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
-@@ -712,7 +712,11 @@ void colrv1_draw_paint(SkCanvas* canvas,
-             canvas->drawPaint(colrPaint);
-             break;
-         }
-+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
-+        case FT_COLR_PAINTFORMAT_TRANSFORM:
-+#else
-         case FT_COLR_PAINTFORMAT_TRANSFORMED:
-+#endif
-         case FT_COLR_PAINTFORMAT_TRANSLATE:
-         case FT_COLR_PAINTFORMAT_ROTATE:
-         case FT_COLR_PAINTFORMAT_SKEW:
-@@ -759,10 +763,17 @@ void colrv1_transform(SkCanvas* canvas, FT_Face face, FT_COLR_Paint colrv1_paint
-     SkMatrix transform;
- 
-     switch (colrv1_paint.format) {
-+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
-+        case FT_COLR_PAINTFORMAT_TRANSFORM: {
-+            transform = ToSkMatrix(colrv1_paint.u.transform.affine);
-+            break;
-+        }
-+#else
-         case FT_COLR_PAINTFORMAT_TRANSFORMED: {
-             transform = ToSkMatrix(colrv1_paint.u.transformed.affine);
-             break;
-         }
-+#endif
-         case FT_COLR_PAINTFORMAT_TRANSLATE: {
-             transform = SkMatrix::Translate(
-                 SkFixedToScalar(colrv1_paint.u.translate.dx),
-@@ -880,10 +891,17 @@ bool colrv1_traverse_paint(SkCanvas* canvas,
-             traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID,
-                                                  FT_COLOR_NO_ROOT_TRANSFORM);
-             break;
-+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
-+        case FT_COLR_PAINTFORMAT_TRANSFORM:
-+            colrv1_transform(canvas, face, paint);
-+            traverse_result = colrv1_traverse_paint(canvas, palette, face,
-+                                                    paint.u.transform.paint, visited_set);
-+#else
-         case FT_COLR_PAINTFORMAT_TRANSFORMED:
-             colrv1_transform(canvas, face, paint);
-             traverse_result = colrv1_traverse_paint(canvas, palette, face,
-                                                     paint.u.transformed.paint, visited_set);
-+#endif
-             break;
-         case FT_COLR_PAINTFORMAT_TRANSLATE:
-             colrv1_transform(canvas, face, paint);


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-08-08 11:50 Jason A. Donenfeld
  0 siblings, 0 replies; 149+ messages in thread
From: Jason A. Donenfeld @ 2021-08-08 11:50 UTC (permalink / raw
  To: gentoo-commits

commit:     fce48ef271bbcaee9afdf0481294da167e665a9b
Author:     Jason A. Donenfeld <zx2c4 <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  7 21:53:29 2021 +0000
Commit:     Jason A. Donenfeld <zx2c4 <AT> gentoo <DOT> org>
CommitDate: Sun Aug  8 11:50:05 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fce48ef2

www-client/chromium: work around dead oauth2 credentials

Google doesn't let us bake in OAuth2 credentials, and for some time,
Google sign-in has been broken. Arch dealt with this in March, and so
did we to some degree, but in the last few months, our sign-in
credentials have been broken. It appears that we actually did remove API
credentials in March around Chrome 89, but they got added back, perhaps
when rotating newer versions to replace older versions. Work around this
by following Arch's lead: we remove the predefined credentials, as
before, but also we patch Chromium so that people can use their own
easily, using Arch's patch for that.

For more info, see:

  https://archlinux.org/news/chromium-losing-sync-support-in-early-march/
  https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5
  https://hackaday.com/2021/01/26/whats-the-deal-with-chromium-on-linux-google-at-odds-with-package-maintainers/

Closes: https://bugs.gentoo.org/791871
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Jason A. Donenfeld <zx2c4 <AT> gentoo.org>

 www-client/chromium/chromium-92.0.4515.107.ebuild       | 12 +++++++-----
 www-client/chromium/chromium-92.0.4515.131.ebuild       | 12 +++++++-----
 www-client/chromium/chromium-93.0.4577.25.ebuild        | 12 +++++++-----
 www-client/chromium/chromium-94.0.4595.0.ebuild         | 12 +++++++-----
 ...chromium-use-oauth2-client-switches-as-default.patch | 17 +++++++++++++++++
 5 files changed, 45 insertions(+), 20 deletions(-)

diff --git a/www-client/chromium/chromium-92.0.4515.107.ebuild b/www-client/chromium/chromium-92.0.4515.107.ebuild
index 2403aa0bddb..e4cd7506c21 100644
--- a/www-client/chromium/chromium-92.0.4515.107.ebuild
+++ b/www-client/chromium/chromium-92.0.4515.107.ebuild
@@ -236,6 +236,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-92-GetUsableSize-nullptr.patch"
 		"${FILESDIR}/chromium-freetype-2.11.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -660,13 +661,14 @@ src_configure() {
 	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
 	# Note: these are for Gentoo use ONLY. For your own distribution,
 	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
 	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
 	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
 	local myarch="$(tc-arch)"
 
 	# Avoid CFLAGS problems, bug #352457, bug #390147.

diff --git a/www-client/chromium/chromium-92.0.4515.131.ebuild b/www-client/chromium/chromium-92.0.4515.131.ebuild
index 63504fa0cd2..54af6f3e069 100644
--- a/www-client/chromium/chromium-92.0.4515.131.ebuild
+++ b/www-client/chromium/chromium-92.0.4515.131.ebuild
@@ -236,6 +236,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-92-crashpad-consent.patch"
 		"${FILESDIR}/chromium-freetype-2.11.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -660,13 +661,14 @@ src_configure() {
 	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
 	# Note: these are for Gentoo use ONLY. For your own distribution,
 	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
 	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
 	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
 	local myarch="$(tc-arch)"
 
 	# Avoid CFLAGS problems, bug #352457, bug #390147.

diff --git a/www-client/chromium/chromium-93.0.4577.25.ebuild b/www-client/chromium/chromium-93.0.4577.25.ebuild
index 6fa93f8f78b..770da01d614 100644
--- a/www-client/chromium/chromium-93.0.4577.25.ebuild
+++ b/www-client/chromium/chromium-93.0.4577.25.ebuild
@@ -237,6 +237,7 @@ src_prepare() {
 		"${WORKDIR}/sandbox-patches/chromium-fstatat-crash.patch"
 		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -653,13 +654,14 @@ src_configure() {
 	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
 	# Note: these are for Gentoo use ONLY. For your own distribution,
 	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
 	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
 	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
 	local myarch="$(tc-arch)"
 
 	# Avoid CFLAGS problems, bug #352457, bug #390147.

diff --git a/www-client/chromium/chromium-94.0.4595.0.ebuild b/www-client/chromium/chromium-94.0.4595.0.ebuild
index e74922587b5..1e16bca46d8 100644
--- a/www-client/chromium/chromium-94.0.4595.0.ebuild
+++ b/www-client/chromium/chromium-94.0.4595.0.ebuild
@@ -234,6 +234,7 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -651,13 +652,14 @@ src_configure() {
 	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
 	# Note: these are for Gentoo use ONLY. For your own distribution,
 	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
+	# for more info. The OAuth2 credentials, however, have been left out.
+	# Those OAuth2 credentials have been broken for quite some time anyway.
+	# Instead we apply a patch to use the --oauth2-client-id= and
+	# --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+	# GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+	# Chromium without baked-in values.
 	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
 	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
 	local myarch="$(tc-arch)"
 
 	# Avoid CFLAGS problems, bug #352457, bug #390147.

diff --git a/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch b/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch
new file mode 100644
index 00000000000..9d9c57bfb0d
--- /dev/null
+++ b/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch
@@ -0,0 +1,17 @@
+diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc
+--- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc	2021-02-24 22:37:18.494007649 +0000
++++ chromium-89.0.4389.58/google_apis/google_api_keys.cc	2021-02-24 22:35:00.865777600 +0000
+@@ -154,11 +154,11 @@ class APIKeyCache {
+ 
+     std::string default_client_id = CalculateKeyValue(
+         GOOGLE_DEFAULT_CLIENT_ID,
+-        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr,
++        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID,
+         std::string(), environment.get(), command_line, gaia_config);
+     std::string default_client_secret = CalculateKeyValue(
+         GOOGLE_DEFAULT_CLIENT_SECRET,
+-        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr,
++        STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret,
+         std::string(), environment.get(), command_line, gaia_config);
+ 
+     // We currently only allow overriding the baked-in values for the


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-07-27 17:39 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-07-27 17:39 UTC (permalink / raw
  To: gentoo-commits

commit:     afa4f06bc7e383b77191f6325ed4efef50ac49f8
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 27 17:38:58 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Jul 27 17:39:17 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=afa4f06b

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/803167
Closes: https://bugs.gentoo.org/803467
Closes: https://bugs.gentoo.org/769989
Closes: https://bugs.gentoo.org/796527
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   3 -
 www-client/chromium/chromium-91.0.4472.164.ebuild  | 944 ---------------------
 .../files/chromium-89-EnumTable-crash.patch        |  71 --
 .../files/chromium-91-ThemeService-crash.patch     |  36 -
 .../chromium/files/chromium-91-system-icu.patch    |  29 -
 .../chromium/files/chromium-glibc-2.33.patch       | 141 ---
 6 files changed, 1224 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 17bdadfd498..70ae8403bf5 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,3 @@
-DIST chromium-91-patchset-6.tar.xz 4280 BLAKE2B 18887953453133589cfc5df58d24725047235fac3652cc7af7bd117fbc94aa9a2e1b1dd3147f772f84d8fa3e7b5b77159abc1e408d7b24b065bb1f12cebbfb2f SHA512 49b4aaedfbb1fa5629dbb453bb74f5735c05b14407ea3d2bb1eaee9686e03661a3c471357d085ab839dff16df92d71dae3a6f17486c017a79a836c1d8780a250
-DIST chromium-91-ppc64le-6.tar.xz 28968 BLAKE2B 5153be672aec91899d9eabe3ddf4c3d0b4b2d307e396afa2a83bf3102bc540fa62d69df365057128227428bd3abfc8cab9203fae41e5150191025d8ecea935ab SHA512 78071d204bf04a13a132a63a3d268a0d6d05a895c1ee55a41176fb5cca975c502e69a83ca0388ecea92c041f24235c452abdfbf0ee557e93db6685589fb9428b
-DIST chromium-91.0.4472.164.tar.xz 950253100 BLAKE2B 4de7222dbf8fb22115518625ebc8eb62eca281bd4a28ee9d4f4450545aa4155a5bf7478f56d9ba482c102deea5c7b3214299549480c19d972b1380931f7ba4df SHA512 3d15b7df6d6627084bc82cfb6f9c52f917cdb03cea73f85199e6d41eb9636db867e56ea60d69a8bbc92dd8cb59f13b4ae6c609d59f32fe04f88c33252225f8a5
 DIST chromium-92-glibc-2.33-patch.tar.xz 12636 BLAKE2B 0621d2135c1a0864374010c36959deda7b612d448e28780bfe8968fcd45363c091a84413eb3c6f560e9f805a421b910f33e9cc023055e7bf7801aa374d41dc80 SHA512 6d9e999c0b18186f2db28a804f9f84f6b472cf2fac33d72a0b09ded3106f43378a6eaf52b316e0b07a3876d9074ba299a285bdf06193553ee81bdbea4bc66294
 DIST chromium-92-patchset-7.tar.xz 4004 BLAKE2B 8587663a072eb08abacbc2e54924855f29efefdbec46acf5cb8b0cc40b816b96ba7694c4ab1abe997572a6dbecf94ea27f368a7337263adfff44f2b4b042d862 SHA512 65c8267ab0921719c71d4b03a4315bbb1ceec35ce4794de9dcc6099b2c349baf4782b67316ebb8c9db233630b7fc89fa0baf719f9f0f41eb39972cdeb437e612
 DIST chromium-92-ppc64le-1.tar.xz 30416 BLAKE2B e953e3ba1ac0ff4bae437328eb1c52fb3863007ff92db91c6858c8c5f7b4c5c39fb8bf6898c3385c7faa82666f1a18aae7fcb5379b9199e58c5c0526fbd9dbee SHA512 b5a20076a34705c53c56d7763189ebfd860a456ca544a7f0c9ce30c877be92270ea724f1bebb9b597b301def27dde0a672b0c30e16e6abbf958cecfd60b07ec5

diff --git a/www-client/chromium/chromium-91.0.4472.164.ebuild b/www-client/chromium/chromium-91.0.4472.164.ebuild
deleted file mode 100644
index ba08b840323..00000000000
--- a/www-client/chromium/chromium-91.0.4472.164.ebuild
+++ /dev/null
@@ -1,944 +0,0 @@
-# Copyright 2009-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="6"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-PPC64LE_PATCHSET="6"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
-	arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )
-	ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-$(ver_cut 1)-ppc64le-${PPC64LE_PATCHSET}.tar.xz )"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libxcb:=
-	x11-libs/libxshmfence:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/libxkbcommon:=
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	!headless? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:0/0.3 )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-		)
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	app-arch/unzip
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-12"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-12"
-	DEPEND+=" >=sys-libs/libcxx-12"
-else
-	COMMON_DEPEND="
-		app-arch/snappy:=
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-69.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			CPP="${CHOST}-clang++ -E"
-			if ! ver_test "$(clang-major-version)" -ge 12; then
-				die "At least clang 12 is required"
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="8G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-91-ThemeService-crash.patch"
-		"${FILESDIR}/chromium-91-system-icu.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-	)
-
-	# seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
-	if has_version -d ">=sys-libs/glibc-2.33"; then
-		ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
-		ewarn "still not work correctly. In case of issues, try to disable seccomp"
-		ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
-		ewarn "in /etc/chromium/default."
-		PATCHES+=(
-			"${FILESDIR}/chromium-glibc-2.33.patch"
-		)
-	fi
-
-	use ppc64 && eapply -p0 "${WORKDIR}/${PN}"-ppc64le
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	# bundled highway library does not support arm64 with GCC
-	if use arm64; then
-		rm -r third_party/highway/src || die
-		ln -s "${WORKDIR}/highway-0.12.1" third_party/highway/src || die
-	fi
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/fabricjs
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fdlibm
-		third_party/fft2d
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/fusejs
-		third_party/highway
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/libzip
-		third_party/gemmlowp
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/harfbuzz-ng/utils
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/fastfeat
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libjxl
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/tcmalloc
-		third_party/tensorflow-text
-		third_party/tflite
-		third_party/tflite/src/third_party/eigen3
-		third_party/tflite/src/third_party/fft2d
-		third_party/tflite-support
-		third_party/tint
-		third_party/ruy
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/utf
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webgpu-cts
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	if use js-type-check; then
-		ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
-	fi
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	# Disable pseudolocales, only used for testing
-	myconf_gn+=" enable_pseudolocales=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# highway/libjxl relies on this with arm64
-	if use arm64 && tc-is-gcc; then
-		append-cxxflags -flax-vector-conversions
-	fi
-
-	# highway/libjxl fail on ppc64 without extra patches, disable for now.
-	use ppc64 && myconf_gn+=" enable_jxl_decoder=false"
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-	myconf_gn+=" ozone_platform_headless=true"
-	if use wayland || use headless; then
-		if use headless; then
-			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
-		else
-			myconf_gn+=" ozone_platform_wayland=true"
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	myconf_gn+=" use_thin_lto=false"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# https://bugs.gentoo.org/717456
-	# don't inherit PYTHONPATH from environment, bug #789021
-	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
-			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. You have to enable it"
-		elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
-		elog "in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-}

diff --git a/www-client/chromium/files/chromium-89-EnumTable-crash.patch b/www-client/chromium/files/chromium-89-EnumTable-crash.patch
deleted file mode 100644
index 89a50702dfa..00000000000
--- a/www-client/chromium/files/chromium-89-EnumTable-crash.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
-index e3130c7..2ad16ea 100644
---- a/components/cast_channel/enum_table.h
-+++ b/components/cast_channel/enum_table.h
-@@ -212,7 +212,7 @@ class
- 
-   template <typename E>
-   friend class EnumTable;
--  DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
-+  DISALLOW_ASSIGN(GenericEnumTableEntry);
- };
- 
- // Yes, these constructors really needs to be inlined.  Even though they look
-@@ -250,8 +250,7 @@ class EnumTable {
-     // Constructor for regular entries.
-     constexpr Entry(E value, base::StringPiece str)
-         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
--
--    DISALLOW_COPY_AND_ASSIGN(Entry);
-+    DISALLOW_ASSIGN(Entry);
-   };
- 
-   static_assert(sizeof(E) <= sizeof(int32_t),
-@@ -306,15 +305,14 @@ class EnumTable {
-     if (is_sorted_) {
-       const std::size_t index = static_cast<std::size_t>(value);
-       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
--        const auto& entry = data_.begin()[index];
-+        const auto& entry = data_[index];
-         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
-           return entry.str();
-       }
-       return base::nullopt;
-     }
-     return GenericEnumTableEntry::FindByValue(
--        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
--        data_.size(), static_cast<int32_t>(value));
-+        &data_[0], data_.size(), static_cast<int32_t>(value));
-   }
- 
-   // This overload of GetString is designed for cases where the argument is a
-@@ -342,8 +340,7 @@ class EnumTable {
-   // enum value directly.
-   base::Optional<E> GetEnum(base::StringPiece str) const {
-     auto* entry = GenericEnumTableEntry::FindByString(
--        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
--        data_.size(), str);
-+        &data_[0], data_.size(), str);
-     return entry ? static_cast<E>(entry->value) : base::Optional<E>();
-   }
- 
-@@ -358,7 +355,7 @@ class EnumTable {
-   // Align the data on a cache line boundary.
-   alignas(64)
- #endif
--      std::initializer_list<Entry> data_;
-+      const std::vector<Entry> data_;
-   bool is_sorted_;
- 
-   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
-@@ -370,8 +367,8 @@ class EnumTable {
- 
-     for (std::size_t i = 0; i < data.size(); i++) {
-       for (std::size_t j = i + 1; j < data.size(); j++) {
--        const Entry& ei = data.begin()[i];
--        const Entry& ej = data.begin()[j];
-+        const Entry& ei = data[i];
-+        const Entry& ej = data[j];
-         DCHECK(ei.value != ej.value)
-             << "Found duplicate enum values at indices " << i << " and " << j;
-         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))

diff --git a/www-client/chromium/files/chromium-91-ThemeService-crash.patch b/www-client/chromium/files/chromium-91-ThemeService-crash.patch
deleted file mode 100644
index 455aef33e78..00000000000
--- a/www-client/chromium/files/chromium-91-ThemeService-crash.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 265192616d494ed586df9123ceb63389a7c48916 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Tue, 13 Apr 2021 06:20:25 +0000
-Subject: [PATCH] fix crash in theme_service
-
----
- chrome/browser/themes/theme_service.h | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 592d40a..337dfac 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -299,6 +299,10 @@ class ThemeService : public KeyedService,
-   // The number of infobars currently displayed.
-   int number_of_reinstallers_ = 0;
- 
-+  // Declared before |theme_syncable_service_|, because ThemeSyncableService
-+  // removes itself from the |observers_| list on destruction.
-+  base::ObserverList<ThemeServiceObserver> observers_;
-+
-   std::unique_ptr<ThemeSyncableService> theme_syncable_service_;
- 
- #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -320,8 +324,6 @@ class ThemeService : public KeyedService,
-   ScopedObserver<ui::NativeTheme, ui::NativeThemeObserver>
-       native_theme_observer_{this};
- 
--  base::ObserverList<ThemeServiceObserver> observers_;
--
-   base::WeakPtrFactory<ThemeService> weak_ptr_factory_{this};
- 
-   DISALLOW_COPY_AND_ASSIGN(ThemeService);
--- 
-2.26.3
-

diff --git a/www-client/chromium/files/chromium-91-system-icu.patch b/www-client/chromium/files/chromium-91-system-icu.patch
deleted file mode 100644
index 797ee33b374..00000000000
--- a/www-client/chromium/files/chromium-91-system-icu.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a0ddb153bdaf0ef83c8bfec744fedb97bf4ccfd0 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 16 Apr 2021 14:09:29 +0000
-Subject: [PATCH] [unbundle] Use char16_t as UCHAR_TYPE
-
-Overriding UCHAR_TYPE was dropped with:
-https://chromium-review.googlesource.com/c/chromium/deps/icu/+/2732628
----
- build/linux/unbundle/icu.gn | 19 +++++++------------
- 1 file changed, 7 insertions(+), 12 deletions(-)
-
-diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
-index 0f52fc1..33a0121 100644
---- a/build/linux/unbundle/icu.gn
-+++ b/build/linux/unbundle/icu.gn
-@@ -16,7 +16,6 @@ config("icu_config") {
-   defines = [
-     "USING_SYSTEM_ICU=1",
-     "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
--    "UCHAR_TYPE=uint16_t",
- 
-     # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
-     # on classes through the U_COMMON_API and U_I18N_API macros (among others).
-   ]
- }
- 
--- 
-2.26.3
-

diff --git a/www-client/chromium/files/chromium-glibc-2.33.patch b/www-client/chromium/files/chromium-glibc-2.33.patch
deleted file mode 100644
index 26e8003968d..00000000000
--- a/www-client/chromium/files/chromium-glibc-2.33.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
---- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix	2021-01-25 10:11:45.427436398 -0500
-+++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc	2021-01-25 10:12:51.337699003 -0500
-@@ -257,6 +257,18 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-     return RestrictKillTarget(current_pid, sysno);
-   }
- 
-+#if defined(__NR_newfstatat)
-+  if (sysno == __NR_newfstatat) {
-+    return RewriteFstatatSIGSYS();
-+  }
-+#endif
-+
-+#if defined(__NR_fstatat64)
-+  if (sysno == __NR_fstatat64) {
-+    return RewriteFstatatSIGSYS();
-+  }
-+#endif
-+
-   if (SyscallSets::IsFileSystem(sysno) ||
-       SyscallSets::IsCurrentDirectory(sysno)) {
-     return Error(fs_denied_errno);
-diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
---- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix	2021-01-25 10:13:10.179774081 -0500
-+++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc	2021-01-25 10:16:18.790525746 -0500
-@@ -6,6 +6,8 @@
- 
- #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
- 
-+#include <errno.h>
-+#include <fcntl.h>
- #include <stddef.h>
- #include <stdint.h>
- #include <string.h>
-@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct
-   return -ENOSYS;
- }
- 
-+intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
-+                              void* aux) {
-+  switch (args.nr) {
-+#if defined(__NR_newfstatat)
-+    case __NR_newfstatat:
-+#endif
-+#if defined(__NR_fstatat64)
-+    case __NR_fstatat64:
-+#endif
-+#if defined(__NR_newfstatat) || defined(__NR_fstatat64)
-+      if (*reinterpret_cast<const char *>(args.args[1]) == '\0'
-+          && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
-+        return sandbox::sys_fstat64(static_cast<int>(args.args[0]),
-+                                    reinterpret_cast<struct stat64 *>(args.args[2]));
-+      } else {
-+        errno = EACCES;
-+        return -1;
-+      }
-+      break;
-+#endif
-+  }
-+
-+  CrashSIGSYS_Handler(args, aux);
-+
-+  // Should never be reached.
-+  RAW_CHECK(false);
-+  return -ENOSYS;
-+}
-+
- bpf_dsl::ResultExpr CrashSIGSYS() {
-   return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL);
- }
-@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS()
-   return bpf_dsl::Trap(SIGSYSSchedHandler, NULL);
- }
- 
-+bpf_dsl::ResultExpr RewriteFstatatSIGSYS() {
-+  return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL);
-+}
-+
- void AllocateCrashKeys() {
- #if !defined(OS_NACL_NONSFI)
-   if (seccomp_crash_key)
-diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
---- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix	2021-01-25 10:16:36.982598236 -0500
-+++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h	2021-01-25 10:18:45.705111027 -0500
-@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFail
- // sched_setparam(), sched_setscheduler()
- SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args,
-                                            void* aux);
-+// If the fstatat syscall is actually a disguised fstat, calls the regular fstat
-+// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler.
-+SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, 
-+                                             void* aux);
- 
- // Variants of the above functions for use with bpf_dsl.
- SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS();
-@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Crash
- SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex();
- SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace();
- SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS();
-+SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS();
- 
- // Allocates a crash key so that Seccomp information can be recorded.
- void AllocateCrashKeys();
-diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc
---- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix	2021-01-25 10:18:53.307141311 -0500
-+++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc	2021-01-25 10:19:46.982355293 -0500
-@@ -261,4 +261,13 @@ int sys_sigaction(int signum,
- 
- #endif  // defined(MEMORY_SANITIZER)
- 
-+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf)
-+{
-+#if defined(__NR_fstat64)
-+    return syscall(__NR_fstat64, fd, buf);
-+#else
-+    return syscall(__NR_fstat, fd, buf);
-+#endif
-+}
-+
- }  // namespace sandbox
-diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h
---- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix	2021-01-25 10:19:53.115379741 -0500
-+++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h	2021-01-25 10:20:45.485588421 -0500
-@@ -17,6 +17,7 @@ struct sock_fprog;
- struct rlimit64;
- struct cap_hdr;
- struct cap_data;
-+struct stat64;
- 
- namespace sandbox {
- 
-@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int sig
-                                  const struct sigaction* act,
-                                  struct sigaction* oldact);
- 
-+// Recent glibc rewrites fstat to fstatat.
-+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf);
-+
- }  // namespace sandbox
- 
- #endif  // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-07-26 21:17 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-07-26 21:17 UTC (permalink / raw
  To: gentoo-commits

commit:     0c8827bdd3d8723d0d84d79787e6c9f241306385
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 26 21:16:01 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Jul 26 21:17:08 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0c8827bd

www-client/chromium: dev channel bump to 93.0.4577.8

Bug: https://bugs.gentoo.org/803260
Bug: https://bugs.gentoo.org/769989
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +-
 ...0.4557.4.ebuild => chromium-93.0.4577.8.ebuild} | 21 ++----
 .../files/chromium-93-EnumTable-crash.patch        | 79 ++++++++++++++++++++++
 3 files changed, 88 insertions(+), 16 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a238f1b3018..17bdadfd498 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -5,7 +5,7 @@ DIST chromium-92-glibc-2.33-patch.tar.xz 12636 BLAKE2B 0621d2135c1a0864374010c36
 DIST chromium-92-patchset-7.tar.xz 4004 BLAKE2B 8587663a072eb08abacbc2e54924855f29efefdbec46acf5cb8b0cc40b816b96ba7694c4ab1abe997572a6dbecf94ea27f368a7337263adfff44f2b4b042d862 SHA512 65c8267ab0921719c71d4b03a4315bbb1ceec35ce4794de9dcc6099b2c349baf4782b67316ebb8c9db233630b7fc89fa0baf719f9f0f41eb39972cdeb437e612
 DIST chromium-92-ppc64le-1.tar.xz 30416 BLAKE2B e953e3ba1ac0ff4bae437328eb1c52fb3863007ff92db91c6858c8c5f7b4c5c39fb8bf6898c3385c7faa82666f1a18aae7fcb5379b9199e58c5c0526fbd9dbee SHA512 b5a20076a34705c53c56d7763189ebfd860a456ca544a7f0c9ce30c877be92270ea724f1bebb9b597b301def27dde0a672b0c30e16e6abbf958cecfd60b07ec5
 DIST chromium-92.0.4515.107.tar.xz 957809240 BLAKE2B 61f34c6de424dbc0bed4a3f6ede42c936389e3280ffccc6db8750674fc512257120fad4006bf5e31701cfebf9cd12df96bb2936296293312317dee85748bf773 SHA512 8814a3371e38836cee02178fa06bee612d00efe561791278351ef5312f5225742d416043fe6e25e9e353ae3d82dbd5ef57c9b1f115423da6537288e9aece779a
-DIST chromium-93-patchset-5.tar.xz 4404 BLAKE2B f347a66c5767bb03dd6a0feda433f51f5110e0429c6f55494000bd1a61a4f3b6a218e7f12ce91a02adae94ee0a85d0aceb12aef5a0537e9362f23817edb662c0 SHA512 39d3bd5ad51e33d5d82a42d5289ab137bdb3280e4d2d647fce86eb59d14a01e9f31531cf82ba9055168c18d1fb96e3013e2d40dc89b30c725c89241d34b7b25d
-DIST chromium-93.0.4557.4.tar.xz 1034639148 BLAKE2B d515e5be84f63bd21e757750963188390bc1b888aeb50a1b7767805784e6efce1c89f058fe5bcdf73a8790677a2b76cd3f01cc6df1b245996924ae46e91911d6 SHA512 b5b214d639becdfdb4a6bd2ee04c9556ee4eca0e436ed6580c8e6d9e5a37476ae1fa208eef741aa8d8535f30f1e751041aaf02fff57dbd685341d7b5866a81cc
+DIST chromium-93-patchset-6.tar.xz 6796 BLAKE2B 2688c68becac1187668b459f9827ffca79de6c7ee64299dff20f91cb774af676ec3d95d809b4fc5f7bd663c3b8c904a46ac9cd3ec70a5ce248456dcd48834932 SHA512 eaf0d2bc29c53c7021ccded9c14463bbde2887926c069154c0126ee1bf513bf41a38eeb3dc21023a2e9637ce3e1e541a3b2a79a990bb8becae0da0a04e57c76a
+DIST chromium-93.0.4577.8.tar.xz 1041484708 BLAKE2B 7978b7771c9e964efc28e691fc16e7b0679372ef86d7477327f40e8f7682638606e88711cce438f12616011e1e3bc4ad2d0b9be741a409cc8001a78f0632c0a7 SHA512 8940dee8186244bca134b83a452a7d2668d2a382ef32034cf4b7e8c781d709c679418e4fc97f744f14d10f8bdf0d9104eaadbd32efd0dce43d600b4cf5b933e4
 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-93.0.4557.4.ebuild b/www-client/chromium/chromium-93.0.4577.8.ebuild
similarity index 98%
rename from www-client/chromium/chromium-93.0.4557.4.ebuild
rename to www-client/chromium/chromium-93.0.4577.8.ebuild
index 206632b872e..8bcd0f7a812 100644
--- a/www-client/chromium/chromium-93.0.4557.4.ebuild
+++ b/www-client/chromium/chromium-93.0.4577.8.ebuild
@@ -13,10 +13,11 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="5"
+PATCHSET="6"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+	https://dev.gentoo.org/~sultan/distfiles/www-client/${PN}/${PN}-92-glibc-2.33-patch.tar.xz
 	arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )"
 
 LICENSE="BSD"
@@ -55,7 +56,7 @@ COMMON_DEPEND="
 	>=dev-libs/nss-3.26:=
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
-	media-libs/freetype:=
+	>=media-libs/freetype-2.11.0:=
 	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
@@ -232,22 +233,14 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
+		"${WORKDIR}/sandbox-patches/chromium-syscall_broker.patch"
+		"${WORKDIR}/sandbox-patches/chromium-fstatat-crash.patch"
+		"${FILESDIR}/chromium-92-GetUsableSize-nullptr.patch"
+		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
-	# seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
-	if has_version -d ">=sys-libs/glibc-2.33"; then
-		ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
-		ewarn "still not work correctly. In case of issues, try to disable seccomp"
-		ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
-		ewarn "in /etc/chromium/default."
-		PATCHES+=(
-			"${FILESDIR}/chromium-glibc-2.33.patch"
-		)
-	fi
-
 	default
 
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die

diff --git a/www-client/chromium/files/chromium-93-EnumTable-crash.patch b/www-client/chromium/files/chromium-93-EnumTable-crash.patch
new file mode 100644
index 00000000000..a5c2defa0ae
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-EnumTable-crash.patch
@@ -0,0 +1,79 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index a63ae86..83ada65 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -8,6 +8,7 @@
+ #include <cstdint>
+ #include <cstring>
+ #include <ostream>
++#include <vector>
+ 
+ #include "base/check_op.h"
+ #include "base/macros.h"
+@@ -213,7 +214,7 @@ class
+ 
+   template <typename E>
+   friend class EnumTable;
+-  DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
++  DISALLOW_ASSIGN(GenericEnumTableEntry);
+ };
+ 
+ // Yes, these constructors really needs to be inlined.  Even though they look
+@@ -251,8 +252,7 @@ class EnumTable {
+     // Constructor for regular entries.
+     constexpr Entry(E value, base::StringPiece str)
+         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+-
+-    DISALLOW_COPY_AND_ASSIGN(Entry);
++    DISALLOW_ASSIGN(Entry);
+   };
+ 
+   static_assert(sizeof(E) <= sizeof(int32_t),
+@@ -307,15 +307,14 @@ class EnumTable {
+     if (is_sorted_) {
+       const std::size_t index = static_cast<std::size_t>(value);
+       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+-        const auto& entry = data_.begin()[index];
++        const auto& entry = data_[index];
+         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+           return entry.str();
+       }
+       return absl::nullopt;
+     }
+     return GenericEnumTableEntry::FindByValue(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), static_cast<int32_t>(value));
++        &data_[0], data_.size(), static_cast<int32_t>(value));
+   }
+ 
+   // This overload of GetString is designed for cases where the argument is a
+@@ -343,8 +342,7 @@ class EnumTable {
+   // enum value directly.
+   absl::optional<E> GetEnum(base::StringPiece str) const {
+     auto* entry = GenericEnumTableEntry::FindByString(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), str);
++        &data_[0], data_.size(), str);
+     return entry ? static_cast<E>(entry->value) : absl::optional<E>();
+   }
+ 
+@@ -359,7 +357,7 @@ class EnumTable {
+   // Align the data on a cache line boundary.
+   alignas(64)
+ #endif
+-      std::initializer_list<Entry> data_;
++      const std::vector<Entry> data_;
+   bool is_sorted_;
+ 
+   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -371,8 +369,8 @@ class EnumTable {
+ 
+     for (std::size_t i = 0; i < data.size(); i++) {
+       for (std::size_t j = i + 1; j < data.size(); j++) {
+-        const Entry& ei = data.begin()[i];
+-        const Entry& ej = data.begin()[j];
++        const Entry& ei = data[i];
++        const Entry& ej = data[j];
+         DCHECK(ei.value != ej.value)
+             << "Found duplicate enum values at indices " << i << " and " << j;
+         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-07-24  9:48 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-07-24  9:48 UTC (permalink / raw
  To: gentoo-commits

commit:     774d25d68d6fce0e1fc0168f50f515c988e6ebf6
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 24 09:47:31 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Jul 24 09:48:39 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=774d25d6

www-client/chromium: stable channel bump to 92.0.4515.107

Bug: https://bugs.gentoo.org/803167
Bug: https://bugs.gentoo.org/803467
Bug: https://bugs.gentoo.org/769989
Bug: https://bugs.gentoo.org/803260
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  3 +-
 ...515.80.ebuild => chromium-92.0.4515.107.ebuild} | 16 +++----
 .../files/chromium-92-GetUsableSize-nullptr.patch  | 46 ++++++++++++++++++++
 .../chromium/files/chromium-freetype-2.11.patch    | 50 ++++++++++++++++++++++
 4 files changed, 103 insertions(+), 12 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a4bc9b45d5a..a301c93fedd 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,8 +1,9 @@
 DIST chromium-91-patchset-6.tar.xz 4280 BLAKE2B 18887953453133589cfc5df58d24725047235fac3652cc7af7bd117fbc94aa9a2e1b1dd3147f772f84d8fa3e7b5b77159abc1e408d7b24b065bb1f12cebbfb2f SHA512 49b4aaedfbb1fa5629dbb453bb74f5735c05b14407ea3d2bb1eaee9686e03661a3c471357d085ab839dff16df92d71dae3a6f17486c017a79a836c1d8780a250
 DIST chromium-91-ppc64le-6.tar.xz 28968 BLAKE2B 5153be672aec91899d9eabe3ddf4c3d0b4b2d307e396afa2a83bf3102bc540fa62d69df365057128227428bd3abfc8cab9203fae41e5150191025d8ecea935ab SHA512 78071d204bf04a13a132a63a3d268a0d6d05a895c1ee55a41176fb5cca975c502e69a83ca0388ecea92c041f24235c452abdfbf0ee557e93db6685589fb9428b
 DIST chromium-91.0.4472.164.tar.xz 950253100 BLAKE2B 4de7222dbf8fb22115518625ebc8eb62eca281bd4a28ee9d4f4450545aa4155a5bf7478f56d9ba482c102deea5c7b3214299549480c19d972b1380931f7ba4df SHA512 3d15b7df6d6627084bc82cfb6f9c52f917cdb03cea73f85199e6d41eb9636db867e56ea60d69a8bbc92dd8cb59f13b4ae6c609d59f32fe04f88c33252225f8a5
+DIST chromium-92-glibc-2.33-patch.tar.xz 12636 BLAKE2B 0621d2135c1a0864374010c36959deda7b612d448e28780bfe8968fcd45363c091a84413eb3c6f560e9f805a421b910f33e9cc023055e7bf7801aa374d41dc80 SHA512 6d9e999c0b18186f2db28a804f9f84f6b472cf2fac33d72a0b09ded3106f43378a6eaf52b316e0b07a3876d9074ba299a285bdf06193553ee81bdbea4bc66294
 DIST chromium-92-patchset-7.tar.xz 4004 BLAKE2B 8587663a072eb08abacbc2e54924855f29efefdbec46acf5cb8b0cc40b816b96ba7694c4ab1abe997572a6dbecf94ea27f368a7337263adfff44f2b4b042d862 SHA512 65c8267ab0921719c71d4b03a4315bbb1ceec35ce4794de9dcc6099b2c349baf4782b67316ebb8c9db233630b7fc89fa0baf719f9f0f41eb39972cdeb437e612
-DIST chromium-92.0.4515.80.tar.xz 957805500 BLAKE2B 9c622d45fd62b58ff1c8f3cb8745502747e3a6ee8f453a35927212f2ff71cfeb216cc7fc1e78010e4f5178b18062ddc36aa74c1dcb3daf32ba8ef08285fb196f SHA512 04ba2c24c987e9885674e7efd2a2b9415673424f1f3a18e1d79afb2683d984927b15067003040e8fb92ff8be31cda042aac052e9369a1a3709d6b11bf9d1df7a
+DIST chromium-92.0.4515.107.tar.xz 957809240 BLAKE2B 61f34c6de424dbc0bed4a3f6ede42c936389e3280ffccc6db8750674fc512257120fad4006bf5e31701cfebf9cd12df96bb2936296293312317dee85748bf773 SHA512 8814a3371e38836cee02178fa06bee612d00efe561791278351ef5312f5225742d416043fe6e25e9e353ae3d82dbd5ef57c9b1f115423da6537288e9aece779a
 DIST chromium-93-patchset-5.tar.xz 4404 BLAKE2B f347a66c5767bb03dd6a0feda433f51f5110e0429c6f55494000bd1a61a4f3b6a218e7f12ce91a02adae94ee0a85d0aceb12aef5a0537e9362f23817edb662c0 SHA512 39d3bd5ad51e33d5d82a42d5289ab137bdb3280e4d2d647fce86eb59d14a01e9f31531cf82ba9055168c18d1fb96e3013e2d40dc89b30c725c89241d34b7b25d
 DIST chromium-93.0.4557.4.tar.xz 1034639148 BLAKE2B d515e5be84f63bd21e757750963188390bc1b888aeb50a1b7767805784e6efce1c89f058fe5bcdf73a8790677a2b76cd3f01cc6df1b245996924ae46e91911d6 SHA512 b5b214d639becdfdb4a6bd2ee04c9556ee4eca0e436ed6580c8e6d9e5a37476ae1fa208eef741aa8d8535f30f1e751041aaf02fff57dbd685341d7b5866a81cc
 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb

diff --git a/www-client/chromium/chromium-92.0.4515.80.ebuild b/www-client/chromium/chromium-92.0.4515.107.ebuild
similarity index 98%
rename from www-client/chromium/chromium-92.0.4515.80.ebuild
rename to www-client/chromium/chromium-92.0.4515.107.ebuild
index ed824b3cebf..42231b2a855 100644
--- a/www-client/chromium/chromium-92.0.4515.80.ebuild
+++ b/www-client/chromium/chromium-92.0.4515.107.ebuild
@@ -19,6 +19,7 @@ PPC64LE_PATCHSET="91-ppc64le-6"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+	https://dev.gentoo.org/~sultan/distfiles/www-client/${PN}/${PN}-92-glibc-2.33-patch.tar.xz
 	arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )
 	ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-${PPC64LE_PATCHSET}.tar.xz )"
 
@@ -230,21 +231,14 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
+		"${WORKDIR}/sandbox-patches/chromium-syscall_broker.patch"
+		"${WORKDIR}/sandbox-patches/chromium-fstatat-crash.patch"
 		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-92-GetUsableSize-nullptr.patch"
+		"${FILESDIR}/chromium-freetype-2.11.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
-	# seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
-	if has_version -d ">=sys-libs/glibc-2.33"; then
-		ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
-		ewarn "still not work correctly. In case of issues, try to disable seccomp"
-		ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
-		ewarn "in /etc/chromium/default."
-		PATCHES+=(
-			"${FILESDIR}/chromium-glibc-2.33.patch"
-		)
-	fi
-
 	use ppc64 && eapply -p0 "${WORKDIR}/${PN}"-ppc64le
 
 	default

diff --git a/www-client/chromium/files/chromium-92-GetUsableSize-nullptr.patch b/www-client/chromium/files/chromium-92-GetUsableSize-nullptr.patch
new file mode 100644
index 00000000000..e36ed1b6615
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-GetUsableSize-nullptr.patch
@@ -0,0 +1,46 @@
+From 61e16c92ff24bb71b9b7309a9d6d470ee91738bc Mon Sep 17 00:00:00 2001
+From: Bartek Nowierski <bartekn@chromium.org>
+Date: Wed, 21 Jul 2021 15:01:38 +0000
+Subject: [PATCH] [PA] Make GetUsableSize() handle nullptr gracefully
+
+malloc_usable_size() is expected to not crush on NULL and return 0.
+
+Bug: 1221442
+Change-Id: I6a3b90dcf3a8ad18114c206d87b98f60d5f50eb1
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3042177
+Commit-Queue: Bartek Nowierski <bartekn@chromium.org>
+Commit-Queue: Kentaro Hara <haraken@chromium.org>
+Auto-Submit: Bartek Nowierski <bartekn@chromium.org>
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#903900}
+---
+
+diff --git a/base/allocator/partition_allocator/partition_alloc_unittest.cc b/base/allocator/partition_allocator/partition_alloc_unittest.cc
+index c1212011..8863984 100644
+--- a/base/allocator/partition_allocator/partition_alloc_unittest.cc
++++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc
+@@ -2838,6 +2838,10 @@
+   }
+ }
+ 
++TEST_F(PartitionAllocTest, GetUsableSizeNull) {
++  EXPECT_EQ(0ULL, PartitionRoot<ThreadSafe>::GetUsableSize(nullptr));
++}
++
+ TEST_F(PartitionAllocTest, GetUsableSize) {
+   size_t delta = SystemPageSize() + 1;
+   for (size_t size = 1; size <= kMinDirectMappedDownsize; size += delta) {
+diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h
+index b72a1d9..baac9525 100644
+--- a/base/allocator/partition_allocator/partition_root.h
++++ b/base/allocator/partition_allocator/partition_root.h
+@@ -1220,6 +1220,9 @@
+ // PartitionAlloc's internal data. Used as malloc_usable_size.
+ template <bool thread_safe>
+ ALWAYS_INLINE size_t PartitionRoot<thread_safe>::GetUsableSize(void* ptr) {
++  // malloc_usable_size() is expected to handle NULL gracefully and return 0.
++  if (!ptr)
++    return 0;
+   auto* slot_span = SlotSpan::FromSlotInnerPtr(ptr);
+   auto* root = FromSlotSpan(slot_span);
+   return slot_span->GetUsableSize(root);

diff --git a/www-client/chromium/files/chromium-freetype-2.11.patch b/www-client/chromium/files/chromium-freetype-2.11.patch
new file mode 100644
index 00000000000..aee6dc82e98
--- /dev/null
+++ b/www-client/chromium/files/chromium-freetype-2.11.patch
@@ -0,0 +1,50 @@
+--- a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
++++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
+@@ -712,7 +712,11 @@ void colrv1_draw_paint(SkCanvas* canvas,
+             canvas->drawPaint(colrPaint);
+             break;
+         }
++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
++        case FT_COLR_PAINTFORMAT_TRANSFORM:
++#else
+         case FT_COLR_PAINTFORMAT_TRANSFORMED:
++#endif
+         case FT_COLR_PAINTFORMAT_TRANSLATE:
+         case FT_COLR_PAINTFORMAT_ROTATE:
+         case FT_COLR_PAINTFORMAT_SKEW:
+@@ -759,10 +763,17 @@ void colrv1_transform(SkCanvas* canvas, FT_Face face, FT_COLR_Paint colrv1_paint
+     SkMatrix transform;
+ 
+     switch (colrv1_paint.format) {
++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
++        case FT_COLR_PAINTFORMAT_TRANSFORM: {
++            transform = ToSkMatrix(colrv1_paint.u.transform.affine);
++            break;
++        }
++#else
+         case FT_COLR_PAINTFORMAT_TRANSFORMED: {
+             transform = ToSkMatrix(colrv1_paint.u.transformed.affine);
+             break;
+         }
++#endif
+         case FT_COLR_PAINTFORMAT_TRANSLATE: {
+             transform = SkMatrix::Translate(
+                 SkFixedToScalar(colrv1_paint.u.translate.dx),
+@@ -880,10 +891,17 @@ bool colrv1_traverse_paint(SkCanvas* canvas,
+             traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID,
+                                                  FT_COLOR_NO_ROOT_TRANSFORM);
+             break;
++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
++        case FT_COLR_PAINTFORMAT_TRANSFORM:
++            colrv1_transform(canvas, face, paint);
++            traverse_result = colrv1_traverse_paint(canvas, palette, face,
++                                                    paint.u.transform.paint, visited_set);
++#else
+         case FT_COLR_PAINTFORMAT_TRANSFORMED:
+             colrv1_transform(canvas, face, paint);
+             traverse_result = colrv1_traverse_paint(canvas, palette, face,
+                                                     paint.u.transformed.paint, visited_set);
++#endif
+             break;
+         case FT_COLR_PAINTFORMAT_TRANSLATE:
+             colrv1_transform(canvas, face, paint);


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-06-16 21:28 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-06-16 21:28 UTC (permalink / raw
  To: gentoo-commits

commit:     c1ef113a9ac6be73c36b0a03fe87f20786c1d05b
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 16 21:27:32 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Jun 16 21:27:59 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1ef113a

www-client/chromium: dev channel bump to 93.0.4542.2

Package-Manager: Portage-3.0.18, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +--
 ...0.4535.3.ebuild => chromium-93.0.4542.2.ebuild} | 29 +++++++++++++---------
 .../files/chromium-93-InkDropHost-crash.patch      | 25 +++++++++++++++++++
 3 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d7028ccff4c..18e984aa070 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -5,7 +5,7 @@ DIST chromium-91.0.4472.101.tar.xz 950228560 BLAKE2B 441ef6106c09e24ae5b0ebbcebc
 DIST chromium-91.0.4472.106.tar.xz 950214296 BLAKE2B 1c68c3d6ccb593b4516482ba8f18f3bf769fe90ca423692f8e8d9fabd36fa8cda7a66f870fc30478ea4e1f9bd147bb6cadb77df4d9e0ef846c30e653b15dcc98 SHA512 142507bbf5fcc47d7eeb5f890ed70eae403271a7f537903545ad09ac26501aae914f327c3287d5588ed4ab601012584f6204cca6896ed2705326b090df2fe00c
 DIST chromium-92-patchset-6.tar.xz 3764 BLAKE2B a7149940b1371e4bd295e6038b87cc13f4edf8d8ed286d9d8d0e63144c2546de39564fc203a4b2e185267e46398efd0414c1f695ee31c78d33a6cd8d7b434016 SHA512 2f104901271d42762ea27f7c8a017307bde7348ec6b84d0c85875a07bf3783ba43bdb886fb3c6376753b6a14102b495a28bdc7adc611992440d2c1345aea035b
 DIST chromium-92.0.4515.51.tar.xz 957598564 BLAKE2B 5b911148153cae7058522d155b671c96f94a42621b9e0c371a82acb953de5bfa0baa1c6fe410a8e23d1ff77756437c39bab809cee1f95634ab1abb87ff5456b7 SHA512 63bb8012b7f0cec81bdb13e0acf1ef43e996cb3c66f2374933741c21fd906a6e0ce88e16b4772d4f14cb197c3e35f99235b56021780e405d245b5721096ae732
-DIST chromium-93-patchset-2.tar.xz 4844 BLAKE2B 34036f2529043329ef33f142c90929504445c8597fbee57f5614579672f88d71ee3c8eb4b0864051fbeaa30ff4a6958a2f71240b11a84d7ebb695b6b90bd21d2 SHA512 db25ef16f82947d2f9971648dbdd41b1c30e6323d85535c6fd6dbcae9d408606cd9c55a609140aa6baff072d2c71fa811bc2fe8fca465004b734690f8f875744
-DIST chromium-93.0.4535.3.tar.xz 966263580 BLAKE2B 88166ea8f11f41aa088859ecd193873d695ca04731d36d795a8d31f1b49884235203bebf93c80531003b5c6d6fcc73bb14715d3c8284240cb4400c8c05a09eb0 SHA512 b09eff9129ea9e1cdfa72747d30f624b223c07622536b085096652e48d7c1e72aea2de08bb77533ef4101a707474c8bf3cd861b43fa589a70b536f46b4b3af73
+DIST chromium-93-patchset-3.tar.xz 4848 BLAKE2B eb46541d283f8c17967ad45ac36838f9f46f20883eb13260c5804aaf805736283a7890e5f76ab7c1dccfd218bbf55cfbb04378c116c4e390a575c91511308aa7 SHA512 be61f3c907899121e08394647c276f638201e6c1a2d682fac0e559117866e3c1c40fd6283159725504d699b6ad6ef773e980e0e98487aafb80f1c458a3b55959
+DIST chromium-93.0.4542.2.tar.xz 988397092 BLAKE2B 9491aff480ca5200b0ebfa0ddb2082cffe7f86475241d99c320a4c415e36df81696d14323219e8d2a62ae0cc18bdbc03a8f5dff57b95acf25316b842b9c1c648 SHA512 28e00b6e343e74a6abb0d9c60017e37c6ec5e577ac292232cf7d6f13176edc1663f2c4fd5a18a5436b76055d9ac7ec2b4c477dbe59a9a963bd62d447aaf8c56c
 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-93.0.4535.3.ebuild b/www-client/chromium/chromium-93.0.4542.2.ebuild
similarity index 98%
rename from www-client/chromium/chromium-93.0.4535.3.ebuild
rename to www-client/chromium/chromium-93.0.4542.2.ebuild
index 6274a641629..c99ac3f994e 100644
--- a/www-client/chromium/chromium-93.0.4535.3.ebuild
+++ b/www-client/chromium/chromium-93.0.4542.2.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-PYTHON_COMPAT=( python3_8 )
+PYTHON_COMPAT=( python3_{8,9} )
 PYTHON_REQ_USE="xml"
 
 CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
@@ -13,10 +13,9 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="2"
+PATCHSET="3"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
 	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
 	arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )"
 
@@ -106,10 +105,11 @@ DEPEND="${COMMON_DEPEND}
 # dev-vcs/git - https://bugs.gentoo.org/593476
 BDEPEND="
 	${PYTHON_DEPS}
+	$(python_gen_any_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	')
 	>=app-arch/gzip-1.7
-	app-arch/unzip
 	dev-lang/perl
-	dev-lang/python:2.7[xml]
 	>=dev-util/gn-0.1807
 	dev-vcs/git
 	>=dev-util/gperf-3.0.3
@@ -178,6 +178,10 @@ them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
 in /etc/chromium/default.
 "
 
+python_check_deps() {
+	has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
 pre_build_checks() {
 	if [[ ${MERGE_TYPE} != binary ]]; then
 		local -x CPP="$(tc-getCXX) -E"
@@ -229,6 +233,7 @@ src_prepare() {
 	local PATCHES=(
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -248,9 +253,8 @@ src_prepare() {
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die
 	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
 
-	# adjust python interpreter versions
+	# adjust python interpreter version
 	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-	sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
 
 	# bundled highway library does not support arm64 with GCC
 	if use arm64; then
@@ -258,6 +262,9 @@ src_prepare() {
 		ln -s "${WORKDIR}/highway-0.12.1" third_party/highway/src || die
 	fi
 
+	# lastchange.py requires initialized git repository
+	git init -q || die
+
 	local keeplibs=(
 		base/third_party/cityhash
 		base/third_party/double_conversion
@@ -477,7 +484,6 @@ src_prepare() {
 		third_party/xcbproto
 		third_party/zxcvbn-cpp
 		third_party/zlib/google
-		tools/grit/third_party/six
 		url/third_party/mozilla
 		v8/src/third_party/siphash
 		v8/src/third_party/valgrind
@@ -648,6 +654,9 @@ src_configure() {
 	# Disable pseudolocales, only used for testing
 	myconf_gn+=" enable_pseudolocales=false"
 
+	# Disable code formating of generated files
+	myconf_gn+=" blink_enable_generated_code_formatting=false"
+
 	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
 	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
 	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
@@ -799,10 +808,6 @@ src_compile() {
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
 
-	# https://bugs.gentoo.org/717456
-	# don't inherit PYTHONPATH from environment, bug #789021
-	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
-
 	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
 
 	# Build mksnapshot and pax-mark it.

diff --git a/www-client/chromium/files/chromium-93-InkDropHost-crash.patch b/www-client/chromium/files/chromium-93-InkDropHost-crash.patch
new file mode 100644
index 00000000000..54d16db56cc
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-InkDropHost-crash.patch
@@ -0,0 +1,25 @@
+diff --git a/ui/views/animation/ink_drop_host_view.h b/ui/views/animation/ink_drop_host_view.h
+index bd0975b..e5df288 100644
+--- a/ui/views/animation/ink_drop_host_view.h
++++ b/ui/views/animation/ink_drop_host_view.h
+@@ -238,6 +238,11 @@ class VIEWS_EXPORT InkDropHost {
+   // Used to observe View and inform the InkDrop of host-transform changes.
+   ViewLayerTransformObserver host_view_transform_observer_;
+ 
++  // Declared before |ink_drop_|, because InkDropImpl may call
++  // RemoveInkDropLayer on partly destructed InkDropHost. In
++  // that case |ink_drop_mask_| must be still valid.
++  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
++
+   // Should not be accessed directly. Use GetInkDrop() instead.
+   std::unique_ptr<InkDrop> ink_drop_;
+ 
+@@ -261,8 +266,6 @@ class VIEWS_EXPORT InkDropHost {
+   int ink_drop_small_corner_radius_ = 2;
+   int ink_drop_large_corner_radius_ = 4;
+ 
+-  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
+-
+   base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
+   base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
+       create_ink_drop_ripple_callback_;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-05-22  8:37 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-05-22  8:37 UTC (permalink / raw
  To: gentoo-commits

commit:     1a75872451572b76f33fbd3fbcd5c1658e686d0e
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat May 22 08:36:47 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat May 22 08:37:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a758724

www-client/chromium: dev channel bump to 92.0.4512.4

Package-Manager: Portage-3.0.18, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  4 +-
 ...0.4503.0.ebuild => chromium-92.0.4512.4.ebuild} |  5 +-
 .../files/chromium-92-EnumTable-crash.patch        | 71 ++++++++++++++++++++++
 3 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e821fc4b07d..05daeeb43c6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,7 +2,7 @@ DIST chromium-90-patchset-7.tar.xz 3892 BLAKE2B 3ba169baaaf74b548749be3f845f5052
 DIST chromium-90.0.4430.212.tar.xz 917430448 BLAKE2B dbea5515a62c3f3a12596da6d77cad106d377ddda8956da81b8fe8c0c1e3bfa90ba82bca8c1c4fd95282ee0c00a5f3f5206a05728043eb967395a8cf8bda960d SHA512 7cd300d22725e3457b9e3347fb34d6f5728c91aa178d6960d4243bc80122c446890c2276334a01f9c81a43479339e9e266c3bbb040081a22c521b3c4250850f5
 DIST chromium-91-patchset-5.tar.xz 3648 BLAKE2B 6c8636f63dc857886d09c8ed69b4c61adc627d2280decdf03b548be8ff2cb522ef0def7a240d1c3c9ee71920304a43af571e2146e2828b89c3b6f87373b8c4a1 SHA512 1554feec958291ad3140e2685683befe4b6e0b0ab6a8694c0e02d5b4bf4b7fcad410f17e72099653456fd95ed24a732dd28f2dcfaf146eb3bf68052e2342a481
 DIST chromium-91.0.4472.69.tar.xz 949883808 BLAKE2B b5abb1d0223949cfa39e40414c7ef07890ead2ae9d78dd0bdc764fcb69df716df25c422f1183976750245e33b8e80e7f024eb75a7c4656444092489068858c74 SHA512 d3b34db6c2bea306a847ffae422f7da473545aa9f56321225e084aa9ed4ee7d6d231dabbf95c5f7b956330200ac5ed8510fd76109d3ecbeef77f5f9b9ec9bc30
-DIST chromium-92-patchset-4.tar.xz 3584 BLAKE2B b0b2d1fda98a0db83ee57ed57e04e87ba2a89f47b00a0f7afd584f8739432558b169588448f58d787242da900256c019c7b259fa21b41be7fd86fb42e5446759 SHA512 33647157286d0dc0e45aa6a30b92c1373fec3ae50359dd4df036098a668d94b8cce39e89b17719847698ca24934426b22883a24445339d7629efe186b3914f57
-DIST chromium-92.0.4503.0.tar.xz 957887500 BLAKE2B cdaeffa87547635d1f5366895d4f54e2f7b278a5653ccf72510afc40bff01681aa19261877a811f6843de4379346d1cc046e55a6b0e22ff3ece70c9137563ccc SHA512 a4b351a77605565d5ea230b569d2ee9bcd1035aa25f0d951ee7aa78625000c935ac68c98126a9a6b83f3227fbb7492a7e6c199d5bffb4746164a322ffb64036c
+DIST chromium-92-patchset-5.tar.xz 2776 BLAKE2B d5504f4bd6bc771b93a89d6ac492bd1b7f64e227040bbba66dff847357d26a0fa4331cd3784b018b4e7a9be5713dc109d99ba88ed2ec8b9310c304e4ea08a681 SHA512 8e4808f7698295b9c76d6ff150291b1756e5de1971a639e1c4e8dcabdb1e40d46b9ddeaddafb53955c2aedfc7dfc01ee09d27f6c04df613e82518b6ddc70992c
+DIST chromium-92.0.4512.4.tar.xz 961899172 BLAKE2B 8525a5059c9350e36a232b49847f7bf4f561f9c1542a0761d31a06a2bd08a579e98c1cfe15fcd55af9ccc6aad701add35ba71f3ef7f942a0788d3d41057aaf99 SHA512 ac5a2c4b28c1518e848677dadc7ec53214484f9e53e057b4d8c8148d53b7cda97c0fd5397c2cf2cc5569c900b49139ba8cdd2795b706d79d53bccdfb55dc827c
 DIST chromium-ppc64le-3f575325dcc3bdfc419824518bac6d4c38241859.tar.xz 28880 BLAKE2B 60390c938cbe329867a721f061750cd49a1ed0b48808181f4a85fd0f369f6061619f4f5a3023f9890a11a21ce5d60f87f74374eb1250a2a7100bf7c7eff15df7 SHA512 594bd170c2da4dc2b6bfd3a8aed31ca6acd67a5fb4ee7c4fa8a63439feb46df003aba79118bfd54a4e01ba18f1d329e760894e169915c266118414ad62b7c3ae
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-92.0.4503.0.ebuild b/www-client/chromium/chromium-92.0.4512.4.ebuild
similarity index 99%
rename from www-client/chromium/chromium-92.0.4503.0.ebuild
rename to www-client/chromium/chromium-92.0.4512.4.ebuild
index 830457732be..ca9749ca680 100644
--- a/www-client/chromium/chromium-92.0.4503.0.ebuild
+++ b/www-client/chromium/chromium-92.0.4512.4.ebuild
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="4"
+PATCHSET="5"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
@@ -227,7 +227,7 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -322,7 +322,6 @@ src_prepare() {
 		third_party/devtools-frontend/src/front_end/third_party/chromium
 		third_party/devtools-frontend/src/front_end/third_party/codemirror
 		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/fabricjs
 		third_party/devtools-frontend/src/front_end/third_party/i18n
 		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
 		third_party/devtools-frontend/src/front_end/third_party/lighthouse

diff --git a/www-client/chromium/files/chromium-92-EnumTable-crash.patch b/www-client/chromium/files/chromium-92-EnumTable-crash.patch
new file mode 100644
index 00000000000..7fb7360e026
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-EnumTable-crash.patch
@@ -0,0 +1,71 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index e3130c7..2ad16ea 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -212,7 +212,7 @@ class
+ 
+   template <typename E>
+   friend class EnumTable;
+-  DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
++  DISALLOW_ASSIGN(GenericEnumTableEntry);
+ };
+ 
+ // Yes, these constructors really needs to be inlined.  Even though they look
+@@ -250,8 +250,7 @@ class EnumTable {
+     // Constructor for regular entries.
+     constexpr Entry(E value, base::StringPiece str)
+         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+-
+-    DISALLOW_COPY_AND_ASSIGN(Entry);
++    DISALLOW_ASSIGN(Entry);
+   };
+ 
+   static_assert(sizeof(E) <= sizeof(int32_t),
+@@ -306,15 +305,14 @@ class EnumTable {
+     if (is_sorted_) {
+       const std::size_t index = static_cast<std::size_t>(value);
+       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+-        const auto& entry = data_.begin()[index];
++        const auto& entry = data_[index];
+         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+           return entry.str();
+       }
+       return absl::nullopt;
+     }
+     return GenericEnumTableEntry::FindByValue(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), static_cast<int32_t>(value));
++        &data_[0], data_.size(), static_cast<int32_t>(value));
+   }
+ 
+   // This overload of GetString is designed for cases where the argument is a
+@@ -342,8 +340,7 @@ class EnumTable {
+   // enum value directly.
+   absl::optional<E> GetEnum(base::StringPiece str) const {
+     auto* entry = GenericEnumTableEntry::FindByString(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), str);
++        &data_[0], data_.size(), str);
+     return entry ? static_cast<E>(entry->value) : absl::optional<E>();
+   }
+ 
+@@ -358,7 +355,7 @@ class EnumTable {
+   // Align the data on a cache line boundary.
+   alignas(64)
+ #endif
+-      std::initializer_list<Entry> data_;
++      const std::vector<Entry> data_;
+   bool is_sorted_;
+ 
+   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -370,8 +367,8 @@ class EnumTable {
+ 
+     for (std::size_t i = 0; i < data.size(); i++) {
+       for (std::size_t j = i + 1; j < data.size(); j++) {
+-        const Entry& ei = data.begin()[i];
+-        const Entry& ej = data.begin()[j];
++        const Entry& ei = data[i];
++        const Entry& ej = data[j];
+         DCHECK(ei.value != ej.value)
+             << "Found duplicate enum values at indices " << i << " and " << j;
+         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-04-19 13:07 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-04-19 13:07 UTC (permalink / raw
  To: gentoo-commits

commit:     0281624f33f5b72153c975719759fa15b7804aba
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 19 13:06:27 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Apr 19 13:06:53 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0281624f

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/782970
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   3 -
 www-client/chromium/chromium-89.0.4389.114.ebuild  | 900 --------------------
 www-client/chromium/chromium-89.0.4389.128.ebuild  | 910 ---------------------
 .../files/chromium-89-webcodecs-deps.patch         |  26 -
 4 files changed, 1839 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f9bb0669943..1217bb38927 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,3 @@
-DIST chromium-89-patchset-7.tar.xz 4640 BLAKE2B 6150f92a4cb83025b7521c573e9a14bfcb26f7a5ff4ebe79cfc819b214ae05d0e986b9db561a99b4f9c7b4a8e4adf1c8ee966011bb0791ef11fc2be89b03b216 SHA512 6ef5be9e56b82c70d3d1a0596e74af3bab97ea82a8247b6d0ba736411779be10b17c7cd9ccd9eae5fac27af3907fd3b56e301e73011f58b2c4052bbc03390b1c
-DIST chromium-89.0.4389.114.tar.xz 890898912 BLAKE2B b9590f83eb54fc1b524a7893f8ce0317cb5648aae84853b8958f2a0f65ae2f8331e65732322f4956fb5bc58ef3691755ae66ed901567e2b5a9749a99fc6096c4 SHA512 5b8d92ecde3ab35847dc4981caa12434334f81fc576e8809c5832a18989b6d1465ae8c43f0ad0ea8a3da7a5876c52679c57ec8323109de2b81ac467419fa1a4c
-DIST chromium-89.0.4389.128.tar.xz 890850492 BLAKE2B 24a6437024994c5fbefc059b966e1bd6dd3d11ad827ba2dc0e010e5503a7a93579d0cb23acc0c00f687c7f21372bb04eae875e555abb933a4a9afe813b8b727c SHA512 37f694dea7a1f398082c5c0f02579c9e2c855a424cf4e09ebc94cac9313836e604dcc52bd1fbc105ac3d5e54bb056da3e62daec1e3bbd11c00f466125ef4bdc1
 DIST chromium-90-patchset-7.tar.xz 3892 BLAKE2B 3ba169baaaf74b548749be3f845f505256cc9573f798e10929b5d1f0f534d739e657e3fa134c78ec3f7987a3b89adfc4bee0d1a6585ad8fe4bdc3ffd1181042c SHA512 5e1aa834ee5668ee40fc3af5cda7325da710dd1a0dea7ce535e89e36fd7d321db63d520a9b6ce6372ed941473dff18d1276316567af810c18e1478a04d3f23f8
 DIST chromium-90.0.4430.72.tar.xz 917364932 BLAKE2B 12813a6cd32c5ff2532d4d97d99e955d4ec7868c702e437039fd7daa806b8f9d77b96a2dc713438efcb5c1b14069ca3489b666e2c33daa3b0ac701c3038662b5 SHA512 b07943ac1535cce0d02046b6e79eb01809bfae95ad6eea3bc7d209ff41d54278ca6575462ea372f3014b434e4f1dc8e529aa752a77ec519659abd089e21506e3
 DIST chromium-91-patchset-5.tar.xz 3648 BLAKE2B 6c8636f63dc857886d09c8ed69b4c61adc627d2280decdf03b548be8ff2cb522ef0def7a240d1c3c9ee71920304a43af571e2146e2828b89c3b6f87373b8c4a1 SHA512 1554feec958291ad3140e2685683befe4b6e0b0ab6a8694c0e02d5b4bf4b7fcad410f17e72099653456fd95ed24a732dd28f2dcfaf146eb3bf68052e2342a481

diff --git a/www-client/chromium/chromium-89.0.4389.114.ebuild b/www-client/chromium/chromium-89.0.4389.114.ebuild
deleted file mode 100644
index 58a650cd3dc..00000000000
--- a/www-client/chromium/chromium-89.0.4389.114.ebuild
+++ /dev/null
@@ -1,900 +0,0 @@
-# Copyright 2009-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="7"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu +tcmalloc vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libxcb:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	<sys-libs/glibc-2.33
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	!headless? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			dev-libs/libffi:=
-			screencast? ( media-video/pipewire:0/0.3 )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-			x11-libs/libxkbcommon:=
-		)
-	)
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	app-arch/unzip
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-10"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-10"
-	DEPEND+=" >=sys-libs/libcxx-10"
-else
-	COMMON_DEPEND="
-		app-arch/snappy:=
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-68.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			if use component-build; then
-				die "Component build with clang requires fuzzer headers."
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-89-webcodecs-deps.patch"
-		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-	)
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/fabricjs
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/fusejs
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/harfbuzz-ng/utils
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/schema_org
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/tint
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Disable Client ID and secrets as requested by
-	# Google. Feel free to contact chromium@gentoo.org for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-#	local google_default_client_id="329227923882.apps.googleusercontent.com"
-#	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-#	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-#	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	if use wayland || use headless; then
-		myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-		myconf_gn+=" ozone_platform_headless=true"
-		if use headless; then
-			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
-		else
-			myconf_gn+=" ozone_platform_wayland=true"
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	else
-		myconf_gn+=" use_ozone=false"
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# https://bugs.gentoo.org/717456
-	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
-			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-accelerated-video-decode"
-		elog "inside Chromium or add --enable-accelerated-video-decode"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-}

diff --git a/www-client/chromium/chromium-89.0.4389.128.ebuild b/www-client/chromium/chromium-89.0.4389.128.ebuild
deleted file mode 100644
index db9c25d44cb..00000000000
--- a/www-client/chromium/chromium-89.0.4389.128.ebuild
+++ /dev/null
@@ -1,910 +0,0 @@
-# Copyright 2009-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="7"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu +tcmalloc vaapi wayland widevine"
-REQUIRED_USE="
-	component-build? ( !suid )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libxcb:=
-	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	!headless? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		wayland? (
-			dev-libs/wayland:=
-			dev-libs/libffi:=
-			screencast? ( media-video/pipewire:0/0.3 )
-			x11-libs/gtk+:3[wayland,X]
-			x11-libs/libdrm:=
-			x11-libs/libxkbcommon:=
-		)
-	)
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	app-arch/unzip
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-# These are intended for ebuild maintainer use to force clang if GCC is broken.
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-10"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-10"
-	DEPEND+=" >=sys-libs/libcxx-10"
-else
-	COMMON_DEPEND="
-		app-arch/snappy:=
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-68.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			if use component-build; then
-				die "Component build with clang requires fuzzer headers."
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
-	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
-		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-89-webcodecs-deps.patch"
-		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-shim_headers.patch"
-	)
-
-	# seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
-	if has_version -d ">=sys-libs/glibc-2.33"; then
-		ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
-		ewarn "still not work correctly. In case of issues, try to disable seccomp"
-		ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
-		ewarn "in /etc/chromium/default."
-		PATCHES+=(
-			"${FILESDIR}/chromium-glibc-2.33.patch"
-		)
-	fi
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/dawn/third_party/khronos
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/fabricjs
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/fusejs
-		third_party/libgifcodec
-		third_party/liburlpattern
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/harfbuzz-ng/utils
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libva_protected_content
-		third_party/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		third_party/libwebm
-		third_party/libx11
-		third_party/libxcb-keysyms
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/perfetto/protos/third_party/chromium
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/private_membership
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/schema_org
-		third_party/securemessage
-		third_party/shell-encryption
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/tint
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/x11proto
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-	if use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-	myconf_gn+=" use_vaapi=$(usex vaapi true false)"
-	myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone wayland and/or headless support
-	if use wayland || use headless; then
-		myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-		myconf_gn+=" ozone_platform_headless=true"
-		if use headless; then
-			myconf_gn+=" ozone_platform=\"headless\""
-			myconf_gn+=" use_x11=false"
-		else
-			myconf_gn+=" ozone_platform_wayland=true"
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	else
-		myconf_gn+=" use_ozone=false"
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-		# Disable PGO, because profile data is only compatible with >=clang-11
-		myconf_gn+=" chrome_pgo_phase=0"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# https://bugs.gentoo.org/717456
-	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
-			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so out/Release/*.so.[0-9])
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-
-	if use vaapi; then
-		elog "VA-API is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-accelerated-video-decode"
-		elog "inside Chromium or add --enable-accelerated-video-decode"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-	if use screencast; then
-		elog "Screencast is disabled by default at runtime. Either enable it"
-		elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
-		elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
-		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
-	fi
-}

diff --git a/www-client/chromium/files/chromium-89-webcodecs-deps.patch b/www-client/chromium/files/chromium-89-webcodecs-deps.patch
deleted file mode 100644
index 304f45df05d..00000000000
--- a/www-client/chromium/files/chromium-89-webcodecs-deps.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b6f16f656bb8683f70ce8ce19791d594fce4163b Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 15 Jan 2021 19:54:08 +0000
-Subject: [PATCH] add dependency on opus in webcodecs
-
-webcodecs uses opus, but dependency is missing. With unbundled
-opus library build fails, because include path is incomplete.
----
- third_party/blink/renderer/modules/webcodecs/BUILD.gn | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
-index 2c407ec..0474bfe 100644
---- a/third_party/blink/renderer/modules/webcodecs/BUILD.gn
-+++ b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
-@@ -63,6 +63,7 @@ blink_modules_sources("webcodecs") {
-     "//media/mojo/clients",
-     "//media/mojo/mojom",
-     "//third_party/libyuv:libyuv",
-+    "//third_party/opus",
-   ]
-   if (media_use_openh264) {
-     deps += [ "//third_party/openh264:encoder" ]
--- 
-2.26.2
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-04-13 17:01 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-04-13 17:01 UTC (permalink / raw
  To: gentoo-commits

commit:     d3ff3ceee4053d9ca58ca904b27b036d861aef91
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 13 17:00:22 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Apr 13 17:01:11 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3ff3cee

www-client/chromium: beta channel bump to 90.0.4430.70

Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   4 +-
 ...4430.61.ebuild => chromium-90.0.4430.70.ebuild} |  14 +-
 .../chromium/files/chromium-glibc-2.33.patch       | 141 +++++++++++++++++++++
 3 files changed, 155 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 72334096ea2..dd4f2d01e1e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,7 +1,7 @@
 DIST chromium-89-patchset-7.tar.xz 4640 BLAKE2B 6150f92a4cb83025b7521c573e9a14bfcb26f7a5ff4ebe79cfc819b214ae05d0e986b9db561a99b4f9c7b4a8e4adf1c8ee966011bb0791ef11fc2be89b03b216 SHA512 6ef5be9e56b82c70d3d1a0596e74af3bab97ea82a8247b6d0ba736411779be10b17c7cd9ccd9eae5fac27af3907fd3b56e301e73011f58b2c4052bbc03390b1c
 DIST chromium-89.0.4389.114.tar.xz 890898912 BLAKE2B b9590f83eb54fc1b524a7893f8ce0317cb5648aae84853b8958f2a0f65ae2f8331e65732322f4956fb5bc58ef3691755ae66ed901567e2b5a9749a99fc6096c4 SHA512 5b8d92ecde3ab35847dc4981caa12434334f81fc576e8809c5832a18989b6d1465ae8c43f0ad0ea8a3da7a5876c52679c57ec8323109de2b81ac467419fa1a4c
-DIST chromium-90-patchset-6.tar.xz 3828 BLAKE2B bbd1378868cf4d699ff097ea41226ff694d58468f8f93860f2d6cc60924f35fb1f0b17fcf5a916f04545171d1219b699072222f138240fd483c704874cfce178 SHA512 70321eb4e9fe27818d5e6ae3109d3871a870a7fb6886328dcc9fc8291ac72fc003d678aec7f9925afe0c5667c70ce9bca8f61434b11a331fc1a29d61ad7b59e3
-DIST chromium-90.0.4430.61.tar.xz 917389704 BLAKE2B 58f79e1b7365d22d9f8fa0deb52dab3f5e027f18f5bda926e733035b5f2e5c7af07265806f5a88f5d5fb556164dd7221a6546f3b6c8dd013048e17f4202dd18a SHA512 9e029d08e396b85b9a3cbc67910ba47b67ecb8acaf607844cbeddb18907b3b8f15444034487c6258f253eb84835d21fccee4d654fbc5b815cc03b8be032eccac
+DIST chromium-90-patchset-7.tar.xz 3892 BLAKE2B 3ba169baaaf74b548749be3f845f505256cc9573f798e10929b5d1f0f534d739e657e3fa134c78ec3f7987a3b89adfc4bee0d1a6585ad8fe4bdc3ffd1181042c SHA512 5e1aa834ee5668ee40fc3af5cda7325da710dd1a0dea7ce535e89e36fd7d321db63d520a9b6ce6372ed941473dff18d1276316567af810c18e1478a04d3f23f8
+DIST chromium-90.0.4430.70.tar.xz 917490588 BLAKE2B 335bd7cca22b691dce110ca838c71abc8971423be1f74709f2f95dbd6c5c9cfb79dca9391ceb11e2571ef0ce66e727bcaadef044923d2df7720873db71e48e72 SHA512 c75bd3b0078d90aa28d0542c845fbae1ac7a478ca70386ad74f98f4541186e3d5f5ceafd4f447ee541dfff2cc4cb5bec9be5d8d510cb52fcf2d188c3fc666311
 DIST chromium-91-patchset-4.tar.xz 3188 BLAKE2B 34d64f4124cb5c020d7d20c883c3409f710b96d5412f8881936e86d78ed034c1d70bd16f9324c5af21f735c3c5f98b4b4cd28cbd7f86f9513df2a5f1ff404772 SHA512 79c1640a7248d628c31fdbf3df296aa888e80f3c90cc6a74be56ac1389d9748b7cce88641e626cd4a5ae298e82fb325a8604fda68378706f0f26a2570e8983a2
 DIST chromium-91.0.4469.4.tar.xz 949712784 BLAKE2B 99453196fb9f2336afffb03affcf7441a1ee5f8c9ce50c76888783b8520f2490299e5fc3448c7f61c270c175e48e55a1f947f8cfdf0053a02513676d9ed8daeb SHA512 413452da449198713e6d10f05b937f95a6c0ffb11b2408dc9ced1048af6f7a406af07f8112fe39f73482723802ff25e51ce0085c598d03dba207a5658385871d
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-90.0.4430.61.ebuild b/www-client/chromium/chromium-90.0.4430.70.ebuild
similarity index 98%
rename from www-client/chromium/chromium-90.0.4430.61.ebuild
rename to www-client/chromium/chromium-90.0.4430.70.ebuild
index 10be8d7a2e6..341730c15b5 100644
--- a/www-client/chromium/chromium-90.0.4430.61.ebuild
+++ b/www-client/chromium/chromium-90.0.4430.70.ebuild
@@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="6"
+PATCHSET="7"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
@@ -70,7 +70,6 @@ COMMON_DEPEND="
 	)
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
-	<sys-libs/glibc-2.33
 	virtual/udev
 	x11-libs/cairo:=
 	x11-libs/gdk-pixbuf:2
@@ -237,6 +236,17 @@ src_prepare() {
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
+	# seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
+	if has_version -d ">=sys-libs/glibc-2.33"; then
+		ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
+		ewarn "still not work correctly. In case of issues, try to disable seccomp"
+		ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
+		ewarn "in /etc/chromium/default."
+		PATCHES+=(
+			"${FILESDIR}/chromium-glibc-2.33.patch"
+		)
+	fi
+
 	default
 
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die

diff --git a/www-client/chromium/files/chromium-glibc-2.33.patch b/www-client/chromium/files/chromium-glibc-2.33.patch
new file mode 100644
index 00000000000..26e8003968d
--- /dev/null
+++ b/www-client/chromium/files/chromium-glibc-2.33.patch
@@ -0,0 +1,141 @@
+diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+--- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix	2021-01-25 10:11:45.427436398 -0500
++++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc	2021-01-25 10:12:51.337699003 -0500
+@@ -257,6 +257,18 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+     return RestrictKillTarget(current_pid, sysno);
+   }
+ 
++#if defined(__NR_newfstatat)
++  if (sysno == __NR_newfstatat) {
++    return RewriteFstatatSIGSYS();
++  }
++#endif
++
++#if defined(__NR_fstatat64)
++  if (sysno == __NR_fstatat64) {
++    return RewriteFstatatSIGSYS();
++  }
++#endif
++
+   if (SyscallSets::IsFileSystem(sysno) ||
+       SyscallSets::IsCurrentDirectory(sysno)) {
+     return Error(fs_denied_errno);
+diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+--- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix	2021-01-25 10:13:10.179774081 -0500
++++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc	2021-01-25 10:16:18.790525746 -0500
+@@ -6,6 +6,8 @@
+ 
+ #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
+ 
++#include <errno.h>
++#include <fcntl.h>
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <string.h>
+@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct
+   return -ENOSYS;
+ }
+ 
++intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
++                              void* aux) {
++  switch (args.nr) {
++#if defined(__NR_newfstatat)
++    case __NR_newfstatat:
++#endif
++#if defined(__NR_fstatat64)
++    case __NR_fstatat64:
++#endif
++#if defined(__NR_newfstatat) || defined(__NR_fstatat64)
++      if (*reinterpret_cast<const char *>(args.args[1]) == '\0'
++          && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
++        return sandbox::sys_fstat64(static_cast<int>(args.args[0]),
++                                    reinterpret_cast<struct stat64 *>(args.args[2]));
++      } else {
++        errno = EACCES;
++        return -1;
++      }
++      break;
++#endif
++  }
++
++  CrashSIGSYS_Handler(args, aux);
++
++  // Should never be reached.
++  RAW_CHECK(false);
++  return -ENOSYS;
++}
++
+ bpf_dsl::ResultExpr CrashSIGSYS() {
+   return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL);
+ }
+@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS()
+   return bpf_dsl::Trap(SIGSYSSchedHandler, NULL);
+ }
+ 
++bpf_dsl::ResultExpr RewriteFstatatSIGSYS() {
++  return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL);
++}
++
+ void AllocateCrashKeys() {
+ #if !defined(OS_NACL_NONSFI)
+   if (seccomp_crash_key)
+diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
+--- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix	2021-01-25 10:16:36.982598236 -0500
++++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h	2021-01-25 10:18:45.705111027 -0500
+@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFail
+ // sched_setparam(), sched_setscheduler()
+ SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args,
+                                            void* aux);
++// If the fstatat syscall is actually a disguised fstat, calls the regular fstat
++// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler.
++SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, 
++                                             void* aux);
+ 
+ // Variants of the above functions for use with bpf_dsl.
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS();
+@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Crash
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex();
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace();
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS();
++SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS();
+ 
+ // Allocates a crash key so that Seccomp information can be recorded.
+ void AllocateCrashKeys();
+diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc
+--- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix	2021-01-25 10:18:53.307141311 -0500
++++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc	2021-01-25 10:19:46.982355293 -0500
+@@ -261,4 +261,13 @@ int sys_sigaction(int signum,
+ 
+ #endif  // defined(MEMORY_SANITIZER)
+ 
++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf)
++{
++#if defined(__NR_fstat64)
++    return syscall(__NR_fstat64, fd, buf);
++#else
++    return syscall(__NR_fstat, fd, buf);
++#endif
++}
++
+ }  // namespace sandbox
+diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h
+--- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix	2021-01-25 10:19:53.115379741 -0500
++++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h	2021-01-25 10:20:45.485588421 -0500
+@@ -17,6 +17,7 @@ struct sock_fprog;
+ struct rlimit64;
+ struct cap_hdr;
+ struct cap_data;
++struct stat64;
+ 
+ namespace sandbox {
+ 
+@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int sig
+                                  const struct sigaction* act,
+                                  struct sigaction* oldact);
+ 
++// Recent glibc rewrites fstat to fstatat.
++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf);
++
+ }  // namespace sandbox
+ 
+ #endif  // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-02-28  9:16 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-02-28  9:16 UTC (permalink / raw
  To: gentoo-commits

commit:     8bf681f550ca32b2d1078b0884903caa580dbff6
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 28 09:15:21 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Feb 28 09:16:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8bf681f5

www-client/chromium: beta channel bump to 89.0.4389.69

Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...4389.58.ebuild => chromium-89.0.4389.69.ebuild} |  1 -
 .../files/chromium-89-empty-map-crash.patch        | 39 ----------------------
 3 files changed, 1 insertion(+), 41 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index adce3ee13e4..4229742bd54 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,7 +1,7 @@
 DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74bc6a734b49a9ca43343d03903159dafc66159939f9a6c4b55665ddbe7bd97a26d8d86c285ec02cf76cad5f5cc7410570 SHA512 c39afa26f5b0b9930f6f67ce0c42eefd74c09d528b26bc0db57129b150f75ff83c8b1cb97bd9c5d75f288fb4767cc68c9c5ce89231b4a59f8ca02493e4dd281a
 DIST chromium-88.0.4324.182.tar.xz 857221352 BLAKE2B 7263294154232533f18d0bc8eeaa7097c3578f8e585ce953c9e6990ec7c9ffbfbd0e69f89c4852c09197aab592877350f54590cf4f0bbec9481886f3fc34548a SHA512 ce8d507645e937107847199b55287ec5522e778851367a19c4cfa4ff5fae18e7c7ea999aa7b0ad0758fab68a003f201bf38ae51e3642388705de2ada9be87730
 DIST chromium-89-patchset-6.tar.xz 4308 BLAKE2B 22e2db8b5e287925f8b550075e48ad381ccf7ef54e23d8f4e4aedff7fd6cfee8f9e70eff1edb8c867c256ee5ec881ef9379e18278b84b47ff08dcc00f5801667 SHA512 aa5d902c1959f50eb9a0d773a77bf12e5a955d796ee8b18f6e2143573dd73beec62109940e55a858fd9927753dba1d3bf9c1bd940b18a616e7b70b801e93f041
-DIST chromium-89.0.4389.58.tar.xz 890700788 BLAKE2B c8310497671ba1e528d31412e51f7dbbcd2a91a4a1537bd6fdd6acabffa4daad59df0fd9aed1ee92d6e07787f856f32b1f04af311bbb6d9e8c44214e330291fe SHA512 617db2e37cf668faf294167aba81be447e3a50c94c0bc8efa9b18964d18ef57c9dac26aae337f79f01773b69ec39c60117eb10fd102016da1f06de65a1979edc
+DIST chromium-89.0.4389.69.tar.xz 890779864 BLAKE2B 18f3d744979011cbe2cb50378e18feaf1fe7cb1ba5b2d7ef64dafa8924e0d460c12beaad7dc3145adad70c4de3ab19fae81b49fb03550ee0d3abd2c793a71ddc SHA512 0514648d2a4542b23c27de1a8fc2f46819d527faf4e2fbbde8c98227e8f189bd6fcc9b0bc5b22c67c3f9fa7522006264622118fbbe7fae0bcf39fea162f5daae
 DIST chromium-90-patchset-5.tar.xz 3272 BLAKE2B 58d018d50dc088fe246e5135a7d2cbac949b499ff115a31f9be1fe9fa82e0dc7d16405edc77bb5f80130c12ed62a8bea2f337b9bb587d7a3e93c4b8f21f0a6ac SHA512 b3bf1a47181e0efde67cf1d8103d3e61920b49b685be7334610daf4a459e910310481aed95bf37e3315b6253807baab034e251d45b766a22b2a7b3c3daee4d8b
 DIST chromium-90.0.4427.5.tar.xz 916946504 BLAKE2B 487ac72e59e1c3cdd4b4f7727bf0c723a07d583bf8c97d32e1e45541f74e1e9a1af80205e5a5e2fb36ccb876749ed61da4432419dc12fa944634e7b365858e83 SHA512 7e1bd45dd9303783562f9d4483004e48762917313f3b5cbb19af244ae71926f3487b253ee21e98237dd8f4b8ab244b9b8a2c97305b6e714e98ca24d5487c4b87
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-89.0.4389.58.ebuild b/www-client/chromium/chromium-89.0.4389.69.ebuild
similarity index 99%
rename from www-client/chromium/chromium-89.0.4389.58.ebuild
rename to www-client/chromium/chromium-89.0.4389.69.ebuild
index 9e6ff4e6370..dca398dbb76 100644
--- a/www-client/chromium/chromium-89.0.4389.58.ebuild
+++ b/www-client/chromium/chromium-89.0.4389.69.ebuild
@@ -233,7 +233,6 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-89-webcodecs-deps.patch"
 		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-89-empty-map-crash.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 

diff --git a/www-client/chromium/files/chromium-89-empty-map-crash.patch b/www-client/chromium/files/chromium-89-empty-map-crash.patch
deleted file mode 100644
index 9c00b83f4af..00000000000
--- a/www-client/chromium/files/chromium-89-empty-map-crash.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 9e0bf3bb5954cc8848e33d6806a67e75199e7ceb Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Tue, 16 Feb 2021 19:51:38 +0000
-Subject: [PATCH] fix crash if smooth_thread_history_ is empty
-
-https://crrev.com/11ce5ea added smooth_thread_history_, but does
-not handle an empty std::map correctly. Decrementing iterator
-returned by lower_bound() only works, if the map is non-empty.
-
-Bug: 1169818
-Change-Id: If75c3d4c7412e77b3ae6c3e68fa3e3821dc75764
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2692534
-Reviewed-by: Behdad Bakhshinategh <behdadb@chromium.org>
-Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
-Commit-Queue: Behdad Bakhshinategh <behdadb@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#854397}
----
-
-diff --git a/cc/metrics/compositor_frame_reporting_controller.cc b/cc/metrics/compositor_frame_reporting_controller.cc
-index 6713366..dec573d1 100644
---- a/cc/metrics/compositor_frame_reporting_controller.cc
-+++ b/cc/metrics/compositor_frame_reporting_controller.cc
-@@ -440,10 +440,12 @@
-   }
- 
-   // keep the history for the last 3 seconds.
--  auto expired_smooth_thread = smooth_thread_history_.lower_bound(
--      Now() - base::TimeDelta::FromSeconds(3))--;
--  smooth_thread_history_.erase(smooth_thread_history_.begin(),
--                               expired_smooth_thread);
-+  if (!smooth_thread_history_.empty()) {
-+    auto expired_smooth_thread = smooth_thread_history_.lower_bound(
-+        Now() - base::TimeDelta::FromSeconds(3))--;
-+    smooth_thread_history_.erase(smooth_thread_history_.begin(),
-+                                 expired_smooth_thread);
-+  }
- 
-   // Only trackes the history if there is a change in smooth_thread_
-   if (current_smooth_thread != GetSmoothThread()) {


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-02-18 22:08 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-02-18 22:08 UTC (permalink / raw
  To: gentoo-commits

commit:     db2726edc645a51beae5aeafed19c8ec46f456c2
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 18 22:07:29 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Feb 18 22:07:46 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db2726ed

www-client/chromium: beta channel bump to 89.0.4389.58

Bug: https://bugs.gentoo.org/770214
Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...4389.47.ebuild => chromium-89.0.4389.58.ebuild} |  1 +
 .../files/chromium-89-empty-map-crash.patch        | 39 ++++++++++++++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 34d22290f99..063136fb5e8 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,7 +2,7 @@ DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74
 DIST chromium-88.0.4324.150.tar.xz 857377456 BLAKE2B 65f3d4a0f930743d04786a21c10561a93a2eb27c2c06d260495ead6ebf9344b2938f28c083a4077c9d2413f47cb083a83633b571ab1f54b25823fc8db18f504b SHA512 5e0419ce26e58b6ba30586c806fa3001f6c3c094e09c82fb08ed828a199c582308ce9bc0ea445aa0214d29710a586bf5a972553fbef5eab574fb0dc3ebe6280b
 DIST chromium-88.0.4324.182.tar.xz 857221352 BLAKE2B 7263294154232533f18d0bc8eeaa7097c3578f8e585ce953c9e6990ec7c9ffbfbd0e69f89c4852c09197aab592877350f54590cf4f0bbec9481886f3fc34548a SHA512 ce8d507645e937107847199b55287ec5522e778851367a19c4cfa4ff5fae18e7c7ea999aa7b0ad0758fab68a003f201bf38ae51e3642388705de2ada9be87730
 DIST chromium-89-patchset-6.tar.xz 4308 BLAKE2B 22e2db8b5e287925f8b550075e48ad381ccf7ef54e23d8f4e4aedff7fd6cfee8f9e70eff1edb8c867c256ee5ec881ef9379e18278b84b47ff08dcc00f5801667 SHA512 aa5d902c1959f50eb9a0d773a77bf12e5a955d796ee8b18f6e2143573dd73beec62109940e55a858fd9927753dba1d3bf9c1bd940b18a616e7b70b801e93f041
-DIST chromium-89.0.4389.47.tar.xz 890733548 BLAKE2B 55482566fce0d30abed7fe88514314f14860ba2f876af532c7b566c9b32d1caf79ecccd8cc03af7b9cac4457038abf4e5006c8bfb75fd308200f7290f3431d39 SHA512 f6828d3d9a346e508511eee8cef63ad6ae4327adb90a6bcb392e862e8406b50798f0d73306794283aaab84550547b31c2b9e90e2068740b9123115796f9a082f
+DIST chromium-89.0.4389.58.tar.xz 890700788 BLAKE2B c8310497671ba1e528d31412e51f7dbbcd2a91a4a1537bd6fdd6acabffa4daad59df0fd9aed1ee92d6e07787f856f32b1f04af311bbb6d9e8c44214e330291fe SHA512 617db2e37cf668faf294167aba81be447e3a50c94c0bc8efa9b18964d18ef57c9dac26aae337f79f01773b69ec39c60117eb10fd102016da1f06de65a1979edc
 DIST chromium-90-patchset-3.tar.xz 5344 BLAKE2B 19b9d69d5d4aecc18e1a3867fd0c53d01dd873fd533b83fbd8c25d435976dd2176975ccf5d4ebb04f84b6c1c0a009315ef4344fbf575b8ae6942ddfb12d1e1e1 SHA512 97d756b4b4270c7631ca42792e869815c22a786ebba36c2668b99298bcd60f24fd89b52d2491ade07341c20f2bdac933b46b299e52bfe9e45cb57bf056ee050c
 DIST chromium-90.0.4412.3.tar.xz 920864492 BLAKE2B a0d5e6ddc552611231c7ba8fd81da4d2e01e59695eccce33c040ffdd37fa360008cf8c8095f10622902a5e25297db4c10b5c463fdca5e5c46d390db4268f3d17 SHA512 bf168dd2a817823bd9ec7b7c925cddd783366460011782884f02ef15952546d6edef6bb2f08813bfd8be2e64c787e80c2cd449032b9eaf19d2ea7a6eb2294da8
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-89.0.4389.47.ebuild b/www-client/chromium/chromium-89.0.4389.58.ebuild
similarity index 99%
rename from www-client/chromium/chromium-89.0.4389.47.ebuild
rename to www-client/chromium/chromium-89.0.4389.58.ebuild
index dca398dbb76..9e6ff4e6370 100644
--- a/www-client/chromium/chromium-89.0.4389.47.ebuild
+++ b/www-client/chromium/chromium-89.0.4389.58.ebuild
@@ -233,6 +233,7 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-89-webcodecs-deps.patch"
 		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-89-empty-map-crash.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 

diff --git a/www-client/chromium/files/chromium-89-empty-map-crash.patch b/www-client/chromium/files/chromium-89-empty-map-crash.patch
new file mode 100644
index 00000000000..9c00b83f4af
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-empty-map-crash.patch
@@ -0,0 +1,39 @@
+From 9e0bf3bb5954cc8848e33d6806a67e75199e7ceb Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 16 Feb 2021 19:51:38 +0000
+Subject: [PATCH] fix crash if smooth_thread_history_ is empty
+
+https://crrev.com/11ce5ea added smooth_thread_history_, but does
+not handle an empty std::map correctly. Decrementing iterator
+returned by lower_bound() only works, if the map is non-empty.
+
+Bug: 1169818
+Change-Id: If75c3d4c7412e77b3ae6c3e68fa3e3821dc75764
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2692534
+Reviewed-by: Behdad Bakhshinategh <behdadb@chromium.org>
+Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
+Commit-Queue: Behdad Bakhshinategh <behdadb@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#854397}
+---
+
+diff --git a/cc/metrics/compositor_frame_reporting_controller.cc b/cc/metrics/compositor_frame_reporting_controller.cc
+index 6713366..dec573d1 100644
+--- a/cc/metrics/compositor_frame_reporting_controller.cc
++++ b/cc/metrics/compositor_frame_reporting_controller.cc
+@@ -440,10 +440,12 @@
+   }
+ 
+   // keep the history for the last 3 seconds.
+-  auto expired_smooth_thread = smooth_thread_history_.lower_bound(
+-      Now() - base::TimeDelta::FromSeconds(3))--;
+-  smooth_thread_history_.erase(smooth_thread_history_.begin(),
+-                               expired_smooth_thread);
++  if (!smooth_thread_history_.empty()) {
++    auto expired_smooth_thread = smooth_thread_history_.lower_bound(
++        Now() - base::TimeDelta::FromSeconds(3))--;
++    smooth_thread_history_.erase(smooth_thread_history_.begin(),
++                                 expired_smooth_thread);
++  }
+ 
+   // Only trackes the history if there is a change in smooth_thread_
+   if (current_smooth_thread != GetSmoothThread()) {


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2021-02-14  8:43 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2021-02-14  8:43 UTC (permalink / raw
  To: gentoo-commits

commit:     c580af0345725e2d81819433a0de30629326e226
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 14 08:43:11 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Feb 14 08:43:48 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c580af03

www-client/chromium: beta channel bump to 89.0.4389.47

Add patch to workaround crash in cast message handling.

Bug: https://bugs.gentoo.org/768000
Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...4389.40.ebuild => chromium-89.0.4389.47.ebuild} |  1 +
 .../files/chromium-89-EnumTable-crash.patch        | 71 ++++++++++++++++++++++
 3 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index dd09275593e..0439e8227f3 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,7 +1,7 @@
 DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74bc6a734b49a9ca43343d03903159dafc66159939f9a6c4b55665ddbe7bd97a26d8d86c285ec02cf76cad5f5cc7410570 SHA512 c39afa26f5b0b9930f6f67ce0c42eefd74c09d528b26bc0db57129b150f75ff83c8b1cb97bd9c5d75f288fb4767cc68c9c5ce89231b4a59f8ca02493e4dd281a
 DIST chromium-88.0.4324.150.tar.xz 857377456 BLAKE2B 65f3d4a0f930743d04786a21c10561a93a2eb27c2c06d260495ead6ebf9344b2938f28c083a4077c9d2413f47cb083a83633b571ab1f54b25823fc8db18f504b SHA512 5e0419ce26e58b6ba30586c806fa3001f6c3c094e09c82fb08ed828a199c582308ce9bc0ea445aa0214d29710a586bf5a972553fbef5eab574fb0dc3ebe6280b
 DIST chromium-89-patchset-6.tar.xz 4308 BLAKE2B 22e2db8b5e287925f8b550075e48ad381ccf7ef54e23d8f4e4aedff7fd6cfee8f9e70eff1edb8c867c256ee5ec881ef9379e18278b84b47ff08dcc00f5801667 SHA512 aa5d902c1959f50eb9a0d773a77bf12e5a955d796ee8b18f6e2143573dd73beec62109940e55a858fd9927753dba1d3bf9c1bd940b18a616e7b70b801e93f041
-DIST chromium-89.0.4389.40.tar.xz 890752920 BLAKE2B a4db55ac0621ad2e59c51b80c557c601c48bfd8b4d126195d61c650b8cf3204ed21b5fc65b11708b95d95cfabf48b29e2d5403316bc0523e3355f60e384b251f SHA512 9c31ea969d23197dd4a749648ca404293ee12d14e025c103db8df9e826b7661902ea8edb8a07a8d216026597b058b4efaf4b73afa032a41ad82b8c108dd44c11
+DIST chromium-89.0.4389.47.tar.xz 890733548 BLAKE2B 55482566fce0d30abed7fe88514314f14860ba2f876af532c7b566c9b32d1caf79ecccd8cc03af7b9cac4457038abf4e5006c8bfb75fd308200f7290f3431d39 SHA512 f6828d3d9a346e508511eee8cef63ad6ae4327adb90a6bcb392e862e8406b50798f0d73306794283aaab84550547b31c2b9e90e2068740b9123115796f9a082f
 DIST chromium-90-patchset-3.tar.xz 5344 BLAKE2B 19b9d69d5d4aecc18e1a3867fd0c53d01dd873fd533b83fbd8c25d435976dd2176975ccf5d4ebb04f84b6c1c0a009315ef4344fbf575b8ae6942ddfb12d1e1e1 SHA512 97d756b4b4270c7631ca42792e869815c22a786ebba36c2668b99298bcd60f24fd89b52d2491ade07341c20f2bdac933b46b299e52bfe9e45cb57bf056ee050c
 DIST chromium-90.0.4412.3.tar.xz 920864492 BLAKE2B a0d5e6ddc552611231c7ba8fd81da4d2e01e59695eccce33c040ffdd37fa360008cf8c8095f10622902a5e25297db4c10b5c463fdca5e5c46d390db4268f3d17 SHA512 bf168dd2a817823bd9ec7b7c925cddd783366460011782884f02ef15952546d6edef6bb2f08813bfd8be2e64c787e80c2cd449032b9eaf19d2ea7a6eb2294da8
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-89.0.4389.40.ebuild b/www-client/chromium/chromium-89.0.4389.47.ebuild
similarity index 99%
rename from www-client/chromium/chromium-89.0.4389.40.ebuild
rename to www-client/chromium/chromium-89.0.4389.47.ebuild
index 32462fb8427..dca398dbb76 100644
--- a/www-client/chromium/chromium-89.0.4389.40.ebuild
+++ b/www-client/chromium/chromium-89.0.4389.47.ebuild
@@ -232,6 +232,7 @@ src_prepare() {
 	local PATCHES=(
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-89-webcodecs-deps.patch"
+		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 

diff --git a/www-client/chromium/files/chromium-89-EnumTable-crash.patch b/www-client/chromium/files/chromium-89-EnumTable-crash.patch
new file mode 100644
index 00000000000..89a50702dfa
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-EnumTable-crash.patch
@@ -0,0 +1,71 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index e3130c7..2ad16ea 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -212,7 +212,7 @@ class
+ 
+   template <typename E>
+   friend class EnumTable;
+-  DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
++  DISALLOW_ASSIGN(GenericEnumTableEntry);
+ };
+ 
+ // Yes, these constructors really needs to be inlined.  Even though they look
+@@ -250,8 +250,7 @@ class EnumTable {
+     // Constructor for regular entries.
+     constexpr Entry(E value, base::StringPiece str)
+         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+-
+-    DISALLOW_COPY_AND_ASSIGN(Entry);
++    DISALLOW_ASSIGN(Entry);
+   };
+ 
+   static_assert(sizeof(E) <= sizeof(int32_t),
+@@ -306,15 +305,14 @@ class EnumTable {
+     if (is_sorted_) {
+       const std::size_t index = static_cast<std::size_t>(value);
+       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+-        const auto& entry = data_.begin()[index];
++        const auto& entry = data_[index];
+         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+           return entry.str();
+       }
+       return base::nullopt;
+     }
+     return GenericEnumTableEntry::FindByValue(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), static_cast<int32_t>(value));
++        &data_[0], data_.size(), static_cast<int32_t>(value));
+   }
+ 
+   // This overload of GetString is designed for cases where the argument is a
+@@ -342,8 +340,7 @@ class EnumTable {
+   // enum value directly.
+   base::Optional<E> GetEnum(base::StringPiece str) const {
+     auto* entry = GenericEnumTableEntry::FindByString(
+-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+-        data_.size(), str);
++        &data_[0], data_.size(), str);
+     return entry ? static_cast<E>(entry->value) : base::Optional<E>();
+   }
+ 
+@@ -358,7 +355,7 @@ class EnumTable {
+   // Align the data on a cache line boundary.
+   alignas(64)
+ #endif
+-      std::initializer_list<Entry> data_;
++      const std::vector<Entry> data_;
+   bool is_sorted_;
+ 
+   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -370,8 +367,8 @@ class EnumTable {
+ 
+     for (std::size_t i = 0; i < data.size(); i++) {
+       for (std::size_t j = i + 1; j < data.size(); j++) {
+-        const Entry& ei = data.begin()[i];
+-        const Entry& ej = data.begin()[j];
++        const Entry& ei = data[i];
++        const Entry& ej = data[j];
+         DCHECK(ei.value != ej.value)
+             << "Found duplicate enum values at indices " << i << " and " << j;
+         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-11-22  8:18 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2020-11-22  8:18 UTC (permalink / raw
  To: gentoo-commits

commit:     102e93f384ad8fcf9fbcc729641de6a4a09cb73a
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 22 08:17:59 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Nov 22 08:17:59 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=102e93f3

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/755227
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 -
 www-client/chromium/chromium-86.0.4240.198.ebuild  | 893 ---------------------
 .../chromium/files/chromium-87-xproto-crash.patch  |  38 -
 www-client/chromium/files/chromium-launcher-r5.sh  |  56 --
 www-client/chromium/metadata.xml                   |   3 -
 5 files changed, 992 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 2ca93a6813f..56a20f2793a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-DIST chromium-86-patchset-7.tar.xz 7560 BLAKE2B b7efc559bebe048e7c1a8ff7e3a88f4c47889976d7f573ed48562cc0b70a9282751145e1f5b90cb651c34fe7c43f8f414c42cc8c78cf70e5ffa8eaff13334630 SHA512 cbcee766a2aea1c339ef9589828875dc431aba002d77fa9531731514cbb219437dfc1d766ebc184ac477990589386070cf3d0f68ceb3211f8dac6c6be7da3a09
-DIST chromium-86.0.4240.198.tar.xz 825538884 BLAKE2B 86da563cfd3c429d44ea1629ab25072135323c5f84f9966b38f2558c0fb88899fa1c462efca1852f89a8ff082834385ae5c2e07798929ba8e7c536ae58e778e3 SHA512 179f43b1444b805b8939098c71d542276985d65ef03bd1bf2303b21bf26b431e790a42310b2749c1901f0f8514e9ccadb776b7d39b7833a8154624557fbcf423
 DIST chromium-87-patchset-9.tar.xz 6036 BLAKE2B 4dd9aa0e88f11a9104cb13e73607c3b4fcd7e9cb556034472e2fd46158db6e7505b22c098df1c7cab6c7ff06ba6dc45914dcab58a405e0eafffa58d8b0cafbbf SHA512 c036ee20b4906bdb1b3104ecacf30a092ee3662ec10754bf2b168f1b7e1dbf593216e4dc70f8264540fadf91a33b48a8b8040028966dfcc8d8be99807b5f1b99
 DIST chromium-87.0.4280.66.tar.xz 856464608 BLAKE2B 5e386c8043aac6c55d3f16ffeabc36571999b265559f3e1d3eddfd972fb3fb3c0fba4d9c6a23a94bcaa6bcec1f4892c04fb301d18cc76f997ce5696908f0c9dd SHA512 8bf31b012166fb1fd35107020608cf77e6a31038a583423541c64aaf1c91bca0767ca111dcb4dd0f57c9c19c347375bde6b6488c56e309bd2871998c26b8b32a
 DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74bc6a734b49a9ca43343d03903159dafc66159939f9a6c4b55665ddbe7bd97a26d8d86c285ec02cf76cad5f5cc7410570 SHA512 c39afa26f5b0b9930f6f67ce0c42eefd74c09d528b26bc0db57129b150f75ff83c8b1cb97bd9c5d75f288fb4767cc68c9c5ce89231b4a59f8ca02493e4dd281a

diff --git a/www-client/chromium/chromium-86.0.4240.198.ebuild b/www-client/chromium/chromium-86.0.4240.198.ebuild
deleted file mode 100644
index 425634bbca4..00000000000
--- a/www-client/chromium/chromium-86.0.4240.198.ebuild
+++ /dev/null
@@ -1,893 +0,0 @@
-# Copyright 2009-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="xml"
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-PATCHSET="7"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official ozone ozone-wayland pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="
-	component-build? ( !suid )
-	headless? ( ozone )
-	ozone-wayland? ( ozone )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libxcb:=
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4.3:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	ozone? (
-		!headless? (
-			${COMMON_X_DEPEND}
-			x11-libs/gtk+:3[X]
-			ozone-wayland? (
-				dev-libs/wayland:=
-				dev-libs/libffi:=
-				x11-libs/libdrm:=
-				x11-libs/gtk+:3[wayland,X]
-				x11-libs/libxkbcommon:=
-			)
-		)
-	)
-	!ozone? (
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		${COMMON_X_DEPEND}
-	)
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	app-arch/unzip
-	dev-lang/perl
-	>=dev-util/gn-0.1807
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	js-type-check? ( virtual/jre )
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-10"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-10"
-	DEPEND+=" >=sys-libs/libcxx-10"
-else
-	COMMON_DEPEND="
-		app-arch/snappy:=
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-67.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			if use component-build; then
-				die "Component build with clang requires fuzzer headers."
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-
-	# nvidia-drivers does not work correctly with Ozone due to unsupported EGLStreams
-	if use ozone && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
-		ewarn "Proprietary nVidia driver does not work correctly with Ozone. You might be"
-		ewarn "able to work around this problem by using SwiftShader OpenGL implementation."
-		ewarn "Add --use-gl=swiftshader to CHROMIUM_FLAGS in /etc/chromium/default to force SwiftShader."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-87-xproto-crash.patch"
-	)
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/fabricjs
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit-html
-		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/libgifcodec
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/harfbuzz-ng/utils
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/opencv
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/schema_org
-		third_party/securemessage
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/ukey2
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/xcbproto
-		third_party/zxcvbn-cpp
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-
-		# we need to generate ppc64 stuff because upstream does not ship it yet
-		# it has to be done before unbundling.
-		if use ppc64; then
-			pushd third_party/libvpx >/dev/null || die
-			mkdir -p source/config/linux/ppc64 || die
-			./generate_gni.sh || die
-			popd >/dev/null || die
-		fi
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-	if use ozone && use ozone-wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# Disable unknown warning message from clang.
-	tc-is-clang && append-flags -Wno-unknown-warning-option
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Enable ozone support
-	if use ozone; then
-		myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-		myconf_gn+=" ozone_platform_headless=true"
-		if ! use headless; then
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" ozone_platform_wayland=$(usex ozone-wayland true false)"
-			myconf_gn+=" ozone_platform_x11=true"
-			myconf_gn+=" ozone_platform_headless=true"
-			if use ozone-wayland; then
-				myconf_gn+=" use_system_minigbm=true use_xkbcommon=true"
-				myconf_gn+=" ozone_platform=\"wayland\""
-			else
-				myconf_gn+=" ozone_platform=\"x11\""
-			fi
-		else
-			myconf_gn+=" ozone_platform=\"headless\""
-		fi
-	fi
-
-	# Enable official builds
-	myconf_gn+=" is_official_build=$(usex official true false)"
-	if use official; then
-		# Allow building against system libraries in official builds
-		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-			tools/generate_shim_headers/generate_shim_headers.py || die
-		# Disable CFI: unsupported for GCC, requires clang+lto+lld
-		myconf_gn+=" is_cfi=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# https://bugs.gentoo.org/717456
-	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	ozone_auto_session () {
-		use ozone && use ozone-wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r5.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so)
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-87-xproto-crash.patch b/www-client/chromium/files/chromium-87-xproto-crash.patch
deleted file mode 100644
index d0dc391e8f1..00000000000
--- a/www-client/chromium/files/chromium-87-xproto-crash.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6e50c5a3abfa22eb17e26086bffbee288d07483e Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson@chromium.org>
-Date: Thu, 22 Oct 2020 01:05:44 +0000
-Subject: [PATCH] [XProto] Fix crash in media::UserInputMonitorLinuxCore::DispatchXEvent
-
-The X server may send unsolicited events (from clients calling
-XSendEvent() or from new keyboard mappings).  So we must check that
-the event is the correct type before dispatching it.
-
-R=dalecurtis
-
-Change-Id: Ic3e19f7da1415c358991609c9b016bd60ead2038
-Bug: 1140927
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490674
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
-Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#819650}
----
-
-diff --git a/media/base/user_input_monitor_linux.cc b/media/base/user_input_monitor_linux.cc
-index 59e655f..13c373f 100644
---- a/media/base/user_input_monitor_linux.cc
-+++ b/media/base/user_input_monitor_linux.cc
-@@ -115,9 +115,10 @@
-   DCHECK(io_task_runner_->BelongsToCurrentThread());
- 
-   auto* raw = event->As<x11::Input::RawDeviceEvent>();
--  DCHECK(raw);
--  DCHECK(raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress ||
--         raw->opcode == x11::Input::RawDeviceEvent::RawKeyRelease);
-+  if (!raw || (raw->opcode != x11::Input::RawDeviceEvent::RawKeyPress &&
-+               raw->opcode != x11::Input::RawDeviceEvent::RawKeyRelease)) {
-+    return;
-+  }
- 
-   ui::EventType type = raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress
-                            ? ui::ET_KEY_PRESSED

diff --git a/www-client/chromium/files/chromium-launcher-r5.sh b/www-client/chromium/files/chromium-launcher-r5.sh
deleted file mode 100644
index d9aa3af9a05..00000000000
--- a/www-client/chromium/files/chromium-launcher-r5.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-
-# Allow the user to override command-line flags, bug #357629.
-# This is based on Debian's chromium-browser package, and is intended
-# to be consistent with Debian.
-for f in /etc/chromium/*; do
-    [[ -f ${f} ]] && source "${f}"
-done
-
-# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
-# default CHROMIUM_FLAGS (from /etc/chromium/default).
-CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
-
-# Let the wrapped binary know that it has been run through the wrapper
-export CHROME_WRAPPER=$(readlink -f "$0")
-
-PROGDIR=${CHROME_WRAPPER%/*}
-
-case ":$PATH:" in
-  *:$PROGDIR:*)
-    # $PATH already contains $PROGDIR
-    ;;
-  *)
-    # Append $PROGDIR to $PATH
-    export PATH="$PATH:$PROGDIR"
-    ;;
-esac
-
-if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
-	# Running as root with HOME owned by root.
-	# Pass --user-data-dir to work around upstream failsafe.
-	CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
-		${CHROMIUM_FLAGS}"
-fi
-
-# Select session type
-if @@OZONE_AUTO_SESSION@@; then
-	platform=
-	if [[ ${XDG_SESSION_TYPE} == x11 ]]; then
-		platform=x11
-	elif [[ ${XDG_SESSION_TYPE} == wayland ]]; then
-		platform=wayland
-	else
-		if [[ -n ${WAYLAND_DISPLAY} ]]; then
-			platform=wayland
-		else
-			platform=x11
-		fi
-	fi
-	CHROMIUM_FLAGS="--ozone-platform=${platform} ${CHROMIUM_FLAGS}"
-fi
-
-# Set the .desktop file name
-export CHROME_DESKTOP="chromium-browser-chromium.desktop"
-
-exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index d4dcbbad0a3..4f72ec48b4c 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -11,15 +11,12 @@
 		<flag name="headless">Build Ozone only with headless backend, NOT RECOMMENDED for general use.</flag>
 		<flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag>
 		<flag name="official">Enable Official build instead of Developer build.</flag>
-		<flag name="ozone">Enable Ozone platform abstraction layer with X11 backend.</flag>
 		<flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
 		<flag name="proprietary-codecs">Enable codecs for patent-encumbered audio and video formats.</flag>
 		<flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>
 		<flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
 		<flag name="system-icu">Use system icu instead of the bundled one</flag>
-		<flag name="system-libvpx">Use system libvpx instead of the bundled one</flag>
 		<flag name="tcmalloc">Use bundled tcmalloc instead of system malloc</flag>
-		<flag name="ozone-wayland">Enable Wayland backend for Ozone.</flag>
 		<flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>
 	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-10-22 17:24 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-10-22 17:24 UTC (permalink / raw
  To: gentoo-commits

commit:     9b903750a9a89f7a788370261daff9a8ac0bfe02
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 22 17:23:32 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Oct 22 17:24:09 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b903750

www-client/chromium: backport crash fix

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 ...111.ebuild => chromium-86.0.4240.111-r1.ebuild} |  5 ++-
 ...0.20.ebuild => chromium-87.0.4280.20-r1.ebuild} |  8 +++--
 .../chromium/files/chromium-87-xproto-crash.patch  | 38 ++++++++++++++++++++++
 3 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/chromium-86.0.4240.111.ebuild b/www-client/chromium/chromium-86.0.4240.111-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-86.0.4240.111.ebuild
rename to www-client/chromium/chromium-86.0.4240.111-r1.ebuild
index df085819384..3afc7420f13 100644
--- a/www-client/chromium/chromium-86.0.4240.111.ebuild
+++ b/www-client/chromium/chromium-86.0.4240.111-r1.ebuild
@@ -235,7 +235,10 @@ src_prepare() {
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
 
-	eapply "${WORKDIR}/patches"
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-87-xproto-crash.patch"
+	)
 
 	default
 

diff --git a/www-client/chromium/chromium-87.0.4280.20.ebuild b/www-client/chromium/chromium-87.0.4280.20-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-87.0.4280.20.ebuild
rename to www-client/chromium/chromium-87.0.4280.20-r1.ebuild
index 15eece70ebe..bf67a111684 100644
--- a/www-client/chromium/chromium-87.0.4280.20.ebuild
+++ b/www-client/chromium/chromium-87.0.4280.20-r1.ebuild
@@ -231,9 +231,13 @@ src_prepare() {
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
 
-	eapply "${WORKDIR}/patches"
+	local PATCHES=(
+		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-87-xproto-crash.patch"
+	)
+
 	if use vaapi; then
-		eapply "${FILESDIR}/chromium-86-fix-vaapi-on-intel.patch"
+		PATCHES+=( "${FILESDIR}/chromium-86-fix-vaapi-on-intel.patch" )
 	fi
 
 	default

diff --git a/www-client/chromium/files/chromium-87-xproto-crash.patch b/www-client/chromium/files/chromium-87-xproto-crash.patch
new file mode 100644
index 00000000000..d0dc391e8f1
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-xproto-crash.patch
@@ -0,0 +1,38 @@
+From 6e50c5a3abfa22eb17e26086bffbee288d07483e Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Thu, 22 Oct 2020 01:05:44 +0000
+Subject: [PATCH] [XProto] Fix crash in media::UserInputMonitorLinuxCore::DispatchXEvent
+
+The X server may send unsolicited events (from clients calling
+XSendEvent() or from new keyboard mappings).  So we must check that
+the event is the correct type before dispatching it.
+
+R=dalecurtis
+
+Change-Id: Ic3e19f7da1415c358991609c9b016bd60ead2038
+Bug: 1140927
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490674
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#819650}
+---
+
+diff --git a/media/base/user_input_monitor_linux.cc b/media/base/user_input_monitor_linux.cc
+index 59e655f..13c373f 100644
+--- a/media/base/user_input_monitor_linux.cc
++++ b/media/base/user_input_monitor_linux.cc
+@@ -115,9 +115,10 @@
+   DCHECK(io_task_runner_->BelongsToCurrentThread());
+ 
+   auto* raw = event->As<x11::Input::RawDeviceEvent>();
+-  DCHECK(raw);
+-  DCHECK(raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress ||
+-         raw->opcode == x11::Input::RawDeviceEvent::RawKeyRelease);
++  if (!raw || (raw->opcode != x11::Input::RawDeviceEvent::RawKeyPress &&
++               raw->opcode != x11::Input::RawDeviceEvent::RawKeyRelease)) {
++    return;
++  }
+ 
+   ui::EventType type = raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress
+                            ? ui::ET_KEY_PRESSED


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-10-03  7:25 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2020-10-03  7:25 UTC (permalink / raw
  To: gentoo-commits

commit:     84ce0858cd275482a211e99b3600f648a6990f3f
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Oct  3 07:21:30 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Oct  3 07:21:44 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=84ce0858

www-client/chromium: dev channel bump to 87.0.4278.0

Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                       |   4 +-
 ...0.4270.0.ebuild => chromium-87.0.4278.0.ebuild} |  12 +-
 .../files/chromium-87-fix-vaapi-build.patch        | 177 ---------------------
 .../files/chromium-87-webcodecs-deps.patch         |  27 ++++
 4 files changed, 39 insertions(+), 181 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 258e12ebaaa..b8d5944ebf6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,6 @@ DIST chromium-85-patchset-2.tar.xz 9724 BLAKE2B 929d6abe3a66db395a9cedc63510a6a0
 DIST chromium-85.0.4183.121.tar.xz 833194480 BLAKE2B d91302792fc34730795815a39ba91878f1d6d33c7bb810a10efcea2e117c069a6493b3acb1e3d8a04b19d599335b60d70523f47c65c42080cbe0d3981255c264 SHA512 9d61a0782c012fe36467a10f008962d45f4eaa065f6812276d847f7563056124c9fd21d8376dda8ab64e4c3b793da0593bac9d39988bbd60221828084b534945
 DIST chromium-86-patchset-6.tar.xz 7152 BLAKE2B 494b412caec2b3e3fd6c838ba4b61d499433f5a6043e4763efc424c811e405ed11461d8df2afe0aa22d898329ef82df0c43c47ae30f7c4a1c0c3f6e5b314e283 SHA512 68833c9dea6a7183ff42a2d432cf811b360c1237c36feed6b4f9163b61d7f98854ce73b33c58851cb800cf72311a638adeedb4555caf15f80b4bd6aca5039aef
 DIST chromium-86.0.4240.68.tar.xz 825424240 BLAKE2B 69638d0c0fb434593efd63c8d1700992d52e4ed20f5d36f2152d9c5e9aa6a0fc35a83c80c3428e3bc35ffb70e351185380ea2d4b98bcae6ca2dc7186d73ec45b SHA512 85d55d2ed5fa5fc9c835015871df258a7f465d07ba8b959345d309c52c718b70c2bbce476544eb1b432e88ef5f26ed3d1f1aeba50929b3795391f27371748f53
-DIST chromium-87-patchset-4.tar.xz 8100 BLAKE2B cf052203bb9ced993f051ebac51270da1482e59999d87aff24fa81d25cc0de228a92a00abb56e0caa91c3f045bdd9df7524d77b375b77f1a0c7c198cb05c7649 SHA512 bc7cb6ad99c7d45999d45e5c9df05d43c80c25212dafe3750146d2cb5b38a7239e32ac1e9bf245331ba7055c0a36e551131eab92ecea907e51878259416b59a9
-DIST chromium-87.0.4270.0.tar.xz 831037464 BLAKE2B f9b19b704e252b96c5a6861719828d3b08eee9128d753a8c264b21b0bd26cbc1e7a3d29909d4300e59246ac9c56b88e205f83efd024897915a8b77085fe5f160 SHA512 76cbf88b1390c2e64d6615e29763f00493b94beff5836c240833840b1b50fa782c137ebc66a81a6940f35052895bdc0098fefca5e6cc46f56dbc2b8b2184ca6f
+DIST chromium-87-patchset-5.tar.xz 7932 BLAKE2B d97f2f901e51288504cc6313d517251daf23d4f4b0f7802453076774c019ef4eeebef5e38c64c12efb156cc770f0fa3e0b00d6b832f8e0614988a0961b1ebb05 SHA512 b4d70cca16ec944771238140765c63487b7306a800298d896b6b5b46761af57b6c58f080d308bfd7d9e131e05d8b79503651c94b200a3ff3e18d11dafab3db0c
+DIST chromium-87.0.4278.0.tar.xz 832042784 BLAKE2B 5f02a03ddd076aa543a2c9620295d99f87a337f22afb7ebdee6533a57cfe947aa887522d53e83431b83ee213e56d4415624112d9bf094f39381d9cdf30a590ad SHA512 32ce81904659e07b63ced9ff0bbf9a1a61f6a201701e8154674d7107d0e62173c544fa4724bd1326e47209db44f65a7b29ae5c3832e59863126a7714f2947e0f
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-87.0.4270.0.ebuild b/www-client/chromium/chromium-87.0.4278.0.ebuild
similarity index 98%
rename from www-client/chromium/chromium-87.0.4270.0.ebuild
rename to www-client/chromium/chromium-87.0.4278.0.ebuild
index 008abd293ee..2b6529a24d7 100644
--- a/www-client/chromium/chromium-87.0.4270.0.ebuild
+++ b/www-client/chromium/chromium-87.0.4278.0.ebuild
@@ -12,7 +12,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="4"
+PATCHSET="5"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
@@ -177,6 +177,7 @@ in /etc/chromium/default.
 
 PATCHES=(
 	"${FILESDIR}/chromium-87-ozone-deps.patch"
+	"${FILESDIR}/chromium-87-webcodecs-deps.patch"
 )
 
 pre_build_checks() {
@@ -233,7 +234,6 @@ src_prepare() {
 	eapply "${WORKDIR}/patches"
 	if use vaapi; then
 		eapply "${FILESDIR}/chromium-86-fix-vaapi-on-intel.patch"
-		eapply "${FILESDIR}/chromium-87-fix-vaapi-build.patch"
 	fi
 
 	default
@@ -404,6 +404,7 @@ src_prepare() {
 		third_party/s2cellid
 		third_party/schema_org
 		third_party/securemessage
+		third_party/shaka-player
 		third_party/shell-encryption
 		third_party/simplejson
 		third_party/skia
@@ -881,4 +882,11 @@ pkg_postinst() {
 	xdg_icon_cache_update
 	xdg_desktop_database_update
 	readme.gentoo_print_elog
+
+	if use vaapi; then
+		elog "VA-API is disabled by default at runtime. Either enable it"
+		elog "by navigating to chrome://flags/#enable-accelerated-video-decode"
+		elog "inside Chromium or add --enable-accelerated-video-decode"
+		elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+	fi
 }

diff --git a/www-client/chromium/files/chromium-87-fix-vaapi-build.patch b/www-client/chromium/files/chromium-87-fix-vaapi-build.patch
deleted file mode 100644
index e230510fde7..00000000000
--- a/www-client/chromium/files/chromium-87-fix-vaapi-build.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From 90c4cfb5355a36de6660df4ed0a1c405a830ca0e Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson@chromium.org>
-Date: Tue, 15 Sep 2020 12:02:17 -0700
-Subject: [PATCH] [XProto] Fix VAAPI build
-
-Fixes the build after [1] broke it.
-
-[1] https://chromium-review.googlesource.com/c/chromium/src/+/2392140
-
-Bug: 1066670, 1127532
-Change-Id: I340f91a1d4ba7214ea47fa4b1bb4a368fe5597f5
-R=mcasas
-CC=tmathmeyer
----
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 843cf22..91eb184 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -7,6 +7,8 @@
- #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/xproto.h"
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_image_egl_pixmap.h"
- #include "ui/gl/scoped_binders.h"
-@@ -16,24 +18,27 @@
- namespace {
- 
- inline Pixmap CreatePixmap(const gfx::Size& size) {
--  auto* display = gfx::GetXDisplay();
-+  auto* connection = x11::Connection::Get();
-+  auto* display = connection->display();
-   if (!display)
-     return 0;
- 
--  int screen = DefaultScreen(display);
--  auto root = XRootWindow(display, screen);
--  if (root == BadValue)
--    return 0;
-+  auto root = connection->default_root();
- 
--  XWindowAttributes win_attr = {};
--  // returns 0 on failure, see:
--  // https://tronche.com/gui/x/xlib/introduction/errors.html#Status
--  if (!XGetWindowAttributes(display, root, &win_attr))
-+  uint8_t depth = 0;
-+  if (auto reply = connection->GetGeometry({root}).Sync())
-+    depth = reply->depth;
-+  else
-     return 0;
- 
-   // TODO(tmathmeyer) should we use the depth from libva instead of root window?
--  return XCreatePixmap(display, root, size.width(), size.height(),
--                       win_attr.depth);
-+  auto pixmap = connection->GenerateId<x11::Pixmap>();
-+  auto req = connection->CreatePixmap(
-+      {depth, pixmap, root, base::checked_cast<uint16_t>(size.width()),
-+       base::checked_cast<uint16_t>(size.height())});
-+  if (req.Sync().error)
-+    pixmap = x11::Pixmap::None;
-+  return base::strict_cast<::Pixmap>(pixmap);
- }
- 
- }  // namespace
-@@ -71,11 +76,8 @@
-     DCHECK_EQ(glGetError(), static_cast<GLenum>(GL_NO_ERROR));
-   }
- 
--  if (x_pixmap_) {
--    if (auto* display = gfx::GetXDisplay()) {
--      XFreePixmap(display, x_pixmap_);
--    }
--  }
-+  if (x_pixmap_)
-+    x11::Connection::Get()->FreePixmap({static_cast<x11::Pixmap>(x_pixmap_)});
- }
- 
- Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 9ff0372..1c917a1 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -7,6 +7,7 @@
- #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/x11_types.h"
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_image_glx.h"
-@@ -33,7 +34,8 @@
-                    texture_id,
-                    client_texture_id,
-                    texture_target),
--      x_display_(gfx::GetXDisplay()),
-+      connection_(x11::Connection::Get()),
-+      x_display_(connection_->display()),
-       x_pixmap_(0) {
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-   DCHECK(!features::IsUsingOzonePlatform());
-@@ -49,7 +51,7 @@
-   }
- 
-   if (x_pixmap_)
--    XFreePixmap(x_display_, x_pixmap_);
-+    connection_->FreePixmap({static_cast<x11::Pixmap>(x_pixmap_)});
- }
- 
- Status VaapiTFPPicture::Initialize() {
-@@ -85,15 +87,20 @@
-   }
- 
-   XWindowAttributes win_attr;
--  int screen = DefaultScreen(x_display_);
--  XGetWindowAttributes(x_display_, XRootWindow(x_display_, screen), &win_attr);
-+  auto root = connection_->default_root();
-+  XGetWindowAttributes(x_display_, static_cast<::Window>(root), &win_attr);
-   // TODO(posciak): pass the depth required by libva, not the RootWindow's
-   // depth
--  x_pixmap_ = XCreatePixmap(x_display_, XRootWindow(x_display_, screen),
--                            size_.width(), size_.height(), win_attr.depth);
--  if (!x_pixmap_) {
-+  auto pixmap = connection_->GenerateId<x11::Pixmap>();
-+  if (connection_
-+          ->CreatePixmap(
-+              {win_attr.depth, pixmap, root, size_.width(), size_.height()})
-+          .Sync()
-+          .error) {
-     DLOG(ERROR) << "Failed creating an X Pixmap for TFP";
-     return StatusCode::kVaapiNoPixmap;
-+  } else {
-+    x_pixmap_ = static_cast<::Pixmap>(pixmap);
-   }
- 
-   return Initialize();
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.h b/media/gpu/vaapi/vaapi_picture_tfp.h
-index c4eb2c1..a32955e 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.h
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.h
-@@ -11,6 +11,7 @@
- #include "base/memory/ref_counted.h"
- #include "media/gpu/vaapi/vaapi_picture.h"
- #include "ui/gfx/geometry/size.h"
-+#include "ui/gfx/x/connection.h"
- #include "ui/gl/gl_bindings.h"
- 
- namespace gl {
-@@ -47,6 +48,7 @@
-  private:
-   Status Initialize();
- 
-+  x11::Connection* const connection_;
-   Display* x_display_;
- 
-   Pixmap x_pixmap_;
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 2ad0b997..a988233 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -57,8 +57,13 @@
- #include "ui/gl/gl_implementation.h"
- 
- #if defined(USE_X11)
--#include <va/va_x11.h>
- #include "ui/gfx/x/x11_types.h"  // nogncheck
-+
-+typedef XID Drawable;
-+
-+extern "C" {
-+#include "media/gpu/vaapi/va_x11.sigs"
-+}
- #endif
- 
- #if defined(USE_OZONE)

diff --git a/www-client/chromium/files/chromium-87-webcodecs-deps.patch b/www-client/chromium/files/chromium-87-webcodecs-deps.patch
new file mode 100644
index 00000000000..e9d411305ee
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-webcodecs-deps.patch
@@ -0,0 +1,27 @@
+From 47f6a3bcf7e72c467ca6a2cd633a5c3585a218d5 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 2 Oct 2020 06:44:53 +0000
+Subject: [PATCH] add dependency on openh264:encoder
+
+webcodecs uses openh264 encoder, but dependency is missing. With
+unbundled openh264 library build fails, because include path is
+incomplete.
+---
+ third_party/blink/renderer/modules/webcodecs/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
+index 99d0e47..7c4d188 100644
+--- a/third_party/blink/renderer/modules/webcodecs/BUILD.gn
++++ b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
+@@ -54,6 +54,7 @@ blink_modules_sources("webcodecs") {
+     "//media/mojo/clients",
+     "//media/mojo/mojom",
+     "//third_party/libyuv:libyuv",
++    "//third_party/openh264:encoder",
+   ]
+   public_deps = [
+     "//third_party/blink/renderer/modules/mediastream:mediastream",
+-- 
+2.26.2
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-09-12  9:16 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2020-09-12  9:16 UTC (permalink / raw
  To: gentoo-commits

commit:     84ab5bc01abeb82409714ded6e291832558cc4dc
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 12 09:07:43 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Sep 12 09:08:04 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=84ab5bc0

www-client/chromium: dev channel bump to 87.0.4259.3

Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                                |  4 ++--
 ...omium-87.0.4252.0.ebuild => chromium-87.0.4259.3.ebuild} | 13 +++++++++++--
 www-client/chromium/files/chromium-launcher-r6.sh           |  2 +-
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a41404cd8ce..4acda52a944 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,6 @@ DIST chromium-85-patchset-2.tar.xz 9724 BLAKE2B 929d6abe3a66db395a9cedc63510a6a0
 DIST chromium-85.0.4183.102.tar.xz 833172260 BLAKE2B f10cd8579db8c5d61d818604da0353baf5848b7658ec3942bd67471d29b4b4399d989349b1830009df139db9061452ce66fdedfec09f66074e37594584f546b3 SHA512 acd6f0a7b74018098752b6598e09a2bd6d1c9f1120c39a5c6cd3d924c466be92b854f3c7f91693ba9506e47b173ef12c14427f998362524b2497fbe5587a6b6c
 DIST chromium-86-patchset-6.tar.xz 7152 BLAKE2B 494b412caec2b3e3fd6c838ba4b61d499433f5a6043e4763efc424c811e405ed11461d8df2afe0aa22d898329ef82df0c43c47ae30f7c4a1c0c3f6e5b314e283 SHA512 68833c9dea6a7183ff42a2d432cf811b360c1237c36feed6b4f9163b61d7f98854ce73b33c58851cb800cf72311a638adeedb4555caf15f80b4bd6aca5039aef
 DIST chromium-86.0.4240.30.tar.xz 826279324 BLAKE2B 133a696f326627dc07234ceaba006bce27ea57a0c857727759caab34e32c2dd3b16d1bb4e1a20d575595636b241cf2c0264a921f2aedcdd3ce05abb45b3f0090 SHA512 c45e7c0df5ba5e589b34785e1b2b448cb95cd1352642a97cdbddce47db33024b3411e5b76380f54c64e27bd077a0b645896a641d712b35a60a9ddf85260e0f70
-DIST chromium-87-patchset-1.tar.xz 8528 BLAKE2B 5595819da4051f8cdffaa9ae878902a44f1d56c6d360aa1bf3e9cc40e267dd9860c46d51df44a1ec72bb503e0fb6dda5cdcb1383168bfe56c414f8cae5c974b3 SHA512 8e335ae85796174c11b15cc8a79a7986751fcb14f197f88a2c76ee7ec8c733184f55dd0440d20f9543ca3abdb11dad37c4e9b7d540ed783cdd663a873b43ec78
-DIST chromium-87.0.4252.0.tar.xz 828988988 BLAKE2B acc7fb9466e1dccde6eda1a2a4ae978606ae0c18f755cb64828a806868b8388be67770ad411680a66d01faee328558087968a34281d100bbe93dca49d62bceae SHA512 2c9202233439629ce67abed4fc67790aa7c27eb8b981ebcbf90f8e89082c2926824632b11ba56df04f7478207080a9b78f52ecf3ad23f7a7958064f4e68df6f0
+DIST chromium-87-patchset-2.tar.xz 8244 BLAKE2B 3dde2801598c6e1d4a554f70886a57255e23d8c88ba65d1c9f14672e2b0e5475d1725fbd28cf9b650706eab100a1eda946b740d785aa904d8d42e036ff12b96b SHA512 a85976d7e217c5f387af7ab4be9a60b65d71c2674df3a270e4c41d447bb31bfe2ad9c176bc089ed06b8f67f409203fe0e18b8837ef6402bcdac285954bc5f2eb
+DIST chromium-87.0.4259.3.tar.xz 830367636 BLAKE2B 94a2335e4afbaea06745dddc6277afd43c879fd3c6d1611ad3b6b7213eccd081aa925e281460b463dcf45da720f983ff38e567ab376420116147629c4f253f71 SHA512 a9acd2ad9521b32e5e877d19226ab4ee5c0f0e8e291b7bf28929ff5d2e397dbc74fc0e556c231f2e004efd55df22db39b3944c54a5fb0a77afb8ffd73fdcd6f0
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-87.0.4252.0.ebuild b/www-client/chromium/chromium-87.0.4259.3.ebuild
similarity index 98%
rename from www-client/chromium/chromium-87.0.4252.0.ebuild
rename to www-client/chromium/chromium-87.0.4259.3.ebuild
index 5e9406ea166..0351b2831ac 100644
--- a/www-client/chromium/chromium-87.0.4252.0.ebuild
+++ b/www-client/chromium/chromium-87.0.4259.3.ebuild
@@ -12,7 +12,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://chromium.org/"
-PATCHSET="1"
+PATCHSET="2"
 PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
 	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
@@ -57,7 +57,7 @@ COMMON_DEPEND="
 	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
-	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
+	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
 	pulseaudio? ( media-sound/pulseaudio:= )
 	system-ffmpeg? (
 		>=media-video/ffmpeg-4.3:=
@@ -214,6 +214,12 @@ pkg_setup() {
 	pre_build_checks
 
 	chromium_suid_sandbox_check_kernel_config
+
+	# nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+	if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+		ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+		ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+	fi
 }
 
 src_prepare() {
@@ -377,6 +383,7 @@ src_prepare() {
 		third_party/ply
 		third_party/polymer
 		third_party/private-join-and-compute
+		third_party/private_membership
 		third_party/protobuf
 		third_party/protobuf/third_party/six
 		third_party/pyjson5
@@ -385,6 +392,7 @@ src_prepare() {
 		third_party/s2cellid
 		third_party/schema_org
 		third_party/securemessage
+		third_party/shell-encryption
 		third_party/simplejson
 		third_party/skia
 		third_party/skia/include/third_party/skcms
@@ -702,6 +710,7 @@ src_configure() {
 		myconf_gn+=" ozone_platform_headless=true"
 		if use headless; then
 			myconf_gn+=" ozone_platform=\"headless\""
+			myconf_gn+=" use_x11=false"
 		else
 			myconf_gn+=" ozone_platform_wayland=true"
 			myconf_gn+=" use_system_libdrm=true"

diff --git a/www-client/chromium/files/chromium-launcher-r6.sh b/www-client/chromium/files/chromium-launcher-r6.sh
index cc548e3e3a9..637cfd612aa 100644
--- a/www-client/chromium/files/chromium-launcher-r6.sh
+++ b/www-client/chromium/files/chromium-launcher-r6.sh
@@ -36,7 +36,7 @@ fi
 # Select session type and platform
 if @@FORCE_OZONE_PLATFORM@@; then
 	CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
-elif @@OZONE_AUTO_SESSION@@; then
+elif @@OZONE_AUTO_SESSION@@ && ! ${DISABLE_OZONE_PLATFORM:-false}; then
 	if [[ ${XDG_SESSION_TYPE} == wayland || -n ${WAYLAND_DISPLAY} && ${XDG_SESSION_TYPE} != x11 ]]; then
 		CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
 	fi


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-09-07  5:27 Stephan Hartmann
  0 siblings, 0 replies; 149+ messages in thread
From: Stephan Hartmann @ 2020-09-07  5:27 UTC (permalink / raw
  To: gentoo-commits

commit:     c8b238d8609856b248d1e3e203f3b6d55ce72fd8
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  6 19:28:52 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Mon Sep  7 05:26:16 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8b238d8

www-client/chromium: dev channel bump to 87.0.4252.0

Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>

 www-client/chromium/Manifest                      |   2 +
 www-client/chromium/chromium-87.0.4252.0.ebuild   | 869 ++++++++++++++++++++++
 www-client/chromium/files/chromium-launcher-r6.sh |  48 ++
 3 files changed, 919 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b5fae27b150..57cd7ccdd76 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,4 +2,6 @@ DIST chromium-85-patchset-2.tar.xz 9724 BLAKE2B 929d6abe3a66db395a9cedc63510a6a0
 DIST chromium-85.0.4183.83.tar.xz 833156956 BLAKE2B ee5201994daa4c351da89437b6b65bec8c28d35e53c27708444b33dc7297535dd2489ae5014c8d29f62b44e90a968bc9bc4d981532bb764d144dfc090bc1aa31 SHA512 9b491133ad5a04a9a65d8be2a8102102e6698dc30e9dd310825f9a6648655595656bef1ba2d9d5a6d64c1e0adb755010672986a0de46ce00cd0a5769bff30436
 DIST chromium-86-patchset-6.tar.xz 7152 BLAKE2B 494b412caec2b3e3fd6c838ba4b61d499433f5a6043e4763efc424c811e405ed11461d8df2afe0aa22d898329ef82df0c43c47ae30f7c4a1c0c3f6e5b314e283 SHA512 68833c9dea6a7183ff42a2d432cf811b360c1237c36feed6b4f9163b61d7f98854ce73b33c58851cb800cf72311a638adeedb4555caf15f80b4bd6aca5039aef
 DIST chromium-86.0.4240.22.tar.xz 826192852 BLAKE2B 5316bbd211dabfbe76be7718ba54751005dfb91ae342d3e7861700e75669a90393c55a386836ad1f66c330d46227271857d326bd265d68ca3e471e5ebaa6a116 SHA512 ae4243bcd42e20701ac7e45d4fcd301ea6d7190aed961a4ccfc1f57e2dac7e583fbb664ea62f9cf75a556a76804a4488a4e571389d7b09acbe793917f647f6c0
+DIST chromium-87-patchset-1.tar.xz 8528 BLAKE2B 5595819da4051f8cdffaa9ae878902a44f1d56c6d360aa1bf3e9cc40e267dd9860c46d51df44a1ec72bb503e0fb6dda5cdcb1383168bfe56c414f8cae5c974b3 SHA512 8e335ae85796174c11b15cc8a79a7986751fcb14f197f88a2c76ee7ec8c733184f55dd0440d20f9543ca3abdb11dad37c4e9b7d540ed783cdd663a873b43ec78
+DIST chromium-87.0.4252.0.tar.xz 828988988 BLAKE2B acc7fb9466e1dccde6eda1a2a4ae978606ae0c18f755cb64828a806868b8388be67770ad411680a66d01faee328558087968a34281d100bbe93dca49d62bceae SHA512 2c9202233439629ce67abed4fc67790aa7c27eb8b981ebcbf90f8e89082c2926824632b11ba56df04f7478207080a9b78f52ecf3ad23f7a7958064f4e68df6f0
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-87.0.4252.0.ebuild b/www-client/chromium/chromium-87.0.4252.0.ebuild
new file mode 100644
index 00000000000..5e9406ea166
--- /dev/null
+++ b/www-client/chromium/chromium-87.0.4252.0.ebuild
@@ -0,0 +1,869 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+PATCHSET="1"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+	component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+	media-libs/mesa:=[gbm]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXtst:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/expat:=
+	dev-libs/glib:2
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4.3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/pango:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+	!headless? (
+		${COMMON_X_DEPEND}
+		>=app-accessibility/at-spi2-atk-2.26:2
+		>=app-accessibility/at-spi2-core-2.26:2
+		>=dev-libs/atk-2.26
+		x11-libs/gtk+:3[X]
+		wayland? (
+			dev-libs/wayland:=
+			dev-libs/libffi:=
+			x11-libs/gtk+:3[wayland,X]
+			x11-libs/libdrm:=
+			x11-libs/libxkbcommon:=
+		)
+	)
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/gzip-1.7
+	app-arch/unzip
+	dev-lang/perl
+	>=dev-util/gn-0.1807
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+	RDEPEND+=" >=sys-libs/libcxx-10"
+	DEPEND+=" >=sys-libs/libcxx-10"
+else
+	COMMON_DEPEND="
+		app-arch/snappy:=
+		dev-libs/libxslt:=
+		>=dev-libs/re2-0.2019.08.01:=
+		>=media-libs/openh264-1.6.0:=
+		system-icu? ( >=dev-libs/icu-67.1:= )
+	"
+	RDEPEND+="${COMMON_DEPEND}"
+	DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+			die "At least gcc 9.2 is required"
+		fi
+		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+			die "Component build with tcmalloc requires FEATURES=-usersandbox."
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			if use component-build; then
+				die "Component build with clang requires fuzzer headers."
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	eapply "${WORKDIR}/patches"
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/chromium
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/fabricjs
+		third_party/devtools-frontend/src/front_end/third_party/i18n
+		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/lit-html
+		third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+		third_party/devtools-frontend/src/front_end/third_party/marked
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/third_party
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/freetype
+		third_party/libgifcodec
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/harfbuzz-ng/utils
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/nearby
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/opencv
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/schema_org
+		third_party/securemessage
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/ukey2
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/xcbproto
+		third_party/zxcvbn-cpp
+		third_party/zlib/google
+		tools/grit/third_party/six
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+		# we need to generate ppc64 stuff because upstream does not ship it yet
+		# it has to be done before unbundling.
+		if use ppc64; then
+			pushd third_party/libvpx >/dev/null || die
+			mkdir -p source/config/linux/ppc64 || die
+			./generate_gni.sh || die
+			popd >/dev/null || die
+		fi
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+	if use wayland && ! use headless ; then
+		keeplibs+=( third_party/wayland )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libxml )
+		keeplibs+=( third_party/libxslt )
+		keeplibs+=( third_party/openh264 )
+		keeplibs+=( third_party/re2 )
+		keeplibs+=( third_party/snappy )
+		if use system-icu; then
+			keeplibs+=( third_party/icu )
+		fi
+	fi
+	if use arm64 || use ppc64 ; then
+		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+	fi
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+			die "Compiling with sys-libs/libcxx requires clang."
+		fi
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+		gn_system_libraries+=( libxml )
+		gn_system_libraries+=( libxslt )
+		gn_system_libraries+=( openh264 )
+		gn_system_libraries+=( re2 )
+		gn_system_libraries+=( snappy )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+		fi
+	fi
+
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		append-flags -stdlib=libc++
+		append-ldflags -stdlib=libc++
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+	# Disable unknown warning message from clang.
+	tc-is-clang && append-flags -Wno-unknown-warning-option
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Enable ozone wayland and/or headless support
+	if use wayland || use headless; then
+		myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+		myconf_gn+=" ozone_platform_headless=true"
+		if use headless; then
+			myconf_gn+=" ozone_platform=\"headless\""
+		else
+			myconf_gn+=" ozone_platform_wayland=true"
+			myconf_gn+=" use_system_libdrm=true"
+			myconf_gn+=" use_system_minigbm=true"
+			myconf_gn+=" use_xkbcommon=true"
+			myconf_gn+=" ozone_platform=\"wayland\""
+		fi
+	else
+		myconf_gn+=" use_ozone=false"
+	fi
+
+	# Enable official builds
+	myconf_gn+=" is_official_build=$(usex official true false)"
+	if use official; then
+		# Allow building against system libraries in official builds
+		sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+			tools/generate_shim_headers/generate_shim_headers.py || die
+		# Disable CFI: unsupported for GCC, requires clang+lto+lld
+		myconf_gn+=" is_cfi=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# https://bugs.gentoo.org/717456
+	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e
+			"s:/usr/lib/:/usr/$(get_libdir)/:g;
+			s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+			s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+	)
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so)
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-launcher-r6.sh b/www-client/chromium/files/chromium-launcher-r6.sh
new file mode 100644
index 00000000000..cc548e3e3a9
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r6.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# Allow the user to override command-line flags, bug #357629.
+# This is based on Debian's chromium-browser package, and is intended
+# to be consistent with Debian.
+for f in /etc/chromium/*; do
+    [[ -f ${f} ]] && source "${f}"
+done
+
+# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
+# default CHROMIUM_FLAGS (from /etc/chromium/default).
+CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
+
+# Let the wrapped binary know that it has been run through the wrapper
+export CHROME_WRAPPER=$(readlink -f "$0")
+
+PROGDIR=${CHROME_WRAPPER%/*}
+
+case ":$PATH:" in
+  *:$PROGDIR:*)
+    # $PATH already contains $PROGDIR
+    ;;
+  *)
+    # Append $PROGDIR to $PATH
+    export PATH="$PATH:$PROGDIR"
+    ;;
+esac
+
+if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
+	# Running as root with HOME owned by root.
+	# Pass --user-data-dir to work around upstream failsafe.
+	CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
+		${CHROMIUM_FLAGS}"
+fi
+
+# Select session type and platform
+if @@FORCE_OZONE_PLATFORM@@; then
+	CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
+elif @@OZONE_AUTO_SESSION@@; then
+	if [[ ${XDG_SESSION_TYPE} == wayland || -n ${WAYLAND_DISPLAY} && ${XDG_SESSION_TYPE} != x11 ]]; then
+		CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
+	fi
+fi
+
+# Set the .desktop file name
+export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+
+exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-07-29 18:02 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-07-29 18:02 UTC (permalink / raw
  To: gentoo-commits

commit:     8aae47a9d865a4aa6445511b196a77a621016256
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Jul 29 17:29:31 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Jul 29 18:01:52 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8aae47a9

www-client/chromium: security cleanup

Closes: https://bugs.gentoo.org/734150
Closes: https://bugs.gentoo.org/733296
Package-Manager: Portage-2.3.99, Repoman-2.3.23
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/16899

 www-client/chromium/Manifest                      |   1 -
 www-client/chromium/chromium-84.0.4147.89.ebuild  | 864 ----------------------
 www-client/chromium/files/chromium-launcher-r4.sh |  52 --
 3 files changed, 917 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8f7e418c81c..c464a61d709 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,5 @@
 DIST chromium-84-patchset-3.tar.xz 20148 BLAKE2B d910570b43f63bcf4ead90ca4e4005a08d7c85b5b4e7af2a70ec4bc18265cbe8b075523878710075cfee4e0631eb3374e1e6d06251f4bf03377954807b1951e9 SHA512 316db8b0359b10a988242a0d665475d912fa9b610a547478d8c39b337afc02780a54d7024e231eb4fd402063cf439f6e2b4bb92a4968c8e0c3e69d84a2ae1664
 DIST chromium-84.0.4147.105.tar.xz 845167500 BLAKE2B 53dc3658d1d206864b20b4a9e6f54d321332a765a6d5589d241103e2bd84af42f264386a928e220e332d867f4265ae617c7669337c05b106f9a42bba2cc019f8 SHA512 23cdd8b49c3276b16f1b4753fadf9f428720f0a95a3f567d189ba0e8a231d7bc1f62e96da6188645243eedac15ecc554b97e83c1a63aa647e7946cc1ba015a8c
-DIST chromium-84.0.4147.89.tar.xz 845153972 BLAKE2B e8101805af6278fc9c49041071e7cd6d53fe79ba74b83b636584db57f459f003559758a51a1cd155d7fe3d5d0d21c95d37f84e638644c6e08b39ea02cce902be SHA512 cc207a5f09a89e42bc12fd491d5d0ef11c04daaa324aa696d2f8a37679b8f2171d3b265296968c3312e158b0fd2c059e12727a7463d3bd2f640d5bbd43c4f676
 DIST chromium-85-patchset-2.tar.xz 9724 BLAKE2B 929d6abe3a66db395a9cedc63510a6a0ed0d79057f92ade22fe26221bf46a63e88fb40d6e54e6ffa837d142ec5da22e2b428f3153db431e3389de0b230fa2aec SHA512 753ce53c2c10cf1abdce334086a633dfcb4543c86a2dccbee0ad1bc8a8a0b642cdd18e2277c67088a380a9fa2ca8fd655e2fc0b3a2931de3230afa046615cd0e
 DIST chromium-85.0.4183.39.tar.xz 863788052 BLAKE2B 76551471aab570e6484b0dae31191f2d2aace5f360353274a265f205b7c24997b75c6d32b15ff0e34dd0c31edb70491f4f5f7bb8fe331f8b110fa77051572d54 SHA512 23ac7d6d96a6abaee565b791d75b03fa0b9ff9f3a8bd8f4c42896f345530796485d756ac96f97e566f4c9d054ca3fa9b14d5dc774533f50e5a9e1ea5669d663b
 DIST chromium-86-patchset-1.tar.xz 6588 BLAKE2B 7a01189d7bf55c3b48b6ef377bc364dfc59ecece9669b127af74c01678ba39ee8893e4dfc7eafb8c5550365975fcd4baca33894ef2346d980249cede6e03c0bc SHA512 30a1417e7cbe1a674c240b976f1ceee00fa2140e9857e13a2767b9de652fd9e93bdac151a076d4076a0bd7ceb6fc2b391b41143668121a21820fc8c9975f0958

diff --git a/www-client/chromium/chromium-84.0.4147.89.ebuild b/www-client/chromium/chromium-84.0.4147.89.ebuild
deleted file mode 100644
index f6c45bfb2ec..00000000000
--- a/www-client/chromium/chromium-84.0.4147.89.ebuild
+++ /dev/null
@@ -1,864 +0,0 @@
-# Copyright 2009-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-XCB_PROTO_VERSION="1.14"
-PATCHSET="3"
-PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
-	https://www.x.org/releases/individual/proto/xcb-proto-${XCB_PROTO_VERSION}.tar.xz
-	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts headless kerberos ozone pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="
-	component-build? ( !suid )
-	wayland? ( ozone )
-"
-
-COMMON_X_DEPEND="
-	media-libs/mesa:=[gbm]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXtst:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libxcb:=
-"
-
-COMMON_DEPEND="
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/expat:=
-	dev-libs/glib:2
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/pango:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-	ozone? (
-		!headless? (
-			${COMMON_X_DEPEND}
-			x11-libs/gtk+:3[wayland?,X]
-			wayland? (
-				dev-libs/wayland:=
-				dev-libs/libffi:=
-				x11-libs/libdrm:=
-				x11-libs/libxkbcommon:=
-			)
-		)
-	)
-	!ozone? (
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		x11-libs/gtk+:3[X]
-		${COMMON_X_DEPEND}
-	)
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	app-arch/unzip
-	dev-lang/perl
-	>=dev-util/gn-0.1726
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	closure-compile? ( virtual/jre )
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-: ${CHROMIUM_FORCE_LIBCXX=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-9"
-fi
-
-if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-9"
-	DEPEND+=" >=sys-libs/libcxx-9"
-else
-	COMMON_DEPEND="
-		app-arch/snappy:=
-		dev-libs/libxslt:=
-		>=dev-libs/re2-0.2019.08.01:=
-		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-67.1:= )
-	"
-	RDEPEND+="${COMMON_DEPEND}"
-	DEPEND+="${COMMON_DEPEND}"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-84-mediaalloc.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
-			die "At least gcc 9.2 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			if use component-build; then
-				die "Component build with clang requires fuzzer headers."
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		if use custom-cflags || use component-build; then
-			CHECKREQS_DISK_BUILD="25G"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	eapply "${WORKDIR}/patches"
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/fabricjs
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/libgifcodec
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/harfbuzz-ng/utils
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libavif
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/mozilla
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/schema_org
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/astc-encoder
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/ooura
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-
-		# we need to generate ppc64 stuff because upstream does not ship it yet
-		# it has to be done before unbundling.
-		if use ppc64; then
-			pushd third_party/libvpx >/dev/null || die
-			mkdir -p source/config/linux/ppc64 || die
-			./generate_gni.sh || die
-			popd >/dev/null || die
-		fi
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-	if use ozone && use wayland && ! use headless ; then
-		keeplibs+=( third_party/wayland )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		keeplibs+=( third_party/libxml )
-		keeplibs+=( third_party/libxslt )
-		keeplibs+=( third_party/openh264 )
-		keeplibs+=( third_party/re2 )
-		keeplibs+=( third_party/snappy )
-		if use system-icu; then
-			keeplibs+=( third_party/icu )
-		fi
-	fi
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-			die "Compiling with sys-libs/libcxx requires clang."
-		fi
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
-		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
-		gn_system_libraries+=( libxml )
-		gn_system_libraries+=( libxslt )
-		gn_system_libraries+=( openh264 )
-		gn_system_libraries+=( re2 )
-		gn_system_libraries+=( snappy )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Debug info section overflows without component build
-		# Prevent linker from running out of address space, bug #471810 .
-		if ! use component-build || use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
-		fi
-	fi
-
-	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-		append-flags -stdlib=libc++
-		append-ldflags -stdlib=libc++
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	# Use bundled xcb-proto, bug #727000
-	myconf_gn+=" xcbproto_path=\"${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}/src\""
-
-	# Enable ozone support
-	if use ozone; then
-		myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
-		myconf_gn+=" ozone_platform_headless=true"
-		if ! use headless; then
-			myconf_gn+=" use_system_libdrm=true"
-			myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
-			myconf_gn+=" ozone_platform_x11=true"
-			myconf_gn+=" ozone_platform_headless=true"
-			if use wayland; then
-				myconf_gn+=" use_system_minigbm=true use_xkbcommon=true"
-				myconf_gn+=" ozone_platform=\"wayland\""
-			else
-				myconf_gn+=" ozone_platform=\"x11\""
-			fi
-		else
-			myconf_gn+=" ozone_platform=\"headless\""
-		fi
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# https://bugs.gentoo.org/717456
-	# Use bundled xcb-proto, because system xcb-proto doesn't have Python 2.7 support
-	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}${PYTHONPATH+:}${PYTHONPATH}"
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	ozone_auto_session () {
-		use ozone && use wayland && ! use headless && echo true || echo false
-	}
-	local sedargs=( -e
-			"s:/usr/lib/:/usr/$(get_libdir)/:g;
-			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r4.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	(
-		shopt -s nullglob
-		local files=(out/Release/*.so)
-		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
-	)
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-launcher-r4.sh b/www-client/chromium/files/chromium-launcher-r4.sh
deleted file mode 100644
index cb1e9f548b3..00000000000
--- a/www-client/chromium/files/chromium-launcher-r4.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-# Allow the user to override command-line flags, bug #357629.
-# This is based on Debian's chromium-browser package, and is intended
-# to be consistent with Debian.
-for f in /etc/chromium/*; do
-    [[ -f ${f} ]] && source "${f}"
-done
-
-# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
-# default CHROMIUM_FLAGS (from /etc/chromium/default).
-CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
-
-# Let the wrapped binary know that it has been run through the wrapper
-export CHROME_WRAPPER=$(readlink -f "$0")
-
-PROGDIR=${CHROME_WRAPPER%/*}
-
-case ":$PATH:" in
-  *:$PROGDIR:*)
-    # $PATH already contains $PROGDIR
-    ;;
-  *)
-    # Append $PROGDIR to $PATH
-    export PATH="$PATH:$PROGDIR"
-    ;;
-esac
-
-if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
-	# Running as root with HOME owned by root.
-	# Pass --user-data-dir to work around upstream failsafe.
-	CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
-		${CHROMIUM_FLAGS}"
-fi
-
-# Select session type
-if @@OZONE_AUTO_SESSION@@; then
-    if [[ -z ${XDG_SESSION_TYPE+x} ]]; then
-        if [[ -z ${WAYLAND_DISPLAY+x} ]]; then
-            CHROMIUM_FLAGS="--ozone-platform=x11 ${CHROMIUM_FLAGS}"
-        else
-            CHROMIUM_FLAGS="--ozone-platform=wayland ${CHROMIUM_FLAGS}"
-        fi
-    else
-        CHROMIUM_FLAGS="--ozone-platform=${XDG_SESSION_TYPE} ${CHROMIUM_FLAGS}"
-    fi
-fi
-
-# Set the .desktop file name
-export CHROME_DESKTOP="chromium-browser-chromium.desktop"
-
-exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-07-26 16:42 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-07-26 16:42 UTC (permalink / raw
  To: gentoo-commits

commit:     1b229dd19792f4d0e63f94ab248c16a6a2b927bd
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri Jul 24 17:42:24 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jul 26 16:42:38 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b229dd1

www-client/chromium: beta channel bump to 85.0.4183.39

Bug: https://bugs.gentoo.org/733296
Package-Manager: Portage-2.3.99, Repoman-2.3.23
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...4183.26.ebuild => chromium-85.0.4183.39.ebuild} |  5 +-
 www-client/chromium/files/chromium-launcher-r5.sh  | 56 ++++++++++++++++++++++
 3 files changed, 61 insertions(+), 2 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 09ce705e91e..13948d07b41 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,6 @@
 DIST chromium-84-patchset-3.tar.xz 20148 BLAKE2B d910570b43f63bcf4ead90ca4e4005a08d7c85b5b4e7af2a70ec4bc18265cbe8b075523878710075cfee4e0631eb3374e1e6d06251f4bf03377954807b1951e9 SHA512 316db8b0359b10a988242a0d665475d912fa9b610a547478d8c39b337afc02780a54d7024e231eb4fd402063cf439f6e2b4bb92a4968c8e0c3e69d84a2ae1664
 DIST chromium-84.0.4147.89.tar.xz 845153972 BLAKE2B e8101805af6278fc9c49041071e7cd6d53fe79ba74b83b636584db57f459f003559758a51a1cd155d7fe3d5d0d21c95d37f84e638644c6e08b39ea02cce902be SHA512 cc207a5f09a89e42bc12fd491d5d0ef11c04daaa324aa696d2f8a37679b8f2171d3b265296968c3312e158b0fd2c059e12727a7463d3bd2f640d5bbd43c4f676
 DIST chromium-85-patchset-2.tar.xz 9724 BLAKE2B 929d6abe3a66db395a9cedc63510a6a0ed0d79057f92ade22fe26221bf46a63e88fb40d6e54e6ffa837d142ec5da22e2b428f3153db431e3389de0b230fa2aec SHA512 753ce53c2c10cf1abdce334086a633dfcb4543c86a2dccbee0ad1bc8a8a0b642cdd18e2277c67088a380a9fa2ca8fd655e2fc0b3a2931de3230afa046615cd0e
-DIST chromium-85.0.4183.26.tar.xz 863782884 BLAKE2B a08f042f07b96e490f8e2d7ca132a249f2745296ad5250bfb65550e632483cfbae3a60ed42fda5608bbe7ade3356b84fb4dea7d4dba5dbd7c284a3c5c46e0199 SHA512 00267e64bcbb8c464fa624e203bbfde9d6dd324d70a83ef903e5cec0332ddf6fd540c742fce99c23931522e57e54e46280cda7dc0e085b33cf2c36ef45bbd935
+DIST chromium-85.0.4183.39.tar.xz 863788052 BLAKE2B 76551471aab570e6484b0dae31191f2d2aace5f360353274a265f205b7c24997b75c6d32b15ff0e34dd0c31edb70491f4f5f7bb8fe331f8b110fa77051572d54 SHA512 23ac7d6d96a6abaee565b791d75b03fa0b9ff9f3a8bd8f4c42896f345530796485d756ac96f97e566f4c9d054ca3fa9b14d5dc774533f50e5a9e1ea5669d663b
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf
 DIST xcb-proto-1.14.tar.xz 143384 BLAKE2B 60212b0f0ce039a64a2e6cbbc78564eeffc57cff20987b37dc780d8d97ae888a7dbfbbaadc6e0e4bedfc5d1e360f16318e3825ad8406de668d9c7c66cf7f4b5d SHA512 de66d568163b6da2be9d6c59984f3afa3acd119a781378638045fd68018665ef5c9af98f024e9962ba3eb7c7a4d85c27ba70ffafceb2324ccc6940f34de16690

diff --git a/www-client/chromium/chromium-85.0.4183.26.ebuild b/www-client/chromium/chromium-85.0.4183.39.ebuild
similarity index 99%
rename from www-client/chromium/chromium-85.0.4183.26.ebuild
rename to www-client/chromium/chromium-85.0.4183.39.ebuild
index dd5f9553613..6a310604e12 100644
--- a/www-client/chromium/chromium-85.0.4183.26.ebuild
+++ b/www-client/chromium/chromium-85.0.4183.39.ebuild
@@ -687,6 +687,9 @@ src_configure() {
 	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
 	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
 
+	# Disable unknown warning message from clang.
+	tc-is-clang && append-flags -Wno-unknown-warning-option
+
 	# Explicitly disable ICU data file support for system-icu builds.
 	if use system-icu; then
 		myconf_gn+=" icu_use_data_file=false"
@@ -783,7 +786,7 @@ src_install() {
 			"s:/usr/lib/:/usr/$(get_libdir)/:g;
 			s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
 	)
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r4.sh" > chromium-launcher.sh || die
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r5.sh" > chromium-launcher.sh || die
 	doexe chromium-launcher.sh
 
 	# It is important that we name the target "chromium-browser",

diff --git a/www-client/chromium/files/chromium-launcher-r5.sh b/www-client/chromium/files/chromium-launcher-r5.sh
new file mode 100644
index 00000000000..d9aa3af9a05
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r5.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+# Allow the user to override command-line flags, bug #357629.
+# This is based on Debian's chromium-browser package, and is intended
+# to be consistent with Debian.
+for f in /etc/chromium/*; do
+    [[ -f ${f} ]] && source "${f}"
+done
+
+# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
+# default CHROMIUM_FLAGS (from /etc/chromium/default).
+CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
+
+# Let the wrapped binary know that it has been run through the wrapper
+export CHROME_WRAPPER=$(readlink -f "$0")
+
+PROGDIR=${CHROME_WRAPPER%/*}
+
+case ":$PATH:" in
+  *:$PROGDIR:*)
+    # $PATH already contains $PROGDIR
+    ;;
+  *)
+    # Append $PROGDIR to $PATH
+    export PATH="$PATH:$PROGDIR"
+    ;;
+esac
+
+if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
+	# Running as root with HOME owned by root.
+	# Pass --user-data-dir to work around upstream failsafe.
+	CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
+		${CHROMIUM_FLAGS}"
+fi
+
+# Select session type
+if @@OZONE_AUTO_SESSION@@; then
+	platform=
+	if [[ ${XDG_SESSION_TYPE} == x11 ]]; then
+		platform=x11
+	elif [[ ${XDG_SESSION_TYPE} == wayland ]]; then
+		platform=wayland
+	else
+		if [[ -n ${WAYLAND_DISPLAY} ]]; then
+			platform=wayland
+		else
+			platform=x11
+		fi
+	fi
+	CHROMIUM_FLAGS="--ozone-platform=${platform} ${CHROMIUM_FLAGS}"
+fi
+
+# Set the .desktop file name
+export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+
+exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-06-20  4:09 Aaron Bauman
  0 siblings, 0 replies; 149+ messages in thread
From: Aaron Bauman @ 2020-06-20  4:09 UTC (permalink / raw
  To: gentoo-commits

commit:     fd3c6eeae58085ad2248e99ad67d8eba0f3a25ff
Author:     Aaron Bauman <bman <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 20 04:08:29 2020 +0000
Commit:     Aaron Bauman <bman <AT> gentoo <DOT> org>
CommitDate: Sat Jun 20 04:09:34 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd3c6eea

www-client/chromium: add patch for media alloc fix

Closes: https://bugs.gentoo.org/728624
Fixed-by: Arfrever Frehtes Taifersar Arahesis <arfrever.fta <AT> gmail.com>
Signed-off-by: Aaron Bauman <bman <AT> gentoo.org>

 .../chromium/chromium-84.0.4147.45-r1.ebuild       | 805 +++++++++++++++++++++
 .../chromium/files/chromium-84-mediaalloc.patch    |  41 ++
 2 files changed, 846 insertions(+)

diff --git a/www-client/chromium/chromium-84.0.4147.45-r1.ebuild b/www-client/chromium/chromium-84.0.4147.45-r1.ebuild
new file mode 100644
index 00000000000..baebfbedc07
--- /dev/null
+++ b/www-client/chromium/chromium-84.0.4147.45-r1.ebuild
@@ -0,0 +1,805 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+XCB_PROTO_VERSION="1.14"
+PATCHSET="1"
+PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
+	https://www.x.org/releases/individual/proto/xcb-proto-${XCB_PROTO_VERSION}.tar.xz
+	https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	media-libs/mesa:=[gbm]
+	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/gzip-1.7
+	app-arch/unzip
+	dev-lang/perl
+	>=dev-util/gn-0.1726
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	closure-compile? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-9"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+	RDEPEND+=" >=sys-libs/libcxx-9"
+	DEPEND+=" >=sys-libs/libcxx-9"
+else
+	COMMON_DEPEND="
+		app-arch/snappy:=
+		dev-libs/libxslt:=
+		>=dev-libs/re2-0.2019.08.01:=
+		>=media-libs/openh264-1.6.0:=
+		system-icu? ( >=dev-libs/icu-67.1:= )
+	"
+	RDEPEND+="${COMMON_DEPEND}"
+	DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+			die "At least gcc 9.2 is required"
+		fi
+		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+			die "Component build with tcmalloc requires FEATURES=-usersandbox."
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			if use component-build; then
+				die "Component build with clang requires fuzzer headers."
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	eapply "${WORKDIR}/patches"
+	eapply "${FILESDIR}"/chromium-84-mediaalloc.patch
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/acorn
+		third_party/devtools-frontend/src/front_end/third_party/codemirror
+		third_party/devtools-frontend/src/front_end/third_party/fabricjs
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/third_party
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/freetype
+		third_party/libgifcodec
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/harfbuzz-ng/utils
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lottie
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/mozilla
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/schema_org
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-7.0
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/ooura
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/zlib/google
+		tools/grit/third_party/six
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+		# we need to generate ppc64 stuff because upstream does not ship it yet
+		# it has to be done before unbundling.
+		if use ppc64; then
+			pushd third_party/libvpx >/dev/null || die
+			mkdir -p source/config/linux/ppc64 || die
+			./generate_gni.sh || die
+			popd >/dev/null || die
+		fi
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libxml )
+		keeplibs+=( third_party/libxslt )
+		keeplibs+=( third_party/openh264 )
+		keeplibs+=( third_party/re2 )
+		keeplibs+=( third_party/snappy )
+		if use system-icu; then
+			keeplibs+=( third_party/icu )
+		fi
+	fi
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+			die "Compiling with sys-libs/libcxx requires clang."
+		fi
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+		gn_system_libraries+=( libxml )
+		gn_system_libraries+=( libxslt )
+		gn_system_libraries+=( openh264 )
+		gn_system_libraries+=( re2 )
+		gn_system_libraries+=( snappy )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+		fi
+	fi
+
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		append-flags -stdlib=libc++
+		append-ldflags -stdlib=libc++
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	# Use bundled xcb-proto, bug #727000
+	myconf_gn+=" xcbproto_path=\"${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}/src\""
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# https://bugs.gentoo.org/717456
+	# Use bundled xcb-proto, because system xcb-proto doesn't have Python 2.7 support
+	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}${PYTHONPATH+:}${PYTHONPATH}"
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-84-mediaalloc.patch b/www-client/chromium/files/chromium-84-mediaalloc.patch
new file mode 100644
index 00000000000..69f0229088a
--- /dev/null
+++ b/www-client/chromium/files/chromium-84-mediaalloc.patch
@@ -0,0 +1,41 @@
+https://bugs.chromium.org/p/chromium/issues/detail?id=1095962
+
+--- /media/base/media.cc
++++ /media/base/media.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <limits>
++
+ #include "media/base/media.h"
+ 
+ #include "base/allocator/buildflags.h"
+@@ -41,7 +43,7 @@
+ 
+ #if BUILDFLAG(USE_ALLOCATOR_SHIM)
+     // Remove allocation limit from ffmpeg, so calls go down to shim layer.
+-    av_max_alloc(0);
++    av_max_alloc(std::numeric_limits<size_t>::max());
+ #endif  // BUILDFLAG(USE_ALLOCATOR_SHIM)
+ 
+ #endif  // BUILDFLAG(ENABLE_FFMPEG)
+--- /third_party/ffmpeg/chromium/dllmain.cc
++++ /third_party/ffmpeg/chromium/dllmain.cc
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+ 
+ #include <intrin.h>
++#include <limits>
+ #include <new.h>
+ #include <stdlib.h>
+ #include <windows.h>
+@@ -28,7 +29,7 @@
+   if (reason == DLL_PROCESS_ATTACH) {
+     DisableThreadLibraryCalls(instance);
+     // Remove allocation limit from ffmpeg, so calls go down to shim layer.
+-    av_max_alloc(0);
++    av_max_alloc(std::numeric_limits<size_t>::max());
+     // Enable OOM crashes in the shim for all malloc calls that fail.
+     _set_new_mode(1);
+     _set_new_handler(&OnNoMemory);


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-06-04 14:47 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-06-04 14:47 UTC (permalink / raw
  To: gentoo-commits

commit:     a537d59b37b14d88b8cb5e4ad1020d0f1645a601
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Jun  4 06:32:23 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Jun  4 14:46:54 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a537d59b

www-client/chromium: stable channel bump to 83.0.4103.97

Bug: https://bugs.gentoo.org/727012
Closes: https://bugs.gentoo.org/726604
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/16065

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-83.0.4103.97.ebuild   | 820 +++++++++++++++++++++
 .../files/chromium-83-gcc-compatibility.patch      |  25 +
 3 files changed, 846 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1966ce66d89..b43dd6263a6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,5 @@
 DIST chromium-83.0.4103.61.tar.xz 802558244 BLAKE2B d71ec15bea46438dccda49bb5d8ca0013e89e6876470aba077fbad70578a6f4d9ffb71150a9f0c676740be1cf3a7c681077e39ee9cf961b508b8a59167b4b949 SHA512 0fa179bdc61399c3e15e03ce1e720ca6487df603712689ffd4161ef1103c131b0baaedca3c7d706dfdcd2fa3328337cc4a807c0478a429f88358e512cfacbcba
+DIST chromium-83.0.4103.97.tar.xz 802603824 BLAKE2B 543c7908ba8e712650d1d09d7f1c0eff25c069900a5102ab49a55b2e36c5dceec7d60521dfbceb3192a9e24c55a2a3642d2f8005cd92557a5154c9ff4a671a67 SHA512 5b7d7ab2f4e3d7ee965be4bba2d7ee1f3ce7f062920547639fd8d695eb8ef4a94153a99ecd10fb13b46fbcdec59ed3792231fec9c0773a457a60a551ebbe53c9
 DIST chromium-84-patchset-1.tar.xz 17652 BLAKE2B 17008a5d7b81fd9dd3934f815922a10c4b33bd4b3a13b350011d60627133f2179c2e70a6e74ef11ddf9b68b83b988fad3df15e9307f871006ccb7aca52c819da SHA512 2a45183c60794256b150bf67aa8395bab113e77b338775f737ebd8a822fd17be776b786ad12ffa759774a8876e0976a1c285ef90257e9532cfd9952baba7096d
 DIST chromium-84.0.4147.30.tar.xz 845012272 BLAKE2B 2f88b57f3411886fe69731de8dee0bfdec7877ccc69e64acb697c1c3fe391ceadef429a636be2fa9c17059c0cdbf5339692bbc542c6e82727ca4c3917e3e6679 SHA512 6188727638c64fb1e9cf1760b038ee196853b0460dce0a8d5ce9ed890a08c6da19c1619b847b1f9462fb97942909ac44404d78acfbb8a26ffce2ef3d7eca5dc6
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-83.0.4103.97.ebuild b/www-client/chromium/chromium-83.0.4103.97.ebuild
new file mode 100644
index 00000000000..c2f3a8ec890
--- /dev/null
+++ b/www-client/chromium/chromium-83.0.4103.97.ebuild
@@ -0,0 +1,820 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	media-libs/mesa:=[gbm]
+	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		>=media-libs/opus-1.3.1:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/gzip-1.7
+	app-arch/unzip
+	dev-lang/perl
+	>=dev-util/gn-0.1726
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	closure-compile? ( virtual/jre )
+	!system-libvpx? (
+		amd64? ( dev-lang/yasm )
+		x86? ( dev-lang/yasm )
+	)
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-9"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+	RDEPEND+=" >=sys-libs/libcxx-9"
+	DEPEND+=" >=sys-libs/libcxx-9"
+	BDEPEND+="
+		amd64? ( dev-lang/yasm )
+		x86? ( dev-lang/yasm )
+	"
+else
+	COMMON_DEPEND="
+		app-arch/snappy:=
+		dev-libs/libxslt:=
+		>=dev-libs/re2-0.2019.08.01:=
+		>=media-libs/openh264-1.6.0:=
+		system-icu? ( >=dev-libs/icu-67.1:= )
+	"
+	RDEPEND+="${COMMON_DEPEND}"
+	DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r12.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-blink-style_format.patch"
+	"${FILESDIR}/chromium-78-protobuf-export.patch"
+	"${FILESDIR}/chromium-79-gcc-alignas.patch"
+	"${FILESDIR}/chromium-80-gcc-quiche.patch"
+	"${FILESDIR}/chromium-82-gcc-noexcept.patch"
+	"${FILESDIR}/chromium-82-gcc-incomplete-type.patch"
+	"${FILESDIR}/chromium-82-gcc-template.patch"
+	"${FILESDIR}/chromium-82-gcc-iterator.patch"
+	"${FILESDIR}/chromium-83-gcc-template.patch"
+	"${FILESDIR}/chromium-83-gcc-include.patch"
+	"${FILESDIR}/chromium-83-gcc-permissive.patch"
+	"${FILESDIR}/chromium-83-gcc-iterator.patch"
+	"${FILESDIR}/chromium-83-gcc-serviceworker.patch"
+	"${FILESDIR}/chromium-83-gcc-compatibility.patch"
+	"${FILESDIR}/chromium-83-gcc-10.patch"
+	"${FILESDIR}/chromium-83-icu67.patch"
+	"${FILESDIR}/chromium-81-re2-0.2020.05.01.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+			die "At least gcc 8.0 is required"
+		fi
+		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+			die "Component build with tcmalloc requires FEATURES=-usersandbox."
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			if use component-build; then
+				die "Component build with clang requires fuzzer headers."
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		if use custom-cflags || use component-build; then
+			CHECKREQS_DISK_BUILD="25G"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/fabricjs
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/third_party
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/freetype
+		third_party/libgifcodec
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/harfbuzz-ng/utils
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mako
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/schema_org
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
+		third_party/swiftshader/third_party/llvm-7.0
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/fft4g
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/zlib/google
+		tools/grit/third_party/six
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+		# we need to generate ppc64 stuff because upstream does not ship it yet
+		# it has to be done before unbundling.
+		if use ppc64; then
+			pushd third_party/libvpx >/dev/null || die
+			mkdir -p source/config/linux/ppc64 || die
+			./generate_gni.sh || die
+			popd >/dev/null || die
+		fi
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		keeplibs+=( third_party/libxml )
+		keeplibs+=( third_party/libxslt )
+		keeplibs+=( third_party/openh264 )
+		keeplibs+=( third_party/re2 )
+		keeplibs+=( third_party/snappy )
+		if use system-icu; then
+			keeplibs+=( third_party/icu )
+		fi
+	fi
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+			die "Compiling with sys-libs/libcxx requires clang."
+		fi
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+		# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+		gn_system_libraries+=( libxml )
+		gn_system_libraries+=( libxslt )
+		gn_system_libraries+=( openh264 )
+		gn_system_libraries+=( re2 )
+		gn_system_libraries+=( snappy )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Disable deprecated libgnome-keyring dependency, bug #713012
+	myconf_gn+=" use_gnome_keyring=false"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Debug info section overflows without component build
+		# Prevent linker from running out of address space, bug #471810 .
+		if ! use component-build || use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+		fi
+	fi
+
+	if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+		append-flags -stdlib=libc++
+		append-ldflags -stdlib=libc++
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	elif [[ $myarch = ppc64 ]] ; then
+		myconf_gn+=" target_cpu=\"ppc64\""
+		ffmpeg_target_arch=ppc64
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# https://bugs.gentoo.org/717456
+	local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0${PYTHONPATH+:}${PYTHONPATH}"
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+
+	# Build desktop file; bug #706786
+	sed -e 's|@@MENUNAME@@|Chromium|g;
+		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+		s|@@PACKAGE@@|chromium-browser|g;
+		s|\(^Exec=\)/usr/bin/|\1|g;' \
+		chrome/installer/linux/common/desktop.template > \
+		out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	# Install desktop entry
+	domenu out/Release/chromium-browser-chromium.desktop
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-83-gcc-compatibility.patch b/www-client/chromium/files/chromium-83-gcc-compatibility.patch
new file mode 100644
index 00000000000..09508ea50b1
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-compatibility.patch
@@ -0,0 +1,25 @@
+From 55ce03222ee4c5ed2442278264028f6fb5bffa34 Mon Sep 17 00:00:00 2001
+From: David Seifert <david.seifert@gmail.com>
+Date: Sun, 03 May 2020 17:05:43 +0200
+Subject: [PATCH] Add compatibility workaround for GCC 6/7/8
+
+Bug: 819294
+Change-Id: I632c4ecf7d7f9876b37a6cff05c0408125656257
+---
+
+diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
+index 5a4468d..9dc95fa 100644
+--- a/third_party/blink/renderer/platform/wtf/hash_table.h
++++ b/third_party/blink/renderer/platform/wtf/hash_table.h
+@@ -673,7 +673,10 @@
+     return IsEmptyBucket(key) || IsDeletedBucket(key);
+   }
+   static bool IsEmptyOrDeletedBucketSafe(const Value& value) {
+-    alignas(std::max(alignof(Key), sizeof(size_t))) char buf[sizeof(Key)];
++    // GCC 6, 7 and 8 require this indirection due to a constexpr bug:
++    //   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94929
++    constexpr size_t kAlignment = std::max(alignof(Key), sizeof(size_t));
++    alignas(kAlignment) char buf[sizeof(Key)];
+     const Key& key = Extractor::ExtractSafe(value, &buf);
+     return IsEmptyBucket(key) || IsDeletedBucket(key);
+   }


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-05-30  0:19 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-05-30  0:19 UTC (permalink / raw
  To: gentoo-commits

commit:     a984f74a72b698232dd18f11edb3047b79cd7b42
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat May 30 00:19:04 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat May 30 00:19:04 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a984f74a

www-client/chromium: remove old

Bug: https://bugs.gentoo.org/724008
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 -
 www-client/chromium/chromium-81.0.4044.138.ebuild  | 764 ---------------------
 .../chromium/files/chromium-80-gcc-blink.patch     |  45 --
 www-client/chromium/files/chromium-81-gcc-10.patch | 116 ----
 .../chromium/files/chromium-81-gcc-constexpr.patch |  19 -
 .../chromium/files/chromium-81-gcc-noexcept.patch  |  13 -
 www-client/chromium/files/chromium-81-icu67.patch  | 162 -----
 .../chromium/files/chromium-compiler-r11.patch     | 185 -----
 8 files changed, 1305 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a68fc1ceda6..a37ec5e53f6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,3 @@
-DIST chromium-81.0.4044.138.tar.xz 785960928 BLAKE2B fb8ea6aae55450e820f91fc8be7948ac0155beb0fc6a05988506a78b3306ffc52e69b10d3c91e4a29fe2171f339d5331e9524d3e4cd08de57e090ce16412a673 SHA512 9f686b27b2f8ea5c15f50b0ddcd24745aec41e28af8c38618e18771401bd5cfb26939b9ac49973ea804cda458a939c1a6ad59cb24fb1937b7687c3d908183437
 DIST chromium-83.0.4103.61.tar.xz 802558244 BLAKE2B d71ec15bea46438dccda49bb5d8ca0013e89e6876470aba077fbad70578a6f4d9ffb71150a9f0c676740be1cf3a7c681077e39ee9cf961b508b8a59167b4b949 SHA512 0fa179bdc61399c3e15e03ce1e720ca6487df603712689ffd4161ef1103c131b0baaedca3c7d706dfdcd2fa3328337cc4a807c0478a429f88358e512cfacbcba
 DIST chromium-84.0.4136.5.tar.xz 840308252 BLAKE2B 3f10ea5dbb48dd2a39cfb8d39289ad439d0257bea6e40ff130d427f96252890a6164a8dae3b5d30b7e74bcb87815055a6f27826add3ef5e9849e72c6a7dcc3b1 SHA512 9b6285ec2bb9790b8e1593473f8e1f2642a6fa851fb5645c282c48911dffabc2107aa99c90b6d6450eb8c0dc38daa089c514801921bc1ac782b25e34d9b8fd84
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-81.0.4044.138.ebuild b/www-client/chromium/chromium-81.0.4044.138.ebuild
deleted file mode 100644
index b6f1330e280..00000000000
--- a/www-client/chromium/chromium-81.0.4044.138.ebuild
+++ /dev/null
@@ -1,764 +0,0 @@
-# Copyright 2009-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-65:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2019.08.01:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	media-libs/mesa:=[gbm]
-	system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	dev-lang/perl
-	dev-util/gn
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	closure-compile? ( virtual/jre )
-	!system-libvpx? (
-		amd64? ( dev-lang/yasm )
-		x86? ( dev-lang/yasm )
-	)
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r11.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-78-protobuf-export.patch"
-	"${FILESDIR}/chromium-79-gcc-alignas.patch"
-	"${FILESDIR}/chromium-80-gcc-quiche.patch"
-	"${FILESDIR}/chromium-80-gcc-blink.patch"
-	"${FILESDIR}/chromium-81-gcc-noexcept.patch"
-	"${FILESDIR}/chromium-81-gcc-constexpr.patch"
-	"${FILESDIR}/chromium-81-gcc-10.patch"
-	"${FILESDIR}/chromium-81-icu67.patch"
-	"${FILESDIR}/chromium-81-re2-0.2020.05.01.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			if use component-build; then
-				die "Component build with clang requires fuzzer headers."
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/src/third_party/volk
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/fabricjs
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/libgifcodec
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-
-		# we need to generate ppc64 stuff because upstream does not ship it yet
-		# it has to be done before unbundling.
-		if use ppc64; then
-			pushd third_party/libvpx >/dev/null || die
-			mkdir -p source/config/linux/ppc64 || die
-			./generate_gni.sh || die
-			popd >/dev/null || die
-		fi
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	elif [[ $myarch = ppc64 ]] ; then
-		myconf_gn+=" target_cpu=\"ppc64\""
-		ffmpeg_target_arch=ppc64
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
-	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-80-gcc-blink.patch b/www-client/chromium/files/chromium-80-gcc-blink.patch
deleted file mode 100644
index 2118b46f39a..00000000000
--- a/www-client/chromium/files/chromium-80-gcc-blink.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc: In member function 'void blink::DeleteSelectionCommand::InitializePositionData(blink::EditingState*)':
-../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:256:59: error: no matching function for call to 'EnclosingNodeOfType(blink::Position&, <unresolved overloaded function type>)'
-  256 |       EnclosingNodeOfType(start, &IsA<HTMLTableRowElement>));
-      |                                                           ^
-In file included from ../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:34:
-../../third_party/blink/renderer/core/editing/editing_utilities.h:112:19: note: candidate: 'blink::Node* blink::EnclosingNodeOfType(const Position&, bool (*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
-  112 | CORE_EXPORT Node* EnclosingNodeOfType(
-      |                   ^~~~~~~~~~~~~~~~~~~
-../../third_party/blink/renderer/core/editing/editing_utilities.h:114:12: note:   no known conversion for argument 2 from '<unresolved overloaded function type>' to 'bool (*)(const blink::Node*)'
-  114 |     bool (*node_is_of_type)(const Node*),
-      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-../../third_party/blink/renderer/core/editing/editing_utilities.h:116:19: note: candidate: 'blink::Node* blink::EnclosingNodeOfType(const PositionInFlatTree&, bool (*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
-  116 | CORE_EXPORT Node* EnclosingNodeOfType(
-      |                   ^~~~~~~~~~~~~~~~~~~
-../../third_party/blink/renderer/core/editing/editing_utilities.h:117:5: note:   no known conversion for argument 1 from 'blink::Position' {aka 'blink::PositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> >'} to 'const PositionInFlatTree&' {aka 'const blink::PositionTemplate<blink::EditingAlgorithm<blink::FlatTreeTraversal> >&'}
-  117 |     const PositionInFlatTree&,
-      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
-
-diff --git a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc b/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
-index 6ff6906..dd531ae 100644
---- a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
-+++ b/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
-@@ -224,6 +224,10 @@ static Position TrailingWhitespacePosition(const Position& position,
-   return Position();
- }
- 
-+static bool IsAHTMLTableRowElement(const Node* node) {
-+  return IsA<HTMLTableRowElement>(node);
-+}
-+
- void DeleteSelectionCommand::InitializePositionData(
-     EditingState* editing_state) {
-   DCHECK(!GetDocument().NeedsLayoutTreeUpdate());
-@@ -253,9 +257,9 @@ void DeleteSelectionCommand::InitializePositionData(
-   end_root_ = RootEditableElementOf(end);
- 
-   start_table_row_ = To<HTMLTableRowElement>(
--      EnclosingNodeOfType(start, &IsA<HTMLTableRowElement>));
-+      EnclosingNodeOfType(start, &IsAHTMLTableRowElement));
-   end_table_row_ = To<HTMLTableRowElement>(
--      EnclosingNodeOfType(end, &IsA<HTMLTableRowElement>));
-+      EnclosingNodeOfType(end, &IsAHTMLTableRowElement));
- 
-   // Don't move content out of a table cell.
-   // If the cell is non-editable, enclosingNodeOfType won't return it by

diff --git a/www-client/chromium/files/chromium-81-gcc-10.patch b/www-client/chromium/files/chromium-81-gcc-10.patch
deleted file mode 100644
index e0690d167c5..00000000000
--- a/www-client/chromium/files/chromium-81-gcc-10.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 797a8ef5b7a5d3ab513a4eef68755a939dc570be Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Tue, 7 Apr 2020 10:02:27 +0000
-Subject: [PATCH] GCC: fix includes for gcc-10
-
----
- base/trace_event/trace_event_memory_overhead.h                  | 1 +
- chrome/browser/search/background/ntp_backgrounds.h              | 1 +
- media/cdm/supported_cdm_versions.h                              | 1 +
- third_party/angle/include/platform/Platform.h                   | 1 +
- third_party/perfetto/include/perfetto/base/task_runner.h        | 1 +
- third_party/webrtc/call/rtx_receive_stream.h                    | 1 +
- .../webrtc/modules/audio_processing/aec3/clockdrift_detector.h  | 1 +
- ui/gfx/linux/drm_util_linux.h                                   | 2 ++
- 8 files changed, 9 insertions(+)
-
-diff --git a/base/trace_event/trace_event_memory_overhead.h b/base/trace_event/trace_event_memory_overhead.h
-index 69468d4..3f5b786 100644
---- a/base/trace_event/trace_event_memory_overhead.h
-+++ b/base/trace_event/trace_event_memory_overhead.h
-@@ -9,6 +9,7 @@
- #include <stdint.h>
- 
- #include <unordered_map>
-+#include <string>
- 
- #include "base/base_export.h"
- #include "base/macros.h"
-diff --git a/chrome/browser/search/background/ntp_backgrounds.h b/chrome/browser/search/background/ntp_backgrounds.h
-index 7afc0a2..6d0957e 100644
---- a/chrome/browser/search/background/ntp_backgrounds.h
-+++ b/chrome/browser/search/background/ntp_backgrounds.h
-@@ -6,6 +6,7 @@
- #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
- 
- #include <array>
-+#include <cstddef>
- 
- class GURL;
- 
-diff --git a/media/cdm/supported_cdm_versions.h b/media/cdm/supported_cdm_versions.h
-index dbe59ba..5216cfe 100644
---- a/media/cdm/supported_cdm_versions.h
-+++ b/media/cdm/supported_cdm_versions.h
-@@ -6,6 +6,7 @@
- #define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
- 
- #include <array>
-+#include <cstddef>
- 
- #include "media/base/media_export.h"
- #include "media/cdm/api/content_decryption_module.h"
-diff --git a/third_party/angle/include/platform/Platform.h b/third_party/angle/include/platform/Platform.h
-index 09505a3..8833fa0 100644
---- a/third_party/angle/include/platform/Platform.h
-+++ b/third_party/angle/include/platform/Platform.h
-@@ -11,6 +11,7 @@
- 
- #include <stdint.h>
- #include <array>
-+#include <cstddef>
- 
- #define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
- 
-diff --git a/third_party/perfetto/include/perfetto/base/task_runner.h b/third_party/perfetto/include/perfetto/base/task_runner.h
-index cf60401..02658e7 100644
---- a/third_party/perfetto/include/perfetto/base/task_runner.h
-+++ b/third_party/perfetto/include/perfetto/base/task_runner.h
-@@ -18,6 +18,7 @@
- #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
- 
- #include <functional>
-+#include <cstdint>
- 
- #include "perfetto/base/export.h"
- 
-diff --git a/third_party/webrtc/call/rtx_receive_stream.h b/third_party/webrtc/call/rtx_receive_stream.h
-index 8ffa440..113a816 100644
---- a/third_party/webrtc/call/rtx_receive_stream.h
-+++ b/third_party/webrtc/call/rtx_receive_stream.h
-@@ -12,6 +12,7 @@
- #define CALL_RTX_RECEIVE_STREAM_H_
- 
- #include <map>
-+#include <cstdint>
- 
- #include "call/rtp_packet_sink_interface.h"
- 
-diff --git a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-index 22528c9..69e624e 100644
---- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-+++ b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-@@ -12,6 +12,7 @@
- #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
- 
- #include <array>
-+#include <cstddef>
- 
- namespace webrtc {
- 
-diff --git a/ui/gfx/linux/drm_util_linux.h b/ui/gfx/linux/drm_util_linux.h
-index 86ff2eb..990f12c 100644
---- a/ui/gfx/linux/drm_util_linux.h
-+++ b/ui/gfx/linux/drm_util_linux.h
-@@ -7,6 +7,8 @@
- 
- #include "ui/gfx/buffer_types.h"
- 
-+#include <cstdint>
-+
- namespace ui {
- 
- int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
--- 
-2.24.1
-

diff --git a/www-client/chromium/files/chromium-81-gcc-constexpr.patch b/www-client/chromium/files/chromium-81-gcc-constexpr.patch
deleted file mode 100644
index a9c1507c078..00000000000
--- a/www-client/chromium/files/chromium-81-gcc-constexpr.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/ui/views/layout/layout_types.h b/ui/views/layout/layout_types.h
-index 8f9dbf4..ba118b9 100644
---- a/ui/views/layout/layout_types.h
-+++ b/ui/views/layout/layout_types.h
-@@ -45,12 +45,12 @@ class VIEWS_EXPORT SizeBounds {
-   ~SizeBounds() = default;
- 
-   constexpr const base::Optional<int>& width() const { return width_; }
--  constexpr void set_width(base::Optional<int> width) {
-+  inline void set_width(base::Optional<int> width) {
-     width_ = std::move(width);
-   }
- 
-   constexpr const base::Optional<int>& height() const { return height_; }
--  constexpr void set_height(base::Optional<int> height) {
-+  inline void set_height(base::Optional<int> height) {
-     height_ = std::move(height);
-   }
- 

diff --git a/www-client/chromium/files/chromium-81-gcc-noexcept.patch b/www-client/chromium/files/chromium-81-gcc-noexcept.patch
deleted file mode 100644
index a6fc8aff72a..00000000000
--- a/www-client/chromium/files/chromium-81-gcc-noexcept.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/components/paint_preview/browser/paint_preview_client.cc b/components/paint_preview/browser/paint_preview_client.cc
-index 38ab6be..dccf07f 100644
---- a/components/paint_preview/browser/paint_preview_client.cc
-+++ b/components/paint_preview/browser/paint_preview_client.cc
-@@ -78,7 +78,7 @@ PaintPreviewClient::PaintPreviewData::PaintPreviewData() = default;
- PaintPreviewClient::PaintPreviewData::~PaintPreviewData() = default;
- 
- PaintPreviewClient::PaintPreviewData& PaintPreviewClient::PaintPreviewData::
--operator=(PaintPreviewData&& rhs) noexcept = default;
-+operator=(PaintPreviewData&& rhs) = default;
- PaintPreviewClient::PaintPreviewData::PaintPreviewData(
-     PaintPreviewData&& other) noexcept = default;
- 

diff --git a/www-client/chromium/files/chromium-81-icu67.patch b/www-client/chromium/files/chromium-81-icu67.patch
deleted file mode 100644
index 745bad28ee2..00000000000
--- a/www-client/chromium/files/chromium-81-icu67.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From 3f8dc4b2e5baf77b463334c769af85b79d8c1463 Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Fri, 03 Apr 2020 23:13:54 -0700
-Subject: [PATCH] [intl] Remove soon-to-be removed getAllFieldPositions
-
-Needed to land ICU67.1 soon.
-
-Bug: v8:10393
-Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489
-Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
-Commit-Queue: Frank Tang <ftang@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#67027}
----
-
-(backported for chromium-81)
-
-diff --git a/v8/src/objects/js-number-format.cc b/v8/src/objects/js-number-format.cc
-index 92d3e2f..ced408a 100644
---- a/v8/src/objects/js-number-format.cc
-+++ b/v8/src/objects/js-number-format.cc
-@@ -1197,42 +1197,31 @@ MaybeHandle<JSNumberFormat> JSNumberFormat::New(Isolate* isolate,
- }
- 
- namespace {
--Maybe<icu::UnicodeString> IcuFormatNumber(
-+Maybe<bool> IcuFormatNumber(
-     Isolate* isolate,
-     const icu::number::LocalizedNumberFormatter& number_format,
--    Handle<Object> numeric_obj, icu::FieldPositionIterator* fp_iter) {
-+    Handle<Object> numeric_obj, icu::number::FormattedNumber* formatted) {
-   // If it is BigInt, handle it differently.
-   UErrorCode status = U_ZERO_ERROR;
--  icu::number::FormattedNumber formatted;
-   if (numeric_obj->IsBigInt()) {
-     Handle<BigInt> big_int = Handle<BigInt>::cast(numeric_obj);
-     Handle<String> big_int_string;
-     ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string,
-                                      BigInt::ToString(isolate, big_int),
--                                     Nothing<icu::UnicodeString>());
--    formatted = number_format.formatDecimal(
-+                                     Nothing<bool>());
-+    *formatted = number_format.formatDecimal(
-         {big_int_string->ToCString().get(), big_int_string->length()}, status);
-   } else {
-     double number = numeric_obj->Number();
--    formatted = number_format.formatDouble(number, status);
-+    *formatted = number_format.formatDouble(number, status);
-   }
-   if (U_FAILURE(status)) {
-     // This happen because of icu data trimming trim out "unit".
-     // See https://bugs.chromium.org/p/v8/issues/detail?id=8641
--    THROW_NEW_ERROR_RETURN_VALUE(isolate,
--                                 NewTypeError(MessageTemplate::kIcuError),
--                                 Nothing<icu::UnicodeString>());
--  }
--  if (fp_iter) {
--    formatted.getAllFieldPositions(*fp_iter, status);
-+    THROW_NEW_ERROR_RETURN_VALUE(
-+        isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
-   }
--  icu::UnicodeString result = formatted.toString(status);
--  if (U_FAILURE(status)) {
--    THROW_NEW_ERROR_RETURN_VALUE(isolate,
--                                 NewTypeError(MessageTemplate::kIcuError),
--                                 Nothing<icu::UnicodeString>());
--  }
--  return Just(result);
-+  return Just(true);
- }
- 
- }  // namespace
-@@ -1243,10 +1232,16 @@ MaybeHandle<String> JSNumberFormat::FormatNumeric(
-     Handle<Object> numeric_obj) {
-   DCHECK(numeric_obj->IsNumeric());
- 
--  Maybe<icu::UnicodeString> maybe_format =
--      IcuFormatNumber(isolate, number_format, numeric_obj, nullptr);
-+  icu::number::FormattedNumber formatted;
-+  Maybe<bool> maybe_format =
-+      IcuFormatNumber(isolate, number_format, numeric_obj, &formatted);
-   MAYBE_RETURN(maybe_format, Handle<String>());
--  return Intl::ToString(isolate, maybe_format.FromJust());
-+  UErrorCode status = U_ZERO_ERROR;
-+  icu::UnicodeString result = formatted.toString(status);
-+  if (U_FAILURE(status)) {
-+    THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String);
-+  }
-+  return Intl::ToString(isolate, result);
- }
- 
- namespace {
-@@ -1359,12 +1354,18 @@ std::vector<NumberFormatSpan> FlattenRegionsToParts(
- }
- 
- namespace {
--Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
--                          icu::FieldPositionIterator* fp_iter,
-+Maybe<int> ConstructParts(Isolate* isolate,
-+                          icu::number::FormattedNumber* formatted,
-                           Handle<JSArray> result, int start_index,
-                           Handle<Object> numeric_obj, bool style_is_unit) {
-+  UErrorCode status = U_ZERO_ERROR;
-+  icu::UnicodeString formatted_text = formatted->toString(status);
-+  if (U_FAILURE(status)) {
-+    THROW_NEW_ERROR_RETURN_VALUE(
-+        isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<int>());
-+  }
-   DCHECK(numeric_obj->IsNumeric());
--  int32_t length = formatted.length();
-+  int32_t length = formatted_text.length();
-   int index = start_index;
-   if (length == 0) return Just(index);
- 
-@@ -1373,13 +1374,14 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
-   // other region covers some part of the formatted string. It's possible
-   // there's another field with exactly the same begin and end as this backdrop,
-   // in which case the backdrop's field_id of -1 will give it lower priority.
--  regions.push_back(NumberFormatSpan(-1, 0, formatted.length()));
-+  regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length()));
- 
-   {
--    icu::FieldPosition fp;
--    while (fp_iter->next(fp)) {
--      regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(),
--                                         fp.getEndIndex()));
-+    icu::ConstrainedFieldPosition cfp;
-+    cfp.constrainCategory(UFIELD_CATEGORY_NUMBER);
-+    while (formatted->nextPosition(cfp, status)) {
-+      regions.push_back(
-+          NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit()));
-     }
-   }
- 
-@@ -1401,7 +1403,7 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
-     Handle<String> substring;
-     ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-         isolate, substring,
--        Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos),
-+        Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos),
-         Nothing<int>());
-     Intl::AddElement(isolate, result, index, field_type_string, substring);
-     ++index;
-@@ -1421,14 +1423,14 @@ MaybeHandle<JSArray> JSNumberFormat::FormatToParts(
-       number_format->icu_number_formatter().raw();
-   CHECK_NOT_NULL(fmt);
- 
--  icu::FieldPositionIterator fp_iter;
--  Maybe<icu::UnicodeString> maybe_format =
--      IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter);
-+  icu::number::FormattedNumber formatted;
-+  Maybe<bool> maybe_format =
-+      IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted);
-   MAYBE_RETURN(maybe_format, Handle<JSArray>());
- 
-   Handle<JSArray> result = factory->NewJSArray(0);
-   Maybe<int> maybe_format_to_parts = ConstructParts(
--      isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj,
-+      isolate, &formatted, result, 0, numeric_obj,
-       number_format->style() == JSNumberFormat::Style::UNIT);
-   MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());
- 

diff --git a/www-client/chromium/files/chromium-compiler-r11.patch b/www-client/chromium/files/chromium-compiler-r11.patch
deleted file mode 100644
index f1b958a1170..00000000000
--- a/www-client/chromium/files/chromium-compiler-r11.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-From 137de121a36f9349ad8435fee57940facef82878 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Thu, 6 Feb 2020 07:46:57 +0000
-Subject: [PATCH] Disable various compiler configs
-
----
- build/config/compiler/BUILD.gn | 64 +++++++++++++---------------------
- 1 file changed, 25 insertions(+), 39 deletions(-)
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index eef1140..b34b55b 100644
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -260,8 +260,6 @@ config("compiler") {
- 
-   configs += [
-     # See the definitions below.
--    ":clang_revision",
--    ":compiler_cpu_abi",
-     ":compiler_codegen",
-     ":compiler_deterministic",
-   ]
-@@ -486,20 +484,6 @@ config("compiler") {
-     }
-   }
- 
--  if (is_clang && !is_nacl && !use_xcode_clang) {
--    cflags += [ "-fcrash-diagnostics-dir=" +
--                rebase_path("//tools/clang/crashreports", root_build_dir) ]
--
--    cflags += [
--      # TODO(hans): Remove this once Clang generates better optimized debug info
--      # by default. https://crbug.com/765793
--      "-Xclang",
--      "-mllvm",
--      "-Xclang",
--      "-instcombine-lower-dbg-declare=0",
--    ]
--  }
--
-   # C11/C++11 compiler flags setup.
-   # ---------------------------
-   if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-@@ -1446,6 +1430,12 @@ config("default_warnings") {
-         cflags_cc += [ "-Wno-class-memaccess" ]
-       }
- 
-+      # -Wno-class-memaccess warns about hash table and vector in blink.
-+      # But the violation is intentional.
-+      if (!is_nacl) {
-+        cflags_cc += [ "-Wno-class-memaccess" ]
-+      }
-+
-       # -Wunused-local-typedefs is broken in gcc,
-       # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
-       cflags += [ "-Wno-unused-local-typedefs" ]
-@@ -1560,7 +1550,7 @@ config("chromium_code") {
-       defines = [ "_HAS_NODISCARD" ]
-     }
-   } else {
--    cflags = [ "-Wall" ]
-+    cflags = []
-     if (treat_warnings_as_errors) {
-       cflags += [ "-Werror" ]
- 
-@@ -1569,10 +1559,6 @@ config("chromium_code") {
-       # well.
-       ldflags = [ "-Werror" ]
-     }
--    if (is_clang) {
--      # Enable extra warnings for chromium_code when we control the compiler.
--      cflags += [ "-Wextra" ]
--    }
- 
-     # In Chromium code, we define __STDC_foo_MACROS in order to get the
-     # C99 macros on Mac and Linux.
-@@ -1581,15 +1567,6 @@ config("chromium_code") {
-       "__STDC_FORMAT_MACROS",
-     ]
- 
--    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
--        current_cpu != "s390" && current_cpu != "ppc64" &&
--        current_cpu != "mips" && current_cpu != "mips64") {
--      # Non-chromium code is not guaranteed to compile cleanly with
--      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
--      # disabled, so only do that for Release build.
--      defines += [ "_FORTIFY_SOURCE=2" ]
--    }
--
-     if (is_mac) {
-       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
-       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -1993,7 +1970,8 @@ config("default_stack_frames") {
- }
- 
- # Default "optimization on" config.
--config("optimize") {
-+config("optimize") { }
-+config("xoptimize") {
-   if (is_win) {
-     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
-     if (is_official_build && full_wpo_on_official && !is_clang) {
-@@ -2019,7 +1997,8 @@ config("optimize") {
- }
- 
- # Same config as 'optimize' but without the WPO flag.
--config("optimize_no_wpo") {
-+config("optimize_no_wpo") { }
-+config("xoptimize_no_wpo") {
-   if (is_win) {
-     # Favor size over speed, /O1 must be before the common flags. The GYP
-     # build also specifies /Os and /GF but these are implied by /O1.
-@@ -2042,7 +2021,8 @@ config("optimize_no_wpo") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2076,7 +2056,8 @@ config("no_optimize") {
- # Turns up the optimization level. On Windows, this implies whole program
- # optimization and link-time code generation which is very expensive and should
- # be used sparingly.
--config("optimize_max") {
-+config("optimize_max") { }
-+config("xoptimize_max") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2115,7 +2096,8 @@ config("optimize_max") {
- #
- # TODO(crbug.com/621335) - rework how all of these configs are related
- # so that we don't need this disclaimer.
--config("optimize_speed") {
-+config("optimize_speed") { }
-+config("xoptimize_speed") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2145,7 +2127,8 @@ config("optimize_speed") {
-   }
- }
- 
--config("optimize_fuzzing") {
-+config("optimize_fuzzing") { }
-+config("xoptimize_fuzzing") {
-   cflags = [ "-O1" ] + common_optimize_on_cflags
-   ldflags = common_optimize_on_ldflags
-   visibility = [ ":default_optimization" ]
-@@ -2261,7 +2244,8 @@ config("win_pdbaltpath") {
- }
- 
- # Full symbols.
--config("symbols") {
-+config("symbols") { }
-+config("xsymbols") {
-   if (is_win) {
-     if (use_goma || is_clang) {
-       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
-@@ -2371,7 +2355,8 @@ config("symbols") {
- # Minimal symbols.
- # This config guarantees to hold symbol for stack trace which are shown to user
- # when crash happens in unittests running on buildbot.
--config("minimal_symbols") {
-+config("minimal_symbols") { }
-+config("xminimal_symbols") {
-   if (is_win) {
-     # Functions, files, and line tables only.
-     cflags = []
-@@ -2426,7 +2411,8 @@ config("minimal_symbols") {
- }
- 
- # No symbols.
--config("no_symbols") {
-+config("no_symbols") { }
-+config("xno_symbols") {
-   if (!is_win) {
-     cflags = [ "-g0" ]
-     asmflags = cflags
--- 
-2.24.1
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-05-08 16:23 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-05-08 16:23 UTC (permalink / raw
  To: gentoo-commits

commit:     a9ba713ce0be48deeb87f11ee1ad4eb4843202a8
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri May  8 15:08:33 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri May  8 16:23:00 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a9ba713c

www-client/chromium: beta channel bump to 83.0.4103.44

Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/15715

 www-client/chromium/Manifest                       |  2 +-
 ...4103.34.ebuild => chromium-83.0.4103.44.ebuild} |  1 -
 .../chromium/files/chromium-82-gcc-constexpr.patch | 34 ----------------------
 3 files changed, 1 insertion(+), 36 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ccd1a769bb5..2b527f354c7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-81.0.4044.138.tar.xz 785960928 BLAKE2B fb8ea6aae55450e820f91fc8be7948ac0155beb0fc6a05988506a78b3306ffc52e69b10d3c91e4a29fe2171f339d5331e9524d3e4cd08de57e090ce16412a673 SHA512 9f686b27b2f8ea5c15f50b0ddcd24745aec41e28af8c38618e18771401bd5cfb26939b9ac49973ea804cda458a939c1a6ad59cb24fb1937b7687c3d908183437
-DIST chromium-83.0.4103.34.tar.xz 802525184 BLAKE2B d5e47c96642fb9344fe43a582d035f507b714565c01b6bacbf1cd4fdb3537db28ae0e54a47bbd7f47ad4d00960ee9e40d9a10522262cba4063f95501225fce75 SHA512 467006d3b3093b078569c0ead9203e66cfd83ad14ed95a07b5f83e49451a0e9f4506b3ce35c97106b4540b55484d6cd33afbacf92385ace261e78d5c1cc0188e
+DIST chromium-83.0.4103.44.tar.xz 802603488 BLAKE2B 3f36c311519c85604d6b627b8ae56e60fc617f0290ca34ed05473482782b0db88f4171077531d3ec3efa4c633200a883b4e80fafb1bd37828476f1863d1cdcd5 SHA512 78664cfc37c898410d08b3cf71faf63e6980711b9ae69b020b93b2fab5bcd9c191c0fd91eed21b5ccaabc032ff530f3ae5b9845f7f23c72c3e492ef356da9c6f
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-83.0.4103.34.ebuild b/www-client/chromium/chromium-83.0.4103.44.ebuild
similarity index 99%
rename from www-client/chromium/chromium-83.0.4103.34.ebuild
rename to www-client/chromium/chromium-83.0.4103.44.ebuild
index fd3bf1f334a..eea3d4b18ea 100644
--- a/www-client/chromium/chromium-83.0.4103.34.ebuild
+++ b/www-client/chromium/chromium-83.0.4103.44.ebuild
@@ -170,7 +170,6 @@ PATCHES=(
 	"${FILESDIR}/chromium-78-protobuf-export.patch"
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"
 	"${FILESDIR}/chromium-80-gcc-quiche.patch"
-	"${FILESDIR}/chromium-82-gcc-constexpr.patch"
 	"${FILESDIR}/chromium-82-gcc-noexcept.patch"
 	"${FILESDIR}/chromium-82-gcc-incomplete-type.patch"
 	"${FILESDIR}/chromium-82-gcc-template.patch"

diff --git a/www-client/chromium/files/chromium-82-gcc-constexpr.patch b/www-client/chromium/files/chromium-82-gcc-constexpr.patch
deleted file mode 100644
index 30a83395d08..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-constexpr.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 5812cd9bc2c15a034db24e0d2a43cc923d8a66cc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Thu, 20 Feb 2020 13:00:16 +0100
-Subject: [PATCH] GCC: DOMRect constexpr equal operator depends on non constexpr operators
-
-Make accessors of DOMRectReadOnly constexpr so the equal operator can be
-also constexpr.
-
-../../third_party/blink/renderer/core/geometry/dom_rect.h: In function ‘constexpr bool blink::operator==(const blink::DOMRect&, const blink::DOMRect&)’:
-../../third_party/blink/renderer/core/geometry/dom_rect.h:38:15: error: call to non-‘constexpr’ function ‘double blink::DOMRectReadOnly::x() const’
-
-Bug: 819294
-Change-Id: Ic1fed89c5480ce4eedaaf7add2779d000b77cc48
----
-
-diff --git a/third_party/blink/renderer/core/geometry/dom_rect_read_only.h b/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
-index 0c3f84c..71f193e 100644
---- a/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
-+++ b/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
-@@ -31,10 +31,10 @@ class CORE_EXPORT DOMRectReadOnly : public ScriptWrappable {
- 
-   DOMRectReadOnly(double x, double y, double width, double height);
- 
--  double x() const { return x_; }
--  double y() const { return y_; }
--  double width() const { return width_; }
--  double height() const { return height_; }
-+  constexpr double x() const { return x_; }
-+  constexpr double y() const { return y_; }
-+  constexpr double width() const { return width_; }
-+  constexpr double height() const { return height_; }
- 
-   double top() const { return geometry_util::NanSafeMin(y_, y_ + height_); }
-   double right() const { return geometry_util::NanSafeMax(x_, x_ + width_); }


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-05-03 19:57 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-05-03 19:57 UTC (permalink / raw
  To: gentoo-commits

commit:     f4cd99ca1d884fc887f0c50e4be397b214641d5a
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Sat May  2 19:28:08 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun May  3 19:56:52 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4cd99ca

www-client/chromium: Fix building with >=dev-libs/re2-0.2020.05.01.

Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache.Org>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-81.0.4044.129.ebuild           |  1 +
 www-client/chromium/chromium-83.0.4103.34.ebuild            |  1 +
 .../chromium/files/chromium-81-re2-0.2020.05.01.patch       | 13 +++++++++++++
 3 files changed, 15 insertions(+)

diff --git a/www-client/chromium/chromium-81.0.4044.129.ebuild b/www-client/chromium/chromium-81.0.4044.129.ebuild
index b110b41753b..15ddde7f89c 100644
--- a/www-client/chromium/chromium-81.0.4044.129.ebuild
+++ b/www-client/chromium/chromium-81.0.4044.129.ebuild
@@ -156,6 +156,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-81-gcc-constexpr.patch"
 	"${FILESDIR}/chromium-81-gcc-10.patch"
 	"${FILESDIR}/chromium-81-icu67.patch"
+	"${FILESDIR}/chromium-81-re2-0.2020.05.01.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/chromium-83.0.4103.34.ebuild b/www-client/chromium/chromium-83.0.4103.34.ebuild
index 2cb862a2cb9..65b8d3bdf9c 100644
--- a/www-client/chromium/chromium-83.0.4103.34.ebuild
+++ b/www-client/chromium/chromium-83.0.4103.34.ebuild
@@ -181,6 +181,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-83-gcc-serviceworker.patch"
 	"${FILESDIR}/chromium-83-gcc-10.patch"
 	"${FILESDIR}/chromium-83-icu67.patch"
+	"${FILESDIR}/chromium-81-re2-0.2020.05.01.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-81-re2-0.2020.05.01.patch b/www-client/chromium/files/chromium-81-re2-0.2020.05.01.patch
new file mode 100644
index 00000000000..17f539060f3
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-re2-0.2020.05.01.patch
@@ -0,0 +1,13 @@
+https://chromium.googlesource.com/chromium/src/+/ede390a0b18e4565abf8ac1e1ff717e1d43fc320
+
+--- /components/autofill/core/browser/address_rewriter.cc
++++ /components/autofill/core/browser/address_rewriter.cc
+@@ -57,7 +57,7 @@
+                           CompiledRuleVector* compiled_rules) {
+   base::StringPiece data = data_string;
+   re2::RE2::Options options;
+-  options.set_utf8(true);
++  options.set_encoding(RE2::Options::EncodingUTF8);
+   options.set_word_boundary(true);
+ 
+   size_t token_end = 0;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-04-11 16:43 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-04-11 16:43 UTC (permalink / raw
  To: gentoo-commits

commit:     9a15744e17581ce14ea2db4dc38dd68c7d395da7
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sat Apr 11 07:30:20 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Apr 11 16:43:01 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a15744e

www-client/chromium: dev channel bump to 83.0.4103.7

Closes: https://bugs.gentoo.org/716478
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...0.4100.3.ebuild => chromium-83.0.4103.7.ebuild} |  2 +
 .../chromium/files/chromium-82-gcc-constexpr.patch |  8 +--
 .../files/chromium-82-gcc-incomplete-type.patch    | 29 +++++++---
 www-client/chromium/files/chromium-83-gcc-10.patch | 64 ++++++++++++++++++++++
 .../chromium/files/chromium-83-gcc-include.patch   | 50 +++++++++++++++++
 .../chromium/files/chromium-83-gcc-iterator.patch  | 41 ++++++++++++++
 .../files/chromium-83-gcc-permissive.patch         |  5 +-
 .../chromium/files/chromium-83-gcc-template.patch  |  8 ++-
 9 files changed, 191 insertions(+), 18 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 35be393a4e1..5084dd9bb66 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,2 @@
 DIST chromium-81.0.4044.92.tar.xz 785906276 BLAKE2B af8e40391362c5ea182b917b085cfc1c2fe605503621316196e4a60d7031fe3b3075af9040ad756bddbad77058b5210d265731990a828ca6a11829e41c7cb807 SHA512 2d5817c84ac17e7b4d2e4473df841f53a074528e0ac997345ee68db4a9f8b45d84ef50c1d475608428f49ae40fe5315cda9d501ee22b829156c9e533044fb5af
-DIST chromium-83.0.4100.3.tar.xz 801342020 BLAKE2B 504c4d905f7ed91050f54e19e215fc2827c7299dff75e57282895f6f550ad323070ab49a2c597abfe0e88308d31fe613e8bd5bbcbfbc1b63bbc968148f939332 SHA512 d9037a7db5adad46d562f22e5ee53016170f257678d25acb124c432dc4ed4c0eb936ff9c4e0e39653a33621208e5037924ff94a9c98730da6ef68cb29a5a0f52
+DIST chromium-83.0.4103.7.tar.xz 802381832 BLAKE2B 5e1d204dd799a11726e9e8247598e28268e0689462cdd0b35867c63b1f578fcd356fbaa0f9181e26ed67f798100464f0cd218d83874df6d3b9c55f29aa4e176f SHA512 42bc38921ece136cfc24a5b9c15739f336524a5a178e57b11ffebd897b1092354e35da144f9b11d91569f07ed480c3e565e4d6086ca3be84d139633e000a71d6

diff --git a/www-client/chromium/chromium-83.0.4100.3.ebuild b/www-client/chromium/chromium-83.0.4103.7.ebuild
similarity index 99%
rename from www-client/chromium/chromium-83.0.4100.3.ebuild
rename to www-client/chromium/chromium-83.0.4103.7.ebuild
index 3170dfcdcbc..57c680190c4 100644
--- a/www-client/chromium/chromium-83.0.4100.3.ebuild
+++ b/www-client/chromium/chromium-83.0.4103.7.ebuild
@@ -159,6 +159,8 @@ PATCHES=(
 	"${FILESDIR}/chromium-83-gcc-template.patch"
 	"${FILESDIR}/chromium-83-gcc-include.patch"
 	"${FILESDIR}/chromium-83-gcc-permissive.patch"
+	"${FILESDIR}/chromium-83-gcc-iterator.patch"
+	"${FILESDIR}/chromium-83-gcc-10.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-82-gcc-constexpr.patch b/www-client/chromium/files/chromium-82-gcc-constexpr.patch
index 139b458c196..30a83395d08 100644
--- a/www-client/chromium/files/chromium-82-gcc-constexpr.patch
+++ b/www-client/chromium/files/chromium-82-gcc-constexpr.patch
@@ -14,10 +14,10 @@ Change-Id: Ic1fed89c5480ce4eedaaf7add2779d000b77cc48
 ---
 
 diff --git a/third_party/blink/renderer/core/geometry/dom_rect_read_only.h b/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
-index 77398f0..dda1f33 100644
+index 0c3f84c..71f193e 100644
 --- a/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
 +++ b/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
-@@ -30,10 +30,10 @@
+@@ -31,10 +31,10 @@ class CORE_EXPORT DOMRectReadOnly : public ScriptWrappable {
  
    DOMRectReadOnly(double x, double y, double width, double height);
  
@@ -30,5 +30,5 @@ index 77398f0..dda1f33 100644
 +  constexpr double width() const { return width_; }
 +  constexpr double height() const { return height_; }
  
-   double top() const { return std::min(y_, y_ + height_); }
-   double right() const { return std::max(x_, x_ + width_); }
+   double top() const { return geometry_util::NanSafeMin(y_, y_ + height_); }
+   double right() const { return geometry_util::NanSafeMax(x_, x_ + width_); }

diff --git a/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch b/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch
index 9e46ad7f51b..a3393405b49 100644
--- a/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch
+++ b/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch
@@ -1,8 +1,20 @@
+From c0b32910da192edf1b41eb52c088d0213ab2807a Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sun, 05 Apr 2020 08:29:21 +0000
+Subject: [PATCH] libstdc++: fix incomplete-type in AXTree for NodeSetSizePosInSetInfo
+
+std::unordered_map<T, U> requires U to be fully declared. ax_tree.h
+has only forward declaration of NodeSetSizePosInSetInfo. Therefore,
+move declaration from ax_tree.cc.
+Bug: 957519
+Change-Id: Ic1f4bf3ebfea229ece84251e46d4461b31873868
+---
+
 diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc
-index 616d53f..26749e3 100644
+index 7b8d9b1..e915402 100644
 --- a/ui/accessibility/ax_tree.cc
 +++ b/ui/accessibility/ax_tree.cc
-@@ -565,15 +565,6 @@ struct AXTreeUpdateState {
+@@ -567,14 +567,8 @@
    const AXTree& tree;
  };
  
@@ -14,22 +26,23 @@ index 616d53f..26749e3 100644
 -  int32_t set_size = 0;
 -  base::Optional<int> lowest_hierarchical_level;
 -};
--
++AXTree::NodeSetSizePosInSetInfo::NodeSetSizePosInSetInfo() = default;
++AXTree::NodeSetSizePosInSetInfo::~NodeSetSizePosInSetInfo() = default;
+ 
  struct AXTree::OrderedSetContent {
    explicit OrderedSetContent(const AXNode* ordered_set = nullptr)
-       : ordered_set_(ordered_set) {}
 diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h
-index 3bbbe0c..e4288f5 100644
+index a51ca8d..8c1c575 100644
 --- a/ui/accessibility/ax_tree.h
 +++ b/ui/accessibility/ax_tree.h
-@@ -323,7 +323,14 @@ class AX_EXPORT AXTree : public AXNode::OwnerTree {
+@@ -328,7 +328,14 @@
    bool enable_extra_mac_nodes_ = false;
  
    // Contains pos_in_set and set_size data for an AXNode.
 -  struct NodeSetSizePosInSetInfo;
 +  struct NodeSetSizePosInSetInfo {
-+    NodeSetSizePosInSetInfo() = default;
-+    ~NodeSetSizePosInSetInfo() = default;
++    NodeSetSizePosInSetInfo();
++    ~NodeSetSizePosInSetInfo();
 +
 +    int32_t pos_in_set = 0;
 +    int32_t set_size = 0;

diff --git a/www-client/chromium/files/chromium-83-gcc-10.patch b/www-client/chromium/files/chromium-83-gcc-10.patch
new file mode 100644
index 00000000000..974b49cde70
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-10.patch
@@ -0,0 +1,64 @@
+From e473f41284ccc8fa4bc4622d087194b18a1ec23a Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 7 Apr 2020 16:37:10 +0000
+Subject: [PATCH] GCC: fix includes for gcc-10
+
+---
+ chrome/browser/search/background/ntp_backgrounds.h              | 1 +
+ third_party/webrtc/call/rtx_receive_stream.h                    | 1 +
+ .../webrtc/modules/audio_processing/aec3/clockdrift_detector.h  | 1 +
+ ui/gfx/linux/drm_util_linux.h                                   | 2 ++
+ 5 files changed, 6 insertions(+)
+
+diff --git a/chrome/browser/search/background/ntp_backgrounds.h b/chrome/browser/search/background/ntp_backgrounds.h
+index 7afc0a2..ea5818e 100644
+--- a/chrome/browser/search/background/ntp_backgrounds.h
++++ b/chrome/browser/search/background/ntp_backgrounds.h
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+ 
+ #include <array>
++#include <cstddef>
+ 
+ class GURL;
+ 
+diff --git a/third_party/webrtc/call/rtx_receive_stream.h b/third_party/webrtc/call/rtx_receive_stream.h
+index 8ffa440..113a816 100644
+--- a/third_party/webrtc/call/rtx_receive_stream.h
++++ b/third_party/webrtc/call/rtx_receive_stream.h
+@@ -12,6 +12,7 @@
+ #define CALL_RTX_RECEIVE_STREAM_H_
+ 
+ #include <map>
++#include <cstdint>
+ 
+ #include "call/rtp_packet_sink_interface.h"
+ 
+diff --git a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+index 22528c9..69e624e 100644
+--- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+ 
+ #include <array>
++#include <cstddef>
+ 
+ namespace webrtc {
+ 
+diff --git a/ui/gfx/linux/drm_util_linux.h b/ui/gfx/linux/drm_util_linux.h
+index 86ff2eb..990f12c 100644
+--- a/ui/gfx/linux/drm_util_linux.h
++++ b/ui/gfx/linux/drm_util_linux.h
+@@ -7,6 +7,8 @@
+ 
+ #include "ui/gfx/buffer_types.h"
+ 
++#include <cstdint>
++
+ namespace ui {
+ 
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
+-- 
+2.24.1
+

diff --git a/www-client/chromium/files/chromium-83-gcc-include.patch b/www-client/chromium/files/chromium-83-gcc-include.patch
index 466539007b0..9c405e84002 100644
--- a/www-client/chromium/files/chromium-83-gcc-include.patch
+++ b/www-client/chromium/files/chromium-83-gcc-include.patch
@@ -23,3 +23,53 @@ index a9765bb..bd0d3e3 100644
 -- 
 2.24.1
 
+From 80044e30e0014c4c322178e4b56ddbb10eede304 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 9 Apr 2020 17:58:06 +0000
+Subject: [PATCH] IWYU: std::unique_ptr is defined in memory
+
+---
+ .../blink/renderer/core/html/trust_token_attribute_parsing.h    | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
+index f5a7ab0..ef19cfa 100644
+--- a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
++++ b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
+ 
++#include <memory>
++
+ #include "base/optional.h"
+ #include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h"
+ #include "third_party/blink/renderer/core/core_export.h"
+-- 
+2.24.1
+
+From 4f4d0a6d453bc22a6397dadaf6d866b4eb2d6b95 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 10 Apr 2020 08:31:08 +0000
+Subject: [PATCH] IWYU: std::numeric_limits is defined in limits
+
+---
+ .../graph/policies/background_tab_loading_policy_helpers.cc     | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
+index 6ab117b..43aa602 100644
+--- a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
++++ b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <limits>
++
+ #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h"
+ #include "base/logging.h"
+ 
+-- 
+2.24.1
+

diff --git a/www-client/chromium/files/chromium-83-gcc-iterator.patch b/www-client/chromium/files/chromium-83-gcc-iterator.patch
new file mode 100644
index 00000000000..3df032751db
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-iterator.patch
@@ -0,0 +1,41 @@
+From 4abcf0a76a7cb5c343be7d17c60cb908f3673c3d Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 9 Apr 2020 17:03:38 +0000
+Subject: [PATCH] libstdc++: replace std::any_of in blink::SerializedScriptValue
+
+Use of std::any_of requires STL compliant iterator. However,
+HashTableIterator does not define iterator_tag and therefore
+is no STL iterator.
+---
+ .../core/v8/serialization/serialized_script_value.h | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+index bbf10ef..53d98c9 100644
+--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
++++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+@@ -268,12 +268,17 @@ class CORE_EXPORT SerializedScriptValue
+   MessagePortChannelArray& GetStreamChannels() { return stream_channels_; }
+ 
+   bool IsLockedToAgentCluster() const {
++    auto AnyOfIsLockedToAgentCluster = [&]() {
++      for (auto entry = attachments_.begin();
++           entry != attachments_.end(); ++entry) {
++           if (entry->value->IsLockedToAgentCluster())
++             return true;
++      }
++      return false;
++    };
+     return !wasm_modules_.IsEmpty() ||
+            !shared_array_buffers_contents_.IsEmpty() ||
+-           std::any_of(attachments_.begin(), attachments_.end(),
+-                       [](const auto& entry) {
+-                         return entry.value->IsLockedToAgentCluster();
+-                       });
++           AnyOfIsLockedToAgentCluster();
+   }
+ 
+   // Returns true after serializing script values that remote origins cannot
+-- 
+2.24.1
+

diff --git a/www-client/chromium/files/chromium-83-gcc-permissive.patch b/www-client/chromium/files/chromium-83-gcc-permissive.patch
index f7f19b44ba8..a87f1c44b0f 100644
--- a/www-client/chromium/files/chromium-83-gcc-permissive.patch
+++ b/www-client/chromium/files/chromium-83-gcc-permissive.patch
@@ -15,7 +15,7 @@ apps::AppServiceProxy::BrowserAppLauncher()' changes meaning of
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/chrome/browser/apps/app_service/app_service_proxy.h b/chrome/browser/apps/app_service/app_service_proxy.h
-index 1ebadfd..83f9c71 100644
+index b7fff63..1ecd49d 100644
 --- a/chrome/browser/apps/app_service/app_service_proxy.h
 +++ b/chrome/browser/apps/app_service/app_service_proxy.h
 @@ -79,7 +79,7 @@ class AppServiceProxy : public KeyedService,
@@ -25,8 +25,7 @@ index 1ebadfd..83f9c71 100644
 -  BrowserAppLauncher& BrowserAppLauncher();
 +  apps::BrowserAppLauncher& BrowserAppLauncher();
  
-   apps::PreferredApps& PreferredApps();
+   apps::PreferredAppsList& PreferredApps();
  
 -- 
 2.24.1
-

diff --git a/www-client/chromium/files/chromium-83-gcc-template.patch b/www-client/chromium/files/chromium-83-gcc-template.patch
index 0c5c20ea19d..27365220b03 100644
--- a/www-client/chromium/files/chromium-83-gcc-template.patch
+++ b/www-client/chromium/files/chromium-83-gcc-template.patch
@@ -1,6 +1,6 @@
-From 7f1503a80edc5ccd73559b227a242eeb9c1bea93 Mon Sep 17 00:00:00 2001
+From 8d115ddda495d0d2e1e1447392db6e9e6a8a1b32 Mon Sep 17 00:00:00 2001
 From: Stephan Hartmann <stha09@googlemail.com>
-Date: Mon, 30 Mar 2020 07:26:49 +0000
+Date: Tue, 07 Apr 2020 00:23:57 +0000
 Subject: [PATCH] GCC: fix template specialization in WTF::VectorMover
 
 GCC complains that explicit specialization in non-namespace scope
@@ -10,6 +10,10 @@ into MoveOverlappingImpl method without changing generated code.
 
 Bug: 819294
 Change-Id: I90b893b9701748302f7b900fbcc2c341685fe0d3
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2126290
+Reviewed-by: Kent Tamura <tkent@chromium.org>
+Commit-Queue: Kent Tamura <tkent@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#756880}
 ---
 
 diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-04-09 17:20 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-04-09 17:20 UTC (permalink / raw
  To: gentoo-commits

commit:     4da704c93b1a3b46a159986d86084b857e5e36ba
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Apr  9 13:30:25 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Apr  9 17:20:08 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4da704c9

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/716612
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/15274

 www-client/chromium/Manifest                       |   2 -
 www-client/chromium/chromium-80.0.3987.162.ebuild  | 747 ---------------------
 www-client/chromium/chromium-80.0.3987.163.ebuild  | 747 ---------------------
 .../chromium/files/chromium-77-system-icu.patch    |  20 -
 .../chromium/files/chromium-80-gcc-abstract.patch  |  41 --
 .../files/chromium-80-gcc-incomplete-type.patch    | 229 -------
 .../files/chromium-80-gcc-permissive.patch         |  33 -
 .../chromium/files/chromium-80-include.patch       |  33 -
 .../files/chromium-80-unbundle-libxml.patch        | 101 ---
 .../chromium/files/chromium-compiler-r10.patch     | 185 -----
 .../chromium/files/chromium-unbundle-zlib-r1.patch |  13 -
 11 files changed, 2151 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 2cc3c8caf35..35be393a4e1 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,2 @@
-DIST chromium-80.0.3987.162.tar.xz 796961972 BLAKE2B 77357adb39f5e49a6c71ba695c9947fb6aad811fc58c5ac21355a30be8beecaa842d2de59028dec58b1805d314e13282c0f386d61ee2014c87ad50ea0dc61121 SHA512 95a6bbe291faccd1a085daec89a3cf27eb00bc62f0b3956c2668568c7cabd67ac4dc02a2aaa093bb2844d4972cd8a7978c4249b2f0ebead038a215f574f68180
-DIST chromium-80.0.3987.163.tar.xz 796981144 BLAKE2B 60b4807f30add0bff5d7d0176cfaee6cdb9de9ac85d60d3e56af01f6cbf3296c473ce09dc96cb81d3aaf43883462cd6d6601e716338d146d8d2705f918f16f31 SHA512 d6c25035870276cc0c8b9608ffd61cbc8d9c5beac3894163433d3b379b1c11ba00973c4268c2128a320407d2086d1c00b0896ec974a7575a4802ea0596d48a1c
 DIST chromium-81.0.4044.92.tar.xz 785906276 BLAKE2B af8e40391362c5ea182b917b085cfc1c2fe605503621316196e4a60d7031fe3b3075af9040ad756bddbad77058b5210d265731990a828ca6a11829e41c7cb807 SHA512 2d5817c84ac17e7b4d2e4473df841f53a074528e0ac997345ee68db4a9f8b45d84ef50c1d475608428f49ae40fe5315cda9d501ee22b829156c9e533044fb5af
 DIST chromium-83.0.4100.3.tar.xz 801342020 BLAKE2B 504c4d905f7ed91050f54e19e215fc2827c7299dff75e57282895f6f550ad323070ab49a2c597abfe0e88308d31fe613e8bd5bbcbfbc1b63bbc968148f939332 SHA512 d9037a7db5adad46d562f22e5ee53016170f257678d25acb124c432dc4ed4c0eb936ff9c4e0e39653a33621208e5037924ff94a9c98730da6ef68cb29a5a0f52

diff --git a/www-client/chromium/chromium-80.0.3987.162.ebuild b/www-client/chromium/chromium-80.0.3987.162.ebuild
deleted file mode 100644
index 2837b792e8f..00000000000
--- a/www-client/chromium/chromium-80.0.3987.162.ebuild
+++ /dev/null
@@ -1,747 +0,0 @@
-# Copyright 2009-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-65:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2019.08.01:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-util/gn
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	closure-compile? ( virtual/jre )
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r10.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
-	"${FILESDIR}/chromium-77-system-icu.patch"
-	"${FILESDIR}/chromium-78-protobuf-export.patch"
-	"${FILESDIR}/chromium-79-gcc-alignas.patch"
-	"${FILESDIR}/chromium-80-unbundle-libxml.patch"
-	"${FILESDIR}/chromium-80-include.patch"
-	"${FILESDIR}/chromium-80-gcc-quiche.patch"
-	"${FILESDIR}/chromium-80-gcc-permissive.patch"
-	"${FILESDIR}/chromium-80-gcc-blink.patch"
-	"${FILESDIR}/chromium-80-gcc-abstract.patch"
-	"${FILESDIR}/chromium-80-gcc-incomplete-type.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			if use component-build; then
-				die "Component build with clang requires fuzzer headers."
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/libgifcodec
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/chromium-80.0.3987.163.ebuild b/www-client/chromium/chromium-80.0.3987.163.ebuild
deleted file mode 100644
index db2e6b82869..00000000000
--- a/www-client/chromium/chromium-80.0.3987.163.ebuild
+++ /dev/null
@@ -1,747 +0,0 @@
-# Copyright 2009-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-65:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2019.08.01:=
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		>=media-libs/opus-1.3.1:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-util/gn
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	closure-compile? ( virtual/jre )
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r10.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
-	"${FILESDIR}/chromium-77-system-icu.patch"
-	"${FILESDIR}/chromium-78-protobuf-export.patch"
-	"${FILESDIR}/chromium-79-gcc-alignas.patch"
-	"${FILESDIR}/chromium-80-unbundle-libxml.patch"
-	"${FILESDIR}/chromium-80-include.patch"
-	"${FILESDIR}/chromium-80-gcc-quiche.patch"
-	"${FILESDIR}/chromium-80-gcc-permissive.patch"
-	"${FILESDIR}/chromium-80-gcc-blink.patch"
-	"${FILESDIR}/chromium-80-gcc-abstract.patch"
-	"${FILESDIR}/chromium-80-gcc-incomplete-type.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
-			if use component-build; then
-				die "Component build with clang requires fuzzer headers."
-			fi
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/freetype
-		third_party/libgifcodec
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/wuffs
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Disable deprecated libgnome-keyring dependency, bug #713012
-	myconf_gn+=" use_gnome_keyring=false"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-
-	# Build desktop file; bug #706786
-	sed -e 's|@@MENUNAME@@|Chromium|g;
-		s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
-		s|@@PACKAGE@@|chromium-browser|g;
-		s|\(^Exec=\)/usr/bin/|\1|g;' \
-		chrome/installer/linux/common/desktop.template > \
-		out/Release/chromium-browser-chromium.desktop || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser-chromium.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-77-system-icu.patch b/www-client/chromium/files/chromium-77-system-icu.patch
deleted file mode 100644
index 1f848d7ee2b..00000000000
--- a/www-client/chromium/files/chromium-77-system-icu.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
-index 4450e40..9ca36dd 100644
---- a/build/linux/unbundle/icu.gn
-+++ b/build/linux/unbundle/icu.gn
-@@ -96,6 +96,7 @@ shim_headers("icui18n_shim") {
-     "unicode/fpositer.h",
-     "unicode/gender.h",
-     "unicode/gregocal.h",
-+    "unicode/listformatter.h",
-     "unicode/measfmt.h",
-     "unicode/measunit.h",
-     "unicode/measure.h",
-@@ -178,7 +179,6 @@ shim_headers("icuuc_shim") {
-     "unicode/icudataver.h",
-     "unicode/icuplug.h",
-     "unicode/idna.h",
--    "unicode/listformatter.h",
-     "unicode/localpointer.h",
-     "unicode/locdspnm.h",
-     "unicode/locid.h",

diff --git a/www-client/chromium/files/chromium-80-gcc-abstract.patch b/www-client/chromium/files/chromium-80-gcc-abstract.patch
deleted file mode 100644
index 190a67258e1..00000000000
--- a/www-client/chromium/files/chromium-80-gcc-abstract.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-In file included from ../../third_party/blink/renderer/platform/heap/persistent.h:18,
-                 from ../../third_party/blink/public/platform/web_private_ptr.h:40,
-                 from ../../third_party/blink/public/platform/web_media_stream_track.h:33,
-                 from ../../third_party/blink/public/platform/web_media_stream_source.h:37,
-                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:19,
-                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
-../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h: In instantiation of 'struct WTF::CrossThreadCopierPassThrough<webrtc::VideoTrackInterface>':
-../../third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h:169:14:   required from here
-../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h:80:15: error: invalid abstract return type 'webrtc::VideoTrackInterface'
-   80 |   static Type Copy(const T& parameter) { return parameter; }
-      |               ^~~~
-In file included from ../../third_party/webrtc/api/peer_connection_interface.h:88,
-                 from ../../third_party/blink/public/platform/web_rtc_peer_connection_handler.h:39,
-                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:20,
-                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
-../../third_party/webrtc/api/media_stream_interface.h:174:18: note:   because the following virtual functions are pure within 'webrtc::VideoTrackInterface':
-  174 | class RTC_EXPORT VideoTrackInterface
-      |                  ^~~~~~~~~~~~~~~~~~~
-../../third_party/webrtc/api/media_stream_interface.h:48:16: note:      'virtual void webrtc::NotifierInterface::RegisterObserver(webrtc::ObserverInterface*)'
-   48 |   virtual void RegisterObserver(ObserverInterface* observer) = 0;
-      |                ^~~~~~~~~~~~~~~~
-../../third_party/webrtc/api/media_stream_interface.h:49:16: note:      'virtual void webrtc::NotifierInterface::UnregisterObserver(webrtc::ObserverInterface*)'
-   49 |   virtual void UnregisterObserver(ObserverInterface* observer) = 0;
-      |                ^~~~~~~~~~~~~~~~~~
-
-diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
-index 54cb7d1..0d6c40f 100644
---- a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
-+++ b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
-@@ -165,8 +165,9 @@ struct CrossThreadCopier<blink::MediaStreamVideoTrack>
- };
- 
- template <>
--struct CrossThreadCopier<webrtc::VideoTrackInterface>
--    : public CrossThreadCopierPassThrough<webrtc::VideoTrackInterface> {
-+struct CrossThreadCopier<rtc::scoped_refptr<webrtc::VideoTrackInterface>>
-+    : public CrossThreadCopierPassThrough<
-+          rtc::scoped_refptr<webrtc::VideoTrackInterface>> {
-   STATIC_ONLY(CrossThreadCopier);
- };
- 

diff --git a/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch b/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch
deleted file mode 100644
index 8d10620a717..00000000000
--- a/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Date: Mon, 16 Dec 2019 11:39:11 +0000
-Subject: [PATCH] BookmarkModelMerger: Move RemoteTreeNode declaration to header.
-
-This fixes the build with libstdc++ after commit 8f5dad93e58 ("Fix CHECK
-failure due to untracked local nodes"):
-
-/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/stl_pair.h:215:11: error: field has incomplete type 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
-      _T2 second;                /// @c second is a copy of the second object
-          ^
-/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/aligned_buffer.h:91:28: note: in instantiation of template class 'std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here
-    : std::aligned_storage<sizeof(_Tp), __alignof__(_Tp)>
-                           ^
-/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:233:43: note: in instantiation of template class '__gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
-      __gnu_cxx::__aligned_buffer<_Value> _M_storage;
-                                          ^
-/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:264:39: note: in instantiation of template class 'std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
-    struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value>
-                                      ^
-/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:2028:25: note: in instantiation of template class 'std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here
-        rebind_traits<typename __node_type::value_type>;
-                               ^
-/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable.h:184:15: note: in instantiation of template class 'std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true> > >
-' requested here
-      private __detail::_Hashtable_alloc<
-              ^
-/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/unordered_map.h:105:18: note: in instantiation of template class 'std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, std::allocator<std::pair<con
-st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta
-il::_Hashtable_traits<true, false, true> >' requested here
-      _Hashtable _M_h;
-                 ^
-../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of template class 'std::unordered_map<std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash<std::string>, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<con
-st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> > >' requested here
-  const RemoteForest remote_forest_;
-                     ^
-../../components/sync_bookmarks/bookmark_model_merger.h:53:9: note: forward declaration of 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
-  class RemoteTreeNode;
-        ^
-
-Essentially, the problem is that libstdc++'s std::unordered_map<T, U>
-implementation requires both T and U to be fully declared. I raised the
-problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92770, and GCC's
-position is that we are relying on undefined behavior according to the C++
-standard (https://eel.is/c++draft/requirements#res.on.functions-2.5).
-
-Bug: 957519
-Change-Id: Ife7e435e516932a795bfbe05b2c910c3272878f0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960156
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Reviewed-by: Mikel Astiz <mastiz@chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Cr-Commit-Position: refs/heads/master@{#725070}
----
-
-diff --git a/components/sync_bookmarks/bookmark_model_merger.cc b/components/sync_bookmarks/bookmark_model_merger.cc
-index eae153ef..579848e 100644
---- a/components/sync_bookmarks/bookmark_model_merger.cc
-+++ b/components/sync_bookmarks/bookmark_model_merger.cc
-@@ -5,7 +5,6 @@
- #include "components/sync_bookmarks/bookmark_model_merger.h"
- 
- #include <algorithm>
--#include <memory>
- #include <set>
- #include <string>
- #include <utility>
-@@ -205,66 +204,44 @@
- 
- }  // namespace
- 
--class BookmarkModelMerger::RemoteTreeNode final {
-- public:
--  // Constructs a tree given |update| as root and recursively all descendants by
--  // traversing |*updates_per_parent_id|. |update| and |updates_per_parent_id|
--  // must not be null. All updates |*updates_per_parent_id| must represent valid
--  // updates. Updates corresponding from descendant nodes are moved away from
--  // |*updates_per_parent_id|.
--  static RemoteTreeNode BuildTree(
--      std::unique_ptr<syncer::UpdateResponseData> update,
--      UpdatesPerParentId* updates_per_parent_id);
-+BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode() = default;
- 
--  ~RemoteTreeNode() = default;
-+BookmarkModelMerger::RemoteTreeNode::~RemoteTreeNode() = default;
- 
--  // Allow moves, useful during construction.
--  RemoteTreeNode(RemoteTreeNode&&) = default;
--  RemoteTreeNode& operator=(RemoteTreeNode&&) = default;
-+BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode(
-+    BookmarkModelMerger::RemoteTreeNode&&) = default;
-+BookmarkModelMerger::RemoteTreeNode& BookmarkModelMerger::RemoteTreeNode::
-+operator=(BookmarkModelMerger::RemoteTreeNode&&) = default;
- 
--  const syncer::EntityData& entity() const { return *update_->entity; }
--  int64_t response_version() const { return update_->response_version; }
-+void BookmarkModelMerger::RemoteTreeNode::EmplaceSelfAndDescendantsByGUID(
-+    std::unordered_map<std::string, const RemoteTreeNode*>*
-+        guid_to_remote_node_map) const {
-+  DCHECK(guid_to_remote_node_map);
- 
--  // Direct children nodes, sorted by ascending unique position. These are
--  // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
--  const std::vector<RemoteTreeNode>& children() const { return children_; }
-+  const std::string& guid = entity().specifics.bookmark().guid();
-+  if (!guid.empty()) {
-+    DCHECK(base::IsValidGUID(guid));
- 
--  // Recursively emplaces all GUIDs (this node and descendants) into
--  // |*guid_to_remote_node_map|, which must not be null.
--  void EmplaceSelfAndDescendantsByGUID(
--      std::unordered_map<std::string, const RemoteTreeNode*>*
--          guid_to_remote_node_map) const {
--    DCHECK(guid_to_remote_node_map);
--
--    const std::string& guid = entity().specifics.bookmark().guid();
--    if (!guid.empty()) {
--      DCHECK(base::IsValidGUID(guid));
--
--      // Duplicate GUIDs have been sorted out before.
--      bool success = guid_to_remote_node_map->emplace(guid, this).second;
--      DCHECK(success);
--    }
--
--    for (const RemoteTreeNode& child : children_) {
--      child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
--    }
-+    // Duplicate GUIDs have been sorted out before.
-+    bool success = guid_to_remote_node_map->emplace(guid, this).second;
-+    DCHECK(success);
-   }
- 
-- private:
--  static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
--                                     const RemoteTreeNode& rhs) {
--    const syncer::UniquePosition a_pos =
--        syncer::UniquePosition::FromProto(lhs.entity().unique_position);
--    const syncer::UniquePosition b_pos =
--        syncer::UniquePosition::FromProto(rhs.entity().unique_position);
--    return a_pos.LessThan(b_pos);
-+  for (const RemoteTreeNode& child : children_) {
-+    child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
-   }
-+}
- 
--  RemoteTreeNode() = default;
--
--  std::unique_ptr<syncer::UpdateResponseData> update_;
--  std::vector<RemoteTreeNode> children_;
--};
-+// static
-+bool BookmarkModelMerger::RemoteTreeNode::UniquePositionLessThan(
-+    const RemoteTreeNode& lhs,
-+    const RemoteTreeNode& rhs) {
-+  const syncer::UniquePosition a_pos =
-+      syncer::UniquePosition::FromProto(lhs.entity().unique_position);
-+  const syncer::UniquePosition b_pos =
-+      syncer::UniquePosition::FromProto(rhs.entity().unique_position);
-+  return a_pos.LessThan(b_pos);
-+}
- 
- // static
- BookmarkModelMerger::RemoteTreeNode
-diff --git a/components/sync_bookmarks/bookmark_model_merger.h b/components/sync_bookmarks/bookmark_model_merger.h
-index 9b59200..bf0783ec 100644
---- a/components/sync_bookmarks/bookmark_model_merger.h
-+++ b/components/sync_bookmarks/bookmark_model_merger.h
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
- #define COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
- 
-+#include <memory>
- #include <string>
- #include <unordered_map>
- #include <vector>
-@@ -50,7 +51,52 @@
- 
-  private:
-   // Internal representation of a remote tree, composed of nodes.
--  class RemoteTreeNode;
-+  class RemoteTreeNode final {
-+   private:
-+    using UpdatesPerParentId =
-+        std::unordered_map<base::StringPiece,
-+                           syncer::UpdateResponseDataList,
-+                           base::StringPieceHash>;
-+
-+   public:
-+    // Constructs a tree given |update| as root and recursively all descendants
-+    // by traversing |*updates_per_parent_id|. |update| and
-+    // |updates_per_parent_id| must not be null. All updates
-+    // |*updates_per_parent_id| must represent valid updates. Updates
-+    // corresponding from descendant nodes are moved away from
-+    // |*updates_per_parent_id|.
-+    static RemoteTreeNode BuildTree(
-+        std::unique_ptr<syncer::UpdateResponseData> update,
-+        UpdatesPerParentId* updates_per_parent_id);
-+
-+    ~RemoteTreeNode();
-+
-+    // Allow moves, useful during construction.
-+    RemoteTreeNode(RemoteTreeNode&&);
-+    RemoteTreeNode& operator=(RemoteTreeNode&&);
-+
-+    const syncer::EntityData& entity() const { return *update_->entity; }
-+    int64_t response_version() const { return update_->response_version; }
-+
-+    // Direct children nodes, sorted by ascending unique position. These are
-+    // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
-+    const std::vector<RemoteTreeNode>& children() const { return children_; }
-+
-+    // Recursively emplaces all GUIDs (this node and descendants) into
-+    // |*guid_to_remote_node_map|, which must not be null.
-+    void EmplaceSelfAndDescendantsByGUID(
-+        std::unordered_map<std::string, const RemoteTreeNode*>*
-+            guid_to_remote_node_map) const;
-+
-+   private:
-+    static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
-+                                       const RemoteTreeNode& rhs);
-+
-+    RemoteTreeNode();
-+
-+    std::unique_ptr<syncer::UpdateResponseData> update_;
-+    std::vector<RemoteTreeNode> children_;
-+  };
- 
-   // A forest composed of multiple trees where the root of each tree represents
-   // a permanent node, keyed by server-defined unique tag of the root.

diff --git a/www-client/chromium/files/chromium-80-gcc-permissive.patch b/www-client/chromium/files/chromium-80-gcc-permissive.patch
deleted file mode 100644
index c7aef49add1..00000000000
--- a/www-client/chromium/files/chromium-80-gcc-permissive.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-In file included from ../../media/base/media_log_properties.h:13,
-                 from ../../media/base/media_log.h:23,
-                 from ../../media/filters/frame_processor.h:15,
-                 from ../../media/filters/frame_processor.cc:5:
-../../media/base/media_log_properties_helper.h:86:8: error: extra qualification not allowed [-fpermissive]
-   86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
-      |        ^~~~~~~~
-../../media/base/media_log_properties_helper.h:86:75: error: explicit specialization of non-template 'media::internal::<unnamed struct>'
-   86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
-      |                                                                           ^
-
-diff --git a/media/base/media_log_properties_helper.h b/media/base/media_log_properties_helper.h
-index 95ff70a..549b003 100644
---- a/media/base/media_log_properties_helper.h
-+++ b/media/base/media_log_properties_helper.h
-@@ -83,7 +83,7 @@ struct MediaLogPropertyTypeConverter<std::vector<T>> {
- 
- // Specializer for sending AudioDecoderConfigs to the media tab in devtools.
- template <>
--struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
-+struct MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
-   static base::Value Convert(const AudioDecoderConfig& value) {
-     base::Value result(base::Value::Type::DICTIONARY);
-     result.SetStringKey("codec", GetCodecName(value.codec()));
-@@ -114,7 +114,7 @@ struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
- 
- // Specializer for sending VideoDecoderConfigs to the media tab in devtools.
- template <>
--struct internal::MediaLogPropertyTypeConverter<VideoDecoderConfig> {
-+struct MediaLogPropertyTypeConverter<VideoDecoderConfig> {
-   static base::Value Convert(const VideoDecoderConfig& value) {
-     base::Value result(base::Value::Type::DICTIONARY);
-     result.SetStringKey("codec", GetCodecName(value.codec()));

diff --git a/www-client/chromium/files/chromium-80-include.patch b/www-client/chromium/files/chromium-80-include.patch
deleted file mode 100644
index dd85de7249c..00000000000
--- a/www-client/chromium/files/chromium-80-include.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Date: Tue, 10 Dec 2019 20:59:57 +0000
-Subject: [PATCH] [cros search service]: Include <cmath> for std::pow()
-
-IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared
-string matching functions to //chrome"), which broke the libstdc++ build:
-
-    ../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std'
-            std::pow(partial_match_penalty_rate, long_start - current - 1);
-            ~~~~~^
-
-Bug: 957519
-Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Reviewed-by: Jia Meng <jiameng@chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Cr-Commit-Position: refs/heads/master@{#723499}
----
-
-diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
-index 8351fa7..884ef63 100644
---- a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
-+++ b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
-@@ -5,6 +5,7 @@
- #include "chrome/common/string_matching/fuzzy_tokenized_string_match.h"
- 
- #include <algorithm>
-+#include <cmath>
- #include <iterator>
- 
- #include "base/i18n/case_conversion.h"

diff --git a/www-client/chromium/files/chromium-80-unbundle-libxml.patch b/www-client/chromium/files/chromium-80-unbundle-libxml.patch
deleted file mode 100644
index 0f369052cde..00000000000
--- a/www-client/chromium/files/chromium-80-unbundle-libxml.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn
-index c481bd3..3aaa1a4 100644
---- a/build/linux/unbundle/libxml.gn
-+++ b/build/linux/unbundle/libxml.gn
-@@ -8,11 +8,52 @@ pkg_config("system_libxml") {
-   packages = [ "libxml-2.0" ]
- }
- 
--static_library("libxml") {
-+source_set("libxml") {
-+  public_configs = [ ":system_libxml" ]
-+}
-+
-+static_library("libxml_utils") {
-+  # Do not expand this visibility list without first consulting with the
-+  # Security Team.
-+  visibility = [
-+    ":xml_reader",
-+    ":xml_writer",
-+    "//base/test:test_support",
-+    "//services/data_decoder:xml_parser_fuzzer",
-+  ]
-   sources = [
-     "chromium/libxml_utils.cc",
-     "chromium/libxml_utils.h",
-   ]
--
-   public_configs = [ ":system_libxml" ]
- }
-+
-+static_library("xml_reader") {
-+  # Do not expand this visibility list without first consulting with the
-+  # Security Team.
-+  visibility = [
-+    "//base/test:test_support",
-+    "//components/policy/core/common:unit_tests",
-+    "//services/data_decoder:*",
-+    "//tools/traffic_annotation/auditor:auditor_sources",
-+  ]
-+  sources = [
-+    "chromium/xml_reader.cc",
-+    "chromium/xml_reader.h",
-+  ]
-+  deps = [
-+    ":libxml_utils",
-+  ]
-+}
-+
-+static_library("xml_writer") {
-+  # The XmlWriter is considered safe to use from any target.
-+  visibility = [ "*" ]
-+  sources = [
-+    "chromium/xml_writer.cc",
-+    "chromium/xml_writer.h",
-+  ]
-+  deps = [
-+    ":libxml_utils",
-+  ]
-+}
-diff --git a/third_party/libxml/chromium/libxml_utils.h b/third_party/libxml/chromium/libxml_utils.h
-index ff969fa..e0f3ecd 100644
---- a/third_party/libxml/chromium/libxml_utils.h
-+++ b/third_party/libxml/chromium/libxml_utils.h
-@@ -6,8 +6,7 @@
- #define THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_
- 
- #include <string>
--
--#include "third_party/libxml/src/include/libxml/xmlreader.h"
-+#include <libxml/xmlreader.h>
- 
- // libxml uses a global error function pointer for reporting errors.
- // A ScopedXmlErrorFunc object lets you change the global error pointer
-diff --git a/third_party/libxml/chromium/xml_reader.cc b/third_party/libxml/chromium/xml_reader.cc
-index 92464f4..4779290 100644
---- a/third_party/libxml/chromium/xml_reader.cc
-+++ b/third_party/libxml/chromium/xml_reader.cc
-@@ -7,7 +7,8 @@
- #include <vector>
- 
- #include "third_party/libxml/chromium/libxml_utils.h"
--#include "third_party/libxml/src/include/libxml/xmlreader.h"
-+
-+#include <libxml/xmlreader.h>
- 
- using internal::XmlStringToStdString;
- 
-diff --git a/third_party/libxml/chromium/xml_writer.cc b/third_party/libxml/chromium/xml_writer.cc
-index 51fce8e..aa3a34f 100644
---- a/third_party/libxml/chromium/xml_writer.cc
-+++ b/third_party/libxml/chromium/xml_writer.cc
-@@ -5,7 +5,8 @@
- #include "third_party/libxml/chromium/xml_writer.h"
- 
- #include "third_party/libxml/chromium/libxml_utils.h"
--#include "third_party/libxml/src/include/libxml/xmlwriter.h"
-+
-+#include <libxml/xmlwriter.h>
- 
- XmlWriter::XmlWriter() : writer_(nullptr), buffer_(nullptr) {}
- 

diff --git a/www-client/chromium/files/chromium-compiler-r10.patch b/www-client/chromium/files/chromium-compiler-r10.patch
deleted file mode 100644
index f2ecdc3f32b..00000000000
--- a/www-client/chromium/files/chromium-compiler-r10.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-From a1207cc75454e653030716948d27ec27412f6fe8 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Sat, 16 Jun 2019 15:43:27 +0100
-Subject: [PATCH] Disable various compiler configs
-
----
- build/config/compiler/BUILD.gn | 64 +++++++++++++---------------------
- 1 file changed, 25 insertions(+), 39 deletions(-)
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index a3f21b7..0a7bec6 100644
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -230,8 +230,6 @@ config("compiler") {
- 
-   configs += [
-     # See the definitions below.
--    ":clang_revision",
--    ":compiler_cpu_abi",
-     ":compiler_codegen",
-     ":compiler_deterministic",
-   ]
-@@ -471,20 +469,6 @@ config("compiler") {
-     }
-   }
- 
--  if (is_clang && !is_nacl && !use_xcode_clang) {
--    cflags += [ "-fcrash-diagnostics-dir=" +
--                rebase_path("//tools/clang/crashreports", root_build_dir) ]
--
--    cflags += [
--      # TODO(hans): Remove this once Clang generates better optimized debug info
--      # by default. https://crbug.com/765793
--      "-Xclang",
--      "-mllvm",
--      "-Xclang",
--      "-instcombine-lower-dbg-declare=0",
--    ]
--  }
--
-   # C11/C++11 compiler flags setup.
-   # ---------------------------
-   if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-@@ -1431,6 +1415,12 @@ config("default_warnings") {
-         "-Wno-narrowing",
-       ]
- 
-+      # -Wno-class-memaccess warns about hash table and vector in blink.
-+      # But the violation is intentional.
-+      if (!is_nacl) {
-+        cflags_cc += [ "-Wno-class-memaccess" ]
-+      }
-+
-       # -Wunused-local-typedefs is broken in gcc,
-       # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
-       cflags += [ "-Wno-unused-local-typedefs" ]
-@@ -1525,7 +1515,7 @@ config("chromium_code") {
-       defines = [ "_HAS_NODISCARD" ]
-     }
-   } else {
--    cflags = [ "-Wall" ]
-+    cflags = []
-     if (treat_warnings_as_errors) {
-       cflags += [ "-Werror" ]
- 
-@@ -1534,10 +1524,6 @@ config("chromium_code") {
-       # well.
-       ldflags = [ "-Werror" ]
-     }
--    if (is_clang) {
--      # Enable extra warnings for chromium_code when we control the compiler.
--      cflags += [ "-Wextra" ]
--    }
- 
-     # In Chromium code, we define __STDC_foo_MACROS in order to get the
-     # C99 macros on Mac and Linux.
-@@ -1546,15 +1532,6 @@ config("chromium_code") {
-       "__STDC_FORMAT_MACROS",
-     ]
- 
--    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
--        current_cpu != "s390" && current_cpu != "ppc64" &&
--        current_cpu != "mips" && current_cpu != "mips64") {
--      # Non-chromium code is not guaranteed to compile cleanly with
--      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
--      # disabled, so only do that for Release build.
--      defines += [ "_FORTIFY_SOURCE=2" ]
--    }
--
-     if (is_mac) {
-       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
-       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -1943,7 +1920,8 @@ config("default_stack_frames") {
- }
- 
- # Default "optimization on" config.
--config("optimize") {
-+config("optimize") { }
-+config("xoptimize") {
-   if (is_win) {
-     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
-     if (is_official_build && full_wpo_on_official && !is_clang) {
-@@ -1977,7 +1955,8 @@ config("optimize") {
- }
- 
- # Same config as 'optimize' but without the WPO flag.
--config("optimize_no_wpo") {
-+config("optimize_no_wpo") { }
-+config("xoptimize_no_wpo") {
-   if (is_win) {
-     # Favor size over speed, /O1 must be before the common flags. The GYP
-     # build also specifies /Os and /GF but these are implied by /O1.
-@@ -2000,7 +1979,8 @@ config("optimize_no_wpo") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2028,7 +2008,8 @@ config("no_optimize") {
- # Turns up the optimization level. On Windows, this implies whole program
- # optimization and link-time code generation which is very expensive and should
- # be used sparingly.
--config("optimize_max") {
-+config("optimize_max") { }
-+config("xoptimize_max") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2075,7 +2056,8 @@ config("optimize_max") {
- #
- # TODO(crbug.com/621335) - rework how all of these configs are related
- # so that we don't need this disclaimer.
--config("optimize_speed") {
-+config("optimize_speed") { }
-+config("xoptimize_speed") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2113,7 +2095,8 @@ config("optimize_speed") {
-   }
- }
- 
--config("optimize_fuzzing") {
-+config("optimize_fuzzing") { }
-+config("xoptimize_fuzzing") {
-   cflags = [ "-O1" ] + common_optimize_on_cflags
-   ldflags = common_optimize_on_ldflags
-   visibility = [ ":default_optimization" ]
-@@ -2215,7 +2198,8 @@ config("win_pdbaltpath") {
- }
- 
- # Full symbols.
--config("symbols") {
-+config("symbols") { }
-+config("xsymbols") {
-   if (is_win) {
-     if (use_goma || is_clang) {
-       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
-@@ -2325,7 +2309,8 @@ config("symbols") {
- # Minimal symbols.
- # This config guarantees to hold symbol for stack trace which are shown to user
- # when crash happens in unittests running on buildbot.
--config("minimal_symbols") {
-+config("minimal_symbols") { }
-+config("xminimal_symbols") {
-   if (is_win) {
-     # Linker symbols for backtraces only.
-     cflags = []
-@@ -2382,7 +2367,8 @@ config("minimal_symbols") {
- }
- 
- # No symbols.
--config("no_symbols") {
-+config("no_symbols") { }
-+config("xno_symbols") {
-   if (!is_win) {
-     cflags = [ "-g0" ]
-     asmflags = cflags
--- 
-2.21.0
-

diff --git a/www-client/chromium/files/chromium-unbundle-zlib-r1.patch b/www-client/chromium/files/chromium-unbundle-zlib-r1.patch
deleted file mode 100644
index 951a2adb196..00000000000
--- a/www-client/chromium/files/chromium-unbundle-zlib-r1.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
-index 3bc618a..e0ddf6d 100644
---- a/third_party/perfetto/gn/BUILD.gn
-+++ b/third_party/perfetto/gn/BUILD.gn
-@@ -244,7 +244,7 @@ if (enable_perfetto_trace_processor || perfetto_build_standalone ||
-         "//buildtools:zlib",
-       ]
-     } else {
--      public_configs = [ "//third_party/zlib:zlib_config" ]
-+      public_configs = [ "//third_party/zlib:system_zlib" ]
-       public_deps = [
-         "//third_party/zlib",
-       ]


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-04-08 15:30 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-04-08 15:30 UTC (permalink / raw
  To: gentoo-commits

commit:     68ee7ce691b80d8a62881b80b7916d9a81d57065
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Apr  8 07:59:32 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Apr  8 15:30:00 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68ee7ce6

www-client/chromium: fix build with gcc-10 for M81

Bug: https://bugs.gentoo.org/716478
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/15265

 www-client/chromium/chromium-81.0.4044.92.ebuild   |   1 +
 www-client/chromium/files/chromium-81-gcc-10.patch | 116 +++++++++++++++++++++
 2 files changed, 117 insertions(+)

diff --git a/www-client/chromium/chromium-81.0.4044.92.ebuild b/www-client/chromium/chromium-81.0.4044.92.ebuild
index f12953c9e72..00b25722aeb 100644
--- a/www-client/chromium/chromium-81.0.4044.92.ebuild
+++ b/www-client/chromium/chromium-81.0.4044.92.ebuild
@@ -153,6 +153,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-80-gcc-blink.patch"
 	"${FILESDIR}/chromium-81-gcc-noexcept.patch"
 	"${FILESDIR}/chromium-81-gcc-constexpr.patch"
+	"${FILESDIR}/chromium-81-gcc-10.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-81-gcc-10.patch b/www-client/chromium/files/chromium-81-gcc-10.patch
new file mode 100644
index 00000000000..e0690d167c5
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-10.patch
@@ -0,0 +1,116 @@
+From 797a8ef5b7a5d3ab513a4eef68755a939dc570be Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 7 Apr 2020 10:02:27 +0000
+Subject: [PATCH] GCC: fix includes for gcc-10
+
+---
+ base/trace_event/trace_event_memory_overhead.h                  | 1 +
+ chrome/browser/search/background/ntp_backgrounds.h              | 1 +
+ media/cdm/supported_cdm_versions.h                              | 1 +
+ third_party/angle/include/platform/Platform.h                   | 1 +
+ third_party/perfetto/include/perfetto/base/task_runner.h        | 1 +
+ third_party/webrtc/call/rtx_receive_stream.h                    | 1 +
+ .../webrtc/modules/audio_processing/aec3/clockdrift_detector.h  | 1 +
+ ui/gfx/linux/drm_util_linux.h                                   | 2 ++
+ 8 files changed, 9 insertions(+)
+
+diff --git a/base/trace_event/trace_event_memory_overhead.h b/base/trace_event/trace_event_memory_overhead.h
+index 69468d4..3f5b786 100644
+--- a/base/trace_event/trace_event_memory_overhead.h
++++ b/base/trace_event/trace_event_memory_overhead.h
+@@ -9,6 +9,7 @@
+ #include <stdint.h>
+ 
+ #include <unordered_map>
++#include <string>
+ 
+ #include "base/base_export.h"
+ #include "base/macros.h"
+diff --git a/chrome/browser/search/background/ntp_backgrounds.h b/chrome/browser/search/background/ntp_backgrounds.h
+index 7afc0a2..6d0957e 100644
+--- a/chrome/browser/search/background/ntp_backgrounds.h
++++ b/chrome/browser/search/background/ntp_backgrounds.h
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+ 
+ #include <array>
++#include <cstddef>
+ 
+ class GURL;
+ 
+diff --git a/media/cdm/supported_cdm_versions.h b/media/cdm/supported_cdm_versions.h
+index dbe59ba..5216cfe 100644
+--- a/media/cdm/supported_cdm_versions.h
++++ b/media/cdm/supported_cdm_versions.h
+@@ -6,6 +6,7 @@
+ #define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
+ 
+ #include <array>
++#include <cstddef>
+ 
+ #include "media/base/media_export.h"
+ #include "media/cdm/api/content_decryption_module.h"
+diff --git a/third_party/angle/include/platform/Platform.h b/third_party/angle/include/platform/Platform.h
+index 09505a3..8833fa0 100644
+--- a/third_party/angle/include/platform/Platform.h
++++ b/third_party/angle/include/platform/Platform.h
+@@ -11,6 +11,7 @@
+ 
+ #include <stdint.h>
+ #include <array>
++#include <cstddef>
+ 
+ #define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
+ 
+diff --git a/third_party/perfetto/include/perfetto/base/task_runner.h b/third_party/perfetto/include/perfetto/base/task_runner.h
+index cf60401..02658e7 100644
+--- a/third_party/perfetto/include/perfetto/base/task_runner.h
++++ b/third_party/perfetto/include/perfetto/base/task_runner.h
+@@ -18,6 +18,7 @@
+ #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+ 
+ #include <functional>
++#include <cstdint>
+ 
+ #include "perfetto/base/export.h"
+ 
+diff --git a/third_party/webrtc/call/rtx_receive_stream.h b/third_party/webrtc/call/rtx_receive_stream.h
+index 8ffa440..113a816 100644
+--- a/third_party/webrtc/call/rtx_receive_stream.h
++++ b/third_party/webrtc/call/rtx_receive_stream.h
+@@ -12,6 +12,7 @@
+ #define CALL_RTX_RECEIVE_STREAM_H_
+ 
+ #include <map>
++#include <cstdint>
+ 
+ #include "call/rtp_packet_sink_interface.h"
+ 
+diff --git a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+index 22528c9..69e624e 100644
+--- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+ 
+ #include <array>
++#include <cstddef>
+ 
+ namespace webrtc {
+ 
+diff --git a/ui/gfx/linux/drm_util_linux.h b/ui/gfx/linux/drm_util_linux.h
+index 86ff2eb..990f12c 100644
+--- a/ui/gfx/linux/drm_util_linux.h
++++ b/ui/gfx/linux/drm_util_linux.h
+@@ -7,6 +7,8 @@
+ 
+ #include "ui/gfx/buffer_types.h"
+ 
++#include <cstdint>
++
+ namespace ui {
+ 
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
+-- 
+2.24.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-03-30 18:55 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-03-30 18:55 UTC (permalink / raw
  To: gentoo-commits

commit:     531575aa3fb1e287e9f18395b101f3884abd0ab0
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Mar 30 11:15:02 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Mar 30 18:55:35 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=531575aa

www-client/chromium: dev channel bump to 83.0.4093.3

Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/15178

 www-client/chromium/Manifest                       |  2 +-
 ....4085.12.ebuild => chromium-83.0.4093.3.ebuild} |  4 ++
 .../chromium/files/chromium-82-clang-std.patch     | 19 ++++++-
 .../chromium/files/chromium-83-clang-std.patch     | 33 +++++++++++
 .../chromium/files/chromium-83-gcc-range.patch     | 28 ++++++++++
 .../chromium/files/chromium-83-gcc-template.patch  | 65 ++++++++++++++++++++++
 6 files changed, 148 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index fe862f25088..2a78bf28865 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-80.0.3987.149.tar.xz 797049332 BLAKE2B 679efd45a48fb064e2fda9b751b112ef26f9c3419ab46d28e1490729a80b18908078bd260060656199700c391f0664e7a4d1e919ee8eb71d9c8c12b6535269f2 SHA512 5abbf8ff754937a3af566474457b5cd9bbcac0e8b1a52fd95180fcf69b12515278423887668512b3136de72ebe15048c4bd79572511f68189d1e86ace4ca30cb
 DIST chromium-81.0.4044.83.tar.xz 785906212 BLAKE2B b17bb2dabd52dc8ae5a9c99b6320ea48f278273e790c2869e2d93382bae3a8101d1bcad917b0997631831b95ce33398e0501de046edd23110107d010db70f140 SHA512 aeb8a4aeb2371a9ae2fbd0be1553569338c8e699abb3bb7d614c33254a7c6adfecb7b1becfa3f3595a2f4e04eed3c429137ad7a3816ccabf7b23388f206d1ccb
-DIST chromium-82.0.4085.12.tar.xz 795107540 BLAKE2B 419f6e927b340679cec069c7f274d86c2d66f26f32e3d9c95501b9433888dd16dbae4104afde1f3d285730a263a5837a7ef4e9a5e30fb4876dae56db5a1d955d SHA512 d371b6a941af877d2444591f3af9f6458e6beaee99af686a92c282b6ebcd3c560113941dedf215106af57eea201890fa95dee776d5a188ee2ac5686629336410
+DIST chromium-83.0.4093.3.tar.xz 793608324 BLAKE2B 014eff6deacfb308eecc76a2d9a13ddf13b2eefffe044df25e2c20c3695f2c908604751ed7e794e053280fc32449381e8dfd73300201e67a9d84854f9fd851e5 SHA512 d37ae4912d3a39e4b06c91601d941ffb8a77a4b7380a603455c2839f6b8940acb8803aa32e8ae14c5033c141681ee41716a54ac2f8632240e54367a3819e091a

diff --git a/www-client/chromium/chromium-82.0.4085.12.ebuild b/www-client/chromium/chromium-83.0.4093.3.ebuild
similarity index 99%
rename from www-client/chromium/chromium-82.0.4085.12.ebuild
rename to www-client/chromium/chromium-83.0.4093.3.ebuild
index 2ce3e53c208..adec560dac1 100644
--- a/www-client/chromium/chromium-82.0.4085.12.ebuild
+++ b/www-client/chromium/chromium-83.0.4093.3.ebuild
@@ -149,6 +149,9 @@ PATCHES=(
 	"${FILESDIR}/chromium-82-gcc-template.patch"
 	"${FILESDIR}/chromium-82-gcc-iterator.patch"
 	"${FILESDIR}/chromium-82-clang-std.patch"
+	"${FILESDIR}/chromium-83-gcc-template.patch"
+	"${FILESDIR}/chromium-83-gcc-range.patch"
+	"${FILESDIR}/chromium-83-clang-std.patch"
 )
 
 pre_build_checks() {
@@ -343,6 +346,7 @@ src_prepare() {
 		third_party/qcms
 		third_party/rnnoise
 		third_party/s2cellid
+		third_party/schema_org
 		third_party/simplejson
 		third_party/skia
 		third_party/skia/include/third_party/skcms

diff --git a/www-client/chromium/files/chromium-82-clang-std.patch b/www-client/chromium/files/chromium-82-clang-std.patch
index 1ad62fbf45d..b965496a29a 100644
--- a/www-client/chromium/files/chromium-82-clang-std.patch
+++ b/www-client/chromium/files/chromium-82-clang-std.patch
@@ -1,8 +1,23 @@
+From 25f79b67da9ca6da2089ba14ccc14333e4a108b6 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Mon, 30 Mar 2020 08:39:19 +0000
+Subject: [PATCH] libstdc++: fix namespace of nullptr_t in v8_set_return_value.h
+
+nullptr_t is defined in namespace std.
+
+Bug: 819294
+Change-Id: Ia3e8257ece1331319272ead84472eefcc7259268
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2126289
+Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
+Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#754423}
+---
+
 diff --git a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
-index 07cae22..7871f55 100644
+index ed639ef..6c7ffa1 100644
 --- a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
 +++ b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
-@@ -51,7 +51,7 @@ void V8SetReturnValue(const CallbackInfo& info, const v8::Local<S> value) {
+@@ -116,7 +116,7 @@
  
  // nullptr
  template <typename CallbackInfo>

diff --git a/www-client/chromium/files/chromium-83-clang-std.patch b/www-client/chromium/files/chromium-83-clang-std.patch
new file mode 100644
index 00000000000..023a073d87b
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-clang-std.patch
@@ -0,0 +1,33 @@
+From 93ebdd809b725c7f13e8fc150b3186b3b6d80d43 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Mon, 30 Mar 2020 16:49:31 +0000
+Subject: [PATCH] libstdc++: fix namespace of nullptr_t in array_buffer_view_helpers.h
+
+nullptr_t is defined in namespace std.
+
+Bug: 819294
+Change-Id: I16fd876b84aff4f3c0ef6d4654b8ad5015e52d27
+---
+
+diff --git a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
+index a6b8547..5fa03cb 100644
+--- a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
++++ b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
+@@ -36,7 +36,7 @@
+   template <typename U, std::enable_if_t<std::is_base_of<T, U>::value, int> = 0>
+   NotShared(const NotShared<U>& other) : typed_array_(other.Get()) {}
+ 
+-  explicit NotShared(nullptr_t) {}
++  explicit NotShared(std::nullptr_t) {}
+   explicit NotShared(T* typed_array) : typed_array_(typed_array) {
+     DCHECK(!typed_array || !typed_array->IsShared());
+   }
+@@ -95,7 +95,7 @@
+   template <typename U, std::enable_if_t<std::is_base_of<T, U>::value, int> = 0>
+   MaybeShared(const MaybeShared<U>& other) : typed_array_(other.Get()) {}
+ 
+-  explicit MaybeShared(nullptr_t) {}
++  explicit MaybeShared(std::nullptr_t) {}
+   // [AllowShared] array buffer view may be a view of non-shared array buffer,
+   // so we don't check if the buffer is SharedArrayBuffer or not.
+   // https://heycam.github.io/webidl/#AllowShared

diff --git a/www-client/chromium/files/chromium-83-gcc-range.patch b/www-client/chromium/files/chromium-83-gcc-range.patch
new file mode 100644
index 00000000000..f8fb287894f
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-range.patch
@@ -0,0 +1,28 @@
+From 895f0d24db74516e2653672a4b5e57757eeba75a Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sun, 29 Mar 2020 21:03:23 +0000
+Subject: [PATCH] GCC: fix out-of-range constant in status_codes.h
+
+Constant 0x99999999 is not within range of int32_t.
+
+Bug: 819294
+Change-Id: I133b9bb0f1f57a6e1d81f96f39f348b6ea1c7f11
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2126227
+Commit-Queue: Ted Meyer <tmathmeyer@chromium.org>
+Reviewed-by: Ted Meyer <tmathmeyer@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#754364}
+---
+
+diff --git a/media/base/status_codes.h b/media/base/status_codes.h
+index ccac030..219defb 100644
+--- a/media/base/status_codes.h
++++ b/media/base/status_codes.h
+@@ -69,7 +69,7 @@
+   kVaapiFailedAcceleratorCreation = 0x00000509,
+ 
+   // Special codes
+-  kGenericErrorPleaseRemove = 0x99999999,
++  kGenericErrorPleaseRemove = 0x79999999,
+   kCodeOnlyForTesting = std::numeric_limits<StatusCodeType>::max(),
+   kMaxValue = kCodeOnlyForTesting,
+ };

diff --git a/www-client/chromium/files/chromium-83-gcc-template.patch b/www-client/chromium/files/chromium-83-gcc-template.patch
new file mode 100644
index 00000000000..0c5c20ea19d
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-template.patch
@@ -0,0 +1,65 @@
+From 7f1503a80edc5ccd73559b227a242eeb9c1bea93 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Mon, 30 Mar 2020 07:26:49 +0000
+Subject: [PATCH] GCC: fix template specialization in WTF::VectorMover
+
+GCC complains that explicit specialization in non-namespace scope
+is happening for MoveOverlappingImpl. However, secialization is
+not really necessary here with templates and can be moved
+into MoveOverlappingImpl method without changing generated code.
+
+Bug: 819294
+Change-Id: I90b893b9701748302f7b900fbcc2c341685fe0d3
+---
+
+diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h
+index 632d308..82aaf96 100644
+--- a/third_party/blink/renderer/platform/wtf/vector.h
++++ b/third_party/blink/renderer/platform/wtf/vector.h
+@@ -205,30 +205,23 @@
+     }
+   }
+ 
+-  template <bool = Allocator::kIsGarbageCollected>
+-  static void MoveOverlappingImpl(const T* src, const T* src_end, T* dst);
+-  template <>
+-  static void MoveOverlappingImpl<false>(const T* src,
+-                                         const T* src_end,
+-                                         T* dst) {
+-    memmove(dst, src,
+-            reinterpret_cast<const char*>(src_end) -
+-                reinterpret_cast<const char*>(src));
+-  }
+-  template <>
+-  static void MoveOverlappingImpl<true>(const T* src,
+-                                        const T* src_end,
+-                                        T* dst) {
+-    if (src == dst)
+-      return;
+-    if (dst < src) {
+-      for (; src < src_end; ++src, ++dst)
+-        AtomicWriteMemcpy<sizeof(T)>(dst, src);
++  static void MoveOverlappingImpl(const T* src, const T* src_end, T* dst) {
++    if (Allocator::kIsGarbageCollected) {
++      if (src == dst)
++        return;
++      if (dst < src) {
++        for (; src < src_end; ++src, ++dst)
++          AtomicWriteMemcpy<sizeof(T)>(dst, src);
++      } else {
++        --src_end;
++        T* dst_end = dst + (src_end - src);
++        for (; src_end >= src; --src_end, --dst_end)
++          AtomicWriteMemcpy<sizeof(T)>(dst_end, src_end);
++      }
+     } else {
+-      --src_end;
+-      T* dst_end = dst + (src_end - src);
+-      for (; src_end >= src; --src_end, --dst_end)
+-        AtomicWriteMemcpy<sizeof(T)>(dst_end, src_end);
++      memmove(dst, src,
++              reinterpret_cast<const char*>(src_end) -
++                  reinterpret_cast<const char*>(src));
+     }
+   }
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-03-15 18:35 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-03-15 18:35 UTC (permalink / raw
  To: gentoo-commits

commit:     ffebbba52ab671e13647977682d43718657d0e71
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Mar 15 15:54:02 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Mar 15 18:35:15 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ffebbba5

www-client/chromium: dev channel bump to 82.0.4083.0

Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/14966

 www-client/chromium/Manifest                       |  2 +-
 ...0.4077.0.ebuild => chromium-82.0.4083.0.ebuild} |  3 +-
 .../chromium/files/chromium-82-gcc-iterator.patch  | 23 ++++++++++++
 .../chromium/files/chromium-compiler-r12.patch     | 42 +++++++++++-----------
 4 files changed, 47 insertions(+), 23 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a4707f6e53f..b0fbf7e4470 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-80.0.3987.132.tar.xz 796975056 BLAKE2B 0da35d3218f4f44c15f05693336a034876764ef228f173cd00cedc045ebc06972416779a39458863b47a1863ab8f21b5d2dc11c6ed33ee81649cd0316bf31524 SHA512 10bf0d1efdf2ead9e94de90971ec135f5370f8c949acfd75ca953aed706510cc3a1464f1ff3c40275921bb24953d8ce65d095e38cb0d56488ccc2c7fa27516d4
 DIST chromium-81.0.4044.62.tar.xz 785977660 BLAKE2B a9346e9e5761a1210cae245d955dce9ec807a21e3343de11e52581d161eaf8170876c4eb7f145453bf3736b54006b9142b09be834cb1fd7702a078f3ec0a2617 SHA512 f6728e2b8f81ccab0ffecc511a2364badba9f1d2149dc209de0c5f824108085afef4459f9e0bfbe571acd363405a8d77e80ea59150c4f9783717aa2f68f060e2
-DIST chromium-82.0.4077.0.tar.xz 793873940 BLAKE2B 9629ca475e135e68bf99bfae5566b49c1516b2abc78f1bdfc9cb2135802c994b4bfc3860d12797abc1c89fa478ab7aa9fdb60af2f5d080cb00093a5fb42d064d SHA512 b0b039f663257617e62e5620fd19272871f3bbe33b19a6adb23882fa7bccf358d3c09495caf96e37e2670321000ecf685588df8566451364931c6a3418eca91b
+DIST chromium-82.0.4083.0.tar.xz 794521032 BLAKE2B 5437aaed6c81bab1bd6495db0665fe6c3fbd1058535272d19a6d6c9d34db0102ff3464e1f210461c0944dd84257bc036004aed412f91590a6ff951c1e3fb7925 SHA512 412757cd004ceb7946bd4b8f30afd9589f6b33595a9f231c4a43a7a6328547fec8bdf42d751ec4babc244c16d7b9bbd2448adeb155e4ac354d714180a69c0709

diff --git a/www-client/chromium/chromium-82.0.4077.0.ebuild b/www-client/chromium/chromium-82.0.4083.0.ebuild
similarity index 99%
rename from www-client/chromium/chromium-82.0.4077.0.ebuild
rename to www-client/chromium/chromium-82.0.4083.0.ebuild
index 019d9968c0e..e93d8f46ddb 100644
--- a/www-client/chromium/chromium-82.0.4077.0.ebuild
+++ b/www-client/chromium/chromium-82.0.4083.0.ebuild
@@ -94,7 +94,7 @@ BDEPEND="
 		dev-lang/yasm
 	)
 	dev-lang/perl
-	dev-util/gn
+	>=dev-util/gn-0.1726
 	dev-vcs/git
 	>=dev-util/gperf-3.0.3
 	>=dev-util/ninja-1.7.2
@@ -148,6 +148,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-82-gcc-noexcept.patch"
 	"${FILESDIR}/chromium-82-gcc-incomplete-type.patch"
 	"${FILESDIR}/chromium-82-gcc-template.patch"
+	"${FILESDIR}/chromium-82-gcc-iterator.patch"
 	"${FILESDIR}/chromium-82-clang-std.patch"
 )
 

diff --git a/www-client/chromium/files/chromium-82-gcc-iterator.patch b/www-client/chromium/files/chromium-82-gcc-iterator.patch
new file mode 100644
index 00000000000..6405d52b3b2
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-iterator.patch
@@ -0,0 +1,23 @@
+diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
+index b3c7624..85936aa 100644
+--- a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
++++ b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_CONTAINER_FRAGMENT_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_CONTAINER_FRAGMENT_H_
+ 
++#include <iterator>
++
+ #include "base/containers/span.h"
+ #include "third_party/blink/renderer/core/core_export.h"
+ #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
+@@ -31,7 +33,8 @@ class CORE_EXPORT NGPhysicalContainerFragment : public NGPhysicalFragment {
+     PostLayoutChildLinkList(wtf_size_t count, const NGLink* buffer)
+         : count_(count), buffer_(buffer) {}
+ 
+-    class ConstIterator {
++    class ConstIterator : public std::iterator<std::input_iterator_tag,
++                                               NGLink> {
+       STACK_ALLOCATED();
+ 
+      public:

diff --git a/www-client/chromium/files/chromium-compiler-r12.patch b/www-client/chromium/files/chromium-compiler-r12.patch
index 3d8117e4c06..840059b4f57 100644
--- a/www-client/chromium/files/chromium-compiler-r12.patch
+++ b/www-client/chromium/files/chromium-compiler-r12.patch
@@ -1,6 +1,6 @@
-From 2e9a5f0e54d8968c4fab8f1cd00c225e387f0187 Mon Sep 17 00:00:00 2001
+From c2a95e376474298b01cb04f1d5b2c6e3c76ba268 Mon Sep 17 00:00:00 2001
 From: Mike Gilbert <floppym@gentoo.org>
-Date: Fri, 6 Mar 2020 17:10:30 +0000
+Date: Fri, 13 Mar 2020 20:20:06 +0000
 Subject: [PATCH] Disable various compiler configs
 
 ---
@@ -8,7 +8,7 @@ Subject: [PATCH] Disable various compiler configs
  1 file changed, 23 insertions(+), 44 deletions(-)
 
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index d4597c7..4c651ac 100644
+index 8f7fcc3..d27e71e 100644
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
 @@ -261,8 +261,6 @@ config("compiler") {
@@ -47,7 +47,7 @@ index d4597c7..4c651ac 100644
    # C11/C++11 compiler flags setup.
    # ---------------------------
    if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-@@ -1442,6 +1420,12 @@ config("default_warnings") {
+@@ -1437,6 +1415,12 @@ config("default_warnings") {
          cflags_cc += [ "-Wno-class-memaccess" ]
        }
  
@@ -60,7 +60,7 @@ index d4597c7..4c651ac 100644
        # -Wunused-local-typedefs is broken in gcc,
        # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
        cflags += [ "-Wno-unused-local-typedefs" ]
-@@ -1563,7 +1547,7 @@ config("chromium_code") {
+@@ -1558,7 +1542,7 @@ config("chromium_code") {
        defines = [ "_HAS_NODISCARD" ]
      }
    } else {
@@ -69,7 +69,7 @@ index d4597c7..4c651ac 100644
      if (treat_warnings_as_errors) {
        cflags += [ "-Werror" ]
  
-@@ -1572,10 +1556,6 @@ config("chromium_code") {
+@@ -1567,10 +1551,6 @@ config("chromium_code") {
        # well.
        ldflags = [ "-Werror" ]
      }
@@ -80,7 +80,7 @@ index d4597c7..4c651ac 100644
  
      # In Chromium code, we define __STDC_foo_MACROS in order to get the
      # C99 macros on Mac and Linux.
-@@ -1584,15 +1564,6 @@ config("chromium_code") {
+@@ -1579,15 +1559,6 @@ config("chromium_code") {
        "__STDC_FORMAT_MACROS",
      ]
  
@@ -96,7 +96,7 @@ index d4597c7..4c651ac 100644
      if (is_mac) {
        cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
        cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -1984,7 +1955,8 @@ config("default_stack_frames") {
+@@ -1979,7 +1950,8 @@ config("default_stack_frames") {
  }
  
  # Default "optimization on" config.
@@ -106,7 +106,7 @@ index d4597c7..4c651ac 100644
    if (is_win) {
      # Favor size over speed, /O1 must be before the common flags.
      # /O1 implies /Os and /GF.
-@@ -2005,7 +1977,8 @@ config("optimize") {
+@@ -2000,7 +1972,8 @@ config("optimize") {
  }
  
  # Turn off optimizations.
@@ -116,7 +116,7 @@ index d4597c7..4c651ac 100644
    if (is_win) {
      cflags = [
        "/Od",  # Disable optimization.
-@@ -2039,7 +2012,8 @@ config("no_optimize") {
+@@ -2034,7 +2007,8 @@ config("no_optimize") {
  # Turns up the optimization level. On Windows, this implies whole program
  # optimization and link-time code generation which is very expensive and should
  # be used sparingly.
@@ -126,7 +126,7 @@ index d4597c7..4c651ac 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2071,7 +2045,8 @@ config("optimize_max") {
+@@ -2066,7 +2040,8 @@ config("optimize_max") {
  #
  # TODO(crbug.com/621335) - rework how all of these configs are related
  # so that we don't need this disclaimer.
@@ -136,7 +136,7 @@ index d4597c7..4c651ac 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2096,7 +2071,8 @@ config("optimize_speed") {
+@@ -2091,7 +2066,8 @@ config("optimize_speed") {
    }
  }
  
@@ -146,7 +146,7 @@ index d4597c7..4c651ac 100644
    cflags = [ "-O1" ] + common_optimize_on_cflags
    ldflags = common_optimize_on_ldflags
    visibility = [ ":default_optimization" ]
-@@ -2212,7 +2188,8 @@ config("win_pdbaltpath") {
+@@ -2207,7 +2183,8 @@ config("win_pdbaltpath") {
  }
  
  # Full symbols.
@@ -156,7 +156,7 @@ index d4597c7..4c651ac 100644
    if (is_win) {
      if (is_clang) {
        cflags = [ "/Z7" ]  # Debug information in the .obj files.
-@@ -2318,7 +2295,8 @@ config("symbols") {
+@@ -2313,7 +2290,8 @@ config("symbols") {
  # Minimal symbols.
  # This config guarantees to hold symbol for stack trace which are shown to user
  # when crash happens in unittests running on buildbot.
@@ -166,16 +166,16 @@ index d4597c7..4c651ac 100644
    if (is_win) {
      # Functions, files, and line tables only.
      cflags = []
-@@ -2373,7 +2351,8 @@ config("minimal_symbols") {
- }
- 
- # No symbols.
+@@ -2370,7 +2348,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
 -config("no_symbols") {
 +config("no_symbols") { }
 +config("xno_symbols") {
-   if (!is_win) {
-     cflags = [ "-g0" ]
-     asmflags = cflags
+   if (is_win) {
+     ldflags = [ "/DEBUG" ]
+ 
 -- 
 2.24.1
 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-03-10 15:06 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-03-10 15:06 UTC (permalink / raw
  To: gentoo-commits

commit:     adb8703f3e0af99058b75e997984d762b1844913
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Mar  8 19:08:30 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Mar 10 15:06:44 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=adb8703f

www-client/chromium: dev channel bump to 82.0.4077.0

Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/14918

 www-client/chromium/Manifest                       |  2 +-
 ...0.4068.4.ebuild => chromium-82.0.4077.0.ebuild} | 11 +++--
 .../chromium/files/chromium-82-clang-std.patch     | 13 ++++++
 .../files/chromium-82-gcc-incomplete-type.patch    | 40 +++++++++++++++++
 .../chromium/files/chromium-82-gcc-noexcept.patch  | 13 ++++++
 .../chromium/files/chromium-82-gcc-private.patch   | 47 --------------------
 .../chromium/files/chromium-82-gcc-template.patch  | 50 ++++++++++++++++++++++
 .../chromium/files/chromium-82-include.patch       | 28 ------------
 .../chromium/files/chromium-compiler-r12.patch     | 32 +++++++-------
 9 files changed, 140 insertions(+), 96 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index dc2668f7b5e..744b666496b 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-80.0.3987.132.tar.xz 796975056 BLAKE2B 0da35d3218f4f44c15f05693336a034876764ef228f173cd00cedc045ebc06972416779a39458863b47a1863ab8f21b5d2dc11c6ed33ee81649cd0316bf31524 SHA512 10bf0d1efdf2ead9e94de90971ec135f5370f8c949acfd75ca953aed706510cc3a1464f1ff3c40275921bb24953d8ce65d095e38cb0d56488ccc2c7fa27516d4
 DIST chromium-81.0.4044.43.tar.xz 785978276 BLAKE2B 295e5a09d79db7205aea64511356f8a649ad054c4f279ab2a1dd72631b3bff2245ca6272f3eb11414eb5a612c47b988325390932d91c4e55ccc9c0883593331f SHA512 6391c9d0460646b8c241f5ec5502b801e9f500651fc73ad664215a43047ab50fa6851edeed5cbb9c1637576d8081295f4f4a67d3d7daa15769241a0055494bf6
-DIST chromium-82.0.4068.4.tar.xz 803352676 BLAKE2B 64356b7c840d6ba955d2b7aced1faf85e05f19c9c0b39e8bf86529b86bba2e162404820f5710e9962c4d5e1325086becc3aebb0fdc2683b06231a2a0e8d7a6ae SHA512 ceb3b50ad4b38e969cf27c386d696665d773e73c000a1cd1ee158bbff86ae94b09a5fbe128547ed496e258ce8bfaf9bbf28b0d229254400c86afbe49fc7e8d8b
+DIST chromium-82.0.4077.0.tar.xz 793873940 BLAKE2B 9629ca475e135e68bf99bfae5566b49c1516b2abc78f1bdfc9cb2135802c994b4bfc3860d12797abc1c89fa478ab7aa9fdb60af2f5d080cb00093a5fb42d064d SHA512 b0b039f663257617e62e5620fd19272871f3bbe33b19a6adb23882fa7bccf358d3c09495caf96e37e2670321000ecf685588df8566451364931c6a3418eca91b

diff --git a/www-client/chromium/chromium-82.0.4068.4.ebuild b/www-client/chromium/chromium-82.0.4077.0.ebuild
similarity index 98%
rename from www-client/chromium/chromium-82.0.4068.4.ebuild
rename to www-client/chromium/chromium-82.0.4077.0.ebuild
index a056ee3c4d4..019d9968c0e 100644
--- a/www-client/chromium/chromium-82.0.4068.4.ebuild
+++ b/www-client/chromium/chromium-82.0.4077.0.ebuild
@@ -109,7 +109,7 @@ BDEPEND="
 : ${CHROMIUM_FORCE_CLANG=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
+	BDEPEND+=" >=sys-devel/clang-9"
 fi
 
 if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
@@ -144,10 +144,11 @@ PATCHES=(
 	"${FILESDIR}/chromium-78-protobuf-export.patch"
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"
 	"${FILESDIR}/chromium-80-gcc-quiche.patch"
-	"${FILESDIR}/chromium-80-gcc-blink.patch"
 	"${FILESDIR}/chromium-82-gcc-constexpr.patch"
-	"${FILESDIR}/chromium-82-gcc-private.patch"
-	"${FILESDIR}/chromium-82-include.patch"
+	"${FILESDIR}/chromium-82-gcc-noexcept.patch"
+	"${FILESDIR}/chromium-82-gcc-incomplete-type.patch"
+	"${FILESDIR}/chromium-82-gcc-template.patch"
+	"${FILESDIR}/chromium-82-clang-std.patch"
 )
 
 pre_build_checks() {
@@ -270,6 +271,7 @@ src_prepare() {
 		third_party/devscripts
 		third_party/devtools-frontend
 		third_party/devtools-frontend/src/front_end/third_party/fabricjs
+		third_party/devtools-frontend/src/front_end/third_party/lighthouse
 		third_party/devtools-frontend/src/front_end/third_party/wasmparser
 		third_party/devtools-frontend/src/third_party
 		third_party/dom_distiller_js
@@ -352,6 +354,7 @@ src_prepare() {
 		third_party/SPIRV-Tools
 		third_party/sqlite
 		third_party/swiftshader
+		third_party/swiftshader/third_party/astc-encoder
 		third_party/swiftshader/third_party/llvm-7.0
 		third_party/swiftshader/third_party/llvm-subzero
 		third_party/swiftshader/third_party/marl

diff --git a/www-client/chromium/files/chromium-82-clang-std.patch b/www-client/chromium/files/chromium-82-clang-std.patch
new file mode 100644
index 00000000000..1ad62fbf45d
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-clang-std.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
+index 07cae22..7871f55 100644
+--- a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
++++ b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
+@@ -51,7 +51,7 @@ void V8SetReturnValue(const CallbackInfo& info, const v8::Local<S> value) {
+ 
+ // nullptr
+ template <typename CallbackInfo>
+-void V8SetReturnValue(const CallbackInfo& info, nullptr_t) {
++void V8SetReturnValue(const CallbackInfo& info, std::nullptr_t) {
+   info.GetReturnValue().SetNull();
+ }
+ 

diff --git a/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch b/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch
new file mode 100644
index 00000000000..9e46ad7f51b
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch
@@ -0,0 +1,40 @@
+diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc
+index 616d53f..26749e3 100644
+--- a/ui/accessibility/ax_tree.cc
++++ b/ui/accessibility/ax_tree.cc
+@@ -565,15 +565,6 @@ struct AXTreeUpdateState {
+   const AXTree& tree;
+ };
+ 
+-struct AXTree::NodeSetSizePosInSetInfo {
+-  NodeSetSizePosInSetInfo() = default;
+-  ~NodeSetSizePosInSetInfo() = default;
+-
+-  int32_t pos_in_set = 0;
+-  int32_t set_size = 0;
+-  base::Optional<int> lowest_hierarchical_level;
+-};
+-
+ struct AXTree::OrderedSetContent {
+   explicit OrderedSetContent(const AXNode* ordered_set = nullptr)
+       : ordered_set_(ordered_set) {}
+diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h
+index 3bbbe0c..e4288f5 100644
+--- a/ui/accessibility/ax_tree.h
++++ b/ui/accessibility/ax_tree.h
+@@ -323,7 +323,14 @@ class AX_EXPORT AXTree : public AXNode::OwnerTree {
+   bool enable_extra_mac_nodes_ = false;
+ 
+   // Contains pos_in_set and set_size data for an AXNode.
+-  struct NodeSetSizePosInSetInfo;
++  struct NodeSetSizePosInSetInfo {
++    NodeSetSizePosInSetInfo() = default;
++    ~NodeSetSizePosInSetInfo() = default;
++
++    int32_t pos_in_set = 0;
++    int32_t set_size = 0;
++    base::Optional<int> lowest_hierarchical_level;
++  };
+ 
+   // Represents the content of an ordered set which includes the ordered set
+   // items and the ordered set container if it exists.

diff --git a/www-client/chromium/files/chromium-82-gcc-noexcept.patch b/www-client/chromium/files/chromium-82-gcc-noexcept.patch
new file mode 100644
index 00000000000..db66934d883
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-noexcept.patch
@@ -0,0 +1,13 @@
+diff --git a/ui/color/color_set.cc b/ui/color/color_set.cc
+index 56564d7..2798a3c 100644
+--- a/ui/color/color_set.cc
++++ b/ui/color/color_set.cc
+@@ -11,7 +11,7 @@ ColorSet::ColorSet(ColorSetId id, ColorMap&& colors)
+ 
+ ColorSet::ColorSet(ColorSet&&) noexcept = default;
+ 
+-ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
++ColorSet& ColorSet::operator=(ColorSet&&) = default;
+ 
+ ColorSet::~ColorSet() = default;
+ 

diff --git a/www-client/chromium/files/chromium-82-gcc-private.patch b/www-client/chromium/files/chromium-82-gcc-private.patch
deleted file mode 100644
index 278f5b1d97a..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-private.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 1931db04cf4b3737adfb99edf86cbf68d740511b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Thu, 20 Feb 2020 11:41:29 +0100
-Subject: [PATCH] GNU stdc++: media::MediaError default constructor should be public
-
-On building with GNU stdc++ we get this error building:
-  gen/media/mojo/mojom/media_types.mojom.cc:1161:55:   required from here
-  /usr/include/c++/9/bits/stl_construct.h:75:7: error: ‘media::MediaError::MediaError()’ is private within this context
-
-This is because the serialization code will eventually call, in this case,
-the default constructor because of the implementation of stl_uninitialized
-that is used to create an std::vector. This is invoked from
-static bool mojo::ArrayTraits<std::vector<_Tp> >::Resize(std::vector<_Tp>&, size_t)
-and what it does is constructing a temporary vector like this:
-    std::vector<T> temp(size);
-
-But this is requiring calling the default constructor of T (in this case
-MediaError) for all the elements up to size-1.
-
-Bug: 957519
-Change-Id: Ie3a28b9734f16c5155b9500003838510be0a748d
----
-
-diff --git a/media/base/media_error.h b/media/base/media_error.h
-index d3ba96c..56daaec 100644
---- a/media/base/media_error.h
-+++ b/media/base/media_error.h
-@@ -40,6 +40,9 @@
- // successful returns.
- class MEDIA_EXPORT MediaError {
-  public:
-+  // Default constructor can be used for MediaError::Ok();
-+  MediaError();
-+
-   // Convenience function to return |kOk|.
-   // OK won't have a message, trace, or data associated with them, and DCHECK
-   // if they are added.
-@@ -110,9 +113,6 @@
-   }
- 
-  private:
--  // Default constructor can be used for MediaError::Ok();
--  MediaError();
--
-   // Private helper to add the current stack frame to the error trace.
-   void AddFrame(const base::Location& location);
- 

diff --git a/www-client/chromium/files/chromium-82-gcc-template.patch b/www-client/chromium/files/chromium-82-gcc-template.patch
new file mode 100644
index 00000000000..90909c5692b
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-template.patch
@@ -0,0 +1,50 @@
+diff --git a/content/public/browser/web_ui.h b/content/public/browser/web_ui.h
+index 4e6aa0e..fa6f10c 100644
+--- a/content/public/browser/web_ui.h
++++ b/content/public/browser/web_ui.h
+@@ -138,22 +138,6 @@ class CONTENT_EXPORT WebUI {
+   template <typename T>
+   static T GetValue(const base::Value& value);
+ 
+-  template <>
+-  inline bool GetValue<bool>(const base::Value& value) {
+-    return value.GetBool();
+-  }
+-
+-  template <>
+-  inline int GetValue<int>(const base::Value& value) {
+-    return value.GetInt();
+-  }
+-
+-  template <>
+-  inline const std::string& GetValue<const std::string&>(
+-      const base::Value& value) {
+-    return value.GetString();
+-  }
+-
+   template <typename Is, typename... Args>
+   struct Call;
+ 
+@@ -169,6 +153,22 @@ class CONTENT_EXPORT WebUI {
+   };
+ };
+ 
++template <>
++inline bool WebUI::GetValue<bool>(const base::Value& value) {
++  return value.GetBool();
++}
++
++template <>
++inline int WebUI::GetValue<int>(const base::Value& value) {
++  return value.GetInt();
++}
++
++template <>
++inline const std::string& WebUI::GetValue<const std::string&>(
++    const base::Value& value) {
++  return value.GetString();
++}
++
+ }  // namespace content
+ 
+ #endif  // CONTENT_PUBLIC_BROWSER_WEB_UI_H_

diff --git a/www-client/chromium/files/chromium-82-include.patch b/www-client/chromium/files/chromium-82-include.patch
deleted file mode 100644
index 9a39ae2e8d5..00000000000
--- a/www-client/chromium/files/chromium-82-include.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 046deafc60a31f485a96773dc5ea5b0eb2ed15f1 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Mon, 24 Feb 2020 16:24:33 +0000
-Subject: [PATCH] IWYU: missing include for std::string in csp_source_list.h
-
-Build error in GCC:
-../../services/network/public/cpp/content_security_policy/csp_source_list.h:19:6: error: ‘string’ in namespace ‘std’ does not name a type
-
-Bug: 819294
-Change-Id: I9c8665050cae038530a79323b65932a124adf2a1
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2067074
-Commit-Queue: Lucas Gadani <lfg@chromium.org>
-Reviewed-by: Lucas Gadani <lfg@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#743946}
----
-
-diff --git a/services/network/public/cpp/content_security_policy/csp_source_list.h b/services/network/public/cpp/content_security_policy/csp_source_list.h
-index 0cd3971..6df1891 100644
---- a/services/network/public/cpp/content_security_policy/csp_source_list.h
-+++ b/services/network/public/cpp/content_security_policy/csp_source_list.h
-@@ -5,6 +5,7 @@
- #ifndef SERVICES_NETWORK_PUBLIC_CPP_CONTENT_SECURITY_POLICY_CSP_SOURCE_LIST_H_
- #define SERVICES_NETWORK_PUBLIC_CPP_CONTENT_SECURITY_POLICY_CSP_SOURCE_LIST_H_
- 
-+#include <string>
- #include <vector>
- 
- #include "base/component_export.h"

diff --git a/www-client/chromium/files/chromium-compiler-r12.patch b/www-client/chromium/files/chromium-compiler-r12.patch
index 833abe2828c..3d8117e4c06 100644
--- a/www-client/chromium/files/chromium-compiler-r12.patch
+++ b/www-client/chromium/files/chromium-compiler-r12.patch
@@ -1,6 +1,6 @@
-From 137de121a36f9349ad8435fee57940facef82878 Mon Sep 17 00:00:00 2001
+From 2e9a5f0e54d8968c4fab8f1cd00c225e387f0187 Mon Sep 17 00:00:00 2001
 From: Mike Gilbert <floppym@gentoo.org>
-Date: Fri, 26 Feb 2020 10:09:23 +0000
+Date: Fri, 6 Mar 2020 17:10:30 +0000
 Subject: [PATCH] Disable various compiler configs
 
 ---
@@ -8,7 +8,7 @@ Subject: [PATCH] Disable various compiler configs
  1 file changed, 23 insertions(+), 44 deletions(-)
 
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 85bc736..a85bd12 100644
+index d4597c7..4c651ac 100644
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
 @@ -261,8 +261,6 @@ config("compiler") {
@@ -60,7 +60,7 @@ index 85bc736..a85bd12 100644
        # -Wunused-local-typedefs is broken in gcc,
        # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
        cflags += [ "-Wno-unused-local-typedefs" ]
-@@ -1572,7 +1556,7 @@ config("chromium_code") {
+@@ -1563,7 +1547,7 @@ config("chromium_code") {
        defines = [ "_HAS_NODISCARD" ]
      }
    } else {
@@ -69,7 +69,7 @@ index 85bc736..a85bd12 100644
      if (treat_warnings_as_errors) {
        cflags += [ "-Werror" ]
  
-@@ -1581,10 +1565,6 @@ config("chromium_code") {
+@@ -1572,10 +1556,6 @@ config("chromium_code") {
        # well.
        ldflags = [ "-Werror" ]
      }
@@ -80,7 +80,7 @@ index 85bc736..a85bd12 100644
  
      # In Chromium code, we define __STDC_foo_MACROS in order to get the
      # C99 macros on Mac and Linux.
-@@ -1593,15 +1573,6 @@ config("chromium_code") {
+@@ -1584,15 +1564,6 @@ config("chromium_code") {
        "__STDC_FORMAT_MACROS",
      ]
  
@@ -96,7 +96,7 @@ index 85bc736..a85bd12 100644
      if (is_mac) {
        cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
        cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -1993,7 +1964,8 @@ config("default_stack_frames") {
+@@ -1984,7 +1955,8 @@ config("default_stack_frames") {
  }
  
  # Default "optimization on" config.
@@ -106,7 +106,7 @@ index 85bc736..a85bd12 100644
    if (is_win) {
      # Favor size over speed, /O1 must be before the common flags.
      # /O1 implies /Os and /GF.
-@@ -2016,7 +1988,8 @@ config("optimize") {
+@@ -2005,7 +1977,8 @@ config("optimize") {
  }
  
  # Turn off optimizations.
@@ -116,7 +116,7 @@ index 85bc736..a85bd12 100644
    if (is_win) {
      cflags = [
        "/Od",  # Disable optimization.
-@@ -2050,7 +2023,8 @@ config("no_optimize") {
+@@ -2039,7 +2012,8 @@ config("no_optimize") {
  # Turns up the optimization level. On Windows, this implies whole program
  # optimization and link-time code generation which is very expensive and should
  # be used sparingly.
@@ -126,7 +126,7 @@ index 85bc736..a85bd12 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2089,7 +2063,8 @@ config("optimize_max") {
+@@ -2071,7 +2045,8 @@ config("optimize_max") {
  #
  # TODO(crbug.com/621335) - rework how all of these configs are related
  # so that we don't need this disclaimer.
@@ -136,7 +136,7 @@ index 85bc736..a85bd12 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2119,7 +2094,8 @@ config("optimize_speed") {
+@@ -2096,7 +2071,8 @@ config("optimize_speed") {
    }
  }
  
@@ -146,7 +146,7 @@ index 85bc736..a85bd12 100644
    cflags = [ "-O1" ] + common_optimize_on_cflags
    ldflags = common_optimize_on_ldflags
    visibility = [ ":default_optimization" ]
-@@ -2235,7 +2211,8 @@ config("win_pdbaltpath") {
+@@ -2212,7 +2188,8 @@ config("win_pdbaltpath") {
  }
  
  # Full symbols.
@@ -154,9 +154,9 @@ index 85bc736..a85bd12 100644
 +config("symbols") { }
 +config("xsymbols") {
    if (is_win) {
-     if (use_goma || is_clang) {
-       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
-@@ -2361,7 +2338,8 @@ config("symbols") {
+     if (is_clang) {
+       cflags = [ "/Z7" ]  # Debug information in the .obj files.
+@@ -2318,7 +2295,8 @@ config("symbols") {
  # Minimal symbols.
  # This config guarantees to hold symbol for stack trace which are shown to user
  # when crash happens in unittests running on buildbot.
@@ -166,7 +166,7 @@ index 85bc736..a85bd12 100644
    if (is_win) {
      # Functions, files, and line tables only.
      cflags = []
-@@ -2416,7 +2394,8 @@ config("minimal_symbols") {
+@@ -2373,7 +2351,8 @@ config("minimal_symbols") {
  }
  
  # No symbols.


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-02-14 20:12 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-02-14 20:12 UTC (permalink / raw
  To: gentoo-commits

commit:     6c7649fd93de77cbca12344ab4477e99d47a5017
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Feb 13 15:00:15 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Feb 14 20:12:11 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c7649fd

www-client/chromium: dev channel bump to 81.0.4044.17

Package-Manager: Portage-2.3.84, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +-
 ....4044.9.ebuild => chromium-81.0.4044.17.ebuild} |   2 -
 .../files/chromium-81-fix-browser-frame.patch      |  35 ---
 .../chromium/files/chromium-81-gcc-noexcept.patch  |   6 +-
 www-client/chromium/files/chromium-81-mojom.patch  | 303 ---------------------
 5 files changed, 4 insertions(+), 344 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1f775f4e194..c9a9c178c40 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-80.0.3987.100.tar.xz 801377116 BLAKE2B 0c99b78794a0c04bcc45fd423d0fabb7db4c9e37ae446b46c33a7b4a98ecc1af9302680e84118809f01dd3bee50b68a301ff0bdd72c5704c028c7984bac812f3 SHA512 b8612693158f9a497723391ed80dd06b152ed71b29e2722a751f94b297e184f09f786405d2c5b460aff6f62c9c6292c673b36019ff72f1fb662cc418cc26127d
 DIST chromium-80.0.3987.87.tar.xz 801310184 BLAKE2B d051f77b0e6f167632e383e23983531ee1f44f1fce1629f482cf42882c294816bd98c51ad043b5258aa9652a8da14edf278f70fc63f6978c9dfececa547a1fca SHA512 69aebd760d9b8f2c5f4d15a3a144cd4292ffb11b1536af3596f907e730ac64e909d739bb6e9d322a8f56fac75e4f0b2b5c4c36c4fe4bb52147276b5b0dd03620
-DIST chromium-81.0.4044.9.tar.xz 791346280 BLAKE2B 790a8537a7a2a9cc6c209afb570580cc05a8f85bd0f61c4d8c13765f8d776962833468390b5685caac3d3590be1d602298e79961beded8b0b4a2b5b5ab1dcbc7 SHA512 e9fb98a66cea6b65e25dda55cceb687a3697e3810b32c1f5ddfc8341e3289b9077056898984ea07b4cdbe33f2e651a197cb57fa89d484ad728672282e43ca48f
+DIST chromium-81.0.4044.17.tar.xz 791446724 BLAKE2B 08d8fc6c6c8788fde868270ca874571a4fff42154e340155d5f1eba3ef615202dabaec4d19250cccc5f7f9c665a0acb0df4f44fda6f1417289a84988e501e60a SHA512 bbcfddd5d44dfa940d40846dc66daaf394f079cd3d238ec57889c0b4cf137f7d4245873fba3e4fb9797f145084ca92d75b594f5d9653103b554d34154a1d3e61

diff --git a/www-client/chromium/chromium-81.0.4044.9.ebuild b/www-client/chromium/chromium-81.0.4044.17.ebuild
similarity index 99%
rename from www-client/chromium/chromium-81.0.4044.9.ebuild
rename to www-client/chromium/chromium-81.0.4044.17.ebuild
index b16c58de36f..d69081aa14a 100644
--- a/www-client/chromium/chromium-81.0.4044.9.ebuild
+++ b/www-client/chromium/chromium-81.0.4044.17.ebuild
@@ -148,8 +148,6 @@ PATCHES=(
 	"${FILESDIR}/chromium-80-gcc-blink.patch"
 	"${FILESDIR}/chromium-81-gcc-noexcept.patch"
 	"${FILESDIR}/chromium-81-gcc-constexpr.patch"
-	"${FILESDIR}/chromium-81-mojom.patch"
-	"${FILESDIR}/chromium-81-fix-browser-frame.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-81-fix-browser-frame.patch b/www-client/chromium/files/chromium-81-fix-browser-frame.patch
deleted file mode 100644
index 6516e1faf1a..00000000000
--- a/www-client/chromium/files/chromium-81-fix-browser-frame.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From c73968d63c456d4aaf55c5cd439b42403a3bbeb1 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson@chromium.org>
-Date: Mon, 03 Feb 2020 19:53:50 +0000
-Subject: [PATCH] Fix browser frame view not getting a relayout after a state change
-
-views::NonClientView has 2 things: a views::NonClientFrameView and a
-views::ClientView. We were previously only invalidating the layout on
-the ClientView after a state change.  This was causing the browser
-frame to paint as if it were still maximized after restoring from
-a maximized state on Linux.  Invalidating the layout of the frame view
-fixes the issue.
-
-BUG=1046122
-R=sky
-
-Change-Id: I7da525efe1f436564ffffb410afe294e901e5d89
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2033759
-Reviewed-by: Scott Violet <sky@chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#737890}
----
-
-diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-index 9abbce8..6c00d49 100644
---- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-@@ -717,6 +717,8 @@
-   NonClientView* non_client_view = widget->non_client_view();
-   // non_client_view may be NULL, especially during creation.
-   if (non_client_view) {
-+    if (non_client_view->frame_view())
-+      non_client_view->frame_view()->InvalidateLayout();
-     non_client_view->client_view()->InvalidateLayout();
-     non_client_view->InvalidateLayout();
-   }

diff --git a/www-client/chromium/files/chromium-81-gcc-noexcept.patch b/www-client/chromium/files/chromium-81-gcc-noexcept.patch
index 90ecb225709..a6fc8aff72a 100644
--- a/www-client/chromium/files/chromium-81-gcc-noexcept.patch
+++ b/www-client/chromium/files/chromium-81-gcc-noexcept.patch
@@ -1,10 +1,10 @@
 diff --git a/components/paint_preview/browser/paint_preview_client.cc b/components/paint_preview/browser/paint_preview_client.cc
-index fc3b5a4..8689acf 100644
+index 38ab6be..dccf07f 100644
 --- a/components/paint_preview/browser/paint_preview_client.cc
 +++ b/components/paint_preview/browser/paint_preview_client.cc
-@@ -79,7 +79,7 @@ PaintPreviewClient::PaintPreviewParams::~PaintPreviewParams() = default;
- PaintPreviewClient::PaintPreviewData::PaintPreviewData() = default;
+@@ -78,7 +78,7 @@ PaintPreviewClient::PaintPreviewData::PaintPreviewData() = default;
  PaintPreviewClient::PaintPreviewData::~PaintPreviewData() = default;
+ 
  PaintPreviewClient::PaintPreviewData& PaintPreviewClient::PaintPreviewData::
 -operator=(PaintPreviewData&& rhs) noexcept = default;
 +operator=(PaintPreviewData&& rhs) = default;

diff --git a/www-client/chromium/files/chromium-81-mojom.patch b/www-client/chromium/files/chromium-81-mojom.patch
deleted file mode 100644
index e6675931fbc..00000000000
--- a/www-client/chromium/files/chromium-81-mojom.patch
+++ /dev/null
@@ -1,303 +0,0 @@
-Add missing files in tarball.
-
-diff --git a/chrome/test/data/webui/mojo/OWNERS b/chrome/test/data/webui/mojo/OWNERS
-new file mode 100644
-index 000000000000..08850f421205
---- /dev/null
-+++ b/chrome/test/data/webui/mojo/OWNERS
-@@ -0,0 +1,2 @@
-+per-file *.mojom=set noparent
-+per-file *.mojom=file://ipc/SECURITY_OWNERS
-diff --git a/chrome/test/data/webui/mojo/foobar.mojom b/chrome/test/data/webui/mojo/foobar.mojom
-new file mode 100644
-index 000000000000..446d365af8fb
---- /dev/null
-+++ b/chrome/test/data/webui/mojo/foobar.mojom
-@@ -0,0 +1,16 @@
-+// Copyright 2019 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Test Mojo interfaces for MojoWebUIControllerBrowserTest.
-+
-+module test.mojom;
-+
-+interface Foo {
-+  GetFoo() => (string value);
-+};
-+
-+interface Bar {
-+  GetBar() => (string value);
-+};
-+
-diff --git a/chrome/test/data/webui/mojo/mojo_web_ui_controller_browsertest.cc b/chrome/test/data/webui/mojo/mojo_web_ui_controller_browsertest.cc
-new file mode 100644
-index 000000000000..658a54ace278
---- /dev/null
-+++ b/chrome/test/data/webui/mojo/mojo_web_ui_controller_browsertest.cc
-@@ -0,0 +1,253 @@
-+// Copyright 2019 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#include "ui/webui/mojo_web_ui_controller.h"
-+
-+#include "base/memory/ref_counted_memory.h"
-+#include "base/path_service.h"
-+#include "base/run_loop.h"
-+#include "base/threading/sequenced_task_runner_handle.h"
-+#include "chrome/browser/bad_message.h"
-+#include "chrome/browser/chrome_browser_interface_binders.h"
-+#include "chrome/browser/chrome_content_browser_client.h"
-+#include "chrome/browser/ui/browser.h"
-+#include "chrome/browser/ui/tabs/tab_strip_model.h"
-+#include "chrome/test/base/in_process_browser_test.h"
-+#include "chrome/test/data/grit/webui_test_resources.h"
-+#include "chrome/test/data/webui/mojo/foobar.mojom.h"
-+#include "content/public/browser/render_process_host.h"
-+#include "content/public/browser/render_process_host_observer.h"
-+#include "content/public/browser/web_contents.h"
-+#include "content/public/browser/web_ui_controller_factory.h"
-+#include "content/public/browser/web_ui_data_source.h"
-+#include "content/public/common/content_client.h"
-+#include "content/public/common/url_constants.h"
-+#include "content/public/test/browser_test_utils.h"
-+#include "content/public/test/no_renderer_crashes_assertion.h"
-+#include "content/public/test/test_utils.h"
-+#include "services/service_manager/public/cpp/binder_map.h"
-+#include "testing/gtest/include/gtest/gtest.h"
-+#include "ui/base/resource/resource_bundle.h"
-+#include "url/gurl.h"
-+
-+namespace {
-+
-+// WebUIController that provides the Foo Mojo API.
-+class FooUI : public ui::MojoWebUIController, public ::test::mojom::Foo {
-+ public:
-+  explicit FooUI(content::WebUI* web_ui)
-+      : ui::MojoWebUIController(web_ui), foo_receiver_(this) {
-+    content::WebUIDataSource* data_source =
-+        content::WebUIDataSource::Create("foo");
-+    data_source->SetDefaultResource(IDR_MOJO_WEB_UI_CONTROLLER_TEST_HTML);
-+    data_source->DisableContentSecurityPolicy();
-+    data_source->AddResourcePath("foobar.mojom-lite.js",
-+                                 IDR_FOOBAR_MOJO_LITE_JS);
-+    content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
-+                                  data_source);
-+  }
-+
-+  void BindInterface(mojo::PendingReceiver<::test::mojom::Foo> receiver) {
-+    foo_receiver_.Bind(std::move(receiver));
-+  }
-+
-+  // ::test::mojom::Foo:
-+  void GetFoo(GetFooCallback callback) override {
-+    std::move(callback).Run("foofoo");
-+  }
-+
-+  WEB_UI_CONTROLLER_TYPE_DECL();
-+
-+ private:
-+  mojo::Receiver<::test::mojom::Foo> foo_receiver_;
-+
-+  DISALLOW_COPY_AND_ASSIGN(FooUI);
-+};
-+
-+WEB_UI_CONTROLLER_TYPE_IMPL(FooUI)
-+
-+// WebUIController that provides the Foo and Bar Mojo APIs.
-+class FooBarUI : public ui::MojoWebUIController,
-+                 public ::test::mojom::Foo,
-+                 public ::test::mojom::Bar {
-+ public:
-+  explicit FooBarUI(content::WebUI* web_ui)
-+      : ui::MojoWebUIController(web_ui),
-+        foo_receiver_(this),
-+        bar_receiver_(this) {
-+    content::WebUIDataSource* data_source =
-+        content::WebUIDataSource::Create("foobar");
-+    data_source->SetDefaultResource(IDR_MOJO_WEB_UI_CONTROLLER_TEST_HTML);
-+    data_source->DisableContentSecurityPolicy();
-+    data_source->AddResourcePath("foobar.mojom-lite.js",
-+                                 IDR_FOOBAR_MOJO_LITE_JS);
-+    content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
-+                                  data_source);
-+  }
-+
-+  void BindInterface(mojo::PendingReceiver<::test::mojom::Foo> receiver) {
-+    foo_receiver_.Bind(std::move(receiver));
-+  }
-+
-+  void BindInterface(mojo::PendingReceiver<::test::mojom::Bar> receiver) {
-+    bar_receiver_.Bind(std::move(receiver));
-+  }
-+
-+  // ::test::mojom::Foo:
-+  void GetFoo(GetFooCallback callback) override {
-+    std::move(callback).Run("foobarfoo");
-+  }
-+
-+  // ::test::mojom::Bar:
-+  void GetBar(GetBarCallback callback) override {
-+    std::move(callback).Run("foobarbar");
-+  }
-+
-+  WEB_UI_CONTROLLER_TYPE_DECL();
-+
-+ private:
-+  mojo::Receiver<::test::mojom::Foo> foo_receiver_;
-+  mojo::Receiver<::test::mojom::Bar> bar_receiver_;
-+
-+  DISALLOW_COPY_AND_ASSIGN(FooBarUI);
-+};
-+
-+WEB_UI_CONTROLLER_TYPE_IMPL(FooBarUI)
-+
-+// WebUIControllerFactory that serves our TestWebUIController.
-+class TestWebUIControllerFactory : public content::WebUIControllerFactory {
-+ public:
-+  TestWebUIControllerFactory() = default;
-+
-+  std::unique_ptr<content::WebUIController> CreateWebUIControllerForURL(
-+      content::WebUI* web_ui,
-+      const GURL& url) override {
-+    if (url.host_piece() == "foo")
-+      return std::make_unique<FooUI>(web_ui);
-+    if (url.host_piece() == "foobar")
-+      return std::make_unique<FooBarUI>(web_ui);
-+
-+    return nullptr;
-+  }
-+
-+  content::WebUI::TypeID GetWebUIType(content::BrowserContext* browser_context,
-+                                      const GURL& url) override {
-+    if (url.SchemeIs(content::kChromeUIScheme))
-+      return reinterpret_cast<content::WebUI::TypeID>(1);
-+
-+    return content::WebUI::kNoWebUI;
-+  }
-+
-+  bool UseWebUIForURL(content::BrowserContext* browser_context,
-+                      const GURL& url) override {
-+    return url.SchemeIs(content::kChromeUIScheme);
-+  }
-+  bool UseWebUIBindingsForURL(content::BrowserContext* browser_context,
-+                              const GURL& url) override {
-+    return url.SchemeIs(content::kChromeUIScheme);
-+  }
-+
-+ private:
-+  DISALLOW_COPY_AND_ASSIGN(TestWebUIControllerFactory);
-+};
-+
-+}  // namespace
-+
-+class MojoWebUIControllerBrowserTest : public InProcessBrowserTest {
-+ public:
-+  MojoWebUIControllerBrowserTest() {
-+    factory_ = std::make_unique<TestWebUIControllerFactory>();
-+    content::WebUIControllerFactory::RegisterFactory(factory_.get());
-+  }
-+
-+  void SetUpOnMainThread() override {
-+    base::FilePath pak_path;
-+    ASSERT_TRUE(base::PathService::Get(base::DIR_MODULE, &pak_path));
-+    pak_path = pak_path.AppendASCII("browser_tests.pak");
-+    ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
-+        pak_path, ui::SCALE_FACTOR_NONE);
-+
-+    content::SetBrowserClientForTesting(&test_content_browser_client_);
-+  }
-+
-+ private:
-+  class TestContentBrowserClient : public ChromeContentBrowserClient {
-+   public:
-+    TestContentBrowserClient() = default;
-+    TestContentBrowserClient(const TestContentBrowserClient&) = delete;
-+    TestContentBrowserClient& operator=(const TestContentBrowserClient&) =
-+        delete;
-+    ~TestContentBrowserClient() override = default;
-+
-+    void RegisterBrowserInterfaceBindersForFrame(
-+        content::RenderFrameHost* render_frame_host,
-+        service_manager::BinderMapWithContext<content::RenderFrameHost*>* map)
-+        override {
-+      ChromeContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
-+          render_frame_host, map);
-+      chrome::internal::RegisterWebUIControllerInterfaceBinder<
-+          ::test::mojom::Bar, FooBarUI>(map);
-+      chrome::internal::RegisterWebUIControllerInterfaceBinder<
-+          ::test::mojom::Foo, FooUI, FooBarUI>(map);
-+    }
-+  };
-+
-+  std::unique_ptr<TestWebUIControllerFactory> factory_;
-+
-+  TestContentBrowserClient test_content_browser_client_;
-+};
-+
-+// Attempting to access bindings succeeds for 2 allowed interfaces.
-+IN_PROC_BROWSER_TEST_F(MojoWebUIControllerBrowserTest, BindingsAccess) {
-+  content::WebContents* web_contents =
-+      browser()->tab_strip_model()->GetActiveWebContents();
-+
-+  ASSERT_TRUE(NavigateToURL(web_contents, content::GetWebUIURL("foobar")));
-+
-+  EXPECT_EQ("foobarfoo",
-+            content::EvalJs(web_contents,
-+                            "(async () => {"
-+                            "  let fooRemote = test.mojom.Foo.getRemote(true);"
-+                            "  let resp = await fooRemote.getFoo();"
-+                            "  return resp.value;"
-+                            "})()"));
-+
-+  EXPECT_EQ("foobarbar",
-+            content::EvalJs(web_contents,
-+                            "(async () => {"
-+                            "  let barRemote = test.mojom.Bar.getRemote(true);"
-+                            "  let resp = await barRemote.getBar();"
-+                            "  return resp.value;"
-+                            "})()"));
-+}
-+
-+// Attempting to access bindings crashes the renderer when access not allowed.
-+IN_PROC_BROWSER_TEST_F(MojoWebUIControllerBrowserTest,
-+                       BindingsAccessViolation) {
-+  content::WebContents* web_contents =
-+      browser()->tab_strip_model()->GetActiveWebContents();
-+
-+  ASSERT_TRUE(NavigateToURL(web_contents, content::GetWebUIURL("foo")));
-+
-+  EXPECT_EQ("foofoo",
-+            content::EvalJs(web_contents,
-+                            "(async () => {"
-+                            "  let fooRemote = test.mojom.Foo.getRemote(true);"
-+                            "  let resp = await fooRemote.getFoo();"
-+                            "  return resp.value;"
-+                            "})()"));
-+
-+  content::ScopedAllowRendererCrashes allow;
-+
-+  // Attempt to get a remote for a disallowed interface.
-+  EXPECT_FALSE(
-+      content::EvalJs(web_contents,
-+                      "(async () => {"
-+                      "  let barRemote = test.mojom.Bar.getRemote(true);"
-+                      "  let resp = await barRemote.getBar();"
-+                      "  return resp.value;"
-+                      "})()")
-+          .error.empty());
-+  EXPECT_TRUE(web_contents->IsCrashed());
-+}
-diff --git a/chrome/test/data/webui/mojo/mojo_web_ui_controller_test.html b/chrome/test/data/webui/mojo/mojo_web_ui_controller_test.html
-new file mode 100644
-index 000000000000..4638ebc261c7
---- /dev/null
-+++ b/chrome/test/data/webui/mojo/mojo_web_ui_controller_test.html
-@@ -0,0 +1,6 @@
-+<html>
-+<head>
-+<script src="chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js"></script>
-+<script src="/foobar.mojom-lite.js"></script>
-+</head>
-+</html>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-02-06 20:48 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-02-06 20:48 UTC (permalink / raw
  To: gentoo-commits

commit:     e6d7418bd2939cff68b0d2f1678a9ba19fb05aba
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Feb  6 20:36:28 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Feb  6 20:48:25 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6d7418b

www-client/chromium: dev channel bump to 81.0.4044.9

Closes: https://bugs.gentoo.org/707988
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/14585

 www-client/chromium/Manifest                       |   2 +-
 ...0.4040.5.ebuild => chromium-81.0.4044.9.ebuild} |   7 +-
 www-client/chromium/files/chromium-81-clang.patch  |  13 -
 .../files/chromium-81-fix-browser-frame.patch      |  35 +++
 .../chromium/files/chromium-81-gcc-constexpr.patch |  19 ++
 .../chromium/files/chromium-81-gcc-template.patch  |  32 ---
 www-client/chromium/files/chromium-81-mojom.patch  | 303 +++++++++++++++++++++
 .../chromium/files/chromium-compiler-r11.patch     |  51 ++--
 8 files changed, 381 insertions(+), 81 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 23022952130..172969051ee 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,2 @@
 DIST chromium-80.0.3987.87.tar.xz 801310184 BLAKE2B d051f77b0e6f167632e383e23983531ee1f44f1fce1629f482cf42882c294816bd98c51ad043b5258aa9652a8da14edf278f70fc63f6978c9dfececa547a1fca SHA512 69aebd760d9b8f2c5f4d15a3a144cd4292ffb11b1536af3596f907e730ac64e909d739bb6e9d322a8f56fac75e4f0b2b5c4c36c4fe4bb52147276b5b0dd03620
-DIST chromium-81.0.4040.5.tar.xz 828003840 BLAKE2B 81b3d4b15d5cdc99bcb19ab3745e49b402f00d68a557f58fa3ae0e6b584c28473dba5ca8622373721e54c64760adbf7cb9daae93c1b29336e7f9fc3a387b199f SHA512 47928d6fc022dc0d8b51562c8079baf25aad098f93c52dd4d07d70fa6d9c4b56b4920e163ff3b44d328e741184d5af327394fa56aa36c54509406f2d67e525ed
+DIST chromium-81.0.4044.9.tar.xz 791346280 BLAKE2B 790a8537a7a2a9cc6c209afb570580cc05a8f85bd0f61c4d8c13765f8d776962833468390b5685caac3d3590be1d602298e79961beded8b0b4a2b5b5ab1dcbc7 SHA512 e9fb98a66cea6b65e25dda55cceb687a3697e3810b32c1f5ddfc8341e3289b9077056898984ea07b4cdbe33f2e651a197cb57fa89d484ad728672282e43ca48f

diff --git a/www-client/chromium/chromium-81.0.4040.5.ebuild b/www-client/chromium/chromium-81.0.4044.9.ebuild
similarity index 99%
rename from www-client/chromium/chromium-81.0.4040.5.ebuild
rename to www-client/chromium/chromium-81.0.4044.9.ebuild
index bbe6a457c79..b16c58de36f 100644
--- a/www-client/chromium/chromium-81.0.4040.5.ebuild
+++ b/www-client/chromium/chromium-81.0.4044.9.ebuild
@@ -144,12 +144,12 @@ PATCHES=(
 	"${FILESDIR}/chromium-fix-char_traits.patch"
 	"${FILESDIR}/chromium-78-protobuf-export.patch"
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"
-	"${FILESDIR}/chromium-80-unbundle-libxml.patch"
 	"${FILESDIR}/chromium-80-gcc-quiche.patch"
 	"${FILESDIR}/chromium-80-gcc-blink.patch"
-	"${FILESDIR}/chromium-81-gcc-template.patch"
 	"${FILESDIR}/chromium-81-gcc-noexcept.patch"
-	"${FILESDIR}/chromium-81-clang.patch"
+	"${FILESDIR}/chromium-81-gcc-constexpr.patch"
+	"${FILESDIR}/chromium-81-mojom.patch"
+	"${FILESDIR}/chromium-81-fix-browser-frame.patch"
 )
 
 pre_build_checks() {
@@ -341,7 +341,6 @@ src_prepare() {
 		third_party/qcms
 		third_party/rnnoise
 		third_party/s2cellid
-		third_party/sfntly
 		third_party/simplejson
 		third_party/skia
 		third_party/skia/include/third_party/skcms

diff --git a/www-client/chromium/files/chromium-81-clang.patch b/www-client/chromium/files/chromium-81-clang.patch
deleted file mode 100644
index 8f69b34a0ed..00000000000
--- a/www-client/chromium/files/chromium-81-clang.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc b/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
-index 659efac..38f6ebc 100644
---- a/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
-+++ b/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
-@@ -46,7 +46,7 @@ constexpr int kNotificationBodies[] = {
- 
- }  // namespace
- 
--ExtensionRequestNotification::ExtensionRequestNotification() = default;
-+ExtensionRequestNotification::ExtensionRequestNotification() {}
- 
- ExtensionRequestNotification::ExtensionRequestNotification(
-     Profile* profile,

diff --git a/www-client/chromium/files/chromium-81-fix-browser-frame.patch b/www-client/chromium/files/chromium-81-fix-browser-frame.patch
new file mode 100644
index 00000000000..6516e1faf1a
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-fix-browser-frame.patch
@@ -0,0 +1,35 @@
+From c73968d63c456d4aaf55c5cd439b42403a3bbeb1 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Mon, 03 Feb 2020 19:53:50 +0000
+Subject: [PATCH] Fix browser frame view not getting a relayout after a state change
+
+views::NonClientView has 2 things: a views::NonClientFrameView and a
+views::ClientView. We were previously only invalidating the layout on
+the ClientView after a state change.  This was causing the browser
+frame to paint as if it were still maximized after restoring from
+a maximized state on Linux.  Invalidating the layout of the frame view
+fixes the issue.
+
+BUG=1046122
+R=sky
+
+Change-Id: I7da525efe1f436564ffffb410afe294e901e5d89
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2033759
+Reviewed-by: Scott Violet <sky@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#737890}
+---
+
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+index 9abbce8..6c00d49 100644
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+@@ -717,6 +717,8 @@
+   NonClientView* non_client_view = widget->non_client_view();
+   // non_client_view may be NULL, especially during creation.
+   if (non_client_view) {
++    if (non_client_view->frame_view())
++      non_client_view->frame_view()->InvalidateLayout();
+     non_client_view->client_view()->InvalidateLayout();
+     non_client_view->InvalidateLayout();
+   }

diff --git a/www-client/chromium/files/chromium-81-gcc-constexpr.patch b/www-client/chromium/files/chromium-81-gcc-constexpr.patch
new file mode 100644
index 00000000000..a9c1507c078
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-constexpr.patch
@@ -0,0 +1,19 @@
+diff --git a/ui/views/layout/layout_types.h b/ui/views/layout/layout_types.h
+index 8f9dbf4..ba118b9 100644
+--- a/ui/views/layout/layout_types.h
++++ b/ui/views/layout/layout_types.h
+@@ -45,12 +45,12 @@ class VIEWS_EXPORT SizeBounds {
+   ~SizeBounds() = default;
+ 
+   constexpr const base::Optional<int>& width() const { return width_; }
+-  constexpr void set_width(base::Optional<int> width) {
++  inline void set_width(base::Optional<int> width) {
+     width_ = std::move(width);
+   }
+ 
+   constexpr const base::Optional<int>& height() const { return height_; }
+-  constexpr void set_height(base::Optional<int> height) {
++  inline void set_height(base::Optional<int> height) {
+     height_ = std::move(height);
+   }
+ 

diff --git a/www-client/chromium/files/chromium-81-gcc-template.patch b/www-client/chromium/files/chromium-81-gcc-template.patch
deleted file mode 100644
index 8553d5f603b..00000000000
--- a/www-client/chromium/files/chromium-81-gcc-template.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set.h b/third_party/blink/renderer/platform/wtf/list_hash_set.h
-index 7856b7b..76534f6 100644
---- a/third_party/blink/renderer/platform/wtf/list_hash_set.h
-+++ b/third_party/blink/renderer/platform/wtf/list_hash_set.h
-@@ -308,21 +308,16 @@ class ListHashSetNodeBasePointer {
-   NodeType& operator*() const { return *Get(); }
- 
-  private:
--  template <bool = Allocator::kIsGarbageCollected>
-   void SetSafe(NodeType* node) {
--    AsAtomicPtr(&node_)->store(node, std::memory_order_relaxed);
--  }
--  template <>
--  void SetSafe<false>(NodeType* node) {
--    node_ = node;
-+    if ( Allocator::kIsGarbageCollected )
-+      AsAtomicPtr(&node_)->store(node, std::memory_order_relaxed);
-+    else
-+      node_ = node;
-   }
- 
--  template <bool = Allocator::kIsGarbageCollected>
-   NodeType* GetSafe() const {
--    return AsAtomicPtr(&node_)->load(std::memory_order_relaxed);
--  }
--  template <>
--  NodeType* GetSafe<false>() const {
-+    if ( Allocator::kIsGarbageCollected )
-+      return AsAtomicPtr(&node_)->load(std::memory_order_relaxed);
-     return node_;
-   }
- 

diff --git a/www-client/chromium/files/chromium-81-mojom.patch b/www-client/chromium/files/chromium-81-mojom.patch
new file mode 100644
index 00000000000..e6675931fbc
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-mojom.patch
@@ -0,0 +1,303 @@
+Add missing files in tarball.
+
+diff --git a/chrome/test/data/webui/mojo/OWNERS b/chrome/test/data/webui/mojo/OWNERS
+new file mode 100644
+index 000000000000..08850f421205
+--- /dev/null
++++ b/chrome/test/data/webui/mojo/OWNERS
+@@ -0,0 +1,2 @@
++per-file *.mojom=set noparent
++per-file *.mojom=file://ipc/SECURITY_OWNERS
+diff --git a/chrome/test/data/webui/mojo/foobar.mojom b/chrome/test/data/webui/mojo/foobar.mojom
+new file mode 100644
+index 000000000000..446d365af8fb
+--- /dev/null
++++ b/chrome/test/data/webui/mojo/foobar.mojom
+@@ -0,0 +1,16 @@
++// Copyright 2019 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++// Test Mojo interfaces for MojoWebUIControllerBrowserTest.
++
++module test.mojom;
++
++interface Foo {
++  GetFoo() => (string value);
++};
++
++interface Bar {
++  GetBar() => (string value);
++};
++
+diff --git a/chrome/test/data/webui/mojo/mojo_web_ui_controller_browsertest.cc b/chrome/test/data/webui/mojo/mojo_web_ui_controller_browsertest.cc
+new file mode 100644
+index 000000000000..658a54ace278
+--- /dev/null
++++ b/chrome/test/data/webui/mojo/mojo_web_ui_controller_browsertest.cc
+@@ -0,0 +1,253 @@
++// Copyright 2019 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "ui/webui/mojo_web_ui_controller.h"
++
++#include "base/memory/ref_counted_memory.h"
++#include "base/path_service.h"
++#include "base/run_loop.h"
++#include "base/threading/sequenced_task_runner_handle.h"
++#include "chrome/browser/bad_message.h"
++#include "chrome/browser/chrome_browser_interface_binders.h"
++#include "chrome/browser/chrome_content_browser_client.h"
++#include "chrome/browser/ui/browser.h"
++#include "chrome/browser/ui/tabs/tab_strip_model.h"
++#include "chrome/test/base/in_process_browser_test.h"
++#include "chrome/test/data/grit/webui_test_resources.h"
++#include "chrome/test/data/webui/mojo/foobar.mojom.h"
++#include "content/public/browser/render_process_host.h"
++#include "content/public/browser/render_process_host_observer.h"
++#include "content/public/browser/web_contents.h"
++#include "content/public/browser/web_ui_controller_factory.h"
++#include "content/public/browser/web_ui_data_source.h"
++#include "content/public/common/content_client.h"
++#include "content/public/common/url_constants.h"
++#include "content/public/test/browser_test_utils.h"
++#include "content/public/test/no_renderer_crashes_assertion.h"
++#include "content/public/test/test_utils.h"
++#include "services/service_manager/public/cpp/binder_map.h"
++#include "testing/gtest/include/gtest/gtest.h"
++#include "ui/base/resource/resource_bundle.h"
++#include "url/gurl.h"
++
++namespace {
++
++// WebUIController that provides the Foo Mojo API.
++class FooUI : public ui::MojoWebUIController, public ::test::mojom::Foo {
++ public:
++  explicit FooUI(content::WebUI* web_ui)
++      : ui::MojoWebUIController(web_ui), foo_receiver_(this) {
++    content::WebUIDataSource* data_source =
++        content::WebUIDataSource::Create("foo");
++    data_source->SetDefaultResource(IDR_MOJO_WEB_UI_CONTROLLER_TEST_HTML);
++    data_source->DisableContentSecurityPolicy();
++    data_source->AddResourcePath("foobar.mojom-lite.js",
++                                 IDR_FOOBAR_MOJO_LITE_JS);
++    content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
++                                  data_source);
++  }
++
++  void BindInterface(mojo::PendingReceiver<::test::mojom::Foo> receiver) {
++    foo_receiver_.Bind(std::move(receiver));
++  }
++
++  // ::test::mojom::Foo:
++  void GetFoo(GetFooCallback callback) override {
++    std::move(callback).Run("foofoo");
++  }
++
++  WEB_UI_CONTROLLER_TYPE_DECL();
++
++ private:
++  mojo::Receiver<::test::mojom::Foo> foo_receiver_;
++
++  DISALLOW_COPY_AND_ASSIGN(FooUI);
++};
++
++WEB_UI_CONTROLLER_TYPE_IMPL(FooUI)
++
++// WebUIController that provides the Foo and Bar Mojo APIs.
++class FooBarUI : public ui::MojoWebUIController,
++                 public ::test::mojom::Foo,
++                 public ::test::mojom::Bar {
++ public:
++  explicit FooBarUI(content::WebUI* web_ui)
++      : ui::MojoWebUIController(web_ui),
++        foo_receiver_(this),
++        bar_receiver_(this) {
++    content::WebUIDataSource* data_source =
++        content::WebUIDataSource::Create("foobar");
++    data_source->SetDefaultResource(IDR_MOJO_WEB_UI_CONTROLLER_TEST_HTML);
++    data_source->DisableContentSecurityPolicy();
++    data_source->AddResourcePath("foobar.mojom-lite.js",
++                                 IDR_FOOBAR_MOJO_LITE_JS);
++    content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
++                                  data_source);
++  }
++
++  void BindInterface(mojo::PendingReceiver<::test::mojom::Foo> receiver) {
++    foo_receiver_.Bind(std::move(receiver));
++  }
++
++  void BindInterface(mojo::PendingReceiver<::test::mojom::Bar> receiver) {
++    bar_receiver_.Bind(std::move(receiver));
++  }
++
++  // ::test::mojom::Foo:
++  void GetFoo(GetFooCallback callback) override {
++    std::move(callback).Run("foobarfoo");
++  }
++
++  // ::test::mojom::Bar:
++  void GetBar(GetBarCallback callback) override {
++    std::move(callback).Run("foobarbar");
++  }
++
++  WEB_UI_CONTROLLER_TYPE_DECL();
++
++ private:
++  mojo::Receiver<::test::mojom::Foo> foo_receiver_;
++  mojo::Receiver<::test::mojom::Bar> bar_receiver_;
++
++  DISALLOW_COPY_AND_ASSIGN(FooBarUI);
++};
++
++WEB_UI_CONTROLLER_TYPE_IMPL(FooBarUI)
++
++// WebUIControllerFactory that serves our TestWebUIController.
++class TestWebUIControllerFactory : public content::WebUIControllerFactory {
++ public:
++  TestWebUIControllerFactory() = default;
++
++  std::unique_ptr<content::WebUIController> CreateWebUIControllerForURL(
++      content::WebUI* web_ui,
++      const GURL& url) override {
++    if (url.host_piece() == "foo")
++      return std::make_unique<FooUI>(web_ui);
++    if (url.host_piece() == "foobar")
++      return std::make_unique<FooBarUI>(web_ui);
++
++    return nullptr;
++  }
++
++  content::WebUI::TypeID GetWebUIType(content::BrowserContext* browser_context,
++                                      const GURL& url) override {
++    if (url.SchemeIs(content::kChromeUIScheme))
++      return reinterpret_cast<content::WebUI::TypeID>(1);
++
++    return content::WebUI::kNoWebUI;
++  }
++
++  bool UseWebUIForURL(content::BrowserContext* browser_context,
++                      const GURL& url) override {
++    return url.SchemeIs(content::kChromeUIScheme);
++  }
++  bool UseWebUIBindingsForURL(content::BrowserContext* browser_context,
++                              const GURL& url) override {
++    return url.SchemeIs(content::kChromeUIScheme);
++  }
++
++ private:
++  DISALLOW_COPY_AND_ASSIGN(TestWebUIControllerFactory);
++};
++
++}  // namespace
++
++class MojoWebUIControllerBrowserTest : public InProcessBrowserTest {
++ public:
++  MojoWebUIControllerBrowserTest() {
++    factory_ = std::make_unique<TestWebUIControllerFactory>();
++    content::WebUIControllerFactory::RegisterFactory(factory_.get());
++  }
++
++  void SetUpOnMainThread() override {
++    base::FilePath pak_path;
++    ASSERT_TRUE(base::PathService::Get(base::DIR_MODULE, &pak_path));
++    pak_path = pak_path.AppendASCII("browser_tests.pak");
++    ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
++        pak_path, ui::SCALE_FACTOR_NONE);
++
++    content::SetBrowserClientForTesting(&test_content_browser_client_);
++  }
++
++ private:
++  class TestContentBrowserClient : public ChromeContentBrowserClient {
++   public:
++    TestContentBrowserClient() = default;
++    TestContentBrowserClient(const TestContentBrowserClient&) = delete;
++    TestContentBrowserClient& operator=(const TestContentBrowserClient&) =
++        delete;
++    ~TestContentBrowserClient() override = default;
++
++    void RegisterBrowserInterfaceBindersForFrame(
++        content::RenderFrameHost* render_frame_host,
++        service_manager::BinderMapWithContext<content::RenderFrameHost*>* map)
++        override {
++      ChromeContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
++          render_frame_host, map);
++      chrome::internal::RegisterWebUIControllerInterfaceBinder<
++          ::test::mojom::Bar, FooBarUI>(map);
++      chrome::internal::RegisterWebUIControllerInterfaceBinder<
++          ::test::mojom::Foo, FooUI, FooBarUI>(map);
++    }
++  };
++
++  std::unique_ptr<TestWebUIControllerFactory> factory_;
++
++  TestContentBrowserClient test_content_browser_client_;
++};
++
++// Attempting to access bindings succeeds for 2 allowed interfaces.
++IN_PROC_BROWSER_TEST_F(MojoWebUIControllerBrowserTest, BindingsAccess) {
++  content::WebContents* web_contents =
++      browser()->tab_strip_model()->GetActiveWebContents();
++
++  ASSERT_TRUE(NavigateToURL(web_contents, content::GetWebUIURL("foobar")));
++
++  EXPECT_EQ("foobarfoo",
++            content::EvalJs(web_contents,
++                            "(async () => {"
++                            "  let fooRemote = test.mojom.Foo.getRemote(true);"
++                            "  let resp = await fooRemote.getFoo();"
++                            "  return resp.value;"
++                            "})()"));
++
++  EXPECT_EQ("foobarbar",
++            content::EvalJs(web_contents,
++                            "(async () => {"
++                            "  let barRemote = test.mojom.Bar.getRemote(true);"
++                            "  let resp = await barRemote.getBar();"
++                            "  return resp.value;"
++                            "})()"));
++}
++
++// Attempting to access bindings crashes the renderer when access not allowed.
++IN_PROC_BROWSER_TEST_F(MojoWebUIControllerBrowserTest,
++                       BindingsAccessViolation) {
++  content::WebContents* web_contents =
++      browser()->tab_strip_model()->GetActiveWebContents();
++
++  ASSERT_TRUE(NavigateToURL(web_contents, content::GetWebUIURL("foo")));
++
++  EXPECT_EQ("foofoo",
++            content::EvalJs(web_contents,
++                            "(async () => {"
++                            "  let fooRemote = test.mojom.Foo.getRemote(true);"
++                            "  let resp = await fooRemote.getFoo();"
++                            "  return resp.value;"
++                            "})()"));
++
++  content::ScopedAllowRendererCrashes allow;
++
++  // Attempt to get a remote for a disallowed interface.
++  EXPECT_FALSE(
++      content::EvalJs(web_contents,
++                      "(async () => {"
++                      "  let barRemote = test.mojom.Bar.getRemote(true);"
++                      "  let resp = await barRemote.getBar();"
++                      "  return resp.value;"
++                      "})()")
++          .error.empty());
++  EXPECT_TRUE(web_contents->IsCrashed());
++}
+diff --git a/chrome/test/data/webui/mojo/mojo_web_ui_controller_test.html b/chrome/test/data/webui/mojo/mojo_web_ui_controller_test.html
+new file mode 100644
+index 000000000000..4638ebc261c7
+--- /dev/null
++++ b/chrome/test/data/webui/mojo/mojo_web_ui_controller_test.html
+@@ -0,0 +1,6 @@
++<html>
++<head>
++<script src="chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js"></script>
++<script src="/foobar.mojom-lite.js"></script>
++</head>
++</html>

diff --git a/www-client/chromium/files/chromium-compiler-r11.patch b/www-client/chromium/files/chromium-compiler-r11.patch
index f910d6fe2d5..f1b958a1170 100644
--- a/www-client/chromium/files/chromium-compiler-r11.patch
+++ b/www-client/chromium/files/chromium-compiler-r11.patch
@@ -1,17 +1,17 @@
-From b29cbcb0ff75b564f83ad93273e881e242f08caf Mon Sep 17 00:00:00 2001
+From 137de121a36f9349ad8435fee57940facef82878 Mon Sep 17 00:00:00 2001
 From: Mike Gilbert <floppym@gentoo.org>
-Date: Wed, 22 Jan 2020 09:05:36 +0000
+Date: Thu, 6 Feb 2020 07:46:57 +0000
 Subject: [PATCH] Disable various compiler configs
 
 ---
- build/config/compiler/BUILD.gn | 75 ++++++++++++----------------------
- 1 file changed, 25 insertions(+), 50 deletions(-)
+ build/config/compiler/BUILD.gn | 64 +++++++++++++---------------------
+ 1 file changed, 25 insertions(+), 39 deletions(-)
 
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 1455a9f..cf19679 100644
+index eef1140..b34b55b 100644
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
-@@ -270,8 +270,6 @@ config("compiler") {
+@@ -260,8 +260,6 @@ config("compiler") {
  
    configs += [
      # See the definitions below.
@@ -20,7 +20,7 @@ index 1455a9f..cf19679 100644
      ":compiler_codegen",
      ":compiler_deterministic",
    ]
-@@ -496,31 +494,6 @@ config("compiler") {
+@@ -486,20 +484,6 @@ config("compiler") {
      }
    }
  
@@ -36,23 +36,12 @@ index 1455a9f..cf19679 100644
 -      "-Xclang",
 -      "-instcombine-lower-dbg-declare=0",
 -    ]
--
--    if (llvm_force_head_revision) {
--      # Before Clang 10, lax vector conversions were allowed by default.
--      # Chromium currently relies on this behavior.
--      # TODO(crbug.com/1042470): Fix the code and remove this flag.
--      if (is_win) {
--        cflags += [ "/clang:-flax-vector-conversions=all" ]
--      } else if (cros_sdk_version == "") {
--        cflags += [ "-flax-vector-conversions=all" ]
--      }
--    }
 -  }
 -
    # C11/C++11 compiler flags setup.
    # ---------------------------
    if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-@@ -1467,6 +1440,12 @@ config("default_warnings") {
+@@ -1446,6 +1430,12 @@ config("default_warnings") {
          cflags_cc += [ "-Wno-class-memaccess" ]
        }
  
@@ -65,7 +54,7 @@ index 1455a9f..cf19679 100644
        # -Wunused-local-typedefs is broken in gcc,
        # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
        cflags += [ "-Wno-unused-local-typedefs" ]
-@@ -1592,7 +1571,7 @@ config("chromium_code") {
+@@ -1560,7 +1550,7 @@ config("chromium_code") {
        defines = [ "_HAS_NODISCARD" ]
      }
    } else {
@@ -74,7 +63,7 @@ index 1455a9f..cf19679 100644
      if (treat_warnings_as_errors) {
        cflags += [ "-Werror" ]
  
-@@ -1601,10 +1580,6 @@ config("chromium_code") {
+@@ -1569,10 +1559,6 @@ config("chromium_code") {
        # well.
        ldflags = [ "-Werror" ]
      }
@@ -85,7 +74,7 @@ index 1455a9f..cf19679 100644
  
      # In Chromium code, we define __STDC_foo_MACROS in order to get the
      # C99 macros on Mac and Linux.
-@@ -1613,15 +1588,6 @@ config("chromium_code") {
+@@ -1581,15 +1567,6 @@ config("chromium_code") {
        "__STDC_FORMAT_MACROS",
      ]
  
@@ -101,7 +90,7 @@ index 1455a9f..cf19679 100644
      if (is_mac) {
        cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
        cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -2025,7 +1991,8 @@ config("default_stack_frames") {
+@@ -1993,7 +1970,8 @@ config("default_stack_frames") {
  }
  
  # Default "optimization on" config.
@@ -111,7 +100,7 @@ index 1455a9f..cf19679 100644
    if (is_win) {
      # TODO(thakis): Remove is_clang here, https://crbug.com/598772
      if (is_official_build && full_wpo_on_official && !is_clang) {
-@@ -2051,7 +2018,8 @@ config("optimize") {
+@@ -2019,7 +1997,8 @@ config("optimize") {
  }
  
  # Same config as 'optimize' but without the WPO flag.
@@ -121,7 +110,7 @@ index 1455a9f..cf19679 100644
    if (is_win) {
      # Favor size over speed, /O1 must be before the common flags. The GYP
      # build also specifies /Os and /GF but these are implied by /O1.
-@@ -2074,7 +2042,8 @@ config("optimize_no_wpo") {
+@@ -2042,7 +2021,8 @@ config("optimize_no_wpo") {
  }
  
  # Turn off optimizations.
@@ -131,7 +120,7 @@ index 1455a9f..cf19679 100644
    if (is_win) {
      cflags = [
        "/Od",  # Disable optimization.
-@@ -2108,7 +2077,8 @@ config("no_optimize") {
+@@ -2076,7 +2056,8 @@ config("no_optimize") {
  # Turns up the optimization level. On Windows, this implies whole program
  # optimization and link-time code generation which is very expensive and should
  # be used sparingly.
@@ -141,7 +130,7 @@ index 1455a9f..cf19679 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2147,7 +2117,8 @@ config("optimize_max") {
+@@ -2115,7 +2096,8 @@ config("optimize_max") {
  #
  # TODO(crbug.com/621335) - rework how all of these configs are related
  # so that we don't need this disclaimer.
@@ -151,7 +140,7 @@ index 1455a9f..cf19679 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2177,7 +2148,8 @@ config("optimize_speed") {
+@@ -2145,7 +2127,8 @@ config("optimize_speed") {
    }
  }
  
@@ -161,7 +150,7 @@ index 1455a9f..cf19679 100644
    cflags = [ "-O1" ] + common_optimize_on_cflags
    ldflags = common_optimize_on_ldflags
    visibility = [ ":default_optimization" ]
-@@ -2293,7 +2265,8 @@ config("win_pdbaltpath") {
+@@ -2261,7 +2244,8 @@ config("win_pdbaltpath") {
  }
  
  # Full symbols.
@@ -171,7 +160,7 @@ index 1455a9f..cf19679 100644
    if (is_win) {
      if (use_goma || is_clang) {
        # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
-@@ -2403,7 +2376,8 @@ config("symbols") {
+@@ -2371,7 +2355,8 @@ config("symbols") {
  # Minimal symbols.
  # This config guarantees to hold symbol for stack trace which are shown to user
  # when crash happens in unittests running on buildbot.
@@ -181,7 +170,7 @@ index 1455a9f..cf19679 100644
    if (is_win) {
      # Functions, files, and line tables only.
      cflags = []
-@@ -2458,7 +2432,8 @@ config("minimal_symbols") {
+@@ -2426,7 +2411,8 @@ config("minimal_symbols") {
  }
  
  # No symbols.


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-02-06 20:24 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-02-06 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     0fa03d97f8516e35e00f7a1bbfb78580cb35dbed
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Feb  6 12:33:20 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Feb  6 20:23:52 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0fa03d97

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/708322
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/14580

 www-client/chromium/Manifest                       |   1 -
 www-client/chromium/chromium-79.0.3945.130.ebuild  | 736 ---------------------
 .../chromium-79-gcc-ambiguous-nodestructor.patch   |  39 --
 .../files/chromium-79-gcc-name-clash.patch         | 135 ----
 .../files/chromium-79-gcc-permissive.patch         |  79 ---
 www-client/chromium/files/chromium-79-icu-65.patch |  13 -
 .../chromium/files/chromium-79-include.patch       | 131 ----
 .../chromium/files/chromium-79-system-hb.patch     |  19 -
 8 files changed, 1153 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 840c9362824..23022952130 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,2 @@
-DIST chromium-79.0.3945.130.tar.xz 778319112 BLAKE2B ac6d7c08c34afc4de8383964f76a5eabc9209de185535a27eff2d6934a77d01fd6b07d5c5afb16e9dd936b2650da76d460e8a485ab16f8300144c7de9b3be2bb SHA512 4b5d4769b068f20b8028085a148cbaf31311eeffad0a22c5c0909af273a8e57e077b33cc93331bbeff9165477262eed2e345b2224ac4f76d8bdb79f983596a81
 DIST chromium-80.0.3987.87.tar.xz 801310184 BLAKE2B d051f77b0e6f167632e383e23983531ee1f44f1fce1629f482cf42882c294816bd98c51ad043b5258aa9652a8da14edf278f70fc63f6978c9dfececa547a1fca SHA512 69aebd760d9b8f2c5f4d15a3a144cd4292ffb11b1536af3596f907e730ac64e909d739bb6e9d322a8f56fac75e4f0b2b5c4c36c4fe4bb52147276b5b0dd03620
 DIST chromium-81.0.4040.5.tar.xz 828003840 BLAKE2B 81b3d4b15d5cdc99bcb19ab3745e49b402f00d68a557f58fa3ae0e6b584c28473dba5ca8622373721e54c64760adbf7cb9daae93c1b29336e7f9fc3a387b199f SHA512 47928d6fc022dc0d8b51562c8079baf25aad098f93c52dd4d07d70fa6d9c4b56b4920e163ff3b44d328e741184d5af327394fa56aa36c54509406f2d67e525ed

diff --git a/www-client/chromium/chromium-79.0.3945.130.ebuild b/www-client/chromium/chromium-79.0.3945.130.ebuild
deleted file mode 100644
index 76a0f4f0682..00000000000
--- a/www-client/chromium/chromium-79.0.3945.130.ebuild
+++ /dev/null
@@ -1,736 +0,0 @@
-# Copyright 2009-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-65:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	!<www-plugins/chrome-binary-plugins-57
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-util/gn
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	closure-compile? ( virtual/jre )
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r10.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
-	"${FILESDIR}/chromium-77-system-icu.patch"
-	"${FILESDIR}/chromium-78-protobuf-export.patch"
-	"${FILESDIR}/chromium-79-system-hb.patch"
-	"${FILESDIR}/chromium-79-include.patch"
-	"${FILESDIR}/chromium-79-icu-65.patch"
-	"${FILESDIR}/chromium-79-gcc-ambiguous-nodestructor.patch"
-	"${FILESDIR}/chromium-79-gcc-name-clash.patch"
-	"${FILESDIR}/chromium-79-gcc-permissive.patch"
-	"${FILESDIR}/chromium-79-gcc-alignas.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/boringssl/src/third_party/sike
-		third_party/boringssl/linux-aarch64/crypto/third_party/sike
-		third_party/boringssl/linux-x86_64/crypto/third_party/sike
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/flot
-		third_party/freetype
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/gif
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/marl
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	# Explicitly disable ICU data file support for system-icu builds.
-	if use system-icu; then
-		myconf_gn+=" icu_use_data_file=false"
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser \
-		"Chromium" \
-		chromium-browser \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-79-gcc-ambiguous-nodestructor.patch b/www-client/chromium/files/chromium-79-gcc-ambiguous-nodestructor.patch
deleted file mode 100644
index d43a091b971..00000000000
--- a/www-client/chromium/files/chromium-79-gcc-ambiguous-nodestructor.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From af77dc4014ead3d898fdc8a7a70fe5063ac9b102 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 25 Oct 2019 19:01:29 +0000
-Subject: [PATCH] GCC: use brace-initializer for DohUpgrade vector
-
-Constructing NoDestructor with parenthesis constructor is ambiguous
-in GCC. Use brace-initializer to avoid that problem. This fixes this
-build error:
-
-Bug: 819294
-Change-Id: I00dda42daa1794d11e022f26ac07f92e599d106d
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879910
-Reviewed-by: Eric Orth <ericorth@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#709569}
----
-
-diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
-index 14997c4..637b6f2 100644
---- a/net/dns/dns_util.cc
-+++ b/net/dns/dns_util.cc
-@@ -144,7 +144,7 @@
-   // DohProviderId histogram suffix list in
-   // tools/metrics/histograms/histograms.xml.
-   static const base::NoDestructor<std::vector<DohUpgradeEntry>>
--      upgradable_servers({
-+      upgradable_servers{{
-           DohUpgradeEntry(
-               "CleanBrowsingAdult",
-               {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
-@@ -215,7 +215,7 @@
-               {"9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9"},
-               {"dns.quad9.net", "dns9.quad9.net"} /* DoT hostname */,
-               {"https://dns.quad9.net/dns-query", true /* use_post */}),
--      });
-+      }};
-   return *upgradable_servers;
- }
- 

diff --git a/www-client/chromium/files/chromium-79-gcc-name-clash.patch b/www-client/chromium/files/chromium-79-gcc-name-clash.patch
deleted file mode 100644
index 2324f4db7f9..00000000000
--- a/www-client/chromium/files/chromium-79-gcc-name-clash.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From e925deab264e5ebc3c5c13415aa3d44a746e8d45 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 25 Oct 2019 14:53:51 +0000
-Subject: [PATCH] GCC: avoid clash of WebThemeEngine::ForcedColors with ForcedColors enum class
-
-GCC fails to build because the declaration of the enum class ForcedColors
-clashes with the GetForcedColors method.
-
-Bug: 819294
-Change-Id: I5c7647978d15c771f5372a8c70ac6aeb2284fb2f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879452
-Reviewed-by: Kentaro Hara <haraken@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#709469}
-
-(backported to M79)
----
-
-diff --git a/content/child/webthemeengine_impl_android.cc b/content/child/webthemeengine_impl_android.cc
-index 2e703d6..3759f6c 100644
---- a/content/child/webthemeengine_impl_android.cc
-+++ b/content/child/webthemeengine_impl_android.cc
-@@ -228,7 +228,7 @@ void WebThemeEngineAndroid::Paint(
-       native_theme_extra_params, NativeColorScheme(color_scheme));
- }
- 
--blink::ForcedColors WebThemeEngineAndroid::ForcedColors() const {
-+blink::ForcedColors WebThemeEngineAndroid::GetForcedColors() const {
-   return forced_colors_;
- }
- 
-diff --git a/content/child/webthemeengine_impl_android.h b/content/child/webthemeengine_impl_android.h
-index 0c113a88..95e2744 100644
---- a/content/child/webthemeengine_impl_android.h
-+++ b/content/child/webthemeengine_impl_android.h
-@@ -22,7 +22,7 @@
-              const blink::WebRect& rect,
-              const blink::WebThemeEngine::ExtraParams* extra_params,
-              blink::WebColorScheme color_scheme) override;
--  blink::ForcedColors ForcedColors() const override;
-+  blink::ForcedColors GetForcedColors() const override;
-   void SetForcedColors(const blink::ForcedColors forced_colors) override;
-   blink::PreferredColorScheme PreferredColorScheme() const override;
-   void SetPreferredColorScheme(
-diff --git a/content/child/webthemeengine_impl_default.cc b/content/child/webthemeengine_impl_default.cc
-index 84db298..04af6c6 100644
---- a/content/child/webthemeengine_impl_default.cc
-+++ b/content/child/webthemeengine_impl_default.cc
-@@ -232,7 +232,7 @@
- }
- #endif
- 
--blink::ForcedColors WebThemeEngineDefault::ForcedColors() const {
-+blink::ForcedColors WebThemeEngineDefault::GetForcedColors() const {
-   return ui::NativeTheme::GetInstanceForWeb()->UsesHighContrastColors()
-              ? blink::ForcedColors::kActive
-              : blink::ForcedColors::kNone;
-diff --git a/content/child/webthemeengine_impl_default.h b/content/child/webthemeengine_impl_default.h
-index 73579db..1f08f67 100644
---- a/content/child/webthemeengine_impl_default.h
-+++ b/content/child/webthemeengine_impl_default.h
-@@ -39,7 +39,7 @@
-                                     int32_t vertical_arrow_bitmap_height,
-                                     int32_t horizontal_arrow_bitmap_width);
- #endif
--  blink::ForcedColors ForcedColors() const override;
-+  blink::ForcedColors GetForcedColors() const override;
-   void SetForcedColors(const blink::ForcedColors forced_colors) override;
-   blink::PreferredColorScheme PreferredColorScheme() const override;
-   void SetPreferredColorScheme(
-diff --git a/content/child/webthemeengine_impl_mac.cc b/content/child/webthemeengine_impl_mac.cc
-index 9cb279e..553eedb 100644
---- a/content/child/webthemeengine_impl_mac.cc
-+++ b/content/child/webthemeengine_impl_mac.cc
-@@ -6,7 +6,7 @@
- 
- namespace content {
- 
--blink::ForcedColors WebThemeEngineMac::ForcedColors() const {
-+blink::ForcedColors WebThemeEngineMac::GetForcedColors() const {
-   return forced_colors_;
- }
- 
-diff --git a/content/child/webthemeengine_impl_mac.h b/content/child/webthemeengine_impl_mac.h
-index b3dafa1..c0b66c0 100644
---- a/content/child/webthemeengine_impl_mac.h
-+++ b/content/child/webthemeengine_impl_mac.h
-@@ -13,7 +13,7 @@
-  public:
-   ~WebThemeEngineMac() override {}
- 
--  blink::ForcedColors ForcedColors() const override;
-+  blink::ForcedColors GetForcedColors() const override;
-   void SetForcedColors(const blink::ForcedColors forced_colors) override;
-   blink::PreferredColorScheme PreferredColorScheme() const override;
-   void SetPreferredColorScheme(
-diff --git a/third_party/blink/public/platform/web_theme_engine.h b/third_party/blink/public/platform/web_theme_engine.h
-index d642462..aa2da1b 100644
---- a/third_party/blink/public/platform/web_theme_engine.h
-+++ b/third_party/blink/public/platform/web_theme_engine.h
-@@ -227,7 +227,7 @@
-     return base::nullopt;
-   }
- 
--  virtual ForcedColors ForcedColors() const { return ForcedColors::kNone; }
-+  virtual ForcedColors GetForcedColors() const { return ForcedColors::kNone; }
-   virtual void SetForcedColors(const blink::ForcedColors forced_colors) {}
-   virtual blink::PreferredColorScheme PreferredColorScheme() const {
-     return PreferredColorScheme::kNoPreference;
-diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/blink/renderer/core/css/media_values.cc
-index 045d793..f7c0484 100644
---- a/third_party/blink/renderer/core/css/media_values.cc
-+++ b/third_party/blink/renderer/core/css/media_values.cc
-@@ -221,7 +221,7 @@
- 
- ForcedColors MediaValues::CalculateForcedColors() {
-   if (Platform::Current() && Platform::Current()->ThemeEngine())
--    return Platform::Current()->ThemeEngine()->ForcedColors();
-+    return Platform::Current()->ThemeEngine()->GetForcedColors();
-   else
-     return ForcedColors::kNone;
- }
-diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
-index 64b0d23..02cce1f 100644
---- a/third_party/blink/renderer/core/dom/document.cc
-+++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -8625,7 +8625,7 @@
- bool Document::InForcedColorsMode() const {
-   return RuntimeEnabledFeatures::ForcedColorsEnabled() && Platform::Current() &&
-          Platform::Current()->ThemeEngine() &&
--         Platform::Current()->ThemeEngine()->ForcedColors() !=
-+         Platform::Current()->ThemeEngine()->GetForcedColors() !=
-              ForcedColors::kNone;
- }
- 

diff --git a/www-client/chromium/files/chromium-79-gcc-permissive.patch b/www-client/chromium/files/chromium-79-gcc-permissive.patch
deleted file mode 100644
index c42d56985a6..00000000000
--- a/www-client/chromium/files/chromium-79-gcc-permissive.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 528e9a3e1f25bd264549c4c7779748abfd16bb1c Mon Sep 17 00:00:00 2001
-From: Jan Wilken Dörrie <jdoerrie@chromium.org>
-Date: Fri, 18 Oct 2019 11:45:24 +0000
-Subject: [PATCH] Reland "GCC: Fix base::internal::InvokeFuncImpl"
-
-This is a reland of 9293d5c86eec1c34fc00716645400b44a14e764e
-
-Original change's description:
-> GCC: Fix base::internal::InvokeFuncImpl
-> 
-> GCC doesn't like that the Value data member has no out-of-line
-> definition. The problem is triggered specifically only when compiling
-> 
->   components/services/leveldb/leveldb_database_impl.cc
-> 
-> which has lambda functions returning locally-defined classes.
-> 
-> The current code works as-is in C++17 mode which introduces the concept
-> of inline variables, but in C++14 we need either an explicit out-of-line
-> definition or a function member instead of a data member.
-> 
-> Use std::integral_constant for defining the value.
-> 
-> Bug: 819294
-> Change-Id: I5c68e14ce3fa9d8b4d8a2cb42d7f9b53938aabf3
-> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862451
-> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
-> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
-> Commit-Queue: Jüri Valdmann <juri.valdmann@qt.io>
-> Cr-Commit-Position: refs/heads/master@{#706384}
-
-Bug: 819294
-Change-Id: I3d5a52ddc6815516e2239f9347c60de06bf765a2
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1865212
-Reviewed-by: Daniel Cheng <dcheng@chromium.org>
-Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#707329}
----
-
-diff --git a/base/bind.h b/base/bind.h
-index 7a400af..1070ce6 100644
---- a/base/bind.h
-+++ b/base/bind.h
-@@ -187,18 +187,15 @@
- // well-formed. Using `Invoker::Run` with a OnceCallback triggers a
- // static_assert, which is why the ternary expression does not compile.
- // TODO(crbug.com/752720): Remove this indirection once we have `if constexpr`.
--template <bool is_once, typename Invoker>
--struct InvokeFuncImpl;
-+template <typename Invoker>
-+constexpr auto GetInvokeFunc(std::true_type) {
-+  return Invoker::RunOnce;
-+}
- 
- template <typename Invoker>
--struct InvokeFuncImpl<true, Invoker> {
--  static constexpr auto Value = &Invoker::RunOnce;
--};
--
--template <typename Invoker>
--struct InvokeFuncImpl<false, Invoker> {
--  static constexpr auto Value = &Invoker::Run;
--};
-+constexpr auto GetInvokeFunc(std::false_type) {
-+  return Invoker::Run;
-+}
- 
- template <template <typename> class CallbackT,
-           typename Functor,
-@@ -229,7 +226,8 @@
-   // InvokeFuncStorage, so that we can ensure its type matches to
-   // PolymorphicInvoke, to which CallbackType will cast back.
-   using PolymorphicInvoke = typename CallbackType::PolymorphicInvoke;
--  PolymorphicInvoke invoke_func = InvokeFuncImpl<kIsOnce, Invoker>::Value;
-+  PolymorphicInvoke invoke_func =
-+      GetInvokeFunc<Invoker>(std::integral_constant<bool, kIsOnce>());
- 
-   using InvokeFuncStorage = internal::BindStateBase::InvokeFuncStorage;
-   return CallbackType(BindState::Create(

diff --git a/www-client/chromium/files/chromium-79-icu-65.patch b/www-client/chromium/files/chromium-79-icu-65.patch
deleted file mode 100644
index e0732b6ace2..00000000000
--- a/www-client/chromium/files/chromium-79-icu-65.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
-index 5a62770..1fae2aa 100644
---- a/third_party/blink/renderer/core/dom/document.cc
-+++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -6192,7 +6192,7 @@ static ParseQualifiedNameResult ParseQualifiedNameInternal(
- 
-   for (unsigned i = 0; i < length;) {
-     UChar32 c;
--    U16_NEXT(characters, i, length, c)
-+    U16_NEXT(characters, i, length, c);
-     if (c == ':') {
-       if (saw_colon)
-         return ParseQualifiedNameResult(kQNMultipleColons);

diff --git a/www-client/chromium/files/chromium-79-include.patch b/www-client/chromium/files/chromium-79-include.patch
deleted file mode 100644
index 8f2fb56176a..00000000000
--- a/www-client/chromium/files/chromium-79-include.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From f7c177d35242311ea7a2cf49a0980c61664f27ba Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 25 Oct 2019 15:07:09 +0000
-Subject: [PATCH] IWYU: include algorithm to use std::lower_bound in ui/gfx/font.cc
-
-Fix GCC build because of missing include:
-../../ui/gfx/font.cc: In function ‘gfx::Font::Weight gfx::FontWeightFromInt(int)’:
-../../ui/gfx/font.cc:114:8: error: no matching function for call to ‘lower_bound(const gfx::Font::Weight*, const gfx::Font::Weight*, int&, gfx::FontWeightFromInt(int)::<lambda(const gfx::Font::Weight&, const int&)>)’
-       });
-        ^
-In file included from /usr/include/c++/8/bits/char_traits.h:39,
-                 from /usr/include/c++/8/string:40,
-                 from ../../ui/gfx/font.h:8,
-                 from ../../ui/gfx/font.cc:5:
-/usr/include/c++/8/bits/stl_algobase.h:984:5: note: candidate: ‘template<class _ForwardIterator, class _Tp> _ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&)’
-     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
-     ^~~~~~~~~~~
-/usr/include/c++/8/bits/stl_algobase.h:984:5: note:   template argument deduction/substitution failed:
-../../ui/gfx/font.cc:114:8: note:   candidate expects 3 arguments, 4 provided
-       });
-        ^
-
-Bug: 819294
-Change-Id: Ic59dcf3a06bdd54d1d426c08a61624873a0ff30c
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879909
-Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
-Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#709472}
----
-
-diff --git a/ui/gfx/font.cc b/ui/gfx/font.cc
-index 21367fd7..92b159e 100644
---- a/ui/gfx/font.cc
-+++ b/ui/gfx/font.cc
-@@ -4,6 +4,8 @@
- 
- #include "ui/gfx/font.h"
- 
-+#include <algorithm>
-+
- #include "base/strings/utf_string_conversions.h"
- #include "build/build_config.h"
- #include "ui/gfx/platform_font.h"
-
-From 97eb905ba262382bc3583078761c68f4452aea71 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 25 Oct 2019 09:27:53 +0000
-Subject: [PATCH] IWYU: launch_manager.h uses std::vector
-
-Add #include <vector> for using std::vector. This fixes GCC build.
-
-./../chrome/browser/apps/launch_service/launch_manager.h:46:15: error: ‘vector’ in namespace ‘std’ does not name a template type
-   static std::vector<base::FilePath> GetLaunchFilesFromCommandLine(
-               ^~~~~~
-
-Bug: 819294
-Change-Id: I02ec3a2914a8fbe3aa0041017a0228f4b0ca1ec9
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879289
-Reviewed-by: Alexey Baskakov <loyso@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#709411}
----
-
-diff --git a/chrome/browser/apps/launch_service/launch_manager.h b/chrome/browser/apps/launch_service/launch_manager.h
-index 00aeb9d..76570ea 100644
---- a/chrome/browser/apps/launch_service/launch_manager.h
-+++ b/chrome/browser/apps/launch_service/launch_manager.h
-@@ -6,6 +6,7 @@
- #define CHROME_BROWSER_APPS_LAUNCH_SERVICE_LAUNCH_MANAGER_H_
- 
- #include <string>
-+#include <vector>
- 
- #include "base/macros.h"
- 
-From e7407ce7fa262e9fd1a19dd0957e5a950520ee3a Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 25 Oct 2019 08:25:45 +0000
-Subject: [PATCH] IWYU: include cstdint in register_context.h as it uses uintptr_t
-
-GCC build fix as build fails with this:
-../../base/profiler/register_context.h:31:1: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
- uintptr_t& AsUintPtr(T* value) {
- ^~~~~~~~~
- intptr_t
-../../base/profiler/register_context.h:110:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
-   uintptr_t stack_pointer;
-   ^~~~~~~~~
-   intptr_t
-../../base/profiler/register_context.h:111:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
-   uintptr_t frame_pointer;
-   ^~~~~~~~~
-   intptr_t
-../../base/profiler/register_context.h:112:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
-   uintptr_t instruction_pointer;
-   ^~~~~~~~~
-   intptr_t
-../../base/profiler/register_context.h:115:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
- inline uintptr_t& RegisterContextStackPointer(RegisterContext* context) {
-        ^~~~~~~~~
-        intptr_t
-../../base/profiler/register_context.h:119:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
- inline uintptr_t& RegisterContextFramePointer(RegisterContext* context) {
-        ^~~~~~~~~
-        intptr_t
-../../base/profiler/register_context.h:123:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
- inline uintptr_t& RegisterContextInstructionPointer(RegisterContext* context) {
-        ^~~~~~~~~
-        intptr_t
-
-
-Bug: 819294
-Change-Id: I49567b00a6f021686c52053a22fb9c502c84f1bc
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879908
-Reviewed-by: Mike Wittman <wittman@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#709398}
----
-
-diff --git a/base/profiler/register_context.h b/base/profiler/register_context.h
-index 46c4250..7dd86ff 100644
---- a/base/profiler/register_context.h
-+++ b/base/profiler/register_context.h
-@@ -9,6 +9,7 @@
- #ifndef BASE_PROFILER_REGISTER_CONTEXT_H_
- #define BASE_PROFILER_REGISTER_CONTEXT_H_
- 
-+#include <cstdint>
- #include <type_traits>
- 
- #include "build/build_config.h"

diff --git a/www-client/chromium/files/chromium-79-system-hb.patch b/www-client/chromium/files/chromium-79-system-hb.patch
deleted file mode 100644
index 83e0621777f..00000000000
--- a/www-client/chromium/files/chromium-79-system-hb.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index a218d63..6a5bdae 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -10,11 +10,12 @@
- #include "base/bind.h"
- #include "base/callback.h"
- #include "base/macros.h"
--#include "third_party/harfbuzz-ng/src/src/hb-subset.h"
--#include "third_party/harfbuzz-ng/src/src/hb.h"
- #include "third_party/skia/include/core/SkStream.h"
- #include "third_party/skia/include/core/SkTypeface.h"
- 
-+#include <hb-subset.h>
-+#include <hb.h>
-+
- namespace paint_preview {
- 
- namespace {


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2020-01-20 17:04 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2020-01-20 17:04 UTC (permalink / raw
  To: gentoo-commits

commit:     1eb18f7be47bdda6cd3957d7b737dd2b29916f97
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Jan 19 18:00:32 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Jan 20 17:04:01 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1eb18f7b

www-client/chromium: dev channel bump to 81.0.4029.3

Package-Manager: Portage-2.3.79, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-81.0.4029.3.ebuild    | 747 +++++++++++++++++++++
 www-client/chromium/files/chromium-81-clang.patch  |  13 +
 .../chromium/files/chromium-81-gcc-dav1d.patch     |  12 +
 .../chromium/files/chromium-81-gcc-noexcept.patch  |  13 +
 .../chromium/files/chromium-81-gcc-template.patch  |  32 +
 .../chromium/files/chromium-compiler-r11.patch     | 192 ++++++
 7 files changed, 1010 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index fc759412bc3..e15704d4c46 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,3 @@
 DIST chromium-79.0.3945.130.tar.xz 778319112 BLAKE2B ac6d7c08c34afc4de8383964f76a5eabc9209de185535a27eff2d6934a77d01fd6b07d5c5afb16e9dd936b2650da76d460e8a485ab16f8300144c7de9b3be2bb SHA512 4b5d4769b068f20b8028085a148cbaf31311eeffad0a22c5c0909af273a8e57e077b33cc93331bbeff9165477262eed2e345b2224ac4f76d8bdb79f983596a81
 DIST chromium-80.0.3987.53.tar.xz 798716580 BLAKE2B 922023deb0662b50b09db0261a56cfe124e8d15f5ae3e87bb0ac27206821f1a1c7fc223402d5ac8744fb88b00ff677aef21c9b09240d9f9ba4812d7f74d20ec2 SHA512 585501363c1e46d710a3ced89a91ae94e6e876a5cde9db3d0cc83a887f174f61a05d489274a62a832c30862ef5121e2838fc90b69d8ad17895afad94147d2b3f
+DIST chromium-81.0.4029.3.tar.xz 884456176 BLAKE2B 56a409e024cafb96db807080aeed0a3a7f21cade7ab797e3dba7ca0628c17997630955b84fe3eb90089738c167ac88398f8d0d24871f7c16ca4382ac141f3a3d SHA512 0b64c45e6c5febcb142a1fe89f94c352db8b57459937511f7e0d010105d94223ba3cb07d5f16fe1cc0534cbdf28bd6badcd8404da65a6d78d3bcc5131ecd9bc5

diff --git a/www-client/chromium/chromium-81.0.4029.3.ebuild b/www-client/chromium/chromium-81.0.4029.3.ebuild
new file mode 100644
index 00000000000..cc849adeafa
--- /dev/null
+++ b/www-client/chromium/chromium-81.0.4029.3.ebuild
@@ -0,0 +1,747 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-65:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2019.08.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12-r0
+		>=media-libs/opus-1.3.1:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-util/gn
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	closure-compile? ( virtual/jre )
+	virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r11.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
+	"${FILESDIR}/chromium-78-protobuf-export.patch"
+	"${FILESDIR}/chromium-79-gcc-alignas.patch"
+	"${FILESDIR}/chromium-80-unbundle-libxml.patch"
+	"${FILESDIR}/chromium-80-gcc-quiche.patch"
+	"${FILESDIR}/chromium-80-gcc-blink.patch"
+	"${FILESDIR}/chromium-80-gcc-abstract.patch"
+	"${FILESDIR}/chromium-81-gcc-dav1d.patch"
+	"${FILESDIR}/chromium-81-gcc-template.patch"
+	"${FILESDIR}/chromium-81-gcc-noexcept.patch"
+	"${FILESDIR}/chromium-81-clang.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+			die "At least gcc 8.0 is required"
+		fi
+		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+			die "Component build with tcmalloc requires FEATURES=-usersandbox."
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			if use component-build; then
+				die "Component build with clang requires fuzzer headers."
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/src/third_party/volk
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/front_end/third_party/fabricjs
+		third_party/devtools-frontend/src/front_end/third_party/wasmparser
+		third_party/devtools-frontend/src/third_party
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/freetype
+		third_party/libgifcodec
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-7.0
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/fft4g
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/wuffs
+		third_party/zlib/google
+		tools/grit/third_party/six
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-81-clang.patch b/www-client/chromium/files/chromium-81-clang.patch
new file mode 100644
index 00000000000..8f69b34a0ed
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-clang.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc b/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
+index 659efac..38f6ebc 100644
+--- a/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
++++ b/chrome/browser/enterprise_reporting/notification/extension_request_notification.cc
+@@ -46,7 +46,7 @@ constexpr int kNotificationBodies[] = {
+ 
+ }  // namespace
+ 
+-ExtensionRequestNotification::ExtensionRequestNotification() = default;
++ExtensionRequestNotification::ExtensionRequestNotification() {}
+ 
+ ExtensionRequestNotification::ExtensionRequestNotification(
+     Profile* profile,

diff --git a/www-client/chromium/files/chromium-81-gcc-dav1d.patch b/www-client/chromium/files/chromium-81-gcc-dav1d.patch
new file mode 100644
index 00000000000..00586fd929c
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-dav1d.patch
@@ -0,0 +1,12 @@
+diff --git a/third_party/dav1d/BUILD.gn b/third_party/dav1d/BUILD.gn
+index 63f12f8..f8f0b40 100644
+--- a/third_party/dav1d/BUILD.gn
++++ b/third_party/dav1d/BUILD.gn
+@@ -99,6 +99,7 @@ config("dav1d_config") {
+ dav1d_copts = [
+   "-D_FILE_OFFSET_BITS=64",
+   "-D_POSIX_C_SOURCE=200112L",
++  "-D_GNU_SOURCE",
+ ]
+ 
+ if (is_win) {

diff --git a/www-client/chromium/files/chromium-81-gcc-noexcept.patch b/www-client/chromium/files/chromium-81-gcc-noexcept.patch
new file mode 100644
index 00000000000..90ecb225709
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-noexcept.patch
@@ -0,0 +1,13 @@
+diff --git a/components/paint_preview/browser/paint_preview_client.cc b/components/paint_preview/browser/paint_preview_client.cc
+index fc3b5a4..8689acf 100644
+--- a/components/paint_preview/browser/paint_preview_client.cc
++++ b/components/paint_preview/browser/paint_preview_client.cc
+@@ -79,7 +79,7 @@ PaintPreviewClient::PaintPreviewParams::~PaintPreviewParams() = default;
+ PaintPreviewClient::PaintPreviewData::PaintPreviewData() = default;
+ PaintPreviewClient::PaintPreviewData::~PaintPreviewData() = default;
+ PaintPreviewClient::PaintPreviewData& PaintPreviewClient::PaintPreviewData::
+-operator=(PaintPreviewData&& rhs) noexcept = default;
++operator=(PaintPreviewData&& rhs) = default;
+ PaintPreviewClient::PaintPreviewData::PaintPreviewData(
+     PaintPreviewData&& other) noexcept = default;
+ 

diff --git a/www-client/chromium/files/chromium-81-gcc-template.patch b/www-client/chromium/files/chromium-81-gcc-template.patch
new file mode 100644
index 00000000000..8553d5f603b
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-gcc-template.patch
@@ -0,0 +1,32 @@
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set.h b/third_party/blink/renderer/platform/wtf/list_hash_set.h
+index 7856b7b..76534f6 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set.h
+@@ -308,21 +308,16 @@ class ListHashSetNodeBasePointer {
+   NodeType& operator*() const { return *Get(); }
+ 
+  private:
+-  template <bool = Allocator::kIsGarbageCollected>
+   void SetSafe(NodeType* node) {
+-    AsAtomicPtr(&node_)->store(node, std::memory_order_relaxed);
+-  }
+-  template <>
+-  void SetSafe<false>(NodeType* node) {
+-    node_ = node;
++    if ( Allocator::kIsGarbageCollected )
++      AsAtomicPtr(&node_)->store(node, std::memory_order_relaxed);
++    else
++      node_ = node;
+   }
+ 
+-  template <bool = Allocator::kIsGarbageCollected>
+   NodeType* GetSafe() const {
+-    return AsAtomicPtr(&node_)->load(std::memory_order_relaxed);
+-  }
+-  template <>
+-  NodeType* GetSafe<false>() const {
++    if ( Allocator::kIsGarbageCollected )
++      return AsAtomicPtr(&node_)->load(std::memory_order_relaxed);
+     return node_;
+   }
+ 

diff --git a/www-client/chromium/files/chromium-compiler-r11.patch b/www-client/chromium/files/chromium-compiler-r11.patch
new file mode 100644
index 00000000000..1d99927e5de
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r11.patch
@@ -0,0 +1,192 @@
+From b29cbcb0ff75b564f83ad93273e881e242f08caf Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 16 Jun 2019 15:43:27 +0100
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 71 ++++++++++++----------------------
+ 1 file changed, 25 insertions(+), 46 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 2ac6e8e..b3e760d 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -269,8 +269,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+     ":compiler_deterministic",
+   ]
+@@ -495,27 +493,6 @@ config("compiler") {
+     }
+   }
+ 
+-  if (is_clang && !is_nacl && !use_xcode_clang) {
+-    cflags += [ "-fcrash-diagnostics-dir=" +
+-                rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+-    cflags += [
+-      # TODO(hans): Remove this once Clang generates better optimized debug info
+-      # by default. https://crbug.com/765793
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-instcombine-lower-dbg-declare=0",
+-    ]
+-
+-    if (llvm_force_head_revision) {
+-      # Before Clang 10, lax vector conversions were allowed by default.
+-      # Chromium currently relies on this behavior.
+-      # TODO(crbug.com/1042470): Fix the code and remove this flag.
+-      cflags += [ "-flax-vector-conversions=all" ]
+-    }
+-  }
+-
+   # C11/C++11 compiler flags setup.
+   # ---------------------------
+   if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1462,6 +1439,12 @@ config("default_warnings") {
+         cflags_cc += [ "-Wno-class-memaccess" ]
+       }
+ 
++      # -Wno-class-memaccess warns about hash table and vector in blink.
++      # But the violation is intentional.
++      if (!is_nacl) {
++        cflags_cc += [ "-Wno-class-memaccess" ]
++      }
++
+       # -Wunused-local-typedefs is broken in gcc,
+       # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
+       cflags += [ "-Wno-unused-local-typedefs" ]
+@@ -1587,7 +1570,7 @@ config("chromium_code") {
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1596,10 +1579,6 @@ config("chromium_code") {
+       # well.
+       ldflags = [ "-Werror" ]
+     }
+-    if (is_clang) {
+-      # Enable extra warnings for chromium_code when we control the compiler.
+-      cflags += [ "-Wextra" ]
+-    }
+ 
+     # In Chromium code, we define __STDC_foo_MACROS in order to get the
+     # C99 macros on Mac and Linux.
+@@ -1608,15 +1587,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+-        current_cpu != "s390" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64") {
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2020,7 +1990,8 @@ config("default_stack_frames") {
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+     if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -2046,7 +2017,8 @@ config("optimize") {
+ }
+ 
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+   if (is_win) {
+     # Favor size over speed, /O1 must be before the common flags. The GYP
+     # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2069,7 +2041,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2103,7 +2076,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2142,7 +2116,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2172,7 +2147,8 @@ config("optimize_speed") {
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   ldflags = common_optimize_on_ldflags
+   visibility = [ ":default_optimization" ]
+@@ -2288,7 +2264,8 @@ config("win_pdbaltpath") {
+ }
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (use_goma || is_clang) {
+       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2398,7 +2375,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Functions, files, and line tables only.
+     cflags = []
+@@ -2453,7 +2431,8 @@ config("minimal_symbols") {
+ }
+ 
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (!is_win) {
+     cflags = [ "-g0" ]
+     asmflags = cflags
+-- 
+2.24.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-12-23 16:22 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-12-23 16:22 UTC (permalink / raw
  To: gentoo-commits

commit:     8ba7a983c4c70ff8d4afe770efeebe60160baafd
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Dec 23 15:07:03 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Dec 23 16:21:56 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ba7a983

www-client/chromium: beta channel bump to 80.0.3987.16

Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +-
 ....3970.5.ebuild => chromium-80.0.3987.16.ebuild} |  11 +-
 .../chromium/files/chromium-80-gcc-abstract.patch  |  41 ++++
 .../chromium/files/chromium-80-gcc-blink.patch     |  18 ++
 .../files/chromium-80-gcc-incomplete-type.patch    | 229 +++++++++++++++++++++
 .../chromium/files/chromium-80-gcc-noexcept.patch  |  48 -----
 .../files/chromium-80-gcc-permissive.patch         |  33 +++
 .../chromium/files/chromium-80-include.patch       |  44 ++--
 8 files changed, 360 insertions(+), 66 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 5fed89d9e5e..aae1648d6c6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,2 @@
 DIST chromium-79.0.3945.88.tar.xz 778181840 BLAKE2B cf9eb0823f184f1590fc75df89bca907440f42244a519a5fd48bec9a25e16dd887c44b699acadc8a717f000c159bff843d5d0b007ca0e8d2c7eee09bb669e0ff SHA512 6474da7225beb9c99c01dc234b820924dd2fb3d736f53abbac02556f3bec43acd09aa02224666c4a735417500d10f57265ab130c29cce27124e5a69463cf5e0d
-DIST chromium-80.0.3970.5.tar.xz 789810132 BLAKE2B 400fcefeb58cb784412eca7011267c9224786036494337ecb8dbc7f3f483ec05d6e26c424ef55286cbebdbc872e1c15acfb62413264bb8843334a11bbe73ab4d SHA512 398666d81beaeef3eeb3f00a9a512b2d4c4e74bd9f01f20fab06901eadcb6fdbd345c39c54f2af57c4e485f2cd35700cde6f6a3d6301df7ee920bf067bee31d6
+DIST chromium-80.0.3987.16.tar.xz 798746524 BLAKE2B 6b57e41d7859c179b513b9bc81dff2227e0cd3420349591286f27bdbb7fb21b489137c83949d32827c874d5aaccedea5b82fabc9a5325354c7f6519ba1606074 SHA512 6d6108cabead5e67fa2fc01894a26b07c16d1061e78c52180ee20b612b2943aa40f5743d75b6048f5aa90ffb2c94a6125ef9d0f4d3cd11abe4c94a6759d48869

diff --git a/www-client/chromium/chromium-80.0.3970.5.ebuild b/www-client/chromium/chromium-80.0.3987.16.ebuild
similarity index 98%
rename from www-client/chromium/chromium-80.0.3970.5.ebuild
rename to www-client/chromium/chromium-80.0.3987.16.ebuild
index c6af893cb11..34a27c4e758 100644
--- a/www-client/chromium/chromium-80.0.3970.5.ebuild
+++ b/www-client/chromium/chromium-80.0.3987.16.ebuild
@@ -33,7 +33,7 @@ COMMON_DEPEND="
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
+	>=dev-libs/re2-0.2019.08.01:=
 	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
@@ -51,7 +51,7 @@ COMMON_DEPEND="
 			>=net-fs/samba-4.5.10-r1[-debug(-)]
 		)
 		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
+		>=media-libs/opus-1.3.1:=
 	)
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
@@ -148,9 +148,11 @@ PATCHES=(
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"
 	"${FILESDIR}/chromium-80-unbundle-libxml.patch"
 	"${FILESDIR}/chromium-80-include.patch"
-	"${FILESDIR}/chromium-80-gcc-noexcept.patch"
 	"${FILESDIR}/chromium-80-gcc-quiche.patch"
+	"${FILESDIR}/chromium-80-gcc-permissive.patch"
 	"${FILESDIR}/chromium-80-gcc-blink.patch"
+	"${FILESDIR}/chromium-80-gcc-abstract.patch"
+	"${FILESDIR}/chromium-80-gcc-incomplete-type.patch"
 )
 
 pre_build_checks() {
@@ -275,8 +277,8 @@ src_prepare() {
 		third_party/dom_distiller_js
 		third_party/emoji-segmenter
 		third_party/flatbuffers
-		third_party/flot
 		third_party/freetype
+		third_party/libgifcodec
 		third_party/glslang
 		third_party/google_input_tools
 		third_party/google_input_tools/third_party/closure_library
@@ -344,7 +346,6 @@ src_prepare() {
 		third_party/skia
 		third_party/skia/include/third_party/skcms
 		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/gif
 		third_party/skia/third_party/skcms
 		third_party/skia/third_party/vulkan
 		third_party/smhasher

diff --git a/www-client/chromium/files/chromium-80-gcc-abstract.patch b/www-client/chromium/files/chromium-80-gcc-abstract.patch
new file mode 100644
index 00000000000..190a67258e1
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-abstract.patch
@@ -0,0 +1,41 @@
+In file included from ../../third_party/blink/renderer/platform/heap/persistent.h:18,
+                 from ../../third_party/blink/public/platform/web_private_ptr.h:40,
+                 from ../../third_party/blink/public/platform/web_media_stream_track.h:33,
+                 from ../../third_party/blink/public/platform/web_media_stream_source.h:37,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:19,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
+../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h: In instantiation of 'struct WTF::CrossThreadCopierPassThrough<webrtc::VideoTrackInterface>':
+../../third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h:169:14:   required from here
+../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h:80:15: error: invalid abstract return type 'webrtc::VideoTrackInterface'
+   80 |   static Type Copy(const T& parameter) { return parameter; }
+      |               ^~~~
+In file included from ../../third_party/webrtc/api/peer_connection_interface.h:88,
+                 from ../../third_party/blink/public/platform/web_rtc_peer_connection_handler.h:39,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:20,
+                 from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5:
+../../third_party/webrtc/api/media_stream_interface.h:174:18: note:   because the following virtual functions are pure within 'webrtc::VideoTrackInterface':
+  174 | class RTC_EXPORT VideoTrackInterface
+      |                  ^~~~~~~~~~~~~~~~~~~
+../../third_party/webrtc/api/media_stream_interface.h:48:16: note:      'virtual void webrtc::NotifierInterface::RegisterObserver(webrtc::ObserverInterface*)'
+   48 |   virtual void RegisterObserver(ObserverInterface* observer) = 0;
+      |                ^~~~~~~~~~~~~~~~
+../../third_party/webrtc/api/media_stream_interface.h:49:16: note:      'virtual void webrtc::NotifierInterface::UnregisterObserver(webrtc::ObserverInterface*)'
+   49 |   virtual void UnregisterObserver(ObserverInterface* observer) = 0;
+      |                ^~~~~~~~~~~~~~~~~~
+
+diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
+index 54cb7d1..0d6c40f 100644
+--- a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
++++ b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h
+@@ -165,8 +165,9 @@ struct CrossThreadCopier<blink::MediaStreamVideoTrack>
+ };
+ 
+ template <>
+-struct CrossThreadCopier<webrtc::VideoTrackInterface>
+-    : public CrossThreadCopierPassThrough<webrtc::VideoTrackInterface> {
++struct CrossThreadCopier<rtc::scoped_refptr<webrtc::VideoTrackInterface>>
++    : public CrossThreadCopierPassThrough<
++          rtc::scoped_refptr<webrtc::VideoTrackInterface>> {
+   STATIC_ONLY(CrossThreadCopier);
+ };
+ 

diff --git a/www-client/chromium/files/chromium-80-gcc-blink.patch b/www-client/chromium/files/chromium-80-gcc-blink.patch
index fdc28f32435..2118b46f39a 100644
--- a/www-client/chromium/files/chromium-80-gcc-blink.patch
+++ b/www-client/chromium/files/chromium-80-gcc-blink.patch
@@ -1,3 +1,21 @@
+../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc: In member function 'void blink::DeleteSelectionCommand::InitializePositionData(blink::EditingState*)':
+../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:256:59: error: no matching function for call to 'EnclosingNodeOfType(blink::Position&, <unresolved overloaded function type>)'
+  256 |       EnclosingNodeOfType(start, &IsA<HTMLTableRowElement>));
+      |                                                           ^
+In file included from ../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:34:
+../../third_party/blink/renderer/core/editing/editing_utilities.h:112:19: note: candidate: 'blink::Node* blink::EnclosingNodeOfType(const Position&, bool (*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
+  112 | CORE_EXPORT Node* EnclosingNodeOfType(
+      |                   ^~~~~~~~~~~~~~~~~~~
+../../third_party/blink/renderer/core/editing/editing_utilities.h:114:12: note:   no known conversion for argument 2 from '<unresolved overloaded function type>' to 'bool (*)(const blink::Node*)'
+  114 |     bool (*node_is_of_type)(const Node*),
+      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+../../third_party/blink/renderer/core/editing/editing_utilities.h:116:19: note: candidate: 'blink::Node* blink::EnclosingNodeOfType(const PositionInFlatTree&, bool (*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
+  116 | CORE_EXPORT Node* EnclosingNodeOfType(
+      |                   ^~~~~~~~~~~~~~~~~~~
+../../third_party/blink/renderer/core/editing/editing_utilities.h:117:5: note:   no known conversion for argument 1 from 'blink::Position' {aka 'blink::PositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> >'} to 'const PositionInFlatTree&' {aka 'const blink::PositionTemplate<blink::EditingAlgorithm<blink::FlatTreeTraversal> >&'}
+  117 |     const PositionInFlatTree&,
+      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
+
 diff --git a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc b/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
 index 6ff6906..dd531ae 100644
 --- a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc

diff --git a/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch b/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch
new file mode 100644
index 00000000000..8d10620a717
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-incomplete-type.patch
@@ -0,0 +1,229 @@
+From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Mon, 16 Dec 2019 11:39:11 +0000
+Subject: [PATCH] BookmarkModelMerger: Move RemoteTreeNode declaration to header.
+
+This fixes the build with libstdc++ after commit 8f5dad93e58 ("Fix CHECK
+failure due to untracked local nodes"):
+
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/stl_pair.h:215:11: error: field has incomplete type 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
+      _T2 second;                /// @c second is a copy of the second object
+          ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/aligned_buffer.h:91:28: note: in instantiation of template class 'std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here
+    : std::aligned_storage<sizeof(_Tp), __alignof__(_Tp)>
+                           ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:233:43: note: in instantiation of template class '__gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
+      __gnu_cxx::__aligned_buffer<_Value> _M_storage;
+                                          ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:264:39: note: in instantiation of template class 'std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
+    struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value>
+                                      ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:2028:25: note: in instantiation of template class 'std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here
+        rebind_traits<typename __node_type::value_type>;
+                               ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable.h:184:15: note: in instantiation of template class 'std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true> > >
+' requested here
+      private __detail::_Hashtable_alloc<
+              ^
+/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/unordered_map.h:105:18: note: in instantiation of template class 'std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, std::allocator<std::pair<con
+st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta
+il::_Hashtable_traits<true, false, true> >' requested here
+      _Hashtable _M_h;
+                 ^
+../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of template class 'std::unordered_map<std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash<std::string>, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<con
+st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> > >' requested here
+  const RemoteForest remote_forest_;
+                     ^
+../../components/sync_bookmarks/bookmark_model_merger.h:53:9: note: forward declaration of 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
+  class RemoteTreeNode;
+        ^
+
+Essentially, the problem is that libstdc++'s std::unordered_map<T, U>
+implementation requires both T and U to be fully declared. I raised the
+problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92770, and GCC's
+position is that we are relying on undefined behavior according to the C++
+standard (https://eel.is/c++draft/requirements#res.on.functions-2.5).
+
+Bug: 957519
+Change-Id: Ife7e435e516932a795bfbe05b2c910c3272878f0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960156
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Reviewed-by: Mikel Astiz <mastiz@chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#725070}
+---
+
+diff --git a/components/sync_bookmarks/bookmark_model_merger.cc b/components/sync_bookmarks/bookmark_model_merger.cc
+index eae153ef..579848e 100644
+--- a/components/sync_bookmarks/bookmark_model_merger.cc
++++ b/components/sync_bookmarks/bookmark_model_merger.cc
+@@ -5,7 +5,6 @@
+ #include "components/sync_bookmarks/bookmark_model_merger.h"
+ 
+ #include <algorithm>
+-#include <memory>
+ #include <set>
+ #include <string>
+ #include <utility>
+@@ -205,66 +204,44 @@
+ 
+ }  // namespace
+ 
+-class BookmarkModelMerger::RemoteTreeNode final {
+- public:
+-  // Constructs a tree given |update| as root and recursively all descendants by
+-  // traversing |*updates_per_parent_id|. |update| and |updates_per_parent_id|
+-  // must not be null. All updates |*updates_per_parent_id| must represent valid
+-  // updates. Updates corresponding from descendant nodes are moved away from
+-  // |*updates_per_parent_id|.
+-  static RemoteTreeNode BuildTree(
+-      std::unique_ptr<syncer::UpdateResponseData> update,
+-      UpdatesPerParentId* updates_per_parent_id);
++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode() = default;
+ 
+-  ~RemoteTreeNode() = default;
++BookmarkModelMerger::RemoteTreeNode::~RemoteTreeNode() = default;
+ 
+-  // Allow moves, useful during construction.
+-  RemoteTreeNode(RemoteTreeNode&&) = default;
+-  RemoteTreeNode& operator=(RemoteTreeNode&&) = default;
++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode(
++    BookmarkModelMerger::RemoteTreeNode&&) = default;
++BookmarkModelMerger::RemoteTreeNode& BookmarkModelMerger::RemoteTreeNode::
++operator=(BookmarkModelMerger::RemoteTreeNode&&) = default;
+ 
+-  const syncer::EntityData& entity() const { return *update_->entity; }
+-  int64_t response_version() const { return update_->response_version; }
++void BookmarkModelMerger::RemoteTreeNode::EmplaceSelfAndDescendantsByGUID(
++    std::unordered_map<std::string, const RemoteTreeNode*>*
++        guid_to_remote_node_map) const {
++  DCHECK(guid_to_remote_node_map);
+ 
+-  // Direct children nodes, sorted by ascending unique position. These are
+-  // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
+-  const std::vector<RemoteTreeNode>& children() const { return children_; }
++  const std::string& guid = entity().specifics.bookmark().guid();
++  if (!guid.empty()) {
++    DCHECK(base::IsValidGUID(guid));
+ 
+-  // Recursively emplaces all GUIDs (this node and descendants) into
+-  // |*guid_to_remote_node_map|, which must not be null.
+-  void EmplaceSelfAndDescendantsByGUID(
+-      std::unordered_map<std::string, const RemoteTreeNode*>*
+-          guid_to_remote_node_map) const {
+-    DCHECK(guid_to_remote_node_map);
+-
+-    const std::string& guid = entity().specifics.bookmark().guid();
+-    if (!guid.empty()) {
+-      DCHECK(base::IsValidGUID(guid));
+-
+-      // Duplicate GUIDs have been sorted out before.
+-      bool success = guid_to_remote_node_map->emplace(guid, this).second;
+-      DCHECK(success);
+-    }
+-
+-    for (const RemoteTreeNode& child : children_) {
+-      child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
+-    }
++    // Duplicate GUIDs have been sorted out before.
++    bool success = guid_to_remote_node_map->emplace(guid, this).second;
++    DCHECK(success);
+   }
+ 
+- private:
+-  static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
+-                                     const RemoteTreeNode& rhs) {
+-    const syncer::UniquePosition a_pos =
+-        syncer::UniquePosition::FromProto(lhs.entity().unique_position);
+-    const syncer::UniquePosition b_pos =
+-        syncer::UniquePosition::FromProto(rhs.entity().unique_position);
+-    return a_pos.LessThan(b_pos);
++  for (const RemoteTreeNode& child : children_) {
++    child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
+   }
++}
+ 
+-  RemoteTreeNode() = default;
+-
+-  std::unique_ptr<syncer::UpdateResponseData> update_;
+-  std::vector<RemoteTreeNode> children_;
+-};
++// static
++bool BookmarkModelMerger::RemoteTreeNode::UniquePositionLessThan(
++    const RemoteTreeNode& lhs,
++    const RemoteTreeNode& rhs) {
++  const syncer::UniquePosition a_pos =
++      syncer::UniquePosition::FromProto(lhs.entity().unique_position);
++  const syncer::UniquePosition b_pos =
++      syncer::UniquePosition::FromProto(rhs.entity().unique_position);
++  return a_pos.LessThan(b_pos);
++}
+ 
+ // static
+ BookmarkModelMerger::RemoteTreeNode
+diff --git a/components/sync_bookmarks/bookmark_model_merger.h b/components/sync_bookmarks/bookmark_model_merger.h
+index 9b59200..bf0783ec 100644
+--- a/components/sync_bookmarks/bookmark_model_merger.h
++++ b/components/sync_bookmarks/bookmark_model_merger.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
+ #define COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
+ 
++#include <memory>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+@@ -50,7 +51,52 @@
+ 
+  private:
+   // Internal representation of a remote tree, composed of nodes.
+-  class RemoteTreeNode;
++  class RemoteTreeNode final {
++   private:
++    using UpdatesPerParentId =
++        std::unordered_map<base::StringPiece,
++                           syncer::UpdateResponseDataList,
++                           base::StringPieceHash>;
++
++   public:
++    // Constructs a tree given |update| as root and recursively all descendants
++    // by traversing |*updates_per_parent_id|. |update| and
++    // |updates_per_parent_id| must not be null. All updates
++    // |*updates_per_parent_id| must represent valid updates. Updates
++    // corresponding from descendant nodes are moved away from
++    // |*updates_per_parent_id|.
++    static RemoteTreeNode BuildTree(
++        std::unique_ptr<syncer::UpdateResponseData> update,
++        UpdatesPerParentId* updates_per_parent_id);
++
++    ~RemoteTreeNode();
++
++    // Allow moves, useful during construction.
++    RemoteTreeNode(RemoteTreeNode&&);
++    RemoteTreeNode& operator=(RemoteTreeNode&&);
++
++    const syncer::EntityData& entity() const { return *update_->entity; }
++    int64_t response_version() const { return update_->response_version; }
++
++    // Direct children nodes, sorted by ascending unique position. These are
++    // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
++    const std::vector<RemoteTreeNode>& children() const { return children_; }
++
++    // Recursively emplaces all GUIDs (this node and descendants) into
++    // |*guid_to_remote_node_map|, which must not be null.
++    void EmplaceSelfAndDescendantsByGUID(
++        std::unordered_map<std::string, const RemoteTreeNode*>*
++            guid_to_remote_node_map) const;
++
++   private:
++    static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
++                                       const RemoteTreeNode& rhs);
++
++    RemoteTreeNode();
++
++    std::unique_ptr<syncer::UpdateResponseData> update_;
++    std::vector<RemoteTreeNode> children_;
++  };
+ 
+   // A forest composed of multiple trees where the root of each tree represents
+   // a permanent node, keyed by server-defined unique tag of the root.

diff --git a/www-client/chromium/files/chromium-80-gcc-noexcept.patch b/www-client/chromium/files/chromium-80-gcc-noexcept.patch
deleted file mode 100644
index 93ac6c409be..00000000000
--- a/www-client/chromium/files/chromium-80-gcc-noexcept.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From a75a2539ca600163f2136776fdc751111e887cd7 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Tue, 05 Nov 2019 17:57:52 +0100
-Subject: [PATCH] GCC: do not set noexcept on move assignment operator of ColorSet
-
-GCC build is broken because ColorSet default move assign operator is
-noexcept (because the color flat_map is not noexcept). It does not
-break clang because clang does not warn about this situation when
-building with -fno-exception.
-
-../../ui/color/color_set.cc:14:11: error: function ‘ui::ColorSet& ui::ColorSet::operator=(ui::ColorSet&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
- ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
-
-Bug: 819294
-Change-Id: I00f4374fbf3d41dced9f9451c90478db528cb986
----
-
-diff --git a/ui/color/color_set.cc b/ui/color/color_set.cc
-index 56564d7..0d43b2b 100644
---- a/ui/color/color_set.cc
-+++ b/ui/color/color_set.cc
-@@ -9,9 +9,9 @@
- ColorSet::ColorSet(ColorSetId id, ColorMap&& colors)
-     : id(id), colors(std::move(colors)) {}
- 
--ColorSet::ColorSet(ColorSet&&) noexcept = default;
-+ColorSet::ColorSet(ColorSet&&) = default;
- 
--ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
-+ColorSet& ColorSet::operator=(ColorSet&&) = default;
- 
- ColorSet::~ColorSet() = default;
- 
-diff --git a/ui/color/color_set.h b/ui/color/color_set.h
-index b273c48..3eaea42 100644
---- a/ui/color/color_set.h
-+++ b/ui/color/color_set.h
-@@ -28,8 +28,8 @@
-   using ColorMap = base::flat_map<ColorId, SkColor>;
- 
-   ColorSet(ColorSetId id, ColorMap&& colors);
--  ColorSet(ColorSet&&) noexcept;
--  ColorSet& operator=(ColorSet&&) noexcept;
-+  ColorSet(ColorSet&&);
-+  ColorSet& operator=(ColorSet&&);
-   ~ColorSet();
- 
-   ColorSetId id;

diff --git a/www-client/chromium/files/chromium-80-gcc-permissive.patch b/www-client/chromium/files/chromium-80-gcc-permissive.patch
new file mode 100644
index 00000000000..c7aef49add1
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-permissive.patch
@@ -0,0 +1,33 @@
+In file included from ../../media/base/media_log_properties.h:13,
+                 from ../../media/base/media_log.h:23,
+                 from ../../media/filters/frame_processor.h:15,
+                 from ../../media/filters/frame_processor.cc:5:
+../../media/base/media_log_properties_helper.h:86:8: error: extra qualification not allowed [-fpermissive]
+   86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+      |        ^~~~~~~~
+../../media/base/media_log_properties_helper.h:86:75: error: explicit specialization of non-template 'media::internal::<unnamed struct>'
+   86 | struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+      |                                                                           ^
+
+diff --git a/media/base/media_log_properties_helper.h b/media/base/media_log_properties_helper.h
+index 95ff70a..549b003 100644
+--- a/media/base/media_log_properties_helper.h
++++ b/media/base/media_log_properties_helper.h
+@@ -83,7 +83,7 @@ struct MediaLogPropertyTypeConverter<std::vector<T>> {
+ 
+ // Specializer for sending AudioDecoderConfigs to the media tab in devtools.
+ template <>
+-struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
++struct MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+   static base::Value Convert(const AudioDecoderConfig& value) {
+     base::Value result(base::Value::Type::DICTIONARY);
+     result.SetStringKey("codec", GetCodecName(value.codec()));
+@@ -114,7 +114,7 @@ struct internal::MediaLogPropertyTypeConverter<media::AudioDecoderConfig> {
+ 
+ // Specializer for sending VideoDecoderConfigs to the media tab in devtools.
+ template <>
+-struct internal::MediaLogPropertyTypeConverter<VideoDecoderConfig> {
++struct MediaLogPropertyTypeConverter<VideoDecoderConfig> {
+   static base::Value Convert(const VideoDecoderConfig& value) {
+     base::Value result(base::Value::Type::DICTIONARY);
+     result.SetStringKey("codec", GetCodecName(value.codec()));

diff --git a/www-client/chromium/files/chromium-80-include.patch b/www-client/chromium/files/chromium-80-include.patch
index a2a00a9d455..dd85de7249c 100644
--- a/www-client/chromium/files/chromium-80-include.patch
+++ b/www-client/chromium/files/chromium-80-include.patch
@@ -1,13 +1,33 @@
-diff --git a/third_party/blink/renderer/core/core_initializer.h b/third_party/blink/renderer/core/core_initializer.h
-index 5e67f46..3b750c7 100644
---- a/third_party/blink/renderer/core/core_initializer.h
-+++ b/third_party/blink/renderer/core/core_initializer.h
-@@ -36,6 +36,8 @@
- #include "third_party/blink/renderer/core/core_export.h"
- #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
+From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Tue, 10 Dec 2019 20:59:57 +0000
+Subject: [PATCH] [cros search service]: Include <cmath> for std::pow()
+
+IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared
+string matching functions to //chrome"), which broke the libstdc++ build:
+
+    ../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std'
+            std::pow(partial_match_penalty_rate, long_start - current - 1);
+            ~~~~~^
+
+Bug: 957519
+Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Reviewed-by: Jia Meng <jiameng@chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#723499}
+---
+
+diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
+index 8351fa7..884ef63 100644
+--- a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
++++ b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
+@@ -5,6 +5,7 @@
+ #include "chrome/common/string_matching/fuzzy_tokenized_string_match.h"
  
-+#include <memory>
-+
- namespace mojo {
- class BinderMap;
- }
+ #include <algorithm>
++#include <cmath>
+ #include <iterator>
+ 
+ #include "base/i18n/case_conversion.h"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-12-18 17:31 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-12-18 17:31 UTC (permalink / raw
  To: gentoo-commits

commit:     0cd82be6bd5b1b1de7a3a830dc5ef3517e346f15
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Dec 18 14:12:08 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Dec 18 17:29:51 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0cd82be6

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/702498
Package-Manager: Portage-2.3.79, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 -
 www-client/chromium/chromium-78.0.3904.108.ebuild  | 742 ---------------------
 www-client/chromium/files/chromium-77-clang.patch  |  13 -
 .../chromium/files/chromium-77-pulseaudio-13.patch |  82 ---
 .../chromium/files/chromium-78-gcc-alignas.patch   | 142 ----
 .../files/chromium-78-gcc-enum-range.patch         |  46 --
 .../chromium/files/chromium-78-gcc-noexcept.patch  |  32 -
 .../files/chromium-78-gcc-std-vector.patch         |  87 ---
 www-client/chromium/files/chromium-78-icon.patch   |  12 -
 .../chromium/files/chromium-78-include.patch       |  40 --
 .../chromium/files/chromium-78-pm-crash.patch      |  43 --
 .../chromium/files/chromium-widevine-r4.patch      |  26 -
 www-client/chromium/metadata.xml                   |   1 -
 13 files changed, 1268 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b4681157b6e..2a55584459d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,2 @@
-DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9ab14fa80b042b4237cabdbcb06425e4d1c72200ec49c3c1383cfc95013cce4df411b0a2397b79030d41a0379ae80a0c60bae1fbb5ffa SHA512 dcb62b82b34d5d6982762cacfe3ab7d3538d908b3befe7666f5d70d98ba4f979b5bf056e5c5343ed76aa744a643318fc5a75ddedfcb1b7de3e7c28eb2587439f
-DIST chromium-78.0.3904.108.tar.xz 742906260 BLAKE2B 4ec325911d502d0832764a2a70a51c680e3c3828127ae06c2cbc6b5604f25d416b4ed2e070054145d6f63605ba0610e8cca7a4d64ee4674abfbc1e2090999740 SHA512 9801634358974dbe61484963599719b7c5571d32c70d7568287ab6b72054ed82afa146a0470c53129266a9fbc4a24dc50a43d552b8f1756776907c2760f15589
 DIST chromium-79.0.3945.79.tar.xz 778215132 BLAKE2B 6998d8caf1fc7160d59fe894b66b34d40c7889d99ad04b3714a2203d8da395351cb7b5c2d112daad478af34ce377c98198f8a50118ff63cf87cf6678c2f0f738 SHA512 783473ea68f26656a86c6a9e726fcc6331d80860d6bb9e5ece6d71c120c3e80fc97ef867c720fe14121b3ba4599452bc40610e56900b2ffd813b9c4f415d644d
 DIST chromium-80.0.3970.5.tar.xz 789810132 BLAKE2B 400fcefeb58cb784412eca7011267c9224786036494337ecb8dbc7f3f483ec05d6e26c424ef55286cbebdbc872e1c15acfb62413264bb8843334a11bbe73ab4d SHA512 398666d81beaeef3eeb3f00a9a512b2d4c4e74bd9f01f20fab06901eadcb6fdbd345c39c54f2af57c4e485f2cd35700cde6f6a3d6301df7ee920bf067bee31d6

diff --git a/www-client/chromium/chromium-78.0.3904.108.ebuild b/www-client/chromium/chromium-78.0.3904.108.ebuild
deleted file mode 100644
index de0984e8544..00000000000
--- a/www-client/chromium/chromium-78.0.3904.108.ebuild
+++ /dev/null
@@ -1,742 +0,0 @@
-# Copyright 2009-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://dev.gentoo.org/~floppym/dist/chromium-78-revert-noexcept-r1.patch.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts jumbo-build kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-64:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	!<www-plugins/chrome-binary-plugins-57
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-util/gn
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	closure-compile? ( virtual/jre )
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r10.patch"
-	"${FILESDIR}/chromium-widevine-r4.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
-	"${FILESDIR}/chromium-77-system-icu.patch"
-	"${FILESDIR}/chromium-77-clang.patch"
-	"${FILESDIR}/chromium-77-pulseaudio-13.patch"
-	"${FILESDIR}/chromium-78-include.patch"
-	"${FILESDIR}/chromium-78-icon.patch"
-	"${FILESDIR}/chromium-78-protobuf-export.patch"
-	"${FILESDIR}/chromium-78-pm-crash.patch"
-	"${WORKDIR}/chromium-78-revert-noexcept-r1.patch"
-	"${FILESDIR}/chromium-78-gcc-enum-range.patch"
-	"${FILESDIR}/chromium-78-gcc-std-vector.patch"
-	"${FILESDIR}/chromium-78-gcc-noexcept.patch"
-	"${FILESDIR}/chromium-78-gcc-alignas.patch"
-	"${FILESDIR}/chromium-79-icu-65.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/boringssl/src/third_party/sike
-		third_party/boringssl/linux-aarch64/crypto/third_party/sike
-		third_party/boringssl/linux-x86_64/crypto/third_party/sike
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jpeg-js
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/flot
-		third_party/freetype
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/private-join-and-compute
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/gif
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/zlib/google
-		tools/grit/third_party/six
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-		append-cxxflags -fpermissive
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
-	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser \
-		"Chromium" \
-		chromium-browser \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-77-clang.patch b/www-client/chromium/files/chromium-77-clang.patch
deleted file mode 100644
index a57b5a458a4..00000000000
--- a/www-client/chromium/files/chromium-77-clang.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/base/location.h b/base/location.h
-index c07e747..924db1c 100644
---- a/base/location.h
-+++ b/base/location.h
-@@ -18,7 +18,7 @@
- 
- namespace base {
- 
--#if defined(__has_builtin)
-+#if defined(__clang__)
- // Clang allows detection of these builtins.
- #define SUPPORTS_LOCATION_BUILTINS                                       \
-   (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \

diff --git a/www-client/chromium/files/chromium-77-pulseaudio-13.patch b/www-client/chromium/files/chromium-77-pulseaudio-13.patch
deleted file mode 100644
index 892a3183c9d..00000000000
--- a/www-client/chromium/files/chromium-77-pulseaudio-13.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 7ac85fb4cc6f44a21761a591ac497ae3d6bf966d Mon Sep 17 00:00:00 2001
-From: Allan Sandfeld Jensen <allan.jensen@qt.io>
-Date: Mon, 23 Sep 2019 13:49:53 +0200
-Subject: [PATCH] Fix building with pulseaudio 13
-
-The function signature changed though the ABI stayed the same.
-
-(Modified to apply on chromium sources too)
-
-Change-Id: I86ca361b5e4f0c523e1031910df438c23beee876
-Fixes: QTBUG-77037
-Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
----
-
-diff --git a/media/audio/pulse/pulse.sigs b/media/audio/pulse/pulse.sigs
-index 8b58887..daaeb14 100644
---- a/media/audio/pulse/pulse.sigs
-+++ b/media/audio/pulse/pulse.sigs
-@@ -24,11 +24,11 @@
- pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
- pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
- pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
--pa_context_state_t pa_context_get_state(pa_context* c);
-+pa_context_state_t pa_context_get_state(const_pa_context_ptr c);
- pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
- pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
- void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
--pa_operation_state_t pa_operation_get_state(pa_operation* o);
-+pa_operation_state_t pa_operation_get_state(const_pa_operation_ptr o);
- void pa_context_unref(pa_context* c);
- void pa_operation_unref(pa_operation* o);
- int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
-@@ -38,23 +38,23 @@
- int pa_stream_disconnect(pa_stream* s);
- int pa_stream_drop(pa_stream *p);
- pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
--uint32_t pa_stream_get_device_index(pa_stream* s);
-+uint32_t pa_stream_get_device_index(const_pa_stream_ptr s);
- int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
--pa_stream_state_t pa_stream_get_state(pa_stream* p);
-+pa_stream_state_t pa_stream_get_state(const_pa_stream_ptr p);
- pa_stream* pa_stream_new(pa_context*  c, const char*  name, const pa_sample_spec*  ss, const pa_channel_map *  map);
- pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
- pa_proplist* pa_proplist_new(void);
--int pa_proplist_contains(pa_proplist* p, const char* key);
-+int pa_proplist_contains(const_pa_proplist_ptr p, const char* key);
- void pa_proplist_free(pa_proplist* p);
--const char* pa_proplist_gets(pa_proplist* p, const char* key);
-+const char* pa_proplist_gets(const_pa_proplist_ptr p, const char* key);
- int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
--size_t pa_stream_readable_size(pa_stream *p);
-+size_t pa_stream_readable_size(const_pa_stream_ptr p);
- int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
- void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
- void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
- int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
- void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
- void pa_stream_unref(pa_stream* s);
--int pa_context_errno(pa_context *c);
-+int pa_context_errno(const_pa_context_ptr c);
- const char* pa_strerror(int error);
- pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned  channels, pa_volume_t v);
-diff --git a/chromium/media/audio/pulse/pulse_stub_header.fragment b/chromium/media/audio/pulse/pulse_stub_header.fragment
-index 2a2d3e7..cdaa841 100644
---- a/media/audio/pulse/pulse_stub_header.fragment
-+++ b/media/audio/pulse/pulse_stub_header.fragment
-@@ -5,4 +5,15 @@
- 
- #include <pulse/pulseaudio.h>
- 
-+#if PA_MAJOR > 12
-+typedef const pa_context* const_pa_context_ptr;
-+typedef const pa_operation* const_pa_operation_ptr;
-+typedef const pa_proplist* const_pa_proplist_ptr;
-+typedef const pa_stream* const_pa_stream_ptr;
-+#else
-+typedef pa_context* const_pa_context_ptr;
-+typedef pa_operation* const_pa_operation_ptr;
-+typedef pa_proplist* const_pa_proplist_ptr;
-+typedef pa_stream* const_pa_stream_ptr;
-+#endif
- }

diff --git a/www-client/chromium/files/chromium-78-gcc-alignas.patch b/www-client/chromium/files/chromium-78-gcc-alignas.patch
deleted file mode 100644
index 4f6039c2f5a..00000000000
--- a/www-client/chromium/files/chromium-78-gcc-alignas.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 6b633c4b14850df376d5cec571699018772f358e Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela@gmail.com>
-Date: Tue, 17 Sep 2019 19:48:48 +0000
-Subject: [PATCH] GCC: Can't use alignas() together with __attribute__()
-
-It's because GCC has problems when mixing the alignas() together with
-__attribute__() (that is used to export the symbols). The best
-solution is to use ALIGNAS() macro from //base/compiler_specific.h
-together with alignof() to have the equal functionality that compiles on
-GCC as well as on clang.
-
-Bug: 819294
-Change-Id: Ieb169592a2965f17a18bfc88d28418eb723a4e5a
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1806735
-Auto-Submit: Tom     Popela <tomas.popela@gmail.com>
-Commit-Queue: Alex Clarke <alexclarke@chromium.org>
-Reviewed-by: Alex Clarke <alexclarke@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#697330}
----
-
-diff --git a/base/task/promise/dependent_list.h b/base/task/promise/dependent_list.h
-index 020bdbfc..3245c1c 100644
---- a/base/task/promise/dependent_list.h
-+++ b/base/task/promise/dependent_list.h
-@@ -59,7 +59,7 @@
- 
-   // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
-   // be used to store additional state (see static_asserts below).
--  class BASE_EXPORT alignas(8) Node {
-+  class BASE_EXPORT ALIGNAS(8) Node {
-    public:
-     Node();
-     explicit Node(Node&& other) noexcept;
-
-Re-use chromium alignas workaround in protobuf.
----
-
-diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
-index f1bd85d..9c204a1 100644
---- a/third_party/protobuf/src/google/protobuf/port_def.inc
-+++ b/third_party/protobuf/src/google/protobuf/port_def.inc
-@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
- #undef IN
- #endif  // _MSC_VER
- 
-+// Specify memory alignment for structs, classes, etc.
-+// Use like:
-+//   class PROTOBUF_ALIGNAS(16) MyClass { ... }
-+//   PROTOBUF_ALIGNAS(16) int array[4];
-+//
-+// In most places you can use the C++11 keyword "alignas", which is preferred.
-+//
-+// But compilers have trouble mixing __attribute__((...)) syntax with
-+// alignas(...) syntax.
-+//
-+// Doesn't work in clang or gcc:
-+//   struct alignas(16) __attribute__((packed)) S { char c; };
-+// Works in clang but not gcc:
-+//   struct __attribute__((packed)) alignas(16) S2 { char c; };
-+// Works in clang and gcc:
-+//   struct alignas(16) S3 { char c; } __attribute__((packed));
-+//
-+// There are also some attributes that must be specified *before* a class
-+// definition: visibility (used for exporting functions/classes) is one of
-+// these attributes. This means that it is not possible to use alignas() with a
-+// class that is marked as exported.
-+#if defined(_MSC_VER)
-+#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
-+#elif defined(__GNUC__)
-+#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
-+#else
-+#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
-+#endif
-+
- #if defined(__clang__)
- #pragma clang diagnostic push
- // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
-diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h
-index dedc221..a8515ce 100644
---- a/third_party/protobuf/src/google/protobuf/arena.h
-+++ b/third_party/protobuf/src/google/protobuf/arena.h
-@@ -245,7 +245,7 @@ struct ArenaOptions {
- // well as protobuf container types like RepeatedPtrField and Map. The protocol
- // is internal to protobuf and is not guaranteed to be stable. Non-proto types
- // should not rely on this protocol.
--class PROTOBUF_EXPORT alignas(8) Arena final {
-+class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
-  public:
-   // Arena constructor taking custom options. See ArenaOptions below for
-   // descriptions of the options available.
-diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
-index f1bd85d..6d02b53 100644
---- a/third_party/protobuf/src/google/protobuf/port_def.inc
-+++ b/third_party/protobuf/src/google/protobuf/port_def.inc
-@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
- #undef IN
- #endif  // _MSC_VER
- 
-+// Specify memory alignment for structs, classes, etc.
-+// Use like:
-+//   class PROTOBUF_ALIGNAS(16) MyClass { ... }
-+//   PROTOBUF_ALIGNAS(16) int array[4];
-+//
-+// In most places you can use the C++11 keyword "alignas", which is preferred.
-+//
-+// But compilers have trouble mixing __attribute__((...)) syntax with
-+// alignas(...) syntax.
-+//
-+// Doesn't work in clang or gcc:
-+//   struct alignas(16) __attribute__((packed)) S { char c; };
-+// Works in clang but not gcc:
-+//   struct __attribute__((packed)) alignas(16) S2 { char c; };
-+// Works in clang and gcc:
-+//   struct alignas(16) S3 { char c; } __attribute__((packed));
-+//
-+// There are also some attributes that must be specified *before* a class
-+// definition: visibility (used for exporting functions/classes) is one of
-+// these attributes. This means that it is not possible to use alignas() with a
-+// class that is marked as exported.
-+#if defined(_MSC_VER)
-+#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
-+#elif defined(__GNUC__)
-+#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
-+#else
-+#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
-+#endif
-+
- #if defined(__clang__)
- #pragma clang diagnostic push
- // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
-diff --git a/third_party/protobuf/src/google/protobuf/port_undef.inc b/third_party/protobuf/src/google/protobuf/port_undef.inc
-index b7e67fe..ba1fffc 100644
---- a/third_party/protobuf/src/google/protobuf/port_undef.inc
-+++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
-@@ -80,6 +80,7 @@
- #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
- #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
- #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
-+#undef PROTOBUF_ALIGNAS
- 
- 
- 

diff --git a/www-client/chromium/files/chromium-78-gcc-enum-range.patch b/www-client/chromium/files/chromium-78-gcc-enum-range.patch
deleted file mode 100644
index 9c15e954b4e..00000000000
--- a/www-client/chromium/files/chromium-78-gcc-enum-range.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 9662ec844017690d5fd56bf0f05ef6a540dd29c1 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson@chromium.org>
-Date: Mon, 09 Sep 2019 19:06:01 +0000
-Subject: [PATCH] Fix GCC build error
-
-Fixes this error:
-[  375s] In file included from ../../base/task/common/intrusive_heap.h:8,
-[  375s]                  from ../../base/task/thread_pool/task_source.h:17,
-[  375s]                  from ../../base/task/thread_pool/task_tracker.h:27,
-[  375s]                  from ./../../base/task/thread_pool/service_thread.cc:14,
-[  375s]                  from gen/base/base_jumbo_28.cc:5:
-[  375s] ../../base/containers/intrusive_heap.h:152:36: error: enumerator value
-         '-1' is outside the range of underlying type 'size_t' {aka 'long unsigned int'}
-[  375s]   152 |   enum : size_t { kInvalidIndex = -1 };
-[  375s]       |
-
-Change-Id: I6044fb704931b2f8416f6b19a247ae297cd7b0d6
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1792763
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Commit-Queue: Lei Zhang <thestig@chromium.org>
-Reviewed-by: Lei Zhang <thestig@chromium.org>
-Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#694853}
----
-
-diff --git a/base/containers/intrusive_heap.h b/base/containers/intrusive_heap.h
-index 53d3909..d7626bb 100644
---- a/base/containers/intrusive_heap.h
-+++ b/base/containers/intrusive_heap.h
-@@ -131,6 +131,7 @@
- 
- #include <algorithm>
- #include <functional>
-+#include <limits>
- #include <type_traits>
- #include <utility>
- #include <vector>
-@@ -149,7 +150,7 @@
- // in place.
- class BASE_EXPORT HeapHandle {
-  public:
--  enum : size_t { kInvalidIndex = -1 };
-+  enum : size_t { kInvalidIndex = std::numeric_limits<size_t>::max() };
- 
-   constexpr HeapHandle() = default;
-   constexpr HeapHandle(const HeapHandle& other) = default;

diff --git a/www-client/chromium/files/chromium-78-gcc-noexcept.patch b/www-client/chromium/files/chromium-78-gcc-noexcept.patch
deleted file mode 100644
index 8ddb53fe82d..00000000000
--- a/www-client/chromium/files/chromium-78-gcc-noexcept.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d16cda8fc3476cc534a756873cc8aa2692a57054 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Thu, 22 Aug 2019 13:13:36 +0200
-Subject: [PATCH] GCC: declare noexcept move constructor/assign operators of V8StackTraceId
-
-blink::BlinkCloneableMessage declares default implementation of
-move operator/assign operator that requires v8_inspector::V8StackTraceId
-to declare its move constructor/assign operator too.
-
-Bug: chromium:819294
-Change-Id: Iaf626ee8245efcba372a17cdf2de448e691d41d6
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796062
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Reviewed-by: Yang Guo <yangguo@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#63799}
----
-
-diff --git a/v8/include/v8-inspector.h b/v8/include/v8-inspector.h
-index ce5b777..ed4cdec 100644
---- a/v8/include/v8-inspector.h
-+++ b/v8/include/v8-inspector.h
-@@ -231,7 +231,10 @@ struct V8_EXPORT V8StackTraceId {
-   std::pair<int64_t, int64_t> debugger_id;
- 
-   V8StackTraceId();
-+  V8StackTraceId(const V8StackTraceId&) = default;
-   V8StackTraceId(uintptr_t id, const std::pair<int64_t, int64_t> debugger_id);
-+  V8StackTraceId& operator=(const V8StackTraceId&) = default;
-+  V8StackTraceId& operator=(V8StackTraceId&&) noexcept = default;
-   ~V8StackTraceId() = default;
- 
-   bool IsInvalid() const;

diff --git a/www-client/chromium/files/chromium-78-gcc-std-vector.patch b/www-client/chromium/files/chromium-78-gcc-std-vector.patch
deleted file mode 100644
index cf1abf06b5a..00000000000
--- a/www-client/chromium/files/chromium-78-gcc-std-vector.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From f4c3c329588b78af63aad8b401da767242b86709 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Date: Mon, 16 Sep 2019 17:05:42 +0000
-Subject: [PATCH] dns_util: Make DohUpgradeEntry non-const when used with std::vector<>
-
-This fixes the build with libstdc++ (with most other standard libraries
-other than libc++, in fact) after commit f93a48e3 ("Allow upgrade to DoH
-during automatic mode"):
-
-../../../../../../usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_vector.h:351:7: error: static_assert failed due to requirement 'is_same<typename remove_cv<const DohUpgradeEntry>::type, const DohUpgradeEntry>::value' "std::vector must have a non-const, non-volatile value_type"
-      static_assert(is_same<typename remove_cv<_Tp>::type, _Tp>::value,
-      ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-../../base/no_destructor.h:77:28: note: in instantiation of template class 'std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >' requested here
-  alignas(T) char storage_[sizeof(T)];
-                           ^
-../../net/dns/dns_util.cc:147:7: note: in instantiation of template class 'base::NoDestructor<std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> > >' requested here
-      upgradable_servers({
-      ^
-../../net/dns/dns_util.cc:230:36: error: invalid range expression of type 'const std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >'; no viable 'begin' function available
-    for (const auto& upgrade_entry : upgradable_servers) {
-                                   ^ ~~~~~~~~~~~~~~~~~~
-
-The C++ standard forbids containers of const elements. Callers of
-GetDohUpgradeList() use it in a safe way anyway, and most of
-DohUpgradeEntry's members are const.
-
-(Added gcc specific workaround)
-
-Bug: 957519
-Change-Id: I826a51823edb1184c0fae27105101e2894efe568
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805636
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Commit-Queue: Eric Orth <ericorth@chromium.org>
-Reviewed-by: Eric Orth <ericorth@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#696834}
----
-
-diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
-index d83ff7c..14997c4 100644
---- a/net/dns/dns_util.cc
-+++ b/net/dns/dns_util.cc
-@@ -139,12 +139,12 @@ struct DohUpgradeEntry {
-   const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
- };
- 
--const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
-+const std::vector<DohUpgradeEntry>& GetDohUpgradeList() {
-   // The provider names in these entries should be kept in sync with the
-   // DohProviderId histogram suffix list in
-   // tools/metrics/histograms/histograms.xml.
--  static const base::NoDestructor<std::vector<const DohUpgradeEntry>>
--      upgradable_servers({
-+  static const base::NoDestructor<std::vector<DohUpgradeEntry>>
-+      upgradable_servers(std::initializer_list<DohUpgradeEntry>{
-           DohUpgradeEntry(
-               "CleanBrowsingAdult",
-               {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
-@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
- std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers(
-     const std::vector<IPEndPoint>& dns_servers,
-     const std::vector<std::string>& excluded_providers) {
--  const std::vector<const DohUpgradeEntry>& upgradable_servers =
--      GetDohUpgradeList();
-+  const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
-   std::vector<const DohUpgradeEntry*> entries;
- 
-   for (const auto& server : dns_servers) {
-@@ -417,8 +416,7 @@ std::vector<DnsConfig::DnsOverHttpsServerConfig>
- GetDohUpgradeServersFromDotHostname(
-     const std::string& dot_server,
-     const std::vector<std::string>& excluded_providers) {
--  const std::vector<const DohUpgradeEntry>& upgradable_servers =
--      GetDohUpgradeList();
-+  const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
-   std::vector<DnsConfig::DnsOverHttpsServerConfig> doh_servers;
- 
-   if (dot_server.empty())
-@@ -451,8 +449,7 @@ GetDohUpgradeServersFromNameservers(
- 
- std::string GetDohProviderIdForHistogramFromDohConfig(
-     const DnsConfig::DnsOverHttpsServerConfig& doh_server) {
--  const std::vector<const DohUpgradeEntry>& upgradable_servers =
--      GetDohUpgradeList();
-+  const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
-   for (const auto& upgrade_entry : upgradable_servers) {
-     if (doh_server.server_template ==
-         upgrade_entry.dns_over_https_config.server_template) {

diff --git a/www-client/chromium/files/chromium-78-icon.patch b/www-client/chromium/files/chromium-78-icon.patch
deleted file mode 100644
index 2cca7f10d19..00000000000
--- a/www-client/chromium/files/chromium-78-icon.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
-index 7a3a6eb..7c01534 100644
---- a/ui/platform_window/x11/x11_window.cc
-+++ b/ui/platform_window/x11/x11_window.cc
-@@ -67,6 +67,7 @@ ui::XWindow::Configuration ConvertInitPropertiesToXWindowConfig(
-   config.wm_role_name = properties.wm_role_name;
-   config.activatable = properties.activatable;
-   config.visual_id = properties.x_visual_id;
-+  config.icon = properties.icon;
-   return config;
- }
- 

diff --git a/www-client/chromium/files/chromium-78-include.patch b/www-client/chromium/files/chromium-78-include.patch
deleted file mode 100644
index 3db38eac1c9..00000000000
--- a/www-client/chromium/files/chromium-78-include.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001
-From: David Landell <landell@vewd.com>
-Date: Fri, 13 Sep 2019 12:24:13 +0000
-Subject: [PATCH] Add missing include for unique_ptr
-
-Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137
-Reviewed-by: Henrik Boström <hbos@chromium.org>
-Commit-Queue: Henrik Boström <hbos@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#696355}
----
-
-diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
-index 959440f..c3fd542 100644
---- a/third_party/blink/public/platform/web_rtc_rtp_source.h
-+++ b/third_party/blink/public/platform/web_rtc_rtp_source.h
-@@ -5,6 +5,8 @@
- #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
- #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
- 
-+#include <memory>
-+
- #include "base/optional.h"
- #include "third_party/blink/public/platform/web_common.h"
- 
-Missing include due to reverting ProfileManagerObserver
----
-
-diff --git a/chrome/browser/web_applications/extensions/bookmark_app_util.cc b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
-index ee4b70a..b31e5f5 100644
---- a/chrome/browser/web_applications/extensions/bookmark_app_util.cc
-+++ b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
-@@ -7,6 +7,7 @@
- #include "base/strings/string_piece.h"
- #include "base/values.h"
- #include "chrome/browser/extensions/extension_service.h"
-+#include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/web_applications/components/app_registrar.h"
- #include "chrome/browser/web_applications/components/web_app_provider_base.h"
- #include "chrome/common/chrome_features.h"

diff --git a/www-client/chromium/files/chromium-78-pm-crash.patch b/www-client/chromium/files/chromium-78-pm-crash.patch
deleted file mode 100644
index ada266120dc..00000000000
--- a/www-client/chromium/files/chromium-78-pm-crash.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e73aed9a5ef15102f29ac31b70290faf5c90f9fe Mon Sep 17 00:00:00 2001
-From: Evan Stade <estade@chromium.org>
-Date: Wed, 16 Oct 2019 16:01:32 +0000
-Subject: [PATCH] Fix shutdown crash in ProfileManager.
-
-OnProfileMarkedForPermanentDeletion should move from
-ProfileManagerObserver to ProfileObserver, which would also
-fix this bug. However, changing the order of members is the
-quickest and most cherry-pick-able way to avoid the crash.
-
-Bug: 1005244
-Change-Id: If2db68c846dd418cd02864b57b9b543687fa1e03
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863518
-Auto-Submit: Evan Stade <estade@chromium.org>
-Reviewed-by: David Roger <droger@chromium.org>
-Commit-Queue: Evan Stade <estade@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#706467}
----
-
-diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
-index b60df76d..7d02af7 100644
---- a/chrome/browser/profiles/profile_manager.h
-+++ b/chrome/browser/profiles/profile_manager.h
-@@ -409,6 +409,10 @@ class ProfileManager : public content::NotificationObserver,
-       const base::FilePath& profile_dir);
- #endif  // !defined(OS_ANDROID)
- 
-+  // Destroy after |profile_info_cache_| since Profile destruction may trigger
-+  // some observers to unregister themselves.
-+  base::ObserverList<ProfileManagerObserver> observers_;
-+
-   // Object to cache various information about profiles. Contains information
-   // about every profile which has been created for this instance of Chrome,
-   // if it has not been explicitly deleted. It must be destroyed after
-@@ -450,8 +454,6 @@ class ProfileManager : public content::NotificationObserver,
-   // Controls whether to initialize some services. Only disabled for testing.
-   bool do_final_services_init_ = true;
- 
--  base::ObserverList<ProfileManagerObserver> observers_;
--
-   // TODO(chrome/browser/profiles/OWNERS): Usage of this in profile_manager.cc
-   // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for
-   // consistency with surrounding code in the same file but that wasn't trivial

diff --git a/www-client/chromium/files/chromium-widevine-r4.patch b/www-client/chromium/files/chromium-widevine-r4.patch
deleted file mode 100644
index d5a3be8345a..00000000000
--- a/www-client/chromium/files/chromium-widevine-r4.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Define WIDEVINE_CDM_VERSION_STRING && re-re-re-patch for latest ninja
-
-Stolen from Arch basically.
-
-gmt
-
---- a/chrome/common/chrome_content_client.cc
-+++ b/chrome/common/chrome_content_client.cc
-@@ -99,7 +99,7 @@
- // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
- // bundled and not a component. When the Widevine CDM is a component, it is
- // registered in widevine_cdm_component_installer.cc.
--#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
-+#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
- #define REGISTER_BUNDLED_WIDEVINE_CDM
- #include "third_party/widevine/cdm/widevine_cdm_common.h"  // nogncheck
- // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
---- a/third_party/widevine/cdm/widevine_cdm_version.h
-+++ b/third_party/widevine/cdm/widevine_cdm_version.h
-@@ -11,5 +11,6 @@
- // If the Widevine CDM is available define the following:
- //  - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
- //    as a string, e.g., "1.0.123.456").
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- 
- #endif  // WIDEVINE_CDM_VERSION_H_

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 42ec8adf192..60d720a4ee2 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -10,7 +10,6 @@
 		<flag name="closure-compile">Enable closure type-checking for Chrome's web technology-based UI. Requires Java.</flag>
 		<flag name="component-build">Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>
 		<flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag>
-		<flag name="jumbo-build">Combine source files to speed up build process.</flag>
 		<flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
 		<flag name="proprietary-codecs">Enable proprietary codecs like H.264, MP3</flag>
 		<flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-11-11 21:04 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-11-11 21:04 UTC (permalink / raw
  To: gentoo-commits

commit:     351dbb27ec868b0f0ee3ac0598fea184a2476e8d
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Nov 10 16:33:37 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Nov 11 21:04:08 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=351dbb27

www-client/chromium: dev channel bump to 80.0.3962.2

Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-80.0.3962.2.ebuild    | 736 +++++++++++++++++++++
 .../chromium/files/chromium-80-gcc-noexcept.patch  |  48 ++
 .../files/chromium-80-unbundle-libxml.patch        | 101 +++
 4 files changed, 886 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 078a2c9b488..29bf420ed15 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9a
 DIST chromium-78.0.3904.87.tar.xz 742861696 BLAKE2B f8e99207876d879dc74873950e3647d41f0c687a9cd6285f44d54a4c39ceac68d455a79c38f0c9c4815ad025b2b6fae95305f0bc47e2d4c0f2937810068ffe1e SHA512 9c59c01c7224771dd1db648a8cea6cda646062b4b172eb7bf0767a0b5ebead038697a8c0ec2c4ef758b876bb7a1c862223b8ef3c23308fd0c99752444305a713
 DIST chromium-78.0.3904.97.tar.xz 742793812 BLAKE2B e7fada913f5831d805a50445da41ecbca7e27af52574ce242f427c0e4c83a74ae0283eb1667d74d39eb88f05e88e5a389945628666e24e26d635f74c43c8bc55 SHA512 e29312fe5c15eb6888a2e4d7e197c710d53feeecdf4e534c59f3db26973fee13f48880b46a7c3b132bb9989eb617db9c6138b809c3cb762332a9db25ad6d33dc
 DIST chromium-79.0.3945.29.tar.xz 778087092 BLAKE2B 5ebf337a5510e78cf52e317fa1080f2714be09a8514ec1b9188fbf195efb36016a4588eaba769e6ead0502fa2dadcddb9ccde51c313ad5dc99c92c0d18f92076 SHA512 8044996d23d05751b27ce7b01a1728149bf878b884a59bd039c4989a5b5c0ea0872733ffffc70e6908d45861a43ae7d18895718df3d38890c583fe222b65f1b5
+DIST chromium-80.0.3962.2.tar.xz 788407196 BLAKE2B f7ece5f654f7b479ac4aad42e18dc2454c46b39353bdf6057c30aeb30714f033af21228269510ddd4ebb15b570987cdbe0d0ae67824368f205fbdb9308cbed07 SHA512 29460df7e6b8f4b01fea06faad236690739e250170c190ee991090fc300a3cbea034ebee50731485ac578d5f8c83cfc86e9438bd6ba91c686f17bea78dbf1e86

diff --git a/www-client/chromium/chromium-80.0.3962.2.ebuild b/www-client/chromium/chromium-80.0.3962.2.ebuild
new file mode 100644
index 00000000000..6f34c5068d5
--- /dev/null
+++ b/www-client/chromium/chromium-80.0.3962.2.ebuild
@@ -0,0 +1,736 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-65:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.11.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12-r0
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-util/gn
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	closure-compile? ( virtual/jre )
+	virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r10.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
+	"${FILESDIR}/chromium-77-system-icu.patch"
+	"${FILESDIR}/chromium-78-protobuf-export.patch"
+	"${FILESDIR}/chromium-79-gcc-alignas.patch"
+	"${FILESDIR}/chromium-80-unbundle-libxml.patch"
+	"${FILESDIR}/chromium-80-gcc-noexcept.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+			die "At least gcc 8.0 is required"
+		fi
+		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+			die "Component build with tcmalloc requires FEATURES=-usersandbox."
+		fi
+		if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+			if use component-build; then
+				die "Component build with clang requires fuzzer headers."
+			fi
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/double_conversion
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jpeg-js
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/depot_tools
+		third_party/devscripts
+		third_party/devtools-frontend
+		third_party/devtools-frontend/src/third_party
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/private-join-and-compute
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-7.0
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/marl
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/fft4g
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		tools/grit/third_party/six
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	# Explicitly disable ICU data file support for system-icu builds.
+	if use system-icu; then
+		myconf_gn+=" icu_use_data_file=false"
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+
+	# Build manpage; bug #684550
+	sed -e 's|@@PACKAGE@@|chromium-browser|g;
+		s|@@MENUNAME@@|Chromium|g;' \
+		chrome/app/resources/manpage.1.in > \
+		out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	# Install manpage; bug #684550
+	doman out/Release/chromium-browser.1
+	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-80-gcc-noexcept.patch b/www-client/chromium/files/chromium-80-gcc-noexcept.patch
new file mode 100644
index 00000000000..93ac6c409be
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-noexcept.patch
@@ -0,0 +1,48 @@
+From a75a2539ca600163f2136776fdc751111e887cd7 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Tue, 05 Nov 2019 17:57:52 +0100
+Subject: [PATCH] GCC: do not set noexcept on move assignment operator of ColorSet
+
+GCC build is broken because ColorSet default move assign operator is
+noexcept (because the color flat_map is not noexcept). It does not
+break clang because clang does not warn about this situation when
+building with -fno-exception.
+
+../../ui/color/color_set.cc:14:11: error: function ‘ui::ColorSet& ui::ColorSet::operator=(ui::ColorSet&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
+ ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
+
+Bug: 819294
+Change-Id: I00f4374fbf3d41dced9f9451c90478db528cb986
+---
+
+diff --git a/ui/color/color_set.cc b/ui/color/color_set.cc
+index 56564d7..0d43b2b 100644
+--- a/ui/color/color_set.cc
++++ b/ui/color/color_set.cc
+@@ -9,9 +9,9 @@
+ ColorSet::ColorSet(ColorSetId id, ColorMap&& colors)
+     : id(id), colors(std::move(colors)) {}
+ 
+-ColorSet::ColorSet(ColorSet&&) noexcept = default;
++ColorSet::ColorSet(ColorSet&&) = default;
+ 
+-ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
++ColorSet& ColorSet::operator=(ColorSet&&) = default;
+ 
+ ColorSet::~ColorSet() = default;
+ 
+diff --git a/ui/color/color_set.h b/ui/color/color_set.h
+index b273c48..3eaea42 100644
+--- a/ui/color/color_set.h
++++ b/ui/color/color_set.h
+@@ -28,8 +28,8 @@
+   using ColorMap = base::flat_map<ColorId, SkColor>;
+ 
+   ColorSet(ColorSetId id, ColorMap&& colors);
+-  ColorSet(ColorSet&&) noexcept;
+-  ColorSet& operator=(ColorSet&&) noexcept;
++  ColorSet(ColorSet&&);
++  ColorSet& operator=(ColorSet&&);
+   ~ColorSet();
+ 
+   ColorSetId id;

diff --git a/www-client/chromium/files/chromium-80-unbundle-libxml.patch b/www-client/chromium/files/chromium-80-unbundle-libxml.patch
new file mode 100644
index 00000000000..0f369052cde
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-unbundle-libxml.patch
@@ -0,0 +1,101 @@
+diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn
+index c481bd3..3aaa1a4 100644
+--- a/build/linux/unbundle/libxml.gn
++++ b/build/linux/unbundle/libxml.gn
+@@ -8,11 +8,52 @@ pkg_config("system_libxml") {
+   packages = [ "libxml-2.0" ]
+ }
+ 
+-static_library("libxml") {
++source_set("libxml") {
++  public_configs = [ ":system_libxml" ]
++}
++
++static_library("libxml_utils") {
++  # Do not expand this visibility list without first consulting with the
++  # Security Team.
++  visibility = [
++    ":xml_reader",
++    ":xml_writer",
++    "//base/test:test_support",
++    "//services/data_decoder:xml_parser_fuzzer",
++  ]
+   sources = [
+     "chromium/libxml_utils.cc",
+     "chromium/libxml_utils.h",
+   ]
+-
+   public_configs = [ ":system_libxml" ]
+ }
++
++static_library("xml_reader") {
++  # Do not expand this visibility list without first consulting with the
++  # Security Team.
++  visibility = [
++    "//base/test:test_support",
++    "//components/policy/core/common:unit_tests",
++    "//services/data_decoder:*",
++    "//tools/traffic_annotation/auditor:auditor_sources",
++  ]
++  sources = [
++    "chromium/xml_reader.cc",
++    "chromium/xml_reader.h",
++  ]
++  deps = [
++    ":libxml_utils",
++  ]
++}
++
++static_library("xml_writer") {
++  # The XmlWriter is considered safe to use from any target.
++  visibility = [ "*" ]
++  sources = [
++    "chromium/xml_writer.cc",
++    "chromium/xml_writer.h",
++  ]
++  deps = [
++    ":libxml_utils",
++  ]
++}
+diff --git a/third_party/libxml/chromium/libxml_utils.h b/third_party/libxml/chromium/libxml_utils.h
+index ff969fa..e0f3ecd 100644
+--- a/third_party/libxml/chromium/libxml_utils.h
++++ b/third_party/libxml/chromium/libxml_utils.h
+@@ -6,8 +6,7 @@
+ #define THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_
+ 
+ #include <string>
+-
+-#include "third_party/libxml/src/include/libxml/xmlreader.h"
++#include <libxml/xmlreader.h>
+ 
+ // libxml uses a global error function pointer for reporting errors.
+ // A ScopedXmlErrorFunc object lets you change the global error pointer
+diff --git a/third_party/libxml/chromium/xml_reader.cc b/third_party/libxml/chromium/xml_reader.cc
+index 92464f4..4779290 100644
+--- a/third_party/libxml/chromium/xml_reader.cc
++++ b/third_party/libxml/chromium/xml_reader.cc
+@@ -7,7 +7,8 @@
+ #include <vector>
+ 
+ #include "third_party/libxml/chromium/libxml_utils.h"
+-#include "third_party/libxml/src/include/libxml/xmlreader.h"
++
++#include <libxml/xmlreader.h>
+ 
+ using internal::XmlStringToStdString;
+ 
+diff --git a/third_party/libxml/chromium/xml_writer.cc b/third_party/libxml/chromium/xml_writer.cc
+index 51fce8e..aa3a34f 100644
+--- a/third_party/libxml/chromium/xml_writer.cc
++++ b/third_party/libxml/chromium/xml_writer.cc
+@@ -5,7 +5,8 @@
+ #include "third_party/libxml/chromium/xml_writer.h"
+ 
+ #include "third_party/libxml/chromium/libxml_utils.h"
+-#include "third_party/libxml/src/include/libxml/xmlwriter.h"
++
++#include <libxml/xmlwriter.h>
+ 
+ XmlWriter::XmlWriter() : writer_(nullptr), buffer_(nullptr) {}
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-11-06 18:56 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-11-06 18:56 UTC (permalink / raw
  To: gentoo-commits

commit:     4da7a09504ed862f58f945f200bca06ed730d606
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Nov  4 09:42:38 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Nov  6 18:55:29 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4da7a095

www-client/chromium: beta channel bump to 79.0.3945.16

Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ....3945.8.ebuild => chromium-79.0.3945.16.ebuild} |  0
 .../chromium/files/chromium-79-gcc-alignas.patch   | 40 ----------------------
 3 files changed, 1 insertion(+), 41 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 26041a8b3ef..4a3cc7d1c7a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9ab14fa80b042b4237cabdbcb06425e4d1c72200ec49c3c1383cfc95013cce4df411b0a2397b79030d41a0379ae80a0c60bae1fbb5ffa SHA512 dcb62b82b34d5d6982762cacfe3ab7d3538d908b3befe7666f5d70d98ba4f979b5bf056e5c5343ed76aa744a643318fc5a75ddedfcb1b7de3e7c28eb2587439f
 DIST chromium-78.0.3904.87.tar.xz 742861696 BLAKE2B f8e99207876d879dc74873950e3647d41f0c687a9cd6285f44d54a4c39ceac68d455a79c38f0c9c4815ad025b2b6fae95305f0bc47e2d4c0f2937810068ffe1e SHA512 9c59c01c7224771dd1db648a8cea6cda646062b4b172eb7bf0767a0b5ebead038697a8c0ec2c4ef758b876bb7a1c862223b8ef3c23308fd0c99752444305a713
-DIST chromium-79.0.3945.8.tar.xz 777902956 BLAKE2B eba9e94c9305a5fe9aaf8848456a69427219a29b139217d9b5409a35cb4a508d217fe82c08e3bc9325675180bfe7d7c93d583adf9d8ad6c04de1209b2305a1d3 SHA512 78358d0dbb8bd574c450f5443b7dfc888ea89ad9fa9da156106d260f1b3921deb6f5a50931c689c1855c9ffdef5e001d8636e8a00d416c9e9efe8bea2a8dfc6d
+DIST chromium-79.0.3945.16.tar.xz 778029316 BLAKE2B abcc71329e6290699a1cc14e051f9026f5c2f2df275f0f65b6b3073a410fc0d633329049cd67e5497dbc2c319aa708e6406bec5130848f3d90461db6086024b2 SHA512 fac17c45dca40f9d079d9beaa2660ac9dbd47b985587b6adfaabd5ae53277be008cd358b18041d7961e31eb0a244a19c035b7de25c32b62fb8e99582ced83b3e

diff --git a/www-client/chromium/chromium-79.0.3945.8.ebuild b/www-client/chromium/chromium-79.0.3945.16.ebuild
similarity index 100%
rename from www-client/chromium/chromium-79.0.3945.8.ebuild
rename to www-client/chromium/chromium-79.0.3945.16.ebuild

diff --git a/www-client/chromium/files/chromium-79-gcc-alignas.patch b/www-client/chromium/files/chromium-79-gcc-alignas.patch
index f7f1fe7ac5b..1e031e2a6f2 100644
--- a/www-client/chromium/files/chromium-79-gcc-alignas.patch
+++ b/www-client/chromium/files/chromium-79-gcc-alignas.patch
@@ -1,46 +1,6 @@
 Re-use chromium alignas workaround in protobuf.
 ---
 
-diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
-index f1bd85d..9c204a1 100644
---- a/third_party/protobuf/src/google/protobuf/port_def.inc
-+++ b/third_party/protobuf/src/google/protobuf/port_def.inc
-@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
- #undef IN
- #endif  // _MSC_VER
- 
-+// Specify memory alignment for structs, classes, etc.
-+// Use like:
-+//   class PROTOBUF_ALIGNAS(16) MyClass { ... }
-+//   PROTOBUF_ALIGNAS(16) int array[4];
-+//
-+// In most places you can use the C++11 keyword "alignas", which is preferred.
-+//
-+// But compilers have trouble mixing __attribute__((...)) syntax with
-+// alignas(...) syntax.
-+//
-+// Doesn't work in clang or gcc:
-+//   struct alignas(16) __attribute__((packed)) S { char c; };
-+// Works in clang but not gcc:
-+//   struct __attribute__((packed)) alignas(16) S2 { char c; };
-+// Works in clang and gcc:
-+//   struct alignas(16) S3 { char c; } __attribute__((packed));
-+//
-+// There are also some attributes that must be specified *before* a class
-+// definition: visibility (used for exporting functions/classes) is one of
-+// these attributes. This means that it is not possible to use alignas() with a
-+// class that is marked as exported.
-+#if defined(_MSC_VER)
-+#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
-+#elif defined(__GNUC__)
-+#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
-+#else
-+#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
-+#endif
-+
- #if defined(__clang__)
- #pragma clang diagnostic push
- // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
 diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h
 index dedc221..a8515ce 100644
 --- a/third_party/protobuf/src/google/protobuf/arena.h


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-10-29 20:11 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-10-29 20:11 UTC (permalink / raw
  To: gentoo-commits

commit:     e99cd36078a29de594241aa44b7de3f3ce353db9
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Oct 29 14:08:48 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Oct 29 20:11:17 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e99cd360

www-client/chromium: dev channel bump to 79.0.3945.8

Closes: https://github.com/gentoo/gentoo/pull/13487
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +-
 ...0.3941.4.ebuild => chromium-79.0.3945.8.ebuild} |   3 +-
 .../chromium-79-gcc-ambiguous-nodestructor.patch   |  32 +++-
 .../files/chromium-79-gcc-name-clash.patch         | 135 ++++++++++++++++
 .../files/chromium-79-gcc-permissive.patch         |  14 --
 .../chromium/files/chromium-79-include.patch       | 151 +++++++++++------
 .../files/chromium-79-swiftshader-linux.patch      | 180 ---------------------
 7 files changed, 272 insertions(+), 245 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f2606637827..6cab752dd46 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9ab14fa80b042b4237cabdbcb06425e4d1c72200ec49c3c1383cfc95013cce4df411b0a2397b79030d41a0379ae80a0c60bae1fbb5ffa SHA512 dcb62b82b34d5d6982762cacfe3ab7d3538d908b3befe7666f5d70d98ba4f979b5bf056e5c5343ed76aa744a643318fc5a75ddedfcb1b7de3e7c28eb2587439f
 DIST chromium-78.0.3904.70.tar.xz 742787108 BLAKE2B 623a0359f461672d8d6c97b4703f5b50c6ac423350ba96b7f37582be38d9cc66674e441b506405bc5f136df19df886036ef5abae4b8c2e4e953ec296e2a25bb4 SHA512 95d926ea92a0e744284a4c5fca619e3a067dd0fdfaa7c05b5a069d2a8d1159bf849335e21e5803bd28175c1994bd4ff15337ad0a3063445fab74eef113275545
-DIST chromium-79.0.3941.4.tar.xz 772100680 BLAKE2B 2a510529ae9a58c2c831bd293eb1a9ea276422da6f49741be208bcf8c17eafa0e47c0adf8e3f1148f3da821188315e9d6c7f2de1c44dd844f5d481be17b35ef7 SHA512 5847f7c647737ea96c27f859e5b763100c4d0ecff83eb33d81d144e3be16a5a709290a66fa6754b8a38be68c850dee4be0abc2419f5a50e0cf22bc37a0563c80
+DIST chromium-79.0.3945.8.tar.xz 777902956 BLAKE2B eba9e94c9305a5fe9aaf8848456a69427219a29b139217d9b5409a35cb4a508d217fe82c08e3bc9325675180bfe7d7c93d583adf9d8ad6c04de1209b2305a1d3 SHA512 78358d0dbb8bd574c450f5443b7dfc888ea89ad9fa9da156106d260f1b3921deb6f5a50931c689c1855c9ffdef5e001d8636e8a00d416c9e9efe8bea2a8dfc6d

diff --git a/www-client/chromium/chromium-79.0.3941.4.ebuild b/www-client/chromium/chromium-79.0.3945.8.ebuild
similarity index 99%
rename from www-client/chromium/chromium-79.0.3941.4.ebuild
rename to www-client/chromium/chromium-79.0.3945.8.ebuild
index 9e2a2c46130..cf14a286871 100644
--- a/www-client/chromium/chromium-79.0.3941.4.ebuild
+++ b/www-client/chromium/chromium-79.0.3945.8.ebuild
@@ -144,14 +144,13 @@ PATCHES=(
 	"${FILESDIR}/chromium-fix-char_traits.patch"
 	"${FILESDIR}/chromium-unbundle-zlib-r1.patch"
 	"${FILESDIR}/chromium-77-system-icu.patch"
-	"${FILESDIR}/chromium-78-pm-crash.patch"
 	"${FILESDIR}/chromium-78-icon.patch"
 	"${FILESDIR}/chromium-78-protobuf-export.patch"
-	"${FILESDIR}/chromium-79-swiftshader-linux.patch"
 	"${FILESDIR}/chromium-79-system-hb.patch"
 	"${FILESDIR}/chromium-79-include.patch"
 	"${FILESDIR}/chromium-79-icu-65.patch"
 	"${FILESDIR}/chromium-79-gcc-ambiguous-nodestructor.patch"
+	"${FILESDIR}/chromium-79-gcc-name-clash.patch"
 	"${FILESDIR}/chromium-79-gcc-permissive.patch"
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"
 )

diff --git a/www-client/chromium/files/chromium-79-gcc-ambiguous-nodestructor.patch b/www-client/chromium/files/chromium-79-gcc-ambiguous-nodestructor.patch
index 24504325e46..d43a091b971 100644
--- a/www-client/chromium/files/chromium-79-gcc-ambiguous-nodestructor.patch
+++ b/www-client/chromium/files/chromium-79-gcc-ambiguous-nodestructor.patch
@@ -1,13 +1,39 @@
+From af77dc4014ead3d898fdc8a7a70fe5063ac9b102 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 25 Oct 2019 19:01:29 +0000
+Subject: [PATCH] GCC: use brace-initializer for DohUpgrade vector
+
+Constructing NoDestructor with parenthesis constructor is ambiguous
+in GCC. Use brace-initializer to avoid that problem. This fixes this
+build error:
+
+Bug: 819294
+Change-Id: I00dda42daa1794d11e022f26ac07f92e599d106d
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879910
+Reviewed-by: Eric Orth <ericorth@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#709569}
+---
+
 diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
-index 14997c4..1543e91 100644
+index 14997c4..637b6f2 100644
 --- a/net/dns/dns_util.cc
 +++ b/net/dns/dns_util.cc
-@@ -144,7 +144,7 @@ const std::vector<DohUpgradeEntry>& GetDohUpgradeList() {
+@@ -144,7 +144,7 @@
    // DohProviderId histogram suffix list in
    // tools/metrics/histograms/histograms.xml.
    static const base::NoDestructor<std::vector<DohUpgradeEntry>>
 -      upgradable_servers({
-+      upgradable_servers(std::initializer_list<DohUpgradeEntry>{
++      upgradable_servers{{
            DohUpgradeEntry(
                "CleanBrowsingAdult",
                {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
+@@ -215,7 +215,7 @@
+               {"9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9"},
+               {"dns.quad9.net", "dns9.quad9.net"} /* DoT hostname */,
+               {"https://dns.quad9.net/dns-query", true /* use_post */}),
+-      });
++      }};
+   return *upgradable_servers;
+ }
+ 

diff --git a/www-client/chromium/files/chromium-79-gcc-name-clash.patch b/www-client/chromium/files/chromium-79-gcc-name-clash.patch
new file mode 100644
index 00000000000..2324f4db7f9
--- /dev/null
+++ b/www-client/chromium/files/chromium-79-gcc-name-clash.patch
@@ -0,0 +1,135 @@
+From e925deab264e5ebc3c5c13415aa3d44a746e8d45 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 25 Oct 2019 14:53:51 +0000
+Subject: [PATCH] GCC: avoid clash of WebThemeEngine::ForcedColors with ForcedColors enum class
+
+GCC fails to build because the declaration of the enum class ForcedColors
+clashes with the GetForcedColors method.
+
+Bug: 819294
+Change-Id: I5c7647978d15c771f5372a8c70ac6aeb2284fb2f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879452
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#709469}
+
+(backported to M79)
+---
+
+diff --git a/content/child/webthemeengine_impl_android.cc b/content/child/webthemeengine_impl_android.cc
+index 2e703d6..3759f6c 100644
+--- a/content/child/webthemeengine_impl_android.cc
++++ b/content/child/webthemeengine_impl_android.cc
+@@ -228,7 +228,7 @@ void WebThemeEngineAndroid::Paint(
+       native_theme_extra_params, NativeColorScheme(color_scheme));
+ }
+ 
+-blink::ForcedColors WebThemeEngineAndroid::ForcedColors() const {
++blink::ForcedColors WebThemeEngineAndroid::GetForcedColors() const {
+   return forced_colors_;
+ }
+ 
+diff --git a/content/child/webthemeengine_impl_android.h b/content/child/webthemeengine_impl_android.h
+index 0c113a88..95e2744 100644
+--- a/content/child/webthemeengine_impl_android.h
++++ b/content/child/webthemeengine_impl_android.h
+@@ -22,7 +22,7 @@
+              const blink::WebRect& rect,
+              const blink::WebThemeEngine::ExtraParams* extra_params,
+              blink::WebColorScheme color_scheme) override;
+-  blink::ForcedColors ForcedColors() const override;
++  blink::ForcedColors GetForcedColors() const override;
+   void SetForcedColors(const blink::ForcedColors forced_colors) override;
+   blink::PreferredColorScheme PreferredColorScheme() const override;
+   void SetPreferredColorScheme(
+diff --git a/content/child/webthemeengine_impl_default.cc b/content/child/webthemeengine_impl_default.cc
+index 84db298..04af6c6 100644
+--- a/content/child/webthemeengine_impl_default.cc
++++ b/content/child/webthemeengine_impl_default.cc
+@@ -232,7 +232,7 @@
+ }
+ #endif
+ 
+-blink::ForcedColors WebThemeEngineDefault::ForcedColors() const {
++blink::ForcedColors WebThemeEngineDefault::GetForcedColors() const {
+   return ui::NativeTheme::GetInstanceForWeb()->UsesHighContrastColors()
+              ? blink::ForcedColors::kActive
+              : blink::ForcedColors::kNone;
+diff --git a/content/child/webthemeengine_impl_default.h b/content/child/webthemeengine_impl_default.h
+index 73579db..1f08f67 100644
+--- a/content/child/webthemeengine_impl_default.h
++++ b/content/child/webthemeengine_impl_default.h
+@@ -39,7 +39,7 @@
+                                     int32_t vertical_arrow_bitmap_height,
+                                     int32_t horizontal_arrow_bitmap_width);
+ #endif
+-  blink::ForcedColors ForcedColors() const override;
++  blink::ForcedColors GetForcedColors() const override;
+   void SetForcedColors(const blink::ForcedColors forced_colors) override;
+   blink::PreferredColorScheme PreferredColorScheme() const override;
+   void SetPreferredColorScheme(
+diff --git a/content/child/webthemeengine_impl_mac.cc b/content/child/webthemeengine_impl_mac.cc
+index 9cb279e..553eedb 100644
+--- a/content/child/webthemeengine_impl_mac.cc
++++ b/content/child/webthemeengine_impl_mac.cc
+@@ -6,7 +6,7 @@
+ 
+ namespace content {
+ 
+-blink::ForcedColors WebThemeEngineMac::ForcedColors() const {
++blink::ForcedColors WebThemeEngineMac::GetForcedColors() const {
+   return forced_colors_;
+ }
+ 
+diff --git a/content/child/webthemeengine_impl_mac.h b/content/child/webthemeengine_impl_mac.h
+index b3dafa1..c0b66c0 100644
+--- a/content/child/webthemeengine_impl_mac.h
++++ b/content/child/webthemeengine_impl_mac.h
+@@ -13,7 +13,7 @@
+  public:
+   ~WebThemeEngineMac() override {}
+ 
+-  blink::ForcedColors ForcedColors() const override;
++  blink::ForcedColors GetForcedColors() const override;
+   void SetForcedColors(const blink::ForcedColors forced_colors) override;
+   blink::PreferredColorScheme PreferredColorScheme() const override;
+   void SetPreferredColorScheme(
+diff --git a/third_party/blink/public/platform/web_theme_engine.h b/third_party/blink/public/platform/web_theme_engine.h
+index d642462..aa2da1b 100644
+--- a/third_party/blink/public/platform/web_theme_engine.h
++++ b/third_party/blink/public/platform/web_theme_engine.h
+@@ -227,7 +227,7 @@
+     return base::nullopt;
+   }
+ 
+-  virtual ForcedColors ForcedColors() const { return ForcedColors::kNone; }
++  virtual ForcedColors GetForcedColors() const { return ForcedColors::kNone; }
+   virtual void SetForcedColors(const blink::ForcedColors forced_colors) {}
+   virtual blink::PreferredColorScheme PreferredColorScheme() const {
+     return PreferredColorScheme::kNoPreference;
+diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/blink/renderer/core/css/media_values.cc
+index 045d793..f7c0484 100644
+--- a/third_party/blink/renderer/core/css/media_values.cc
++++ b/third_party/blink/renderer/core/css/media_values.cc
+@@ -221,7 +221,7 @@
+ 
+ ForcedColors MediaValues::CalculateForcedColors() {
+   if (Platform::Current() && Platform::Current()->ThemeEngine())
+-    return Platform::Current()->ThemeEngine()->ForcedColors();
++    return Platform::Current()->ThemeEngine()->GetForcedColors();
+   else
+     return ForcedColors::kNone;
+ }
+diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
+index 64b0d23..02cce1f 100644
+--- a/third_party/blink/renderer/core/dom/document.cc
++++ b/third_party/blink/renderer/core/dom/document.cc
+@@ -8625,7 +8625,7 @@
+ bool Document::InForcedColorsMode() const {
+   return RuntimeEnabledFeatures::ForcedColorsEnabled() && Platform::Current() &&
+          Platform::Current()->ThemeEngine() &&
+-         Platform::Current()->ThemeEngine()->ForcedColors() !=
++         Platform::Current()->ThemeEngine()->GetForcedColors() !=
+              ForcedColors::kNone;
+ }
+ 

diff --git a/www-client/chromium/files/chromium-79-gcc-permissive.patch b/www-client/chromium/files/chromium-79-gcc-permissive.patch
index e98f6f0ae38..c42d56985a6 100644
--- a/www-client/chromium/files/chromium-79-gcc-permissive.patch
+++ b/www-client/chromium/files/chromium-79-gcc-permissive.patch
@@ -1,17 +1,3 @@
-diff --git a/third_party/blink/public/platform/web_theme_engine.h b/third_party/blink/public/platform/web_theme_engine.h
-index 2b55c0b..f33d224 100644
---- a/third_party/blink/public/platform/web_theme_engine.h
-+++ b/third_party/blink/public/platform/web_theme_engine.h
-@@ -226,7 +226,7 @@ class WebThemeEngine {
-     return base::nullopt;
-   }
- 
--  virtual ForcedColors ForcedColors() const { return ForcedColors::kNone; }
-+  virtual enum ForcedColors ForcedColors() const { return ForcedColors::kNone; }
-   virtual void SetForcedColors(const blink::ForcedColors forced_colors) {}
- };
- 
-
 From 528e9a3e1f25bd264549c4c7779748abfd16bb1c Mon Sep 17 00:00:00 2001
 From: Jan Wilken Dörrie <jdoerrie@chromium.org>
 Date: Fri, 18 Oct 2019 11:45:24 +0000

diff --git a/www-client/chromium/files/chromium-79-include.patch b/www-client/chromium/files/chromium-79-include.patch
index 06decbdf06d..8f2fb56176a 100644
--- a/www-client/chromium/files/chromium-79-include.patch
+++ b/www-client/chromium/files/chromium-79-include.patch
@@ -1,59 +1,64 @@
-From d26e3fc037f477648b6265ff9cdcb2c616942fae Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Date: Tue, 15 Oct 2019 14:56:07 +0000
-Subject: [PATCH] ui/display: Include <bitset> for std::bitset
+From f7c177d35242311ea7a2cf49a0980c61664f27ba Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 25 Oct 2019 15:07:09 +0000
+Subject: [PATCH] IWYU: include algorithm to use std::lower_bound in ui/gfx/font.cc
 
-Follow-up to commit 1b7e6d75f ("ui/display: extend EdidParser for HDR
-metadata") to fix the build with libstdc++ (and maybe MSVC):
+Fix GCC build because of missing include:
+../../ui/gfx/font.cc: In function ‘gfx::Font::Weight gfx::FontWeightFromInt(int)’:
+../../ui/gfx/font.cc:114:8: error: no matching function for call to ‘lower_bound(const gfx::Font::Weight*, const gfx::Font::Weight*, int&, gfx::FontWeightFromInt(int)::<lambda(const gfx::Font::Weight&, const int&)>)’
+       });
+        ^
+In file included from /usr/include/c++/8/bits/char_traits.h:39,
+                 from /usr/include/c++/8/string:40,
+                 from ../../ui/gfx/font.h:8,
+                 from ../../ui/gfx/font.cc:5:
+/usr/include/c++/8/bits/stl_algobase.h:984:5: note: candidate: ‘template<class _ForwardIterator, class _Tp> _ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&)’
+     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
+     ^~~~~~~~~~~
+/usr/include/c++/8/bits/stl_algobase.h:984:5: note:   template argument deduction/substitution failed:
+../../ui/gfx/font.cc:114:8: note:   candidate expects 3 arguments, 4 provided
+       });
+        ^
 
-./../../ui/display/util/edid_parser.cc:416:22: error: no template named 'bitset' in namespace 'std'
-          const std::bitset<kMaxNumColorimetryEntries>
-                ~~~~~^
-./../../ui/display/util/edid_parser.cc:430:22: error: no template named 'bitset' in namespace 'std'
-          const std::bitset<kMaxNumHDRStaticMedatataEntries>
-                ~~~~~^
-
-Bug: 957519, 1012846
-Change-Id: Ic3c9c9416ac446bde9f190b9575ef1a386aa8e8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862917
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Commit-Queue: Miguel Casas <mcasas@chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Reviewed-by: Miguel Casas <mcasas@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#705965}
----
-
-diff --git a/ui/display/util/edid_parser.cc b/ui/display/util/edid_parser.cc
-index 44f2fdb..1adebb7 100644
---- a/ui/display/util/edid_parser.cc
-+++ b/ui/display/util/edid_parser.cc
-@@ -7,6 +7,7 @@
- #include <stddef.h>
- 
- #include <algorithm>
-+#include <bitset>
- 
- #include "base/hash/hash.h"
- #include "base/strings/string_util.h"
-
-IWYU: add missing algorithm
+Bug: 819294
+Change-Id: Ic59dcf3a06bdd54d1d426c08a61624873a0ff30c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879909
+Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
+Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#709472}
 ---
 
 diff --git a/ui/gfx/font.cc b/ui/gfx/font.cc
-index 21367fd..085baeb 100644
+index 21367fd7..92b159e 100644
 --- a/ui/gfx/font.cc
 +++ b/ui/gfx/font.cc
-@@ -8,6 +8,8 @@
- #include "build/build_config.h"
- #include "ui/gfx/platform_font.h"
+@@ -4,6 +4,8 @@
+ 
+ #include "ui/gfx/font.h"
  
 +#include <algorithm>
 +
- namespace gfx {
- 
- ////////////////////////////////////////////////////////////////////////////////
+ #include "base/strings/utf_string_conversions.h"
+ #include "build/build_config.h"
+ #include "ui/gfx/platform_font.h"
 
-IWYU: add missing vector
+From 97eb905ba262382bc3583078761c68f4452aea71 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 25 Oct 2019 09:27:53 +0000
+Subject: [PATCH] IWYU: launch_manager.h uses std::vector
+
+Add #include <vector> for using std::vector. This fixes GCC build.
+
+./../chrome/browser/apps/launch_service/launch_manager.h:46:15: error: ‘vector’ in namespace ‘std’ does not name a template type
+   static std::vector<base::FilePath> GetLaunchFilesFromCommandLine(
+               ^~~~~~
+
+Bug: 819294
+Change-Id: I02ec3a2914a8fbe3aa0041017a0228f4b0ca1ec9
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879289
+Reviewed-by: Alexey Baskakov <loyso@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#709411}
 ---
 
 diff --git a/chrome/browser/apps/launch_service/launch_manager.h b/chrome/browser/apps/launch_service/launch_manager.h
@@ -68,3 +73,59 @@ index 00aeb9d..76570ea 100644
  
  #include "base/macros.h"
  
+From e7407ce7fa262e9fd1a19dd0957e5a950520ee3a Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 25 Oct 2019 08:25:45 +0000
+Subject: [PATCH] IWYU: include cstdint in register_context.h as it uses uintptr_t
+
+GCC build fix as build fails with this:
+../../base/profiler/register_context.h:31:1: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
+ uintptr_t& AsUintPtr(T* value) {
+ ^~~~~~~~~
+ intptr_t
+../../base/profiler/register_context.h:110:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
+   uintptr_t stack_pointer;
+   ^~~~~~~~~
+   intptr_t
+../../base/profiler/register_context.h:111:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
+   uintptr_t frame_pointer;
+   ^~~~~~~~~
+   intptr_t
+../../base/profiler/register_context.h:112:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
+   uintptr_t instruction_pointer;
+   ^~~~~~~~~
+   intptr_t
+../../base/profiler/register_context.h:115:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
+ inline uintptr_t& RegisterContextStackPointer(RegisterContext* context) {
+        ^~~~~~~~~
+        intptr_t
+../../base/profiler/register_context.h:119:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
+ inline uintptr_t& RegisterContextFramePointer(RegisterContext* context) {
+        ^~~~~~~~~
+        intptr_t
+../../base/profiler/register_context.h:123:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’?
+ inline uintptr_t& RegisterContextInstructionPointer(RegisterContext* context) {
+        ^~~~~~~~~
+        intptr_t
+
+
+Bug: 819294
+Change-Id: I49567b00a6f021686c52053a22fb9c502c84f1bc
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879908
+Reviewed-by: Mike Wittman <wittman@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#709398}
+---
+
+diff --git a/base/profiler/register_context.h b/base/profiler/register_context.h
+index 46c4250..7dd86ff 100644
+--- a/base/profiler/register_context.h
++++ b/base/profiler/register_context.h
+@@ -9,6 +9,7 @@
+ #ifndef BASE_PROFILER_REGISTER_CONTEXT_H_
+ #define BASE_PROFILER_REGISTER_CONTEXT_H_
+ 
++#include <cstdint>
+ #include <type_traits>
+ 
+ #include "build/build_config.h"

diff --git a/www-client/chromium/files/chromium-79-swiftshader-linux.patch b/www-client/chromium/files/chromium-79-swiftshader-linux.patch
deleted file mode 100644
index 3219dcd254b..00000000000
--- a/www-client/chromium/files/chromium-79-swiftshader-linux.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From 74acd924593c427e5d3528d9ca6fdf2f4cd1383a Mon Sep 17 00:00:00 2001
-From: David 'Digit' Turner <digit@google.com>
-Date: Mon, 14 Oct 2019 15:28:36 +0200
-Subject: [PATCH] [linux]: Remove linux namespace.
-
-'linux' turns out to be a prebuilt macro for GCC (not Clang)
-so using "namespace linux { ... }" actually does not compile.
-
-This CL fixes the issue by removing the namespace, and using
-Linux as a prefix for the corresponding class.
-
-Bug: 140419396
-Change-Id: I1e980bc66b2cf8f2e21d9f7076918e2b476ae4d4
----
-
-diff --git a/third_party/swiftshader/src/System/Linux/MemFd.cpp b/third_party/swiftshader/src/System/Linux/MemFd.cpp
-index 22b77e4..a8f99e2 100644
---- a/third_party/swiftshader/src/System/Linux/MemFd.cpp
-+++ b/third_party/swiftshader/src/System/Linux/MemFd.cpp
-@@ -37,21 +37,18 @@
- #define __NR_memfd_create 319
- #endif /* __NR_memfd_create__ */
- 
--namespace linux
--{
--
--MemFd::~MemFd()
-+LinuxMemFd::~LinuxMemFd()
- {
- 	close();
- }
- 
--void MemFd::importFd(int fd)
-+void LinuxMemFd::importFd(int fd)
- {
- 	close();
- 	fd_ = fd;
- }
- 
--int MemFd::exportFd() const
-+int LinuxMemFd::exportFd() const
- {
- 	if (fd_ < 0)
- 	{
-@@ -62,7 +59,7 @@
- 	return ::fcntl(fd_, F_DUPFD_CLOEXEC, 0);
- }
- 
--bool MemFd::allocate(const char* name, size_t size)
-+bool LinuxMemFd::allocate(const char* name, size_t size)
- {
- 	close();
- 
-@@ -89,7 +86,7 @@
- 	return true;
- }
- 
--void MemFd::close()
-+void LinuxMemFd::close()
- {
- 	if (fd_ >= 0)
- 	{
-@@ -97,23 +94,21 @@
- 		// https://lwn.net/Articles/576478/ for example.
- 		int ret = ::close(fd_);
- 		if (ret < 0) {
--			TRACE("MemFd::close() failed with: %s", strerror(errno));
-+			TRACE("LinuxMemFd::close() failed with: %s", strerror(errno));
- 			assert(false);
- 		}
- 		fd_ = -1;
- 	}
- }
- 
--void* MemFd::mapReadWrite(size_t offset, size_t size)
-+void* LinuxMemFd::mapReadWrite(size_t offset, size_t size)
- {
- 	void* addr = ::mmap(nullptr, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd_,
- 						static_cast<off_t>(offset));
- 	return (addr == MAP_FAILED) ? nullptr : addr;
- }
- 
--bool MemFd::unmap(void* addr, size_t size)
-+bool LinuxMemFd::unmap(void* addr, size_t size)
- {
- 	return ::munmap(addr, size) == 0;
- }
--
--}  // namespace linux
-diff --git a/third_party/swiftshader/src/System/Linux/MemFd.hpp b/third_party/swiftshader/src/System/Linux/MemFd.hpp
-index 8b88473..209d642 100644
---- a/third_party/swiftshader/src/System/Linux/MemFd.hpp
-+++ b/third_party/swiftshader/src/System/Linux/MemFd.hpp
-@@ -22,18 +22,15 @@
- // supported by the Linux kernel since 3.17 (good enough for Android and desktop
- // Linux).
- 
--namespace linux
--{
--
--class MemFd {
-+class LinuxMemFd {
- public:
--	MemFd() = default;
-+	LinuxMemFd() = default;
- 
--	MemFd(const char* name, size_t size) : MemFd() {
-+	LinuxMemFd(const char* name, size_t size) : LinuxMemFd() {
- 		allocate(name, size);
- 	}
- 
--	~MemFd();
-+	~LinuxMemFd();
- 
- 	// Return true iff the region is valid/allocated.
- 	bool isValid() const { return fd_ >= 0; }
-@@ -68,6 +65,4 @@
- 	int fd_ = -1;
- };
- 
--}  // namespace linux
--
- #endif  // MEMFD_LINUX
-diff --git a/third_party/swiftshader/tests/SystemUnitTests/unittests.cpp b/third_party/swiftshader/tests/SystemUnitTests/unittests.cpp
-index 53ff9ec..9026b55 100644
---- a/third_party/swiftshader/tests/SystemUnitTests/unittests.cpp
-+++ b/third_party/swiftshader/tests/SystemUnitTests/unittests.cpp
-@@ -26,14 +26,14 @@
- 
- #ifdef __linux__
- TEST(MemFd, DefaultConstructor) {
--	linux::MemFd memfd;
-+	LinuxMemFd memfd;
- 	ASSERT_FALSE(memfd.isValid());
- 	ASSERT_EQ(-1, memfd.exportFd());
- }
- 
- TEST(MemFd, AllocatingConstructor) {
- 	const size_t kRegionSize = sw::memoryPageSize() * 8;
--	linux::MemFd memfd("test-region", kRegionSize);
-+	LinuxMemFd memfd("test-region", kRegionSize);
- 	ASSERT_TRUE(memfd.isValid());
- 	ASSERT_GE(memfd.fd(), 0);
- 	void* addr = memfd.mapReadWrite(0, kRegionSize);
-@@ -43,7 +43,7 @@
- 
- TEST(MemFd, ExplicitAllocation) {
- 	const size_t kRegionSize = sw::memoryPageSize() * 8;
--	linux::MemFd memfd;
-+	LinuxMemFd memfd;
- 	ASSERT_FALSE(memfd.isValid());
- 	ASSERT_EQ(-1, memfd.exportFd());
- 	ASSERT_TRUE(memfd.allocate("test-region", kRegionSize));
-@@ -52,7 +52,7 @@
- 
- TEST(MemFd, Close) {
- 	const size_t kRegionSize = sw::memoryPageSize() * 8;
--	linux::MemFd memfd("test-region", kRegionSize);
-+	LinuxMemFd memfd("test-region", kRegionSize);
- 	ASSERT_TRUE(memfd.isValid());
- 	int fd = memfd.exportFd();
- 	memfd.close();
-@@ -63,7 +63,7 @@
- 
- TEST(MemFd, ExportImportFd) {
- 	const size_t kRegionSize = sw::memoryPageSize() * 8;
--	linux::MemFd memfd("test-region1", kRegionSize);
-+	LinuxMemFd memfd("test-region1", kRegionSize);
- 	auto* addr = reinterpret_cast<uint8_t*>(memfd.mapReadWrite(0, kRegionSize));
- 	ASSERT_TRUE(addr);
- 	for (size_t n = 0; n < kRegionSize; ++n)
-@@ -74,7 +74,7 @@
- 	ASSERT_TRUE(memfd.unmap(addr, kRegionSize));
- 	memfd.close();
- 
--	linux::MemFd memfd2;
-+	LinuxMemFd memfd2;
- 	memfd2.importFd(fd);
- 	ASSERT_TRUE(memfd2.isValid());
- 	addr = reinterpret_cast<uint8_t*>(memfd2.mapReadWrite(0, kRegionSize));


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-10-27 14:40 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-10-27 14:40 UTC (permalink / raw
  To: gentoo-commits

commit:     f39b48f3c96f1881eea8ba2bd5b3c0e19e091c4a
Author:     Stephan Hartmann <stephan.hartmann <AT> tu-dresden <DOT> de>
AuthorDate: Sun Oct 27 12:29:32 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Oct 27 14:39:36 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f39b48f3

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/698398
Closes: https://github.com/gentoo/gentoo/pull/13465
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 -
 www-client/chromium/chromium-77.0.3865.120.ebuild  | 733 ---------------------
 .../chromium/files/chromium-77-blink-include.patch |  28 -
 .../chromium/files/chromium-77-fix-gn-gen.patch    |  11 -
 .../chromium/files/chromium-77-gcc-abstract.patch  |  61 --
 .../chromium/files/chromium-77-gcc-alignas.patch   |  72 --
 .../chromium/files/chromium-77-gcc-include.patch   |  26 -
 .../chromium/files/chromium-77-no-cups.patch       |  42 --
 .../chromium/files/chromium-77-std-string.patch    | 130 ----
 .../chromium/files/chromium-77-system-hb.patch     |  13 -
 .../chromium/files/chromium-unbundle-zlib.patch    |  25 -
 11 files changed, 1142 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1e46a565387..f2606637827 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,3 @@
-DIST chromium-77.0.3865.120.tar.xz 729636120 BLAKE2B 7ff2467b5dd421c3962dd86503975fe042ced4a44e9d3705106ee9c9a7ceaa94c38fea2aefe4913bfe4af40775cb37b175d9a6c70b67d807c227f7e363ba5783 SHA512 4c72c9e9cd9a5d7f89e33c52d117018418ce0f5d23a57341b26ce47c8f90fa55f52a0c976b6959026dc273d5b37aa57306253a9b533172cd133a815edc7bccb4
 DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9ab14fa80b042b4237cabdbcb06425e4d1c72200ec49c3c1383cfc95013cce4df411b0a2397b79030d41a0379ae80a0c60bae1fbb5ffa SHA512 dcb62b82b34d5d6982762cacfe3ab7d3538d908b3befe7666f5d70d98ba4f979b5bf056e5c5343ed76aa744a643318fc5a75ddedfcb1b7de3e7c28eb2587439f
 DIST chromium-78.0.3904.70.tar.xz 742787108 BLAKE2B 623a0359f461672d8d6c97b4703f5b50c6ac423350ba96b7f37582be38d9cc66674e441b506405bc5f136df19df886036ef5abae4b8c2e4e953ec296e2a25bb4 SHA512 95d926ea92a0e744284a4c5fca619e3a067dd0fdfaa7c05b5a069d2a8d1159bf849335e21e5803bd28175c1994bd4ff15337ad0a3063445fab74eef113275545
 DIST chromium-79.0.3941.4.tar.xz 772100680 BLAKE2B 2a510529ae9a58c2c831bd293eb1a9ea276422da6f49741be208bcf8c17eafa0e47c0adf8e3f1148f3da821188315e9d6c7f2de1c44dd844f5d481be17b35ef7 SHA512 5847f7c647737ea96c27f859e5b763100c4d0ecff83eb33d81d144e3be16a5a709290a66fa6754b8a38be68c850dee4be0abc2419f5a50e0cf22bc37a0563c80

diff --git a/www-client/chromium/chromium-77.0.3865.120.ebuild b/www-client/chromium/chromium-77.0.3865.120.ebuild
deleted file mode 100644
index 0dbd8e2289d..00000000000
--- a/www-client/chromium/chromium-77.0.3865.120.ebuild
+++ /dev/null
@@ -1,733 +0,0 @@
-# Copyright 2009-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts jumbo-build kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-64:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	!<www-plugins/chrome-binary-plugins-57
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-util/gn
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	closure-compile? ( virtual/jre )
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r10.patch"
-	"${FILESDIR}/chromium-widevine-r4.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-unbundle-zlib.patch"
-	"${FILESDIR}/chromium-77-pulseaudio-13.patch"
-	"${FILESDIR}/chromium-77-fix-gn-gen.patch"
-	"${FILESDIR}/chromium-77-system-icu.patch"
-	"${FILESDIR}/chromium-77-system-hb.patch"
-	"${FILESDIR}/chromium-77-clang.patch"
-	"${FILESDIR}/chromium-77-blink-include.patch"
-	"${FILESDIR}/chromium-77-std-string.patch"
-	"${FILESDIR}/chromium-77-no-cups.patch"
-	"${FILESDIR}/chromium-77-gcc-abstract.patch"
-	"${FILESDIR}/chromium-77-gcc-include.patch"
-	"${FILESDIR}/chromium-77-gcc-alignas.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-		# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
-		if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
-			die "Component build with tcmalloc requires FEATURES=-usersandbox."
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="7G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/dmg_fp
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/boringssl/src/third_party/sike
-		third_party/boringssl/linux-aarch64/crypto/third_party/sike
-		third_party/boringssl/linux-x86_64/crypto/third_party/sike
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/devscripts
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/flot
-		third_party/freetype
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/one_euro_filter
-		third_party/openscreen
-		third_party/openscreen/src/third_party/tinycbor/src/src
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/skcms
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/gif
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/subzero
-		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
-	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-
-	# Build manpage; bug #684550
-	sed -e 's|@@PACKAGE@@|chromium-browser|g;
-		s|@@MENUNAME@@|Chromium|g;' \
-		chrome/app/resources/manpage.1.in > \
-		out/Release/chromium-browser.1 || die
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser \
-		"Chromium" \
-		chromium-browser \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser.1
-	dosym chromium-browser.1 /usr/share/man/man1/chromium.1
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-77-blink-include.patch b/www-client/chromium/files/chromium-77-blink-include.patch
deleted file mode 100644
index 3ac1770fb8e..00000000000
--- a/www-client/chromium/files/chromium-77-blink-include.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
-From: Dave Tapuska <dtapuska@chromium.org>
-Date: Mon, 12 Aug 2019 22:30:13 +0000
-Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
-
-Some configurations fail to build, limits should have been included.
-
-BUG=992832
-
-Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
-Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
-Reviewed-by: Mostyn Bramley-Moore <mostynb@vewd.com>
-Cr-Commit-Position: refs/heads/master@{#686214}
----
-
-diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
-index 384566a..68d83e1 100644
---- a/third_party/blink/renderer/platform/exported/web_time_range.cc
-+++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
-@@ -31,6 +31,7 @@
- #include "third_party/blink/public/platform/web_time_range.h"
- 
- #include <cmath>
-+#include <limits>
- 
- namespace blink {
- 

diff --git a/www-client/chromium/files/chromium-77-fix-gn-gen.patch b/www-client/chromium/files/chromium-77-fix-gn-gen.patch
deleted file mode 100644
index 2c5f128cbc9..00000000000
--- a/www-client/chromium/files/chromium-77-fix-gn-gen.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/third_party/blink/tools/BUILD.gn
-+++ b/third_party/blink/tools/BUILD.gn
-@@ -11,7 +11,7 @@ action("build_wpt_metadata") {
-     rebase_path("$root_out_dir/wpt_expectations_metadata"),
-   ]
-   outputs = [
--    "$root_out_dir/wpt_expectations_metadata/",
-+    "$root_out_dir/wpt_expectations_metadata",
-   ]
-   data = [
-     # Include the blinkpy tools to access expectations data

diff --git a/www-client/chromium/files/chromium-77-gcc-abstract.patch b/www-client/chromium/files/chromium-77-gcc-abstract.patch
deleted file mode 100644
index 6d77299ee6c..00000000000
--- a/www-client/chromium/files/chromium-77-gcc-abstract.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 26 Jul 2019 16:48:06 +0000
-Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
-
-The method UploadForDeepScanning gets a Request as parameter. But Request is an
-abstract class, so GCC will not allow that declaration (polimorphycs should be
-passed by reference). Use std::unique_ptr so BinaryUploadService can assume
-ownership.
-
-Bug: 819294
-Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
-Reviewed-by: Daniel Rubery <drubery@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#681333}
----
-
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-index 6430c89..4e90487 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-@@ -10,7 +10,7 @@
- namespace safe_browsing {
- 
- void BinaryUploadService::UploadForDeepScanning(
--    BinaryUploadService::Request request) {
-+    std::unique_ptr<BinaryUploadService::Request> request) {
-   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-   NOTREACHED();
- }
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-index d2dfd83..9b6f395 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-@@ -5,6 +5,8 @@
- #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
- #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
- 
-+#include <memory>
-+
- #include "base/callback.h"
- #include "components/safe_browsing/proto/webprotect.pb.h"
- 
-@@ -40,6 +42,7 @@
-    public:
-     // |callback| will run on the UI thread.
-     explicit Request(Callback callback);
-+    virtual ~Request() = default;
-     Request(const Request&) = delete;
-     Request& operator=(const Request&) = delete;
- 
-@@ -67,7 +70,7 @@
-   // Upload the given file contents for deep scanning. The results will be
-   // returned asynchronously by calling |request|'s |callback|. This must be
-   // called on the UI thread.
--  void UploadForDeepScanning(Request request);
-+  void UploadForDeepScanning(std::unique_ptr<Request> request);
- };
- 
- }  // namespace safe_browsing

diff --git a/www-client/chromium/files/chromium-77-gcc-alignas.patch b/www-client/chromium/files/chromium-77-gcc-alignas.patch
deleted file mode 100644
index 3693ef50bed..00000000000
--- a/www-client/chromium/files/chromium-77-gcc-alignas.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 6b633c4b14850df376d5cec571699018772f358e Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela@gmail.com>
-Date: Tue, 17 Sep 2019 19:48:48 +0000
-Subject: [PATCH] GCC: Can't use alignas() together with __attribute__()
-
-It's because GCC has problems when mixing the alignas() together with
-__attribute__() (that is used to export the symbols). The best
-solution is to use ALIGNAS() macro from //base/compiler_specific.h
-together with alignof() to have the equal functionality that compiles on
-GCC as well as on clang.
-
-Bug: 819294
-Change-Id: Ieb169592a2965f17a18bfc88d28418eb723a4e5a
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1806735
-Auto-Submit: Tomáš Popela <tomas.popela@gmail.com>
-Commit-Queue: Alex Clarke <alexclarke@chromium.org>
-Reviewed-by: Alex Clarke <alexclarke@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#697330}
----
-
-diff --git a/base/task/promise/dependent_list.h b/base/task/promise/dependent_list.h
-index 020bdbfc..3245c1c 100644
---- a/base/task/promise/dependent_list.h
-+++ b/base/task/promise/dependent_list.h
-@@ -59,7 +59,7 @@
- 
-   // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
-   // be used to store additional state (see static_asserts below).
--  class BASE_EXPORT alignas(8) Node {
-+  class BASE_EXPORT ALIGNAS(8) Node {
-    public:
-     Node();
-     explicit Node(Node&& other) noexcept;
-
-From 8148fd96ae04a1150a9c6012634dcd2a7335f87a Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela@gmail.com>
-Date: Tue, 20 Aug 2019 05:23:14 +0000
-Subject: [PATCH] GCC: Can't use alignas() together with __attribute__()
-
-It's because GCC has problems when mixing the alignas() together with
-__attribute__() (that is used to export the symbols). The best
-solution is to use ALIGNAS() macro from //base/compiler_specific.h
-together with alignof() to have the equal functionality that compiles on
-GCC as well as on clang.
-
-This is a regression after https://crrev.com/659933.
-
-Bug: 994581
-Change-Id: Ia376866ff9ac57d52d2e907fa325ae5a51893d07
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1758064
-Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
-Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
-Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
-Auto-Submit: Tomáš Popela <tomas.popela@gmail.com>
-Cr-Commit-Position: refs/heads/master@{#688417}
----
-
-diff --git a/third_party/blink/renderer/core/css/css_property_value_set.h b/third_party/blink/renderer/core/css/css_property_value_set.h
-index 67b353d..1bd404e 100644
---- a/third_party/blink/renderer/core/css/css_property_value_set.h
-+++ b/third_party/blink/renderer/core/css/css_property_value_set.h
-@@ -175,8 +175,8 @@
-   DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
- };
- 
--class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
--    CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
-+class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
-+    ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
-     : public CSSPropertyValueSet {
-  public:
-   ImmutableCSSPropertyValueSet(const CSSPropertyValue*,

diff --git a/www-client/chromium/files/chromium-77-gcc-include.patch b/www-client/chromium/files/chromium-77-gcc-include.patch
deleted file mode 100644
index 391f48fd2d9..00000000000
--- a/www-client/chromium/files/chromium-77-gcc-include.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 8c747a9c14ed4905f60f6680e2e09e33ea34163e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 26 Jul 2019 16:18:17 +0000
-Subject: [PATCH] IWYU: include <memory> in one_euro_filter.h as it uses std::unique_ptr
-
-Bug: 819294
-Change-Id: Ie1530f7046b0c8eb76e26adca530fa57c67ed876
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1720637
-Reviewed-by: Ella Ge <eirage@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#681321}
----
-
-diff --git a/third_party/one_euro_filter/src/one_euro_filter.h b/third_party/one_euro_filter/src/one_euro_filter.h
-index 7f8d15b..a8cd0ab 100644
---- a/third_party/one_euro_filter/src/one_euro_filter.h
-+++ b/third_party/one_euro_filter/src/one_euro_filter.h
-@@ -1,6 +1,8 @@
- #ifndef ONE_EURO_ONE_EURO_FILTER_H_
- #define ONE_EURO_ONE_EURO_FILTER_H_
- 
-+#include <memory>
-+
- #include "low_pass_filter.h"
- 
- namespace one_euro_filter {

diff --git a/www-client/chromium/files/chromium-77-no-cups.patch b/www-client/chromium/files/chromium-77-no-cups.patch
deleted file mode 100644
index ac714178ed3..00000000000
--- a/www-client/chromium/files/chromium-77-no-cups.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f768afdd3104e7da663aa82e1e8f969aea3f85c3 Mon Sep 17 00:00:00 2001
-From: Lei Zhang <thestig@chromium.org>
-Date: Thu, 22 Aug 2019 11:44:27 -0700
-Subject: [PATCH] Handle unsupported configs in CreatePrinterHandlerTaskRunner().
-
-CreatePrinterHandlerTaskRunner(), which was added in
-https://crrev.com/658397, used ifdefs to only handle the supported build
-configs. Add a #else case as a catch-all to conservatively handle the
-unsupported configs. Since it is only a couple lines of trivial code,
-doing this does not create much of a maintenance burden.
-
-(backported to chromium-77)
-
-Bug: 990727
-Change-Id: I07bd21abaeffc8223e88b519c3891185d5d2be12
----
-
-diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc b/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
-index a1f3fd3..6e81f5e 100644
---- a/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
-+++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
-@@ -33,12 +33,15 @@ scoped_refptr<base::TaskRunner> CreatePrinterHandlerTaskRunner() {
-   static constexpr base::TaskTraits kTraits = {
-       base::MayBlock(), base::TaskPriority::USER_VISIBLE};
-
--#if defined(OS_WIN)
--  // Windows drivers are likely not thread-safe.
--  return base::CreateSingleThreadTaskRunnerWithTraits(kTraits);
--#elif defined(USE_CUPS)
-+#if defined(USE_CUPS)
-   // CUPS is thread safe.
--  return base::CreateTaskRunnerWithTraits(kTraits);
-+  return base::CreateTaskRunner(kTraits);
-+#elif defined(OS_WIN)
-+  // Windows drivers are likely not thread-safe.
-+  return base::CreateSingleThreadTaskRunner(kTraits);
-+#else
-+  // Be conservative on unsupported platforms.
-+  return base::CreateSingleThreadTaskRunner(kTraits);
- #endif
- }
-

diff --git a/www-client/chromium/files/chromium-77-std-string.patch b/www-client/chromium/files/chromium-77-std-string.patch
deleted file mode 100644
index f921f1aac94..00000000000
--- a/www-client/chromium/files/chromium-77-std-string.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
-From: Jeremy Roman <jbroman@chromium.org>
-Date: Wed, 07 Aug 2019 13:26:48 +0000
-Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
-
-Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
-
-Bug: 980025
-Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
-Reviewed-by: Kentaro Hara <haraken@chromium.org>
-Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
-Commit-Queue: Jeremy Roman <jbroman@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#684731}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-index 0efc8fb..90063cb 100644
---- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
-+++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-@@ -133,6 +133,10 @@
- 
- struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
-   STATIC_ONLY(FontCacheKeyTraits);
-+
-+  // std::string's empty state need not be zero in all implementations,
-+  // and it is held within FontFaceCreationParams.
-+  static const bool kEmptyValueIsZero = false;
- };
- 
- }  // namespace blink
-diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-index b35b6e9..77e524c 100644
---- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-+++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-@@ -146,6 +146,11 @@
-                     LinkedHashSetNodeBase* next)
-       : LinkedHashSetNodeBase(prev, next), value_(value) {}
- 
-+  LinkedHashSetNode(ValueArg&& value,
-+                    LinkedHashSetNodeBase* prev,
-+                    LinkedHashSetNodeBase* next)
-+      : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
-+
-   LinkedHashSetNode(LinkedHashSetNode&& other)
-       : LinkedHashSetNodeBase(std::move(other)),
-         value_(std::move(other.value_)) {}
-@@ -445,10 +450,13 @@
- 
-   // The slot is empty when the next_ field is zero so it's safe to zero
-   // the backing.
--  static const bool kEmptyValueIsZero = true;
-+  static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
- 
-   static const bool kHasIsEmptyValueFunction = true;
-   static bool IsEmptyValue(const Node& node) { return !node.next_; }
-+  static Node EmptyValue() {
-+    return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
-+  }
- 
-   static const int kDeletedValue = -1;
- 
-diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-index 4c3f899..cd1be00 100644
---- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-+++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-@@ -487,6 +487,7 @@
- };
- 
- struct Complicated {
-+  Complicated() : Complicated(0) {}
-   Complicated(int value) : simple_(value) { objects_constructed_++; }
- 
-   Complicated(const Complicated& other) : simple_(other.simple_) {
-@@ -495,9 +496,6 @@
- 
-   Simple simple_;
-   static int objects_constructed_;
--
-- private:
--  Complicated() = delete;
- };
- 
- int Complicated::objects_constructed_ = 0;
-@@ -731,4 +729,45 @@
- 
- }  // anonymous namespace
- 
-+// A unit type which objects to its state being initialized wrong.
-+struct InvalidZeroValue {
-+  InvalidZeroValue() = default;
-+  InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
-+  ~InvalidZeroValue() { CHECK(ok_); }
-+  bool IsHashTableDeletedValue() const { return deleted_; }
-+
-+  bool ok_ = true;
-+  bool deleted_ = false;
-+};
-+
-+template <>
-+struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
-+  static const bool kEmptyValueIsZero = false;
-+};
-+
-+template <>
-+struct DefaultHash<InvalidZeroValue> {
-+  struct Hash {
-+    static unsigned GetHash(const InvalidZeroValue&) { return 0; }
-+    static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
-+      return true;
-+    }
-+  };
-+};
-+
-+template <typename Set>
-+class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
-+
-+using InvalidZeroValueSetTypes =
-+    testing::Types<ListHashSet<InvalidZeroValue>,
-+                   ListHashSet<InvalidZeroValue, 1>,
-+                   LinkedHashSet<InvalidZeroValue>>;
-+TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
-+
-+TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
-+  using Set = TypeParam;
-+  Set set;
-+  set.insert(InvalidZeroValue());
-+}
-+
- }  // namespace WTF

diff --git a/www-client/chromium/files/chromium-77-system-hb.patch b/www-client/chromium/files/chromium-77-system-hb.patch
deleted file mode 100644
index 9cea0fac6c5..00000000000
--- a/www-client/chromium/files/chromium-77-system-hb.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
-index 37d8e33..6610cc6 100644
---- a/third_party/harfbuzz-ng/BUILD.gn
-+++ b/third_party/harfbuzz-ng/BUILD.gn
-@@ -16,7 +16,7 @@ if (use_system_harfbuzz) {
-       "//third_party:freetype_harfbuzz",
-       "//third_party/freetype:freetype_source",
-     ]
--    packages = [ "harfbuzz" ]
-+    packages = [ "harfbuzz", "harfbuzz-subset" ]
-   }
- } else {
-   config("harfbuzz_config") {

diff --git a/www-client/chromium/files/chromium-unbundle-zlib.patch b/www-client/chromium/files/chromium-unbundle-zlib.patch
deleted file mode 100644
index d6c45ad816d..00000000000
--- a/www-client/chromium/files/chromium-unbundle-zlib.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
-From: Your Name <you@example.com>
-Date: Fri, 28 Jun 2019 15:56:23 +0000
-Subject: [PATCH] update zlib
-
----
- third_party/perfetto/gn/BUILD.gn | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
-index c951f5f..297eee3 100644
---- a/third_party/perfetto/gn/BUILD.gn
-+++ b/third_party/perfetto/gn/BUILD.gn
-@@ -200,7 +200,7 @@ group("zlib") {
-       "//buildtools:zlib",
-     ]
-   } else if (build_with_chromium) {
--    public_configs = [ "//third_party/zlib:zlib_config" ]
-+    public_configs = [ "//third_party/zlib:system_zlib" ]
-     public_deps = [
-       "//third_party/zlib",
-     ]
--- 
-2.21.0
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-08-27 17:25 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-08-27 17:25 UTC (permalink / raw
  To: gentoo-commits

commit:     0abfc525b11efc5a04b2f5ae7f757f1f530a3028
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Aug 27 08:24:54 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Aug 27 17:25:02 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0abfc525

www-client/chromium: stable channel bump to 76.0.3809.132

Bug: https://bugs.gentoo.org/691354
Bug: https://bugs.gentoo.org/692916
Closes: https://github.com/gentoo/gentoo/pull/12800
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-76.0.3809.132.ebuild  | 720 +++++++++++++++++++++
 .../chromium/files/chromium-76-no-cups.patch       |  41 ++
 3 files changed, 762 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 99a63a6b936..b9aa2b08c05 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-76.0.3809.100.tar.xz 728852892 BLAKE2B 1bd80f7fd50f82843f9367bd8d5648bcbe4b763594679cc7f57084390da840cc89d7771ffd844e3d0a3c3248d8f98a1babecabaf4c3104fa7a89efed88eae608 SHA512 63cfb45dc6bb0b1662ba4ffebc6313c24d65dae10a61752575e34a24d8d3d6f80e0422a984b560b259c299d6e493dfa177907201a1c1f785a7e294c9a03bd8a1
+DIST chromium-76.0.3809.132.tar.xz 728899912 BLAKE2B 725513b659f613c5827f5e847dde8c5ea448adb3a3d5561312ad05d54293c72150b010e6c804fb17be22882e4c87f2ebcdd40d08dbd601d78573678fd9d195c9 SHA512 e267d4a975fdcc33125d8fed1597e2dc8ec37a78ee2f9a4e03a1aaf6b83b594b444280b7f2ee68b41d227e7daf31b9de91ab2f998f9146613ebd50651c0d16e8
 DIST chromium-77.0.3865.42.tar.xz 733180328 BLAKE2B 6216edc93235ceda6fbe05fab935f028965ad9c363d80012f192d77462f7381f644809a23becc9850780c3a93e6863f8e3263631fe86e0334ecbe65d58008868 SHA512 2b6fa1b637d52d3ac8bc9fded568957332a7f0c7a2fac32c80385c2398ac1ee0546d399960bc5c8fe8df7fceefd2113c0f1be41107da0642294333064870f773
 DIST chromium-78.0.3887.7.tar.xz 737057024 BLAKE2B b4754f1fa9a243c29e83d6136494c6db1726a6d3f23013115a4a576428f7ca3c0fcd3f81cf7fe4037f2c3e6901b3fce015aeed7b7b945b4a3e368f2e6fb9afa1 SHA512 9b8eb33c6f19e5b247372e19a61ec1ae6c804bd7b9731222430e2e1b585146fc543a686ccfc9553d6d137999570c544cdb45696db6ce50c38dfead1b0760c1a4

diff --git a/www-client/chromium/chromium-76.0.3809.132.ebuild b/www-client/chromium/chromium-76.0.3809.132.ebuild
new file mode 100644
index 00000000000..8f2e8861c6f
--- /dev/null
+++ b/www-client/chromium/chromium-76.0.3809.132.ebuild
@@ -0,0 +1,720 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts jumbo-build kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-64:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.11.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.2.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12-r0
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	<dev-util/gn-0.1583
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	closure-compile? ( virtual/jre )
+	virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r10.patch"
+	"${FILESDIR}/chromium-widevine-r4.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-angle-inline.patch"
+	"${FILESDIR}/chromium-76-arm64-skia.patch"
+	"${FILESDIR}/chromium-76-quiche.patch"
+	"${FILESDIR}/chromium-76-no-cups.patch"
+	"${FILESDIR}/chromium-76-gcc-vulkan.patch"
+	"${FILESDIR}/chromium-76-gcc-private.patch"
+	"${FILESDIR}/chromium-76-gcc-noexcept.patch"
+	"${FILESDIR}/chromium-76-gcc-gl-init.patch"
+	"${FILESDIR}/chromium-76-gcc-blink-namespace1.patch"
+	"${FILESDIR}/chromium-76-gcc-blink-namespace2.patch"
+	"${FILESDIR}/chromium-76-gcc-blink-constexpr.patch"
+	"${FILESDIR}/chromium-76-gcc-uint32.patch"
+	"${FILESDIR}/chromium-76-gcc-ambiguous-nodestructor.patch"
+	"${FILESDIR}/chromium-76-gcc-include.patch"
+	"${FILESDIR}/chromium-76-gcc-pure-virtual.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+			die "At least gcc 8.0 is required"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/boringssl/src/third_party/sike
+		third_party/boringssl/linux-aarch64/crypto/third_party/sike
+		third_party/boringssl/linux-x86_64/crypto/third_party/sike
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openscreen
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-7.0
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/fft4g
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-76-no-cups.patch b/www-client/chromium/files/chromium-76-no-cups.patch
new file mode 100644
index 00000000000..28732c2b431
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-no-cups.patch
@@ -0,0 +1,41 @@
+From f768afdd3104e7da663aa82e1e8f969aea3f85c3 Mon Sep 17 00:00:00 2001
+From: Lei Zhang <thestig@chromium.org>
+Date: Thu, 22 Aug 2019 11:44:27 -0700
+Subject: [PATCH] Handle unsupported configs in CreatePrinterHandlerTaskRunner().
+
+CreatePrinterHandlerTaskRunner(), which was added in
+https://crrev.com/658397, used ifdefs to only handle the supported build
+configs. Add a #else case as a catch-all to conservatively handle the
+unsupported configs. Since it is only a couple lines of trivial code,
+doing this does not create much of a maintenance burden.
+
+(backported to chromium-76)
+
+Bug: 990727
+Change-Id: I07bd21abaeffc8223e88b519c3891185d5d2be12
+---
+
+diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc b/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
+index 03bd08a..e9c6996 100644
+--- a/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
++++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
+@@ -33,12 +33,15 @@ scoped_refptr<base::TaskRunner> CreatePrinterHandlerTaskRunner() {
+   static constexpr base::TaskTraits kTraits = {
+       base::MayBlock(), base::TaskPriority::USER_VISIBLE};
+
+-#if defined(OS_WIN)
+-  // Windows drivers are likely not thread-safe.
+-  return base::CreateSingleThreadTaskRunnerWithTraits(kTraits);
+-#elif defined(USE_CUPS)
++#if defined(USE_CUPS)
+   // CUPS is thread safe.
+   return base::CreateTaskRunnerWithTraits(kTraits);
++#elif defined(OS_WIN)
++  // Windows drivers are likely not thread-safe.
++  return base::CreateSingleThreadTaskRunnerWithTraits(kTraits);
++#else
++  // Be conservative on unsupported platforms.
++  return base::CreateSingleThreadTaskRunnerWithTraits(kTraits);
+ #endif
+ }
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-08-22 15:00 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-08-22 15:00 UTC (permalink / raw
  To: gentoo-commits

commit:     5c507015ce4912f6e992581d7244cfd7ca69c66d
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Aug 22 10:12:01 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Aug 22 14:59:12 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c507015

www-client/chromium: dev channel bump to 78.0.3887.7

Closes: https://github.com/gentoo/gentoo/pull/12766
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...0.3880.4.ebuild => chromium-78.0.3887.7.ebuild} |  3 +--
 .../files/chromium-78-const-std-string.patch       | 26 ----------------------
 3 files changed, 2 insertions(+), 29 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c28893eaee3..a9c13c52880 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-76.0.3809.100.tar.xz 728852892 BLAKE2B 1bd80f7fd50f82843f9367bd8d5648bcbe4b763594679cc7f57084390da840cc89d7771ffd844e3d0a3c3248d8f98a1babecabaf4c3104fa7a89efed88eae608 SHA512 63cfb45dc6bb0b1662ba4ffebc6313c24d65dae10a61752575e34a24d8d3d6f80e0422a984b560b259c299d6e493dfa177907201a1c1f785a7e294c9a03bd8a1
 DIST chromium-77.0.3865.35.tar.xz 733139780 BLAKE2B ac4040901efe6772e93dc30e371a1d63b4ea95e0a38632bcdd1aa5603674eb5696186f848916893b9138f0d1018c7b08293803afdf20e8c61e30af42c2ba26d0 SHA512 c2aa64f7153dc2992e35e8a2fa9c56fbc0684133a44e50b0986d6c423527f12cdb57f1ca503a9d4b4424003ab04eb33c270d2c4f3af6aeb23cb8506e92040f36
-DIST chromium-78.0.3880.4.tar.xz 734959036 BLAKE2B e93497cdc00c123f31b98be87c2b4c7e4e7ac18fdddf15e9c4ba6c08c89386c38f9451e432a8365cc6e1a47af244ba8d10da94acca3f108c0993f993b47a18b6 SHA512 4adf66caca7565c17571b2c9056acac3b1edbcf29ad9f8937cde241406242f4e30ac361047dddf2a60f4319245698d6872a24eae0374a142d13e3fea0c5b12ea
+DIST chromium-78.0.3887.7.tar.xz 737057024 BLAKE2B b4754f1fa9a243c29e83d6136494c6db1726a6d3f23013115a4a576428f7ca3c0fcd3f81cf7fe4037f2c3e6901b3fce015aeed7b7b945b4a3e368f2e6fb9afa1 SHA512 9b8eb33c6f19e5b247372e19a61ec1ae6c804bd7b9731222430e2e1b585146fc543a686ccfc9553d6d137999570c544cdb45696db6ce50c38dfead1b0760c1a4

diff --git a/www-client/chromium/chromium-78.0.3880.4.ebuild b/www-client/chromium/chromium-78.0.3887.7.ebuild
similarity index 99%
rename from www-client/chromium/chromium-78.0.3880.4.ebuild
rename to www-client/chromium/chromium-78.0.3887.7.ebuild
index 82c1da7516b..c18eb659772 100644
--- a/www-client/chromium/chromium-78.0.3880.4.ebuild
+++ b/www-client/chromium/chromium-78.0.3887.7.ebuild
@@ -148,8 +148,6 @@ PATCHES=(
 	"${FILESDIR}/chromium-77-fix-gn-gen.patch"
 	"${FILESDIR}/chromium-77-system-icu.patch"
 	"${FILESDIR}/chromium-77-clang.patch"
-	"${FILESDIR}/chromium-77-blink-include.patch"
-	"${FILESDIR}/chromium-78-const-std-string.patch"
 	"${FILESDIR}/chromium-78-include.patch"
 )
 
@@ -363,6 +361,7 @@ src_prepare() {
 		third_party/widevine
 		third_party/woff2
 		third_party/zlib/google
+		tools/grit/third_party/six
 		url/third_party/mozilla
 		v8/src/third_party/siphash
 		v8/src/third_party/valgrind

diff --git a/www-client/chromium/files/chromium-78-const-std-string.patch b/www-client/chromium/files/chromium-78-const-std-string.patch
deleted file mode 100644
index e16377aff41..00000000000
--- a/www-client/chromium/files/chromium-78-const-std-string.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/chrome/test/chromedriver/webauthn_commands.cc b/chrome/test/chromedriver/webauthn_commands.cc
-index b0d4d62..6369d74 100644
---- a/chrome/test/chromedriver/webauthn_commands.cc
-+++ b/chrome/test/chromedriver/webauthn_commands.cc
-@@ -36,8 +36,8 @@ base::DictionaryValue MapParams(
- // Converts the string |keys| in |params| from base64url to base64. Returns a
- // status error if conversion of one of the keys failed.
- Status ConvertBase64UrlToBase64(base::Value* params,
--                                const std::vector<const std::string> keys) {
--  for (const std::string key : keys) {
-+                                const std::vector<std::string> keys) {
-+  for (std::string key : keys) {
-     base::Value* maybe_value = params->FindKey(key);
-     if (!maybe_value)
-       continue;
-@@ -60,8 +60,8 @@ Status ConvertBase64UrlToBase64(base::Value* params,
- 
- // Converts the string |keys| in |params| from base64 to base64url.
- void ConvertBase64ToBase64Url(base::Value* params,
--                              const std::vector<const std::string> keys) {
--  for (const std::string key : keys) {
-+                              const std::vector<std::string> keys) {
-+  for (std::string key : keys) {
-     std::string* maybe_value = params->FindStringKey(key);
-     if (!maybe_value)
-       continue;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-08-08 15:46 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-08-08 15:46 UTC (permalink / raw
  To: gentoo-commits

commit:     5b7b57438d3997382c7803c96971c60e51d3774a
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Aug  8 08:01:36 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Aug  8 15:45:51 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b7b5743

www-client/chromium: dev channel bump to 77.0.3865.10

Closes: https://github.com/gentoo/gentoo/pull/12642
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-77.0.3865.10.ebuild   | 716 +++++++++++++++++++++
 www-client/chromium/files/chromium-77-clang.patch  |  13 +
 .../chromium/files/chromium-77-fix-gn-gen.patch    |  11 +
 .../chromium/files/chromium-77-gcc-abstract.patch  |  61 ++
 .../chromium/files/chromium-77-gcc-include.patch   |  26 +
 .../chromium/files/chromium-77-std-string.patch    | 130 ++++
 .../chromium/files/chromium-77-system-hb.patch     |  13 +
 .../chromium/files/chromium-77-system-icu.patch    |  20 +
 .../chromium/files/chromium-unbundle-zlib.patch    |  25 +
 10 files changed, 1016 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e23e84adab7..2dd3857842e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1 +1,2 @@
 DIST chromium-76.0.3809.87.tar.xz 728890984 BLAKE2B d09b6b4dd84d6e2ad6a24602296bfab99294ca09c21553312fa55979eb308d1b3a42cc0e31b4e619cd19c0dfc38dda89bca3b5d2787a96b8836d720f0763f124 SHA512 f237cb794bff68cbc2ea3daadea2852df810543873ceaefa4be901702b3578ce7b23a0f083b76373de20e60ea2dc1245c58de0888fb6c72ca465bca0ee0e7c1a
+DIST chromium-77.0.3865.10.tar.xz 733122900 BLAKE2B 23b3cf4b8d4ab8e99d2a1ed0ef56c40faaea64f74c359d56e3140c33f1cff5954d73077c0c48851bc6da332b7131770ab2379c5229d674021b7a0596f7c5e8c5 SHA512 d1d76accae2b7877b2ef6b5544b8aee074d55c36e67ff5816a5ddd48a7b7af77d8467341d2a410e899ea0d7e29bcfffd3887460482a3fb6e77ed31888d31f293

diff --git a/www-client/chromium/chromium-77.0.3865.10.ebuild b/www-client/chromium/chromium-77.0.3865.10.ebuild
new file mode 100644
index 00000000000..161ff336d96
--- /dev/null
+++ b/www-client/chromium/chromium-77.0.3865.10.ebuild
@@ -0,0 +1,716 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-64:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.11.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12-r0
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-util/gn
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	closure-compile? ( virtual/jre )
+	virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r10.patch"
+	"${FILESDIR}/chromium-widevine-r4.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-unbundle-zlib.patch"
+	"${FILESDIR}/chromium-77-fix-gn-gen.patch"
+	"${FILESDIR}/chromium-77-system-icu.patch"
+	"${FILESDIR}/chromium-77-system-hb.patch"
+	"${FILESDIR}/chromium-77-clang.patch"
+	"${FILESDIR}/chromium-77-std-string.patch"
+	"${FILESDIR}/chromium-77-gcc-abstract.patch"
+	"${FILESDIR}/chromium-77-gcc-include.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+			die "At least gcc 8.0 is required"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/boringssl/src/third_party/sike
+		third_party/boringssl/linux-aarch64/crypto/third_party/sike
+		third_party/boringssl/linux-x86_64/crypto/third_party/sike
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/lss
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/one_euro_filter
+		third_party/openscreen
+		third_party/openscreen/src/third_party/tinycbor/src/src
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-7.0
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/fft4g
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-77-clang.patch b/www-client/chromium/files/chromium-77-clang.patch
new file mode 100644
index 00000000000..a57b5a458a4
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-clang.patch
@@ -0,0 +1,13 @@
+diff --git a/base/location.h b/base/location.h
+index c07e747..924db1c 100644
+--- a/base/location.h
++++ b/base/location.h
+@@ -18,7 +18,7 @@
+ 
+ namespace base {
+ 
+-#if defined(__has_builtin)
++#if defined(__clang__)
+ // Clang allows detection of these builtins.
+ #define SUPPORTS_LOCATION_BUILTINS                                       \
+   (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \

diff --git a/www-client/chromium/files/chromium-77-fix-gn-gen.patch b/www-client/chromium/files/chromium-77-fix-gn-gen.patch
new file mode 100644
index 00000000000..2c5f128cbc9
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-fix-gn-gen.patch
@@ -0,0 +1,11 @@
+--- a/third_party/blink/tools/BUILD.gn
++++ b/third_party/blink/tools/BUILD.gn
+@@ -11,7 +11,7 @@ action("build_wpt_metadata") {
+     rebase_path("$root_out_dir/wpt_expectations_metadata"),
+   ]
+   outputs = [
+-    "$root_out_dir/wpt_expectations_metadata/",
++    "$root_out_dir/wpt_expectations_metadata",
+   ]
+   data = [
+     # Include the blinkpy tools to access expectations data

diff --git a/www-client/chromium/files/chromium-77-gcc-abstract.patch b/www-client/chromium/files/chromium-77-gcc-abstract.patch
new file mode 100644
index 00000000000..6d77299ee6c
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-gcc-abstract.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+ 
+ void BinaryUploadService::UploadForDeepScanning(
+-    BinaryUploadService::Request request) {
++    std::unique_ptr<BinaryUploadService::Request> request) {
+   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+   NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ 
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+ 
+@@ -40,6 +42,7 @@
+    public:
+     // |callback| will run on the UI thread.
+     explicit Request(Callback callback);
++    virtual ~Request() = default;
+     Request(const Request&) = delete;
+     Request& operator=(const Request&) = delete;
+ 
+@@ -67,7 +70,7 @@
+   // Upload the given file contents for deep scanning. The results will be
+   // returned asynchronously by calling |request|'s |callback|. This must be
+   // called on the UI thread.
+-  void UploadForDeepScanning(Request request);
++  void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+ 
+ }  // namespace safe_browsing

diff --git a/www-client/chromium/files/chromium-77-gcc-include.patch b/www-client/chromium/files/chromium-77-gcc-include.patch
new file mode 100644
index 00000000000..391f48fd2d9
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-gcc-include.patch
@@ -0,0 +1,26 @@
+From 8c747a9c14ed4905f60f6680e2e09e33ea34163e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 26 Jul 2019 16:18:17 +0000
+Subject: [PATCH] IWYU: include <memory> in one_euro_filter.h as it uses std::unique_ptr
+
+Bug: 819294
+Change-Id: Ie1530f7046b0c8eb76e26adca530fa57c67ed876
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1720637
+Reviewed-by: Ella Ge <eirage@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#681321}
+---
+
+diff --git a/third_party/one_euro_filter/src/one_euro_filter.h b/third_party/one_euro_filter/src/one_euro_filter.h
+index 7f8d15b..a8cd0ab 100644
+--- a/third_party/one_euro_filter/src/one_euro_filter.h
++++ b/third_party/one_euro_filter/src/one_euro_filter.h
+@@ -1,6 +1,8 @@
+ #ifndef ONE_EURO_ONE_EURO_FILTER_H_
+ #define ONE_EURO_ONE_EURO_FILTER_H_
+ 
++#include <memory>
++
+ #include "low_pass_filter.h"
+ 
+ namespace one_euro_filter {

diff --git a/www-client/chromium/files/chromium-77-std-string.patch b/www-client/chromium/files/chromium-77-std-string.patch
new file mode 100644
index 00000000000..f921f1aac94
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-std-string.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman@chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
+Commit-Queue: Jeremy Roman <jbroman@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+ 
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+   STATIC_ONLY(FontCacheKeyTraits);
++
++  // std::string's empty state need not be zero in all implementations,
++  // and it is held within FontFaceCreationParams.
++  static const bool kEmptyValueIsZero = false;
+ };
+ 
+ }  // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+                     LinkedHashSetNodeBase* next)
+       : LinkedHashSetNodeBase(prev, next), value_(value) {}
+ 
++  LinkedHashSetNode(ValueArg&& value,
++                    LinkedHashSetNodeBase* prev,
++                    LinkedHashSetNodeBase* next)
++      : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+   LinkedHashSetNode(LinkedHashSetNode&& other)
+       : LinkedHashSetNodeBase(std::move(other)),
+         value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+ 
+   // The slot is empty when the next_ field is zero so it's safe to zero
+   // the backing.
+-  static const bool kEmptyValueIsZero = true;
++  static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+ 
+   static const bool kHasIsEmptyValueFunction = true;
+   static bool IsEmptyValue(const Node& node) { return !node.next_; }
++  static Node EmptyValue() {
++    return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++  }
+ 
+   static const int kDeletedValue = -1;
+ 
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+ 
+ struct Complicated {
++  Complicated() : Complicated(0) {}
+   Complicated(int value) : simple_(value) { objects_constructed_++; }
+ 
+   Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+ 
+   Simple simple_;
+   static int objects_constructed_;
+-
+- private:
+-  Complicated() = delete;
+ };
+ 
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+ 
+ }  // anonymous namespace
+ 
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++  InvalidZeroValue() = default;
++  InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++  ~InvalidZeroValue() { CHECK(ok_); }
++  bool IsHashTableDeletedValue() const { return deleted_; }
++
++  bool ok_ = true;
++  bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++  static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++  struct Hash {
++    static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++    static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++      return true;
++    }
++  };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++    testing::Types<ListHashSet<InvalidZeroValue>,
++                   ListHashSet<InvalidZeroValue, 1>,
++                   LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++  using Set = TypeParam;
++  Set set;
++  set.insert(InvalidZeroValue());
++}
++
+ }  // namespace WTF

diff --git a/www-client/chromium/files/chromium-77-system-hb.patch b/www-client/chromium/files/chromium-77-system-hb.patch
new file mode 100644
index 00000000000..9cea0fac6c5
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-system-hb.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..6610cc6 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,7 @@ if (use_system_harfbuzz) {
+       "//third_party:freetype_harfbuzz",
+       "//third_party/freetype:freetype_source",
+     ]
+-    packages = [ "harfbuzz" ]
++    packages = [ "harfbuzz", "harfbuzz-subset" ]
+   }
+ } else {
+   config("harfbuzz_config") {

diff --git a/www-client/chromium/files/chromium-77-system-icu.patch b/www-client/chromium/files/chromium-77-system-icu.patch
new file mode 100644
index 00000000000..1f848d7ee2b
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-system-icu.patch
@@ -0,0 +1,20 @@
+diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
+index 4450e40..9ca36dd 100644
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -96,6 +96,7 @@ shim_headers("icui18n_shim") {
+     "unicode/fpositer.h",
+     "unicode/gender.h",
+     "unicode/gregocal.h",
++    "unicode/listformatter.h",
+     "unicode/measfmt.h",
+     "unicode/measunit.h",
+     "unicode/measure.h",
+@@ -178,7 +179,6 @@ shim_headers("icuuc_shim") {
+     "unicode/icudataver.h",
+     "unicode/icuplug.h",
+     "unicode/idna.h",
+-    "unicode/listformatter.h",
+     "unicode/localpointer.h",
+     "unicode/locdspnm.h",
+     "unicode/locid.h",

diff --git a/www-client/chromium/files/chromium-unbundle-zlib.patch b/www-client/chromium/files/chromium-unbundle-zlib.patch
new file mode 100644
index 00000000000..d6c45ad816d
--- /dev/null
+++ b/www-client/chromium/files/chromium-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you@example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+       "//buildtools:zlib",
+     ]
+   } else if (build_with_chromium) {
+-    public_configs = [ "//third_party/zlib:zlib_config" ]
++    public_configs = [ "//third_party/zlib:system_zlib" ]
+     public_deps = [
+       "//third_party/zlib",
+     ]
+-- 
+2.21.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-08-02 20:42 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-08-02 20:42 UTC (permalink / raw
  To: gentoo-commits

commit:     428b14974c57a82ac01c21b8b9ed1bf2bd93b184
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri Aug  2 16:52:43 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Aug  2 20:42:17 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=428b1497

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/691098
Closes: https://github.com/gentoo/gentoo/pull/12600
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 -
 www-client/chromium/chromium-75.0.3770.142.ebuild  | 708 ---------------------
 .../chromium/files/chromium-75-fix-gn-gen.patch    |  27 -
 .../chromium/files/chromium-75-gcc-angle-fix.patch |  20 -
 www-client/chromium/files/chromium-75-llvm8.patch  |  17 -
 .../chromium/files/chromium-75-noexcept.patch      | 101 ---
 .../files/chromium-75-post-task-crash.patch        |  52 --
 .../chromium/files/chromium-75-unique_ptr.patch    |  31 -
 .../chromium/files/chromium-compiler-r9.patch      | 196 ------
 9 files changed, 1153 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 82e5661af7c..e23e84adab7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1 @@
-DIST chromium-75.0.3770.142.tar.xz 709968204 BLAKE2B 0e3456127796e7580c50edc0dc16c6989108837a380c96704c96bbd14b042f6d7059dc082a099a7f7752b3b3c6c072e9e9ecc89f3528b914f13a4a923a4488dd SHA512 89534fafe06281cf8ac328f7a17c192f4a03cbc8e6b410626ea2e7993231b4ba195b4190a3f183fad63a03602df7b763a776f10802b1330c737f0249bf17a792
 DIST chromium-76.0.3809.87.tar.xz 728890984 BLAKE2B d09b6b4dd84d6e2ad6a24602296bfab99294ca09c21553312fa55979eb308d1b3a42cc0e31b4e619cd19c0dfc38dda89bca3b5d2787a96b8836d720f0763f124 SHA512 f237cb794bff68cbc2ea3daadea2852df810543873ceaefa4be901702b3578ce7b23a0f083b76373de20e60ea2dc1245c58de0888fb6c72ca465bca0ee0e7c1a

diff --git a/www-client/chromium/chromium-75.0.3770.142.ebuild b/www-client/chromium/chromium-75.0.3770.142.ebuild
deleted file mode 100644
index 9dc1a9c45b4..00000000000
--- a/www-client/chromium/chromium-75.0.3770.142.ebuild
+++ /dev/null
@@ -1,708 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-64:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.2.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	!<www-plugins/chrome-binary-plugins-57
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
-"
-DEPEND="${COMMON_DEPEND}
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	<dev-util/gn-0.1583
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	closure-compile? ( virtual/jre )
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-7"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r9.patch"
-	"${FILESDIR}/chromium-widevine-r4.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-angle-inline.patch"
-	"${FILESDIR}/chromium-75-fix-gn-gen.patch"
-	"${FILESDIR}/chromium-75-gcc-angle-fix.patch"
-	"${FILESDIR}/chromium-75-unique_ptr.patch"
-	"${FILESDIR}/chromium-75-noexcept.patch"
-	"${FILESDIR}/chromium-75-llvm8.patch"
-	"${FILESDIR}/chromium-76-gcc-pure-virtual.patch"
-	"${FILESDIR}/chromium-75-post-task-crash.patch"
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="5G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/dmg_fp
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/axe-core
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/lss
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/dawn
-		third_party/devscripts
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/flatbuffers
-		third_party/flot
-		third_party/freetype
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/openmax_dl
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/pffft
-		third_party/ply
-		third_party/polymer
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/gif
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/subzero
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
-	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 22 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser \
-		"Chromium" \
-		chromium-browser \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-75-fix-gn-gen.patch b/www-client/chromium/files/chromium-75-fix-gn-gen.patch
deleted file mode 100644
index a6a98b160d7..00000000000
--- a/www-client/chromium/files/chromium-75-fix-gn-gen.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix 'gn gen' when gn is built in debug config
-
-Fixes this DCHECK:
-https://cs.chromium.org/chromium/gn/tools/gn/source_file.cc?q=source_file.cc&sq=package:chromium&dr&l=21
-
-BUG=None
-
-Change-Id: Ide60a650c800d4a0981b4f28cf0427fa91616464
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613888
-Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
-Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#660103}
-diff --git a/tools/perf/contrib/vr_benchmarks/BUILD.gn b/tools/perf/contrib/vr_benchmarks/BUILD.gn
-index 758057a..51644e0 100644
---- a/tools/perf/contrib/vr_benchmarks/BUILD.gn
-+++ b/tools/perf/contrib/vr_benchmarks/BUILD.gn
-@@ -72,7 +72,7 @@
-     "//chrome/browser/resources/vr/assets/vr_assets_component_files.json",
-   ]
-   outputs = [
--    "$target_gen_dir/vr_assets_profile/",
-+    "$target_gen_dir/vr_assets_profile",
-   ]
-   args = [
-     "--output",

diff --git a/www-client/chromium/files/chromium-75-gcc-angle-fix.patch b/www-client/chromium/files/chromium-75-gcc-angle-fix.patch
deleted file mode 100644
index 58447d73acb..00000000000
--- a/www-client/chromium/files/chromium-75-gcc-angle-fix.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/third_party/angle/src/common/debug.h	2019-06-02 17:59:16.698392030 -0000
-+++ b/third_party/angle/src/common/debug.h	2019-06-02 17:59:48.738265672 -0000
-@@ -248,7 +248,7 @@
- #    define EVENT(message, ...) (void(0))
- #endif
- 
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__) || defined(__clang__)
- #    define ANGLE_CRASH() __builtin_trap()
- #else
- #    define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@
- #    define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
-         _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- #    define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- #    define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
-         _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- #    define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")

diff --git a/www-client/chromium/files/chromium-75-llvm8.patch b/www-client/chromium/files/chromium-75-llvm8.patch
deleted file mode 100644
index f21445689bb..00000000000
--- a/www-client/chromium/files/chromium-75-llvm8.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Issue 945938: Build fails with clang/llvm-8
-https://bugs.chromium.org/p/chromium/issues/detail?id=945938&q=TabStripModelChange&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified
-
-diff --git a/chrome/browser/ui/tabs/tab_strip_model_observer.h b/chrome/browser/ui/tabs/tab_strip_model_observer.h
-index 6c8bce5..7f67b7d 100644
---- a/chrome/browser/ui/tabs/tab_strip_model_observer.h
-+++ b/chrome/browser/ui/tabs/tab_strip_model_observer.h
-@@ -135,7 +135,7 @@ class TabStripModelChange {
- 
-  private:
-   const Type type_ = kSelectionOnly;
--  const std::vector<Delta> deltas_;
-+  std::vector<Delta> deltas_;
- 
-   DISALLOW_COPY_AND_ASSIGN(TabStripModelChange);
- };
-

diff --git a/www-client/chromium/files/chromium-75-noexcept.patch b/www-client/chromium/files/chromium-75-noexcept.patch
deleted file mode 100644
index bcac1c270d1..00000000000
--- a/www-client/chromium/files/chromium-75-noexcept.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 41d954dec0669c9a85730c0bde7df7ba7a0ff43e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Thu, 06 Jun 2019 15:30:49 +0000
-Subject: [PATCH] Fix AutocompleteMatch move constructor/assign operator noexcept
-
-For AutocompleteMatch to declare noexcept them, all the contained
-properties need to be noexcept too. This is required at least
-for SuggestionAnswer, because base::string16 will make default
-calculated signature of the move operator noexcept(false).
-
-To avoid this issue we explicitely declare them on SuggestionAnswer,
-and its member classes TextField and ImageLine.
-
-Bug: 819294
-Change-Id: I8714f2c6352a3292bdebdc3aed9790270e49c580
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1554669
-Reviewed-by: Kevin Bailey <krb@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#666714}
----
-
-diff --git a/components/omnibox/browser/suggestion_answer.cc b/components/omnibox/browser/suggestion_answer.cc
-index 151e55f..a0c9049 100644
---- a/components/omnibox/browser/suggestion_answer.cc
-+++ b/components/omnibox/browser/suggestion_answer.cc
-@@ -55,6 +55,12 @@
- 
- SuggestionAnswer::TextField::TextField() = default;
- SuggestionAnswer::TextField::~TextField() = default;
-+SuggestionAnswer::TextField::TextField(const TextField&) = default;
-+SuggestionAnswer::TextField::TextField(TextField&&) noexcept = default;
-+SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
-+    const TextField&) = default;
-+SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
-+    TextField&&) noexcept = default;
- 
- // static
- bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
-@@ -93,9 +99,12 @@
- SuggestionAnswer::ImageLine::ImageLine()
-     : num_text_lines_(1) {}
- SuggestionAnswer::ImageLine::ImageLine(const ImageLine& line) = default;
-+SuggestionAnswer::ImageLine::ImageLine(ImageLine&&) noexcept = default;
- 
- SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
-     const ImageLine& line) = default;
-+SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
-+    ImageLine&&) noexcept = default;
- 
- SuggestionAnswer::ImageLine::~ImageLine() {}
- 
-@@ -251,9 +260,14 @@
- 
- SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer) = default;
- 
-+SuggestionAnswer::SuggestionAnswer(SuggestionAnswer&&) noexcept = default;
-+
- SuggestionAnswer& SuggestionAnswer::operator=(const SuggestionAnswer& answer) =
-     default;
- 
-+SuggestionAnswer& SuggestionAnswer::operator=(SuggestionAnswer&&) noexcept =
-+    default;
-+
- SuggestionAnswer::~SuggestionAnswer() = default;
- 
- // static
-diff --git a/components/omnibox/browser/suggestion_answer.h b/components/omnibox/browser/suggestion_answer.h
-index 31be937..2840ace 100644
---- a/components/omnibox/browser/suggestion_answer.h
-+++ b/components/omnibox/browser/suggestion_answer.h
-@@ -125,6 +125,10 @@
-    public:
-     TextField();
-     ~TextField();
-+    TextField(const TextField&);
-+    TextField(TextField&&) noexcept;
-+    TextField& operator=(const TextField&);
-+    TextField& operator=(TextField&&) noexcept;
- 
-     // Parses |field_json| dictionary and populates |text_field| with the
-     // contents.  If any of the required elements is missing, returns false and
-@@ -162,7 +166,9 @@
-    public:
-     ImageLine();
-     explicit ImageLine(const ImageLine& line);
-+    ImageLine(ImageLine&&) noexcept;
-     ImageLine& operator=(const ImageLine& line);
-+    ImageLine& operator=(ImageLine&&) noexcept;
-     ~ImageLine();
- 
-     // Parses dictionary |line_json| and populates |image_line| with the
-@@ -213,7 +219,9 @@
- 
-   SuggestionAnswer();
-   SuggestionAnswer(const SuggestionAnswer& answer);
-+  SuggestionAnswer(SuggestionAnswer&&) noexcept;
-   SuggestionAnswer& operator=(const SuggestionAnswer& answer);
-+  SuggestionAnswer& operator=(SuggestionAnswer&&) noexcept;
-   ~SuggestionAnswer();
- 
-   // Parses dictionary |answer_json| and fills a SuggestionAnswer containing the

diff --git a/www-client/chromium/files/chromium-75-post-task-crash.patch b/www-client/chromium/files/chromium-75-post-task-crash.patch
deleted file mode 100644
index 5cc97559d30..00000000000
--- a/www-client/chromium/files/chromium-75-post-task-crash.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 00281713519dbd84b90d2996a009bf3a7e294435 Mon Sep 17 00:00:00 2001
-From: Alex Clarke <alexclarke@chromium.org>
-Date: Wed, 24 Apr 2019 13:15:09 +0000
-Subject: [PATCH] BindProcessNode to take a render process host id
-
-It's dangerous to post a task with a RenderProcessHost pointer because
-the RenderProcessHost can go away before the task is run.
-
-Bug: 863341
-Change-Id: I9a5e3ae068dd42ea5a68d6e4afcf77d7486eeac4
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1581580
-Auto-Submit: Alex Clarke <alexclarke@chromium.org>
-Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
-Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#653553}
----
-
-diff --git a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
-index 519d355..e0a2801 100644
---- a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
-+++ b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
- 
- namespace {
- 
- void BindProcessNode(
--    content::RenderProcessHost* render_process_host,
-+    int render_process_host_id,
-     resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+  content::RenderProcessHost* render_process_host =
-+      content::RenderProcessHost::FromID(render_process_host_id);
-+  if (!render_process_host)
-+    return;
-+
-   performance_manager::RenderProcessUserData* user_data =
-       performance_manager::RenderProcessUserData::GetForRenderProcessHost(
-           render_process_host);
-@@ -47,8 +53,7 @@
-         blink::AssociatedInterfaceRegistry* associated_registry,
-         content::RenderProcessHost* render_process_host) {
-   registry->AddInterface(
--      base::BindRepeating(&BindProcessNode,
--                          base::Unretained(render_process_host)),
-+      base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
-       base::SequencedTaskRunnerHandle::Get());
- 
-   // Ideally this would strictly be a "CreateForRenderProcess", but when a

diff --git a/www-client/chromium/files/chromium-75-unique_ptr.patch b/www-client/chromium/files/chromium-75-unique_ptr.patch
deleted file mode 100644
index 08d2f243902..00000000000
--- a/www-client/chromium/files/chromium-75-unique_ptr.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From aeed4d1f15ce84a17ea0bc219e258dc4982b2368 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 26 Apr 2019 20:07:05 +0000
-Subject: [PATCH] libstdc++: do not assume unique_ptr has ostream operator
-
-CompositorFrameReportingController is using DCHECK_NE to compare
-several unique_ptr. This is valid in libc++, but on libstdc++ unique_ptr
-does not have an ostream operator.
-
-Change-Id: I9f23ef17f02b9e107694ba493f6f8f3caf5cac4d
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1584292
-Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#654570}
----
-
-diff --git a/cc/scheduler/compositor_frame_reporting_controller.cc b/cc/scheduler/compositor_frame_reporting_controller.cc
-index f1587ed..1b17021 100644
---- a/cc/scheduler/compositor_frame_reporting_controller.cc
-+++ b/cc/scheduler/compositor_frame_reporting_controller.cc
-@@ -31,8 +31,8 @@
- 
- void CompositorFrameReportingController::WillBeginMainFrame() {
-   DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
--  DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
--            reporters_[PipelineStage::kBeginImplFrame]);
-+  DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+         reporters_[PipelineStage::kBeginImplFrame]);
-   reporters_[PipelineStage::kBeginImplFrame]->StartStage(
-       "SendBeginMainFrameToCommit");
-   AdvanceReporterStage(PipelineStage::kBeginImplFrame,

diff --git a/www-client/chromium/files/chromium-compiler-r9.patch b/www-client/chromium/files/chromium-compiler-r9.patch
deleted file mode 100644
index 6b6c81b2c07..00000000000
--- a/www-client/chromium/files/chromium-compiler-r9.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-From a1207cc75454e653030716948d27ec27412f6fe8 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Sat, 1 Jun 2019 14:22:57 +0100
-Subject: [PATCH] Disable various compiler configs
-
----
- build/config/compiler/BUILD.gn | 68 +++++++++++++++-------------------
- 1 file changed, 29 insertions(+), 39 deletions(-)
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 4b24c76..0737326 100644
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -230,8 +230,6 @@ config("compiler") {
- 
-   configs += [
-     # See the definitions below.
--    ":clang_revision",
--    ":compiler_cpu_abi",
-     ":compiler_codegen",
-     ":compiler_deterministic",
-   ]
-@@ -471,20 +469,6 @@ config("compiler") {
-     }
-   }
- 
--  if (is_clang && !is_nacl && !use_xcode_clang) {
--    cflags += [ "-fcrash-diagnostics-dir=" +
--                rebase_path("//tools/clang/crashreports", root_build_dir) ]
--
--    cflags += [
--      # TODO(hans): Remove this once Clang generates better optimized debug info
--      # by default. https://crbug.com/765793
--      "-Xclang",
--      "-mllvm",
--      "-Xclang",
--      "-instcombine-lower-dbg-declare=0",
--    ]
--  }
--
-   # C11/C++11 compiler flags setup.
-   # ---------------------------
-   if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-@@ -1433,6 +1417,12 @@ config("default_warnings") {
-         "-Wno-narrowing",
-       ]
- 
-+      # -Wno-class-memaccess warns about hash table and vector in blink.
-+      # But the violation is intentional.
-+      if (!is_nacl) {
-+        cflags_cc += [ "-Wno-class-memaccess" ]
-+      }
-+
-       # -Wunused-local-typedefs is broken in gcc,
-       # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
-       cflags += [ "-Wno-unused-local-typedefs" ]
-@@ -1447,6 +1437,10 @@ config("default_warnings") {
-       # comments
-       # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61638
-       cflags += [ "-Wno-comments" ]
-+
-+      # -Wpacked-not-aligned complains all generated mojom-shared-internal.h
-+      # files.
-+      cflags += [ "-Wno-packed-not-aligned" ]
-     }
-   }
- 
-@@ -1523,7 +1517,7 @@ config("chromium_code") {
-       defines = [ "_HAS_NODISCARD" ]
-     }
-   } else {
--    cflags = [ "-Wall" ]
-+    cflags = []
-     if (treat_warnings_as_errors) {
-       cflags += [ "-Werror" ]
- 
-@@ -1532,10 +1526,6 @@ config("chromium_code") {
-       # well.
-       ldflags = [ "-Werror" ]
-     }
--    if (is_clang) {
--      # Enable extra warnings for chromium_code when we control the compiler.
--      cflags += [ "-Wextra" ]
--    }
- 
-     # In Chromium code, we define __STDC_foo_MACROS in order to get the
-     # C99 macros on Mac and Linux.
-@@ -1544,15 +1534,6 @@ config("chromium_code") {
-       "__STDC_FORMAT_MACROS",
-     ]
- 
--    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
--        current_cpu != "s390" && current_cpu != "ppc64" &&
--        current_cpu != "mips" && current_cpu != "mips64") {
--      # Non-chromium code is not guaranteed to compile cleanly with
--      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
--      # disabled, so only do that for Release build.
--      defines += [ "_FORTIFY_SOURCE=2" ]
--    }
--
-     if (is_mac) {
-       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
-       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -1941,7 +1922,8 @@ config("default_stack_frames") {
- }
- 
- # Default "optimization on" config.
--config("optimize") {
-+config("optimize") { }
-+config("xoptimize") {
-   if (is_win) {
-     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
-     if (is_official_build && full_wpo_on_official && !is_clang) {
-@@ -1975,7 +1957,8 @@ config("optimize") {
- }
- 
- # Same config as 'optimize' but without the WPO flag.
--config("optimize_no_wpo") {
-+config("optimize_no_wpo") { }
-+config("xoptimize_no_wpo") {
-   if (is_win) {
-     # Favor size over speed, /O1 must be before the common flags. The GYP
-     # build also specifies /Os and /GF but these are implied by /O1.
-@@ -1998,7 +1981,8 @@ config("optimize_no_wpo") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2026,7 +2010,8 @@ config("no_optimize") {
- # Turns up the optimization level. On Windows, this implies whole program
- # optimization and link-time code generation which is very expensive and should
- # be used sparingly.
--config("optimize_max") {
-+config("optimize_max") { }
-+config("xoptimize_max") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2073,7 +2058,8 @@ config("optimize_max") {
- #
- # TODO(crbug.com/621335) - rework how all of these configs are related
- # so that we don't need this disclaimer.
--config("optimize_speed") {
-+config("optimize_speed") { }
-+config("xoptimize_speed") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2111,7 +2097,8 @@ config("optimize_speed") {
-   }
- }
- 
--config("optimize_fuzzing") {
-+config("optimize_fuzzing") { }
-+config("xoptimize_fuzzing") {
-   cflags = [ "-O1" ] + common_optimize_on_cflags
-   ldflags = common_optimize_on_ldflags
-   visibility = [ ":default_optimization" ]
-@@ -2213,7 +2200,8 @@ config("win_pdbaltpath") {
- }
- 
- # Full symbols.
--config("symbols") {
-+config("symbols") { }
-+config("xsymbols") {
-   if (is_win) {
-     if (use_goma || is_clang) {
-       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
-@@ -2323,7 +2311,8 @@ config("symbols") {
- # Minimal symbols.
- # This config guarantees to hold symbol for stack trace which are shown to user
- # when crash happens in unittests running on buildbot.
--config("minimal_symbols") {
-+config("minimal_symbols") { }
-+config("xminimal_symbols") {
-   if (is_win) {
-     # Linker symbols for backtraces only.
-     cflags = []
-@@ -2380,7 +2369,8 @@ config("minimal_symbols") {
- }
- 
- # No symbols.
--config("no_symbols") {
-+config("no_symbols") { }
-+config("xno_symbols") {
-   if (!is_win) {
-     cflags = [ "-g0" ]
-     asmflags = cflags
--- 
-2.21.0
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-07-29 17:32 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-07-29 17:32 UTC (permalink / raw
  To: gentoo-commits

commit:     9fd80e7d75aa63843ec33c9d44fee32596ae8f25
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Jul 29 17:17:34 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Jul 29 17:31:46 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9fd80e7d

www-client/chromium: fix building on arm64

Also move USE=neon to cpu_flags_arm_neon

Closes: https://github.com/gentoo/gentoo/pull/12572
Package-Manager: Portage-2.3.66, Repoman-2.3.16
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-76.0.3809.80.ebuild   |  4 +--
 .../chromium/files/chromium-76-arm64-skia.patch    | 41 ++++++++++++++++++++++
 2 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/www-client/chromium/chromium-76.0.3809.80.ebuild b/www-client/chromium/chromium-76.0.3809.80.ebuild
index f5e29cac9e4..764c00b66cf 100644
--- a/www-client/chromium/chromium-76.0.3809.80.ebuild
+++ b/www-client/chromium/chromium-76.0.3809.80.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts jumbo-build kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 REQUIRED_USE="component-build? ( !suid )"
 
@@ -555,7 +555,7 @@ src_configure() {
 		ffmpeg_target_arch=arm64
 	elif [[ $myarch = arm ]] ; then
 		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
 	else
 		die "Failed to determine target arch, got '$myarch'."
 	fi

diff --git a/www-client/chromium/files/chromium-76-arm64-skia.patch b/www-client/chromium/files/chromium-76-arm64-skia.patch
new file mode 100644
index 00000000000..8a44235c803
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-arm64-skia.patch
@@ -0,0 +1,41 @@
+From 7aacb0b30a86936aedd1308708d1a51d951197f2 Mon Sep 17 00:00:00 2001
+From: Mike Klein <mtklein@google.com>
+Date: Tue, 02 Jul 2019 13:23:06 -0500
+Subject: [PATCH] fix GCC arm64 builds
+
+These two guards are checking if we're building for aarch64 and thus
+have F16 conversion instructions, but weren't checking if we want to use
+them (if we have them _and_ we're being compiled by Clang).  At head
+we're trying to pass a 2-byte uint16_t to a function expecting an 8-byte
+uint16x4_t, etc.
+
+Change-Id: I21f6cd2100ec81ccdd47c4ec0575107624cd7c5a
+Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225257
+Reviewed-by: Herb Derby <herb@google.com>
+Commit-Queue: Mike Klein <mtklein@google.com>
+---
+
+diff --git a/third_party/skia/src/opts/SkRasterPipeline_opts.h b/third_party/skia/src/opts/SkRasterPipeline_opts.h
+index 0eae9fe..e05f36c 100644
+--- a/third_party/skia/src/opts/SkRasterPipeline_opts.h
++++ b/third_party/skia/src/opts/SkRasterPipeline_opts.h
+@@ -972,7 +972,8 @@
+ }
+ 
+ SI F from_half(U16 h) {
+-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
++#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
++    && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
+     return vcvt_f32_f16(h);
+ 
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
+@@ -992,7 +993,8 @@
+ }
+ 
+ SI U16 to_half(F f) {
+-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
++#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
++    && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
+     return vcvt_f16_f32(f);
+ 
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-07-25 14:34 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-07-25 14:34 UTC (permalink / raw
  To: gentoo-commits

commit:     13b3e2393065b5b2984e60a76b18696c95737ec2
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 25 14:33:53 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Jul 25 14:33:53 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13b3e239

www-client/chromium: consolidate identical patches

Package-Manager: Portage-2.3.68, Repoman-2.3.16_p2
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-75.0.3770.142.ebuild  |  2 +-
 .../chromium/files/chromium-75-pure-virtual.patch  | 50 ----------------------
 2 files changed, 1 insertion(+), 51 deletions(-)

diff --git a/www-client/chromium/chromium-75.0.3770.142.ebuild b/www-client/chromium/chromium-75.0.3770.142.ebuild
index e016cfa1c21..9dc1a9c45b4 100644
--- a/www-client/chromium/chromium-75.0.3770.142.ebuild
+++ b/www-client/chromium/chromium-75.0.3770.142.ebuild
@@ -150,7 +150,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-75-unique_ptr.patch"
 	"${FILESDIR}/chromium-75-noexcept.patch"
 	"${FILESDIR}/chromium-75-llvm8.patch"
-	"${FILESDIR}/chromium-75-pure-virtual.patch"
+	"${FILESDIR}/chromium-76-gcc-pure-virtual.patch"
 	"${FILESDIR}/chromium-75-post-task-crash.patch"
 )
 

diff --git a/www-client/chromium/files/chromium-75-pure-virtual.patch b/www-client/chromium/files/chromium-75-pure-virtual.patch
deleted file mode 100644
index 3d34e436a28..00000000000
--- a/www-client/chromium/files/chromium-75-pure-virtual.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From cdf306db81efaaaa954487585d5a5a16205a5ebd Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Wed, 05 Jun 2019 14:45:06 +0000
-Subject: [PATCH] Avoid pure virtual crash destroying RenderProcessUserData
-
-When RenderProcessUserData is destroyed from the destructor of
-RenderProcessHostImpl, it is done in the destructor of RenderProcessHost.
-At this point RemoveObserver override is already freed, so RenderProcessHost
-is pure virtual. This crash happens at least building with GCC:
-
-    at /usr/include/c++/8/ext/new_allocator.h:140
-    (this=0x7fffffffcb50, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/stl_tree.h:964
-
-We need to destroy RenderProcessUserData before that happens. To do that
-we can just override RenderProcessHostDestroyed.
-
-Bug: 910288
-Change-Id: I38107b178829b0cb7494f5333b765e5b087d82cd
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645366
-Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
-Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#666279}
----
-
-diff --git a/chrome/browser/performance_manager/render_process_user_data.cc b/chrome/browser/performance_manager/render_process_user_data.cc
-index 2e2c199..ef6e1fb 100644
---- a/chrome/browser/performance_manager/render_process_user_data.cc
-+++ b/chrome/browser/performance_manager/render_process_user_data.cc
-@@ -116,4 +116,9 @@
-                      base::Unretained(process_node_.get()), info.exit_code));
- }
- 
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+    content::RenderProcessHost* host) {
-+  host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- }  // namespace performance_manager
-diff --git a/chrome/browser/performance_manager/render_process_user_data.h b/chrome/browser/performance_manager/render_process_user_data.h
-index ac74b1d..f3b4d16 100644
---- a/chrome/browser/performance_manager/render_process_user_data.h
-+++ b/chrome/browser/performance_manager/render_process_user_data.h
-@@ -47,6 +47,7 @@
-   void RenderProcessExited(
-       content::RenderProcessHost* host,
-       const content::ChildProcessTerminationInfo& info) override;
-+  void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
- 
-   // All instances are linked together in a doubly linked list to allow orderly
-   // destruction at browser shutdown time.


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-06-25 14:58 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-06-25 14:58 UTC (permalink / raw
  To: gentoo-commits

commit:     327a53f1e9de14fe01ebc94b96f5fa6178dc3fbd
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Jun 23 16:07:39 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Jun 25 14:57:18 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=327a53f1

www-client/chromium: fix build with -O3

In third_party/angle/src/libANGLE/validationES.cpp three specializations
are declared for ValidateSamplerParameterBase(). Two implicit
specializations are created in ValidateSamplerParameterfvRobustANGLE()
and ValidateSamplerParameterIivRobustANGLE(). However, with
-finline-functions (default enabled with -O3) those two implicit
symbols are optimized out. In the end linking fails with
unresolved references, because functions in
third_party/angle/src/libANGLE/validationES3.cpp use both
specializations.

Closes: https://bugs.gentoo.org/681870
Closes: https://github.com/gentoo/gentoo/pull/12312
Package-Manager: Portage-2.3.66, Repoman-2.3.11
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-75.0.3770.100.ebuild  |  1 +
 www-client/chromium/chromium-76.0.3809.36.ebuild   |  1 +
 .../chromium/files/chromium-angle-inline.patch     | 26 ++++++++++++++++++++++
 3 files changed, 28 insertions(+)

diff --git a/www-client/chromium/chromium-75.0.3770.100.ebuild b/www-client/chromium/chromium-75.0.3770.100.ebuild
index 0dde4528fb7..5d8ef6d0268 100644
--- a/www-client/chromium/chromium-75.0.3770.100.ebuild
+++ b/www-client/chromium/chromium-75.0.3770.100.ebuild
@@ -144,6 +144,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-compiler-r9.patch"
 	"${FILESDIR}/chromium-widevine-r4.patch"
 	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-angle-inline.patch"
 	"${FILESDIR}/chromium-75-fix-gn-gen.patch"
 	"${FILESDIR}/chromium-75-gcc-angle-fix.patch"
 	"${FILESDIR}/chromium-75-unique_ptr.patch"

diff --git a/www-client/chromium/chromium-76.0.3809.36.ebuild b/www-client/chromium/chromium-76.0.3809.36.ebuild
index 5873a5a0710..2327e60f3ce 100644
--- a/www-client/chromium/chromium-76.0.3809.36.ebuild
+++ b/www-client/chromium/chromium-76.0.3809.36.ebuild
@@ -144,6 +144,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-compiler-r10.patch"
 	"${FILESDIR}/chromium-widevine-r4.patch"
 	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-angle-inline.patch"
 	"${FILESDIR}/chromium-76-quiche.patch"
 	"${FILESDIR}/chromium-76-lss.patch"
 	"${FILESDIR}/chromium-76-gcc-vulkan.patch"

diff --git a/www-client/chromium/files/chromium-angle-inline.patch b/www-client/chromium/files/chromium-angle-inline.patch
new file mode 100644
index 00000000000..8ece410f104
--- /dev/null
+++ b/www-client/chromium/files/chromium-angle-inline.patch
@@ -0,0 +1,26 @@
+From 2ee4e7f857514f4c0cbff135a1c5f968d8814d31 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sun, 23 Jun 2019 12:14:57 +0000
+Subject: [PATCH] explicit declaration of const GLfloat/const GLint for ValidateSamplerParameterBase
+
+---
+ third_party/angle/src/libANGLE/validationES.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/third_party/angle/src/libANGLE/validationES.cpp b/third_party/angle/src/libANGLE/validationES.cpp
+index ae353f7..fdc7ac2 100644
+--- a/third_party/angle/src/libANGLE/validationES.cpp
++++ b/third_party/angle/src/libANGLE/validationES.cpp
+@@ -6089,7 +6089,9 @@ bool ValidateSamplerParameterBase(Context *context,
+ }
+ 
+ template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, GLfloat *);
++template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, const GLfloat *);
+ template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, GLint *);
++template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, const GLint *);
+ template bool ValidateSamplerParameterBase(Context *,
+                                            GLuint,
+                                            GLenum,
+-- 
+2.21.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-06-19 21:24 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-06-19 21:24 UTC (permalink / raw
  To: gentoo-commits

commit:     7bcc030cf5bc9e3df3f5f9d3345b706f2349ff08
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 19 21:24:22 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Jun 19 21:24:22 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7bcc030c

www-client/chromium: remove old

Package-Manager: Portage-2.3.67_p10, Repoman-2.3.14_p5
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   3 -
 www-client/chromium/chromium-74.0.3729.169.ebuild  | 713 ---------------------
 .../chromium/files/chromium-74-7685422.patch       |  42 --
 .../chromium/files/chromium-74-c2c467f.patch       |  75 ---
 4 files changed, 833 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 6df93bfb7c2..1dcbcf125f1 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,3 @@
-DIST chromium-74-2f28731.patch 18581 BLAKE2B 146f6375071a0e85501a7c666d13ecb7ee196a97c6dffb709f2049f219a66c2058b6b29777e3a3cef17272c29cbe38f6c273e03452dfc9a303abc90f539353f6 SHA512 9c3cce89715ea5d27531dc0f53afa25d00c2b73dfa24123680a7960e6784f09bb2accca495a8c2540a9b43204089cb203d92644f7633e758bf24603d207bafb7
-DIST chromium-74-e1b1f3a.patch 20750 BLAKE2B 327752fc232ed568ef494f40d97672ff79d304bbe979f70e98422ac18616004e1289470340657995a6959b34a38df310145e0947ee2d75aca6c55c7d5dd1647f SHA512 b7401e8577577dd1e00fe06cce6a18039a812e4ca08df633b4cb431a15873fbb033525a608a558aa68fed22f1e42c08a04cc01e2b750d750d7a63419eac8d19b
-DIST chromium-74.0.3729.169.tar.xz 749495820 BLAKE2B bfe485220239aad146eab0cd7bf158a20bccf03abe74457ea3933094c9fb200ff7a2e9db4a62fa1a736341ce8ee987520e20bd32e13e213435fd6724d15a7d85 SHA512 783558bbae43a928b7d9fe18717b63be432409c81aba0a38ccb14f38398d8681122bdd763db6d22b01363108253432ed203a86f8c9ba627247219bf1519f839b
 DIST chromium-75.0.3770.100.tar.xz 708247700 BLAKE2B 9d9872019ab37b51daf4f0367ef121aefa8897c73b611478608e7c9be2d1098bcaec1ff8b22ccf4793933e7beca95bb74007061acc1424e2ed46717236549a85 SHA512 83048f302eb4e5fa59da3149e156180b07e310a6549b83a0841c5d92fa7102dbf9d53c5243aa9c35f3747b3f0c2d02c1541385f10115373cb3125cc6d1be9a42
 DIST chromium-75.0.3770.90.tar.xz 708212580 BLAKE2B e52149e8eea0734ec2704f176fed1911e6252cb0dab76894dcece7c826a0581e099b58e638324b115aecf61f26884ffdb8d5ea1c820bf0df2f49dbab1986d3f4 SHA512 5956ad1cf342f143c0587299bdd5497acfc958975e5b4878731c40e0e5db58280ea8b36ca077cafce7e812510356de57872f37753cb92de5258cb24578d2c327
 DIST chromium-76.0.3809.25.tar.xz 727459092 BLAKE2B dc5df0fde161ef7584ccb32d45402d915c13ed713cccde9a9071c596d83e4e8188ce4aa614297f9f2e653949a6ba3bf2ba27a791860b77b85d2d893fb2cba2da SHA512 03f0d7ab5e127a319c393373ad456b4ee7307fce8dd9ab84ea51012b93e200583a3e4ab7a48414d23823af08f09bd1240a990509ba18a3f5a21ee522e1bc45f0

diff --git a/www-client/chromium/chromium-74.0.3729.169.ebuild b/www-client/chromium/chromium-74.0.3729.169.ebuild
deleted file mode 100644
index f6aa5a9fa5f..00000000000
--- a/www-client/chromium/chromium-74.0.3729.169.ebuild
+++ /dev/null
@@ -1,713 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://dev.gentoo.org/~floppym/dist/chromium-74-e1b1f3a.patch
-	https://dev.gentoo.org/~floppym/dist/chromium-74-2f28731.patch
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-REQUIRED_USE="component-build? ( !suid )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-59:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.2.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	!<www-plugins/chrome-binary-plugins-57
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-# sys-apps/sandbox - https://crbug.com/586444
-DEPEND="${COMMON_DEPEND}
-"
-BDEPEND="
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	<dev-util/gn-0.1583
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	closure-compile? ( virtual/jre )
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-5"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-In order to have a native file dialog in an KDE desktop environment, please
-install:
-- kde-apps/kdialog
-"
-
-PATCHES=(
-	"${FILESDIR}"/chromium-compiler-r8.patch
-	"${FILESDIR}"/chromium-widevine-r4.patch
-	"${FILESDIR}"/chromium-fix-char_traits.patch
-	"${DISTDIR}"/chromium-74-e1b1f3a.patch
-	"${FILESDIR}"/chromium-74-c2c467f.patch
-	"${DISTDIR}"/chromium-74-2f28731.patch
-	"${FILESDIR}"/chromium-74-7685422.patch
-	"${FILESDIR}"/quiche-00f47df.patch
-)
-
-pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
-			die "At least gcc 8.0 is required"
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="5G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/dmg_fp
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/dav1d
-		third_party/devscripts
-		third_party/dom_distiller_js
-		third_party/emoji-segmenter
-		third_party/fips181
-		third_party/flatbuffers
-		third_party/flot
-		third_party/freetype
-		third_party/glslang
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/openmax_dl
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/ply
-		third_party/polymer
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/include/third_party/vulkan
-		third_party/skia/third_party/gif
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-7.0
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/subzero
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/siphash
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/yasm/run_yasm.py
-		third_party/xdg-utils
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
-	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Optional dependencies.
-	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# https://bugs.gentoo.org/588596
-	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Work around broken deps
-	#eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 22 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser \
-		"Chromium" \
-		chromium-browser \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-74-7685422.patch b/www-client/chromium/files/chromium-74-7685422.patch
deleted file mode 100644
index 19747245bd7..00000000000
--- a/www-client/chromium/files/chromium-74-7685422.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 7685422a90e1da829cb32d685a4b970d30738098 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Wed, 3 Apr 2019 18:35:04 +0000
-Subject: [PATCH] base: Value::Type enum class size should be 8-bit.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC is complaining because, when base::Type is used to declare the different
-variants of Type in its union, they are forced to take 8-bit, that is smaller
-than the enum class default size (same as int).
-
-So this change sets explicitely the enum class underlying type to be unsigned
-char.
-
-BUG=chromium:819294
-
-Change-Id: I1765e2503e2c3d3675c73ecb0f7f5bc33456e6f0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1550366
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#647382}
----
- base/values.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/base/values.h b/base/values.h
-index c455936d4961..14b76acec02f 100644
---- a/base/values.h
-+++ b/base/values.h
-@@ -86,7 +86,7 @@ class BASE_EXPORT Value {
-   // See technical note below explaining why this is used.
-   using DoubleStorage = struct { alignas(4) char v[sizeof(double)]; };
- 
--  enum class Type {
-+  enum class Type : unsigned char {
-     NONE = 0,
-     BOOLEAN,
-     INTEGER,
--- 
-2.21.0
-

diff --git a/www-client/chromium/files/chromium-74-c2c467f.patch b/www-client/chromium/files/chromium-74-c2c467f.patch
deleted file mode 100644
index e9e5d22e4a8..00000000000
--- a/www-client/chromium/files/chromium-74-c2c467f.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From c2c467f69fc00d353879d7add5f2c04a6acabbb1 Mon Sep 17 00:00:00 2001
-From: David 'Digit' Turner <digit@google.com>
-Date: Wed, 20 Mar 2019 21:41:09 +0000
-Subject: [PATCH] base: Value::FindDoubleKey() converts integers to doubles
-
-Ensure that FindDoubleKey() can return the value of an
-INTEGER key as a double. This is consistent with the behaviour
-of Value::GetDouble() which will auto-convert INTEGER values
-to doubles.
-
-BUG=646113
-R=dcheng@chromium.org,jdoerrie@chromium.org,sdefresne@chromium.org,hidehiko@chromium.org
-
-Change-Id: I2c08cb91b6cfd5db268a182ffffe16682d848008
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1529017
-Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
-Reviewed-by: Daniel Cheng <dcheng@chromium.org>
-Commit-Queue: David Turner <digit@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#642680}
----
- base/values.cc          | 10 ++++++++--
- base/values.h           |  2 ++
- base/values_unittest.cc |  2 +-
- 3 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/base/values.cc b/base/values.cc
-index 035aa2350cde..69d66ff8ab00 100644
---- a/base/values.cc
-+++ b/base/values.cc
-@@ -339,8 +339,14 @@ base::Optional<int> Value::FindIntKey(StringPiece key) const {
- }
- 
- base::Optional<double> Value::FindDoubleKey(StringPiece key) const {
--  const Value* result = FindKeyOfType(key, Type::DOUBLE);
--  return result ? base::make_optional(result->double_value_) : base::nullopt;
-+  const Value* result = FindKey(key);
-+  if (result) {
-+    if (result->is_int())
-+      return base::make_optional(static_cast<double>(result->int_value_));
-+    if (result->is_double())
-+      return base::make_optional(result->double_value_);
-+  }
-+  return base::nullopt;
- }
- 
- const std::string* Value::FindStringKey(StringPiece key) const {
-diff --git a/base/values.h b/base/values.h
-index e31cadd83102..6f2cd3cc3d79 100644
---- a/base/values.h
-+++ b/base/values.h
-@@ -200,6 +200,8 @@ class BASE_EXPORT Value {
-   // function's name.
-   base::Optional<bool> FindBoolKey(StringPiece key) const;
-   base::Optional<int> FindIntKey(StringPiece key) const;
-+  // Note FindDoubleKey() will auto-convert INTEGER keys to their double
-+  // value, for consistency with GetDouble().
-   base::Optional<double> FindDoubleKey(StringPiece key) const;
- 
-   // |FindStringKey| returns |nullptr| if value is not found or not a string.
-diff --git a/base/values_unittest.cc b/base/values_unittest.cc
-index b23fd8332491..7c545c09d947 100644
---- a/base/values_unittest.cc
-+++ b/base/values_unittest.cc
-@@ -674,7 +674,7 @@ TEST(ValuesTest, FindDoubleKey) {
-   const Value dict(std::move(storage));
-   EXPECT_EQ(base::nullopt, dict.FindDoubleKey("null"));
-   EXPECT_EQ(base::nullopt, dict.FindDoubleKey("bool"));
--  EXPECT_EQ(base::nullopt, dict.FindDoubleKey("int"));
-+  EXPECT_NE(base::nullopt, dict.FindDoubleKey("int"));
-   EXPECT_NE(base::nullopt, dict.FindDoubleKey("double"));
-   EXPECT_EQ(base::nullopt, dict.FindDoubleKey("string"));
-   EXPECT_EQ(base::nullopt, dict.FindDoubleKey("blob"));
--- 
-2.21.0
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-06-18 13:52 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-06-18 13:52 UTC (permalink / raw
  To: gentoo-commits

commit:     90c35915c64a4b8acdbbcfc352619f628a5e6eaa
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Jun 18 07:17:55 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Jun 18 13:49:47 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90c35915

www-client/chromium: beta channel bump

Closes: https://github.com/gentoo/gentoo/pull/12279
Package-Manager: Portage-2.3.66, Repoman-2.3.11
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-76.0.3809.25.ebuild   | 717 +++++++++++++++++++++
 .../chromium-76-gcc-ambiguous-nodestructor.patch   |  39 ++
 .../files/chromium-76-gcc-blink-constexpr.patch    |  32 +
 .../files/chromium-76-gcc-blink-namespace1.patch   |  91 +++
 .../files/chromium-76-gcc-blink-namespace2.patch   |  97 +++
 .../chromium/files/chromium-76-gcc-gl-init.patch   |  33 +
 .../chromium/files/chromium-76-gcc-include.patch   |  10 +
 .../chromium/files/chromium-76-gcc-noexcept.patch  | 347 ++++++++++
 .../chromium/files/chromium-76-gcc-private.patch   |  63 ++
 .../files/chromium-76-gcc-pure-virtual.patch       |  50 ++
 .../chromium/files/chromium-76-gcc-uint32.patch    |  30 +
 .../chromium/files/chromium-76-gcc-vulkan.patch    | 115 ++++
 www-client/chromium/files/chromium-76-lss.patch    |  39 ++
 www-client/chromium/files/chromium-76-quiche.patch | 239 +++++++
 .../chromium/files/chromium-compiler-r10.patch     | 185 ++++++
 16 files changed, 2088 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4d0c3af813a..65c89975c99 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-74-2f28731.patch 18581 BLAKE2B 146f6375071a0e85501a7c666d13ecb7ee1
 DIST chromium-74-e1b1f3a.patch 20750 BLAKE2B 327752fc232ed568ef494f40d97672ff79d304bbe979f70e98422ac18616004e1289470340657995a6959b34a38df310145e0947ee2d75aca6c55c7d5dd1647f SHA512 b7401e8577577dd1e00fe06cce6a18039a812e4ca08df633b4cb431a15873fbb033525a608a558aa68fed22f1e42c08a04cc01e2b750d750d7a63419eac8d19b
 DIST chromium-74.0.3729.169.tar.xz 749495820 BLAKE2B bfe485220239aad146eab0cd7bf158a20bccf03abe74457ea3933094c9fb200ff7a2e9db4a62fa1a736341ce8ee987520e20bd32e13e213435fd6724d15a7d85 SHA512 783558bbae43a928b7d9fe18717b63be432409c81aba0a38ccb14f38398d8681122bdd763db6d22b01363108253432ed203a86f8c9ba627247219bf1519f839b
 DIST chromium-75.0.3770.90.tar.xz 708212580 BLAKE2B e52149e8eea0734ec2704f176fed1911e6252cb0dab76894dcece7c826a0581e099b58e638324b115aecf61f26884ffdb8d5ea1c820bf0df2f49dbab1986d3f4 SHA512 5956ad1cf342f143c0587299bdd5497acfc958975e5b4878731c40e0e5db58280ea8b36ca077cafce7e812510356de57872f37753cb92de5258cb24578d2c327
+DIST chromium-76.0.3809.25.tar.xz 727459092 BLAKE2B dc5df0fde161ef7584ccb32d45402d915c13ed713cccde9a9071c596d83e4e8188ce4aa614297f9f2e653949a6ba3bf2ba27a791860b77b85d2d893fb2cba2da SHA512 03f0d7ab5e127a319c393373ad456b4ee7307fce8dd9ab84ea51012b93e200583a3e4ab7a48414d23823af08f09bd1240a990509ba18a3f5a21ee522e1bc45f0

diff --git a/www-client/chromium/chromium-76.0.3809.25.ebuild b/www-client/chromium/chromium-76.0.3809.25.ebuild
new file mode 100644
index 00000000000..5873a5a0710
--- /dev/null
+++ b/www-client/chromium/chromium-76.0.3809.25.ebuild
@@ -0,0 +1,717 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-64:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.11.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.2.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12-r0
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	<dev-util/gn-0.1583
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	closure-compile? ( virtual/jre )
+	virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r10.patch"
+	"${FILESDIR}/chromium-widevine-r4.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-76-quiche.patch"
+	"${FILESDIR}/chromium-76-lss.patch"
+	"${FILESDIR}/chromium-76-gcc-vulkan.patch"
+	"${FILESDIR}/chromium-76-gcc-private.patch"
+	"${FILESDIR}/chromium-76-gcc-noexcept.patch"
+	"${FILESDIR}/chromium-76-gcc-gl-init.patch"
+	"${FILESDIR}/chromium-76-gcc-blink-namespace1.patch"
+	"${FILESDIR}/chromium-76-gcc-blink-namespace2.patch"
+	"${FILESDIR}/chromium-76-gcc-blink-constexpr.patch"
+	"${FILESDIR}/chromium-76-gcc-uint32.patch"
+	"${FILESDIR}/chromium-76-gcc-ambiguous-nodestructor.patch"
+	"${FILESDIR}/chromium-76-gcc-include.patch"
+	"${FILESDIR}/chromium-76-gcc-pure-virtual.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+			die "At least gcc 8.0 is required"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="7G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/cityhash
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/axe-core
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/boringssl/src/third_party/sike
+		third_party/boringssl/linux-aarch64/crypto/third_party/sike
+		third_party/boringssl/linux-x86_64/crypto/third_party/sike
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/dav1d
+		third_party/dawn
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/emoji-segmenter
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openscreen
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/pffft
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/skcms
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-7.0
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/fft4g
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch b/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch
new file mode 100644
index 00000000000..587abf31bb7
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Wed, 05 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
+
+Use brace-list notation to wrap the already existing brace-list for
+initializing the flat-set. This resolves an ambiguous instantiation
+in GCC.
+
+Bug: 819294
+Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
+Reviewed-by: Matt Menke <mmenke@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c0..60a03f6 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+-  static base::NoDestructor<base::flat_set<std::string>> s_types({
++  static base::NoDestructor<base::flat_set<std::string>> s_types{{
+       // The list below has been populated based on most commonly used content
+       // types according to HTTP Archive - see:
+       // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -224,7 +224,7 @@
+       "application/x-www-form-urlencoded",
+       "application/zip",
+       "text/event-stream",
+-  });
++  }};
+ 
+   // All items need to be lower-case, to support case-insensitive comparisons
+   // later.

diff --git a/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch b/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch
new file mode 100644
index 00000000000..26bba05aa92
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Wed, 05 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+
+Other HasFraction methods as in PhysicalUnit are declared already
+constexpr and using it. It breaks GCC build.
+
+Bug: 819294.
+Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
+Reviewed-by: vmpstr <vmpstr@chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986..b6dbc76 100644
+--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
+@@ -202,7 +202,9 @@
+     return value_ > 0 ? LayoutUnit() : *this;
+   }
+ 
+-  bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
++  constexpr bool HasFraction() const {
++    return RawValue() % kFixedPointDenominator;
++  }
+ 
+   LayoutUnit Fraction() const {
+     // Compute fraction using the mod operator to preserve the sign of the value

diff --git a/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch b/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch
new file mode 100644
index 00000000000..bae3edec89d
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch
@@ -0,0 +1,91 @@
+From c6afbd59c997c2b64f11abdd1eaef71ae8ea2ddc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 07 Jun 2019 18:11:15 +0000
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
+
+Compilation fails because we are declaring ParseValueForFuzzer as friend method,
+but we are declaring it is in anonymous namespace. Moving to global namespace
+still fails (in this case in Clang).
+
+So final solution is making it a public static method of FeaturePolicyParser.
+
+Bug: 819294
+Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645223
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Reviewed-by: Luna Lu <loonybear@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667228}
+---
+
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+index f1c9594..bae91a1 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+@@ -323,6 +323,13 @@
+   return value;
+ }
+ 
++void FeaturePolicyParser::ParseValueForFuzzer(
++    blink::mojom::PolicyValueType feature_type,
++    const WTF::String& value_string) {
++  bool ok;
++  ParseValueForType(feature_type, value_string, &ok);
++}
++
+ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
+                        const ParsedFeaturePolicy& policy) {
+   return std::any_of(policy.begin(), policy.end(),
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+index fd25d90..8aa7323 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+@@ -16,9 +16,6 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+ 
+-// Forward declare for friendship.
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
+-
+ namespace blink {
+ 
+ class Document;
+@@ -79,8 +76,10 @@
+       const FeatureNameMap& feature_names,
+       ExecutionContext* execution_context = nullptr);
+ 
++  // Used for LLVM fuzzer test
++  static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
++
+  private:
+-  friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
+   static PolicyValue GetFallbackValueForFeature(
+       mojom::FeaturePolicyFeature feature);
+   static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+index 7f8e6aa..1455636 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+@@ -13,19 +13,12 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+ 
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType feature_type,
+-                         const WTF::String& value_string) {
+-  bool ok;
+-  blink::FeaturePolicyParser::ParseValueForType(feature_type, value_string,
+-                                                &ok);
+-}
+-
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+   static blink::BlinkFuzzerTestSupport test_support =
+       blink::BlinkFuzzerTestSupport();
+-  ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
+-                      WTF::String(data, size));
+-  ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
+-                      WTF::String(data, size));
++  blink::FeaturePolicyParser::ParseValueForFuzzer(
++      blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
++  blink::FeaturePolicyParser::ParseValueForFuzzer(
++      blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
+   return 0;
+ }

diff --git a/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch b/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch
new file mode 100644
index 00000000000..1d4b90febf6
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+
+Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
+build because of that. Move the template specializations out of RunInfo declaration
+in shape_result_inline_headeres.h to fix the GCC build issue.
+
+Bug: 819294
+Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
+Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+index 76ee6091..c14d3a0 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+@@ -251,37 +251,6 @@
+     template <bool has_non_zero_glyph_offsets>
+     struct iterator final {};
+ 
+-    // For non-zero glyph offset array
+-    template <>
+-    struct iterator<true> final {
+-      // The constructor for ShapeResult
+-      explicit iterator(const GlyphOffsetArray& array)
+-          : pointer(array.storage_.get()) {
+-        DCHECK(pointer);
+-      }
+-
+-      // The constructor for ShapeResultView
+-      explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
+-        DCHECK(pointer);
+-      }
+-
+-      GlyphOffset operator*() const { return *pointer; }
+-      void operator++() { ++pointer; }
+-
+-      const GlyphOffset* pointer;
+-    };
+-
+-    // For zero glyph offset array
+-    template <>
+-    struct iterator<false> final {
+-      explicit iterator(const GlyphOffsetArray& array) {
+-        DCHECK(!array.HasStorage());
+-      }
+-      explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
+-      GlyphOffset operator*() const { return GlyphOffset(); }
+-      void operator++() {}
+-    };
+-
+     template <bool has_non_zero_glyph_offsets>
+     iterator<has_non_zero_glyph_offsets> GetIterator() const {
+       return iterator<has_non_zero_glyph_offsets>(*this);
+@@ -495,6 +464,37 @@
+   float width_;
+ };
+ 
++// For non-zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
++  // The constructor for ShapeResult
++  explicit iterator(const GlyphOffsetArray& array)
++      : pointer(array.storage_.get()) {
++    DCHECK(pointer);
++  }
++
++  // The constructor for ShapeResultView
++  explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
++    DCHECK(pointer);
++  }
++
++  GlyphOffset operator*() const { return *pointer; }
++  void operator++() { ++pointer; }
++
++  const GlyphOffset* pointer;
++};
++
++// For zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
++  explicit iterator(const GlyphOffsetArray& array) {
++    DCHECK(!array.HasStorage());
++  }
++  explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
++  GlyphOffset operator*() const { return GlyphOffset(); }
++  void operator++() {}
++};
++
+ // Find the range of HarfBuzzRunGlyphData for the specified character index
+ // range. This function uses binary search twice, hence O(2 log n).
+ inline ShapeResult::RunInfo::GlyphDataRange

diff --git a/www-client/chromium/files/chromium-76-gcc-gl-init.patch b/www-client/chromium/files/chromium-76-gcc-gl-init.patch
new file mode 100644
index 00000000000..3bf394f92d9
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-gl-init.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Wed, 05 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
+
+XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
+same order of the declaration. GCC fails because of that.
+
+Bug: 819294
+Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
+Reviewed-by: Zhenyao Mo <zmo@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd4..0aa6892 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@
+ 
+   XSetWindowAttributes swa = {
+       .background_pixmap = 0,
+-      .bit_gravity = NorthWestGravity,
+-      .colormap = g_colormap,
+       .background_pixel = 0,  // ARGB(0,0,0,0) for compositing WM
+       .border_pixel = 0,
++      .bit_gravity = NorthWestGravity,
++      .colormap = g_colormap,
+   };
+   auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
+   if (ui::IsCompositingManagerPresent() &&

diff --git a/www-client/chromium/files/chromium-76-gcc-include.patch b/www-client/chromium/files/chromium-76-gcc-include.patch
new file mode 100644
index 00000000000..adc7f3ab3ac
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-include.patch
@@ -0,0 +1,10 @@
+--- a/chrome/browser/themes/theme_service.h	2019-06-13 18:56:30.000000000 -0000
++++ b/chrome/browser/themes/theme_service.h	2019-06-17 08:50:57.714289399 -0000
+@@ -26,6 +26,7 @@
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
+ #include "ui/native_theme/native_theme_observer.h"
++#include "ui/native_theme/native_theme.h"
+ 
+ class BrowserThemePack;
+ class CustomThemeSupplier;

diff --git a/www-client/chromium/files/chromium-76-gcc-noexcept.patch b/www-client/chromium/files/chromium-76-gcc-noexcept.patch
new file mode 100644
index 00000000000..2a7f4b35a72
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-noexcept.patch
@@ -0,0 +1,347 @@
+From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 07 Jun 2019 09:50:11 +0000
+Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
+
+As LayerTreeHostImpl::UIResourceData move constructor is declared
+noexcept with default implementation, the move constructor of its
+members should also be noexcept. GCC will fail to build otherwise
+for mismatching noexcept declaration.
+
+We also set the move assignment operator.
+
+Bug: 819294
+Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Reviewed-by: Daniel Cheng <dcheng@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667064}
+---
+
+diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
+index 2be2570..8426fa8 100644
+--- a/base/memory/shared_memory_mapping.cc
++++ b/base/memory/shared_memory_mapping.cc
+@@ -33,7 +33,7 @@
+ 
+ SharedMemoryMapping::SharedMemoryMapping() = default;
+ 
+-SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
++SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
+     : memory_(mapping.memory_),
+       size_(mapping.size_),
+       mapped_size_(mapping.mapped_size_),
+@@ -42,7 +42,7 @@
+ }
+ 
+ SharedMemoryMapping& SharedMemoryMapping::operator=(
+-    SharedMemoryMapping&& mapping) {
++    SharedMemoryMapping&& mapping) noexcept {
+   Unmap();
+   memory_ = mapping.memory_;
+   size_ = mapping.size_;
+@@ -90,9 +90,9 @@
+ 
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+-    ReadOnlySharedMemoryMapping&&) = default;
++    ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
+-    ReadOnlySharedMemoryMapping&&) = default;
++    ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+     void* address,
+     size_t size,
+@@ -102,9 +102,9 @@
+ 
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+-    WritableSharedMemoryMapping&&) = default;
++    WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
+-    WritableSharedMemoryMapping&&) = default;
++    WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+     void* address,
+     size_t size,
+diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
+index d9569af..2b8858e 100644
+--- a/base/memory/shared_memory_mapping.h
++++ b/base/memory/shared_memory_mapping.h
+@@ -32,8 +32,8 @@
+   SharedMemoryMapping();
+ 
+   // Move operations are allowed.
+-  SharedMemoryMapping(SharedMemoryMapping&& mapping);
+-  SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
++  SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
++  SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
+ 
+   // Unmaps the region if the mapping is valid.
+   virtual ~SharedMemoryMapping();
+@@ -93,8 +93,9 @@
+   ReadOnlySharedMemoryMapping();
+ 
+   // Move operations are allowed.
+-  ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
+-  ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
++  ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
++  ReadOnlySharedMemoryMapping& operator=(
++      ReadOnlySharedMemoryMapping&&) noexcept;
+ 
+   // Returns the base address of the mapping. This is read-only memory. This is
+   // page-aligned. This is nullptr for invalid instances.
+@@ -171,8 +172,9 @@
+   WritableSharedMemoryMapping();
+ 
+   // Move operations are allowed.
+-  WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
+-  WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
++  WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
++  WritableSharedMemoryMapping& operator=(
++      WritableSharedMemoryMapping&&) noexcept;
+ 
+   // Returns the base address of the mapping. This is writable memory. This is
+   // page-aligned. This is nullptr for invalid instances.
+
+From bdc24128b75008743d819e298557a53205706e7c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Sun, 09 Jun 2019 11:22:25 +0000
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
+
+AccountInfo declares them as noexcept and uses default implementation,
+so all its members (including AccountId) should be noexcept. But AccountId
+is not noexcept. To fix it we just need to make CoreAccountId move
+operator/assign operator noexcept.
+
+Bug: 819294
+Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645296
+Reviewed-by: Roger Tawa <rogerta@chromium.org>
+Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#667484}
+---
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d808082..12eefe3 100644
+--- a/google_apis/gaia/core_account_id.cc
++++ b/google_apis/gaia/core_account_id.cc
+@@ -6,8 +6,16 @@
+ 
+ CoreAccountId::CoreAccountId() = default;
+ 
++CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
++
++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::~CoreAccountId() = default;
+ 
++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
++
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+ 
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
+index 5ea602a..c2d1911 100644
+--- a/google_apis/gaia/core_account_id.h
++++ b/google_apis/gaia/core_account_id.h
+@@ -14,8 +14,13 @@
+ // for design and tracking).
+ struct CoreAccountId {
+   CoreAccountId();
++  CoreAccountId(const CoreAccountId&);
++  CoreAccountId(CoreAccountId&&) noexcept;
+   ~CoreAccountId();
+ 
++  CoreAccountId& operator=(const CoreAccountId&);
++  CoreAccountId& operator=(CoreAccountId&&) noexcept;
++
+   // Those implicit constructor and conversion operator allow to
+   // progressively migrate the code to use this struct. Removing
+   // them is tracked by https://crbug.com/959161
+
+From 9aae68736bc7eb7172d0d0c978ecb6d1f75c7b30 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Tue, 11 Jun 2019 10:27:19 +0200
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+
+In GCC, build is failing because history::QueryURLResult declares its move
+assignment operator as noexcept using default implementation. That requires
+its members to provide a move assignment operator that is noexcept too.
+
+But URLRow was missing noexcept declaration in move assignment operator (even
+though it was providing noexcept to its move constructor).
+
+Bug: 819294
+Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
+---
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd..aec0101 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@
+ }
+ 
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) = default;
++URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+ 
+ void URLRow::Swap(URLRow* other) {
+   std::swap(id_, other->id_);
+diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
+index 8f6f9cf..31a1ef8 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@
+ 
+   virtual ~URLRow();
+   URLRow& operator=(const URLRow& other);
+-  URLRow& operator=(URLRow&& other);
++  URLRow& operator=(URLRow&& other) noexcept;
+ 
+   URLID id() const { return id_; }
+ 
+
+From 41d954dec0669c9a85730c0bde7df7ba7a0ff43e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Thu, 06 Jun 2019 15:30:49 +0000
+Subject: [PATCH] Fix AutocompleteMatch move constructor/assign operator noexcept
+
+For AutocompleteMatch to declare noexcept them, all the contained
+properties need to be noexcept too. This is required at least
+for SuggestionAnswer, because base::string16 will make default
+calculated signature of the move operator noexcept(false).
+
+To avoid this issue we explicitely declare them on SuggestionAnswer,
+and its member classes TextField and ImageLine.
+
+Bug: 819294
+Change-Id: I8714f2c6352a3292bdebdc3aed9790270e49c580
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1554669
+Reviewed-by: Kevin Bailey <krb@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#666714}
+---
+
+diff --git a/components/omnibox/browser/suggestion_answer.cc b/components/omnibox/browser/suggestion_answer.cc
+index 151e55f..a0c9049 100644
+--- a/components/omnibox/browser/suggestion_answer.cc
++++ b/components/omnibox/browser/suggestion_answer.cc
+@@ -55,6 +55,12 @@
+ 
+ SuggestionAnswer::TextField::TextField() = default;
+ SuggestionAnswer::TextField::~TextField() = default;
++SuggestionAnswer::TextField::TextField(const TextField&) = default;
++SuggestionAnswer::TextField::TextField(TextField&&) noexcept = default;
++SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
++    const TextField&) = default;
++SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
++    TextField&&) noexcept = default;
+ 
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+@@ -93,9 +99,12 @@
+ SuggestionAnswer::ImageLine::ImageLine()
+     : num_text_lines_(1) {}
+ SuggestionAnswer::ImageLine::ImageLine(const ImageLine& line) = default;
++SuggestionAnswer::ImageLine::ImageLine(ImageLine&&) noexcept = default;
+ 
+ SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
+     const ImageLine& line) = default;
++SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
++    ImageLine&&) noexcept = default;
+ 
+ SuggestionAnswer::ImageLine::~ImageLine() {}
+ 
+@@ -251,9 +260,14 @@
+ 
+ SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer) = default;
+ 
++SuggestionAnswer::SuggestionAnswer(SuggestionAnswer&&) noexcept = default;
++
+ SuggestionAnswer& SuggestionAnswer::operator=(const SuggestionAnswer& answer) =
+     default;
+ 
++SuggestionAnswer& SuggestionAnswer::operator=(SuggestionAnswer&&) noexcept =
++    default;
++
+ SuggestionAnswer::~SuggestionAnswer() = default;
+ 
+ // static
+diff --git a/components/omnibox/browser/suggestion_answer.h b/components/omnibox/browser/suggestion_answer.h
+index 31be937..2840ace 100644
+--- a/components/omnibox/browser/suggestion_answer.h
++++ b/components/omnibox/browser/suggestion_answer.h
+@@ -125,6 +125,10 @@
+    public:
+     TextField();
+     ~TextField();
++    TextField(const TextField&);
++    TextField(TextField&&) noexcept;
++    TextField& operator=(const TextField&);
++    TextField& operator=(TextField&&) noexcept;
+ 
+     // Parses |field_json| dictionary and populates |text_field| with the
+     // contents.  If any of the required elements is missing, returns false and
+@@ -162,7 +166,9 @@
+    public:
+     ImageLine();
+     explicit ImageLine(const ImageLine& line);
++    ImageLine(ImageLine&&) noexcept;
+     ImageLine& operator=(const ImageLine& line);
++    ImageLine& operator=(ImageLine&&) noexcept;
+     ~ImageLine();
+ 
+     // Parses dictionary |line_json| and populates |image_line| with the
+@@ -213,7 +219,9 @@
+ 
+   SuggestionAnswer();
+   SuggestionAnswer(const SuggestionAnswer& answer);
++  SuggestionAnswer(SuggestionAnswer&&) noexcept;
+   SuggestionAnswer& operator=(const SuggestionAnswer& answer);
++  SuggestionAnswer& operator=(SuggestionAnswer&&) noexcept;
+   ~SuggestionAnswer();
+ 
+   // Parses dictionary |answer_json| and fills a SuggestionAnswer containing the
+
+From 9f99af41cae3cfff3bcdcc856c1539801c9b745b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 07 Jun 2019 18:59:59 +0000
+Subject: [PATCH] DisjoingRangeLockManager::Lock move constructor/assign operator cannot be noexcept
+
+They depend on LockRequest, that depends on WeakPtr, none of them noexcept.
+
+Bug: 819294
+Change-Id: I04ec15901ca627358df727540597f21f135c129b
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646252
+Reviewed-by: Joshua Bell <jsbell@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#667260}
+---
+
+diff --git a/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc b/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc
+index 478a5c9..a18c6cd 100644
+--- a/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc
++++ b/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc
+@@ -19,14 +19,13 @@
+     : requested_type(type),
+       locks_holder(std::move(locks_holder)),
+       acquired_callback(std::move(acquired_callback)) {}
+-DisjointRangeLockManager::LockRequest::LockRequest(LockRequest&&) noexcept =
+-    default;
++DisjointRangeLockManager::LockRequest::LockRequest(LockRequest&&) = default;
+ DisjointRangeLockManager::LockRequest::~LockRequest() = default;
+ DisjointRangeLockManager::Lock::Lock() = default;
+-DisjointRangeLockManager::Lock::Lock(Lock&&) noexcept = default;
++DisjointRangeLockManager::Lock::Lock(Lock&&) = default;
+ DisjointRangeLockManager::Lock::~Lock() = default;
+ DisjointRangeLockManager::Lock& DisjointRangeLockManager::Lock::operator=(
+-    DisjointRangeLockManager::Lock&&) noexcept = default;
++    DisjointRangeLockManager::Lock&&) = default;
+ 
+ DisjointRangeLockManager::DisjointRangeLockManager(int level_count)
+     : task_runner_(base::SequencedTaskRunnerHandle::Get()),

diff --git a/www-client/chromium/files/chromium-76-gcc-private.patch b/www-client/chromium/files/chromium-76-gcc-private.patch
new file mode 100644
index 00000000000..bc0ed980fd3
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-private.patch
@@ -0,0 +1,63 @@
+From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Tue, 11 Jun 2019 16:56:27 +0000
+Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
+
+GCC does not allow friendship declaration to anonymous namespace as done with Job
+object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
+makes RemoveJob method public, that was the only reason to make Job a friend.
+
+Error was:
+./../net/cert_net/cert_net_fetcher_impl.cc: In member function ‘void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*)’:
+../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: ‘std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*)’ is private within this context
+     delete_this = parent_->RemoveJob(this);
+                                          ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+   std::unique_ptr<Job> RemoveJob(Job* job);
+                        ^~~~~~~~~
+../../net/cert_net/cert_net_fetcher_impl.cc: In member function ‘void net::{anonymous}::Job::OnJobCompleted(net::Error)’:
+../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: ‘std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*)’ is private within this context
+   std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
+                                                             ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+   std::unique_ptr<Job> RemoveJob(Job* job);
+                        ^~~~~~~~~
+
+Bug: 819294
+Change-Id: I3609f4558e570741395366de6a4cd40577d91450
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
+Commit-Queue: Eric Roman <eroman@chromium.org>
+Reviewed-by: Eric Roman <eroman@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668015}
+---
+
+diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
+index 11a1166..349c656 100644
+--- a/net/cert_net/cert_net_fetcher_impl.cc
++++ b/net/cert_net/cert_net_fetcher_impl.cc
+@@ -135,21 +135,19 @@
+   void Fetch(std::unique_ptr<RequestParams> request_params,
+              scoped_refptr<RequestCore> request);
+ 
++  // Removes |job| from the in progress jobs and transfers ownership to the
++  // caller.
++  std::unique_ptr<Job> RemoveJob(Job* job);
++
+   // Cancels outstanding jobs, which stops network requests and signals the
+   // corresponding RequestCores that the requests have completed.
+   void Shutdown();
+ 
+  private:
+-  friend class Job;
+-
+   // Finds a job with a matching RequestPararms or returns nullptr if there was
+   // no match.
+   Job* FindJob(const RequestParams& params);
+ 
+-  // Removes |job| from the in progress jobs and transfers ownership to the
+-  // caller.
+-  std::unique_ptr<Job> RemoveJob(Job* job);
+-
+   // The in-progress jobs. This set does not contain the job which is actively
+   // invoking callbacks (OnJobCompleted).
+   JobSet jobs_;

diff --git a/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch b/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch
new file mode 100644
index 00000000000..3d34e436a28
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch
@@ -0,0 +1,50 @@
+From cdf306db81efaaaa954487585d5a5a16205a5ebd Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Wed, 05 Jun 2019 14:45:06 +0000
+Subject: [PATCH] Avoid pure virtual crash destroying RenderProcessUserData
+
+When RenderProcessUserData is destroyed from the destructor of
+RenderProcessHostImpl, it is done in the destructor of RenderProcessHost.
+At this point RemoveObserver override is already freed, so RenderProcessHost
+is pure virtual. This crash happens at least building with GCC:
+
+    at /usr/include/c++/8/ext/new_allocator.h:140
+    (this=0x7fffffffcb50, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/stl_tree.h:964
+
+We need to destroy RenderProcessUserData before that happens. To do that
+we can just override RenderProcessHostDestroyed.
+
+Bug: 910288
+Change-Id: I38107b178829b0cb7494f5333b765e5b087d82cd
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645366
+Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
+Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#666279}
+---
+
+diff --git a/chrome/browser/performance_manager/render_process_user_data.cc b/chrome/browser/performance_manager/render_process_user_data.cc
+index 2e2c199..ef6e1fb 100644
+--- a/chrome/browser/performance_manager/render_process_user_data.cc
++++ b/chrome/browser/performance_manager/render_process_user_data.cc
+@@ -116,4 +116,9 @@
+                      base::Unretained(process_node_.get()), info.exit_code));
+ }
+ 
++void RenderProcessUserData::RenderProcessHostDestroyed(
++    content::RenderProcessHost* host) {
++  host->RemoveUserData(kRenderProcessUserDataKey);
++}
++
+ }  // namespace performance_manager
+diff --git a/chrome/browser/performance_manager/render_process_user_data.h b/chrome/browser/performance_manager/render_process_user_data.h
+index ac74b1d..f3b4d16 100644
+--- a/chrome/browser/performance_manager/render_process_user_data.h
++++ b/chrome/browser/performance_manager/render_process_user_data.h
+@@ -47,6 +47,7 @@
+   void RenderProcessExited(
+       content::RenderProcessHost* host,
+       const content::ChildProcessTerminationInfo& info) override;
++  void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
+ 
+   // All instances are linked together in a doubly linked list to allow orderly
+   // destruction at browser shutdown time.

diff --git a/www-client/chromium/files/chromium-76-gcc-uint32.patch b/www-client/chromium/files/chromium-76-gcc-uint32.patch
new file mode 100644
index 00000000000..5e392e6a6e5
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-uint32.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Thu, 06 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+
+We are setting kAlive and kDead values assigning values that
+are bigger than the maximum signed int32. It is better to use
+uint32_t in this case.
+
+Bug: 819294
+Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
+Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4..3c6f87b 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@
+ 
+   // TODO(https://crbug.com/960874): Debugging code to try and shed some light
+   // on why the owned maps are invalid.
+-  enum class Liveness : int32_t {
++  enum class Liveness : uint32_t {
+     kAlive = 0xCA11AB13,
+     kDead = 0xDEADBEEF,
+   };

diff --git a/www-client/chromium/files/chromium-76-gcc-vulkan.patch b/www-client/chromium/files/chromium-76-gcc-vulkan.patch
new file mode 100644
index 00000000000..cf93bce63e9
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-vulkan.patch
@@ -0,0 +1,115 @@
+From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Tue, 11 Jun 2019 17:39:38 +0000
+Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
+
+The notation for initialization of structs referring to its properties
+is invalid in C++. This is not accepted in GCC. It was making build
+fail in VulkanCommandBuffer.
+
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
+       .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
+       .subresourceRange.baseMipLevel = 0,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
+       .subresourceRange.levelCount = 1,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
+       .subresourceRange.baseArrayLayer = 0,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
+       .subresourceRange.layerCount = 1,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
+       .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
+       .imageSubresource.mipLevel = 0,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
+       .imageSubresource.baseArrayLayer = 0,
+       ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
+       .imageSubresource.layerCount = 1,
+       ^
+Bug: 819294
+
+Change-Id: I999abece0c727e77964789183642ba62009c2c22
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Reviewed-by: Antoine Labour <piman@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668033}
+---
+
+diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
+index ba776e4..4f14c85 100644
+--- a/gpu/vulkan/vulkan_command_buffer.cc
++++ b/gpu/vulkan/vulkan_command_buffer.cc
+@@ -207,21 +207,20 @@
+ void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
+                                                 VkImageLayout old_layout,
+                                                 VkImageLayout new_layout) {
+-  VkImageMemoryBarrier barrier = {
+-      .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
+-      .srcAccessMask = GetAccessMask(old_layout),
+-      .dstAccessMask = GetAccessMask(new_layout),
+-      .oldLayout = old_layout,
+-      .newLayout = new_layout,
+-      .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+-      .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+-      .image = image,
+-      .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+-      .subresourceRange.baseMipLevel = 0,
+-      .subresourceRange.levelCount = 1,
+-      .subresourceRange.baseArrayLayer = 0,
+-      .subresourceRange.layerCount = 1,
+-  };
++  VkImageMemoryBarrier barrier = {};
++  barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
++  barrier.srcAccessMask = GetAccessMask(old_layout);
++  barrier.dstAccessMask = GetAccessMask(new_layout);
++  barrier.oldLayout = old_layout;
++  barrier.newLayout = new_layout;
++  barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++  barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++  barrier.image = image;
++  barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++  barrier.subresourceRange.baseMipLevel = 0;
++  barrier.subresourceRange.levelCount = 1;
++  barrier.subresourceRange.baseArrayLayer = 0;
++  barrier.subresourceRange.layerCount = 1;
+   vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
+                        GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
+                        nullptr, 1, &barrier);
+@@ -233,17 +232,16 @@
+                                             uint32_t buffer_height,
+                                             uint32_t width,
+                                             uint32_t height) {
+-  VkBufferImageCopy region = {
+-      .bufferOffset = 0,
+-      .bufferRowLength = buffer_width,
+-      .bufferImageHeight = buffer_height,
+-      .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+-      .imageSubresource.mipLevel = 0,
+-      .imageSubresource.baseArrayLayer = 0,
+-      .imageSubresource.layerCount = 1,
+-      .imageOffset = {0, 0, 0},
+-      .imageExtent = {width, height, 1},
+-  };
++  VkBufferImageCopy region = {};
++  region.bufferOffset = 0;
++  region.bufferRowLength = buffer_width;
++  region.bufferImageHeight = buffer_height;
++  region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++  region.imageSubresource.mipLevel = 0;
++  region.imageSubresource.baseArrayLayer = 0;
++  region.imageSubresource.layerCount = 1;
++  region.imageOffset = {0, 0, 0};
++  region.imageExtent = {width, height, 1};
+   vkCmdCopyBufferToImage(command_buffer_, buffer, image,
+                          VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &region);
+ }

diff --git a/www-client/chromium/files/chromium-76-lss.patch b/www-client/chromium/files/chromium-76-lss.patch
new file mode 100644
index 00000000000..4d475b53958
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-lss.patch
@@ -0,0 +1,39 @@
+diff --git a/third_party/crashpad/crashpad/client/crashpad_client_linux.cc b/third_party/crashpad/crashpad/client/crashpad_client_linux.cc
+index 008f858..69d0623 100644
+--- a/third_party/crashpad/crashpad/client/crashpad_client_linux.cc
++++ b/third_party/crashpad/crashpad/client/crashpad_client_linux.cc
+@@ -25,7 +25,7 @@
+ #include "base/logging.h"
+ #include "base/strings/stringprintf.h"
+ #include "client/client_argv_handling.h"
+-#include "third_party/lss/lss.h"
++#include "third_party/lss/linux_syscall_support.h"
+ #include "util/file/file_io.h"
+ #include "util/linux/exception_handler_client.h"
+ #include "util/linux/exception_information.h"
+diff --git a/third_party/crashpad/crashpad/util/linux/proc_task_reader_test.cc b/third_party/crashpad/crashpad/util/linux/proc_task_reader_test.cc
+index 911f6d3..11c1ffa 100644
+--- a/third_party/crashpad/crashpad/util/linux/proc_task_reader_test.cc
++++ b/third_party/crashpad/crashpad/util/linux/proc_task_reader_test.cc
+@@ -19,7 +19,7 @@
+ #include "base/strings/stringprintf.h"
+ #include "gtest/gtest.h"
+ #include "test/multiprocess_exec.h"
+-#include "third_party/lss/lss.h"
++#include "third_party/lss/linux_syscall_support.h"
+ #include "util/synchronization/semaphore.h"
+ #include "util/thread/thread.h"
+ 
+diff --git a/third_party/crashpad/crashpad/util/linux/socket.cc b/third_party/crashpad/crashpad/util/linux/socket.cc
+index 68efd57..d6e39f0 100644
+--- a/third_party/crashpad/crashpad/util/linux/socket.cc
++++ b/third_party/crashpad/crashpad/util/linux/socket.cc
+@@ -18,7 +18,7 @@
+ 
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+-#include "third_party/lss/lss.h"
++#include "third_party/lss/linux_syscall_support.h"
+ 
+ namespace crashpad {
+ 

diff --git a/www-client/chromium/files/chromium-76-quiche.patch b/www-client/chromium/files/chromium-76-quiche.patch
new file mode 100644
index 00000000000..f3aa42aa304
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-quiche.patch
@@ -0,0 +1,239 @@
+From 9424add9d73432a794b7944790253213cce6dcb8 Mon Sep 17 00:00:00 2001
+From: danzh <danzh@google.com>
+Date: Thu, 06 Jun 2019 14:04:36 -0700
+Subject: [PATCH] gfe-relnote: (n/a) code cleanup. Fix envoy compile errors.
+
+Add #include header for std library.
+Reference TransportParameters when using its enum TransportParameterId.
+
+PiperOrigin-RevId: 251922363
+Change-Id: Iba38660e5adc3069e377829acec44267658b11c6
+---
+
+diff --git a/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc b/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+index ee0ebf0..e5df9fe 100644
+--- a/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
++++ b/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+@@ -62,37 +62,37 @@
+ std::string TransportParameterIdToString(
+     TransportParameters::TransportParameterId param_id) {
+   switch (param_id) {
+-    case kOriginalConnectionId:
++    case TransportParameters::kOriginalConnectionId:
+       return "original_connection_id";
+-    case kIdleTimeout:
++    case TransportParameters::kIdleTimeout:
+       return "idle_timeout";
+-    case kStatelessResetToken:
++    case TransportParameters::kStatelessResetToken:
+       return "stateless_reset_token";
+-    case kMaxPacketSize:
++    case TransportParameters::kMaxPacketSize:
+       return "max_packet_size";
+-    case kInitialMaxData:
++    case TransportParameters::kInitialMaxData:
+       return "initial_max_data";
+-    case kInitialMaxStreamDataBidiLocal:
++    case TransportParameters::kInitialMaxStreamDataBidiLocal:
+       return "initial_max_stream_data_bidi_local";
+-    case kInitialMaxStreamDataBidiRemote:
++    case TransportParameters::kInitialMaxStreamDataBidiRemote:
+       return "initial_max_stream_data_bidi_remote";
+-    case kInitialMaxStreamDataUni:
++    case TransportParameters::kInitialMaxStreamDataUni:
+       return "initial_max_stream_data_uni";
+-    case kInitialMaxStreamsBidi:
++    case TransportParameters::kInitialMaxStreamsBidi:
+       return "initial_max_streams_bidi";
+-    case kInitialMaxStreamsUni:
++    case TransportParameters::kInitialMaxStreamsUni:
+       return "initial_max_streams_uni";
+-    case kAckDelayExponent:
++    case TransportParameters::kAckDelayExponent:
+       return "ack_delay_exponent";
+-    case kMaxAckDelay:
++    case TransportParameters::kMaxAckDelay:
+       return "max_ack_delay";
+-    case kDisableMigration:
++    case TransportParameters::kDisableMigration:
+       return "disable_migration";
+-    case kPreferredAddress:
++    case TransportParameters::kPreferredAddress:
+       return "preferred_address";
+-    case kGoogleQuicParam:
++    case TransportParameters::kGoogleQuicParam:
+       return "google";
+-    case kGoogleQuicVersion:
++    case TransportParameters::kGoogleQuicVersion:
+       return "google-version";
+   }
+   return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
+@@ -390,7 +390,7 @@
+   CBB original_connection_id_param;
+   if (!in.original_connection_id.IsEmpty()) {
+     DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+-    if (!CBB_add_u16(&params, kOriginalConnectionId) ||
++    if (!CBB_add_u16(&params, TransportParameters::kOriginalConnectionId) ||
+         !CBB_add_u16_length_prefixed(&params, &original_connection_id_param) ||
+         !CBB_add_bytes(
+             &original_connection_id_param,
+@@ -412,7 +412,7 @@
+   if (!in.stateless_reset_token.empty()) {
+     DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
+     DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+-    if (!CBB_add_u16(&params, kStatelessResetToken) ||
++    if (!CBB_add_u16(&params, TransportParameters::kStatelessResetToken) ||
+         !CBB_add_u16_length_prefixed(&params, &stateless_reset_token_param) ||
+         !CBB_add_bytes(&stateless_reset_token_param,
+                        in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@
+ 
+   // disable_migration
+   if (in.disable_migration) {
+-    if (!CBB_add_u16(&params, kDisableMigration) ||
++    if (!CBB_add_u16(&params, TransportParameters::kDisableMigration) ||
+         !CBB_add_u16(&params, 0u)) {  // 0 is the length of this parameter.
+       QUIC_BUG << "Failed to write disable_migration for " << in;
+       return false;
+@@ -458,7 +458,7 @@
+       QUIC_BUG << "Bad lengths " << *in.preferred_address;
+       return false;
+     }
+-    if (!CBB_add_u16(&params, kPreferredAddress) ||
++    if (!CBB_add_u16(&params, TransportParameters::kPreferredAddress) ||
+         !CBB_add_u16_length_prefixed(&params, &preferred_address_params) ||
+         !CBB_add_bytes(
+             &preferred_address_params,
+@@ -491,7 +491,7 @@
+   if (in.google_quic_params) {
+     const QuicData& serialized_google_quic_params =
+         in.google_quic_params->GetSerialized();
+-    if (!CBB_add_u16(&params, kGoogleQuicParam) ||
++    if (!CBB_add_u16(&params, TransportParameters::kGoogleQuicParam) ||
+         !CBB_add_u16_length_prefixed(&params, &google_quic_params) ||
+         !CBB_add_bytes(&google_quic_params,
+                        reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@
+ 
+   // Google-specific version extension.
+   CBB google_version_params;
+-  if (!CBB_add_u16(&params, kGoogleQuicVersion) ||
++  if (!CBB_add_u16(&params, TransportParameters::kGoogleQuicVersion) ||
+       !CBB_add_u16_length_prefixed(&params, &google_version_params) ||
+       !CBB_add_u32(&google_version_params, in.version)) {
+     QUIC_BUG << "Failed to write Google version extension for " << in;
+@@ -565,7 +565,7 @@
+     }
+     bool parse_success = true;
+     switch (param_id) {
+-      case kOriginalConnectionId:
++      case TransportParameters::kOriginalConnectionId:
+         if (!out->original_connection_id.IsEmpty()) {
+           QUIC_DLOG(ERROR) << "Received a second original connection ID";
+           return false;
+@@ -581,10 +581,10 @@
+                  CBS_len(&value));
+         }
+         break;
+-      case kIdleTimeout:
++      case TransportParameters::kIdleTimeout:
+         parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
+         break;
+-      case kStatelessResetToken:
++      case TransportParameters::kStatelessResetToken:
+         if (!out->stateless_reset_token.empty()) {
+           QUIC_DLOG(ERROR) << "Received a second stateless reset token";
+           return false;
+@@ -597,36 +597,36 @@
+         out->stateless_reset_token.assign(CBS_data(&value),
+                                           CBS_data(&value) + CBS_len(&value));
+         break;
+-      case kMaxPacketSize:
++      case TransportParameters::kMaxPacketSize:
+         parse_success = out->max_packet_size.ReadFromCbs(&value);
+         break;
+-      case kInitialMaxData:
++      case TransportParameters::kInitialMaxData:
+         parse_success = out->initial_max_data.ReadFromCbs(&value);
+         break;
+-      case kInitialMaxStreamDataBidiLocal:
++      case TransportParameters::kInitialMaxStreamDataBidiLocal:
+         parse_success =
+             out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
+         break;
+-      case kInitialMaxStreamDataBidiRemote:
++      case TransportParameters::kInitialMaxStreamDataBidiRemote:
+         parse_success =
+             out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
+         break;
+-      case kInitialMaxStreamDataUni:
++      case TransportParameters::kInitialMaxStreamDataUni:
+         parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
+         break;
+-      case kInitialMaxStreamsBidi:
++      case TransportParameters::kInitialMaxStreamsBidi:
+         parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
+         break;
+-      case kInitialMaxStreamsUni:
++      case TransportParameters::kInitialMaxStreamsUni:
+         parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
+         break;
+-      case kAckDelayExponent:
++      case TransportParameters::kAckDelayExponent:
+         parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
+         break;
+-      case kMaxAckDelay:
++      case TransportParameters::kMaxAckDelay:
+         parse_success = out->max_ack_delay.ReadFromCbs(&value);
+         break;
+-      case kDisableMigration:
++      case TransportParameters::kDisableMigration:
+         if (out->disable_migration) {
+           QUIC_DLOG(ERROR) << "Received a second disable migration";
+           return false;
+@@ -638,7 +638,7 @@
+         }
+         out->disable_migration = true;
+         break;
+-      case kPreferredAddress: {
++      case TransportParameters::kPreferredAddress: {
+         uint16_t ipv4_port, ipv6_port;
+         in_addr ipv4_address;
+         in6_addr ipv6_address;
+@@ -692,7 +692,7 @@
+             QuicMakeUnique<TransportParameters::PreferredAddress>(
+                 preferred_address);
+       } break;
+-      case kGoogleQuicParam: {
++      case TransportParameters::kGoogleQuicParam: {
+         if (out->google_quic_params) {
+           QUIC_DLOG(ERROR) << "Received a second Google parameter";
+           return false;
+@@ -701,7 +701,7 @@
+             reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
+         out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
+       } break;
+-      case kGoogleQuicVersion: {
++      case TransportParameters::kGoogleQuicVersion: {
+         if (!CBS_get_u32(&value, &out->version)) {
+           QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
+           return false;
+diff --git a/quic/core/quic_socket_address_coder.cc b/quic/core/quic_socket_address_coder.cc
+index 2527fc9..b26103d 100644
+--- a/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
++++ b/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
+-#include <string>
+-
+ #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
+ 
++#include <cstring>
++#include <string>
++#include <vector>
++
+ namespace quic {
+ 
+ namespace {

diff --git a/www-client/chromium/files/chromium-compiler-r10.patch b/www-client/chromium/files/chromium-compiler-r10.patch
new file mode 100644
index 00000000000..f2ecdc3f32b
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r10.patch
@@ -0,0 +1,185 @@
+From a1207cc75454e653030716948d27ec27412f6fe8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 16 Jun 2019 15:43:27 +0100
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 64 +++++++++++++---------------------
+ 1 file changed, 25 insertions(+), 39 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index a3f21b7..0a7bec6 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -230,8 +230,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+     ":compiler_deterministic",
+   ]
+@@ -471,20 +469,6 @@ config("compiler") {
+     }
+   }
+ 
+-  if (is_clang && !is_nacl && !use_xcode_clang) {
+-    cflags += [ "-fcrash-diagnostics-dir=" +
+-                rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+-    cflags += [
+-      # TODO(hans): Remove this once Clang generates better optimized debug info
+-      # by default. https://crbug.com/765793
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-instcombine-lower-dbg-declare=0",
+-    ]
+-  }
+-
+   # C11/C++11 compiler flags setup.
+   # ---------------------------
+   if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1431,6 +1415,12 @@ config("default_warnings") {
+         "-Wno-narrowing",
+       ]
+ 
++      # -Wno-class-memaccess warns about hash table and vector in blink.
++      # But the violation is intentional.
++      if (!is_nacl) {
++        cflags_cc += [ "-Wno-class-memaccess" ]
++      }
++
+       # -Wunused-local-typedefs is broken in gcc,
+       # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
+       cflags += [ "-Wno-unused-local-typedefs" ]
+@@ -1525,7 +1515,7 @@ config("chromium_code") {
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1534,10 +1524,6 @@ config("chromium_code") {
+       # well.
+       ldflags = [ "-Werror" ]
+     }
+-    if (is_clang) {
+-      # Enable extra warnings for chromium_code when we control the compiler.
+-      cflags += [ "-Wextra" ]
+-    }
+ 
+     # In Chromium code, we define __STDC_foo_MACROS in order to get the
+     # C99 macros on Mac and Linux.
+@@ -1546,15 +1532,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+-        current_cpu != "s390" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64") {
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1943,7 +1920,8 @@ config("default_stack_frames") {
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+     if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1977,7 +1955,8 @@ config("optimize") {
+ }
+ 
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+   if (is_win) {
+     # Favor size over speed, /O1 must be before the common flags. The GYP
+     # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2000,7 +1979,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2028,7 +2008,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2075,7 +2056,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2113,7 +2095,8 @@ config("optimize_speed") {
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   ldflags = common_optimize_on_ldflags
+   visibility = [ ":default_optimization" ]
+@@ -2215,7 +2198,8 @@ config("win_pdbaltpath") {
+ }
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (use_goma || is_clang) {
+       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2325,7 +2309,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Linker symbols for backtraces only.
+     cflags = []
+@@ -2382,7 +2367,8 @@ config("minimal_symbols") {
+ }
+ 
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (!is_win) {
+     cflags = [ "-g0" ]
+     asmflags = cflags
+-- 
+2.21.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-02-17 17:53 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-02-17 17:53 UTC (permalink / raw
  To: gentoo-commits

commit:     8a4db4358f52de35b083dd97ef11b735fafa6158
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 17 17:46:53 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Feb 17 17:53:25 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8a4db435

www-client/chromium: backport another gcc fix

Closes: https://bugs.gentoo.org/678158
Package-Manager: Portage-2.3.59_p2, Repoman-2.3.12_p67
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-73.0.3683.27.ebuild  |  1 +
 www-client/chromium/files/chromium-73-gcc-6.patch | 88 +++++++++++++++++++++++
 2 files changed, 89 insertions(+)

diff --git a/www-client/chromium/chromium-73.0.3683.27.ebuild b/www-client/chromium/chromium-73.0.3683.27.ebuild
index 551c1a943fd..2c9e1dc2113 100644
--- a/www-client/chromium/chromium-73.0.3683.27.ebuild
+++ b/www-client/chromium/chromium-73.0.3683.27.ebuild
@@ -146,6 +146,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-73-gcc-3.patch"
 	"${FILESDIR}/chromium-73-gcc-4.patch"
 	"${FILESDIR}/chromium-73-gcc-5.patch"
+	"${FILESDIR}/chromium-73-gcc-6.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-73-gcc-6.patch b/www-client/chromium/files/chromium-73-gcc-6.patch
new file mode 100644
index 00000000000..3cd72ab318d
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-6.patch
@@ -0,0 +1,88 @@
+From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Thu, 14 Feb 2019 22:22:21 +0000
+Subject: [PATCH] chrome/browser: Replace some forward declarations with actual
+ includes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes the GCC build which was failing like this:
+
+    ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]’:
+    ../../base/scoped_observer.h:26:5:   required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]’
+    ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70:   required from here
+    ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class TabStripModel’
+           sources_[i]->RemoveObserver(observer_);
+           ~~~~~~~~~~~~~^~~~~~~~~~~~~~
+
+This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace
+initialization needlessly invokes destructor"), i.e. having something like
+
+    ScopedObserver<T, U> observer_{this};
+
+in a header declaration requires T and U to be fully declared because
+ScopedObserver's destructor references them. In a few cases, T was only
+forward-declared.
+
+Bug: 819294
+Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595
+Reviewed-on: https://chromium-review.googlesource.com/c/1472576
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Commit-Queue: Alan Cutter <alancutter@chromium.org>
+Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
+Reviewed-by: Alan Cutter <alancutter@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#632385}
+---
+ chrome/browser/ui/views/extensions/extension_popup.cc           | 1 -
+ chrome/browser/ui/views/extensions/extension_popup.h            | 1 +
+ chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc  | 1 -
+ chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h   | 2 +-
+ .../web_applications/extensions/bookmark_app_tab_helper.cc      | 1 -
+ .../web_applications/extensions/bookmark_app_tab_helper.h       | 2 +-
+ 6 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc
+index 3f0985d383dd..57d16aba9e9f 100644
+--- a/chrome/browser/ui/views/extensions/extension_popup.cc
++++ b/chrome/browser/ui/views/extensions/extension_popup.cc
+@@ -8,7 +8,6 @@
+ #include "chrome/browser/devtools/devtools_window.h"
+ #include "chrome/browser/extensions/extension_view_host.h"
+ #include "chrome/browser/ui/browser.h"
+-#include "chrome/browser/ui/tabs/tab_strip_model.h"
+ #include "content/public/browser/devtools_agent_host.h"
+ #include "content/public/browser/notification_details.h"
+ #include "content/public/browser/notification_source.h"
+diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h
+index 3661b5bda950..9018efa0fea5 100644
+--- a/chrome/browser/ui/views/extensions/extension_popup.h
++++ b/chrome/browser/ui/views/extensions/extension_popup.h
+@@ -9,6 +9,7 @@
+ #include "base/compiler_specific.h"
+ #include "base/macros.h"
+ #include "base/scoped_observer.h"
++#include "chrome/browser/ui/tabs/tab_strip_model.h"
+ #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
+ #include "chrome/browser/ui/views/extensions/extension_view_views.h"
+ #include "content/public/browser/devtools_agent_host_observer.h"
+diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
+index 2a3ea8e4f91f..ac44a4f05dec 100644
+--- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
++++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
+@@ -8,6 +8,7 @@
+ #include "base/macros.h"
+ #include "base/memory/weak_ptr.h"
+ #include "base/scoped_observer.h"
++#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
+ #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h"
+ #include "chrome/browser/ui/views/frame/app_menu_button_observer.h"
+ #include "ui/views/controls/scroll_view.h"
+@@ -16,7 +17,6 @@ class AppMenu;
+ class AppMenuButton;
+ class Browser;
+ class BrowserActionsContainer;
+-class ToolbarActionsBar;
+ 
+ namespace views {
+ class MenuItemView;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-02-15 20:26 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-02-15 20:26 UTC (permalink / raw
  To: gentoo-commits

commit:     a18dfb2bc7b05084f42d203433a8fbc74998f86b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 15 20:25:18 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Feb 15 20:26:24 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a18dfb2b

www-client/chromium: beta channel bump (73.0.3683.27)

Package-Manager: Portage-2.3.59_p2, Repoman-2.3.12_p67
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                      |   1 +
 www-client/chromium/chromium-73.0.3683.27.ebuild  | 714 ++++++++++++++++++++++
 www-client/chromium/files/chromium-73-gcc-0.patch | 108 ++++
 www-client/chromium/files/chromium-73-gcc-1.patch |  99 +++
 www-client/chromium/files/chromium-73-gcc-2.patch |  51 ++
 www-client/chromium/files/chromium-73-gcc-3.patch |  69 +++
 www-client/chromium/files/chromium-73-gcc-4.patch |  59 ++
 www-client/chromium/files/chromium-73-gcc-5.patch |  65 ++
 8 files changed, 1166 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c121766ff19..4686a5d13a5 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,3 @@
 DIST chromium-72.0.3626.96.tar.xz 686361344 BLAKE2B 92a001d99d418b0305235af9109719d9179f8bee53ad79e1ac089a1bc32b493ddcd3e26419e37b68e912f7b09deb51efefd325b82abb1fa281fe207e3a1f9a89 SHA512 949dde41053dba7408ab96d6fc56668efa46248a7a5a4690642f3de696c25fc9d5a746d82b106f4083bf4a1a5676eea06060c616375f74379a051a6bde4faea0
+DIST chromium-73.0.3683.27.tar.xz 710016024 BLAKE2B 1346c418fdf749b22beb598c37b4c125f8a5f07169155e05c9633d86872d7009416671d2155b4ef42713e1b22ae52c78ec295a7da7e0bd5ffcdb5f3ef79851fa SHA512 91fc8a6876b3508718dfa68ca6be9a8eb660d3447363d34da7ddf80cd9fe04ee97124f9c9dec484139155bcc7661f7cec4fe334b876b64eb06c5a8742c08b035
 DIST chromium-webrtc-includes-r1.patch.xz 57820 BLAKE2B 8e113680254b4834abda72c335a8f0af7211c5982c91e52372945f9a57c5558bd6772300ffefb475b450c40ffe66cd627aba34d33af101fe402815c2a16fe6c8 SHA512 cd4562ec32a044925afc65d9cba62310acc515db7cab0ee3aa0f3afe11672b3e7046ca937d8739c4feca436af7d9cf0f7860716a397c8aa5d5ae647b5eaf1ac0

diff --git a/www-client/chromium/chromium-73.0.3683.27.ebuild b/www-client/chromium/chromium-73.0.3683.27.ebuild
new file mode 100644
index 00000000000..551c1a943fd
--- /dev/null
+++ b/www-client/chromium/chromium-73.0.3683.27.ebuild
@@ -0,0 +1,714 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+	>=app-accessibility/at-spi2-atk-2.26:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/atk-2.26
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-59:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.11.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-2.0.0:0=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12-r0
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-util/gn
+	dev-vcs/git
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-7.6.0[inspector]
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	closure-compile? ( virtual/jre )
+	virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+	BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r7.patch"
+	"${FILESDIR}/chromium-widevine-r4.patch"
+	"${FILESDIR}/chromium-73-gcc-0.patch"
+	"${FILESDIR}/chromium-73-gcc-1.patch"
+	"${FILESDIR}/chromium-73-gcc-2.patch"
+	"${FILESDIR}/chromium-73-gcc-3.patch"
+	"${FILESDIR}/chromium-73-gcc-4.patch"
+	"${FILESDIR}/chromium-73-gcc-5.patch"
+)
+
+pre_build_checks() {
+	#if [[ ${MERGE_TYPE} != binary ]]; then
+	#	local -x CPP="$(tc-getCXX) -E"
+	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+	#		# bugs: #601654
+	#		die "At least clang 3.9.1 is required"
+	#	fi
+	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+	#		# bugs: #535730, #525374, #518668, #600288, #627356
+	#		die "At least gcc 5.0 is required"
+	#	fi
+	#fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/uri_template
+		third_party/abseil-cpp
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/common/third_party/xxhash
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/closure_compiler
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/nasm
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openmax_dl
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/include/third_party/vulkan
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/SPIRV-Tools
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/webrtc/common_audio/third_party/fft4g
+		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+		third_party/webrtc/modules/third_party/fft
+		third_party/webrtc/modules/third_party/g711
+		third_party/webrtc/modules/third_party/g722
+		third_party/webrtc/rtc_base/third_party/base64
+		third_party/webrtc/rtc_base/third_party/sigslot
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/siphash
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+		v8/third_party/v8
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+
+		# This is normally defined by compiler_cpu_abi in
+		# build/config/compiler/BUILD.gn, but we patch that part out.
+		append-flags -msse2 -mfpmath=sse -mmmx
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# https://bugs.gentoo.org/588596
+	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	einfo "Configuring Chromium..."
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Work around broken deps
+	eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+	if type gtk-update-icon-cache &>/dev/null; then
+		ebegin "Updating GTK icon cache"
+		gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+		eend $?
+	fi
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	if type gtk-update-icon-cache &>/dev/null; then
+		ebegin "Updating GTK icon cache"
+		gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+		eend $?
+	fi
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-73-gcc-0.patch b/www-client/chromium/files/chromium-73-gcc-0.patch
new file mode 100644
index 00000000000..5a50700fd93
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-0.patch
@@ -0,0 +1,108 @@
+From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Thu, 7 Feb 2019 22:55:37 +0000
+Subject: [PATCH] allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's
+ positions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes the GCC build. GCC seems to be stricter with the position of the
+linkage specification, so just swap the terms to prevent an error that looks
+like:
+
+In file included from ../../base/allocator/allocator_shim.cc:333:
+../../base/allocator/allocator_shim_override_cpp_symbols.h:39:30: error: expected unqualified-id before string constant
+ #define ALIGN_LINKAGE extern "C"
+                              ^~~
+../../base/allocator/allocator_shim_override_cpp_symbols.h:99:20: note: in expansion of macro ‘ALIGN_LINKAGE’
+ SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
+                    ^~~~~~~~~~~~~
+
+Bug: 819294
+Change-Id: I0aa16ea88cead42e83796a1c86afad8b447ddc50
+Reviewed-on: https://chromium-review.googlesource.com/c/1458256
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Primiano Tucci <primiano@chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#630084}
+---
+ .../allocator_shim_override_cpp_symbols.h     | 20 +++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/base/allocator/allocator_shim_override_cpp_symbols.h b/base/allocator/allocator_shim_override_cpp_symbols.h
+index 1228f5e33d28..01d25b7f6437 100644
+--- a/base/allocator/allocator_shim_override_cpp_symbols.h
++++ b/base/allocator/allocator_shim_override_cpp_symbols.h
+@@ -96,57 +96,57 @@ SHIM_ALWAYS_EXPORT void operator delete[](void* p, size_t) __THROW {
+   ShimCppDelete(p);
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW(std::size_t size,
+                                                  ALIGN_VAL_T alignment) {
+   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_NOTHROW(
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_NOTHROW(
+     std::size_t size,
+     ALIGN_VAL_T alignment,
+     const std::nothrow_t&) __THROW {
+   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
+   ShimCppDelete(p);
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_SIZED(void* p,
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_SIZED(void* p,
+                                                       std::size_t size,
+                                                       ALIGN_VAL_T) __THROW {
+   ShimCppDelete(p);
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
+ ALIGN_DEL_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
+   ShimCppDelete(p);
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR(std::size_t size,
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR(std::size_t size,
+                                                      ALIGN_VAL_T alignment) {
+   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR_NOTHROW(
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR_NOTHROW(
+     std::size_t size,
+     ALIGN_VAL_T alignment,
+     const std::nothrow_t&) __THROW {
+   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR(void* p,
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR(void* p,
+                                                     ALIGN_VAL_T) __THROW {
+   ShimCppDelete(p);
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR_SIZED(void* p,
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR_SIZED(void* p,
+                                                           std::size_t size,
+                                                           ALIGN_VAL_T) __THROW {
+   ShimCppDelete(p);
+ }
+ 
+-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
+ ALIGN_DEL_ARR_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
+   ShimCppDelete(p);
+ }
+-- 
+2.20.1
+

diff --git a/www-client/chromium/files/chromium-73-gcc-1.patch b/www-client/chromium/files/chromium-73-gcc-1.patch
new file mode 100644
index 00000000000..c3f8e42d061
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-1.patch
@@ -0,0 +1,99 @@
+From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Fri, 8 Feb 2019 16:58:38 +0000
+Subject: [PATCH] media::learning: Make LabelledExample's move assignment
+ operator noexcept
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The GCC build is currently broken with an error like this:
+
+    ../../media/learning/common/labelled_example.cc:20:1: error: function ‘media::learning::LabelledExample::LabelledExample(media::learning::LabelledExample&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
+     LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default;
+     ^~~~~~~~~~~~~~~
+
+With GCC, having that noexcept marker requires all members to be marked with
+noexcept themselves, and TargetValue was missing some assignment operators
+and noexcept markers.
+
+clang is fine because we pass -fno-exceptions and it disables the same error
+there, while GCC continues to raise it (bug 843143 and its corresponding CL
+have a longer discussion on this issue).
+
+Bug: 819294
+Change-Id: Ide30932fc466ccb52d6883a82777e703dae48798
+Reviewed-on: https://chromium-review.googlesource.com/c/1458210
+Commit-Queue: Frank Liberato <liberato@chromium.org>
+Reviewed-by: Frank Liberato <liberato@chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#630355}
+---
+ media/learning/common/labelled_example.cc | 3 ++-
+ media/learning/common/labelled_example.h  | 2 +-
+ media/learning/common/value.cc            | 6 ++++++
+ media/learning/common/value.h             | 4 ++++
+ 4 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc
+index 76d08509298e..43e834f9f3cf 100644
+--- a/media/learning/common/labelled_example.cc
++++ b/media/learning/common/labelled_example.cc
+@@ -59,7 +59,8 @@ bool LabelledExample::operator<(const LabelledExample& rhs) const {
+ LabelledExample& LabelledExample::operator=(const LabelledExample& rhs) =
+     default;
+ 
+-LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) = default;
++LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) noexcept =
++    default;
+ 
+ TrainingData::TrainingData() = default;
+ 
+diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h
+index 4f43c54e7a76..365abc3c0ebf 100644
+--- a/media/learning/common/labelled_example.h
++++ b/media/learning/common/labelled_example.h
+@@ -40,7 +40,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample {
+   bool operator<(const LabelledExample& rhs) const;
+ 
+   LabelledExample& operator=(const LabelledExample& rhs);
+-  LabelledExample& operator=(LabelledExample&& rhs);
++  LabelledExample& operator=(LabelledExample&& rhs) noexcept;
+ 
+   // Observed feature values.
+   // Note that to interpret these values, you probably need to have the
+diff --git a/media/learning/common/value.cc b/media/learning/common/value.cc
+index 9c9395c25d4e..12ea399d24c3 100644
+--- a/media/learning/common/value.cc
++++ b/media/learning/common/value.cc
+@@ -23,6 +23,12 @@ Value::Value(const std::string& x) : value_(base::PersistentHash(x)) {}
+ 
+ Value::Value(const Value& other) : value_(other.value_) {}
+ 
++Value::Value(Value&& rhs) noexcept = default;
++
++Value& Value::operator=(const Value& rhs) = default;
++
++Value& Value::operator=(Value&& rhs) noexcept = default;
++
+ bool Value::operator==(const Value& rhs) const {
+   return value_ == rhs.value_;
+ }
+diff --git a/media/learning/common/value.h b/media/learning/common/value.h
+index 0e64da961f34..62f4953f691c 100644
+--- a/media/learning/common/value.h
++++ b/media/learning/common/value.h
+@@ -38,6 +38,10 @@ class COMPONENT_EXPORT(LEARNING_COMMON) Value {
+   explicit Value(const std::string& x);
+ 
+   Value(const Value& other);
++  Value(Value&&) noexcept;
++
++  Value& operator=(const Value&);
++  Value& operator=(Value&&) noexcept;
+ 
+   bool operator==(const Value& rhs) const;
+   bool operator!=(const Value& rhs) const;
+-- 
+2.20.1
+

diff --git a/www-client/chromium/files/chromium-73-gcc-2.patch b/www-client/chromium/files/chromium-73-gcc-2.patch
new file mode 100644
index 00000000000..9d1f05a4d62
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-2.patch
@@ -0,0 +1,51 @@
+From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Fri, 8 Feb 2019 02:57:28 +0000
+Subject: [PATCH] color_utils: Use std::sqrt() instead of std::sqrtf()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes the build with libstdc++:
+
+    ../../ui/gfx/color_utils.cc: In function ‘SkColor color_utils::SetDarkestColorForTesting(SkColor)’:
+    ../../ui/gfx/color_utils.cc:434:12: error: ‘sqrtf’ is not a member of ‘std’
+           std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
+                ^~~~~
+    ../../ui/gfx/color_utils.cc:434:12: note: suggested alternative: ‘sqrt’
+           std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
+                ^~~~~
+                sqrt
+
+sqrtf() is not formally part of C++14 as far as I can see even though libc++
+has it in <cmath>. Additionally, we're only dealing with floats in all parts
+of the expression above, so using the float sqrt() overload should be
+harmless anyway.
+
+Bug: 819294
+Change-Id: If6c7bf31819df97a761e6963def6d6506154c34d
+Reviewed-on: https://chromium-review.googlesource.com/c/1458193
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Reviewed-by: Peter Kasting <pkasting@chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#630140}
+---
+ ui/gfx/color_utils.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc
+index c868cd54bac3..92ba1407d594 100644
+--- a/ui/gfx/color_utils.cc
++++ b/ui/gfx/color_utils.cc
+@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColor color) {
+   // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint).  The formula below
+   // can be verified by plugging it into how GetContrastRatio() operates.
+   g_luminance_midpoint =
+-      std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
++      std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
+ 
+   return previous_darkest_color;
+ }
+-- 
+2.20.1
+

diff --git a/www-client/chromium/files/chromium-73-gcc-3.patch b/www-client/chromium/files/chromium-73-gcc-3.patch
new file mode 100644
index 00000000000..9cc6cf2fab6
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-3.patch
@@ -0,0 +1,69 @@
+From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Fri, 8 Feb 2019 08:44:00 +0000
+Subject: [PATCH] quic_flags_impl: Fix GCC build after #618558
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
+base::NoDestructor<T<U>> and passing an initializer list of Us does not
+work if this is not done explicitly, as GCC incorrectly fails to determine
+which constructor overload to use:
+
+    ../../net/third_party/quic/platform/impl/quic_flags_impl.cc: In member function ‘bool quic::TypedQuicFlagHelper<T>::SetFlag(const string&) const [with T = bool; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
+    ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:156:41: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous
+           {"", "1", "t", "true", "y", "yes"});
+                                         ^
+    In file included from ../../net/third_party/quic/platform/impl/quic_flags_impl.h:16,
+                     from ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:5:
+    ../../base/no_destructor.h:62:3: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = std::set<std::__cxx11::basic_string<char> >]’ <deleted>
+       NoDestructor(const NoDestructor&) = delete;
+       ^~~~~~~~~~~~
+    ../../base/no_destructor.h:60:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(T&&) [with T = std::set<std::__cxx11::basic_string<char> >]’
+       explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
+                ^~~~~~~~~~~~
+    ../../base/no_destructor.h:59:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const T&) [with T = std::set<std::__cxx11::basic_string<char> >]’
+       explicit NoDestructor(const T& x) { new (storage_) T(x); }
+                ^~~~~~~~~~~~
+
+Explicitly use an std::initializer_list to make the build work everywhere.
+
+Bug: 819294
+Change-Id: I775be20e3766a88a656b58c94c40869cb1bee2a8
+Reviewed-on: https://chromium-review.googlesource.com/c/1458214
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Reviewed-by: Ryan Hamilton <rch@chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#630249}
+---
+ net/third_party/quic/platform/impl/quic_flags_impl.cc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/net/third_party/quic/platform/impl/quic_flags_impl.cc b/net/third_party/quic/platform/impl/quic_flags_impl.cc
+index 5e6962d1e770..3fa45fc6892d 100644
+--- a/net/third_party/quic/platform/impl/quic_flags_impl.cc
++++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc
+@@ -5,6 +5,7 @@
+ #include "net/third_party/quic/platform/impl/quic_flags_impl.h"
+ 
+ #include <algorithm>
++#include <initializer_list>
+ #include <iostream>
+ #include <set>
+ 
+@@ -153,9 +154,9 @@ std::string QuicFlagRegistry::GetHelp() const {
+ template <>
+ bool TypedQuicFlagHelper<bool>::SetFlag(const std::string& s) const {
+   static const base::NoDestructor<std::set<std::string>> kTrueValues(
+-      {"", "1", "t", "true", "y", "yes"});
++      std::initializer_list<std::string>({"", "1", "t", "true", "y", "yes"}));
+   static const base::NoDestructor<std::set<std::string>> kFalseValues(
+-      {"0", "f", "false", "n", "no"});
++      std::initializer_list<std::string>({"0", "f", "false", "n", "no"}));
+   if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) {
+     *flag_ = true;
+     return true;
+-- 
+2.20.1
+

diff --git a/www-client/chromium/files/chromium-73-gcc-4.patch b/www-client/chromium/files/chromium-73-gcc-4.patch
new file mode 100644
index 00000000000..df7d6301f7e
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-4.patch
@@ -0,0 +1,59 @@
+From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Wed, 13 Feb 2019 01:02:27 +0000
+Subject: [PATCH] BaseRenderingContext2D: Use base::CheckMul and simplify code
+ in putImageData()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Follow-up to commit e0b3253a56 ("Fix image conversion truncation issues").
+The current code does not build with GCC due to
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287:
+
+    ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc: In member function ‘void blink::BaseRenderingContext2D::putImageData(blink::ImageData*, int, int, int, int, int, int, blink::ExceptionState&)’:
+    ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc:1777:44: error: default type conversion can't deduce template argument for ‘template<class Dst, typename std::enable_if<base::internal::IsNumericRangeContained<Dst, long unsigned int, void>::value, void>::type* <anonymous> > constexpr base::internal::StrictNumeric<T>::operator Dst() const [with Dst = Dst; typename std::enable_if<base::internal::IsNumericRangeContained<Dst, T>::value>::type* <anonymous> = <enumerator>; T = long unsigned int]’
+             new uint8_t[data_length.ValueOrDie()]);
+                                                ^
+
+Work around it by using the more idiomatic base::CheckMul() with
+AssignIfValid, so that we can have |data_length| be a size_t again and not
+leave it to the compiler to figure out the type we want when creating the
+|converted_pixels| array.
+
+Bug: 819294
+Change-Id: Id124cc4f3d749b45def4708e21e4badafd708578
+Reviewed-on: https://chromium-review.googlesource.com/c/1467201
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Commit-Queue: Kentaro Hara <haraken@chromium.org>
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#631472}
+---
+ .../canvas/canvas2d/base_rendering_context_2d.cc       | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+index d9fa696c9a9d..34a8a202bfd3 100644
+--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
++++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+@@ -1769,12 +1769,12 @@ void BaseRenderingContext2D::putImageData(ImageData* data,
+       CanvasColorParams(ColorParams().ColorSpace(), PixelFormat(), kNonOpaque);
+   if (data_color_params.NeedsColorConversion(context_color_params) ||
+       PixelFormat() == kF16CanvasPixelFormat) {
+-    base::CheckedNumeric<size_t> data_length = data->Size().Area();
+-    data_length *= context_color_params.BytesPerPixel();
+-    if (!data_length.IsValid())
++    size_t data_length;
++    if (!base::CheckMul(data->Size().Area(),
++                        context_color_params.BytesPerPixel())
++             .AssignIfValid(&data_length))
+       return;
+-    std::unique_ptr<uint8_t[]> converted_pixels(
+-        new uint8_t[data_length.ValueOrDie()]);
++    std::unique_ptr<uint8_t[]> converted_pixels(new uint8_t[data_length]);
+     if (data->ImageDataInCanvasColorSettings(
+             ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(),
+             kRGBAColorType)) {
+-- 
+2.20.1
+

diff --git a/www-client/chromium/files/chromium-73-gcc-5.patch b/www-client/chromium/files/chromium-73-gcc-5.patch
new file mode 100644
index 00000000000..033861e2bfb
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-5.patch
@@ -0,0 +1,65 @@
+From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Wed, 13 Feb 2019 23:28:46 +0000
+Subject: [PATCH] CastActivityManager: Do not make DoLaunchSessionParams' move
+ constructor noexcept
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes the GCC build:
+
+    ../../chrome/browser/media/router/providers/cast/cast_activity_manager.cc:806:1: error: function ‘media_router::CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(media_router::CastActivityManager::DoLaunchSessionParams&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
+     CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
+     ^~~~~~~~~~~~~~~~~~~
+
+With GCC, having that noexcept marker requires all members to be marked with
+noexcept themselves, and MediaRoute, CastMediaSource and url::Origin need
+the right annotations. Just making DoLaunchSessionParams not noexcept is the
+least intrusive solution for now.
+
+clang is fine because we pass -fno-exceptions and it disables the same error
+there, while GCC continues to raise it (bug 843143 and its corresponding CL
+have a longer discussion on this issue).
+
+Bug: 819294
+Change-Id: Ia3a5fb60b5e74e68bd35cfa50e2fcc728b64e5eb
+Reviewed-on: https://chromium-review.googlesource.com/c/1469942
+Commit-Queue: mark a. foltz <mfoltz@chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Reviewed-by: mark a. foltz <mfoltz@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#631962}
+---
+ .../media/router/providers/cast/cast_activity_manager.cc        | 2 +-
+ .../browser/media/router/providers/cast/cast_activity_manager.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
+index b7ee9695f69a..8569e0cd30a3 100644
+--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
+@@ -804,7 +804,7 @@ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
+       callback(std::move(callback)) {}
+ 
+ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
+-    DoLaunchSessionParams&& other) noexcept = default;
++    DoLaunchSessionParams&& other) = default;
+ 
+ CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default;
+ 
+diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
+index 325bffc725ee..08fe0ccca603 100644
+--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h
++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
+@@ -295,7 +295,7 @@ class CastActivityManager : public cast_channel::CastMessageHandler::Observer,
+         const url::Origin& origin,
+         int tab_id,
+         mojom::MediaRouteProvider::CreateRouteCallback callback);
+-    DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept;
++    DoLaunchSessionParams(DoLaunchSessionParams&& other);
+     ~DoLaunchSessionParams();
+     DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete;
+ 
+-- 
+2.20.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2019-02-10 15:44 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2019-02-10 15:44 UTC (permalink / raw
  To: gentoo-commits

commit:     2d2ef44b7d460ce4d402b70a337ddca6eac2b978
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 10 15:44:18 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Feb 10 15:44:18 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d2ef44b

www-client/chromium: remove old

Package-Manager: Portage-2.3.59_p2, Repoman-2.3.12_p67
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   3 -
 www-client/chromium/chromium-71.0.3578.80.ebuild   | 713 --------------------
 www-client/chromium/chromium-72.0.3626.96.ebuild   | 716 ---------------------
 www-client/chromium/files/chromium-71-gcc-0.patch  |  57 --
 .../chromium/files/chromium-compiler-r6.patch      | 170 -----
 .../chromium/files/chromium-harfbuzz-r0.patch      |  80 ---
 .../chromium/files/chromium-widevine-r3.patch      |  23 -
 7 files changed, 1762 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 86cd01aa831..edf4dba24e7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,2 @@
-DIST chromium-71.0.3578.80.tar.xz 633878288 BLAKE2B be6dcb4c1123830f8f0413e52e46c6e3356356cbfadcaa77c3960f22a6f1f2f5a7a2e7da415b7c19b75d6cd4b881d45a8aeaa7c311547ac58fc34c87fdf23891 SHA512 79b0f5ebe71a34d9f5215df1b4e47071f2337bb480fbec591011653acdfe524419bd10efdeab334ac34c07bc4eb2c485d60a9c3b2f053a721271130ff98af516
 DIST chromium-72.0.3626.28.tar.xz 686169316 BLAKE2B 6ee2bfd35e8d48a7122f0a8b85777733bdaf2c6c56b00eb6cf3ee14afede25a45919b6ce6267fb54ae9040d0b676d084d6db5026918b07bc3e26f825d6298c35 SHA512 474452f6d41f900118d88f3aaf435cd332567f7a55c2af449e775668a78ee285ab7c011ca41237fa2b13f4b3076ec0cfb5448cfe9018092614e60c0ad7c12252
-DIST chromium-72.0.3626.96.tar.xz 686361344 BLAKE2B 92a001d99d418b0305235af9109719d9179f8bee53ad79e1ac089a1bc32b493ddcd3e26419e37b68e912f7b09deb51efefd325b82abb1fa281fe207e3a1f9a89 SHA512 949dde41053dba7408ab96d6fc56668efa46248a7a5a4690642f3de696c25fc9d5a746d82b106f4083bf4a1a5676eea06060c616375f74379a051a6bde4faea0
-DIST chromium-webrtc-includes-r1.patch.xz 57820 BLAKE2B 8e113680254b4834abda72c335a8f0af7211c5982c91e52372945f9a57c5558bd6772300ffefb475b450c40ffe66cd627aba34d33af101fe402815c2a16fe6c8 SHA512 cd4562ec32a044925afc65d9cba62310acc515db7cab0ee3aa0f3afe11672b3e7046ca937d8739c4feca436af7d9cf0f7860716a397c8aa5d5ae647b5eaf1ac0
 DIST chromium-webrtc-includes.patch.xz 57908 BLAKE2B e977da6fb10bd3fdd12fef75ad669c4e7cb15f8e518a18c52dec7a4e27f0d5444dffc880b4aed30ccef8b620d82946be08c0b5b63ceaec0554e9f80b867b9750 SHA512 440c5ede645d13ec74c08c755a46298f5fcf10c9cbe6d88621ae89a2b27ae41be9954f4e3c1798525cc97aac01e5021b878a06c5625628c4c071cec84f3dfe8a

diff --git a/www-client/chromium/chromium-71.0.3578.80.ebuild b/www-client/chromium/chromium-71.0.3578.80.ebuild
deleted file mode 100644
index fc1699e20ce..00000000000
--- a/www-client/chromium/chromium-71.0.3578.80.ebuild
+++ /dev/null
@@ -1,713 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-59:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.0.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	!<www-plugins/chrome-binary-plugins-57
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-# sys-apps/sandbox - https://crbug.com/586444
-DEPEND="${COMMON_DEPEND}
-"
-BDEPEND="
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-util/gn
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	dev-vcs/git
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-5"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r6.patch"
-	"${FILESDIR}/chromium-widevine-r3.patch"
-	"${FILESDIR}/chromium-webrtc-r0.patch"
-	"${FILESDIR}/chromium-memcpy-r0.patch"
-	"${FILESDIR}/chromium-math.h-r0.patch"
-	"${FILESDIR}/chromium-stdint.patch"
-	"${FILESDIR}/chromium-harfbuzz-r0.patch"
-	"${FILESDIR}/chromium-71-gcc-0.patch"
-)
-
-pre_build_checks() {
-	#if [[ ${MERGE_TYPE} != binary ]]; then
-	#	local -x CPP="$(tc-getCXX) -E"
-	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
-	#		# bugs: #601654
-	#		die "At least clang 3.9.1 is required"
-	#	fi
-	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
-	#		# bugs: #535730, #525374, #518668, #600288, #627356
-	#		die "At least gcc 5.0 is required"
-	#	fi
-	#fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="5G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/dmg_fp
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/http2
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/spdy
-		net/third_party/uri_template
-		third_party/WebKit
-		third_party/abseil-cpp
-		third_party/analytics
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/devscripts
-		third_party/dom_distiller_js
-		third_party/fips181
-		third_party/flatbuffers
-		third_party/flot
-		third_party/freetype
-		third_party/glslang-angle
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/openmax_dl
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/ply
-		third_party/polymer
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/third_party/gif
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/spirv-tools-angle
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/subzero
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/vulkan-validation-layers
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
-	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-
-	local myarch="$(tc-arch)"
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	# https://bugs.gentoo.org/588596
-	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Work around broken deps
-	eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 22 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser \
-		"Chromium" \
-		chromium-browser \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	if type gtk-update-icon-cache &>/dev/null; then
-		ebegin "Updating GTK icon cache"
-		gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
-		eend $?
-	fi
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	if type gtk-update-icon-cache &>/dev/null; then
-		ebegin "Updating GTK icon cache"
-		gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
-		eend $?
-	fi
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/chromium-72.0.3626.96.ebuild b/www-client/chromium/chromium-72.0.3626.96.ebuild
deleted file mode 100644
index bf82cadbae5..00000000000
--- a/www-client/chromium/chromium-72.0.3626.96.ebuild
+++ /dev/null
@@ -1,716 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh-CN zh-TW"
-
-inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://dev.gentoo.org/~floppym/dist/chromium-webrtc-includes-r1.patch.xz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-
-COMMON_DEPEND="
-	>=app-accessibility/at-spi2-atk-2.26:2
-	app-arch/bzip2:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/atk-2.26
-	dev-libs/expat:=
-	dev-libs/glib:2
-	system-icu? ( >=dev-libs/icu-59:= )
-	>=dev-libs/libxml2-2.9.4-r3:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.11.01:=
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	>=media-libs/harfbuzz-2.0.0:0=[icu(-)]
-	media-libs/libjpeg-turbo:=
-	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	>=media-libs/openh264-1.6.0:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? (
-		>=media-video/ffmpeg-4:=
-		|| (
-			media-video/ffmpeg[-samba]
-			>=net-fs/samba-4.5.10-r1[-debug(-)]
-		)
-		!=net-fs/samba-4.5.12-r0
-		media-libs/opus:=
-	)
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3[X]
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	app-arch/snappy:=
-	media-libs/flac:=
-	>=media-libs/libwebp-0.4.0:=
-	sys-libs/zlib:=[minizip]
-	kerberos? ( virtual/krb5 )
-"
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND="${COMMON_DEPEND}
-	!<www-plugins/chrome-binary-plugins-57
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
-"
-# dev-vcs/git - https://bugs.gentoo.org/593476
-# sys-apps/sandbox - https://crbug.com/586444
-DEPEND="${COMMON_DEPEND}
-"
-BDEPEND="
-	>=app-arch/gzip-1.7
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-util/gn
-	dev-vcs/git
-	>=dev-util/gperf-3.0.3
-	>=dev-util/ninja-1.7.2
-	>=net-libs/nodejs-7.6.0[inspector]
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/jre
-	virtual/pkgconfig
-"
-
-: ${CHROMIUM_FORCE_CLANG=no}
-
-if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-5"
-fi
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-"
-
-PATCHES=(
-	"${FILESDIR}/chromium-compiler-r7.patch"
-	"${FILESDIR}/chromium-widevine-r4.patch"
-	"${FILESDIR}/chromium-webrtc-r0.patch"
-	"${FILESDIR}/chromium-memcpy-r0.patch"
-	"${FILESDIR}/chromium-math.h-r0.patch"
-	"${FILESDIR}/chromium-stdint.patch"
-)
-
-pre_build_checks() {
-	#if [[ ${MERGE_TYPE} != binary ]]; then
-	#	local -x CPP="$(tc-getCXX) -E"
-	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
-	#		# bugs: #601654
-	#		die "At least clang 3.9.1 is required"
-	#	fi
-	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
-	#		# bugs: #535730, #525374, #518668, #600288, #627356
-	#		die "At least gcc 5.0 is required"
-	#	fi
-	#fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="5G"
-	if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
-		CHECKREQS_DISK_BUILD="25G"
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-pkg_pretend() {
-	pre_build_checks
-}
-
-pkg_setup() {
-	pre_build_checks
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	default
-
-	pushd third_party/webrtc >/dev/null || die
-	eapply "${WORKDIR}"/chromium-webrtc-includes-r1.patch
-	popd >/dev/null || die
-
-	mkdir -p third_party/node/linux/node-linux-x64/bin || die
-	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
-	local keeplibs=(
-		base/third_party/dmg_fp
-		base/third_party/dynamic_annotations
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/valgrind
-		base/third_party/xdg_mime
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		chrome/third_party/mozilla_security_manager
-		courgette/third_party
-		net/third_party/http2
-		net/third_party/mozilla_security_manager
-		net/third_party/nss
-		net/third_party/quic
-		net/third_party/spdy
-		net/third_party/uri_template
-		third_party/abseil-cpp
-		third_party/angle
-		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/smhasher
-		third_party/angle/src/common/third_party/xxhash
-		third_party/angle/src/third_party/compiler
-		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/trace_event
-		third_party/angle/third_party/glslang
-		third_party/angle/third_party/spirv-headers
-		third_party/angle/third_party/spirv-tools
-		third_party/angle/third_party/vulkan-headers
-		third_party/angle/third_party/vulkan-loader
-		third_party/angle/third_party/vulkan-tools
-		third_party/angle/third_party/vulkan-validation-layers
-		third_party/apple_apsl
-		third_party/blink
-		third_party/boringssl
-		third_party/boringssl/src/third_party/fiat
-		third_party/breakpad
-		third_party/breakpad/breakpad/src/third_party/curl
-		third_party/brotli
-		third_party/cacheinvalidation
-		third_party/catapult
-		third_party/catapult/common/py_vulcanize/third_party/rcssmin
-		third_party/catapult/common/py_vulcanize/third_party/rjsmin
-		third_party/catapult/third_party/beautifulsoup4
-		third_party/catapult/third_party/html5lib-python
-		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/six
-		third_party/catapult/tracing/third_party/d3
-		third_party/catapult/tracing/third_party/gl-matrix
-		third_party/catapult/tracing/third_party/jszip
-		third_party/catapult/tracing/third_party/mannwhitneyu
-		third_party/catapult/tracing/third_party/oboe
-		third_party/catapult/tracing/third_party/pako
-		third_party/ced
-		third_party/cld_3
-		third_party/closure_compiler
-		third_party/crashpad
-		third_party/crashpad/crashpad/third_party/zlib
-		third_party/crc32c
-		third_party/cros_system_api
-		third_party/devscripts
-		third_party/dom_distiller_js
-		third_party/fips181
-		third_party/flatbuffers
-		third_party/flot
-		third_party/freetype
-		third_party/google_input_tools
-		third_party/google_input_tools/third_party/closure_library
-		third_party/google_input_tools/third_party/closure_library/third_party/closure
-		third_party/googletest
-		third_party/hunspell
-		third_party/iccjpeg
-		third_party/inspector_protocol
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/jstemplate
-		third_party/khronos
-		third_party/leveldatabase
-		third_party/libXNVCtrl
-		third_party/libaddressinput
-		third_party/libaom
-		third_party/libaom/source/libaom/third_party/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libjingle
-		third_party/libphonenumber
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libudev
-		third_party/libwebm
-		third_party/libxml/chromium
-		third_party/libyuv
-		third_party/llvm
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/markupsafe
-		third_party/mesa
-		third_party/metrics_proto
-		third_party/modp_b64
-		third_party/nasm
-		third_party/node
-		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
-		third_party/openmax_dl
-		third_party/ots
-		third_party/pdfium
-		third_party/pdfium/third_party/agg23
-		third_party/pdfium/third_party/base
-		third_party/pdfium/third_party/bigint
-		third_party/pdfium/third_party/freetype
-		third_party/pdfium/third_party/lcms
-		third_party/pdfium/third_party/libopenjpeg20
-		third_party/pdfium/third_party/libpng16
-		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/skia_shared
-		third_party/perfetto
-		third_party/ply
-		third_party/polymer
-		third_party/protobuf
-		third_party/protobuf/third_party/six
-		third_party/pyjson5
-		third_party/qcms
-		third_party/rnnoise
-		third_party/s2cellid
-		third_party/sfntly
-		third_party/simplejson
-		third_party/skia
-		third_party/skia/third_party/gif
-		third_party/skia/third_party/skcms
-		third_party/skia/third_party/vulkan
-		third_party/smhasher
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
-		third_party/sqlite
-		third_party/swiftshader
-		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/subzero
-		third_party/unrar
-		third_party/usrsctp
-		third_party/vulkan
-		third_party/web-animations-js
-		third_party/webdriver
-		third_party/webrtc
-		third_party/webrtc/common_audio/third_party/fft4g
-		third_party/webrtc/common_audio/third_party/spl_sqrt_floor
-		third_party/webrtc/modules/third_party/fft
-		third_party/webrtc/modules/third_party/g711
-		third_party/webrtc/modules/third_party/g722
-		third_party/webrtc/rtc_base/third_party/base64
-		third_party/webrtc/rtc_base/third_party/sigslot
-		third_party/widevine
-		third_party/woff2
-		third_party/zlib/google
-		url/third_party/mozilla
-		v8/src/third_party/valgrind
-		v8/src/third_party/utf8-decoder
-		v8/third_party/inspector_protocol
-		v8/third_party/v8
-
-		# gyp -> gn leftovers
-		base/third_party/libevent
-		third_party/adobe
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-		third_party/yasm/run_yasm.py
-	)
-	if ! use system-ffmpeg; then
-		keeplibs+=( third_party/ffmpeg third_party/opus )
-	fi
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-	if ! use system-libvpx; then
-		keeplibs+=( third_party/libvpx )
-		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
-	fi
-	if use tcmalloc; then
-		keeplibs+=( third_party/tcmalloc )
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-}
-
-src_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	local myconf_gn=""
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
-		# Force clang since gcc is pretty broken at the moment.
-		CC=${CHOST}-clang
-		CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
-	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-	myconf_gn+=" is_debug=false"
-
-	# Component build isn't generally intended for use by end users. It's mostly useful
-	# for development and debugging.
-	myconf_gn+=" is_component_build=$(usex component-build true false)"
-
-	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
-	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
-
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf_gn+=" enable_nacl=false"
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		libxml
-		libxslt
-		openh264
-		re2
-		snappy
-		yasm
-		zlib
-	)
-	if use system-ffmpeg; then
-		gn_system_libraries+=( ffmpeg opus )
-	fi
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-	if use system-libvpx; then
-		gn_system_libraries+=( libvpx )
-	fi
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
-
-	# See dependency logic in third_party/BUILD.gn
-	myconf_gn+=" use_system_harfbuzz=true"
-
-	# Optional dependencies.
-	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
-	myconf_gn+=" enable_widevine=$(usex widevine true false)"
-	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
-	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
-	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
-
-	# TODO: link_pulseaudio=true for GN.
-
-	myconf_gn+=" fieldtrial_testing_like_official_build=true"
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
-
-	# Disable forced lld, bug 641556
-	myconf_gn+=" use_lld=false"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
-	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
-	local google_default_client_id="329227923882.apps.googleusercontent.com"
-	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
-	myconf_gn+=" google_api_key=\"${google_api_key}\""
-	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
-	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
-
-	local myarch="$(tc-arch)"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	if [[ $myarch = amd64 ]] ; then
-		myconf_gn+=" target_cpu=\"x64\""
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		myconf_gn+=" target_cpu=\"x86\""
-		ffmpeg_target_arch=ia32
-
-		# This is normally defined by compiler_cpu_abi in
-		# build/config/compiler/BUILD.gn, but we patch that part out.
-		append-flags -msse2 -mfpmath=sse -mmmx
-	elif [[ $myarch = arm64 ]] ; then
-		myconf_gn+=" target_cpu=\"arm64\""
-		ffmpeg_target_arch=arm64
-	elif [[ $myarch = arm ]] ; then
-		myconf_gn+=" target_cpu=\"arm\""
-		ffmpeg_target_arch=$(usex neon arm-neon arm)
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf_gn+=" treat_warnings_as_errors=false"
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf_gn+=" fatal_linker_warnings=false"
-
-	# https://bugs.gentoo.org/588596
-	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	#if ! use system-ffmpeg; then
-	if false; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gn.py || die
-		popd > /dev/null || die
-	fi
-
-	einfo "Configuring Chromium..."
-	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
-	echo "$@"
-	"$@" || die
-}
-
-src_compile() {
-	# Final link uses lots of file descriptors.
-	ulimit -n 2048
-
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
-
-	# Work around broken deps
-	eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
-
-	# Build mksnapshot and pax-mark it.
-	local x
-	for x in mksnapshot v8_context_snapshot_generator; do
-		if tc-is-cross-compiler; then
-			eninja -C out/Release "host/${x}"
-			pax-mark m "out/Release/host/${x}"
-		else
-			eninja -C out/Release "${x}"
-			pax-mark m "out/Release/${x}"
-		fi
-	done
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver
-	use suid && eninja -C out/Release chrome_sandbox
-
-	pax-mark m out/Release/chrome
-}
-
-src_install() {
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome
-
-	if use suid; then
-		newexe out/Release/chrome_sandbox chrome-sandbox
-		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-	fi
-
-	doexe out/Release/chromedriver
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
-
-	# Allow users to override command-line options, bug #357629.
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default"
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin
-	doins out/Release/*.pak
-	doins out/Release/*.so
-
-	if ! use system-icu; then
-		doins out/Release/icudtl.dat
-	fi
-
-	doins -r out/Release/locales
-	doins -r out/Release/resources
-
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 22 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser \
-		"Chromium" \
-		chromium-browser \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
-
-	readme.gentoo_create_doc
-}
-
-pkg_postrm() {
-	if type gtk-update-icon-cache &>/dev/null; then
-		ebegin "Updating GTK icon cache"
-		gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
-		eend $?
-	fi
-	xdg_desktop_database_update
-}
-
-pkg_postinst() {
-	if type gtk-update-icon-cache &>/dev/null; then
-		ebegin "Updating GTK icon cache"
-		gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
-		eend $?
-	fi
-	xdg_desktop_database_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/files/chromium-71-gcc-0.patch b/www-client/chromium/files/chromium-71-gcc-0.patch
deleted file mode 100644
index 711b827566f..00000000000
--- a/www-client/chromium/files/chromium-71-gcc-0.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 65be571f6ac2f7942b4df9e50b24da517f829eec Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Date: Mon, 15 Oct 2018 20:26:10 +0000
-Subject: [PATCH] google_util: Explicitly use std::initializer_list with
- base::NoDestructor
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Follow-up to ac53c5c53 ("Remove CR_DEFINE_STATIC_LOCAL from /components").
-Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
-base::NoDestructor<T<U>> and passing an initializer list of Us does not
-work if this is not done explicitly, as GCC incorrectly fails to determine
-which constructor overload to use:
-
-    ../../components/google/core/common/google_util.cc: In function ‘bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission)’:
-    ../../components/google/core/common/google_util.cc:120:24: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous
-           {GOOGLE_TLD_LIST});
-
-See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905
-
-Bug: 819294
-Change-Id: Ie1490b6646d7998d636c485769caabf56c1cf44c
-Reviewed-on: https://chromium-review.googlesource.com/c/1275854
-Reviewed-by: Peter Kasting <pkasting@chromium.org>
-Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
-Cr-Commit-Position: refs/heads/master@{#599733}
----
- components/google/core/common/google_util.cc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
-index a44c84393820..7733848a0443 100644
---- a/components/google/core/common/google_util.cc
-+++ b/components/google/core/common/google_util.cc
-@@ -117,7 +117,7 @@ bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
-   StripTrailingDot(&tld);
- 
-   static base::NoDestructor<std::set<std::string>> google_tlds(
--      {GOOGLE_TLD_LIST});
-+      std::initializer_list<std::string>({GOOGLE_TLD_LIST}));
-   return base::ContainsKey(*google_tlds, tld.as_string());
- }
- 
-@@ -132,7 +132,8 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) {
-   StripTrailingDot(&host);
- 
-   static base::NoDestructor<std::set<std::string>> google_subdomains(
--      {"ipv4.google.com", "ipv6.google.com"});
-+      std::initializer_list<std::string>(
-+          {"ipv4.google.com", "ipv6.google.com"}));
- 
-   return base::ContainsKey(*google_subdomains, host.as_string());
- }
--- 
-2.19.1
-

diff --git a/www-client/chromium/files/chromium-compiler-r6.patch b/www-client/chromium/files/chromium-compiler-r6.patch
deleted file mode 100644
index db8d04649fd..00000000000
--- a/www-client/chromium/files/chromium-compiler-r6.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From cec10e55fdb150b33342ad462907fb6202de364e Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Wed, 25 Apr 2018 13:22:49 -0400
-Subject: [PATCH] Disable various compiler configs
-
----
- build/config/compiler/BUILD.gn | 63 ++++++++++------------------------
- 1 file changed, 18 insertions(+), 45 deletions(-)
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 0f7a6b48f7b2..c91b702147d4 100644
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -236,8 +236,6 @@ config("compiler") {
- 
-   configs += [
-     # See the definitions below.
--    ":clang_revision",
--    ":compiler_cpu_abi",
-     ":compiler_codegen",
-   ]
- 
-@@ -502,17 +500,6 @@ config("compiler") {
-     }
-   }
- 
--  if (is_clang && !is_nacl && !use_xcode_clang) {
--    cflags += [
--      # TODO(hans): Remove this once Clang generates better optimized debug info
--      # by default. https://crbug.com/765793
--      "-Xclang",
--      "-mllvm",
--      "-Xclang",
--      "-instcombine-lower-dbg-declare=0",
--    ]
--  }
--
-   # Print absolute paths in diagnostics. There is no precedent for doing this
-   # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
-   # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
-@@ -1498,13 +1485,6 @@ config("default_warnings") {
-         cflags += [
-           # TODO(thakis): https://crbug.com/753973
-           "-Wno-enum-compare-switch",
--
--          # Ignore warnings about MSVC optimization pragmas.
--          # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
--          "-Wno-ignored-pragma-optimize",
--
--          # TODO(hans): https://crbug.com/890307
--          "-Wno-defaulted-function-deleted",
-         ]
-       }
-     }
-@@ -1546,22 +1526,6 @@ config("chromium_code") {
-       "__STDC_FORMAT_MACROS",
-     ]
- 
--    if (!is_debug && !using_sanitizer &&
--        (!is_linux || !is_clang || is_official_build) &&
--        current_cpu != "s390x" && current_cpu != "s390" &&
--        current_cpu != "ppc64" && current_cpu != "ppc64" &&
--        current_cpu != "mips" && current_cpu != "mips64") {
--      # _FORTIFY_SOURCE isn't really supported by Clang now, see
--      # http://llvm.org/bugs/show_bug.cgi?id=16821.
--      # It seems to work fine with Ubuntu 12 headers though, so use it in
--      # official builds.
--      #
--      # Non-chromium code is not guaranteed to compile cleanly with
--      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
--      # disabled, so only do that for Release build.
--      defines += [ "_FORTIFY_SOURCE=2" ]
--    }
--
-     if (is_mac) {
-       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
-       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -1931,7 +1895,8 @@ config("default_stack_frames") {
- }
- 
- # Default "optimization on" config.
--config("optimize") {
-+config("optimize") { }
-+config("xoptimize") {
-   if (is_win) {
-     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
-     if (is_official_build && full_wpo_on_official && !is_clang) {
-@@ -1965,7 +1930,8 @@ config("optimize") {
- }
- 
- # Same config as 'optimize' but without the WPO flag.
--config("optimize_no_wpo") {
-+config("optimize_no_wpo") { }
-+config("xoptimize_no_wpo") {
-   if (is_win) {
-     # Favor size over speed, /O1 must be before the common flags. The GYP
-     # build also specifies /Os and /GF but these are implied by /O1.
-@@ -1988,7 +1954,8 @@ config("optimize_no_wpo") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2012,7 +1979,8 @@ config("no_optimize") {
- # Turns up the optimization level. On Windows, this implies whole program
- # optimization and link-time code generation which is very expensive and should
- # be used sparingly.
--config("optimize_max") {
-+config("optimize_max") { }
-+config("xoptimize_max") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2059,7 +2027,8 @@ config("optimize_max") {
- #
- # TODO(crbug.com/621335) - rework how all of these configs are related
- # so that we don't need this disclaimer.
--config("optimize_speed") {
-+config("optimize_speed") { }
-+config("xoptimize_speed") {
-   if (is_nacl && is_nacl_irt) {
-     # The NaCl IRT is a special case and always wants its own config.
-     # Various components do:
-@@ -2097,7 +2066,8 @@ config("optimize_speed") {
-   }
- }
- 
--config("optimize_fuzzing") {
-+config("optimize_fuzzing") { }
-+config("xoptimize_fuzzing") {
-   cflags = [ "-O1" ] + common_optimize_on_cflags
-   ldflags = common_optimize_on_ldflags
-   visibility = [ ":default_optimization" ]
-@@ -2183,7 +2153,8 @@ config("afdo") {
- #   configs += [ "//build/config/compiler:symbols" ]
- 
- # Full symbols.
--config("symbols") {
-+config("symbols") { }
-+config("xsymbols") {
-   if (is_win) {
-     if (use_goma || is_clang) {
-       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
-@@ -2281,7 +2252,8 @@ config("symbols") {
- # Minimal symbols.
- # This config guarantees to hold symbol for stack trace which are shown to user
- # when crash happens in unittests running on buildbot.
--config("minimal_symbols") {
-+config("minimal_symbols") { }
-+config("xminimal_symbols") {
-   if (is_win) {
-     # Linker symbols for backtraces only.
-     cflags = []
-@@ -2321,7 +2293,8 @@ config("minimal_symbols") {
- }
- 
- # No symbols.
--config("no_symbols") {
-+config("no_symbols") { }
-+config("xno_symbols") {
-   if (!is_win) {
-     cflags = [ "-g0" ]
-     asmflags = cflags
--- 
-2.19.1
-

diff --git a/www-client/chromium/files/chromium-harfbuzz-r0.patch b/www-client/chromium/files/chromium-harfbuzz-r0.patch
deleted file mode 100644
index 2d5602de280..00000000000
--- a/www-client/chromium/files/chromium-harfbuzz-r0.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppymaster@gmail.com>
-Date: Sun, 21 Oct 2018 10:06:53 -0400
-Subject: [PATCH] blink: add 'const' modifier for harfbuzz hb_codepoint_t
- pointers
-
-This resolves a build failure against harfbuzz 2.0.
-
-Based on a patch by Alexandre Fierreira.
-
-Bug: https://bugs.gentoo.org/669034
----
- .../renderer/platform/fonts/shaping/harfbuzz_face.cc     | 2 +-
- .../renderer/platform/fonts/skia/skia_text_metrics.cc    | 9 +++++++--
- .../renderer/platform/fonts/skia/skia_text_metrics.h     | 2 +-
- 3 files changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-index 8e7d91ca371f..e279a5876cb3 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-@@ -139,7 +139,7 @@ static hb_position_t HarfBuzzGetGlyphHorizontalAdvance(hb_font_t* hb_font,
- static void HarfBuzzGetGlyphHorizontalAdvances(hb_font_t* font,
-                                                void* font_data,
-                                                unsigned count,
--                                               hb_codepoint_t* first_glyph,
-+                                               const hb_codepoint_t* first_glyph,
-                                                unsigned int glyph_stride,
-                                                hb_position_t* first_advance,
-                                                unsigned int advance_stride,
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-index 77ec6209fab9..9f9070921448 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-@@ -18,6 +18,11 @@ T* advance_by_byte_size(T* p, unsigned byte_size) {
-   return reinterpret_cast<T*>(reinterpret_cast<uint8_t*>(p) + byte_size);
- }
- 
-+template <class T>
-+T* advance_by_byte_size_const(T* p, unsigned byte_size) {
-+  return reinterpret_cast<T*>(reinterpret_cast<const uint8_t*>(p) + byte_size);
-+}
-+
- }  // namespace
- 
- SkiaTextMetrics::SkiaTextMetrics(const SkPaint* paint) : paint_(paint) {
-@@ -39,7 +44,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(hb_codepoint_t codepoint,
- }
- 
- void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
--                                               hb_codepoint_t* glyphs,
-+                                               const hb_codepoint_t* glyphs,
-                                                unsigned glyph_stride,
-                                                hb_position_t* advances,
-                                                unsigned advance_stride) {
-@@ -48,7 +53,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
-   // array that copy them to a regular array.
-   Vector<Glyph, 256> glyph_array(count);
-   for (unsigned i = 0; i < count;
--       i++, glyphs = advance_by_byte_size(glyphs, glyph_stride)) {
-+       i++, glyphs = advance_by_byte_size_const(glyphs, glyph_stride)) {
-     glyph_array[i] = *glyphs;
-   }
-   Vector<SkScalar, 256> sk_width_array(count);
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-index 787d8af0375a..3bc4407c641b 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-@@ -19,7 +19,7 @@ class SkiaTextMetrics final {
- 
-   void GetGlyphWidthForHarfBuzz(hb_codepoint_t, hb_position_t* width);
-   void GetGlyphWidthForHarfBuzz(unsigned count,
--                                hb_codepoint_t* first_glyph,
-+                                const hb_codepoint_t* first_glyph,
-                                 unsigned glyph_stride,
-                                 hb_position_t* first_advance,
-                                 unsigned advance_stride);
--- 
-2.19.1
-

diff --git a/www-client/chromium/files/chromium-widevine-r3.patch b/www-client/chromium/files/chromium-widevine-r3.patch
deleted file mode 100644
index a126084563c..00000000000
--- a/www-client/chromium/files/chromium-widevine-r3.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 5818fdbef3d399fe1bfbb56f81e59184e1a8e467 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppymaster@gmail.com>
-Date: Sun, 14 Oct 2018 20:04:03 -0400
-Subject: [PATCH] Define WIDEVINE_CDM_VERSION_STRING
-
----
- third_party/widevine/cdm/widevine_cdm_version.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h
-index dd6efed02646..eaa017197e61 100644
---- a/third_party/widevine/cdm/widevine_cdm_version.h
-+++ b/third_party/widevine/cdm/widevine_cdm_version.h
-@@ -11,5 +11,6 @@
- // If the Widevine CDM is available define the following:
- //  - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
- //    as a string, e.g., "1.0.123.456").
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- 
- #endif  // WIDEVINE_CDM_VERSION_H_
--- 
-2.19.1
-


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-11-05  0:22 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-11-05  0:22 UTC (permalink / raw
  To: gentoo-commits

commit:     d430acd6636f85536169d842ebe991d2bb7825c3
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  5 00:19:33 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Nov  5 00:20:21 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d430acd6

www-client/chromium: beta channel bump (71.0.3578.30)

Closes: https://bugs.gentoo.org/669542
Package-Manager: Portage-2.3.51_p2, Repoman-2.3.11_p27
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ....3573.0.ebuild => chromium-71.0.3578.30.ebuild} | 17 ++++---
 www-client/chromium/files/chromium-71-gcc-0.patch  | 57 ++++++++++++++++++++++
 3 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a65355a7998..0192285a2ef 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-70.0.3538.67.tar.xz 623057648 BLAKE2B fd6667d8ca82721ca4cb70b39f66c88f1e10f82a5f9b8beadabd56882f9e4e32e249b25f4484a323f8efc9d940f2afb1c73b76cea0803ce18c138adfc8bdc3c0 SHA512 923dd574dce15627678d1601d34e37285ac438bb61ee252ecd15bdec3e5f76066897848addeedd3c61f2c5e550a284d14e0af3d02ae5666c9f6eb047c9d4441f
-DIST chromium-71.0.3573.0.tar.xz 626729588 BLAKE2B 5fc5b030f8bfef2721234026ba5411896795132592db2c4732f98b08d74b31ed2fe9b59efc78754b5f72d5908f1d5ccb1054abdead51c53235c1118fa91b2cbf SHA512 27a8dd60dc319b33d954440b1e8aac382a4fe6afaca88e63175b72c6040c5bb5653d01ecabd8e8ebd99d954781299fa3bf44518c0fc396d9d56a97bdb1291503
 DIST chromium-71.0.3578.10.tar.xz 633514144 BLAKE2B 6a90e46378d2ffe97a1ab6a104f0e6bc5332750d18116ee78ad7200192260aad5ee0fcee917e6c6d065aa227eb2b5e84f392e96a6b8ec18d8bbe805a5f371594 SHA512 b17db9c3fac5f96d59bdc11faaa4664d977293eabb9d74120c2af961af8c866aaa5f017ce3a2629bcf189bbeb2e7e2d9c7d6ca9716ff361e3cfe648f0b802f1e
+DIST chromium-71.0.3578.30.tar.xz 633685260 BLAKE2B 486c34d34da7078d4ffedc46519cb214460335f37f5c3a8f72cde9cc30e9730912122016af5bc2877b6f6a1c10e96b6de473b6ea8f88f7d64252322885c0f0fc SHA512 7f8114b678cb2ab9f449ab0dd91ef668d953cd6dd97c47cd187644820af137d9914b9b59f876802f58f8b2ddd78833529a8efc02b7d2ea3abeb21366258120cd

diff --git a/www-client/chromium/chromium-71.0.3573.0.ebuild b/www-client/chromium/chromium-71.0.3578.30.ebuild
similarity index 98%
rename from www-client/chromium/chromium-71.0.3573.0.ebuild
rename to www-client/chromium/chromium-71.0.3578.30.ebuild
index 4b58a52df69..3f45008f2cd 100644
--- a/www-client/chromium/chromium-71.0.3573.0.ebuild
+++ b/www-client/chromium/chromium-71.0.3578.30.ebuild
@@ -21,10 +21,10 @@ IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
 COMMON_DEPEND="
-	app-accessibility/at-spi2-atk:2
+	>=app-accessibility/at-spi2-atk-2.26:2
 	app-arch/bzip2:=
 	cups? ( >=net-print/cups-1.3.11:= )
-	dev-libs/atk
+	>=dev-libs/atk-2.26
 	dev-libs/expat:=
 	dev-libs/glib:2
 	system-icu? ( >=dev-libs/icu-59:= )
@@ -32,12 +32,12 @@ COMMON_DEPEND="
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.26:=
-	>=dev-libs/re2-0.2016.05.01:=
+	>=dev-libs/re2-0.2016.11.01:=
 	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	>=media-libs/harfbuzz-1.8.8:=[icu(-)]
+	>=media-libs/harfbuzz-2.0.0:0=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
@@ -107,7 +107,7 @@ BDEPEND="
 	dev-vcs/git
 "
 
-: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_CLANG=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
 	BDEPEND+=" >=sys-devel/clang-5"
@@ -143,7 +143,8 @@ PATCHES=(
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-math.h-r0.patch"
 	"${FILESDIR}/chromium-stdint.patch"
-	"${FILESDIR}/chromium-ceil-r0.patch"
+	"${FILESDIR}/chromium-harfbuzz-r0.patch"
+	"${FILESDIR}/chromium-71-gcc-0.patch"
 )
 
 pre_build_checks() {
@@ -268,6 +269,7 @@ src_prepare() {
 		third_party/iccjpeg
 		third_party/inspector_protocol
 		third_party/jinja2
+		third_party/jsoncpp
 		third_party/jstemplate
 		third_party/khronos
 		third_party/leveldatabase
@@ -577,6 +579,9 @@ src_configure() {
 }
 
 src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048
+
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
 

diff --git a/www-client/chromium/files/chromium-71-gcc-0.patch b/www-client/chromium/files/chromium-71-gcc-0.patch
new file mode 100644
index 00000000000..711b827566f
--- /dev/null
+++ b/www-client/chromium/files/chromium-71-gcc-0.patch
@@ -0,0 +1,57 @@
+From 65be571f6ac2f7942b4df9e50b24da517f829eec Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Mon, 15 Oct 2018 20:26:10 +0000
+Subject: [PATCH] google_util: Explicitly use std::initializer_list with
+ base::NoDestructor
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Follow-up to ac53c5c53 ("Remove CR_DEFINE_STATIC_LOCAL from /components").
+Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
+base::NoDestructor<T<U>> and passing an initializer list of Us does not
+work if this is not done explicitly, as GCC incorrectly fails to determine
+which constructor overload to use:
+
+    ../../components/google/core/common/google_util.cc: In function ‘bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission)’:
+    ../../components/google/core/common/google_util.cc:120:24: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous
+           {GOOGLE_TLD_LIST});
+
+See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905
+
+Bug: 819294
+Change-Id: Ie1490b6646d7998d636c485769caabf56c1cf44c
+Reviewed-on: https://chromium-review.googlesource.com/c/1275854
+Reviewed-by: Peter Kasting <pkasting@chromium.org>
+Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#599733}
+---
+ components/google/core/common/google_util.cc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
+index a44c84393820..7733848a0443 100644
+--- a/components/google/core/common/google_util.cc
++++ b/components/google/core/common/google_util.cc
+@@ -117,7 +117,7 @@ bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
+   StripTrailingDot(&tld);
+ 
+   static base::NoDestructor<std::set<std::string>> google_tlds(
+-      {GOOGLE_TLD_LIST});
++      std::initializer_list<std::string>({GOOGLE_TLD_LIST}));
+   return base::ContainsKey(*google_tlds, tld.as_string());
+ }
+ 
+@@ -132,7 +132,8 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) {
+   StripTrailingDot(&host);
+ 
+   static base::NoDestructor<std::set<std::string>> google_subdomains(
+-      {"ipv4.google.com", "ipv6.google.com"});
++      std::initializer_list<std::string>(
++          {"ipv4.google.com", "ipv6.google.com"}));
+ 
+   return base::ContainsKey(*google_subdomains, host.as_string());
+ }
+-- 
+2.19.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-11-05  0:22 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-11-05  0:22 UTC (permalink / raw
  To: gentoo-commits

commit:     a8cee29e8bfb76d27b97f5059fe51f70aefc6c85
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 29 02:20:33 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Nov  5 00:20:19 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8cee29e

www-client/chromium: allow gcc for M70

Thanks to Garry Filakhtov.

Bug: https://bugs.gentoo.org/669542
Package-Manager: Portage-2.3.51_p2, Repoman-2.3.11_p27
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 .../chromium/chromium-70.0.3538.67-r1.ebuild       |  8 +-
 www-client/chromium/files/chromium-70-gcc-0.patch  | 70 ++++++++++++++++
 www-client/chromium/files/chromium-70-gcc-1.patch  | 98 ++++++++++++++++++++++
 www-client/chromium/files/chromium-70-gcc-2.patch  | 37 ++++++++
 4 files changed, 212 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/chromium-70.0.3538.67-r1.ebuild b/www-client/chromium/chromium-70.0.3538.67-r1.ebuild
index 6d86b451b47..45613e9b729 100644
--- a/www-client/chromium/chromium-70.0.3538.67-r1.ebuild
+++ b/www-client/chromium/chromium-70.0.3538.67-r1.ebuild
@@ -105,7 +105,7 @@ DEPEND="${COMMON_DEPEND}
 	dev-vcs/git
 "
 
-: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_CLANG=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
 	DEPEND+=" >=sys-devel/clang-5"
@@ -143,6 +143,9 @@ PATCHES=(
 	"${FILESDIR}/chromium-stdint.patch"
 	"${FILESDIR}/chromium-pdfium-stdlib-r0.patch"
 	"${FILESDIR}/chromium-harfbuzz-r0.patch"
+	"${FILESDIR}/chromium-70-gcc-0.patch"
+	"${FILESDIR}/chromium-70-gcc-1.patch"
+	"${FILESDIR}/chromium-70-gcc-2.patch"
 )
 
 pre_build_checks() {
@@ -577,6 +580,9 @@ src_configure() {
 }
 
 src_compile() {
+	# Final link uses lots of file descriptors.
+	ulimit -n 2048 || die
+
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
 

diff --git a/www-client/chromium/files/chromium-70-gcc-0.patch b/www-client/chromium/files/chromium-70-gcc-0.patch
new file mode 100644
index 00000000000..7005d373254
--- /dev/null
+++ b/www-client/chromium/files/chromium-70-gcc-0.patch
@@ -0,0 +1,70 @@
+From e98f8ef8b2f236ecbb01df8c39e6ee1c8fbe8d7d Mon Sep 17 00:00:00 2001
+From: Maksim Sisov <msisov@igalia.com>
+Date: Thu, 13 Sep 2018 15:17:29 +0000
+Subject: [PATCH] ScrollPaintPropertyNode: Rename SnapContainerData() to
+ GetSnapContainerData()
+
+GCC is stricter than clang when it comes to class members' names and how
+they can change the meaning of a previously existing symbol with the same
+name.
+
+Here is a short error message:
+
+error: changes meaning of 'SnapContainerData' from 'using SnapContainerData =
+class cc::SnapContainerData' [-fpermissive]  using SnapContainerData =
+cc::SnapContainerData;
+
+Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
+Change-Id: I0de5460f17b13484253e1ff0538b111c9a3b0d13
+Reviewed-on: https://chromium-review.googlesource.com/1213180
+Commit-Queue: Maksim Sisov <msisov@igalia.com>
+Reviewed-by: Philip Rogers <pdr@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#591015}
+---
+ .../renderer/core/paint/paint_property_tree_update_tests.cc     | 2 +-
+ .../platform/graphics/compositing/property_tree_manager.cc      | 2 +-
+ .../platform/graphics/paint/scroll_paint_property_node.h        | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
+index 0d999d45076f..1fe1815a5659 100644
+--- a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
++++ b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
+@@ -1310,7 +1310,7 @@ TEST_P(PaintPropertyTreeUpdateTest, EnsureSnapContainerData) {
+   GetDocument().View()->Resize(300, 300);
+   GetDocument().View()->UpdateAllLifecyclePhases();
+ 
+-  auto doc_snap_container_data = DocScroll()->SnapContainerData();
++  auto doc_snap_container_data = DocScroll()->GetSnapContainerData();
+   ASSERT_TRUE(doc_snap_container_data);
+   EXPECT_EQ(doc_snap_container_data->scroll_snap_type().axis, SnapAxis::kBoth);
+   EXPECT_EQ(doc_snap_container_data->scroll_snap_type().strictness,
+diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
+index 745b8c8b387e..5f87eeea9435 100644
+--- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
++++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
+@@ -333,7 +333,7 @@ void PropertyTreeManager::CreateCompositorScrollNode(
+           scroll_node->OverscrollBehaviorX()),
+       static_cast<cc::OverscrollBehavior::OverscrollBehaviorType>(
+           scroll_node->OverscrollBehaviorY()));
+-  compositor_node.snap_container_data = scroll_node->SnapContainerData();
++  compositor_node.snap_container_data = scroll_node->GetSnapContainerData();
+ 
+   auto compositor_element_id = scroll_node->GetCompositorElementId();
+   if (compositor_element_id) {
+diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
+index e1479269ccc3..5bd7f65f10ba 100644
+--- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
++++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
+@@ -99,7 +99,7 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
+     return state_.overscroll_behavior.y;
+   }
+ 
+-  base::Optional<SnapContainerData> SnapContainerData() const {
++  base::Optional<SnapContainerData> GetSnapContainerData() const {
+     return state_.snap_container_data;
+   }
+ 
+-- 
+2.19.1
+

diff --git a/www-client/chromium/files/chromium-70-gcc-1.patch b/www-client/chromium/files/chromium-70-gcc-1.patch
new file mode 100644
index 00000000000..bca2a1f8e80
--- /dev/null
+++ b/www-client/chromium/files/chromium-70-gcc-1.patch
@@ -0,0 +1,98 @@
+From 87902b3202f81d689dd314c17006ffc907fe12a1 Mon Sep 17 00:00:00 2001
+From: Wang Qing <wangqing-hf@loongson.cn>
+Date: Mon, 3 Sep 2018 02:41:08 +0000
+Subject: [PATCH] Fix build error for blink.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This CLs fixed the error of constexpr function call to non-constexpr function.
+
+Bug: 878202
+Change-Id: I6ad217a687e62a9a384980d852743a56479de3a9
+Reviewed-on: https://chromium-review.googlesource.com/1192467
+Commit-Queue: 汪 清 <wangqing-hf@loongson.cn>
+Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#588316}
+---
+ .../core/animation/animation_time_delta.cc    | 22 ++++++++++++++
+ .../core/animation/animation_time_delta.h     | 30 +++++++------------
+ 2 files changed, 32 insertions(+), 20 deletions(-)
+
+diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.cc b/third_party/blink/renderer/core/animation/animation_time_delta.cc
+index 1b25469c7f2f..2e30a18890da 100644
+--- a/third_party/blink/renderer/core/animation/animation_time_delta.cc
++++ b/third_party/blink/renderer/core/animation/animation_time_delta.cc
+@@ -7,6 +7,28 @@
+ namespace blink {
+ 
+ #if !defined(BLINK_ANIMATION_USE_TIME_DELTA)
++// Comparison operators on AnimationTimeDelta.
++bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs) {
++  return lhs.InSecondsF() == rhs.InSecondsF();
++}
++bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs) {
++  return lhs.InSecondsF() != rhs.InSecondsF();
++}
++bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
++                                     const AnimationTimeDelta& rhs) {
++  return lhs.InSecondsF() > rhs.InSecondsF();
++}
++bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs) {
++  return lhs.InSecondsF() >= rhs.InSecondsF();
++}
++bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs) {
++  return lhs.InSecondsF() <= rhs.InSecondsF();
++}
++
+ std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time) {
+   return os << time.InSecondsF() << " s";
+ }
+diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.h b/third_party/blink/renderer/core/animation/animation_time_delta.h
+index 1903c1150d3e..95d218466d90 100644
+--- a/third_party/blink/renderer/core/animation/animation_time_delta.h
++++ b/third_party/blink/renderer/core/animation/animation_time_delta.h
+@@ -90,26 +90,16 @@ AnimationTimeDelta operator*(T a, AnimationTimeDelta td) {
+ }
+ 
+ // Comparison operators on AnimationTimeDelta.
+-constexpr bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
+-                                      const AnimationTimeDelta& rhs) {
+-  return lhs.InSecondsF() == rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
+-                                      const AnimationTimeDelta& rhs) {
+-  return lhs.InSecondsF() != rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
+-                                     const AnimationTimeDelta& rhs) {
+-  return lhs.InSecondsF() > rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
+-                                      const AnimationTimeDelta& rhs) {
+-  return lhs.InSecondsF() >= rhs.InSecondsF();
+-}
+-constexpr bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
+-                                      const AnimationTimeDelta& rhs) {
+-  return lhs.InSecondsF() <= rhs.InSecondsF();
+-}
++bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
++                                     const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs);
++bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
++                                      const AnimationTimeDelta& rhs);
+ 
+ // Defined to allow DCHECK_EQ/etc to work with the class.
+ CORE_EXPORT std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time);
+-- 
+2.19.1
+

diff --git a/www-client/chromium/files/chromium-70-gcc-2.patch b/www-client/chromium/files/chromium-70-gcc-2.patch
new file mode 100644
index 00000000000..33041454c52
--- /dev/null
+++ b/www-client/chromium/files/chromium-70-gcc-2.patch
@@ -0,0 +1,37 @@
+From cbdb8bd6567c8143dc8c1e5e86a21a8ea064eea4 Mon Sep 17 00:00:00 2001
+From: Maksim Sisov <msisov@igalia.com>
+Date: Fri, 7 Sep 2018 18:57:42 +0000
+Subject: [PATCH] OmniboxTextView: fix gcc error for structure initialization
+
+It looks like there is bug in GCC 6, which cannot go through
+structure initialization normally.
+
+Thus, instead of a default initialization of one of the members,
+explicitly initialize it to a default value.
+
+Change-Id: Ia55cc6658e6b6b2f8a80c2582dd28f001c9e648c
+Reviewed-on: https://chromium-review.googlesource.com/1213181
+Reviewed-by: Scott Violet <sky@chromium.org>
+Commit-Queue: Maksim Sisov <msisov@igalia.com>
+Cr-Commit-Position: refs/heads/master@{#589614}
+---
+ chrome/browser/ui/views/omnibox/omnibox_text_view.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
+index f0a8083dc930..9021284f166d 100644
+--- a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
++++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
+@@ -175,7 +175,8 @@ void ApplyTextStyleForType(SuggestionAnswer::TextStyle text_style,
+       style = {part_color, .baseline = gfx::SUPERIOR};
+       break;
+     case SuggestionAnswer::TextStyle::BOLD:
+-      style = {part_color, .weight = gfx::Font::Weight::BOLD};
++      style = {part_color, .baseline = gfx::NORMAL_BASELINE,
++               .weight = gfx::Font::Weight::BOLD};
+       break;
+     case SuggestionAnswer::TextStyle::NORMAL:
+     case SuggestionAnswer::TextStyle::NORMAL_DIM:
+-- 
+2.19.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-10-21 15:17 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-10-21 15:17 UTC (permalink / raw
  To: gentoo-commits

commit:     71fefc9233564d56103ad143ff8e768d18bcf89b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 21 15:16:26 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Oct 21 15:17:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71fefc92

www-client/chromium: fix build with harfbuzz-2

Bug: https://bugs.gentoo.org/669034
Package-Manager: Portage-2.3.51_p1, Repoman-2.3.11_p26
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 ...8.67.ebuild => chromium-70.0.3538.67-r1.ebuild} |  5 +-
 www-client/chromium/chromium-70.0.3538.67.ebuild   |  3 +-
 .../chromium/files/chromium-harfbuzz-r0.patch      | 80 ++++++++++++++++++++++
 3 files changed, 85 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/chromium-70.0.3538.67.ebuild b/www-client/chromium/chromium-70.0.3538.67-r1.ebuild
similarity index 99%
copy from www-client/chromium/chromium-70.0.3538.67.ebuild
copy to www-client/chromium/chromium-70.0.3538.67-r1.ebuild
index 8e3b1d83b85..6d86b451b47 100644
--- a/www-client/chromium/chromium-70.0.3538.67.ebuild
+++ b/www-client/chromium/chromium-70.0.3538.67-r1.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 
 LICENSE="BSD"
 SLOT="0"
-KEYWORDS="amd64 ~x86"
+KEYWORDS="~amd64 ~x86"
 IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
@@ -37,7 +37,7 @@ COMMON_DEPEND="
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	>=media-libs/harfbuzz-1.8.8:=[icu(-)]
+	>=media-libs/harfbuzz-2.0.0:0=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
@@ -142,6 +142,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-math.h-r0.patch"
 	"${FILESDIR}/chromium-stdint.patch"
 	"${FILESDIR}/chromium-pdfium-stdlib-r0.patch"
+	"${FILESDIR}/chromium-harfbuzz-r0.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/chromium-70.0.3538.67.ebuild b/www-client/chromium/chromium-70.0.3538.67.ebuild
index 8e3b1d83b85..5bcc2602215 100644
--- a/www-client/chromium/chromium-70.0.3538.67.ebuild
+++ b/www-client/chromium/chromium-70.0.3538.67.ebuild
@@ -37,7 +37,8 @@ COMMON_DEPEND="
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	>=media-libs/harfbuzz-1.8.8:=[icu(-)]
+	>=media-libs/harfbuzz-1.8.8:0=[icu(-)]
+	<media-libs/harfbuzz-2.0.0:0
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )

diff --git a/www-client/chromium/files/chromium-harfbuzz-r0.patch b/www-client/chromium/files/chromium-harfbuzz-r0.patch
new file mode 100644
index 00000000000..2d5602de280
--- /dev/null
+++ b/www-client/chromium/files/chromium-harfbuzz-r0.patch
@@ -0,0 +1,80 @@
+From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppymaster@gmail.com>
+Date: Sun, 21 Oct 2018 10:06:53 -0400
+Subject: [PATCH] blink: add 'const' modifier for harfbuzz hb_codepoint_t
+ pointers
+
+This resolves a build failure against harfbuzz 2.0.
+
+Based on a patch by Alexandre Fierreira.
+
+Bug: https://bugs.gentoo.org/669034
+---
+ .../renderer/platform/fonts/shaping/harfbuzz_face.cc     | 2 +-
+ .../renderer/platform/fonts/skia/skia_text_metrics.cc    | 9 +++++++--
+ .../renderer/platform/fonts/skia/skia_text_metrics.h     | 2 +-
+ 3 files changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
+index 8e7d91ca371f..e279a5876cb3 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
++++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
+@@ -139,7 +139,7 @@ static hb_position_t HarfBuzzGetGlyphHorizontalAdvance(hb_font_t* hb_font,
+ static void HarfBuzzGetGlyphHorizontalAdvances(hb_font_t* font,
+                                                void* font_data,
+                                                unsigned count,
+-                                               hb_codepoint_t* first_glyph,
++                                               const hb_codepoint_t* first_glyph,
+                                                unsigned int glyph_stride,
+                                                hb_position_t* first_advance,
+                                                unsigned int advance_stride,
+diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
+index 77ec6209fab9..9f9070921448 100644
+--- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
++++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
+@@ -18,6 +18,11 @@ T* advance_by_byte_size(T* p, unsigned byte_size) {
+   return reinterpret_cast<T*>(reinterpret_cast<uint8_t*>(p) + byte_size);
+ }
+ 
++template <class T>
++T* advance_by_byte_size_const(T* p, unsigned byte_size) {
++  return reinterpret_cast<T*>(reinterpret_cast<const uint8_t*>(p) + byte_size);
++}
++
+ }  // namespace
+ 
+ SkiaTextMetrics::SkiaTextMetrics(const SkPaint* paint) : paint_(paint) {
+@@ -39,7 +44,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(hb_codepoint_t codepoint,
+ }
+ 
+ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
+-                                               hb_codepoint_t* glyphs,
++                                               const hb_codepoint_t* glyphs,
+                                                unsigned glyph_stride,
+                                                hb_position_t* advances,
+                                                unsigned advance_stride) {
+@@ -48,7 +53,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
+   // array that copy them to a regular array.
+   Vector<Glyph, 256> glyph_array(count);
+   for (unsigned i = 0; i < count;
+-       i++, glyphs = advance_by_byte_size(glyphs, glyph_stride)) {
++       i++, glyphs = advance_by_byte_size_const(glyphs, glyph_stride)) {
+     glyph_array[i] = *glyphs;
+   }
+   Vector<SkScalar, 256> sk_width_array(count);
+diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
+index 787d8af0375a..3bc4407c641b 100644
+--- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
++++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
+@@ -19,7 +19,7 @@ class SkiaTextMetrics final {
+ 
+   void GetGlyphWidthForHarfBuzz(hb_codepoint_t, hb_position_t* width);
+   void GetGlyphWidthForHarfBuzz(unsigned count,
+-                                hb_codepoint_t* first_glyph,
++                                const hb_codepoint_t* first_glyph,
+                                 unsigned glyph_stride,
+                                 hb_position_t* first_advance,
+                                 unsigned advance_stride);
+-- 
+2.19.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-09-22 17:38 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-09-22 17:38 UTC (permalink / raw
  To: gentoo-commits

commit:     24160a3712d01831591be5992cdf88b57029b64e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 22 17:37:04 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Sep 22 17:38:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24160a37

www-client/chromium: beta channel bump (70.0.3538.22)

Closes: https://bugs.gentoo.org/666138
Closes: https://bugs.gentoo.org/666402
Closes: https://bugs.gentoo.org/666426
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Package-Manager: Portage-2.3.49_p17, Repoman-2.3.11

 www-client/chromium/Manifest                       |  2 +-
 ....3538.9.ebuild => chromium-70.0.3538.22.ebuild} |  6 +++--
 .../chromium/files/chromium-pdfium-stdlib-r0.patch | 30 ++++++++++++++++++++++
 3 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 226d8a26bbd..11d5b028717 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,4 @@
 DIST chromium-69.0.3497.100.tar.xz 617374764 BLAKE2B 45805e7a743982c167974cbe223b126dad83cca2eca6c78b6fe707431b2df45cb30271c0ee5002839c84f661260063852a1e1a913d26a073a87fb20e7b4d964e SHA512 bc9dd4a63eb9a8c369bd360f7fd0fb9b72addfa553e9a9d8adbfafe7ec4af39ec1fb3dd6523af1f17cb141aaf017ca4b6abc357c4a595ff627e88c58e87e8f6f
 DIST chromium-69.0.3497.81.tar.xz 617333008 BLAKE2B c93f04c31a05a7ca29225157f434b27646529aac5e273f8c0e983dde8ebbcb8f32a94bbe6edf7d936f6e989869f49cbea4249a6e7ff7a497f382b0c8ca6d01b1 SHA512 99d3e3212496b3e42133719c6026aec71bd3cd90c7ff689cce509021e038a91986c14d094e6e71ba94600d0c27548b8b33b7084c75d4c2bb8d846b81a4c2562b
 DIST chromium-70.0.3538.16.tar.xz 622798348 BLAKE2B c9082858b9716f0550892ac3b611744b8a9bf991e61eb51e4e528caa69daa9e9751a12bfc3ef85bdef46b38f4a779cd6a536159279b6c58b4b2602a43ad534f8 SHA512 d2c62b6d5b39fec066e9a6c78484026453d4bfb228c4653c4824ee56a813e7af8172211a1ee7c494aa36b9419b3a2746dc47d879a2ea68300b0ca434f326347b
-DIST chromium-70.0.3538.9.tar.xz 622701284 BLAKE2B e7a8a793787639d9f00fc1b0d5c8f9cf3a282a1dd2787e6b953dea822f001ca05346d384dd54fc439f9b00bba083ccea48a41b49791e476138bf087e16cb38b4 SHA512 96e656be2096a151ad4de53d359e1a49073e1080a882aaf871b0a01f3ad08713e0045ce58d10fd08586b462d9f8b44ac38ec4883b35bccc7028a78ecbe4b449f
+DIST chromium-70.0.3538.22.tar.xz 622935696 BLAKE2B d2eb7f72aa9967d2620a705549c13d081aa5b011d47536ca3e1aa77989a9723a6187dab0d0c31c6f4e50469b05960411c8635c24cc9e58a5ed2651c5affb13d9 SHA512 5af260a217734965e4475211646a992b0c568e81610f552c13773082055ee7cc3356f9d60b85abc118e7d7866c903ddc6f4e64d1f0c4126cba19d886dc79b189

diff --git a/www-client/chromium/chromium-70.0.3538.9.ebuild b/www-client/chromium/chromium-70.0.3538.22.ebuild
similarity index 99%
rename from www-client/chromium/chromium-70.0.3538.9.ebuild
rename to www-client/chromium/chromium-70.0.3538.22.ebuild
index 64b814054ba..536322cbe16 100644
--- a/www-client/chromium/chromium-70.0.3538.9.ebuild
+++ b/www-client/chromium/chromium-70.0.3538.22.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="6"
@@ -37,7 +37,7 @@ COMMON_DEPEND="
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	>=media-libs/harfbuzz-1.6.0:=[icu(-)]
+	>=media-libs/harfbuzz-1.8.8:=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
@@ -136,6 +136,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-math.h-r0.patch"
 	"${FILESDIR}/chromium-stdint.patch"
+	"${FILESDIR}/chromium-pdfium-stdlib-r0.patch"
 )
 
 pre_build_checks() {
@@ -589,6 +590,7 @@ src_compile() {
 
 	# Work around broken deps
 	eninja -C out/Release gen/ui/accessibility/ax_enums.mojom.h
+	eninja -C out/Release gen/ui/accessibility/ax_enums.mojom-shared.h
 
 	# Even though ninja autodetects number of CPUs, we respect
 	# user's options, for debugging with -j 1 or any other reason.

diff --git a/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch b/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch
new file mode 100644
index 00000000000..1cfa4c55c29
--- /dev/null
+++ b/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch
@@ -0,0 +1,30 @@
+From e3ad3deb6a6e79284f3748fa7410311d87df91c5 Mon Sep 17 00:00:00 2001
+From: Henrique Nakashima <hnakashima@chromium.org>
+Date: Tue, 4 Sep 2018 16:49:51 +0000
+Subject: [PATCH] IWYU: stdint.h in pdfium_mem_buffer_file_write.h for uint8_t
+
+Bug: 879900
+Change-Id: I9c15d1c280a23c53d31f2d72c9d0d1db79eab886
+Reviewed-on: https://chromium-review.googlesource.com/1204410
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#588547}
+---
+ pdf/pdfium/pdfium_mem_buffer_file_write.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/pdf/pdfium/pdfium_mem_buffer_file_write.h b/pdf/pdfium/pdfium_mem_buffer_file_write.h
+index 03c54bb63800..82e82d23684d 100644
+--- a/pdf/pdfium/pdfium_mem_buffer_file_write.h
++++ b/pdf/pdfium/pdfium_mem_buffer_file_write.h
+@@ -6,6 +6,7 @@
+ #define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_H_
+ 
+ #include <stddef.h>
++#include <stdint.h>
+ 
+ #include <vector>
+ 
+-- 
+2.19.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-07-22  0:41 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-07-22  0:41 UTC (permalink / raw
  To: gentoo-commits

commit:     b5bc6e9886c984c5f5368c417f9d139ae77be11e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 22 00:41:38 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jul 22 00:41:55 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b5bc6e98

www-client/chromium: dev channel bump (69.0.3493.3)

Package-Manager: Portage-2.3.40_p15, Repoman-2.3.9_p247

 www-client/chromium/Manifest                       |   2 +-
 ...0.3452.0.ebuild => chromium-69.0.3493.3.ebuild} |  33 ++--
 .../chromium/files/chromium-compiler-r4.patch      | 168 +++++++++++++++++++++
 3 files changed, 178 insertions(+), 25 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 41ac555615b..16151f92e13 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,5 +2,5 @@ DIST chromium-67.0.3396.87.tar.xz 591491608 BLAKE2B 9069c4b2e000e180a9b21bbdbb67
 DIST chromium-67.0.3396.99.tar.xz 592170796 BLAKE2B c214f2feb911bd375849f1c69a67dad797111107be7d8c7b99f503e67a62212c0340c8c21b1922cf0a5bfdc32507dfe337a9cddeb29674067c08e6e21a8585a5 SHA512 b1cc7f5988d30efae0b3954232a402e2906bb27113f453a67d865a79afecf6a124c7833635d6083ea40f0cb7344e3cdb4a02f3b8ba4b1cd9798b5d2bccb23242
 DIST chromium-68.0.3440.25.tar.xz 624353904 BLAKE2B 8ed052e5ad831499367ef1e6d40d08bb585e49855f4c6b820d5532c96f240ad312e66484b75b5b8398e737e2400b7ff1f9edd944b5f6a16d81ace019f6dd0952 SHA512 c82436dc42dd9ee1b87881d617f6c791a9dc04d85bb1d4588a3cf31009edd8aeb9d89c357581f705e3602580be1d70ab5fd85f629abf7c7f647fa8a5f06f3add
 DIST chromium-68.0.3440.68.tar.xz 630241852 BLAKE2B c18ed31b87c8617f5776a63a4e7c816bf1ef5974ce74a662ba8bb35dde2aac7b4b1c23c52b4b6530d5998e0cc4cb42bcf88f07acbe8e4fc550257cfab536b86f SHA512 ca1458bd93425c77420ee991c6f9ab2624d9ae14dc457468146b0cecee097eb73bee8ee6c623aac67e8425713bde15f015094c96085086c084d924f5f25383c0
-DIST chromium-69.0.3452.0.tar.xz 627961940 BLAKE2B d7e910c746f485595e180b2733ac6bd012ef2a58b72107ce7e8f0a2d30a3b1fa1274b93a607cd05e9a86d4f68520af1cbe5b97b828a9d9d5dd6fde0837995880 SHA512 3dc005c8c93eced4275e5baf01e17582c95e4278a4497d2e1f0c95ab0dc426753bb6a6440d1cc654847d58524f01e4edd2a24f90c54e4202e96bb68b2b127df8
 DIST chromium-69.0.3464.0.tar.xz 634891812 BLAKE2B 2cff114b4c6af03d3a6bc79df68876d38d9d8cc972faed2d3d0a3c565911fb2d32e467a4cff1ca8d5c234fece983ab1bb1b5be12bfdc1041d823fde645050f7e SHA512 d14414be553faa9d327dbb9348edcbc755f7f8346825c5144e65a25acb21eec07c34713180ed5701830ccadda99c171e279ae40a620c9babd187d0d093c8a87b
+DIST chromium-69.0.3493.3.tar.xz 622878800 BLAKE2B 46aabdf4032471db8c6b461ebce6cfbc4fe99be55b959134c950bbba63d2c303673f48bb10004698f79abd4e22aa8b8c390ff6a12210020cf6bd8cf6cf8d8060 SHA512 96393f8939fccc8514094f9215496883f416669e61feb45b706610f67ff90672a88f9154fb06e59dec9d363c5e9a072bf1f2ba562dd533345a493664dabcb19e

diff --git a/www-client/chromium/chromium-69.0.3452.0.ebuild b/www-client/chromium/chromium-69.0.3493.3.ebuild
similarity index 96%
rename from www-client/chromium/chromium-69.0.3452.0.ebuild
rename to www-client/chromium/chromium-69.0.3493.3.ebuild
index f6ce8e32881..42156a1df10 100644
--- a/www-client/chromium/chromium-69.0.3452.0.ebuild
+++ b/www-client/chromium/chromium-69.0.3493.3.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 
 LICENSE="BSD"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64"
 IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
@@ -80,6 +80,7 @@ COMMON_DEPEND="
 RDEPEND="${COMMON_DEPEND}
 	!=www-client/chromium-9999
 	!<www-plugins/chrome-binary-plugins-57
+	dev-util/gn
 	x11-misc/xdg-utils
 	virtual/opengl
 	virtual/ttf-fonts
@@ -130,15 +131,12 @@ GTK+ icon theme.
 "
 
 PATCHES=(
+	"${FILESDIR}/chromium-compiler-r4.patch"
 	"${FILESDIR}/chromium-widevine-r2.patch"
-	"${FILESDIR}/chromium-compiler-r2.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-math.h-r0.patch"
 	"${FILESDIR}/chromium-stdint.patch"
-	"${FILESDIR}/chromium-ffmpeg-r1.patch"
-	"${FILESDIR}/chromium-libwebp-shim-r0.patch"
-	"${FILESDIR}/chromium-disable_xml_catalogs.patch"
 )
 
 pre_build_checks() {
@@ -207,6 +205,7 @@ src_prepare() {
 		net/third_party/quic
 		net/third_party/spdy
 		third_party/WebKit
+		third_party/abseil-cpp
 		third_party/analytics
 		third_party/angle
 		third_party/angle/src/common/third_party/base
@@ -217,6 +216,9 @@ src_prepare() {
 		third_party/angle/third_party/glslang
 		third_party/angle/third_party/spirv-headers
 		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
 		third_party/angle/third_party/vulkan-validation-layers
 		third_party/apple_apsl
 		third_party/blink
@@ -266,6 +268,7 @@ src_prepare() {
 		third_party/libXNVCtrl
 		third_party/libaddressinput
 		third_party/libaom
+		third_party/libaom/source/libaom/third_party/vector
 		third_party/libaom/source/libaom/third_party/x86inc
 		third_party/libjingle
 		third_party/libphonenumber
@@ -361,22 +364,6 @@ src_prepare() {
 	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
 }
 
-bootstrap_gn() {
-	if tc-is-cross-compiler; then
-		local -x AR=${BUILD_AR}
-		local -x CC=${BUILD_CC}
-		local -x CXX=${BUILD_CXX}
-		local -x NM=${BUILD_NM}
-		local -x CFLAGS=${BUILD_CFLAGS}
-		local -x CXXFLAGS=${BUILD_CXXFLAGS}
-		local -x LDFLAGS=${BUILD_LDFLAGS}
-	fi
-	einfo "Building GN..."
-	set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean
-	echo "$@"
-	"$@" || die
-}
-
 src_configure() {
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
@@ -569,10 +556,8 @@ src_configure() {
 		popd > /dev/null || die
 	fi
 
-	bootstrap_gn
-
 	einfo "Configuring Chromium..."
-	set -- out/Release/gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
 	echo "$@"
 	"$@" || die
 }

diff --git a/www-client/chromium/files/chromium-compiler-r4.patch b/www-client/chromium/files/chromium-compiler-r4.patch
new file mode 100644
index 00000000000..3fe73ef7fec
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r4.patch
@@ -0,0 +1,168 @@
+From 777d166eec22c1894108dce985498f75ac5931e8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Apr 2018 13:22:49 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 61 ++++++++++------------------------
+ 1 file changed, 18 insertions(+), 43 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 6e38ad782d38..87bbd423f67f 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -225,8 +225,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+   ]
+ 
+@@ -488,18 +486,6 @@ config("compiler") {
+     }
+   }
+ 
+-  if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
+-      target_os != "chromeos") {
+-    cflags += [
+-      # TODO(hans): Remove this once Clang generates better optimized debug info
+-      # by default. https://crbug.com/765793
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-instcombine-lower-dbg-declare=0",
+-    ]
+-  }
+-
+   # Print absolute paths in diagnostics. There is no precedent for doing this
+   # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+   # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1473,10 +1459,6 @@ config("default_warnings") {
+         cflags += [
+           # TODO(thakis): https://crbug.com/753973
+           "-Wno-enum-compare-switch",
+-
+-          # Ignore warnings about MSVC optimization pragmas.
+-          # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
+-          "-Wno-ignored-pragma-optimize",
+         ]
+       }
+     }
+@@ -1518,22 +1500,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer &&
+-        (!is_linux || !is_clang || is_official_build) &&
+-        current_cpu != "s390x" && current_cpu != "s390" &&
+-        current_cpu != "ppc64" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64") {
+-      # _FORTIFY_SOURCE isn't really supported by Clang now, see
+-      # http://llvm.org/bugs/show_bug.cgi?id=16821.
+-      # It seems to work fine with Ubuntu 12 headers though, so use it in
+-      # official builds.
+-      #
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac || is_ios) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1863,7 +1829,8 @@ config("default_stack_frames") {
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+     if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1897,7 +1864,8 @@ config("optimize") {
+ }
+ 
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+   if (is_win) {
+     # Favor size over speed, /O1 must be before the common flags. The GYP
+     # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1920,7 +1888,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -1944,7 +1913,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -1991,7 +1961,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2029,7 +2000,8 @@ config("optimize_speed") {
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   ldflags = common_optimize_on_ldflags
+   visibility = [ ":default_optimization" ]
+@@ -2115,7 +2087,8 @@ config("afdo") {
+ #   configs += [ "//build/config/compiler:symbols" ]
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (use_goma || is_clang) {
+       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2213,7 +2186,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Linker symbols for backtraces only.
+     cflags = []
+@@ -2244,7 +2218,8 @@ config("minimal_symbols") {
+ }
+ 
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (!is_win) {
+     cflags = [ "-g0" ]
+     asmflags = cflags
+-- 
+2.18.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-06-20 14:00 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-06-20 14:00 UTC (permalink / raw
  To: gentoo-commits

commit:     e6f520f2cdff24e23a3f34c99db6ef73f6bffe43
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 20 14:00:14 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Jun 20 14:00:14 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6f520f2

www-client/chromium: dev channel bump (69.0.3464.0)

Package-Manager: Portage-2.3.40_p15, Repoman-2.3.9_p247

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-69.0.3464.0.ebuild    | 689 +++++++++++++++++++++
 .../chromium/files/chromium-compiler-r3.patch      | 182 ++++++
 3 files changed, 872 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4291e80c9bb..53086e16a0c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-67.0.3396.87.tar.xz 591491608 BLAKE2B 9069c4b2e000e180a9b21bbdbb67
 DIST chromium-68.0.3440.17.tar.xz 624240248 BLAKE2B 9322f731efbc218dbefec351984f93bac5deedee3cc5ce426a619262d885097f28d8532a3d5b55e8daacd2c28dee2dd85dd4063687cbc7ed7d125d2a2a48f885 SHA512 1a6af7c5f3bfe87b37844c9d863f512aa464de75252487877d7796fa0dc246a533357086c64701f624809493eef97fced23d3eaa449819b38ce6038227015d35
 DIST chromium-68.0.3440.25.tar.xz 624353904 BLAKE2B 8ed052e5ad831499367ef1e6d40d08bb585e49855f4c6b820d5532c96f240ad312e66484b75b5b8398e737e2400b7ff1f9edd944b5f6a16d81ace019f6dd0952 SHA512 c82436dc42dd9ee1b87881d617f6c791a9dc04d85bb1d4588a3cf31009edd8aeb9d89c357581f705e3602580be1d70ab5fd85f629abf7c7f647fa8a5f06f3add
 DIST chromium-69.0.3452.0.tar.xz 627961940 BLAKE2B d7e910c746f485595e180b2733ac6bd012ef2a58b72107ce7e8f0a2d30a3b1fa1274b93a607cd05e9a86d4f68520af1cbe5b97b828a9d9d5dd6fde0837995880 SHA512 3dc005c8c93eced4275e5baf01e17582c95e4278a4497d2e1f0c95ab0dc426753bb6a6440d1cc654847d58524f01e4edd2a24f90c54e4202e96bb68b2b127df8
+DIST chromium-69.0.3464.0.tar.xz 634891812 BLAKE2B 2cff114b4c6af03d3a6bc79df68876d38d9d8cc972faed2d3d0a3c565911fb2d32e467a4cff1ca8d5c234fece983ab1bb1b5be12bfdc1041d823fde645050f7e SHA512 d14414be553faa9d327dbb9348edcbc755f7f8346825c5144e65a25acb21eec07c34713180ed5701830ccadda99c171e279ae40a620c9babd187d0d093c8a87b

diff --git a/www-client/chromium/chromium-69.0.3464.0.ebuild b/www-client/chromium/chromium-69.0.3464.0.ebuild
new file mode 100644
index 00000000000..51df6a8dbe6
--- /dev/null
+++ b/www-client/chromium/chromium-69.0.3464.0.ebuild
@@ -0,0 +1,689 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+	app-accessibility/at-spi2-atk:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/atk
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-59:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-1.6.0:=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-6.9.4
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	>=sys-devel/clang-5
+	virtual/pkgconfig
+	dev-vcs/git
+"
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-widevine-r2.patch"
+	"${FILESDIR}/chromium-compiler-r3.patch"
+	"${FILESDIR}/chromium-webrtc-r0.patch"
+	"${FILESDIR}/chromium-memcpy-r0.patch"
+	"${FILESDIR}/chromium-math.h-r0.patch"
+	"${FILESDIR}/chromium-stdint.patch"
+	"${FILESDIR}/chromium-ffmpeg-r1.patch"
+	"${FILESDIR}/chromium-disable_xml_catalogs.patch"
+)
+
+pre_build_checks() {
+	#if [[ ${MERGE_TYPE} != binary ]]; then
+	#	local -x CPP="$(tc-getCXX) -E"
+	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+	#		# bugs: #601654
+	#		die "At least clang 3.9.1 is required"
+	#	fi
+	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+	#		# bugs: #535730, #525374, #518668, #600288, #627356
+	#		die "At least gcc 5.0 is required"
+	#	fi
+	#fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	eshopts_pop
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/http2
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/spdy
+		third_party/WebKit
+		third_party/abseil-cpp
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-headers
+		third_party/angle/third_party/vulkan-loader
+		third_party/angle/third_party/vulkan-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/beautifulsoup4
+		third_party/catapult/third_party/html5lib-python
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/six
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang-angle
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openmax_dl
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/simplejson
+		third_party/skia
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/spirv-tools-angle
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/vulkan-validation-layers
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/antlr4
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+bootstrap_gn() {
+	if tc-is-cross-compiler; then
+		local -x AR=${BUILD_AR}
+		local -x CC=${BUILD_CC}
+		local -x CXX=${BUILD_CXX}
+		local -x NM=${BUILD_NM}
+		local -x CFLAGS=${BUILD_CFLAGS}
+		local -x CXXFLAGS=${BUILD_CXXFLAGS}
+		local -x LDFLAGS=${BUILD_LDFLAGS}
+	fi
+	einfo "Building GN..."
+	set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# https://bugs.gentoo.org/588596
+	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/ #nowarn
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	bootstrap_gn
+
+	einfo "Configuring Chromium..."
+	set -- out/Release/gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-compiler-r3.patch b/www-client/chromium/files/chromium-compiler-r3.patch
new file mode 100644
index 00000000000..ca41add408e
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r3.patch
@@ -0,0 +1,182 @@
+From cba2fccce163bc549db529c5d6783478de908325 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Apr 2018 13:22:49 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 68 +++++++++-------------------------
+ 1 file changed, 18 insertions(+), 50 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 2d82ed5b4e23..23632b156900 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -225,8 +225,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+   ]
+ 
+@@ -488,18 +486,6 @@ config("compiler") {
+     }
+   }
+ 
+-  if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
+-      target_os != "chromeos") {
+-    cflags += [
+-      # TODO(hans): Remove this once Clang generates better optimized debug info
+-      # by default. https://crbug.com/765793
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-instcombine-lower-dbg-declare=0",
+-    ]
+-  }
+-
+   # Print absolute paths in diagnostics. There is no precedent for doing this
+   # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+   # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -672,13 +658,6 @@ config("compiler") {
+     ldflags += [ "-Wl,--no-rosegment" ]
+   }
+ 
+-  # This flag enforces that member pointer base types are complete. It helps
+-  # prevent us from running into problems in the Microsoft C++ ABI (see
+-  # https://crbug.com/847724).
+-  if (is_clang && !is_nacl && target_os != "chromeos" && !use_xcode_clang) {
+-    cflags += [ "-fcomplete-member-pointers" ]
+-  }
+-
+   # Pass the same C/C++ flags to the objective C/C++ compiler.
+   cflags_objc += cflags_c
+   cflags_objcc += cflags_cc
+@@ -1467,10 +1446,6 @@ config("default_warnings") {
+         cflags += [
+           # TODO(thakis): https://crbug.com/753973
+           "-Wno-enum-compare-switch",
+-
+-          # Ignore warnings about MSVC optimization pragmas.
+-          # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
+-          "-Wno-ignored-pragma-optimize",
+         ]
+       }
+     }
+@@ -1512,22 +1487,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer &&
+-        (!is_linux || !is_clang || is_official_build) &&
+-        current_cpu != "s390x" && current_cpu != "s390" &&
+-        current_cpu != "ppc64" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64") {
+-      # _FORTIFY_SOURCE isn't really supported by Clang now, see
+-      # http://llvm.org/bugs/show_bug.cgi?id=16821.
+-      # It seems to work fine with Ubuntu 12 headers though, so use it in
+-      # official builds.
+-      #
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac || is_ios) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1857,7 +1816,8 @@ config("default_stack_frames") {
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+     if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1891,7 +1851,8 @@ config("optimize") {
+ }
+ 
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+   if (is_win) {
+     # Favor size over speed, /O1 must be before the common flags. The GYP
+     # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1914,7 +1875,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -1938,7 +1900,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -1985,7 +1948,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -2023,7 +1987,8 @@ config("optimize_speed") {
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   ldflags = common_optimize_on_ldflags
+   visibility = [ ":default_optimization" ]
+@@ -2109,7 +2074,8 @@ config("afdo") {
+ #   configs += [ "//build/config/compiler:symbols" ]
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (use_goma || is_clang) {
+       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2207,7 +2173,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Linker symbols for backtraces only.
+     cflags = []
+@@ -2238,7 +2205,8 @@ config("minimal_symbols") {
+ }
+ 
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (!is_win) {
+     cflags = [ "-g0" ]
+     asmflags = cflags
+-- 
+2.18.0.rc2
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-05-29 19:36 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-05-29 19:36 UTC (permalink / raw
  To: gentoo-commits

commit:     5b2f7120e58504ed523aca3ff382d55a5e24e8f5
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue May 29 19:35:46 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue May 29 19:36:07 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b2f7120

www-client/chromium: dev channel bump (68.0.3438.3)

Package-Manager: Portage-2.3.40_p8, Repoman-2.3.9_p240

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-68.0.3438.3.ebuild    | 696 +++++++++++++++++++++
 .../chromium/files/chromium-compiler-r2.patch      | 168 +++++
 .../chromium/files/chromium-gn-bootstrap-r24.patch |  31 +
 4 files changed, 896 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0ed6fefab6d..6b551df3a31 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,3 +3,4 @@ DIST chromium-66.0.3359.181.tar.xz 583985908 BLAKE2B 22794b379591da9e4bfb1ea38ae
 DIST chromium-67.0.3396.40.tar.xz 589878296 BLAKE2B e02d8980cb882fb67eb6e048dfa8534fb423259af257040cdda8198aac9433a221d6218873a8e5623ae3cfb8e081f22bfc40444e53be38b17a0ebff77537263d SHA512 1d4986d444076a4a48bf9ad7061dbb424f520e46f2f58f8f84dfee2fefea05a3b019ef27acda553efb9a75db9731acbc0c80f5dfb39a9137e9e27336306d5981
 DIST chromium-67.0.3396.56.tar.xz 589901992 BLAKE2B e5207de67db589d65dbaf7af493308a60e3951993f439218c025d10fecd331052a3dfd0f196f3c7e078cda79af3d248a94550a6ffb8c0da7842592e48de20313 SHA512 a7397ebcff54e184ad510fcc7d7958a4adafcf53c88a7ad951fc361366439b01c4e1a77dfcfadbf1f96d92e9ea503287862e7cd2521be696919cf3ee0f1d0816
 DIST chromium-68.0.3409.2.tar.xz 595647380 BLAKE2B 3f3ebb7de759ae92b8feca74a931c10c4bdf4f75a0a7aeb2f56b59e635e1f03becccdf2b26d306e5753d9379eadede6ef50ec4e44338a3a6bdfb960b74003770 SHA512 2ce35251392570bcfe0cc02813bf6cee1761b2227888a135491828bfdfa9eafa4538e8fb981165503f901eecbf91cc8ce17cebab1681c63a43f0625dae7a2dd8
+DIST chromium-68.0.3438.3.tar.xz 624448788 BLAKE2B 25e8f6bfc9171f17a634caa8974a01dba8e0b40dba78534f8b04cbced98566ce8addba65907165599587d0120563073f051af2af19601e4556182b9ec5442113 SHA512 2ff17270acee971bf9a2770b826f919979f24ab7be12a00504ad0b16e72f21fd70f7dc543e8823f8c1737ff785ae900e999d2e82153ff84d0b33cf68ad82a2a2

diff --git a/www-client/chromium/chromium-68.0.3438.3.ebuild b/www-client/chromium/chromium-68.0.3438.3.ebuild
new file mode 100644
index 00000000000..2022782559c
--- /dev/null
+++ b/www-client/chromium/chromium-68.0.3438.3.ebuild
@@ -0,0 +1,696 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+	app-accessibility/at-spi2-atk:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/atk
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-59:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-1.6.0:=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-4:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-6.9.4
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	>=sys-devel/clang-5
+	virtual/pkgconfig
+	dev-vcs/git
+	$(python_gen_any_dep '
+		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+		dev-python/html5lib[${PYTHON_USEDEP}]
+		dev-python/simplejson[${PYTHON_USEDEP}]
+	')
+"
+
+# Keep this in sync with the python_gen_any_dep call.
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-widevine-r2.patch"
+	"${FILESDIR}/chromium-compiler-r2.patch"
+	#"${FILESDIR}/chromium-ffmpeg-build-r0.patch"
+	"${FILESDIR}/chromium-webrtc-r0.patch"
+	"${FILESDIR}/chromium-memcpy-r0.patch"
+	"${FILESDIR}/chromium-math.h-r0.patch"
+	"${FILESDIR}/chromium-stdint.patch"
+	"${FILESDIR}/chromium-ffmpeg-r1.patch"
+	"${FILESDIR}/chromium-gn-bootstrap-r24.patch"
+)
+
+pre_build_checks() {
+	#if [[ ${MERGE_TYPE} != binary ]]; then
+	#	local -x CPP="$(tc-getCXX) -E"
+	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+	#		# bugs: #601654
+	#		die "At least clang 3.9.1 is required"
+	#	fi
+	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+	#		# bugs: #535730, #525374, #518668, #600288, #627356
+	#		die "At least gcc 5.0 is required"
+	#	fi
+	#fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	eshopts_pop
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/http2
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		net/third_party/quic
+		net/third_party/spdy
+		third_party/WebKit
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/polymer
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang-angle
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libsync
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openmax_dl
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/pyjson5
+		third_party/qcms
+		third_party/rnnoise
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/skia
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/spirv-tools-angle
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/vulkan-validation-layers
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/antlr4
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+bootstrap_gn() {
+	if tc-is-cross-compiler; then
+		local -x AR=${BUILD_AR}
+		local -x CC=${BUILD_CC}
+		local -x CXX=${BUILD_CXX}
+		local -x NM=${BUILD_NM}
+		local -x CFLAGS=${BUILD_CFLAGS}
+		local -x CXXFLAGS=${BUILD_CXXFLAGS}
+		local -x LDFLAGS=${BUILD_LDFLAGS}
+	fi
+	einfo "Building GN..."
+	set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# https://bugs.gentoo.org/588596
+	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# https://bugs.gentoo.org/654216
+	addpredict /dev/dri/
+
+	#if ! use system-ffmpeg; then
+	if false; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	bootstrap_gn
+
+	einfo "Configuring Chromium..."
+	set -- out/Release/gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-compiler-r2.patch b/www-client/chromium/files/chromium-compiler-r2.patch
new file mode 100644
index 00000000000..3ac2eb81f4c
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r2.patch
@@ -0,0 +1,168 @@
+From 4310db462fab74bf14066f2a6f7cf250ecba0cf1 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Apr 2018 13:22:49 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 61 ++++++++++------------------------
+ 1 file changed, 18 insertions(+), 43 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 83337d52e4b9..f2c192fc31ca 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -228,8 +228,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+   ]
+ 
+@@ -488,18 +486,6 @@ config("compiler") {
+     }
+   }
+ 
+-  if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
+-      target_os != "chromeos") {
+-    cflags += [
+-      # TODO(hans): Remove this once Clang generates better optimized debug info
+-      # by default. https://crbug.com/765793
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-instcombine-lower-dbg-declare=0",
+-    ]
+-  }
+-
+   # Print absolute paths in diagnostics. There is no precedent for doing this
+   # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+   # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1415,10 +1401,6 @@ config("default_warnings") {
+ 
+         # TODO(hans): https://crbug.com/766891
+         "-Wno-null-pointer-arithmetic",
+-
+-        # Ignore warnings about MSVC optimization pragmas.
+-        # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
+-        "-Wno-ignored-pragma-optimize",
+       ]
+     } else if (use_xcode_clang) {
+       cflags += [
+@@ -1462,22 +1444,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer &&
+-        (!is_linux || !is_clang || is_official_build) &&
+-        current_cpu != "s390x" && current_cpu != "s390" &&
+-        current_cpu != "ppc64" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64") {
+-      # _FORTIFY_SOURCE isn't really supported by Clang now, see
+-      # http://llvm.org/bugs/show_bug.cgi?id=16821.
+-      # It seems to work fine with Ubuntu 12 headers though, so use it in
+-      # official builds.
+-      #
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac || is_ios) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1807,7 +1773,8 @@ config("default_stack_frames") {
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+     if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1841,7 +1808,8 @@ config("optimize") {
+ }
+ 
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+   if (is_win) {
+     # Favor size over speed, /O1 must be before the common flags. The GYP
+     # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1864,7 +1832,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -1888,7 +1857,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -1935,7 +1905,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -1973,7 +1944,8 @@ config("optimize_speed") {
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   ldflags = common_optimize_on_ldflags
+   visibility = [ ":default_optimization" ]
+@@ -2057,7 +2029,8 @@ config("afdo") {
+ #   configs += [ "//build/config/compiler:symbols" ]
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (use_goma || is_clang) {
+       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2155,7 +2128,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Linker symbols for backtraces only.
+     cflags = []
+@@ -2186,7 +2160,8 @@ config("minimal_symbols") {
+ }
+ 
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (!is_win) {
+     cflags = [ "-g0" ]
+     asmflags = cflags
+-- 
+2.17.0
+

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r24.patch b/www-client/chromium/files/chromium-gn-bootstrap-r24.patch
new file mode 100644
index 00000000000..0577dd4cf73
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r24.patch
@@ -0,0 +1,31 @@
+From 8aca6d50942218ba7887b8b41a44e4f1b7d6f091 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Thu, 24 May 2018 22:39:20 +0000
+Subject: [PATCH] Fix gn bootstrap
+
+R=dpranke
+
+Change-Id: I469e7e478141e7c389f7a16a5e860122785bab44
+Reviewed-on: https://chromium-review.googlesource.com/1072740
+Reviewed-by: Dirk Pranke <dpranke@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#561663}
+---
+ tools/gn/bootstrap/bootstrap.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 0d5f42a1d4a8..300abacdbca0 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -649,7 +649,6 @@ def write_gn_ninja(path, root_gen_dir, options, windows_x64_toolchain):
+       'base/trace_event/memory_peak_detector.cc',
+       'base/trace_event/memory_usage_estimator.cc',
+       'base/trace_event/process_memory_dump.cc',
+-      'base/trace_event/sharded_allocation_register.cc',
+       'base/trace_event/trace_buffer.cc',
+       'base/trace_event/trace_config.cc',
+       'base/trace_event/trace_config_category_filter.cc',
+-- 
+2.17.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-04-30 23:26 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-04-30 23:26 UTC (permalink / raw
  To: gentoo-commits

commit:     ba6e7372f34d1760309b03615ad069fda5d916a7
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 30 23:26:26 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Apr 30 23:26:26 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba6e7372

www-client/chromium: dev channel bump (68.0.3409.2)

Package-Manager: Portage-2.3.31_p60, Repoman-2.3.9_p116

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-68.0.3409.2.ebuild    | 697 +++++++++++++++++++++
 .../chromium/files/chromium-compiler-r1.patch      | 174 +++++
 .../chromium/files/chromium-gn-bootstrap-r23.patch |  56 ++
 4 files changed, 928 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 5e4c84f9ee3..8552eecaf51 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,3 +3,4 @@ DIST chromium-66.0.3359.117.tar.xz 583947452 BLAKE2B b9e860f0f966ec9aaa2ab5627bb
 DIST chromium-66.0.3359.139.tar.xz 583978636 BLAKE2B 0727ba9f87a738b691b2120dee7f45f7b16b234e871988b1257f01589a6a5ec2cd2470e8d95fc3087be2ab140f71afce63c7fccc851e87a932f69326966c3303 SHA512 9fe78fb6970fc5a3455e6545a4869d3a73075329ccd26719f503fd9bbfbdd6aec4f3db4cc748e8f12abb81adb318b8f8b42c7ab5c289a1f698536e81b7d2f14f
 DIST chromium-67.0.3377.1.tar.xz 585310180 BLAKE2B 9e543ad2796c617e9c6237a938600ddd4fd7f7245f78e7aec25e2160ed8ab128e70c97d5a7d70021fd7b79707ceaf1e5e0a836e25474ad5e2999bc1f6b7e43b1 SHA512 e0e5c092895d676551ad75cf18595a641676cde0a6a414180a7e23046cb47fe61256634ac50fa6b3f05153a75125e88417bada12f662ee3fa71aad3ba7cf7684
 DIST chromium-67.0.3396.18.tar.xz 589707412 BLAKE2B 925d258b388b9c28c64db8a423139d52ff4bada2a3971c1c3735e8caf9c9f6991e44153ae57650285f76f5b185046259d6305abaa2bf6ed9ff00c87a91162da2 SHA512 38e19697d4386fc0497312f2dd408f0e950fabb58f78572509caa68cbdbc7f5c5e54bb945c1afe17c64ef5180711759735d5cacb61fb8847b4fe3ac1a4485066
+DIST chromium-68.0.3409.2.tar.xz 595647380 BLAKE2B 3f3ebb7de759ae92b8feca74a931c10c4bdf4f75a0a7aeb2f56b59e635e1f03becccdf2b26d306e5753d9379eadede6ef50ec4e44338a3a6bdfb960b74003770 SHA512 2ce35251392570bcfe0cc02813bf6cee1761b2227888a135491828bfdfa9eafa4538e8fb981165503f901eecbf91cc8ce17cebab1681c63a43f0625dae7a2dd8

diff --git a/www-client/chromium/chromium-68.0.3409.2.ebuild b/www-client/chromium/chromium-68.0.3409.2.ebuild
new file mode 100644
index 00000000000..58724a4a0e6
--- /dev/null
+++ b/www-client/chromium/chromium-68.0.3409.2.ebuild
@@ -0,0 +1,697 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+	app-accessibility/at-spi2-atk:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/atk
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-59:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-1.6.0:=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-6.9.4
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	>=sys-devel/clang-5
+	virtual/pkgconfig
+	dev-vcs/git
+	$(python_gen_any_dep '
+		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+		dev-python/html5lib[${PYTHON_USEDEP}]
+		dev-python/simplejson[${PYTHON_USEDEP}]
+	')
+"
+
+# Keep this in sync with the python_gen_any_dep call.
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r1.patch"
+	"${FILESDIR}/chromium-webrtc-r0.patch"
+	"${FILESDIR}/chromium-memcpy-r0.patch"
+	"${FILESDIR}/chromium-math.h-r0.patch"
+	"${FILESDIR}/chromium-stdint.patch"
+	"${FILESDIR}/chromium-ffmpeg-r1.patch"
+	"${FILESDIR}/chromium-ffmpeg-clang.patch"
+	"${FILESDIR}/chromium-gn-bootstrap-r23.patch"
+)
+
+pre_build_checks() {
+	#if [[ ${MERGE_TYPE} != binary ]]; then
+	#	local -x CPP="$(tc-getCXX) -E"
+	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+	#		# bugs: #601654
+	#		die "At least clang 3.9.1 is required"
+	#	fi
+	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+	#		# bugs: #535730, #525374, #518668, #600288, #627356
+	#		die "At least gcc 5.0 is required"
+	#	fi
+	#fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	eshopts_pop
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/http2
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		third_party/WebKit
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/apple_apsl
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/polymer
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/crashpad
+		third_party/crashpad/crashpad/third_party/zlib
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang-angle
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openmax_dl
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/perfetto
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/qcms
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/skia
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/skcms
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/spirv-tools-angle
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/vulkan-validation-layers
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/antlr4
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+bootstrap_gn() {
+	if tc-is-cross-compiler; then
+		local -x AR=${BUILD_AR}
+		local -x CC=${BUILD_CC}
+		local -x CXX=${BUILD_CXX}
+		local -x NM=${BUILD_NM}
+		local -x CFLAGS=${BUILD_CFLAGS}
+		local -x CXXFLAGS=${BUILD_CXXFLAGS}
+		local -x LDFLAGS=${BUILD_LDFLAGS}
+	fi
+	einfo "Building GN..."
+	set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=${CHOST}-clang
+		CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# https://bugs.gentoo.org/588596
+	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	bootstrap_gn
+
+	einfo "Configuring Chromium..."
+	set -- out/Release/gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-compiler-r1.patch b/www-client/chromium/files/chromium-compiler-r1.patch
new file mode 100644
index 00000000000..3c75c1d96df
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r1.patch
@@ -0,0 +1,174 @@
+From f1e0c5fc3b81053c8851efde9ca77e04c77d4563 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Apr 2018 13:22:49 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 67 +++++++++-------------------------
+ 1 file changed, 18 insertions(+), 49 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 3dbf872f7038..f8b2dcc9b026 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -222,8 +222,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+   ]
+ 
+@@ -474,24 +472,6 @@ config("compiler") {
+     cflags += [ "-fcolor-diagnostics" ]
+   }
+ 
+-  if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
+-      target_os != "chromeos") {
+-    cflags += [
+-      # TODO(hans): Remove this once Clang generates better optimized debug info
+-      # by default. https://crbug.com/765793
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-instcombine-lower-dbg-declare=0",
+-
+-      # TODO(rnk): Remove this once it's the default. https://crbug.com/793819
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-fast-isel-sink-local-values=1",
+-    ]
+-  }
+-
+   # Print absolute paths in diagnostics. There is no precedent for doing this
+   # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+   # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1403,10 +1383,6 @@ config("default_warnings") {
+ 
+         # TODO(hans): https://crbug.com/766891
+         "-Wno-null-pointer-arithmetic",
+-
+-        # Ignore warnings about MSVC optimization pragmas.
+-        # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
+-        "-Wno-ignored-pragma-optimize",
+       ]
+     } else if (use_xcode_clang) {
+       cflags += [
+@@ -1450,22 +1426,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer &&
+-        (!is_linux || !is_clang || is_official_build) &&
+-        current_cpu != "s390x" && current_cpu != "s390" &&
+-        current_cpu != "ppc64" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64") {
+-      # _FORTIFY_SOURCE isn't really supported by Clang now, see
+-      # http://llvm.org/bugs/show_bug.cgi?id=16821.
+-      # It seems to work fine with Ubuntu 12 headers though, so use it in
+-      # official builds.
+-      #
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac || is_ios) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1799,7 +1759,8 @@ config("default_stack_frames") {
+ }
+ 
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+   if (is_win) {
+     # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+     if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1833,7 +1794,8 @@ config("optimize") {
+ }
+ 
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+   if (is_win) {
+     # Favor size over speed, /O1 must be before the common flags. The GYP
+     # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1856,7 +1818,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -1880,7 +1843,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -1927,7 +1891,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+   if (is_nacl && is_nacl_irt) {
+     # The NaCl IRT is a special case and always wants its own config.
+     # Various components do:
+@@ -1965,7 +1930,8 @@ config("optimize_speed") {
+   }
+ }
+ 
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+   cflags = [ "-O1" ] + common_optimize_on_cflags
+   ldflags = common_optimize_on_ldflags
+   visibility = [ ":default_optimization" ]
+@@ -2047,7 +2013,8 @@ config("afdo") {
+ #   configs += [ "//build/config/compiler:symbols" ]
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (use_goma || is_clang) {
+       # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2139,7 +2106,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+   if (is_win) {
+     # Linker symbols for backtraces only.
+     cflags = []
+@@ -2170,7 +2138,8 @@ config("minimal_symbols") {
+ }
+ 
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (!is_win) {
+     cflags = [ "-g0" ]
+     asmflags = cflags
+-- 
+2.17.0
+

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r23.patch b/www-client/chromium/files/chromium-gn-bootstrap-r23.patch
new file mode 100644
index 00000000000..e826a4dfc37
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r23.patch
@@ -0,0 +1,56 @@
+From 0d3bbfb6b8ba05af199b49f5dd71d842f6acffda Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Fri, 27 Apr 2018 18:07:35 +0000
+Subject: [PATCH] Fix gn bootstrap
+
+BUG=837312
+R=dpranke
+
+Change-Id: Ia5c57f596388a4ba325208c638fac558984202f0
+Reviewed-on: https://chromium-review.googlesource.com/1030895
+Reviewed-by: Dirk Pranke <dpranke@chromium.org>
+Commit-Queue: Dirk Pranke <dpranke@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#554419}
+---
+ tools/gn/bootstrap/bootstrap.py | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 7fa9f0489f5b..ebc32371acc3 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -525,8 +525,11 @@ def write_gn_ninja(path, root_gen_dir, options, windows_x64_toolchain):
+       'base/location.cc',
+       'base/logging.cc',
+       'base/md5.cc',
++      'base/memory/platform_shared_memory_region.cc',
++      'base/memory/read_only_shared_memory_region.cc',
+       'base/memory/ref_counted.cc',
+       'base/memory/ref_counted_memory.cc',
++      'base/memory/shared_memory_mapping.cc',
+       'base/memory/shared_memory_handle.cc',
+       'base/memory/shared_memory_tracker.cc',
+       'base/memory/weak_ptr.cc',
+@@ -663,6 +666,19 @@ def write_gn_ninja(path, root_gen_dir, options, windows_x64_toolchain):
+       'base/vlog.cc',
+   ])
+ 
++  if is_win:
++    static_libraries['base']['sources'].extend([
++        'base/memory/platform_shared_memory_region_win.cc'
++    ])
++  elif is_mac:
++    static_libraries['base']['sources'].extend([
++        'base/memory/platform_shared_memory_region_mac.cc'
++    ])
++  elif is_posix:
++    static_libraries['base']['sources'].extend([
++        'base/memory/platform_shared_memory_region_posix.cc'
++    ])
++
+   if is_posix:
+     static_libraries['base']['sources'].extend([
+         'base/base_paths_posix.cc',
+-- 
+2.17.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-03-04 23:02 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-03-04 23:02 UTC (permalink / raw
  To: gentoo-commits

commit:     4c23a10acc7d63d2aa32376f1d15d49080b737cf
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  4 22:58:18 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Mar  4 22:59:52 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c23a10a

www-client/chromium: dev channel bump (66.0.3355.0)

Package-Manager: Portage-2.3.24_p18, Repoman-2.3.6_p99

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-66.0.3355.0.ebuild    | 698 +++++++++++++++++++++
 www-client/chromium/files/chromium-clang-r4.patch  |  11 +
 www-client/chromium/files/chromium-ffmpeg-r1.patch |  22 +
 4 files changed, 732 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 9cb9430f8f9..634fd6c96e2 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-64.0.3282.167.tar.xz 482246360 BLAKE2B b4785c20f33081015ac31fed9db
 DIST chromium-64.0.3282.186.tar.xz 482247144 BLAKE2B b59c5afeeed33fe081f35d0ee228a0d67a97fc1370c7d3ab90304ea6e236ee0f7fecd2c36df0acbdf384f42e2f90926cbdd56e683afc95e78d4bdc64b6d24453 SHA512 a8a435ee8506cfefaaf2df7447010df5db69fa6907844872d00643f55723a9bd7771649658f5151c857ac037adcbc8bdf2a5375dd105f78d068277ef021af7d8
 DIST chromium-65.0.3325.106.tar.xz 570309916 BLAKE2B c579e62207f15d0715f76434712e963d498c3e446f3759f31222ba74d0942469484664afd66515a48f994d6c964f8b8abad498dcacaab8e176220630204fdce5 SHA512 a035d5d0d2499d5065da9bb606769e50e5334de3e095fa020fd8f7c040aad2f4868626e68b32932563aa49f7816739f5761bf4dfd7649bed83752169a16f9b56
 DIST chromium-65.0.3325.88.tar.xz 570275184 BLAKE2B a08ae19acfd7a80ae43c0654432588bfa7ea09a0b0f14583cf8e79b3c5997a348bcba12e52002d79214576030574695d32069cbe7037b53dad120aadf6c2a830 SHA512 5166e64f96e5b2bd30b28ed769a8c93b2c1de3eb52c18776222b16758002b6d87ca241bd95c7b37316e1afc5379ff49b77fbf552ab9c0ea868105d66ce400070
+DIST chromium-66.0.3355.0.tar.xz 582642152 BLAKE2B 16a89cc99984b566741770f9081a738596ac0b031e916073df417ac42406a96a8f874278720f3462fba827218dff141eddd614cf2ca494ec3d38577744e7c441 SHA512 324902e3e8ec7c22dbb95f2d8f97069dac97f702f528130c06eb7a246e495e51b069f4ce09a7ca875ff511e0bf992207b55b1f887aaa3a438179618c206df436

diff --git a/www-client/chromium/chromium-66.0.3355.0.ebuild b/www-client/chromium/chromium-66.0.3355.0.ebuild
new file mode 100644
index 00000000000..56038b7d740
--- /dev/null
+++ b/www-client/chromium/chromium-66.0.3355.0.ebuild
@@ -0,0 +1,698 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+	app-accessibility/at-spi2-atk:2
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/atk
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-59:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.26:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-1.6.0:=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-6.9.4
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	>=sys-devel/clang-5
+	virtual/pkgconfig
+	dev-vcs/git
+	$(python_gen_any_dep '
+		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+		dev-python/html5lib[${PYTHON_USEDEP}]
+		dev-python/simplejson[${PYTHON_USEDEP}]
+	')
+"
+
+# Keep this in sync with the python_gen_any_dep call.
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-widevine-r1.patch"
+	"${FILESDIR}/chromium-FORTIFY_SOURCE-r2.patch"
+	"${FILESDIR}/chromium-webrtc-r0.patch"
+	"${FILESDIR}/chromium-memcpy-r0.patch"
+	"${FILESDIR}/chromium-clang-r2.patch"
+	"${FILESDIR}/chromium-math.h-r0.patch"
+	"${FILESDIR}/chromium-stdint.patch"
+	"${FILESDIR}/chromium-clang-r4.patch"
+	"${FILESDIR}/chromium-ffmpeg-r1.patch"
+)
+
+pre_build_checks() {
+	#if [[ ${MERGE_TYPE} != binary ]]; then
+	#	local -x CPP="$(tc-getCXX) -E"
+	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+	#		# bugs: #601654
+	#		die "At least clang 3.9.1 is required"
+	#	fi
+	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+	#		# bugs: #535730, #525374, #518668, #600288, #627356
+	#		die "At least gcc 5.0 is required"
+	#	fi
+	#fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	eshopts_pop
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		buildtools/third_party/libc++
+		buildtools/third_party/libc++abi
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		third_party/WebKit
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/angle/third_party/glslang
+		third_party/angle/third_party/spirv-headers
+		third_party/angle/third_party/spirv-tools
+		third_party/angle/third_party/vulkan-validation-layers
+		third_party/blink
+		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/polymer
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_3
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang-angle
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/llvm
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/mt19937ar
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openmax_dl
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/skia_shared
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/qcms
+		third_party/s2cellid
+		third_party/sfntly
+		third_party/skia
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/spirv-tools-angle
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/unrar
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/vulkan-validation-layers
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/src/third_party/utf8-decoder
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+bootstrap_gn() {
+	if tc-is-cross-compiler; then
+		local -x AR=${BUILD_AR}
+		local -x CC=${BUILD_CC}
+		local -x CXX=${BUILD_CXX}
+		local -x NM=${BUILD_NM}
+		local -x CFLAGS=${BUILD_CFLAGS}
+		local -x CXXFLAGS=${BUILD_CXXFLAGS}
+		local -x LDFLAGS=${BUILD_LDFLAGS}
+	fi
+	einfo "Building GN..."
+	set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	local myconf_gn=""
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=clang
+		CXX=clang++
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		fontconfig
+		freetype
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	# Disable forced lld, bug 641556
+	myconf_gn+=" use_lld=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# https://bugs.gentoo.org/588596
+	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	bootstrap_gn
+
+	einfo "Configuring Chromium..."
+	set -- out/Release/gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+	# Build mksnapshot and pax-mark it.
+	local x
+	for x in mksnapshot v8_context_snapshot_generator; do
+		if tc-is-cross-compiler; then
+			eninja -C out/Release "host/${x}"
+			pax-mark m "out/Release/host/${x}"
+		else
+			eninja -C out/Release "${x}"
+			pax-mark m "out/Release/${x}"
+		fi
+	done
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release chrome chromedriver
+	use suid && eninja -C out/Release chrome_sandbox
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	if use widevine; then
+		# These will be provided by chrome-binary-plugins
+		rm out/Release/libwidevinecdm*.so || die
+	fi
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	if [[ -d out/Release/swiftshader ]]; then
+		insinto "${CHROMIUM_HOME}/swiftshader"
+		doins out/Release/swiftshader/*.so
+	fi
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-clang-r4.patch b/www-client/chromium/files/chromium-clang-r4.patch
new file mode 100644
index 00000000000..8d5122f70c3
--- /dev/null
+++ b/www-client/chromium/files/chromium-clang-r4.patch
@@ -0,0 +1,11 @@
+--- a/device/fido/u2f_ble_transaction.cc
++++ b/device/fido/u2f_ble_transaction.cc
+@@ -131,7 +131,7 @@
+ 
+ void U2fBleTransaction::OnError() {
+   request_frame_.reset();
+-  request_cont_fragments_ = {};
++  request_cont_fragments_ = base::queue<U2fBleFrameContinuationFragment>();
+   response_frame_assembler_.reset();
+   std::move(callback_).Run(base::nullopt);
+ }

diff --git a/www-client/chromium/files/chromium-ffmpeg-r1.patch b/www-client/chromium/files/chromium-ffmpeg-r1.patch
new file mode 100644
index 00000000000..53d61e8f38b
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-r1.patch
@@ -0,0 +1,22 @@
+--- a/build/linux/unbundle/ffmpeg.gn
++++ b/build/linux/unbundle/ffmpeg.gn
+@@ -14,8 +14,8 @@ pkg_config("system_ffmpeg") {
+   ]
+ }
+ 
+-buildflag_header("ffmpeg_buildflags") {
+-  header = "ffmpeg_buildflags.h"
++buildflag_header("ffmpeg_features") {
++  header = "ffmpeg_features.h"
+   flags = [ "USE_SYSTEM_FFMPEG=true" ]
+ }
+ 
+@@ -30,7 +30,7 @@ shim_headers("ffmpeg_shim") {
+ 
+ source_set("ffmpeg") {
+   deps = [
+-    ":ffmpeg_buildflags",
++    ":ffmpeg_features",
+     ":ffmpeg_shim",
+   ]
+   public_configs = [ ":system_ffmpeg" ]


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-02-21 20:31 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-02-21 20:31 UTC (permalink / raw
  To: gentoo-commits

commit:     1b8e99b3b294c5df232d8de988c86e90fedbbd16
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 21 20:30:10 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Feb 21 20:31:22 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b8e99b3

www-client/chromium: beta channel bump (65.0.3325.73)

Package-Manager: Portage-2.3.24_p18, Repoman-2.3.6_p99

 www-client/chromium/Manifest                       |  2 +-
 ....3298.3.ebuild => chromium-65.0.3325.73.ebuild} | 87 ++++++++++++----------
 www-client/chromium/files/chromium-clang-r3.patch  | 11 +++
 www-client/chromium/files/chromium-math.h-r0.patch | 29 ++++++++
 www-client/chromium/files/chromium-stdint.patch    | 21 ++++++
 5 files changed, 110 insertions(+), 40 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d4015acc90e..cddedc5b6dc 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-64.0.3282.167.tar.xz 482246360 BLAKE2B b4785c20f33081015ac31fed9dbd108dc78160d95c4ea7055b8fffdb714fe9ef120727cd6b88d4e4a15b0c429f04c7c512cca90c5313128e0001a4ae5b908b6f SHA512 1bee80d2e8d4332cfc307efdac8eb11a48e42f3927e63e7a9d5ff2bbad6c4534926669f21defbf0553160f5bb28596723be8bd0e3dfa19ca9a1e854bcf42fd77
-DIST chromium-65.0.3298.3.tar.xz 485716108 BLAKE2B 185b3f683b2a732343fa5f98b24171f1d3cf2cf8eeb63c56efa7699f6b038d2a7eea4f9277b0b7ee2fdfa207a4f13edbaf2cc9a591a79ec4d058a131ce44366b SHA512 f1ed9a403036e87da7897f173eeb1aa71fe2650efc5ef5b98f814c7d4d9c879971597f9ded11324c86d6edc7f12f3bcf2786a6fb022e9697dbdb8eae086e18b7
 DIST chromium-65.0.3315.3.tar.xz 532475512 BLAKE2B 1a118ddd05f2b939ff0fd84f85e1c22789713351776d889bafb55ddb2b897b2921050a3df3b7d5e3224be84539d95dddce1a27a948c61b29c788ed9f8e194e02 SHA512 c7f0feda90c0df15058473d39482e9b9a9b3236dcb90ff8ba7ad53afde2fce4901b2cbd678d8470560cc0cb6e31c8d3caee9f0a9f100d82d95feacabcdb7f8ce
+DIST chromium-65.0.3325.73.tar.xz 570268564 BLAKE2B 8d1a9cf38f12ea3566463f42772671268de68d8c49170d60733be8eee7492850be739f19377365366740dcbad3414538eb00765281c966b6cedb85b74709448f SHA512 96ed3862c3fc21afac8d18f4b43f98d29a086e83dfe25af54b6358e139a8b3c9ec761cc463ce287b04a9082c5e62dbc605d4c97f8ec358599a24c7830c890418

diff --git a/www-client/chromium/chromium-65.0.3298.3.ebuild b/www-client/chromium/chromium-65.0.3325.73.ebuild
similarity index 95%
rename from www-client/chromium/chromium-65.0.3298.3.ebuild
rename to www-client/chromium/chromium-65.0.3325.73.ebuild
index 33ba5d9ef0e..10515fc7b76 100644
--- a/www-client/chromium/chromium-65.0.3298.3.ebuild
+++ b/www-client/chromium/chromium-65.0.3325.73.ebuild
@@ -101,6 +101,7 @@ DEPEND="${COMMON_DEPEND}
 	sys-apps/hwids[usb(+)]
 	>=sys-devel/bison-2.4.3
 	sys-devel/flex
+	>=sys-devel/clang-5
 	virtual/pkgconfig
 	dev-vcs/git
 	$(python_gen_any_dep '
@@ -149,21 +150,24 @@ PATCHES=(
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-clang-r2.patch"
-	"${FILESDIR}/chromium-gcc-u2f.patch"
+	"${FILESDIR}/chromium-gn-r0.patch"
+	"${FILESDIR}/chromium-math.h-r0.patch"
+	"${FILESDIR}/chromium-clang-r3.patch"
+	"${FILESDIR}/chromium-stdint.patch"
 )
 
 pre_build_checks() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		local -x CPP="$(tc-getCXX) -E"
-		if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
-			# bugs: #601654
-			die "At least clang 3.9.1 is required"
-		fi
-		if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
-			# bugs: #535730, #525374, #518668, #600288, #627356
-			die "At least gcc 5.0 is required"
-		fi
-	fi
+	#if [[ ${MERGE_TYPE} != binary ]]; then
+	#	local -x CPP="$(tc-getCXX) -E"
+	#	if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+	#		# bugs: #601654
+	#		die "At least clang 3.9.1 is required"
+	#	fi
+	#	if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+	#		# bugs: #535730, #525374, #518668, #600288, #627356
+	#		die "At least gcc 5.0 is required"
+	#	fi
+	#fi
 
 	# Check build requirements, bug #541816 and bug #471810 .
 	CHECKREQS_MEMORY="3G"
@@ -262,7 +266,6 @@ src_prepare() {
 		third_party/libXNVCtrl
 		third_party/libaddressinput
 		third_party/libaom
-		third_party/libaom/source/libaom/third_party/x86inc
 		third_party/libjingle
 		third_party/libphonenumber
 		third_party/libsecret
@@ -271,6 +274,7 @@ src_prepare() {
 		third_party/libwebm
 		third_party/libxml/chromium
 		third_party/libyuv
+		third_party/llvm
 		third_party/lss
 		third_party/lzma_sdk
 		third_party/markupsafe
@@ -371,6 +375,32 @@ src_configure() {
 
 	local myconf_gn=""
 
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	if ! tc-is-clang; then
+		# Force clang since gcc is pretty broken at the moment.
+		CC=clang
+		CXX=clang++
+	fi
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
 	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
 	myconf_gn+=" is_debug=false"
 
@@ -431,7 +461,6 @@ src_configure() {
 	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
 	myconf_gn+=" enable_widevine=$(usex widevine true false)"
 	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gconf=false"
 	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
 	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
 	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
@@ -440,12 +469,6 @@ src_configure() {
 
 	myconf_gn+=" fieldtrial_testing_like_official_build=true"
 
-	if tc-is-clang; then
-		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-	else
-		myconf_gn+=" is_clang=false"
-	fi
-
 	# Never use bundled gold binary. Disable gold linker flags for now.
 	# Do not use bundled clang.
 	# Trying to use gold results in linker crash.
@@ -510,22 +533,8 @@ src_configure() {
 		fi
 	fi
 
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	# Define a custom toolchain for GN
-	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
-	if tc-is-cross-compiler; then
-		tc-export BUILD_{AR,CC,CXX,NM}
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
-		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
-	else
-		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-	fi
-
 	# https://bugs.gentoo.org/588596
-	append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+	#append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
 
 	# Bug 491582.
 	export TMPDIR="${WORKDIR}/temp"
@@ -559,6 +568,8 @@ src_compile() {
 	# Calling this here supports resumption via FEATURES=keepwork
 	python_setup
 
+	#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
 	# Build mksnapshot and pax-mark it.
 	local x
 	for x in mksnapshot v8_context_snapshot_generator; do
@@ -632,10 +643,8 @@ src_install() {
 	doins -r out/Release/locales
 	doins -r out/Release/resources
 
-	if [[ -d out/Release/swiftshader ]]; then
-		insinto "${CHROMIUM_HOME}/swiftshader"
-		doins out/Release/swiftshader/*.so
-	fi
+	insinto "${CHROMIUM_HOME}/swiftshader"
+	doins out/Release/swiftshader/*.so
 
 	# Install icons and desktop entry.
 	local branding size

diff --git a/www-client/chromium/files/chromium-clang-r3.patch b/www-client/chromium/files/chromium-clang-r3.patch
new file mode 100644
index 00000000000..3905a5f03ff
--- /dev/null
+++ b/www-client/chromium/files/chromium-clang-r3.patch
@@ -0,0 +1,11 @@
+--- a/device/u2f/u2f_ble_transaction.cc
++++ b/device/u2f/u2f_ble_transaction.cc
+@@ -131,7 +131,7 @@
+ 
+ void U2fBleTransaction::OnError() {
+   request_frame_.reset();
+-  request_cont_fragments_ = {};
++  request_cont_fragments_ = base::queue<U2fBleFrameContinuationFragment>();
+   response_frame_assembler_.reset();
+   std::move(callback_).Run(base::nullopt);
+ }

diff --git a/www-client/chromium/files/chromium-math.h-r0.patch b/www-client/chromium/files/chromium-math.h-r0.patch
new file mode 100644
index 00000000000..6c7c747053a
--- /dev/null
+++ b/www-client/chromium/files/chromium-math.h-r0.patch
@@ -0,0 +1,29 @@
+From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Sat, 27 Jan 2018 20:03:37 +0000
+Subject: [PATCH] Fix build with glibc 2.27
+
+BUG=806340
+TBR=hamelphi@chromium.org
+
+Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e
+Reviewed-on: https://chromium-review.googlesource.com/890059
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Philippe Hamel <hamelphi@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#532249}
+---
+
+diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc
+index 54d4dbd..ceedd8f 100644
+--- a/components/assist_ranker/ranker_example_util.cc
++++ b/components/assist_ranker/ranker_example_util.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <math.h>
++
+ #include "components/assist_ranker/ranker_example_util.h"
+ #include "base/bit_cast.h"
+ #include "base/format_macros.h"

diff --git a/www-client/chromium/files/chromium-stdint.patch b/www-client/chromium/files/chromium-stdint.patch
new file mode 100644
index 00000000000..877443954fa
--- /dev/null
+++ b/www-client/chromium/files/chromium-stdint.patch
@@ -0,0 +1,21 @@
+From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela@gmail.com>
+Date: Wed, 31 Jan 2018 18:57:07 +0000
+Subject: [PATCH] Add missing stdint include
+
+diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc
+index c2ca777ce90c..53cb3aab1576 100644
+--- a/chrome/browser/vr/sample_queue.cc
++++ b/chrome/browser/vr/sample_queue.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <stdint.h>
++
+ #include "chrome/browser/vr/sample_queue.h"
+ 
+ namespace vr {
+-- 
+2.16.2
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2018-01-14  2:32 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2018-01-14  2:32 UTC (permalink / raw
  To: gentoo-commits

commit:     6c3b7c4ea7c9df81989d27583719879f886a9f61
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 14 02:31:48 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jan 14 02:32:20 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c3b7c4e

www-client/chromium: dev channel bump (65.0.3315.3)

Package-Manager: Portage-2.3.19_p11, Repoman-2.3.6_p45

 www-client/chromium/Manifest                       |   2 +-
 ...0.3294.5.ebuild => chromium-65.0.3315.3.ebuild} |  24 +++--
 www-client/chromium/files/chromium-gcc-r0.patch    |  55 ++++++++++
 www-client/chromium/files/chromium-gn-r0.patch     |  33 ++++++
 www-client/chromium/files/chromium-vulkan-r0.patch | 120 +++++++++++++++++++++
 5 files changed, 224 insertions(+), 10 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index af9065743ea..f6efb007a6d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,5 +2,5 @@ DIST chromium-63.0.3239.108.tar.xz 534294640 BLAKE2B f0f87115e91d7a2aa331cbab054
 DIST chromium-63.0.3239.132.tar.xz 534286424 BLAKE2B 52658d4e8ff50bb8bdb1d397bc90a36e73407810198c4f28eea29bd0a4ad98bd4af947bdb8a5ecdbd73a248be8f375ba80c74c9a097aa57ef51eed1dc440ff95 SHA512 96e9ebdf1c3dc14a914bee50ced9547d5a94838ed602552379711ba67f00381173059ceb8a552efadd3175ceaa4cb6c15902fe582fc2eba7b7bdb8a19f47d1a0
 DIST chromium-64.0.3282.71.tar.xz 482134720 BLAKE2B 691e33c396fde798985af96168a7b7aa92e3c90bc542c6e84df1b41a74ae0f8cb7364edfcf148db48971dabd5b2af422d884a36528b5549ec2fd52f5e6d7f643 SHA512 90fff36292898e47a2c47940efadc98b7099cdfdd8df4659b5e1ba327e26230919dc1e9e21a4496207cf88f9976d048dd2f200424224f2bc25e7ee9ab2755f06
 DIST chromium-64.0.3282.85.tar.xz 482224568 BLAKE2B f8650721a2a30ea7f9c651efab58c54a225d7dda177c924c2ade132d488bb4b415e6155426384a005bafbcff5affbc99e142f45c85042cc6367e17c88c806f12 SHA512 52842b4f8304b4eb4e8fb25b586e0d03af5a5d0aebe2fc9ae517f97e05ee5ece3f71fd2b48a4f148fccec859b13c98a669ccbb4183d99ebd3bcf7e617ca241d0
-DIST chromium-65.0.3294.5.tar.xz 484687920 BLAKE2B 2d4d30ea83bfa0d5753eecd4ea735ec5d81097867b7c32c190853adee372c5032dac549c064fb22688555ef6231a3e2e43b274735883285f91a0a2d9c7a151ec SHA512 089bcc7eba7d5a2a964b5b6e94c7735653582cd6925325b9bdb2788bd4abb4b3cbc8c71f5c77004600864106a18da3fddda0adaa53ad54a96efe21498e45f23a
 DIST chromium-65.0.3298.3.tar.xz 485716108 BLAKE2B 185b3f683b2a732343fa5f98b24171f1d3cf2cf8eeb63c56efa7699f6b038d2a7eea4f9277b0b7ee2fdfa207a4f13edbaf2cc9a591a79ec4d058a131ce44366b SHA512 f1ed9a403036e87da7897f173eeb1aa71fe2650efc5ef5b98f814c7d4d9c879971597f9ded11324c86d6edc7f12f3bcf2786a6fb022e9697dbdb8eae086e18b7
+DIST chromium-65.0.3315.3.tar.xz 532475512 BLAKE2B 1a118ddd05f2b939ff0fd84f85e1c22789713351776d889bafb55ddb2b897b2921050a3df3b7d5e3224be84539d95dddce1a27a948c61b29c788ed9f8e194e02 SHA512 c7f0feda90c0df15058473d39482e9b9a9b3236dcb90ff8ba7ad53afde2fce4901b2cbd678d8470560cc0cb6e31c8d3caee9f0a9f100d82d95feacabcdb7f8ce

diff --git a/www-client/chromium/chromium-65.0.3294.5.ebuild b/www-client/chromium/chromium-65.0.3315.3.ebuild
similarity index 96%
rename from www-client/chromium/chromium-65.0.3294.5.ebuild
rename to www-client/chromium/chromium-65.0.3315.3.ebuild
index 92ee58d2d8e..b8011501a83 100644
--- a/www-client/chromium/chromium-65.0.3294.5.ebuild
+++ b/www-client/chromium/chromium-65.0.3315.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="6"
@@ -17,25 +17,27 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="component-build cups gnome-keyring +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
 COMMON_DEPEND="
+	app-accessibility/at-spi2-atk:2
 	app-arch/bzip2:=
 	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/atk
 	dev-libs/expat:=
 	dev-libs/glib:2
 	system-icu? ( >=dev-libs/icu-59:= )
 	>=dev-libs/libxml2-2.9.4-r3:=[icu]
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
-	>=dev-libs/nss-3.14.3:=
+	>=dev-libs/nss-3.26:=
 	>=dev-libs/re2-0.2016.05.01:=
 	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	>=media-libs/harfbuzz-1.5.0:=[icu(-)]
+	>=media-libs/harfbuzz-1.6.0:=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
@@ -147,12 +149,14 @@ PATCHES=(
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-clang-r2.patch"
+	"${FILESDIR}/chromium-gn-r0.patch"
+	"${FILESDIR}/chromium-vulkan-r0.patch"
+	"${FILESDIR}/chromium-gcc-r0.patch"
 )
 
 pre_build_checks() {
 	if [[ ${MERGE_TYPE} != binary ]]; then
 		local -x CPP="$(tc-getCXX) -E"
-		tc-is-clang || die "Build currently fails with gcc, please use clang"
 		if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
 			# bugs: #601654
 			die "At least clang 3.9.1 is required"
@@ -376,13 +380,16 @@ src_configure() {
 	# for development and debugging.
 	myconf_gn+=" is_component_build=$(usex component-build true false)"
 
+	# https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+	myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
 	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
 
 	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
 	myconf_gn+=" enable_nacl=false"
 
 	# Use system-provided libraries.
-	# TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
 	# TODO: use_system_hunspell (upstream changes needed).
 	# TODO: use_system_libsrtp (bug #459932).
 	# TODO: use_system_protobuf (bug #525560).
@@ -392,8 +399,8 @@ src_configure() {
 	# libevent: https://bugs.gentoo.org/593458
 	local gn_system_libraries=(
 		flac
-		# https://chromium.googlesource.com/chromium/src/+/4f1a60552748d150783655ee6f7b6f7084e3af95
-		#fontconfig
+		fontconfig
+		freetype
 		# Need harfbuzz_from_pkgconfig target
 		#harfbuzz-ng
 		libdrm
@@ -426,7 +433,6 @@ src_configure() {
 	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
 	myconf_gn+=" enable_widevine=$(usex widevine true false)"
 	myconf_gn+=" use_cups=$(usex cups true false)"
-	myconf_gn+=" use_gconf=false"
 	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
 	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
 	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"

diff --git a/www-client/chromium/files/chromium-gcc-r0.patch b/www-client/chromium/files/chromium-gcc-r0.patch
new file mode 100644
index 00000000000..b0aaae8de55
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc-r0.patch
@@ -0,0 +1,55 @@
+From 353219b1d808a8980af93eff5412ec2863557e35 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Wed, 10 Jan 2018 15:34:25 +0000
+Subject: [PATCH] GCC fixes: avoid symbol collision between Element::ComputedAccessibleNode and ComputedAccessibleNode.
+
+GCC at least fails to compile if the method has the same name of the class. To avoid
+this we rename the getter method to be prefixed with Get.
+
+Change-Id: I7f7ac2ecf0947718f72e78ccef019c3239c9b921
+Reviewed-on: https://chromium-review.googlesource.com/857716
+Reviewed-by: Daniel Cheng <dcheng@chromium.org>
+Reviewed-by: Hayato Ito <hayato@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#528322}
+---
+
+diff --git a/third_party/WebKit/Source/core/dom/Element.cpp b/third_party/WebKit/Source/core/dom/Element.cpp
+index 4f50b7d..d0fa7b1 100644
+--- a/third_party/WebKit/Source/core/dom/Element.cpp
++++ b/third_party/WebKit/Source/core/dom/Element.cpp
+@@ -1276,7 +1276,7 @@
+   return rare_data.EnsureAccessibleNode(this);
+ }
+ 
+-ComputedAccessibleNode* Element::ComputedAccessibleNode() {
++ComputedAccessibleNode* Element::GetComputedAccessibleNode() {
+   if (!RuntimeEnabledFeatures::AccessibilityObjectModelEnabled())
+     return nullptr;
+ 
+diff --git a/third_party/WebKit/Source/core/dom/Element.h b/third_party/WebKit/Source/core/dom/Element.h
+index 733596b..986e31a 100644
+--- a/third_party/WebKit/Source/core/dom/Element.h
++++ b/third_party/WebKit/Source/core/dom/Element.h
+@@ -295,7 +295,7 @@
+   AccessibleNode* ExistingAccessibleNode() const;
+   AccessibleNode* accessibleNode();
+ 
+-  ComputedAccessibleNode* ComputedAccessibleNode();
++  ComputedAccessibleNode* GetComputedAccessibleNode();
+ 
+   void DidMoveToNewDocument(Document&) override;
+ 
+diff --git a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
+index 642f55f..f6a8d8e 100644
+--- a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
++++ b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
+@@ -1110,7 +1110,7 @@
+     Element* element) {
+   DCHECK(element);
+   ComputedAccessibleNode* computed_accessible_node =
+-      element->ComputedAccessibleNode();
++      element->GetComputedAccessibleNode();
+   return computed_accessible_node->ComputePromiseProperty(script_state);
+ }
+ 

diff --git a/www-client/chromium/files/chromium-gn-r0.patch b/www-client/chromium/files/chromium-gn-r0.patch
new file mode 100644
index 00000000000..8f01e864ce5
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r0.patch
@@ -0,0 +1,33 @@
+From 47b25a1f83f8166c6cd5cf1f13bf6dcce125511a Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Tue, 9 Jan 2018 15:23:14 -0800
+Subject: [PATCH] Fix gn bootstrap
+
+BUG=800553
+R=dpranke@chromium.org
+
+Change-Id: I5c1cfeb7542bf990c59451aabcae7c120cbf09c0
+Reviewed-on: https://chromium-review.googlesource.com/858276
+Reviewed-by: Dirk Pranke <dpranke@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#528197}
+---
+ tools/gn/bootstrap/bootstrap.py | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index a0f32ad31df0..5376c6253a32 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -178,6 +178,11 @@ def build_gn_with_ninja_manually(tempdir, options):
+   root_gen_dir = os.path.join(tempdir, 'gen')
+   mkdir_p(root_gen_dir)
+ 
++  write_buildflag_header_manually(
++      root_gen_dir,
++      'base/synchronization/synchronization_flags.h',
++      {'ENABLE_MUTEX_PRIORITY_INHERITANCE': 'false'})
++
+   write_buildflag_header_manually(root_gen_dir, 'base/allocator/features.h',
+       {'USE_ALLOCATOR_SHIM': 'true' if is_linux else 'false'})
+ 

diff --git a/www-client/chromium/files/chromium-vulkan-r0.patch b/www-client/chromium/files/chromium-vulkan-r0.patch
new file mode 100644
index 00000000000..4553bb76667
--- /dev/null
+++ b/www-client/chromium/files/chromium-vulkan-r0.patch
@@ -0,0 +1,120 @@
+From 949b4f07fd1ef5b208136fe38327c28c95f18928 Mon Sep 17 00:00:00 2001
+From: Jamie Madill <jmadill@chromium.org>
+Date: Mon, 08 Jan 2018 11:15:38 -0500
+Subject: [PATCH] Vulkan: Allow for no .git directory in build.
+
+The SPIRV-Tools 'external revision generate' script is coded such that
+it assumes a .git folder is present. This causes a problem for the
+tarball build. We can fix this by using the same tooling we use for
+ANGLE's commit id script to check if the .git directory is present
+before running the generator. If it is missing, we insert a hard-coded
+dummy header. Also use the 'DEPS' file as a placeholder for .git/HEAD
+to check if the current revision needs updating.
+
+Bug: chromium:799620
+Bug: angleproject:2237
+Change-Id: Icea8e9c66f1600df7dca2aaa45fe449f687f5b55
+Reviewed-on: https://chromium-review.googlesource.com/854255
+Reviewed-by: Jamie Madill <jmadill@chromium.org>
+Commit-Queue: Jamie Madill <jmadill@chromium.org>
+---
+
+diff --git a/third_party/angle/src/commit_id.py b/third_party/angle/src/commit_id.py
+index bbdb810..57651a5 100644
+--- a/third_party/angle/src/commit_id.py
++++ b/third_party/angle/src/commit_id.py
+@@ -23,6 +23,9 @@
+         print("0")
+     sys.exit(0)
+ 
++if len(sys.argv) < 4 or operation != 'gen':
++    sys.exit(usage)
++
+ output_file = sys.argv[3]
+ commit_id_size = 12
+ 
+diff --git a/third_party/angle/src/vulkan_support/BUILD.gn b/third_party/angle/src/vulkan_support/BUILD.gn
+index fe61826..24f5a3a 100644
+--- a/third_party/angle/src/vulkan_support/BUILD.gn
++++ b/third_party/angle/src/vulkan_support/BUILD.gn
+@@ -145,21 +145,40 @@
+   }
+ }
+ 
+-# This could be generalized to a foreach if other revisions are added.
+-action("spirv_tools_external_revision_generate") {
+-  script = "$vulkan_layers_dir/scripts/external_revision_generator.py"
+-  inputs = [
+-    "$spirv_tools_dir/.git/HEAD",
+-    "$spirv_tools_dir/.git/index",
+-  ]
+-  outputs = [
+-    "$vulkan_gen_dir/spirv_tools_commit_id.h",
+-  ]
+-  args = [
+-    "$raw_spirv_tools_dir",
+-    "SPIRV_TOOLS_COMMIT_ID",
+-    "$raw_vulkan_gen_dir/spirv_tools_commit_id.h",
+-  ]
++spirv_git_is_present = exec_script("$angle_root/src/commit_id.py",
++                                   [
++                                     "check",
++                                     raw_spirv_tools_dir,
++                                   ],
++                                   "value")
++
++spirv_use_commit_id = spirv_git_is_present == 1
++
++if (spirv_use_commit_id) {
++  # This could be generalized to a foreach if other revisions are added.
++  action("spirv_tools_external_revision_generate") {
++    script = "$vulkan_layers_dir/scripts/external_revision_generator.py"
++    inputs = [
++      "$angle_root/DEPS",
++    ]
++    outputs = [
++      "$vulkan_gen_dir/spirv_tools_commit_id.h",
++    ]
++    args = [
++      "$raw_spirv_tools_dir",
++      "SPIRV_TOOLS_COMMIT_ID",
++      "$raw_vulkan_gen_dir/spirv_tools_commit_id.h",
++    ]
++  }
++} else {
++  copy("spirv_tools_external_revision_generate") {
++    sources = [
++      "dummy_spirv_tools_commit_id.h",
++    ]
++    outputs = [
++      "$vulkan_gen_dir/spirv_tools_commit_id.h",
++    ]
++  }
+ }
+ 
+ config("vulkan_generate_helper_files_config") {
+@@ -864,7 +883,7 @@
+       sources += [ "$vulkan_layers_dir/layers/VkLayer_$name.def" ]
+     }
+     if (is_linux) {
+-      ldflags =  [ "-Wl,-Bsymbolic,--exclude-libs,ALL" ]
++      ldflags = [ "-Wl,-Bsymbolic,--exclude-libs,ALL" ]
+     }
+   }
+ }
+diff --git a/third_party/angle/src/vulkan_support/dummy_spirv_tools_commit_id.h b/third_party/angle/src/vulkan_support/dummy_spirv_tools_commit_id.h
+new file mode 100644
+index 0000000..e1793bd
+--- /dev/null
++++ b/third_party/angle/src/vulkan_support/dummy_spirv_tools_commit_id.h
+@@ -0,0 +1,10 @@
++//
++// Copyright 2018 The ANGLE Project Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++//
++// This file is a dummy file to enable building SPIRV tools when git is absent.
++
++#pragma once
++
++#define SPIRV_TOOLS_COMMIT_ID "0000000000000000000000000000000000000000"


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-12-09 16:00 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-12-09 16:00 UTC (permalink / raw
  To: gentoo-commits

commit:     9b71cea30d2c8cc87b672238ff90f97b2a919ecf
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  9 15:57:53 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Dec  9 16:00:22 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b71cea3

www-client/chromium: dev channel bump (64.0.3282.14)

Package-Manager: Portage-2.3.15, Repoman-2.3.6_p7

 www-client/chromium/Manifest                           |  2 +-
 ...64.0.3253.3.ebuild => chromium-64.0.3282.14.ebuild} | 18 +++++++++++-------
 www-client/chromium/files/chromium-memcpy-r0.patch     | 11 +++++++++++
 3 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 76f06a2f480..400ca74383f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,5 +2,5 @@ DIST chromium-62.0.3202.89.tar.xz 517100784 BLAKE2B c257a554c12bba7b38c85de41e97
 DIST chromium-62.0.3202.94.tar.xz 517173548 BLAKE2B 1ec2cadd6581ea14566a0ae9803aecbf176712379a5d56e9f970e7cf5de06d51e2812247c09e96fcfcd3d8f671cead224089479855379be72b591455c76b3c77 SHA512 09e05aec663de94633fb7b658154a5b0146159dea0f434ef412405530274daefc5e554be8120653b840d2b55f5e35202be1a653ece7796d00956df58bc7608ad
 DIST chromium-63.0.3239.70.tar.xz 534258328 BLAKE2B 8e6d846333bfea5e28f04cf2f856a295f0a179bb5d8fa8777d9b4ec8808814b79475a10a4c22dfd7bd606e7cdd99e15a32eb0aae7027a42f4526a05942f6ec85 SHA512 fdc5f433e3520cd053a48dfb107b33da6d844429169047e132663435708ed8fbbabf6949290aca0ff15eecd66fc470c9218bb9fc0376811c7684c8c67fdded6c
 DIST chromium-63.0.3239.84.tar.xz 534280828 BLAKE2B 08437f625a97ea49f274140a0444dc5531e7a178a99d04592194158817169f4b9c42769dd76b5df624b5189705b17b9b049f61c2474b411ee520439213f12513 SHA512 049a09a821606ff7f52fa8f41d34f0e67c02a20a346841dfcbb06c4138c60a62240f33d9255662260251e5be913a14b004cb2a12873d2ed34751be2b1efb3f34
-DIST chromium-64.0.3253.3.tar.xz 567976356 BLAKE2B 2dbef0c2b3454b52a39ec03c3af618108e47bbefd63b4e3addbb64d2526778e14299a8597246876d30aed7e37ce8b6e0b227915e2d625202353594a9eb2032d4 SHA512 fd0307337eec5513d73c14a0d8bf494d87e1a658c48585afbf7d0c08314297bf28825ee99bbeab95ccaae8a0e5b1536794c3b4c94f996ba0a4a217cdbc224267
 DIST chromium-64.0.3260.2.tar.xz 568772508 BLAKE2B 8aee43fded3504c5a64b537d8845096a4412353c16ae24b405c10b20b0e49e926bf8db531fa03390cc608c39e5cb09a2b2aab659ceda9320bf8e1f69d75e8bd2 SHA512 f7003976c8c5449569e0017fae5e1f2f7150a297a4bb4ad2a9bafe69e9fb4e931c76efeecbe07cc11a00af5a49591655734f21892e69e3ac523fc4d3faa2795f
+DIST chromium-64.0.3282.14.tar.xz 482211216 BLAKE2B 0ffc69478719903e39998fd6f908883dadcb32580a64b1e8a93b270dfb221cb89b674c7e288649de24e468a56da78cdbf35af9693cd24f5cba158789db609d30 SHA512 75b851be4bf4814e91a4e7a036b7aa78d0c76e138605a42ebe9ce8d2017a1f95eb2dc67bd73f4fa911ce2a28cec769a699f52c98c2b1b3a037321af517692c28

diff --git a/www-client/chromium/chromium-64.0.3253.3.ebuild b/www-client/chromium/chromium-64.0.3282.14.ebuild
similarity index 98%
rename from www-client/chromium/chromium-64.0.3253.3.ebuild
rename to www-client/chromium/chromium-64.0.3282.14.ebuild
index 3961a106c12..a03199f2130 100644
--- a/www-client/chromium/chromium-64.0.3253.3.ebuild
+++ b/www-client/chromium/chromium-64.0.3282.14.ebuild
@@ -145,9 +145,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-widevine-r1.patch"
 	"${FILESDIR}/chromium-FORTIFY_SOURCE-r2.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
-	"${FILESDIR}/chromium-math-includes-r0.patch"
-	"${FILESDIR}/chromium-${PV}-gpu_lists_version.h.patch"
-	"${FILESDIR}/chromium-gcc5-r5.patch"
+	"${FILESDIR}/chromium-memcpy-r0.patch"
 )
 
 pre_build_checks() {
@@ -184,13 +182,13 @@ pkg_pretend() {
 pkg_setup() {
 	pre_build_checks
 
-	# Make sure the build system will use the right python, bug #344367.
-	python-any-r1_pkg_setup
-
 	chromium_suid_sandbox_check_kernel_config
 }
 
 src_prepare() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
 	default
 
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die
@@ -220,6 +218,7 @@ src_prepare() {
 		third_party/angle/src/third_party/trace_event
 		third_party/blink
 		third_party/boringssl
+		third_party/boringssl/src/third_party/fiat
 		third_party/breakpad
 		third_party/breakpad/breakpad/src/third_party/curl
 		third_party/brotli
@@ -235,7 +234,6 @@ src_prepare() {
 		third_party/catapult/tracing/third_party/oboe
 		third_party/catapult/tracing/third_party/pako
 		third_party/ced
-		third_party/cld_2
 		third_party/cld_3
 		third_party/crc32c
 		third_party/cros_system_api
@@ -360,6 +358,9 @@ bootstrap_gn() {
 }
 
 src_configure() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
 	local myconf_gn=""
 
 	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
@@ -539,6 +540,9 @@ src_configure() {
 }
 
 src_compile() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
 	local ninja_targets="chrome chromedriver"
 	if use suid; then
 		ninja_targets+=" chrome_sandbox"

diff --git a/www-client/chromium/files/chromium-memcpy-r0.patch b/www-client/chromium/files/chromium-memcpy-r0.patch
new file mode 100644
index 00000000000..618a2e6e0dc
--- /dev/null
+++ b/www-client/chromium/files/chromium-memcpy-r0.patch
@@ -0,0 +1,11 @@
+--- a/cc/paint/raw_memory_transfer_cache_entry.cc
++++ b/cc/paint/raw_memory_transfer_cache_entry.cc
+@@ -4,6 +4,8 @@
+ 
+ #include "cc/paint/raw_memory_transfer_cache_entry.h"
+ 
++#include <cstring>
++
+ namespace cc {
+ 
+ ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry(


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-11-04 22:17 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-11-04 22:17 UTC (permalink / raw
  To: gentoo-commits

commit:     c3dcda24f479c1b8ddc1183cf76f70e6e34cec15
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  4 22:16:21 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Nov  4 22:17:09 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3dcda24

www-client/chromium: dev channel bump (64.0.3253.3)

Package-Manager: Portage-2.3.13_p1, Repoman-2.3.3_p81

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-64.0.3253.3.ebuild    | 657 +++++++++++++++++++++
 .../chromium-64.0.3253.3-gpu_lists_version.h.patch |  11 +
 .../chromium/files/chromium-math-includes-r0.patch |  31 +
 4 files changed, 700 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f8c252bc881..e967e14dfe8 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-62.0.3202.75.tar.xz 517136048 SHA256 49cdfe457bcb941b56c13a75bbe2ff394fcb5baa8a49c9b470835fad60dd904c SHA512 1108ac0b383ac654b5b6fb42faee76621d3c476fcf1b6469f498023be7272668f46f7081f74b2a4079ff45dc3c77b225cea7758a11677b0ba5a478e1d8bac87b WHIRLPOOL 0bcb844ec55469ff293672e075dc8bbf4b93809048fc8e5235334dea06e087c91286ba023831ac5254b27241146a06fd33360ef540f6a37cd7092763cc55ab09
 DIST chromium-63.0.3230.0.tar.xz 558852780 SHA256 97daa90a6f0ba7dc49a168cbf9c40896e621fb0352ab6de1d2fa428bb63ab64a SHA512 b0aa9a42df303bc7ff412dec30b3bfed292ae39cb5e0f705f28eeb7a60d6125b9cecef7e3ab7798b2ca091ec71215fa5639def6b867c9fdb7a9a85c9b42323b3 WHIRLPOOL 1b9e346018c7056fce3f844d37b69e98529c9dc3ae04bdf07378c7de568d295814a42aa133c463a3be8d22a39b5f62ec69f679ea5dca3fe7e37a15215932c794
 DIST chromium-63.0.3239.30.tar.xz 561111084 SHA256 ab210326029213eda0290db71f6ddbdf5c42e2d94c3461dee094637a34571219 SHA512 b6b89e3464b4dbef54cfe5971255bf4cf96b8c984a2a82d7f4f66e3aecaf5a0a3c72ad827127223b3448c2c2ffad3fe1b1546266ec9544838b758ac3d9b454c8 WHIRLPOOL 1a673b4060cc757e190ea376bb0cff2e8222c91f30a3627ba39b3fed0c534bced213fa3bba06614aacf2814996fb949bb55bd06d549e74f70af7002aa5796ee7
+DIST chromium-64.0.3253.3.tar.xz 567976356 SHA256 6abe5b8ea147953c9d8bae72e52b4984f1a0f718e97bc578f0250055815ec4cd SHA512 fd0307337eec5513d73c14a0d8bf494d87e1a658c48585afbf7d0c08314297bf28825ee99bbeab95ccaae8a0e5b1536794c3b4c94f996ba0a4a217cdbc224267 WHIRLPOOL 78a44979475fda90087a164a5fa7e082576d344a103536c4c62cc4f1e4d3b6a4681005b9165ff020aff179bd3b58195c518c1fa32fb5f1e7b95548c5ae28e9cb

diff --git a/www-client/chromium/chromium-64.0.3253.3.ebuild b/www-client/chromium/chromium-64.0.3253.3.ebuild
new file mode 100644
index 00000000000..06dc23d68c9
--- /dev/null
+++ b/www-client/chromium/chromium-64.0.3253.3.ebuild
@@ -0,0 +1,657 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="component-build cups gnome-keyring +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/expat:=
+	dev-libs/glib:2
+	system-icu? ( >=dev-libs/icu-59:= )
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-1.5.0:=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12
+		media-libs/opus:=
+	)
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	>=dev-util/ninja-1.7.2
+	>=net-libs/nodejs-4.6.1
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	dev-vcs/git
+	$(python_gen_any_dep '
+		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+		dev-python/html5lib[${PYTHON_USEDEP}]
+		dev-python/simplejson[${PYTHON_USEDEP}]
+	')
+"
+
+# Keep this in sync with the python_gen_any_dep call.
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-widevine-r1.patch"
+	"${FILESDIR}/chromium-FORTIFY_SOURCE-r2.patch"
+	"${FILESDIR}/chromium-webrtc-r0.patch"
+	"${FILESDIR}/chromium-math-includes-r0.patch"
+	"${FILESDIR}/chromium-${PV}-gpu_lists_version.h.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+			# bugs: #601654
+			die "At least clang 3.9.1 is required"
+		fi
+		if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+			# bugs: #535730, #525374, #518668, #600288, #627356
+			die "At least gcc 5.0 is required"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	eshopts_pop
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		third_party/WebKit
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/smhasher
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/trace_event
+		third_party/blink
+		third_party/boringssl
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
+		third_party/catapult/third_party/polymer
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
+		third_party/ced
+		third_party/cld_2
+		third_party/cld_3
+		third_party/crc32c
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang-angle
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/metrics_proto
+		third_party/modp_b64
+		third_party/mt19937ar
+		third_party/node
+		third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+		third_party/openmax_dl
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/build
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/qcms
+		third_party/sfntly
+		third_party/skia
+		third_party/skia/third_party/gif
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/spirv-tools-angle
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/vulkan-validation-layers
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg third_party/opus )
+	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+bootstrap_gn() {
+	if tc-is-cross-compiler; then
+		local -x AR=${BUILD_AR}
+		local -x CC=${BUILD_CC}
+		local -x CXX=${BUILD_CXX}
+		local -x NM=${BUILD_NM}
+		local -x CFLAGS=${BUILD_CFLAGS}
+		local -x CXXFLAGS=${BUILD_CXXFLAGS}
+		local -x LDFLAGS=${BUILD_LDFLAGS}
+	fi
+	einfo "Building GN..."
+	set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean
+	echo "$@"
+	"$@" || die
+}
+
+src_configure() {
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		openh264
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg opus )
+	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gconf=false"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		myconf_gn+=" target_cpu=\"x64\""
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		myconf_gn+=" target_cpu=\"x86\""
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		myconf_gn+=" target_cpu=\"arm64\""
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		myconf_gn+=" target_cpu=\"arm\""
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+	if tc-is-cross-compiler; then
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+	else
+		myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+	fi
+
+	# https://bugs.gentoo.org/588596
+	append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	bootstrap_gn
+
+	einfo "Configuring Chromium..."
+	set -- out/Release/gn gen --args="${myconf_gn}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	local ninja_targets="chrome chromedriver"
+	if use suid; then
+		ninja_targets+=" chrome_sandbox"
+	fi
+
+	# Build mksnapshot and pax-mark it.
+	if tc-is-cross-compiler; then
+		eninja -C out/Release host/mksnapshot || die
+		pax-mark m out/Release/host/mksnapshot
+	else
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	if use widevine; then
+		# These will be provided by chrome-binary-plugins
+		rm out/Release/libwidevinecdm*.so || die
+	fi
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	insinto "${CHROMIUM_HOME}/swiftshader"
+	doins out/Release/swiftshader/*.so
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-64.0.3253.3-gpu_lists_version.h.patch b/www-client/chromium/files/chromium-64.0.3253.3-gpu_lists_version.h.patch
new file mode 100644
index 00000000000..c961cb6eaf5
--- /dev/null
+++ b/www-client/chromium/files/chromium-64.0.3253.3-gpu_lists_version.h.patch
@@ -0,0 +1,11 @@
+--- /dev/null
++++ a/gpu/config/gpu_lists_version.h
+@@ -0,0 +1,8 @@
++/* Generated by lastchange.py, do not edit.*/
++
++#ifndef GPU_CONFIG_GPU_LISTS_VERSION_H_
++#define GPU_CONFIG_GPU_LISTS_VERSION_H_
++
++#define GPU_LISTS_VERSION "0a025c20792ce26a88112a00c936f463f190d394"
++
++#endif  // GPU_CONFIG_GPU_LISTS_VERSION_H_

diff --git a/www-client/chromium/files/chromium-math-includes-r0.patch b/www-client/chromium/files/chromium-math-includes-r0.patch
new file mode 100644
index 00000000000..4d2cd324c2a
--- /dev/null
+++ b/www-client/chromium/files/chromium-math-includes-r0.patch
@@ -0,0 +1,31 @@
+From c6cb5c835e12ffa75e26eaefeef631d125c4e04d Mon Sep 17 00:00:00 2001
+From: Philippe Hamel <hamelphi@chromium.org>
+Date: Wed, 1 Nov 2017 18:41:59 +0000
+Subject: [PATCH] Fix GenericLogisticRegressionInference includes.
+
+Bug: 759161
+Change-Id: I199c7604eb38fc5a1b8107710eeaa27f8e71b299
+Reviewed-on: https://chromium-review.googlesource.com/743690
+Commit-Queue: Philippe Hamel <hamelphi@chromium.org>
+Reviewed-by: Roger McFarlane <rogerm@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#513195}
+---
+ .../machine_intelligence/generic_logistic_regression_inference.cc       | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/components/machine_intelligence/generic_logistic_regression_inference.cc b/components/machine_intelligence/generic_logistic_regression_inference.cc
+index cf6420b85113..d085f6d1f537 100644
+--- a/components/machine_intelligence/generic_logistic_regression_inference.cc
++++ b/components/machine_intelligence/generic_logistic_regression_inference.cc
+@@ -4,6 +4,8 @@
+ 
+ #include "components/machine_intelligence/generic_logistic_regression_inference.h"
+ 
++#include <cmath>
++
+ #include "base/logging.h"
+ #include "components/machine_intelligence/ranker_example_util.h"
+ 
+-- 
+2.15.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-11-04 14:53 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-11-04 14:53 UTC (permalink / raw
  To: gentoo-commits

commit:     b3838ab55a3424aa163316503389b36d7e7a8c37
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  4 14:51:38 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Nov  4 14:52:49 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b3838ab5

www-client/chromium: beta channel bump (63.0.3239.30)

Closes: https://bugs.gentoo.org/633452
Closes: https://bugs.gentoo.org/633858
Package-Manager: Portage-2.3.13_p1, Repoman-2.3.3_p81

 www-client/chromium/Manifest                       |  2 +-
 ....3223.8.ebuild => chromium-63.0.3239.30.ebuild} | 27 +++++++++--------
 www-client/chromium/files/chromium-webrtc-r0.patch | 34 ++++++++++++++++++++++
 3 files changed, 50 insertions(+), 13 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4f0f0fd36aa..f8c252bc881 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-62.0.3202.75.tar.xz 517136048 SHA256 49cdfe457bcb941b56c13a75bbe2ff394fcb5baa8a49c9b470835fad60dd904c SHA512 1108ac0b383ac654b5b6fb42faee76621d3c476fcf1b6469f498023be7272668f46f7081f74b2a4079ff45dc3c77b225cea7758a11677b0ba5a478e1d8bac87b WHIRLPOOL 0bcb844ec55469ff293672e075dc8bbf4b93809048fc8e5235334dea06e087c91286ba023831ac5254b27241146a06fd33360ef540f6a37cd7092763cc55ab09
-DIST chromium-63.0.3223.8.tar.xz 541587956 SHA256 bced462e16a28ff0a3896539e6c7f72e76cb7ba16640a6cac9a533ec4b8f5ee5 SHA512 6ca0efac47adee14b04cba312397b80aeaed1b0ce9bee427c508c44636ab9a1668f743bd3939d83417129d7e83c38c2f95b72c502c6d834056cf7477ef8b4de8 WHIRLPOOL b9f526eec3626b93f2541461b9b3a79bef283de62d99e30c209859e686db8e09ed327f90d0811703d699e9813cb86e0002be93fa42372e65afef1c96b8c91d35
 DIST chromium-63.0.3230.0.tar.xz 558852780 SHA256 97daa90a6f0ba7dc49a168cbf9c40896e621fb0352ab6de1d2fa428bb63ab64a SHA512 b0aa9a42df303bc7ff412dec30b3bfed292ae39cb5e0f705f28eeb7a60d6125b9cecef7e3ab7798b2ca091ec71215fa5639def6b867c9fdb7a9a85c9b42323b3 WHIRLPOOL 1b9e346018c7056fce3f844d37b69e98529c9dc3ae04bdf07378c7de568d295814a42aa133c463a3be8d22a39b5f62ec69f679ea5dca3fe7e37a15215932c794
+DIST chromium-63.0.3239.30.tar.xz 561111084 SHA256 ab210326029213eda0290db71f6ddbdf5c42e2d94c3461dee094637a34571219 SHA512 b6b89e3464b4dbef54cfe5971255bf4cf96b8c984a2a82d7f4f66e3aecaf5a0a3c72ad827127223b3448c2c2ffad3fe1b1546266ec9544838b758ac3d9b454c8 WHIRLPOOL 1a673b4060cc757e190ea376bb0cff2e8222c91f30a3627ba39b3fed0c534bced213fa3bba06614aacf2814996fb949bb55bd06d549e74f70af7002aa5796ee7

diff --git a/www-client/chromium/chromium-63.0.3223.8.ebuild b/www-client/chromium/chromium-63.0.3239.30.ebuild
similarity index 96%
rename from www-client/chromium/chromium-63.0.3223.8.ebuild
rename to www-client/chromium/chromium-63.0.3239.30.ebuild
index 809c36dc7ab..6bb4d63531b 100644
--- a/www-client/chromium/chromium-63.0.3223.8.ebuild
+++ b/www-client/chromium/chromium-63.0.3239.30.ebuild
@@ -26,7 +26,7 @@ COMMON_DEPEND="
 	dev-libs/expat:=
 	dev-libs/glib:2
 	system-icu? ( >=dev-libs/icu-59:= )
-	>=dev-libs/libxml2-2.9.5:=[icu]
+	>=dev-libs/libxml2-2.9.4-r3:=[icu]
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.14.3:=
@@ -35,7 +35,7 @@ COMMON_DEPEND="
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	>=media-libs/harfbuzz-1.4.2:=[icu(-)]
+	>=media-libs/harfbuzz-1.5.0:=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
@@ -145,7 +145,8 @@ PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
 	"${FILESDIR}/${PN}-gcc5-r4.patch"
-	"${FILESDIR}/${PN}-gn-bootstrap-r20.patch"
+	"${FILESDIR}/${PN}-clang-r1.patch"
+	"${FILESDIR}/${PN}-webrtc-r0.patch"
 )
 
 pre_build_checks() {
@@ -204,7 +205,6 @@ src_prepare() {
 		base/third_party/valgrind
 		base/third_party/xdg_mime
 		base/third_party/xdg_user_dirs
-		breakpad/src/third_party/curl
 		chrome/third_party/mozilla_security_manager
 		courgette/third_party
 		net/third_party/mozilla_security_manager
@@ -213,24 +213,26 @@ src_prepare() {
 		third_party/analytics
 		third_party/angle
 		third_party/angle/src/common/third_party/base
-		third_party/angle/src/common/third_party/murmurhash
+		third_party/angle/src/common/third_party/smhasher
 		third_party/angle/src/third_party/compiler
 		third_party/angle/src/third_party/libXNVCtrl
 		third_party/angle/src/third_party/trace_event
 		third_party/blink
 		third_party/boringssl
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
 		third_party/brotli
 		third_party/cacheinvalidation
 		third_party/catapult
+		third_party/catapult/common/py_vulcanize/third_party/rcssmin
+		third_party/catapult/common/py_vulcanize/third_party/rjsmin
 		third_party/catapult/third_party/polymer
-		third_party/catapult/third_party/py_vulcanize
-		third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
-		third_party/catapult/third_party/py_vulcanize/third_party/rjsmin
 		third_party/catapult/tracing/third_party/d3
 		third_party/catapult/tracing/third_party/gl-matrix
 		third_party/catapult/tracing/third_party/jszip
 		third_party/catapult/tracing/third_party/mannwhitneyu
 		third_party/catapult/tracing/third_party/oboe
+		third_party/catapult/tracing/third_party/pako
 		third_party/ced
 		third_party/cld_2
 		third_party/cld_3
@@ -381,7 +383,8 @@ src_configure() {
 	# libevent: https://bugs.gentoo.org/593458
 	local gn_system_libraries=(
 		flac
-		harfbuzz-ng
+		# Need harfbuzz_from_pkgconfig target
+		#harfbuzz-ng
 		libdrm
 		libjpeg
 		libpng
@@ -405,6 +408,9 @@ src_configure() {
 	fi
 	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
 
+	# See dependency logic in third_party/BUILD.gn
+	myconf_gn+=" use_system_harfbuzz=true"
+
 	# Optional dependencies.
 	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
 	myconf_gn+=" enable_widevine=$(usex widevine true false)"
@@ -604,9 +610,6 @@ src_install() {
 	insinto "${CHROMIUM_HOME}/swiftshader"
 	doins out/Release/swiftshader/*.so
 
-	newman out/Release/chrome.1 chromium.1
-	newman out/Release/chrome.1 chromium-browser.1
-
 	# Install icons and desktop entry.
 	local branding size
 	for size in 16 22 24 32 48 64 128 256 ; do

diff --git a/www-client/chromium/files/chromium-webrtc-r0.patch b/www-client/chromium/files/chromium-webrtc-r0.patch
new file mode 100644
index 00000000000..e14b185acb9
--- /dev/null
+++ b/www-client/chromium/files/chromium-webrtc-r0.patch
@@ -0,0 +1,34 @@
+From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Fri, 13 Oct 2017 15:49:32 +0200
+Subject: [PATCH] IWYU: Include math.h for round(3).
+
+math.h was being implicitly included, which can break the build with
+alternative libc implementations.
+
+Bug: None
+Change-Id: I969b320b65d0f44abb33d3e1036cfbcb859a4952
+Reviewed-on: https://webrtc-review.googlesource.com/9384
+Reviewed-by: Tommi <tommi@webrtc.org>
+Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#20292}
+---
+ p2p/base/port.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/p2p/base/port.cc b/p2p/base/port.cc
+index a1b478d11..81aa0aadb 100644
+--- a/third_party/webrtc/p2p/base/port.cc
++++ b/third_party/webrtc/p2p/base/port.cc
+@@ -10,6 +10,8 @@
+ 
+ #include "p2p/base/port.h"
+ 
++#include <math.h>
++
+ #include <algorithm>
+ #include <vector>
+ 
+-- 
+2.15.0.rc2
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-10-04 13:50 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-10-04 13:50 UTC (permalink / raw
  To: gentoo-commits

commit:     d72547dd30547b9d938ed5816df52ca6bf043541
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  4 13:50:41 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Oct  4 13:50:41 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d72547dd

www-client/chromium: dev channel bump (63.0.3230.0)

Package-Manager: Portage-2.3.8, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ...0.3218.0.ebuild => chromium-63.0.3230.0.ebuild} | 22 ++++++++---------
 www-client/chromium/files/chromium-clang-r1.patch  | 21 ++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r21.patch | 28 ++++++++++++++++++++++
 4 files changed, 61 insertions(+), 12 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 30603be5421..212276b6793 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-61.0.3163.100.tar.xz 556305252 SHA256 4135968cac6623c1d2b224494600cd274098cce41c298f8c3908b354a34c281b SHA512 4dfd3a493ceb7c605eeab6f387541273d529e8b935a6104927e34836469aedcfcbb4a1154591585621d5c2e842e68701d32328acba842f840a20498822165f78 WHIRLPOOL a02443375a59073ad350665a46c978b67e1026078822b3a34f9fb1099a1bc62933ec25c6135c107388ebf21362d0e6a04e394a60275dd1e30b31c145ee7f93e8
 DIST chromium-62.0.3202.18.tar.xz 517017924 SHA256 38d76599b999e3636c3eb60888acd34ea8a8d7e24e6dba21ec7ae39d2045d47f SHA512 7017bc7f17af969fc460f0001ae935dca48253d2dea65d5375a126434549bb7ce748518c716b6d06aa6ae357577ca08ec73c7fe0e11b606595c15768388bab87 WHIRLPOOL 305ca8e55bbd2d87c1b6444ed2580b2c6992c2c5072b0abc9751190e07e0a57bb2180d751aaf5a248beea8467c6888f681c1d76a0a7cfb6ccfc2ae5d9669f2ec
 DIST chromium-62.0.3202.9.tar.xz 516991748 SHA256 d801d431417736098ee4bf4ecaea642f5fe6101ea88a4cf7b06a04da58331199 SHA512 26e253dc0b779408116e4fbcc41e306afbd34687a9cb9f748d49381cec4ace4a094630aec5be14878584051696c261052ce7b07fd75b9680217165afd3909fe9 WHIRLPOOL 82645f14dd1a19faecc8b8af3fcfef03b2e14cb04c0ad8653bf9e11ef84169ecae7d8fdcbed1a84da0433f621dbbb331319670bb9cb0723759df617dd46e4617
-DIST chromium-63.0.3218.0.tar.xz 544430944 SHA256 36e7e6837cd77848e13e6558b9c7740f362a4f28869d9bfda2cf19615acca7fd SHA512 a55bb2475c8423e21d0448b4fb7a2af73811b29e2fb67d11febf1611b549363cdd6b68ac50c1397a934bedfefaf51e55d8721ad58593ca0d9b6c4b7310376e1b WHIRLPOOL 94ec530900797cd5a464393e3a8f172621e7687d71a9608b6551f1ec11b9658ea801d8af3478be5d7ddf1a7d2f3d0182ccf4196f8fabb6a5cd2a051a097c89ac
 DIST chromium-63.0.3223.8.tar.xz 541587956 SHA256 bced462e16a28ff0a3896539e6c7f72e76cb7ba16640a6cac9a533ec4b8f5ee5 SHA512 6ca0efac47adee14b04cba312397b80aeaed1b0ce9bee427c508c44636ab9a1668f743bd3939d83417129d7e83c38c2f95b72c502c6d834056cf7477ef8b4de8 WHIRLPOOL b9f526eec3626b93f2541461b9b3a79bef283de62d99e30c209859e686db8e09ed327f90d0811703d699e9813cb86e0002be93fa42372e65afef1c96b8c91d35
+DIST chromium-63.0.3230.0.tar.xz 558852780 SHA256 97daa90a6f0ba7dc49a168cbf9c40896e621fb0352ab6de1d2fa428bb63ab64a SHA512 b0aa9a42df303bc7ff412dec30b3bfed292ae39cb5e0f705f28eeb7a60d6125b9cecef7e3ab7798b2ca091ec71215fa5639def6b867c9fdb7a9a85c9b42323b3 WHIRLPOOL 1b9e346018c7056fce3f844d37b69e98529c9dc3ae04bdf07378c7de568d295814a42aa133c463a3be8d22a39b5f62ec69f679ea5dca3fe7e37a15215932c794

diff --git a/www-client/chromium/chromium-63.0.3218.0.ebuild b/www-client/chromium/chromium-63.0.3230.0.ebuild
similarity index 97%
rename from www-client/chromium/chromium-63.0.3218.0.ebuild
rename to www-client/chromium/chromium-63.0.3230.0.ebuild
index f43fe5c6b6e..eb1549c1ea9 100644
--- a/www-client/chromium/chromium-63.0.3218.0.ebuild
+++ b/www-client/chromium/chromium-63.0.3230.0.ebuild
@@ -144,10 +144,9 @@ GTK+ icon theme.
 PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-	"${FILESDIR}/${PN}-gcc5-r2.patch"
-	"${FILESDIR}/${PN}-glibc2.26-r1.patch"
-	"${FILESDIR}/${PN}-gn-bootstrap-r19.patch"
-	"${FILESDIR}/${PN}-sysroot-r1.patch"
+	"${FILESDIR}/${PN}-gcc5-r4.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-r21.patch"
+	"${FILESDIR}/${PN}-clang-r1.patch"
 )
 
 pre_build_checks() {
@@ -157,10 +156,13 @@ pre_build_checks() {
 			# bugs: #601654
 			die "At least clang 3.9.1 is required"
 		fi
-		if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
-			# bugs: #535730, #525374, #518668, #600288, #627356
-			die "At least gcc 5.0 is required"
+		if tc-is-gcc; then
+			die "Known build break with gcc, see https://bugs.gentoo.org/633452 . Use clang as workaround."
 		fi
+		#if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+		#	# bugs: #535730, #525374, #518668, #600288, #627356
+		#	die "At least gcc 5.0 is required"
+		#fi
 	fi
 
 	# Check build requirements, bug #541816 and bug #471810 .
@@ -206,7 +208,6 @@ src_prepare() {
 		base/third_party/valgrind
 		base/third_party/xdg_mime
 		base/third_party/xdg_user_dirs
-		breakpad/src/third_party/curl
 		chrome/third_party/mozilla_security_manager
 		courgette/third_party
 		net/third_party/mozilla_security_manager
@@ -221,6 +222,8 @@ src_prepare() {
 		third_party/angle/src/third_party/trace_event
 		third_party/blink
 		third_party/boringssl
+		third_party/breakpad
+		third_party/breakpad/breakpad/src/third_party/curl
 		third_party/brotli
 		third_party/cacheinvalidation
 		third_party/catapult
@@ -606,9 +609,6 @@ src_install() {
 	insinto "${CHROMIUM_HOME}/swiftshader"
 	doins out/Release/swiftshader/*.so
 
-	newman out/Release/chrome.1 chromium.1
-	newman out/Release/chrome.1 chromium-browser.1
-
 	# Install icons and desktop entry.
 	local branding size
 	for size in 16 22 24 32 48 64 128 256 ; do

diff --git a/www-client/chromium/files/chromium-clang-r1.patch b/www-client/chromium/files/chromium-clang-r1.patch
new file mode 100644
index 00000000000..0fef167566a
--- /dev/null
+++ b/www-client/chromium/files/chromium-clang-r1.patch
@@ -0,0 +1,21 @@
+--- a/build/config/compiler/BUILD.gn.orig	2017-10-04 08:50:15.014675936 +0000
++++ b/build/config/compiler/BUILD.gn	2017-10-04 08:50:32.831024327 +0000
+@@ -429,18 +429,6 @@
+     cflags += [ "-fcolor-diagnostics" ]
+   }
+ 
+-  # TODO(hans): Remove this once Clang generates better optimized debug info by
+-  # default. https://crbug.com/765793
+-  if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
+-      target_os != "chromeos") {
+-    cflags += [
+-      "-Xclang",
+-      "-mllvm",
+-      "-Xclang",
+-      "-instcombine-lower-dbg-declare=1",
+-    ]
+-  }
+-
+   # Print absolute paths in diagnostics. There is no precedent for doing this
+   # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+   # Windows developers rely on it (crbug.com/636109) so only do this on Windows.

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r21.patch b/www-client/chromium/files/chromium-gn-bootstrap-r21.patch
new file mode 100644
index 00000000000..f3127af09ec
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r21.patch
@@ -0,0 +1,28 @@
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 601d5331698e..f154ed2ef3e6 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -536,7 +536,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/threading/thread_local_storage.cc',
+       'base/threading/thread_restrictions.cc',
+       'base/threading/thread_task_runner_handle.cc',
+-      'base/threading/worker_pool.cc',
+       'base/time/clock.cc',
+       'base/time/default_clock.cc',
+       'base/time/default_tick_clock.cc',
+@@ -546,7 +545,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/timer/timer.cc',
+       'base/trace_event/category_registry.cc',
+       'base/trace_event/event_name_filter.cc',
+-      'base/trace_event/freed_object_tracker.cc',
+       'base/trace_event/heap_profiler_allocation_context.cc',
+       'base/trace_event/heap_profiler_allocation_context_tracker.cc',
+       'base/trace_event/heap_profiler_allocation_register.cc',
+@@ -611,7 +609,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/threading/platform_thread_internal_posix.cc',
+         'base/threading/platform_thread_posix.cc',
+         'base/threading/thread_local_storage_posix.cc',
+-        'base/threading/worker_pool_posix.cc',
+         'base/time/time_conversion_posix.cc',
+         'base/trace_event/heap_profiler_allocation_register_posix.cc',
+     ])


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-09-27 12:32 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-09-27 12:32 UTC (permalink / raw
  To: gentoo-commits

commit:     c172f39f803a4b05cdca9610d41263061ab5a251
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 27 12:32:01 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Sep 27 12:32:21 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c172f39f

www-client/chromium: dev channel bump (63.0.3223.8)

Package-Manager: Portage-2.3.8, Repoman-2.3.1

 www-client/chromium/Manifest                           |  2 +-
 ...-63.0.3213.3.ebuild => chromium-63.0.3223.8.ebuild} |  4 +---
 .../chromium/files/chromium-gn-bootstrap-r20.patch     | 18 ++++++++++++++++++
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 7353040b16e..30603be5421 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-61.0.3163.100.tar.xz 556305252 SHA256 4135968cac6623c1d2b224494600cd274098cce41c298f8c3908b354a34c281b SHA512 4dfd3a493ceb7c605eeab6f387541273d529e8b935a6104927e34836469aedcfcbb4a1154591585621d5c2e842e68701d32328acba842f840a20498822165f78 WHIRLPOOL a02443375a59073ad350665a46c978b67e1026078822b3a34f9fb1099a1bc62933ec25c6135c107388ebf21362d0e6a04e394a60275dd1e30b31c145ee7f93e8
 DIST chromium-62.0.3202.18.tar.xz 517017924 SHA256 38d76599b999e3636c3eb60888acd34ea8a8d7e24e6dba21ec7ae39d2045d47f SHA512 7017bc7f17af969fc460f0001ae935dca48253d2dea65d5375a126434549bb7ce748518c716b6d06aa6ae357577ca08ec73c7fe0e11b606595c15768388bab87 WHIRLPOOL 305ca8e55bbd2d87c1b6444ed2580b2c6992c2c5072b0abc9751190e07e0a57bb2180d751aaf5a248beea8467c6888f681c1d76a0a7cfb6ccfc2ae5d9669f2ec
 DIST chromium-62.0.3202.9.tar.xz 516991748 SHA256 d801d431417736098ee4bf4ecaea642f5fe6101ea88a4cf7b06a04da58331199 SHA512 26e253dc0b779408116e4fbcc41e306afbd34687a9cb9f748d49381cec4ace4a094630aec5be14878584051696c261052ce7b07fd75b9680217165afd3909fe9 WHIRLPOOL 82645f14dd1a19faecc8b8af3fcfef03b2e14cb04c0ad8653bf9e11ef84169ecae7d8fdcbed1a84da0433f621dbbb331319670bb9cb0723759df617dd46e4617
-DIST chromium-63.0.3213.3.tar.xz 532417800 SHA256 a9c680b181f18be8b39945e715b8a54640af74a4ed85c65a9de038085ad8be77 SHA512 994ef6b733d3e3bc35ead7281ca9274206f1ca1f810f0890afa45eeeca164606ff219660452083034a29e37b861bd8f0dcd037874ff5aff21a314d96292c7f75 WHIRLPOOL ab274e2fcbbf2c8deb8d5955182b9b071a0b13ca0d0dddf4b61655e6553f7fec403760fa7e23fb89b63a019a522c4a35d740b7af1ca0068fdbda506c7b3f7bfb
 DIST chromium-63.0.3218.0.tar.xz 544430944 SHA256 36e7e6837cd77848e13e6558b9c7740f362a4f28869d9bfda2cf19615acca7fd SHA512 a55bb2475c8423e21d0448b4fb7a2af73811b29e2fb67d11febf1611b549363cdd6b68ac50c1397a934bedfefaf51e55d8721ad58593ca0d9b6c4b7310376e1b WHIRLPOOL 94ec530900797cd5a464393e3a8f172621e7687d71a9608b6551f1ec11b9658ea801d8af3478be5d7ddf1a7d2f3d0182ccf4196f8fabb6a5cd2a051a097c89ac
+DIST chromium-63.0.3223.8.tar.xz 541587956 SHA256 bced462e16a28ff0a3896539e6c7f72e76cb7ba16640a6cac9a533ec4b8f5ee5 SHA512 6ca0efac47adee14b04cba312397b80aeaed1b0ce9bee427c508c44636ab9a1668f743bd3939d83417129d7e83c38c2f95b72c502c6d834056cf7477ef8b4de8 WHIRLPOOL b9f526eec3626b93f2541461b9b3a79bef283de62d99e30c209859e686db8e09ed327f90d0811703d699e9813cb86e0002be93fa42372e65afef1c96b8c91d35

diff --git a/www-client/chromium/chromium-63.0.3213.3.ebuild b/www-client/chromium/chromium-63.0.3223.8.ebuild
similarity index 99%
rename from www-client/chromium/chromium-63.0.3213.3.ebuild
rename to www-client/chromium/chromium-63.0.3223.8.ebuild
index 1016d25f626..222538cbccb 100644
--- a/www-client/chromium/chromium-63.0.3213.3.ebuild
+++ b/www-client/chromium/chromium-63.0.3223.8.ebuild
@@ -97,7 +97,6 @@ DEPEND="${COMMON_DEPEND}
 	>=dev-util/ninja-1.7.2
 	>=net-libs/nodejs-4.6.1
 	sys-apps/hwids[usb(+)]
-	tcmalloc? ( !<sys-apps/sandbox-2.11 )
 	>=sys-devel/bison-2.4.3
 	sys-devel/flex
 	virtual/pkgconfig
@@ -146,8 +145,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
 	"${FILESDIR}/${PN}-gcc5-r2.patch"
-	"${FILESDIR}/${PN}-glibc2.26-r1.patch"
-	"${FILESDIR}/${PN}-gn-bootstrap-r18.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-r20.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r20.patch b/www-client/chromium/files/chromium-gn-bootstrap-r20.patch
new file mode 100644
index 00000000000..4b339e03545
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r20.patch
@@ -0,0 +1,18 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -546,6 +546,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/timer/timer.cc',
+       'base/trace_event/category_registry.cc',
+       'base/trace_event/event_name_filter.cc',
++      'base/trace_event/freed_object_tracker.cc',
+       'base/trace_event/heap_profiler_allocation_context.cc',
+       'base/trace_event/heap_profiler_allocation_context_tracker.cc',
+       'base/trace_event/heap_profiler_allocation_register.cc',
+@@ -605,7 +606,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/strings/string16.cc',
+         'base/synchronization/condition_variable_posix.cc',
+         'base/synchronization/lock_impl_posix.cc',
+-        'base/synchronization/read_write_lock_posix.cc',
+         'base/sys_info_posix.cc',
+         'base/task_scheduler/task_tracker_posix.cc',
+         'base/threading/platform_thread_internal_posix.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-09-04 21:07 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-09-04 21:07 UTC (permalink / raw
  To: gentoo-commits

commit:     199c9247637d5fb72d1b14ea58327cfdb4da282d
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Sep  4 21:06:14 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Sep  4 21:07:18 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=199c9247

www-client/chromium: dev channel bump (62.0.3198.0)

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ...0.3188.2.ebuild => chromium-62.0.3198.0.ebuild} | 16 +++--
 .../chromium/files/chromium-gn-bootstrap-r17.patch | 68 ++++++++++++++++++++++
 3 files changed, 81 insertions(+), 5 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e86277c8438..102bb25a07e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-60.0.3112.78.tar.xz 537669428 SHA256 a82db2aa1b9348b619c01894db565eba686780de0e6fa9e83a8f406d06ce03ea SHA512 d6cccf2537233c12d7b0254b45adbf0abdf9ca43688ceed28b3d915290478563be30d30879018fd4d6f2acc9654d9911c0c6bbebba0cdeacd16d748e18296c41 WHIRLPOOL b7acf6a57bced89f1e81e389f72ef80cb4a24f9beed45c737bd511d8e5f64236c5b9888910ee58b746a6cdbbcc58cc1d665e8730e33471ee50782ef4ce883e8c
 DIST chromium-61.0.3163.49.tar.xz 556004264 SHA256 60f859a1a1007968e1ac70eaef3e3990df57e280e03641266f89a68453acd68c SHA512 216670f8f20bd0b2f93f46d0e15895cf372c1ad44713096a1f64e7f8b610cf33d84549f176d7eb7f4af6b74154d8251570927d54310a9fa562191f74c9f778d4 WHIRLPOOL 4dfb07cf5f1e27c017ca04f807f88da27c0cf06cfbc0f74008f8c2963be9a5ba5769c39436045d3d35025a6f518bf9301f44af1ae2f1a9410c0d0ca7385a607b
 DIST chromium-61.0.3163.59.tar.xz 556163044 SHA256 740fe9d15e8e8c09df6fdefa52676261cff2bc6fc5d061a7125f60594d6d4360 SHA512 9ad8b7d2251075387d7ffda4cf5517a2f64d3b8ecd7fd399e35cc91b00daff26ecb2ae5d3a23f52c2207b075f7149f5df7cfa05c8ca20e2cf9048d032a103978 WHIRLPOOL db36a1a76f44e287e58af3d5b90756a8347e07b773c526e4af9ad4f7dbd5681658d36b62b5c7748349131e68b39fa51145318b449ea3b6e661741e72576f3239
-DIST chromium-62.0.3188.2.tar.xz 515878612 SHA256 37d3c3aaf77f40ef51e71cc9b1752e6c4149a2e4e05a277cf1dd372d6d361b81 SHA512 318b34d670f65cf50eb24bd54c752e116847b5f53e97e2896f1bb8d33d1209046e4a248fa1703bb1e6dfa990233d64353a0d233c3a7cc1aeee6147aad59fedb3 WHIRLPOOL 27c906a755dc4877cdd081572300d4fd001c38bb870be35cdb667931ee79f8bbe015744168861043c5bfb44f970e9263774b91d5cf77bb4d91ef808066ef5e32
 DIST chromium-62.0.3192.0.tar.xz 516499652 SHA256 437cc2045ebbb755ec929d403f7f51afe58ea3916aee609937b903772a7c7919 SHA512 bbc040084d83e52558407b9975ebe874d44260ce5c5daf34ae35b79e806ad3b78d15f81e9ec19e69dcabb3d281bdda9948b697f6b97318816b8b9b247822a5a4 WHIRLPOOL f8cbb93cb6a1a0a1527055951f6711049db0e60a60449562d25e2fe82ae30f73653ebe1f7d04615351104f52dc0ed5b278bc32872c5b08ecd450c56114be6c08
+DIST chromium-62.0.3198.0.tar.xz 516801712 SHA256 6e7c33bfe357554cd9400d55bfc280338a7a9474bb0a53b6c81ea84688637970 SHA512 61271628a8ea84f5c2838949869e067baaf86a9a5c0dad09e82e05fd86654e9a6584c8b7152de57851a0162068618c198f52748cf74c0cb050e86a5cd6a94a0c WHIRLPOOL bcfde66dbe69e11a06fa280c8739987e7e3e5afabb780ea0aafe3ac96d8843117d980d938f7a5762dc379711ce03cbdce391f77725e65af028b6ef9db88ee679

diff --git a/www-client/chromium/chromium-62.0.3188.2.ebuild b/www-client/chromium/chromium-62.0.3198.0.ebuild
similarity index 98%
rename from www-client/chromium/chromium-62.0.3188.2.ebuild
rename to www-client/chromium/chromium-62.0.3198.0.ebuild
index baa5f1920f7..f1b0a038ce7 100644
--- a/www-client/chromium/chromium-62.0.3188.2.ebuild
+++ b/www-client/chromium/chromium-62.0.3198.0.ebuild
@@ -40,13 +40,21 @@ COMMON_DEPEND="
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
 	>=media-libs/openh264-1.6.0:=
 	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? ( >=media-video/ffmpeg-3:= media-libs/opus:= )
+	system-ffmpeg? (
+		>=media-video/ffmpeg-3:=
+		|| (
+			media-video/ffmpeg[-samba]
+			>=net-fs/samba-4.5.10-r1[-debug(-)]
+		)
+		!=net-fs/samba-4.5.12
+		media-libs/opus:=
+	)
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
 	virtual/udev
 	x11-libs/cairo:=
 	x11-libs/gdk-pixbuf:2
-	x11-libs/gtk+:3
+	x11-libs/gtk+:3[X]
 	x11-libs/libX11:=
 	x11-libs/libXcomposite:=
 	x11-libs/libXcursor:=
@@ -137,8 +145,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
 	"${FILESDIR}/${PN}-gcc5-r2.patch"
-	"${FILESDIR}/${PN}-gn-bootstrap-r16.patch"
-	"${FILESDIR}/${PN}-system-icu-r2.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-r17.patch"
 )
 
 pre_build_checks() {
@@ -282,6 +289,7 @@ src_prepare() {
 		third_party/qcms
 		third_party/sfntly
 		third_party/skia
+		third_party/skia/third_party/gif
 		third_party/skia/third_party/vulkan
 		third_party/smhasher
 		third_party/spirv-headers

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r17.patch b/www-client/chromium/files/chromium-gn-bootstrap-r17.patch
new file mode 100644
index 00000000000..6cfd08d58c2
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r17.patch
@@ -0,0 +1,68 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options):
+ 
+   write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
+       {
++          'ENABLE_LOCATION_SOURCE': 'false',
+           'ENABLE_PROFILING': 'false',
+           'CAN_UNWIND_WITH_FRAME_POINTERS': 'false'
+       })
+@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options):
+ 
+   write_gn_ninja(os.path.join(tempdir, 'build.ninja'),
+                  root_gen_dir, options)
+-  cmd = ['ninja', '-C', tempdir]
++  cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err']
+   if options.verbose:
+     cmd.append('-v')
+ 
+@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/metrics/bucket_ranges.cc',
+       'base/metrics/field_trial.cc',
+       'base/metrics/field_trial_param_associator.cc',
++      'base/metrics/field_trial_params.cc',
+       'base/metrics/histogram.cc',
+       'base/metrics/histogram_base.cc',
+       'base/metrics/histogram_functions.cc',
+@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/task_scheduler/scheduler_lock_impl.cc',
+       'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc',
+       'base/task_scheduler/scheduler_worker.cc',
++      'base/task_scheduler/scheduler_worker_pool.cc',
+       'base/task_scheduler/scheduler_worker_pool_impl.cc',
+       'base/task_scheduler/scheduler_worker_pool_params.cc',
+       'base/task_scheduler/scheduler_worker_stack.cc',
+@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/third_party/icu/icu_utf.cc',
+       'base/third_party/nspr/prtime.cc',
+       'base/threading/post_task_and_reply_impl.cc',
++      'base/threading/scoped_blocking_call.cc',
+       'base/threading/sequence_local_storage_map.cc',
+       'base/threading/sequenced_task_runner_handle.cc',
+       'base/threading/sequenced_worker_pool.cc',
+@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/unguessable_token.cc',
+       'base/value_iterators.cc',
+       'base/values.cc',
+-      'base/value_iterators.cc',
+       'base/vlog.cc',
+   ])
+ 
+@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+     static_libraries['base']['sources'].extend([
+         'base/memory/shared_memory_handle_posix.cc',
+         'base/memory/shared_memory_posix.cc',
+-        'base/memory/shared_memory_tracker.cc',
+         'base/nix/xdg_util.cc',
+         'base/process/internal_linux.cc',
+         'base/process/memory_linux.cc',
+@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options):
+   cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args]
+   check_call(cmd)
+ 
+-  cmd = ['ninja', '-C', build_dir]
++  cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err']
+   if options.verbose:
+     cmd.append('-v')
+   cmd.append('gn')


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-08-16 19:35 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-08-16 19:35 UTC (permalink / raw
  To: gentoo-commits

commit:     8cc188a0e7c219f6d0deeb2268142a2d6ae91682
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 16 19:35:01 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Aug 16 19:35:01 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8cc188a0

www-client/chromium: fix build with gcc-5

Bug: https://bugs.gentoo.org/627414

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/chromium-61.0.3163.39.ebuild |  1 +
 www-client/chromium/files/chromium-gcc5-r1.patch | 66 ++++++++++++++++++++++++
 2 files changed, 67 insertions(+)

diff --git a/www-client/chromium/chromium-61.0.3163.39.ebuild b/www-client/chromium/chromium-61.0.3163.39.ebuild
index 6d7c9fefa05..4c89199ef92 100644
--- a/www-client/chromium/chromium-61.0.3163.39.ebuild
+++ b/www-client/chromium/chromium-61.0.3163.39.ebuild
@@ -147,6 +147,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-gn-bootstrap-r14.patch"
 	"${FILESDIR}/${PN}-atk-r1.patch"
 	"${FILESDIR}/${PN}-mojo-dep.patch"
+	"${FILESDIR}/${PN}-gcc5-r1.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-gcc5-r1.patch b/www-client/chromium/files/chromium-gcc5-r1.patch
new file mode 100644
index 00000000000..ec3e3e66343
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc5-r1.patch
@@ -0,0 +1,66 @@
+--- a/chrome/browser/devtools/devtools_file_system_indexer.cc
++++ b/chrome/browser/devtools/devtools_file_system_indexer.cc
+@@ -34,7 +34,6 @@ using base::TimeDelta;
+ using base::TimeTicks;
+ using content::BrowserThread;
+ using std::map;
+-using std::set;
+ using std::string;
+ using std::vector;
+ 
+@@ -191,7 +190,7 @@ vector<FilePath> Index::Search(const string& query) {
+     if (trigram != kUndefinedTrigram)
+       trigrams.push_back(trigram);
+   }
+-  set<FileId> file_ids;
++  std::set<FileId> file_ids;
+   bool first = true;
+   vector<Trigram>::const_iterator it = trigrams.begin();
+   for (; it != trigrams.end(); ++it) {
+@@ -203,7 +202,7 @@ vector<FilePath> Index::Search(const string& query) {
+       first = false;
+       continue;
+     }
+-    set<FileId> intersection = base::STLSetIntersection<set<FileId> >(
++    std::set<FileId> intersection = base::STLSetIntersection<std::set<FileId> >(
+         file_ids, index_[trigram]);
+     file_ids.swap(intersection);
+   }
+diff --git a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
+index 94bb9161ec85..e40c6387f72e 100644
+--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
+@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
+           allocation_length_(0),
+           data_(data),
+           data_length_(0),
+-          kind_(AllocationKind::kNormal),
++          kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
+           deleter_(deleter) {}
+     DataHandle(void* allocation_base,
+                size_t allocation_length,
+@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
+              reinterpret_cast<uintptr_t>(allocation_base_) +
+                  allocation_length_);
+       switch (kind_) {
+-        case AllocationKind::kNormal:
++        case WTF::ArrayBufferContents::AllocationKind::kNormal:
+           DCHECK(deleter_);
+           deleter_(data_);
+           return;
+-        case AllocationKind::kReservation:
++        case WTF::ArrayBufferContents::AllocationKind::kReservation:
+           ReleaseReservedMemory(allocation_base_, allocation_length_);
+           return;
+       }
+--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig	2017-08-15 12:45:59.433532111 +0000
++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc	2017-08-15 17:52:59.691328825 +0000
+@@ -10,7 +10,7 @@
+ 
+ #include "webrtc/modules/audio_processing/aec3/aec_state.h"
+ 
+-#include <math.h>
++#include <cmath>
+ #include <numeric>
+ #include <vector>
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-08-02 21:28 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-08-02 21:28 UTC (permalink / raw
  To: gentoo-commits

commit:     36ef217b856a8f4e21f57875d12cd51246c35e7e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  2 21:27:52 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Aug  2 21:28:02 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36ef217b

www-client/chromium: fix conflicting usage of major/minor

Some debug code defined these as local variables, which seems to cause
a build failure against glibc-2.25.

Bug: https://bugs.gentoo.org/626744
Package-Manager: Portage-2.3.6_p23, Repoman-2.3.3_p1

 www-client/chromium/chromium-60.0.3112.78.ebuild   |  1 +
 .../chromium/files/chromium-major-minor.patch      | 97 ++++++++++++++++++++++
 2 files changed, 98 insertions(+)

diff --git a/www-client/chromium/chromium-60.0.3112.78.ebuild b/www-client/chromium/chromium-60.0.3112.78.ebuild
index 68b83b6a24a..00e68336525 100644
--- a/www-client/chromium/chromium-60.0.3112.78.ebuild
+++ b/www-client/chromium/chromium-60.0.3112.78.ebuild
@@ -185,6 +185,7 @@ src_prepare() {
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r1.patch"
 		"${FILESDIR}/${PN}-gn-bootstrap-r8.patch"
+		"${FILESDIR}/${PN}-major-minor.patch"
 	)
 
 	default

diff --git a/www-client/chromium/files/chromium-major-minor.patch b/www-client/chromium/files/chromium-major-minor.patch
new file mode 100644
index 00000000000..ab8a701c6c1
--- /dev/null
+++ b/www-client/chromium/files/chromium-major-minor.patch
@@ -0,0 +1,97 @@
+From 11e48b29d00fdd714c3ff3f8ebe0d51a2c4ce61c Mon Sep 17 00:00:00 2001
+From: Dongseong Hwang <dongseong.hwang@intel.com>
+Date: Tue, 11 Jul 2017 17:20:06 +0000
+Subject: [PATCH] ozone: drm: Remove the debug details when dmabuf mmap fails.
+
+As we fixed mmap failure, remove the redundant crash reports.
+The CL adding the info: crrev.com/2710183005
+
+BUG=629521
+
+Change-Id: I8de9f16a3fce4a42500fe9c5e2843615940e184e
+Reviewed-on: https://chromium-review.googlesource.com/565805
+Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
+Reviewed-by: Robert Sesek <rsesek@chromium.org>
+Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
+Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
+Cr-Commit-Position: refs/heads/master@{#485662}
+---
+ chrome/common/crash_keys.cc                 |  5 -----
+ ui/gfx/linux/client_native_pixmap_dmabuf.cc | 28 +++-------------------------
+ 2 files changed, 3 insertions(+), 30 deletions(-)
+
+diff --git a/chrome/common/crash_keys.cc b/chrome/common/crash_keys.cc
+index c4b563e0309b..2f1efe6f2334 100644
+--- a/chrome/common/crash_keys.cc
++++ b/chrome/common/crash_keys.cc
+@@ -153,11 +153,6 @@ size_t RegisterChromeCrashKeys() {
+     {kInputEventFilterSendFailure, kSmallSize},
+ #if defined(OS_CHROMEOS)
+     {kNumberOfUsers, kSmallSize},
+-    // Temporary for https://crbug.com/629521
+-    {"mmap_params", kSmallSize},
+-    {"buffer_size", kSmallSize},
+-    {"errno", kSmallSize},
+-    {"number_of_fds", kSmallSize},
+ #endif
+ #if defined(OS_MACOSX)
+     {mac::kFirstNSException, kMediumSize},
+diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
+index 4927daf3a61d..e532686a4f5b 100644
+--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc
++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
+@@ -11,11 +11,9 @@
+ #include <sys/mman.h>
+ #include <xf86drm.h>
+ 
+-#include "base/debug/crash_logging.h"
+ #include "base/memory/ptr_util.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "base/process/memory.h"
+-#include "base/process/process_metrics.h"
+ #include "base/strings/stringprintf.h"
+ #include "base/trace_event/trace_event.h"
+ 
+@@ -87,36 +85,16 @@ ClientNativePixmapDmaBuf::ClientNativePixmapDmaBuf(
+     if (mmap_error == ENOMEM)
+       base::TerminateBecauseOutOfMemory(map_size);
+ 
+-    // TODO(dcastagna): Remove the following diagnostic information and the
+-    // associated crash keys once crbug.com/629521 is fixed.
+     bool fd_valid = fcntl(dmabuf_fd_.get(), F_GETFD) != -1 ||
+                     logging::GetLastSystemErrorCode() != EBADF;
+-    int minor = -1;
+-    int major = -1;
+-    struct stat buf;
+-    if (!fstat(dmabuf_fd_.get(), &buf)) {
+-      minor = minor(buf.st_dev);
+-      major = major(buf.st_dev);
+-    }
+-
+     std::string mmap_params = base::StringPrintf(
+         "(addr=nullptr, length=%zu, prot=(PROT_READ | PROT_WRITE), "
+-        "flags=MAP_SHARED, fd=%d[valid=%d, minor=%d, major=%d], offset=0)",
+-        map_size, dmabuf_fd_.get(), fd_valid, minor, major);
++        "flags=MAP_SHARED, fd=%d[valid=%d], offset=0)",
++        map_size, dmabuf_fd_.get(), fd_valid);
+     std::string errno_str = logging::SystemErrorCodeToString(mmap_error);
+-    std::unique_ptr<base::ProcessMetrics> process_metrics(
+-        base::ProcessMetrics::CreateCurrentProcessMetrics());
+-    std::string number_of_fds =
+-        base::StringPrintf("%d", process_metrics->GetOpenFdCount());
+-    base::debug::ScopedCrashKey params_crash_key("mmap_params", mmap_params);
+-    base::debug::ScopedCrashKey size_crash_key("buffer_size", size.ToString());
+-    base::debug::ScopedCrashKey errno_crash_key("errno", errno_str);
+-    base::debug::ScopedCrashKey number_of_fds_crash_key("number_of_fds",
+-                                                        number_of_fds);
+     LOG(ERROR) << "Failed to mmap dmabuf; mmap_params: " << mmap_params
+                << ", buffer_size: (" << size.ToString()
+-               << "),  errno: " << errno_str
+-               << " , number_of_fds: " << number_of_fds;
++               << "),  errno: " << errno_str;
+     LOG(ERROR) << "NativePixmapHandle:";
+     LOG(ERROR) << "Number of fds: " << handle.fds.size();
+     LOG(ERROR) << "Number of planes: " << handle.planes.size();
+-- 
+2.13.3
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-07-27  8:22 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-07-27  8:22 UTC (permalink / raw
  To: gentoo-commits

commit:     04322d033ed931f5cfc56902c1b032f42542d3cf
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 27 08:21:58 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Jul 27 08:21:58 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=04322d03

www-client/chromium: dev channel bump (61.0.3163.13)

 www-client/chromium/Manifest                       |  2 +-
 ....3153.4.ebuild => chromium-61.0.3163.13.ebuild} | 30 ++++++++++++++--------
 www-client/chromium/files/chromium-atk-r1.patch    | 11 ++++++++
 .../chromium/files/chromium-gn-bootstrap-r14.patch | 27 +++++++++++++++++++
 4 files changed, 58 insertions(+), 12 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b21160d2754..b5f7c5a4a6d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-59.0.3071.104.tar.xz 531895868 SHA256 a949fa166cdcdbd8419fbdb4583804613d9845130f0c851e4c647d79a4c300d0 SHA512 419cf5bafa80f190cd301c2933502351929c1ef1d5cfedc720ce6762674a0e6af3b4246a8f92e0c29743420338b056061d4e7f9f4a4066a5bdd4d2ee8db3ddbf WHIRLPOOL ab2fbd1beeb485a5c07743a5a84c850b5ad8178a1f97421a0aa0573817b474e633a6ac65ad43f7db67d35d257183ea4eceacd12b4cad63f88cd9777cfa498e68
 DIST chromium-60.0.3112.40.tar.xz 537575476 SHA256 4fdc590fc6ef4af16cc72d790b9eaa50829cd8193893a9ec0719481b03f328d3 SHA512 0e121887f7158d47a9fdb7c0be43a0b1cb32d19a893f99cfc13e2ce146e553e6428fdd82815180bacb430eace42f8bf83595073cf449f49e963633e8414b07ef WHIRLPOOL b7b2b62f61c18ed77890383ba1ac2d25094e14c12042fa1b1af50fa1f8d69807673a036fdb54078622e92b32eb7211040fda3513cb079598e3caf1219c594631
 DIST chromium-60.0.3112.78.tar.xz 537669428 SHA256 a82db2aa1b9348b619c01894db565eba686780de0e6fa9e83a8f406d06ce03ea SHA512 d6cccf2537233c12d7b0254b45adbf0abdf9ca43688ceed28b3d915290478563be30d30879018fd4d6f2acc9654d9911c0c6bbebba0cdeacd16d748e18296c41 WHIRLPOOL b7acf6a57bced89f1e81e389f72ef80cb4a24f9beed45c737bd511d8e5f64236c5b9888910ee58b746a6cdbbcc58cc1d665e8730e33471ee50782ef4ce883e8c
-DIST chromium-61.0.3153.4.tar.xz 545739052 SHA256 ef48c114fed9a9977b731296cf099e62f1b50df07835709b41868c44363c6ec1 SHA512 693f8f31fb97eb57277a23c2b2f88d055d9f06ed89004874449332186e8e2e7ed63af6566e884ee52c963e8cda0a2b95caae9ebba486b279daca3c9355cda711 WHIRLPOOL be65fe3342a761cc0150d3d42708b9055442e2f5f8619a7d956be173b1abef0cb7b4a0bc4f0e55be0990461665fc2ba1e3b899bdffe328b8d3adc1624b15ea03
 DIST chromium-61.0.3159.5.tar.xz 546362372 SHA256 34e0e62f5c30df110bd8d5f872021a8a0ee21fc4b6c2d4efcb8a2232612f6e0a SHA512 325312223a1486fef1ca9d19c215147bdb37d7ab83437a6e38a076099bf450b79fbfba4060234307cba6385f9d82bf9d66c7a178f3ca33eeb0be1acee71e03f0 WHIRLPOOL cecab851eb6b247e7e381cfcac94d43d2b30d38631160ba1393920e241803e3b54402f719677b608ac15734c21ad6e762925e18f92b1b3e40f3aea93886aa721
+DIST chromium-61.0.3163.13.tar.xz 552794140 SHA256 b140c1405345a13ef8490efde64cfce413267f42baf107f83e81ba6f6dff0b2d SHA512 3c251239d22e4b8e97d9f96868289fa6e12be2167704bcf88dfa8ccf01806f713557f98b8b48d7752ebda24eb8c290ff94e0f279cf4507f7ea14664f1719763a WHIRLPOOL 51fb1214b29e6d462980b7f3238142f43f54b4fdd5c9d5cd3507c57bb168ef00676d10b6dc09ea1c722d4d17f144a31b873f8570892b4682888b581d04a97983

diff --git a/www-client/chromium/chromium-61.0.3153.4.ebuild b/www-client/chromium/chromium-61.0.3163.13.ebuild
similarity index 97%
rename from www-client/chromium/chromium-61.0.3153.4.ebuild
rename to www-client/chromium/chromium-61.0.3163.13.ebuild
index 754b7c87217..472aa46d7cc 100644
--- a/www-client/chromium/chromium-61.0.3153.4.ebuild
+++ b/www-client/chromium/chromium-61.0.3163.13.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="component-build cups gnome-keyring +gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-libvpx +tcmalloc widevine"
+IUSE="component-build cups gnome-keyring +gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
 # Native Client binaries are compiled with different set of flags, bug #452066.
@@ -32,7 +32,7 @@ COMMON_DEPEND="
 	cups? ( >=net-print/cups-1.3.11:= )
 	dev-libs/expat:=
 	dev-libs/glib:2
-	dev-libs/icu:=
+	system-icu? ( <dev-libs/icu-59:= )
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.14.3:=
@@ -142,6 +142,14 @@ theme that covers the appropriate MIME types, and configure this as your
 GTK+ icon theme.
 "
 
+PATCHES=(
+	"${FILESDIR}/${PN}-widevine-r1.patch"
+	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
+	"${FILESDIR}/${PN}-gcc-r1.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-r14.patch"
+	"${FILESDIR}/${PN}-atk-r1.patch"
+)
+
 pre_build_checks() {
 	if [[ ${MERGE_TYPE} != binary ]]; then
 		local -x CPP="$(tc-getCXX) -E"
@@ -183,12 +191,6 @@ pkg_setup() {
 }
 
 src_prepare() {
-	local PATCHES=(
-		"${FILESDIR}/${PN}-widevine-r1.patch"
-		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r12.patch"
-	)
-
 	default
 
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die
@@ -321,6 +323,9 @@ src_prepare() {
 	if ! use system-ffmpeg; then
 		keeplibs+=( third_party/ffmpeg )
 	fi
+	if ! use system-icu; then
+		keeplibs+=( third_party/icu )
+	fi
 	if ! use system-libvpx; then
 		keeplibs+=( third_party/libvpx )
 		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
@@ -377,7 +382,6 @@ src_configure() {
 	local gn_system_libraries=(
 		flac
 		harfbuzz-ng
-		icu
 		libdrm
 		libjpeg
 		libpng
@@ -393,6 +397,9 @@ src_configure() {
 	if use system-ffmpeg; then
 		gn_system_libraries+=( ffmpeg )
 	fi
+	if use system-icu; then
+		gn_system_libraries+=( icu )
+	fi
 	if use system-libvpx; then
 		gn_system_libraries+=( libvpx )
 	fi
@@ -599,8 +606,9 @@ src_install() {
 	doins out/Release/*.pak
 	doins out/Release/*.so
 
-	# Needed by bundled icu
-	# doins out/Release/icudtl.dat
+	if ! use system-icu; then
+		doins out/Release/icudtl.dat
+	fi
 
 	doins -r out/Release/locales
 	doins -r out/Release/resources

diff --git a/www-client/chromium/files/chromium-atk-r1.patch b/www-client/chromium/files/chromium-atk-r1.patch
new file mode 100644
index 00000000000..32fa29975b3
--- /dev/null
+++ b/www-client/chromium/files/chromium-atk-r1.patch
@@ -0,0 +1,11 @@
+--- a/content/browser/accessibility/browser_accessibility_auralinux.cc.orig	2017-07-27 06:28:01.090257874 +0000
++++ b/content/browser/accessibility/browser_accessibility_auralinux.cc	2017-07-27 06:28:21.174653680 +0000
+@@ -571,7 +571,7 @@
+ // it's best to leave this out rather than break people's builds:
+ #if defined(ATK_CHECK_VERSION)
+ #if ATK_CHECK_VERSION(2, 16, 0)
+-      atk_state_set_add_state(atk_state_set, ATK_STATE_READ_ONLY);
++      atk_state_set_add_state(state_set, ATK_STATE_READ_ONLY);
+ #endif
+ #endif
+       break;

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r14.patch b/www-client/chromium/files/chromium-gn-bootstrap-r14.patch
new file mode 100644
index 00000000000..3c44c858f78
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r14.patch
@@ -0,0 +1,27 @@
+commit 96c271f8ab2be7ea4199078ea65ac50c6ada4685
+Author: Pawel Hajdan, Jr <phajdan.jr@chromium.org>
+Date:   Wed Jul 26 21:51:54 2017 +0000
+
+    wip
+
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 1390560f8e37..ff2ae57c46b0 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -449,6 +449,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/metrics/histogram_base.cc',
+       'base/metrics/histogram_functions.cc',
+       'base/metrics/histogram_samples.cc',
++      'base/metrics/histogram_snapshot_manager.cc',
+       'base/metrics/metrics_hashes.cc',
+       'base/metrics/persistent_histogram_allocator.cc',
+       'base/metrics/persistent_memory_allocator.cc',
+@@ -534,7 +535,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/trace_event/heap_profiler_allocation_context_tracker.cc',
+       'base/trace_event/heap_profiler_allocation_register.cc',
+       'base/trace_event/heap_profiler_event_filter.cc',
+-      'base/trace_event/heap_profiler_event_writer.cc',
++      'base/trace_event/heap_profiler_heap_dump_writer.cc',
+       'base/trace_event/heap_profiler_serialization_state.cc',
+       'base/trace_event/heap_profiler_stack_frame_deduplicator.cc',
+       'base/trace_event/heap_profiler_type_name_deduplicator.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-07-17 12:41 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-07-17 12:41 UTC (permalink / raw
  To: gentoo-commits

commit:     4c600caa7fda7e78200185dd8cacc8cc9e05d38c
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 17 12:40:10 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Jul 17 12:41:08 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c600caa

www-client/chromium: dev channel bump (61.0.3153.4)

 www-client/chromium/Manifest                                   |  2 +-
 ...chromium-61.0.3135.4.ebuild => chromium-61.0.3153.4.ebuild} |  4 ++--
 www-client/chromium/files/chromium-gn-bootstrap-r12.patch      | 10 ++++++++++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ea519c73833..41100ffa649 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-59.0.3071.104.tar.xz 531895868 SHA256 a949fa166cdcdbd8419fbdb4583804613d9845130f0c851e4c647d79a4c300d0 SHA512 419cf5bafa80f190cd301c2933502351929c1ef1d5cfedc720ce6762674a0e6af3b4246a8f92e0c29743420338b056061d4e7f9f4a4066a5bdd4d2ee8db3ddbf WHIRLPOOL ab2fbd1beeb485a5c07743a5a84c850b5ad8178a1f97421a0aa0573817b474e633a6ac65ad43f7db67d35d257183ea4eceacd12b4cad63f88cd9777cfa498e68
 DIST chromium-60.0.3112.32.tar.xz 537426032 SHA256 d972469bfc26a3d135a1863c22b88e23a9f00096841f6392dbb83b75ad0d17f1 SHA512 625bac567f0717d1077ac77023c87bdd2ad1244d63c50ce6935bcb41b85aab4c06b05fda7e0f48cc7305c331080a350a16592adb37583c13736c97a55404d6ab WHIRLPOOL 78af7bbf83466c044428f294209512c27ed649e746829df083edf8e8fc4eddb23618606ec8571bc4eb433a7d67e921236c562c2c175f3685017ef2576b3f7802
 DIST chromium-60.0.3112.40.tar.xz 537575476 SHA256 4fdc590fc6ef4af16cc72d790b9eaa50829cd8193893a9ec0719481b03f328d3 SHA512 0e121887f7158d47a9fdb7c0be43a0b1cb32d19a893f99cfc13e2ce146e553e6428fdd82815180bacb430eace42f8bf83595073cf449f49e963633e8414b07ef WHIRLPOOL b7b2b62f61c18ed77890383ba1ac2d25094e14c12042fa1b1af50fa1f8d69807673a036fdb54078622e92b32eb7211040fda3513cb079598e3caf1219c594631
-DIST chromium-61.0.3135.4.tar.xz 544853344 SHA256 9ffc9be0e30cdd8fce80b91195e32b9d148510f5fa10bed833e5f3d897181bf6 SHA512 50daac20224be9b23fd19f1787b139402dc3b51ae2ef37c7ab1319d0d6d6f68d55501a429b8d3bef975e68d4cc862b1aa3e8dacbb48333b2fb8a973cdbf8fc5f WHIRLPOOL 6aaf54d10c83b022b60201b56d5ed50e61153f800d7dfe2f615cd6c2a598b0da0795548be7c502a2f72f5159e5ced3536efad466df5d24b854e12f9acbdc321b
 DIST chromium-61.0.3141.7.tar.xz 545315208 SHA256 3cc9039cb3db48bdd6e1ba74e600fa59c9b7b25fa29f66a6304e1674fde3b12d SHA512 976c440f9cf5243deb8308b293d7de9c4edfa55ff2635d782d3dc819a344a4fbffd8faef30d2705a3f037a145860181d746cda52116be2d26d1ff3180ce5498e WHIRLPOOL 7122d4f1978cddcc92e7127e42553e92d18196cb128fd98c06847f935ef7a0925ac56b5008dad16dbd96151a6957c0f58bd1675c21810f29d9c13287f5ad4218
+DIST chromium-61.0.3153.4.tar.xz 545739052 SHA256 ef48c114fed9a9977b731296cf099e62f1b50df07835709b41868c44363c6ec1 SHA512 693f8f31fb97eb57277a23c2b2f88d055d9f06ed89004874449332186e8e2e7ed63af6566e884ee52c963e8cda0a2b95caae9ebba486b279daca3c9355cda711 WHIRLPOOL be65fe3342a761cc0150d3d42708b9055442e2f5f8619a7d956be173b1abef0cb7b4a0bc4f0e55be0990461665fc2ba1e3b899bdffe328b8d3adc1624b15ea03

diff --git a/www-client/chromium/chromium-61.0.3135.4.ebuild b/www-client/chromium/chromium-61.0.3153.4.ebuild
similarity index 99%
rename from www-client/chromium/chromium-61.0.3135.4.ebuild
rename to www-client/chromium/chromium-61.0.3153.4.ebuild
index abbfceaa88b..754b7c87217 100644
--- a/www-client/chromium/chromium-61.0.3135.4.ebuild
+++ b/www-client/chromium/chromium-61.0.3153.4.ebuild
@@ -186,7 +186,7 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r10.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r12.patch"
 	)
 
 	default
@@ -421,7 +421,7 @@ src_configure() {
 	# Never use bundled gold binary. Disable gold linker flags for now.
 	# Do not use bundled clang.
 	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false"
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
 
 	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
 	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r12.patch b/www-client/chromium/files/chromium-gn-bootstrap-r12.patch
new file mode 100644
index 00000000000..b5da93ec0d7
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r12.patch
@@ -0,0 +1,10 @@
+--- a/tools/gn/bootstrap/bootstrap.py.orig	2017-07-12 20:37:42.619009003 +0000
++++ b/tools/gn/bootstrap/bootstrap.py	2017-07-12 20:37:58.495342632 +0000
+@@ -467,7 +467,6 @@
+       'base/process/process_metrics.cc',
+       'base/profiler/scoped_profile.cc',
+       'base/profiler/scoped_tracker.cc',
+-      'base/profiler/tracked_time.cc',
+       'base/rand_util.cc',
+       'base/run_loop.cc',
+       'base/sequence_token.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-06-28 15:18 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-06-28 15:18 UTC (permalink / raw
  To: gentoo-commits

commit:     6154cb911e5163dbaef46675cb760d0813cea894
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 28 15:17:26 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Jun 28 15:17:26 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6154cb91

www-client/chromium: dev channel bump (61.0.3141.7)

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ...0.3128.3.ebuild => chromium-61.0.3141.7.ebuild} |  4 ++--
 .../chromium/files/chromium-gn-bootstrap-r11.patch | 27 ++++++++++++++++++++++
 3 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 3f79f62ed46..ea519c73833 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-59.0.3071.104.tar.xz 531895868 SHA256 a949fa166cdcdbd8419fbdb4583804613d9845130f0c851e4c647d79a4c300d0 SHA512 419cf5bafa80f190cd301c2933502351929c1ef1d5cfedc720ce6762674a0e6af3b4246a8f92e0c29743420338b056061d4e7f9f4a4066a5bdd4d2ee8db3ddbf WHIRLPOOL ab2fbd1beeb485a5c07743a5a84c850b5ad8178a1f97421a0aa0573817b474e633a6ac65ad43f7db67d35d257183ea4eceacd12b4cad63f88cd9777cfa498e68
 DIST chromium-60.0.3112.32.tar.xz 537426032 SHA256 d972469bfc26a3d135a1863c22b88e23a9f00096841f6392dbb83b75ad0d17f1 SHA512 625bac567f0717d1077ac77023c87bdd2ad1244d63c50ce6935bcb41b85aab4c06b05fda7e0f48cc7305c331080a350a16592adb37583c13736c97a55404d6ab WHIRLPOOL 78af7bbf83466c044428f294209512c27ed649e746829df083edf8e8fc4eddb23618606ec8571bc4eb433a7d67e921236c562c2c175f3685017ef2576b3f7802
 DIST chromium-60.0.3112.40.tar.xz 537575476 SHA256 4fdc590fc6ef4af16cc72d790b9eaa50829cd8193893a9ec0719481b03f328d3 SHA512 0e121887f7158d47a9fdb7c0be43a0b1cb32d19a893f99cfc13e2ce146e553e6428fdd82815180bacb430eace42f8bf83595073cf449f49e963633e8414b07ef WHIRLPOOL b7b2b62f61c18ed77890383ba1ac2d25094e14c12042fa1b1af50fa1f8d69807673a036fdb54078622e92b32eb7211040fda3513cb079598e3caf1219c594631
-DIST chromium-61.0.3128.3.tar.xz 542407004 SHA256 21b284c71cbd1df1302b3d41f813765c8265ba279a78455447a30ada710e9929 SHA512 b5808dea9220182db2500f122b38e32707e285372e64031f5c5d238d82787172e44350e47bd2400ea267e8a857cd59f0db402ed2b542aa097afa4a797226e070 WHIRLPOOL 5eac6a151b7ce1634577e707ae2252a30549f13a029c95a73ec073b93022092dd7cac642060100d51fed01b594532526dddbda159a439bef0ca1b971d83bbd1a
 DIST chromium-61.0.3135.4.tar.xz 544853344 SHA256 9ffc9be0e30cdd8fce80b91195e32b9d148510f5fa10bed833e5f3d897181bf6 SHA512 50daac20224be9b23fd19f1787b139402dc3b51ae2ef37c7ab1319d0d6d6f68d55501a429b8d3bef975e68d4cc862b1aa3e8dacbb48333b2fb8a973cdbf8fc5f WHIRLPOOL 6aaf54d10c83b022b60201b56d5ed50e61153f800d7dfe2f615cd6c2a598b0da0795548be7c502a2f72f5159e5ced3536efad466df5d24b854e12f9acbdc321b
+DIST chromium-61.0.3141.7.tar.xz 545315208 SHA256 3cc9039cb3db48bdd6e1ba74e600fa59c9b7b25fa29f66a6304e1674fde3b12d SHA512 976c440f9cf5243deb8308b293d7de9c4edfa55ff2635d782d3dc819a344a4fbffd8faef30d2705a3f037a145860181d746cda52116be2d26d1ff3180ce5498e WHIRLPOOL 7122d4f1978cddcc92e7127e42553e92d18196cb128fd98c06847f935ef7a0925ac56b5008dad16dbd96151a6957c0f58bd1675c21810f29d9c13287f5ad4218

diff --git a/www-client/chromium/chromium-61.0.3128.3.ebuild b/www-client/chromium/chromium-61.0.3141.7.ebuild
similarity index 99%
rename from www-client/chromium/chromium-61.0.3128.3.ebuild
rename to www-client/chromium/chromium-61.0.3141.7.ebuild
index 4a2c2ada6f8..5573566a78f 100644
--- a/www-client/chromium/chromium-61.0.3128.3.ebuild
+++ b/www-client/chromium/chromium-61.0.3141.7.ebuild
@@ -186,7 +186,7 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-		"${FILESDIR}/${PN}-system-icu-r2.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r11.patch"
 	)
 
 	default
@@ -213,9 +213,9 @@ src_prepare() {
 		third_party/analytics
 		third_party/angle
 		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/murmurhash
 		third_party/angle/src/third_party/compiler
 		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/murmurhash
 		third_party/angle/src/third_party/trace_event
 		third_party/boringssl
 		third_party/brotli

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r11.patch b/www-client/chromium/files/chromium-gn-bootstrap-r11.patch
new file mode 100644
index 00000000000..a2171a2c6e8
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r11.patch
@@ -0,0 +1,27 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -447,6 +447,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/metrics/field_trial_param_associator.cc',
+       'base/metrics/histogram.cc',
+       'base/metrics/histogram_base.cc',
++      'base/metrics/histogram_functions.cc',
+       'base/metrics/histogram_samples.cc',
+       'base/metrics/metrics_hashes.cc',
+       'base/metrics/persistent_histogram_allocator.cc',
+@@ -509,6 +510,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/third_party/icu/icu_utf.cc',
+       'base/third_party/nspr/prtime.cc',
+       'base/threading/post_task_and_reply_impl.cc',
++      'base/threading/sequence_local_storage_map.cc',
+       'base/threading/sequenced_task_runner_handle.cc',
+       'base/threading/sequenced_worker_pool.cc',
+       'base/threading/simple_thread.cc',
+@@ -533,7 +535,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/trace_event/heap_profiler_allocation_context_tracker.cc',
+       'base/trace_event/heap_profiler_allocation_register.cc',
+       'base/trace_event/heap_profiler_event_filter.cc',
+-      'base/trace_event/heap_profiler_heap_dump_writer.cc',
++      'base/trace_event/heap_profiler_event_writer.cc',
+       'base/trace_event/heap_profiler_serialization_state.cc',
+       'base/trace_event/heap_profiler_stack_frame_deduplicator.cc',
+       'base/trace_event/heap_profiler_string_deduplicator.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-06-26  7:09 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-06-26  7:09 UTC (permalink / raw
  To: gentoo-commits

commit:     ebbbcdee2df5f21b78144b6a78fb217492eaecc1
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 26 07:09:09 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Jun 26 07:09:27 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ebbbcdee

www-client/chromium: dev channel bump (61.0.3135.4)

Package-Manager: Portage-2.3.5, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ...0.3124.4.ebuild => chromium-61.0.3135.4.ebuild} | 68 +++++++++++++++-------
 .../chromium/files/chromium-gn-bootstrap-r10.patch | 18 ++++++
 3 files changed, 65 insertions(+), 23 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 16c8a59f61d..3f79f62ed46 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-59.0.3071.104.tar.xz 531895868 SHA256 a949fa166cdcdbd8419fbdb4583804613d9845130f0c851e4c647d79a4c300d0 SHA512 419cf5bafa80f190cd301c2933502351929c1ef1d5cfedc720ce6762674a0e6af3b4246a8f92e0c29743420338b056061d4e7f9f4a4066a5bdd4d2ee8db3ddbf WHIRLPOOL ab2fbd1beeb485a5c07743a5a84c850b5ad8178a1f97421a0aa0573817b474e633a6ac65ad43f7db67d35d257183ea4eceacd12b4cad63f88cd9777cfa498e68
 DIST chromium-60.0.3112.32.tar.xz 537426032 SHA256 d972469bfc26a3d135a1863c22b88e23a9f00096841f6392dbb83b75ad0d17f1 SHA512 625bac567f0717d1077ac77023c87bdd2ad1244d63c50ce6935bcb41b85aab4c06b05fda7e0f48cc7305c331080a350a16592adb37583c13736c97a55404d6ab WHIRLPOOL 78af7bbf83466c044428f294209512c27ed649e746829df083edf8e8fc4eddb23618606ec8571bc4eb433a7d67e921236c562c2c175f3685017ef2576b3f7802
 DIST chromium-60.0.3112.40.tar.xz 537575476 SHA256 4fdc590fc6ef4af16cc72d790b9eaa50829cd8193893a9ec0719481b03f328d3 SHA512 0e121887f7158d47a9fdb7c0be43a0b1cb32d19a893f99cfc13e2ce146e553e6428fdd82815180bacb430eace42f8bf83595073cf449f49e963633e8414b07ef WHIRLPOOL b7b2b62f61c18ed77890383ba1ac2d25094e14c12042fa1b1af50fa1f8d69807673a036fdb54078622e92b32eb7211040fda3513cb079598e3caf1219c594631
-DIST chromium-61.0.3124.4.tar.xz 542178452 SHA256 8976732d3fbbbfe188d79cb64169a5ceafe8e23351b8fb650cfd02fdfd74a83c SHA512 6d690824376382774957c6eb0a35cb3bd443d3c501d7d5988d912dccd17da44e8e2bd5f9ac8b59d9381d7fbf67216e001dcf081591bd95c732018155f7b212f2 WHIRLPOOL 9a3720bb615a4f66cc77b5250dad50afb2301e076b1e0e334c0db770f420862051acac0bc68907ea1cc3f4b6a6edb108ea44f392b520c8ba916612f7eb7e54fa
 DIST chromium-61.0.3128.3.tar.xz 542407004 SHA256 21b284c71cbd1df1302b3d41f813765c8265ba279a78455447a30ada710e9929 SHA512 b5808dea9220182db2500f122b38e32707e285372e64031f5c5d238d82787172e44350e47bd2400ea267e8a857cd59f0db402ed2b542aa097afa4a797226e070 WHIRLPOOL 5eac6a151b7ce1634577e707ae2252a30549f13a029c95a73ec073b93022092dd7cac642060100d51fed01b594532526dddbda159a439bef0ca1b971d83bbd1a
+DIST chromium-61.0.3135.4.tar.xz 544853344 SHA256 9ffc9be0e30cdd8fce80b91195e32b9d148510f5fa10bed833e5f3d897181bf6 SHA512 50daac20224be9b23fd19f1787b139402dc3b51ae2ef37c7ab1319d0d6d6f68d55501a429b8d3bef975e68d4cc862b1aa3e8dacbb48333b2fb8a973cdbf8fc5f WHIRLPOOL 6aaf54d10c83b022b60201b56d5ed50e61153f800d7dfe2f615cd6c2a598b0da0795548be7c502a2f72f5159e5ced3536efad466df5d24b854e12f9acbdc321b

diff --git a/www-client/chromium/chromium-61.0.3124.4.ebuild b/www-client/chromium/chromium-61.0.3135.4.ebuild
similarity index 93%
rename from www-client/chromium/chromium-61.0.3124.4.ebuild
rename to www-client/chromium/chromium-61.0.3135.4.ebuild
index 2703b4c155c..abbfceaa88b 100644
--- a/www-client/chromium/chromium-61.0.3124.4.ebuild
+++ b/www-client/chromium/chromium-61.0.3135.4.ebuild
@@ -186,8 +186,7 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r9.patch"
-		"${FILESDIR}/${PN}-system-icu-r2.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r10.patch"
 	)
 
 	default
@@ -213,10 +212,10 @@ src_prepare() {
 		third_party/WebKit
 		third_party/analytics
 		third_party/angle
-		third_party/angle/src/common/third_party/numerics
+		third_party/angle/src/common/third_party/base
+		third_party/angle/src/common/third_party/murmurhash
 		third_party/angle/src/third_party/compiler
 		third_party/angle/src/third_party/libXNVCtrl
-		third_party/angle/src/third_party/murmurhash
 		third_party/angle/src/third_party/trace_event
 		third_party/boringssl
 		third_party/brotli
@@ -298,7 +297,6 @@ src_prepare() {
 		third_party/swiftshader
 		third_party/swiftshader/third_party/llvm-subzero
 		third_party/swiftshader/third_party/subzero
-		third_party/tcmalloc
 		third_party/usrsctp
 		third_party/vulkan
 		third_party/vulkan-validation-layers
@@ -327,11 +325,30 @@ src_prepare() {
 		keeplibs+=( third_party/libvpx )
 		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
 	fi
+	if use tcmalloc; then
+		keeplibs+=( third_party/tcmalloc )
+	fi
 
 	# Remove most bundled libraries. Some are still needed.
 	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
 }
 
+bootstrap_gn() {
+	if tc-is-cross-compiler; then
+		local -x AR=${BUILD_AR}
+		local -x CC=${BUILD_CC}
+		local -x CXX=${BUILD_CXX}
+		local -x NM=${BUILD_NM}
+		local -x CFLAGS=${BUILD_CFLAGS}
+		local -x CXXFLAGS=${BUILD_CXXFLAGS}
+		local -x LDFLAGS=${BUILD_LDFLAGS}
+	fi
+	einfo "Building GN..."
+	set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean
+	echo "$@"
+	"$@" || die
+}
+
 src_configure() {
 	local myconf_gn=""
 
@@ -397,7 +414,6 @@ src_configure() {
 
 	if tc-is-clang; then
 		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
-		myconf_gn+=" clang_base_path=\"$(realpath $(dirname `which clang`)/..)\""
 	else
 		myconf_gn+=" is_clang=false"
 	fi
@@ -424,16 +440,16 @@ src_configure() {
 
 	local myarch="$(tc-arch)"
 	if [[ $myarch = amd64 ]] ; then
-		target_arch=x64
+		myconf_gn+=" target_cpu=\"x64\""
 		ffmpeg_target_arch=x64
 	elif [[ $myarch = x86 ]] ; then
-		target_arch=ia32
+		myconf_gn+=" target_cpu=\"x86\""
 		ffmpeg_target_arch=ia32
 	elif [[ $myarch = arm64 ]] ; then
-		target_arch=arm64
+		myconf_gn+=" target_cpu=\"arm64\""
 		ffmpeg_target_arch=arm64
 	elif [[ $myarch = arm ]] ; then
-		target_arch=arm
+		myconf_gn+=" target_cpu=\"arm\""
 		ffmpeg_target_arch=$(usex neon arm-neon arm)
 	else
 		die "Failed to determine target arch, got '$myarch'."
@@ -466,20 +482,20 @@ src_configure() {
 	# Make sure the build system will use the right tools, bug #340795.
 	tc-export AR CC CXX NM
 
-	# https://bugs.gentoo.org/588596
-	append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
-
 	# Define a custom toolchain for GN
 	myconf_gn+=" custom_toolchain=\"${FILESDIR}/toolchain:default\""
 
-	# Tools for building programs to be executed on the build system, bug #410883.
 	if tc-is-cross-compiler; then
-		export AR_host=$(tc-getBUILD_AR)
-		export CC_host=$(tc-getBUILD_CC)
-		export CXX_host=$(tc-getBUILD_CXX)
-		export NM_host=$(tc-getBUILD_NM)
+		tc-export BUILD_{AR,CC,CXX,NM}
+		myconf_gn+=" host_toolchain=\"${FILESDIR}/toolchain:host\""
+		myconf_gn+=" v8_snapshot_toolchain=\"${FILESDIR}/toolchain:host\""
+	else
+		myconf_gn+=" host_toolchain=\"${FILESDIR}/toolchain:default\""
 	fi
 
+	# https://bugs.gentoo.org/588596
+	append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
 	# Bug 491582.
 	export TMPDIR="${WORKDIR}/temp"
 	mkdir -p -m 755 "${TMPDIR}" || die
@@ -504,9 +520,12 @@ src_configure() {
 
 	touch chrome/test/data/webui/i18n_process_css_test.html || die
 
+	bootstrap_gn
+
 	einfo "Configuring Chromium..."
-	tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args "${myconf_gn}" || die
-	out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	set -- out/Release/gn gen --args="${myconf_gn}" out/Release
+	echo "$@"
+	"$@" || die
 }
 
 src_compile() {
@@ -516,8 +535,13 @@ src_compile() {
 	fi
 
 	# Build mksnapshot and pax-mark it.
-	eninja -C out/Release mksnapshot || die
-	pax-mark m out/Release/mksnapshot
+	if tc-is-cross-compiler; then
+		eninja -C out/Release host/mksnapshot || die
+		pax-mark m out/Release/host/mksnapshot
+	else
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
 
 	# Even though ninja autodetects number of CPUs, we respect
 	# user's options, for debugging with -j 1 or any other reason.

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r10.patch b/www-client/chromium/files/chromium-gn-bootstrap-r10.patch
new file mode 100644
index 00000000000..f27fe374eb4
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r10.patch
@@ -0,0 +1,18 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -447,6 +447,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/metrics/field_trial_param_associator.cc',
+       'base/metrics/histogram.cc',
+       'base/metrics/histogram_base.cc',
++      'base/metrics/histogram_functions.cc',
+       'base/metrics/histogram_samples.cc',
+       'base/metrics/metrics_hashes.cc',
+       'base/metrics/persistent_histogram_allocator.cc',
+@@ -509,6 +510,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/third_party/icu/icu_utf.cc',
+       'base/third_party/nspr/prtime.cc',
+       'base/threading/post_task_and_reply_impl.cc',
++      'base/threading/sequence_local_storage_map.cc',
+       'base/threading/sequenced_task_runner_handle.cc',
+       'base/threading/sequenced_worker_pool.cc',
+       'base/threading/simple_thread.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-06-11 17:35 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-06-11 17:35 UTC (permalink / raw
  To: gentoo-commits

commit:     f418b588f605b1afc6b49907d92c5a65eb6a9661
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 11 17:31:25 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jun 11 17:35:14 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f418b588

www-client/chromium: fix missing shim header with ICU 59

Bug: https://bugs.gentoo.org/619796#c2
Package-Manager: Portage-2.3.6_p7, Repoman-2.3.2_p75

 www-client/chromium/chromium-61.0.3124.4.ebuild    |  1 +
 .../chromium/files/chromium-system-icu-r2.patch    | 89 ++++++++++++++++++++++
 2 files changed, 90 insertions(+)

diff --git a/www-client/chromium/chromium-61.0.3124.4.ebuild b/www-client/chromium/chromium-61.0.3124.4.ebuild
index e1f0bb41102..2703b4c155c 100644
--- a/www-client/chromium/chromium-61.0.3124.4.ebuild
+++ b/www-client/chromium/chromium-61.0.3124.4.ebuild
@@ -187,6 +187,7 @@ src_prepare() {
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
 		"${FILESDIR}/${PN}-gn-bootstrap-r9.patch"
+		"${FILESDIR}/${PN}-system-icu-r2.patch"
 	)
 
 	default

diff --git a/www-client/chromium/files/chromium-system-icu-r2.patch b/www-client/chromium/files/chromium-system-icu-r2.patch
new file mode 100644
index 00000000000..e095442ec79
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-icu-r2.patch
@@ -0,0 +1,89 @@
+Update header list for unbundling ICU 59
+
+Bug: https://bugs.gentoo.org/619796#c2
+
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -78,7 +78,6 @@ shim_headers("icui18n_shim") {
+     "unicode/fpositer.h",
+     "unicode/gender.h",
+     "unicode/gregocal.h",
+-    "unicode/locdspnm.h",
+     "unicode/measfmt.h",
+     "unicode/measunit.h",
+     "unicode/measure.h",
+@@ -113,15 +112,12 @@ shim_headers("icui18n_shim") {
+     "unicode/ucol.h",
+     "unicode/ucoleitr.h",
+     "unicode/ucsdet.h",
+-    "unicode/ucurr.h",
+     "unicode/udat.h",
+     "unicode/udateintervalformat.h",
+     "unicode/udatpg.h",
+-    "unicode/udisplaycontext.h",
+     "unicode/ufieldpositer.h",
+     "unicode/uformattable.h",
+     "unicode/ugender.h",
+-    "unicode/uldnames.h",
+     "unicode/ulocdata.h",
+     "unicode/umsg.h",
+     "unicode/unirepl.h",
+@@ -130,6 +126,7 @@ shim_headers("icui18n_shim") {
+     "unicode/upluralrules.h",
+     "unicode/uregex.h",
+     "unicode/uregion.h",
++    "unicode/ureldatefmt.h",
+     "unicode/usearch.h",
+     "unicode/uspoof.h",
+     "unicode/utmscale.h",
+@@ -151,10 +148,13 @@ shim_headers("icuuc_shim") {
+     "unicode/bytestrie.h",
+     "unicode/bytestriebuilder.h",
+     "unicode/caniter.h",
++    "unicode/casemap.h",
++    "unicode/char16ptr.h",
+     "unicode/chariter.h",
+     "unicode/dbbi.h",
+     "unicode/docmain.h",
+     "unicode/dtintrv.h",
++    "unicode/edits.h",
+     "unicode/enumset.h",
+     "unicode/errorcode.h",
+     "unicode/filteredbrk.h",
+@@ -163,6 +163,7 @@ shim_headers("icuuc_shim") {
+     "unicode/idna.h",
+     "unicode/listformatter.h",
+     "unicode/localpointer.h",
++    "unicode/locdspnm.h",
+     "unicode/locid.h",
+     "unicode/messagepattern.h",
+     "unicode/normalizer2.h",
+@@ -176,12 +177,14 @@ shim_headers("icuuc_shim") {
+     "unicode/rep.h",
+     "unicode/resbund.h",
+     "unicode/schriter.h",
++    "unicode/simpleformatter.h",
+     "unicode/std_string.h",
+     "unicode/strenum.h",
+     "unicode/stringpiece.h",
+     "unicode/stringtriebuilder.h",
+     "unicode/symtable.h",
+     "unicode/ubidi.h",
++    "unicode/ubiditransform.h",
+     "unicode/ubrk.h",
+     "unicode/ucasemap.h",
+     "unicode/ucat.h",
+@@ -195,10 +198,13 @@ shim_headers("icuuc_shim") {
+     "unicode/ucnv_err.h",
+     "unicode/ucnvsel.h",
+     "unicode/uconfig.h",
++    "unicode/ucurr.h",
+     "unicode/udata.h",
++    "unicode/udisplaycontext.h",
+     "unicode/uenum.h",
+     "unicode/uidna.h",
+     "unicode/uiter.h",
++    "unicode/uldnames.h",
+     "unicode/ulistformatter.h",
+     "unicode/uloc.h",
+     "unicode/umachine.h",


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-06-11 16:39 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-06-11 16:39 UTC (permalink / raw
  To: gentoo-commits

commit:     09d8ca782654aa45726e753148a71ce11e7c10cc
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 11 16:39:19 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sun Jun 11 16:39:49 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09d8ca78

www-client/chromium: dev channel bump (61.0.3124.4)

Package-Manager: Portage-2.3.5, Repoman-2.3.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-61.0.3124.4.ebuild    | 632 +++++++++++++++++++++
 .../files/chromium-FORTIFY_SOURCE-r2.patch         |  25 +
 .../chromium/files/chromium-gn-bootstrap-r9.patch  |  20 +
 4 files changed, 678 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 771c2cf8c9d..a2a83cc5740 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-59.0.3071.86.tar.xz 531842404 SHA256 c31431aa9f4ae521d784bee89792e7fa05793cb822bfb8d3fbacaf414b29ace7 SHA512 1b92956435dcc422f3edf0ccd031007a19d291620d5af284ac2c1d2578b8524691713927b47130d2fd7c9acb7d9cd0376e9f5e3821b5feece7529b8b7bddf193 WHIRLPOOL 59454903b5a79f04a47e368fd9d18a22ceedc9e90650278e58523e8bedf6aecd3ef64d795a83524c514d7adc2aab847585971ae213af38c651a9c9924f56c601
 DIST chromium-60.0.3112.20.tar.xz 537314876 SHA256 b508b8ecd85a0bf9778d836af3c7564dd97ef3628d964c1bfea353658113c494 SHA512 93da55ec8171f7ebcba7732db149178a717c8f627664752b6d5bd12aa51fb3d928bc4a1369a0bee34730a98829aaba8c5a90d59136d39a5b7eddf15b8da6bba2 WHIRLPOOL d66366868e848cbbd05bb97ead1577860c6e7a6c2f1dbb9f9833203f76d70b6d2a4d353b181e2ef51cca1d9f4c73e8f740be548f275cc382c2302d5c5cc41355
 DIST chromium-60.0.3112.24.tar.xz 537341808 SHA256 26a4ef3e94399d23c077197ea47d5aab5d9165a6aa7eb8d4d66167fc043f2a94 SHA512 3abb8bd78f9235c69ae1372d939c215d582da00125ad26aa28e1c4dc2aef0b40e5cf593b6b0438bddcf9ef5928df0e44bed5e7b1a8752706704f4d71fae9353d WHIRLPOOL 467e3b8c4ea95c7bb432c1a1e6557e570141d7503b98e6a9bd8d2bded1e83779747c5f01358c877378a438f198d0db104ccb2ad044dcc22ad3d39d99ad183769
+DIST chromium-61.0.3124.4.tar.xz 542178452 SHA256 8976732d3fbbbfe188d79cb64169a5ceafe8e23351b8fb650cfd02fdfd74a83c SHA512 6d690824376382774957c6eb0a35cb3bd443d3c501d7d5988d912dccd17da44e8e2bd5f9ac8b59d9381d7fbf67216e001dcf081591bd95c732018155f7b212f2 WHIRLPOOL 9a3720bb615a4f66cc77b5250dad50afb2301e076b1e0e334c0db770f420862051acac0bc68907ea1cc3f4b6a6edb108ea44f392b520c8ba916612f7eb7e54fa

diff --git a/www-client/chromium/chromium-61.0.3124.4.ebuild b/www-client/chromium/chromium-61.0.3124.4.ebuild
new file mode 100644
index 00000000000..e1f0bb41102
--- /dev/null
+++ b/www-client/chromium/chromium-61.0.3124.4.ebuild
@@ -0,0 +1,632 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="component-build cups gnome-keyring +gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	dev-libs/expat:=
+	dev-libs/glib:2
+	dev-libs/icu:=
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-1.4.2:=[icu(-)]
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	>=media-libs/openh264-1.6.0:=
+	media-libs/opus:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-3:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	!gtk3? ( x11-libs/gtk+:2 )
+	gtk3? ( x11-libs/gtk+:3 )
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	net-libs/nodejs
+	sys-apps/hwids[usb(+)]
+	tcmalloc? ( !<sys-apps/sandbox-2.11 )
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	dev-vcs/git
+	$(python_gen_any_dep '
+		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+		dev-python/html5lib[${PYTHON_USEDEP}]
+		dev-python/simplejson[${PYTHON_USEDEP}]
+	')
+"
+
+# Keep this in sync with the python_gen_any_dep call.
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+			# bugs: #601654
+			die "At least clang 3.9.1 is required"
+		fi
+		if tc-is-gcc && ! version_is_at_least 4.8 "$(gcc-version)"; then
+			# bugs: #535730, #525374, #518668, #600288
+			die "At least gcc 4.8 is required"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	eshopts_pop
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	local PATCHES=(
+		"${FILESDIR}/${PN}-widevine-r1.patch"
+		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r9.patch"
+	)
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		breakpad/src/third_party/curl
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		third_party/WebKit
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/numerics
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/murmurhash
+		third_party/angle/src/third_party/trace_event
+		third_party/boringssl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/py_vulcanize
+		third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
+		third_party/catapult/third_party/py_vulcanize/third_party/rjsmin
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/catapult/tracing/third_party/oboe
+		third_party/ced
+		third_party/cld_2
+		third_party/cld_3
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/freetype
+		third_party/glslang-angle
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libudev
+		third_party/libwebm
+		third_party/libxml
+		third_party/libyuv
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/modp_b64
+		third_party/mt19937ar
+		third_party/node
+		third_party/node/node_modules/vulcanize/third_party/UglifyJS2
+		third_party/openmax_dl
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/build
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms2-2.6
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/qcms
+		third_party/sfntly
+		third_party/skia
+		third_party/skia/third_party/vulkan
+		third_party/smhasher
+		third_party/spirv-headers
+		third_party/spirv-tools-angle
+		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/subzero
+		third_party/tcmalloc
+		third_party/usrsctp
+		third_party/vulkan
+		third_party/vulkan-validation-layers
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: xml (bug #616818).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		harfbuzz-ng
+		icu
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		libxslt
+		openh264
+		opus
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gconf=false"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_gtk3=$(usex gtk3 true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+		myconf_gn+=" clang_base_path=\"$(realpath $(dirname `which clang`)/..)\""
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# https://bugs.gentoo.org/588596
+	append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"${FILESDIR}/toolchain:default\""
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args "${myconf_gn}" || die
+	out/Release/gn gen --args="${myconf_gn}" out/Release || die
+}
+
+src_compile() {
+	local ninja_targets="chrome chromedriver"
+	if use suid; then
+		ninja_targets+=" chrome_sandbox"
+	fi
+
+	# Build mksnapshot and pax-mark it.
+	eninja -C out/Release mksnapshot || die
+	pax-mark m out/Release/mksnapshot
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	if use widevine; then
+		# These will be provided by chrome-binary-plugins
+		rm out/Release/libwidevinecdm*.so || die
+	fi
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	# Needed by bundled icu
+	# doins out/Release/icudtl.dat
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	insinto "${CHROMIUM_HOME}/swiftshader"
+	doins out/Release/swiftshader/*.so
+
+	newman out/Release/chrome.1 chromium.1
+	newman out/Release/chrome.1 chromium-browser.1
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch b/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch
new file mode 100644
index 00000000000..206590f1af1
--- /dev/null
+++ b/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch
@@ -0,0 +1,25 @@
+--- a/build/config/compiler/BUILD.gn.orig	2017-06-10 11:11:04.852935374 +0000
++++ b/build/config/compiler/BUILD.gn	2017-06-10 11:11:12.749100346 +0000
+@@ -1213,22 +1213,6 @@
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer &&
+-        (!is_linux || !is_clang || is_official_build) &&
+-        current_cpu != "s390x" && current_cpu != "s390" &&
+-        current_cpu != "ppc64" && current_cpu != "ppc64" &&
+-        current_cpu != "mips" && current_cpu != "mips64") {
+-      # _FORTIFY_SOURCE isn't really supported by Clang now, see
+-      # http://llvm.org/bugs/show_bug.cgi?id=16821.
+-      # It seems to work fine with Ubuntu 12 headers though, so use it in
+-      # official builds.
+-      #
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac || is_ios) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r9.patch b/www-client/chromium/files/chromium-gn-bootstrap-r9.patch
new file mode 100644
index 00000000000..0fc6cc160f1
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r9.patch
@@ -0,0 +1,20 @@
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index e806761..dd564ac 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -410,6 +410,7 @@
+       'base/debug/dump_without_crashing.cc',
+       'base/debug/stack_trace.cc',
+       'base/debug/task_annotator.cc',
++      'base/debug/thread_heap_usage_tracker.cc',
+       'base/environment.cc',
+       'base/feature_list.cc',
+       'base/files/file.cc',
+@@ -507,7 +508,6 @@
+       'base/third_party/dmg_fp/g_fmt.cc',
+       'base/third_party/icu/icu_utf.cc',
+       'base/third_party/nspr/prtime.cc',
+-      'base/threading/non_thread_safe_impl.cc',
+       'base/threading/post_task_and_reply_impl.cc',
+       'base/threading/sequenced_task_runner_handle.cc',
+       'base/threading/sequenced_worker_pool.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-05-31 20:19 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-05-31 20:19 UTC (permalink / raw
  To: gentoo-commits

commit:     94162f26984e7785a618acfb894349ebb47fd5cf
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed May 31 20:19:25 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed May 31 20:19:42 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94162f26

www-client/chromium: dev channel bump (60.0.3112.7)

Package-Manager: Portage-2.3.5, Repoman-2.3.1

 www-client/chromium/Manifest                                |  2 +-
 ...omium-60.0.3100.0.ebuild => chromium-60.0.3112.7.ebuild} | 11 ++++-------
 www-client/chromium/files/chromium-gn-bootstrap-r8.patch    | 13 +++++++++++++
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 31e8a2a0f35..2b73ee05ed7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,5 +2,5 @@ DIST chromium-58.0.3029.110.tar.xz 518167664 SHA256 f24cef3dd2acf9dd5ccdeeca47fe
 DIST chromium-58.0.3029.81.tar.xz 509252204 SHA256 5ab61b7025a5143fa1b21713479b316ec7a98e262e79e84f9c9a9656179217cb SHA512 49e8a641e6fe839880ac4cc17aa4b79875dbd0e14adcf7ad0138730334555fd57c93c1e7ebdf6f03c61528c351a5a489f56fb7d7809aef268627b186c547a4f3 WHIRLPOOL eed9d97cd4cb4d9a56864e65e797f6d126327d6e9371bdfe416fd57f0f4c9c83f37e125798a1753b5d8bc5921036bdfe064b3d7e94c3ba315a710241a6c5b179
 DIST chromium-59.0.3071.47.tar.xz 531847280 SHA256 d431b463e8a6c194d5b5dbee0c664aec8d1d87a2cc17b4237eca2b37d3698ab5 SHA512 98a608248ee9948cf34e9e5cbeb735515354cbfd869b5a773dda6c25d3351b1a7c289a85c0fb0f37340a4f54e02f8b38e54e14455eb58a6a7040596e0d7c50cf WHIRLPOOL f136b13c97ce1589f8acd26c45cd9fc21d68960532b52c9826e44dbff6e9d1350bc0bf5f63e0b9a205e409b6c381ca3f5762b826db928555ca424664e7bdfe45
 DIST chromium-59.0.3071.61.tar.xz 531774216 SHA256 3471d957fb550288327b395d8fe36225ccf0334bb80bb276f313e5eafabc8422 SHA512 292ea900774ec3b1d20de621f7b4a1fefa8ab1b9e7246876f62701e152b9dbed4739b8a9e79787a829f8662a699114c9bb0d63e79f93c24361763f35d76e7d2f WHIRLPOOL 4cbd3110a5a7403ed1c60ee47f6c97ef13f8c70b87fe9892c786fe18cd2c2738b1bac426a234e766fdd08f3c24f7bb2a2d3cf958b5af882d2cdf7821e67a7750
-DIST chromium-60.0.3100.0.tar.xz 533255016 SHA256 5e03a5a9146bc1efefe3246d79eef9341a12429fb54e952633e2a62e374ad944 SHA512 ba795ec89c0f7bad7a27d5c7917081ec526f4ae0379b3cd993fc94c2feb2b75eb93d6ad8b1eb2925ebc68ff400dc5ec8bb94b795d02894a969cfb7fd91868685 WHIRLPOOL 9c7ccde4fb0aadc7f626e162af8d0c4752d075c50c163dc19679a8d747bf7d3aba3f7907f4b2592c01b0bbfd251e30e5be1aa77c12598e0c3ed4603111aa888f
 DIST chromium-60.0.3107.4.tar.xz 533329508 SHA256 d49fd97a882eea329168a7d036e1ffee031fe62f42379c821138b8e6c204c091 SHA512 0c2e6a2496105f026f8d4cf42c5eabfac1f513385c8ace9070f1c9a7ebbcd62190d30857a7f9cc8aed3e590a57816029e04813a7876d47f00ea0e1302f5a8556 WHIRLPOOL c01f9763df6a0a4a5f61f4acb7d67b040901b24d0c26a02dd8ff5e6b110d51833927f19824f347e3adbbf6b27f476ca35949fd50d5bc7779a9646db9bd30dc74
+DIST chromium-60.0.3112.7.tar.xz 537210676 SHA256 9bed6c54d4e44aef40a013cf4e7a5dcde57a1bc75d628cf0d7bbe3f8614c228d SHA512 27f7d7a97ba8fd9bb17a0abfed2934bbfba60947d5380578bb3ce43e5634e3153df5cecd76fb27291206722e7647e50717e6f45c98ebb6a33ef7e1f9d6e9e344 WHIRLPOOL 0718a8ee323c6a947068b3bcf59dae822f5b969c1bcc10024d58b23436e5513be3c9fe3632e9226c11232b4f8ec49b31044e2408316317b7d329682b9531b977

diff --git a/www-client/chromium/chromium-60.0.3100.0.ebuild b/www-client/chromium/chromium-60.0.3112.7.ebuild
similarity index 98%
rename from www-client/chromium/chromium-60.0.3100.0.ebuild
rename to www-client/chromium/chromium-60.0.3112.7.ebuild
index 3d2bc0139c0..20b237d4b70 100644
--- a/www-client/chromium/chromium-60.0.3100.0.ebuild
+++ b/www-client/chromium/chromium-60.0.3112.7.ebuild
@@ -45,6 +45,7 @@ COMMON_DEPEND="
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	media-libs/openh264:=
 	media-libs/opus:=
 	pulseaudio? ( media-sound/pulseaudio:= )
 	system-ffmpeg? ( >=media-video/ffmpeg-3:= )
@@ -185,11 +186,7 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r1.patch"
-		"${FILESDIR}/skia-avx2.patch"
-		"${FILESDIR}/${PN}-system-ffmpeg-r6.patch"
-		"${FILESDIR}/${PN}-system-opus-r1.patch"
-		"${FILESDIR}/${PN}-system-libpng-r1.patch"
-		"${FILESDIR}/${PN}-system-libwebp-r1.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r8.patch"
 	)
 
 	default
@@ -273,7 +270,6 @@ src_prepare() {
 		third_party/mt19937ar
 		third_party/node
 		third_party/node/node_modules/vulcanize/third_party/UglifyJS2
-		third_party/openh264
 		third_party/openmax_dl
 		third_party/ots
 		third_party/pdfium
@@ -300,7 +296,6 @@ src_prepare() {
 		third_party/sqlite
 		third_party/swiftshader
 		third_party/swiftshader/third_party/llvm-subzero
-		third_party/swiftshader/third_party/pnacl-subzero
 		third_party/swiftshader/third_party/subzero
 		third_party/tcmalloc
 		third_party/usrsctp
@@ -352,6 +347,7 @@ src_configure() {
 	myconf_gn+=" enable_nacl=false"
 
 	# Use system-provided libraries.
+	# TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
 	# TODO: use_system_hunspell (upstream changes needed).
 	# TODO: use_system_libsrtp (bug #459932).
 	# TODO: xml (bug #616818).
@@ -369,6 +365,7 @@ src_configure() {
 		libpng
 		libwebp
 		libxslt
+		openh264
 		opus
 		re2
 		snappy

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r8.patch b/www-client/chromium/files/chromium-gn-bootstrap-r8.patch
new file mode 100644
index 00000000000..d9f389aaf58
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r8.patch
@@ -0,0 +1,13 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 6f2f5b1264519ea38cc36fb0b7e2cc24c378ca7a..0b03d2626b358fb90ab39d737679ee47bd60303b 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -487,6 +487,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/sys_info.cc',
+       'base/task_runner.cc',
+       'base/task_scheduler/delayed_task_manager.cc',
++      'base/task_scheduler/environment_config.cc',
+       'base/task_scheduler/post_task.cc',
+       'base/task_scheduler/priority_queue.cc',
+       'base/task_scheduler/scheduler_lock_impl.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-05-17 14:22 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-05-17 14:22 UTC (permalink / raw
  To: gentoo-commits

commit:     7c0c4778fb52457f024f168283f8574939dabe9d
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed May 17 14:21:48 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed May 17 14:21:48 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c0c4778

www-client/chromium: dev channel bump (60.0.3100.0)

Package-Manager: Portage-2.3.5, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ...0.3088.3.ebuild => chromium-60.0.3100.0.ebuild} | 28 +++++----------------
 .../files/chromium-FORTIFY_SOURCE-r1.patch         | 29 ++++++++++++++++++++++
 .../chromium/files/chromium-system-libpng-r1.patch | 18 ++++++++++++++
 .../files/chromium-system-libwebp-r1.patch         |  9 +++++++
 5 files changed, 63 insertions(+), 23 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c1e8751e894..8cbccce538c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-58.0.3029.81.tar.xz 509252204 SHA256 5ab61b7025a5143fa1b21713479b316ec7a98e262e79e84f9c9a9656179217cb SHA512 49e8a641e6fe839880ac4cc17aa4b79875dbd0e14adcf7ad0138730334555fd57c93c1e7ebdf6f03c61528c351a5a489f56fb7d7809aef268627b186c547a4f3 WHIRLPOOL eed9d97cd4cb4d9a56864e65e797f6d126327d6e9371bdfe416fd57f0f4c9c83f37e125798a1753b5d8bc5921036bdfe064b3d7e94c3ba315a710241a6c5b179
 DIST chromium-59.0.3071.36.tar.xz 531792008 SHA256 1c62e16d47969897c1dda97e12c14646d3504dd191c6175d92c1fde57ac1a79a SHA512 c97d599f37fbdf9b6966861b2b1b016c68bfdd702bb9967152dee374500f9ca9b3eb6fe4bb00640c71c0217257b7912c6b7bc8b8b0713685282b3708643e2b7e WHIRLPOOL cdf10735423c04a54685abd8d8c210b4999691a86b4fc826c30f190e69a12e32edb83ccbe1e6bf173d76d6638b587acd9b85deec27ca912d69fb2e3a53a41b2b
 DIST chromium-59.0.3071.47.tar.xz 531847280 SHA256 d431b463e8a6c194d5b5dbee0c664aec8d1d87a2cc17b4237eca2b37d3698ab5 SHA512 98a608248ee9948cf34e9e5cbeb735515354cbfd869b5a773dda6c25d3351b1a7c289a85c0fb0f37340a4f54e02f8b38e54e14455eb58a6a7040596e0d7c50cf WHIRLPOOL f136b13c97ce1589f8acd26c45cd9fc21d68960532b52c9826e44dbff6e9d1350bc0bf5f63e0b9a205e409b6c381ca3f5762b826db928555ca424664e7bdfe45
-DIST chromium-60.0.3088.3.tar.xz 530979712 SHA256 f47aa0f8a3a1280f1df548a31a0560f32f205716bbd4b72866c101a78842fc1f SHA512 a80684d8b941fe6c91cd3b9d558f1a8b6a61ee1292424d5c2ca67d8e8b46df2291d4f95f40d02e393a83ea0f3e3f99274e8a86473e8c1c7702ace50ad26e79f9 WHIRLPOOL 227045a6c130ddd12b0bef00e7886e8435cb58e988e02a6320f0ba32f8c78203de88ad31df0fc2ef80e9c5f88449513e5fd6fd6279dd360070c94830038a6859
 DIST chromium-60.0.3095.5.tar.xz 532742216 SHA256 6835717ae34e0722dee36a5a633dea10a6dd31ebba1748031981c08a46a27d16 SHA512 be9a3edd3c3b3d72e0bf443cdcd93eb160b5016b783167c8545999cab536eb644ab86e4cb71e49d7fbcb7037024962e0e18bd94a843cf0b978d2ad86ffa17dbe WHIRLPOOL 4851cb67ef8e3584b313d9f66afb2678c7b481c779e8aded8ca6e1b7fee2ada4e167f3316a86dd478c48968236708b120e9a35650767fd8d046b6691e306f564
+DIST chromium-60.0.3100.0.tar.xz 533255016 SHA256 5e03a5a9146bc1efefe3246d79eef9341a12429fb54e952633e2a62e374ad944 SHA512 ba795ec89c0f7bad7a27d5c7917081ec526f4ae0379b3cd993fc94c2feb2b75eb93d6ad8b1eb2925ebc68ff400dc5ec8bb94b795d02894a969cfb7fd91868685 WHIRLPOOL 9c7ccde4fb0aadc7f626e162af8d0c4752d075c50c163dc19679a8d747bf7d3aba3f7907f4b2592c01b0bbfd251e30e5be1aa77c12598e0c3ed4603111aa888f

diff --git a/www-client/chromium/chromium-60.0.3088.3.ebuild b/www-client/chromium/chromium-60.0.3100.0.ebuild
similarity index 96%
rename from www-client/chromium/chromium-60.0.3088.3.ebuild
rename to www-client/chromium/chromium-60.0.3100.0.ebuild
index c9e354dbb80..b9dfc469075 100644
--- a/www-client/chromium/chromium-60.0.3088.3.ebuild
+++ b/www-client/chromium/chromium-60.0.3100.0.ebuild
@@ -8,7 +8,7 @@ CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
 	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
 	sv sw ta te th tr uk vi zh-CN zh-TW"
 
-inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib multiprocessing pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx xdg-utils
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx xdg-utils
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="http://chromium.org/"
@@ -185,11 +185,12 @@ pkg_setup() {
 src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
-		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
+		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r1.patch"
 		"${FILESDIR}/skia-avx2.patch"
 		"${FILESDIR}/${PN}-system-ffmpeg-r6.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r6.patch"
 		"${FILESDIR}/${PN}-system-opus-r1.patch"
+		"${FILESDIR}/${PN}-system-libpng-r1.patch"
+		"${FILESDIR}/${PN}-system-libwebp-r1.patch"
 	)
 
 	default
@@ -247,6 +248,7 @@ src_prepare() {
 		third_party/google_input_tools
 		third_party/google_input_tools/third_party/closure_library
 		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/googletest
 		third_party/hunspell
 		third_party/iccjpeg
 		third_party/inspector_protocol
@@ -261,7 +263,6 @@ src_prepare() {
 		third_party/libsecret
 		third_party/libsrtp
 		third_party/libudev
-		third_party/libusb
 		third_party/libwebm
 		third_party/libxml
 		third_party/libyuv
@@ -301,6 +302,7 @@ src_prepare() {
 		third_party/swiftshader
 		third_party/swiftshader/third_party/llvm-subzero
 		third_party/swiftshader/third_party/pnacl-subzero
+		third_party/swiftshader/third_party/subzero
 		third_party/tcmalloc
 		third_party/usrsctp
 		third_party/vulkan
@@ -353,7 +355,6 @@ src_configure() {
 	# Use system-provided libraries.
 	# TODO: use_system_hunspell (upstream changes needed).
 	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_libusb (http://crbug.com/266149).
 	# TODO: xml (bug #616818).
 	# TODO: use_system_protobuf (bug #525560).
 	# TODO: use_system_ssl (http://crbug.com/58087).
@@ -511,23 +512,6 @@ src_configure() {
 	out/Release/gn gen --args="${myconf_gn}" out/Release || die
 }
 
-eninja() {
-	if [[ -z ${NINJAOPTS+set} ]]; then
-		local jobs=$(makeopts_jobs)
-		local loadavg=$(makeopts_loadavg)
-
-		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
-			NINJAOPTS+=" -j ${jobs}"
-		fi
-		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
-			NINJAOPTS+=" -l ${loadavg}"
-		fi
-	fi
-	set -- ninja -v ${NINJAOPTS} "$@"
-	echo "$@"
-	"$@"
-}
-
 src_compile() {
 	local ninja_targets="chrome chromedriver"
 	if use suid; then

diff --git a/www-client/chromium/files/chromium-FORTIFY_SOURCE-r1.patch b/www-client/chromium/files/chromium-FORTIFY_SOURCE-r1.patch
new file mode 100644
index 00000000000..cda19bb9239
--- /dev/null
+++ b/www-client/chromium/files/chromium-FORTIFY_SOURCE-r1.patch
@@ -0,0 +1,29 @@
+Drop _FORTIFY_SOURCE=2 from defines
+
+Gentoo toolchains enable this by default. Removing this prevents spammy
+warnings about the macro being redefined.
+
+--- a/build/config/compiler/BUILD.gn.orig	2017-05-17 08:37:23.147973304 +0000
++++ b/build/config/compiler/BUILD.gn	2017-05-17 08:37:44.448414953 +0000
+@@ -1161,21 +1161,6 @@
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer &&
+-        (!is_linux || !is_clang || is_official_build) &&
+-        current_cpu != "s390x" && current_cpu != "s390" &&
+-        current_cpu != "ppc64" && current_cpu != "ppc64") {
+-      # _FORTIFY_SOURCE isn't really supported by Clang now, see
+-      # http://llvm.org/bugs/show_bug.cgi?id=16821.
+-      # It seems to work fine with Ubuntu 12 headers though, so use it in
+-      # official builds.
+-      #
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac || is_ios) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]

diff --git a/www-client/chromium/files/chromium-system-libpng-r1.patch b/www-client/chromium/files/chromium-system-libpng-r1.patch
new file mode 100644
index 00000000000..7c329c71f7d
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-libpng-r1.patch
@@ -0,0 +1,18 @@
+--- a/build/linux/unbundle/libpng.gn.orig	2017-05-17 09:57:24.487799547 +0000
++++ b/build/linux/unbundle/libpng.gn	2017-05-17 09:57:47.680282784 +0000
+@@ -5,7 +5,7 @@
+ import("//build/config/linux/pkg_config.gni")
+ import("//build/shim_headers.gni")
+ 
+-pkg_config("system_libpng") {
++pkg_config("libpng_config") {
+   packages = [ "libpng" ]
+ }
+ 
+@@ -21,5 +21,5 @@
+   deps = [
+     ":libpng_shim",
+   ]
+-  public_configs = [ ":system_libpng" ]
++  public_configs = [ ":libpng_config" ]
+ }

diff --git a/www-client/chromium/files/chromium-system-libwebp-r1.patch b/www-client/chromium/files/chromium-system-libwebp-r1.patch
new file mode 100644
index 00000000000..cf8beabea24
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-libwebp-r1.patch
@@ -0,0 +1,9 @@
+--- a/build/linux/unbundle/libwebp.gn.orig	2017-05-17 10:12:50.147089090 +0000
++++ b/build/linux/unbundle/libwebp.gn	2017-05-17 10:13:02.763351884 +0000
+@@ -6,5 +6,6 @@
+   libs = [
+     "webp",
+     "webpdemux",
++    "webpmux",
+   ]
+ }


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-04-28 15:09 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-04-28 15:09 UTC (permalink / raw
  To: gentoo-commits

commit:     c387b221c37fe243cf51a6e6d1493fd738f633ac
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 28 15:09:01 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Fri Apr 28 15:09:01 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c387b221

www-client/chromium: beta channel bump (59.0.3071.29)

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ....3063.4.ebuild => chromium-59.0.3071.29.ebuild} | 46 ++++++++--------------
 .../chromium/files/chromium-system-ffmpeg-r6.patch | 43 ++++++++++++++++++++
 3 files changed, 61 insertions(+), 30 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 642c18294ad..a2fcdb90d75 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-58.0.3029.81.tar.xz 509252204 SHA256 5ab61b7025a5143fa1b21713479b316ec7a98e262e79e84f9c9a9656179217cb SHA512 49e8a641e6fe839880ac4cc17aa4b79875dbd0e14adcf7ad0138730334555fd57c93c1e7ebdf6f03c61528c351a5a489f56fb7d7809aef268627b186c547a4f3 WHIRLPOOL eed9d97cd4cb4d9a56864e65e797f6d126327d6e9371bdfe416fd57f0f4c9c83f37e125798a1753b5d8bc5921036bdfe064b3d7e94c3ba315a710241a6c5b179
-DIST chromium-59.0.3063.4.tar.xz 519742312 SHA256 3ed3240fca23675f59d0bbf32884ba7c1b6d2288cf499b27d7792d499d8d6d60 SHA512 4dfb4948f4632f813b35eed3935cd771c435dce4dfbd77b698c6e7df7a19af037368293d2cd91d44353aa15de0c47cb809fa144258324116b8c18e2fde16ebff WHIRLPOOL cb183a61ce92d3e99befd2b7503100a63eaa64e33b8ae049571138cbe01d768757dc50555111d4ac11546d1cd8f73717d9904a794a3146c54d3afa1420986dc4
 DIST chromium-59.0.3067.0.tar.xz 519365816 SHA256 a8edc9aaa2cb24fc227740f4bc3585980c6e01c3a1117b7a77a7802b6c92767f SHA512 877f53f288ec865f623ad2cdbe70d4e2a3728d5af05252275931697041a86fff7e0a0a3ef228d9169ffd2edda7ed636f8dbe1bf1abed0b9900a857a0b86455fc WHIRLPOOL 98d816351e0e3f3ddad3fd11d57e70e9c9dd82d40376e08b6a8416dbf4500aa9eec9c0ad7ee760d7db85697863bd5834223c205273f37e0900d32c1aa7b7c237
+DIST chromium-59.0.3071.29.tar.xz 531699488 SHA256 8a727561e4d9892d99d93cdbed29bdc97aa597c3e0ff819100eb822bae35e79d SHA512 e364aa088f812b919043f3ef70bbc3505f383146f5736599eb982e36eddc6440703c77f6416f76eafa5e2a9ae3b3e954e8acd2457d28666b06a9ca6c8a655e4d WHIRLPOOL 99ac0719890d901c43dcbd392ee26ffaa959e9d8fe09a4eba64d51a921ca0371e913ed34c7e720fb81d42e6fc16d439548eb01afa128a0707a1788b70bcb32a8

diff --git a/www-client/chromium/chromium-59.0.3063.4.ebuild b/www-client/chromium/chromium-59.0.3071.29.ebuild
similarity index 94%
rename from www-client/chromium/chromium-59.0.3063.4.ebuild
rename to www-client/chromium/chromium-59.0.3071.29.ebuild
index 102478627cc..34f1b009d9b 100644
--- a/www-client/chromium/chromium-59.0.3063.4.ebuild
+++ b/www-client/chromium/chromium-59.0.3071.29.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="component-build cups gconf gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-libvpx +tcmalloc widevine"
+IUSE="component-build cups gconf gnome-keyring +gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-libvpx +tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
 # Native Client binaries are compiled with different set of flags, bug #452066.
@@ -30,12 +30,9 @@ QA_PRESTRIPPED=".*\.nexe"
 COMMON_DEPEND="
 	app-arch/bzip2:=
 	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/elfutils-0.149
 	dev-libs/expat:=
 	dev-libs/glib:2
 	dev-libs/icu:=
-	>=dev-libs/jsoncpp-0.5.0-r1:=
-	dev-libs/libxml2:=[icu]
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.14.3:=
@@ -45,21 +42,17 @@ COMMON_DEPEND="
 	>=media-libs/alsa-lib-1.0.19:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	>=media-libs/harfbuzz-1.3.1:=[icu(+)]
-	media-libs/libexif:=
+	>=media-libs/harfbuzz-1.4.2:=
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
-	media-libs/speex:=
 	pulseaudio? ( media-sound/pulseaudio:= )
 	system-ffmpeg? ( >=media-video/ffmpeg-3:= )
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
-	>=sys-libs/libcap-2.22:=
 	virtual/udev
 	x11-libs/cairo:=
 	x11-libs/gdk-pixbuf:2
-	x11-libs/libdrm
 	x11-libs/libX11:=
 	x11-libs/libXcomposite:=
 	x11-libs/libXcursor:=
@@ -67,7 +60,6 @@ COMMON_DEPEND="
 	x11-libs/libXext:=
 	x11-libs/libXfixes:=
 	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXinerama:=
 	x11-libs/libXrandr:=
 	x11-libs/libXrender:=
 	x11-libs/libXScrnSaver:=
@@ -93,23 +85,22 @@ RDEPEND="${COMMON_DEPEND}
 	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
 "
 # dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
 DEPEND="${COMMON_DEPEND}
 	>=app-arch/gzip-1.7
 	!arm? (
 		dev-lang/yasm
 	)
 	dev-lang/perl
-	dev-perl/JSON
 	>=dev-util/gperf-3.0.3
 	dev-util/ninja
 	net-libs/nodejs
 	sys-apps/hwids[usb(+)]
+	tcmalloc? ( !<sys-apps/sandbox-2.11 )
 	>=sys-devel/bison-2.4.3
 	sys-devel/flex
 	virtual/pkgconfig
 	dev-vcs/git
-	x11-libs/gtk+:2
-	x11-libs/gtk+:3
 	$(python_gen_any_dep '
 		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
 		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
@@ -145,14 +136,9 @@ are not displayed properly:
 - media-fonts/wqy-microhei
 - media-fonts/wqy-zenhei
 
-Depending on your desktop environment, you may need
-to install additional packages to get icons on the Downloads page.
-
-For KDE, the required package is kde-frameworks/oxygen-icons.
-
-For other desktop environments, try one of the following:
-- x11-themes/gnome-icon-theme
-- x11-themes/tango-icon-theme
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
 "
 
 pre_build_checks() {
@@ -201,8 +187,8 @@ src_prepare() {
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
 		"${FILESDIR}/skia-avx2.patch"
 		"${FILESDIR}/${PN}-dma-buf-r1.patch"
-		"${FILESDIR}/${PN}-system-ffmpeg-r5.patch"
-		"${FILESDIR}/${PN}-system-libjpeg-r1.patch"
+		"${FILESDIR}/${PN}-system-ffmpeg-r6.patch"
+		"${FILESDIR}/${PN}-system-icu-r1.patch"
 	)
 
 	default
@@ -274,7 +260,7 @@ src_prepare() {
 		third_party/libudev
 		third_party/libusb
 		third_party/libwebm
-		third_party/libxml/chromium
+		third_party/libxml
 		third_party/libyuv
 		third_party/lss
 		third_party/lzma_sdk
@@ -295,7 +281,6 @@ src_prepare() {
 		third_party/pdfium/third_party/bigint
 		third_party/pdfium/third_party/freetype
 		third_party/pdfium/third_party/lcms2-2.6
-		third_party/pdfium/third_party/libjpeg
 		third_party/pdfium/third_party/libopenjpeg20
 		third_party/pdfium/third_party/libpng16
 		third_party/pdfium/third_party/libtiff
@@ -308,6 +293,9 @@ src_prepare() {
 		third_party/skia
 		third_party/smhasher
 		third_party/sqlite
+		third_party/swiftshader
+		third_party/swiftshader/third_party/llvm-subzero
+		third_party/swiftshader/third_party/pnacl-subzero
 		third_party/tcmalloc
 		third_party/usrsctp
 		third_party/web-animations-js
@@ -351,6 +339,8 @@ src_configure() {
 	# for development and debugging.
 	myconf_gn+=" is_component_build=$(usex component-build true false)"
 
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
 	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
 	myconf_gn+=" enable_nacl=false"
 
@@ -358,6 +348,7 @@ src_configure() {
 	# TODO: use_system_hunspell (upstream changes needed).
 	# TODO: use_system_libsrtp (bug #459932).
 	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: xml (bug #616818).
 	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
 	# TODO: use_system_protobuf (bug #525560).
 	# TODO: use_system_ssl (http://crbug.com/58087).
@@ -372,7 +363,6 @@ src_configure() {
 		libjpeg
 		libpng
 		libwebp
-		libxml
 		libxslt
 		re2
 		snappy
@@ -510,9 +500,7 @@ src_configure() {
 	touch chrome/test/data/webui/i18n_process_css_test.html || die
 
 	einfo "Configuring Chromium..."
-	# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
-	tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn} use_allocator=\"none\"" || die
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+	tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args "${myconf_gn}" || die
 	out/Release/gn gen --args="${myconf_gn}" out/Release || die
 }
 

diff --git a/www-client/chromium/files/chromium-system-ffmpeg-r6.patch b/www-client/chromium/files/chromium-system-ffmpeg-r6.patch
new file mode 100644
index 00000000000..d2e0157bfe3
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r6.patch
@@ -0,0 +1,43 @@
+--- a/media/ffmpeg/ffmpeg_common.h.orig	2017-04-07 18:17:22.623538889 +0000
++++ b/media/ffmpeg/ffmpeg_common.h	2017-04-07 18:18:16.780656283 +0000
+@@ -23,10 +23,12 @@
+ 
+ // Include FFmpeg header files.
+ extern "C" {
++#if !defined(USE_SYSTEM_FFMPEG)
+ // Disable deprecated features which result in spammy compile warnings.  This
+ // list of defines must mirror those in the 'defines' section of FFmpeg's
+ // BUILD.gn file or the headers below will generate different structures!
+ #define FF_API_CONVERGENCE_DURATION 0
++#endif  // !defined(USE_SYSTEM_FFMPEG)
+ // Upstream libavcodec/utils.c still uses the deprecated
+ // av_dup_packet(), causing deprecation warnings.
+ // The normal fix for such things is to disable the feature as below,
+@@ -40,7 +42,9 @@
+ MSVC_PUSH_DISABLE_WARNING(4244);
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
++#if !defined(USE_SYSTEM_FFMPEG)
+ #include <libavformat/internal.h>
++#endif  // !defined(USE_SYSTEM_FFMPEG)
+ #include <libavformat/avio.h>
+ #include <libavutil/avutil.h>
+ #include <libavutil/imgutils.h>
+--- a/media/filters/ffmpeg_demuxer.cc.orig	2017-04-07 18:15:14.776901183 +0000
++++ b/media/filters/ffmpeg_demuxer.cc	2017-04-07 18:15:54.813727201 +0000
+@@ -1223,6 +1223,7 @@
+   // If no estimate is found, the stream entry will be kInfiniteDuration.
+   std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
+                                                     kInfiniteDuration);
++#if !defined(USE_SYSTEM_FFMPEG)
+   const AVFormatInternal* internal = format_context->internal;
+   if (internal && internal->packet_buffer &&
+       format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+@@ -1246,6 +1247,7 @@
+       packet_buffer = packet_buffer->next;
+     }
+   }
++#endif  // !defined(USE_SYSTEM_FFMPEG)
+ 
+   std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
+ 


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-04-13 19:18 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-04-13 19:18 UTC (permalink / raw
  To: gentoo-commits

commit:     f2345c0af633116a69051239ab10d858d5aea69a
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 13 13:59:14 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Apr 13 19:17:10 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f2345c0a

www-client/chromium: dev channel bump (59.0.3067.0)

 www-client/chromium/Manifest                       |   2 +-
 ...0.3053.3.ebuild => chromium-59.0.3067.0.ebuild} |  19 +-
 .../chromium/files/chromium-system-icu-r1.patch    | 224 +++++++++++++++++++++
 3 files changed, 235 insertions(+), 10 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 62ce4fb1584..1a62c850710 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-57.0.2987.133.tar.xz 525240460 SHA256 70011770a7e522c92826a3af48d3fd28a46bf8042897d072d20c748cbf828cf7 SHA512 b53fb357d3f11b45a46b3fe52a10b0d20cf8f3fedc8454ceca6b8d1ea9c526493cfeeb4472766e3f23ceba5cd53b089a2639d6a166fbfa91db05153571b59039 WHIRLPOOL 25854c4c1c9b9fde2c0bd9af7c374fe3fe78a19a34703cf54cb157a257c7408bf1bf58c199afbc16009e99bc4a3cdc578e907e78fc45bc781e59ab39b877c374
 DIST chromium-58.0.3029.14.tar.xz 509043400 SHA256 b7a02ec45d61516552f7377bd066ee1d77a4ededc03c4c53c18373797dc8d8c4 SHA512 b84c422965c694eee4159bd4f8c102fda5e7d8012adf195c2882f9ef3030a0433fac666de85bfcdd4e635d82a57dfa9f3d4e8000dfb8ada2e068348190a4524c WHIRLPOOL dc47733b3344f58fa1a3bc3f1dcac5088d9bbfcffa1c395547ff42367d2164f51cced3f9ad4afc7157834339dbe3fbe6790c835345533c917013770fe11ebec7
 DIST chromium-58.0.3029.19.tar.xz 509050504 SHA256 ffe5b52faf219bee7675460ac56b3d62a3ee9fd2001f4a854224a1445b8af5e6 SHA512 b1780d4920d14e4861b5e5895accf49d7b65d49345ec243d7d1042ca1d0246cb3b4fcfa383ea3a6ef9a2145bc526be71286af156051a058f4f699b64cce772cb WHIRLPOOL e5e57370aa06ef8ef7b1e923f684148a1035dc3c4282e6a327cbe4f6e7a472ed724e5c4edb3e5ea91ed3620ea6a9d9f23c5ddb52246ff840b7997e3b00bebc8a
-DIST chromium-59.0.3053.3.tar.xz 516942144 SHA256 55126fa8954093d513a77191ff32b194647f119a0dfbf101c636e5d557c28252 SHA512 5a5d0f6d06ffbaf13e6e1e7442a86418f07ed00654926fad9ba1ae3458f0a67374da3a43d8235abd5a6db0827f57c25a631d537e6475c23488ffc272a65fbfee WHIRLPOOL 1df35cffa2160fdd95f834df10b6f6e07703b9070bd46b7d5631dca66ab0ec4b2d6d947ad9e0c80f0a8f6380b1bf9afd23df6842f827005638b6e710eda8aa3c
 DIST chromium-59.0.3063.4.tar.xz 519742312 SHA256 3ed3240fca23675f59d0bbf32884ba7c1b6d2288cf499b27d7792d499d8d6d60 SHA512 4dfb4948f4632f813b35eed3935cd771c435dce4dfbd77b698c6e7df7a19af037368293d2cd91d44353aa15de0c47cb809fa144258324116b8c18e2fde16ebff WHIRLPOOL cb183a61ce92d3e99befd2b7503100a63eaa64e33b8ae049571138cbe01d768757dc50555111d4ac11546d1cd8f73717d9904a794a3146c54d3afa1420986dc4
+DIST chromium-59.0.3067.0.tar.xz 519365816 SHA256 a8edc9aaa2cb24fc227740f4bc3585980c6e01c3a1117b7a77a7802b6c92767f SHA512 877f53f288ec865f623ad2cdbe70d4e2a3728d5af05252275931697041a86fff7e0a0a3ef228d9169ffd2edda7ed636f8dbe1bf1abed0b9900a857a0b86455fc WHIRLPOOL 98d816351e0e3f3ddad3fd11d57e70e9c9dd82d40376e08b6a8416dbf4500aa9eec9c0ad7ee760d7db85697863bd5834223c205273f37e0900d32c1aa7b7c237

diff --git a/www-client/chromium/chromium-59.0.3053.3.ebuild b/www-client/chromium/chromium-59.0.3067.0.ebuild
similarity index 97%
rename from www-client/chromium/chromium-59.0.3053.3.ebuild
rename to www-client/chromium/chromium-59.0.3067.0.ebuild
index 6ca1bccd1a2..e58a23908a2 100644
--- a/www-client/chromium/chromium-59.0.3053.3.ebuild
+++ b/www-client/chromium/chromium-59.0.3067.0.ebuild
@@ -93,6 +93,7 @@ RDEPEND="${COMMON_DEPEND}
 	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
 "
 # dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
 DEPEND="${COMMON_DEPEND}
 	>=app-arch/gzip-1.7
 	!arm? (
@@ -104,6 +105,7 @@ DEPEND="${COMMON_DEPEND}
 	dev-util/ninja
 	net-libs/nodejs
 	sys-apps/hwids[usb(+)]
+	!<sys-apps/sandbox-2.11
 	>=sys-devel/bison-2.4.3
 	sys-devel/flex
 	virtual/pkgconfig
@@ -200,12 +202,12 @@ src_prepare() {
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
 		"${FILESDIR}/skia-avx2.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r4.patch"
 		"${FILESDIR}/${PN}-dma-buf-r1.patch"
+		"${FILESDIR}/${PN}-system-ffmpeg-r5.patch"
+		"${FILESDIR}/${PN}-system-libjpeg-r1.patch"
+		"${FILESDIR}/${PN}-system-icu-r1.patch"
 	)
 
-	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )
-
 	default
 
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die
@@ -255,6 +257,7 @@ src_prepare() {
 		third_party/fips181
 		third_party/flatbuffers
 		third_party/flot
+		third_party/freetype
 		third_party/google_input_tools
 		third_party/google_input_tools/third_party/closure_library
 		third_party/google_input_tools/third_party/closure_library/third_party/closure
@@ -267,7 +270,6 @@ src_prepare() {
 		third_party/leveldatabase
 		third_party/libXNVCtrl
 		third_party/libaddressinput
-		third_party/libdrm
 		third_party/libjingle
 		third_party/libphonenumber
 		third_party/libsecret
@@ -296,11 +298,9 @@ src_prepare() {
 		third_party/pdfium/third_party/bigint
 		third_party/pdfium/third_party/freetype
 		third_party/pdfium/third_party/lcms2-2.6
-		third_party/pdfium/third_party/libjpeg
 		third_party/pdfium/third_party/libopenjpeg20
 		third_party/pdfium/third_party/libpng16
 		third_party/pdfium/third_party/libtiff
-		third_party/pdfium/third_party/zlib_v128
 		third_party/ply
 		third_party/polymer
 		third_party/protobuf
@@ -353,6 +353,8 @@ src_configure() {
 	# for development and debugging.
 	myconf_gn+=" is_component_build=$(usex component-build true false)"
 
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
 	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
 	myconf_gn+=" enable_nacl=false"
 
@@ -370,6 +372,7 @@ src_configure() {
 		flac
 		harfbuzz-ng
 		icu
+		libdrm
 		libjpeg
 		libpng
 		libwebp
@@ -511,9 +514,7 @@ src_configure() {
 	touch chrome/test/data/webui/i18n_process_css_test.html || die
 
 	einfo "Configuring Chromium..."
-	# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
-	tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn} use_allocator=\"none\"" || die
-	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+	tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
 	out/Release/gn gen --args="${myconf_gn}" out/Release || die
 }
 

diff --git a/www-client/chromium/files/chromium-system-icu-r1.patch b/www-client/chromium/files/chromium-system-icu-r1.patch
new file mode 100644
index 00000000000..6356467c21c
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-icu-r1.patch
@@ -0,0 +1,224 @@
+Index: third_party/WebKit/Source/platform/text/CharacterEmoji.cpp
+diff --git a/third_party/WebKit/Source/platform/text/CharacterEmoji.cpp b/third_party/WebKit/Source/platform/text/CharacterEmoji.cpp
+index af051b46589bed421afd1da1e44623820c8f9136..60059d25dd808a0a55481d9bec3020b95175e45c 100644
+--- a/third_party/WebKit/Source/platform/text/CharacterEmoji.cpp
++++ b/third_party/WebKit/Source/platform/text/CharacterEmoji.cpp
+@@ -192,26 +192,26 @@ static void applyPatternAndFreeze(icu::UnicodeSet* unicodeSet,
+   DCHECK_EQ(err, U_ZERO_ERROR);
+ }
+ 
+-bool Character::isEmoji(UChar32 ch) {
+-  return Character::isEmojiTextDefault(ch) ||
+-         Character::isEmojiEmojiDefault(ch);
++bool Character::IsEmoji(UChar32 ch) {
++  return Character::IsEmojiTextDefault(ch) ||
++         Character::IsEmojiEmojiDefault(ch);
+ }
+ 
+-bool Character::isEmojiTextDefault(UChar32 ch) {
++bool Character::IsEmojiTextDefault(UChar32 ch) {
+   DEFINE_STATIC_LOCAL(icu::UnicodeSet, emojiTextSet, ());
+   if (emojiTextSet.isEmpty())
+     applyPatternAndFreeze(&emojiTextSet, kEmojiTextPattern);
+-  return emojiTextSet.contains(ch) && !isEmojiEmojiDefault(ch);
++  return emojiTextSet.contains(ch) && !IsEmojiEmojiDefault(ch);
+ }
+ 
+-bool Character::isEmojiEmojiDefault(UChar32 ch) {
++bool Character::IsEmojiEmojiDefault(UChar32 ch) {
+   DEFINE_STATIC_LOCAL(icu::UnicodeSet, emojiEmojiSet, ());
+   if (emojiEmojiSet.isEmpty())
+     applyPatternAndFreeze(&emojiEmojiSet, kEmojiEmojiPattern);
+   return emojiEmojiSet.contains(ch);
+ }
+ 
+-bool Character::isEmojiModifierBase(UChar32 ch) {
++bool Character::IsEmojiModifierBase(UChar32 ch) {
+   DEFINE_STATIC_LOCAL(icu::UnicodeSet, emojieModifierBaseSet, ());
+   if (emojieModifierBaseSet.isEmpty())
+     applyPatternAndFreeze(&emojieModifierBaseSet, kEmojiModifierBasePattern);
+Index: third_party/WebKit/Source/platform/text/CharacterPropertyDataGenerator.cpp
+diff --git a/third_party/WebKit/Source/platform/text/CharacterPropertyDataGenerator.cpp b/third_party/WebKit/Source/platform/text/CharacterPropertyDataGenerator.cpp
+index 55c4d36e8c217680da9131aac063e38ad3b1fe3d..f3000190d4473daf39f0bc7fe5c262c21ecca4a0 100644
+--- a/third_party/WebKit/Source/platform/text/CharacterPropertyDataGenerator.cpp
++++ b/third_party/WebKit/Source/platform/text/CharacterPropertyDataGenerator.cpp
+@@ -20,7 +20,7 @@
+ namespace blink {
+ 
+ #if defined(USING_SYSTEM_ICU)
+-static void generate(FILE*) {}
++static void Generate(FILE*) {}
+ #else
+ 
+ const UChar32 kMaxCodepoint = 0x10FFFF;
+Index: third_party/WebKit/Source/platform/wtf/text/TextCodecICU.cpp
+diff --git a/third_party/WebKit/Source/platform/wtf/text/TextCodecICU.cpp b/third_party/WebKit/Source/platform/wtf/text/TextCodecICU.cpp
+index 6d6f6f10e73dd6a413221d1e7f2d1e2a2d674e8b..ddf01cd9e2207bace2a0c4cab461750e86e0bf0d 100644
+--- a/third_party/WebKit/Source/platform/wtf/text/TextCodecICU.cpp
++++ b/third_party/WebKit/Source/platform/wtf/text/TextCodecICU.cpp
+@@ -63,16 +63,16 @@ void TextCodecICU::RegisterEncodingNames(EncodingNameRegistrar registrar) {
+   // apart; ICU treats these names as synonyms.
+   registrar("ISO-8859-8-I", "ISO-8859-8-I");
+ 
+-  int32_t num_encodings = ucnv_countAvailable();
+-  for (int32_t i = 0; i < num_encodings; ++i) {
++  int32_t nuencoding_s = ucnv_countAvailable();
++  for (int32_t i = 0; i < nuencoding_s; ++i) {
+     const char* name = ucnv_getAvailableName(i);
+     UErrorCode error = U_ZERO_ERROR;
+ #if !defined(USING_SYSTEM_ICU)
+     const char* primary_standard = "HTML";
+     const char* secondary_standard = "MIME";
+ #else
+-    const char* primaryStandard = "MIME";
+-    const char* secondaryStandard = "IANA";
++    const char* primary_standard = "MIME";
++    const char* secondary_standard = "IANA";
+ #endif
+     const char* standard_name =
+         ucnv_getStandardName(name, primary_standard, &error);
+@@ -94,20 +94,21 @@ void TextCodecICU::RegisterEncodingNames(EncodingNameRegistrar registrar) {
+ //    encoding for encoding GB_2312-80 and several others. So, we need to
+ //    override this behavior, too.
+ #if defined(USING_SYSTEM_ICU)
+-    if (!strcmp(standardName, "GB2312") || !strcmp(standardName, "GB_2312-80"))
+-      standardName = "GBK";
++    if (!strcmp(standard_name, "GB2312") || !strcmp(standard_name, "GB_2312-80")) {
++      standard_name = "GBK";
+     // Similarly, EUC-KR encodings all map to an extended version, but
+     // per HTML5, the canonical name still should be EUC-KR.
+-    else if (!strcmp(standardName, "EUC-KR") ||
+-             !strcmp(standardName, "KSC_5601") ||
+-             !strcmp(standardName, "cp1363"))
+-      standardName = "EUC-KR";
++    } else if (!strcmp(standard_name, "EUC-KR") ||
++               !strcmp(standard_name, "KSC_5601") ||
++               !strcmp(standard_name, "cp1363")) {
++      standard_name = "EUC-KR";
+     // And so on.
+-    else if (!strcasecmp(standardName, "iso-8859-9"))
++    } else if (!strcasecmp(standard_name, "iso-8859-9")) {
+       // This name is returned in different case by ICU 3.2 and 3.6.
+-      standardName = "windows-1254";
+-    else if (!strcmp(standardName, "TIS-620"))
+-      standardName = "windows-874";
++      standard_name = "windows-1254";
++    } else if (!strcmp(standard_name, "TIS-620")) {
++      standard_name = "windows-874";
++    }
+ #endif
+ 
+     registrar(standard_name, standard_name);
+@@ -229,8 +230,8 @@ void TextCodecICU::RegisterCodecs(TextCodecRegistrar registrar) {
+   // See comment above in registerEncodingNames.
+   registrar("ISO-8859-8-I", Create, 0);
+ 
+-  int32_t num_encodings = ucnv_countAvailable();
+-  for (int32_t i = 0; i < num_encodings; ++i) {
++  int32_t nuencoding_s = ucnv_countAvailable();
++  for (int32_t i = 0; i < nuencoding_s; ++i) {
+     const char* name = ucnv_getAvailableName(i);
+     UErrorCode error = U_ZERO_ERROR;
+     const char* standard_name = ucnv_getStandardName(name, "MIME", &error);
+@@ -272,7 +273,7 @@ void TextCodecICU::CreateICUConverter() const {
+   DCHECK(!converter_icu_);
+ 
+ #if defined(USING_SYSTEM_ICU)
+-  const char* name = m_encoding.name();
++  const char* name = encoding_.GetName();
+   m_needsGBKFallbacks =
+       name[0] == 'G' && name[1] == 'B' && name[2] == 'K' && !name[3];
+ #endif
+@@ -393,16 +394,16 @@ String TextCodecICU::Decode(const char* bytes,
+   // Chrome's copy of ICU does not have the issue described below.
+   return result.ToString();
+ #else
+-  String resultString = result.toString();
++  String resultString = result.ToString();
+ 
+   // <http://bugs.webkit.org/show_bug.cgi?id=17014>
+   // Simplified Chinese pages use the code A3A0 to mean "full-width space", but
+   // ICU decodes it as U+E5E5.
+-  if (!strcmp(m_encoding.name(), "GBK")) {
+-    if (!strcasecmp(m_encoding.name(), "gb18030"))
+-      resultString.replace(0xE5E5, ideographicSpaceCharacter);
++  if (!strcmp(encoding_.GetName(), "GBK")) {
++    if (!strcasecmp(encoding_.GetName(), "gb18030"))
++      resultString.Replace(0xE5E5, ideographicSpaceCharacter);
+     // Make GBK compliant to the encoding spec and align with GB18030
+-    resultString.replace(0x01F9, 0xE7C8);
++    resultString.Replace(0x01F9, 0xE7C8);
+     // FIXME: Once https://www.w3.org/Bugs/Public/show_bug.cgi?id=28740#c3
+     // is resolved, add U+1E3F => 0xE7C7.
+   }
+@@ -506,7 +507,7 @@ static void gbkCallbackEscape(const void* context,
+     ucnv_cbFromUWriteUChars(fromUArgs, &source, source + 1, 0, err);
+     return;
+   }
+-  numericEntityCallback(context, fromUArgs, codeUnits, length, codePoint,
++  NumericEntityCallback(context, fromUArgs, codeUnits, length, codePoint,
+                         reason, err);
+ }
+ 
+@@ -525,7 +526,7 @@ static void gbkCssEscapedEntityCallack(const void* context,
+       ucnv_cbFromUWriteUChars(fromUArgs, &source, source + 1, 0, err);
+       return;
+     }
+-    cssEscapedEntityCallback(context, fromUArgs, codeUnits, length, codePoint,
++    CssEscapedEntityCallback(context, fromUArgs, codeUnits, length, codePoint,
+                              reason, err);
+     return;
+   }
+@@ -548,7 +549,7 @@ static void gbkUrlEscapedEntityCallack(const void* context,
+       ucnv_cbFromUWriteUChars(fromUArgs, &source, source + 1, 0, err);
+       return;
+     }
+-    urlEscapedEntityCallback(context, fromUArgs, codeUnits, length, codePoint,
++    UrlEscapedEntityCallback(context, fromUArgs, codeUnits, length, codePoint,
+                              reason, err);
+     return;
+   }
+@@ -622,7 +623,7 @@ CString TextCodecICU::EncodeInternal(const TextCodecInput& input,
+                             0, 0, &err);
+ #else
+       ucnv_setFromUCallBack(
+-          m_converterICU, m_needsGBKFallbacks ? gbkCallbackSubstitute
++          converter_icu_, m_needsGBKFallbacks ? gbkCallbackSubstitute
+                                               : UCNV_FROM_U_CALLBACK_SUBSTITUTE,
+           0, 0, 0, &err);
+ #endif
+@@ -633,8 +634,8 @@ CString TextCodecICU::EncodeInternal(const TextCodecInput& input,
+                             &err);
+ #else
+       ucnv_setFromUCallBack(
+-          m_converterICU,
+-          m_needsGBKFallbacks ? gbkCallbackEscape : numericEntityCallback, 0, 0,
++          converter_icu_,
++          m_needsGBKFallbacks ? gbkCallbackEscape : NumericEntityCallback, 0, 0,
+           0, &err);
+ #endif
+       break;
+@@ -643,9 +644,9 @@ CString TextCodecICU::EncodeInternal(const TextCodecInput& input,
+       ucnv_setFromUCallBack(converter_icu_, UrlEscapedEntityCallback, 0, 0, 0,
+                             &err);
+ #else
+-      ucnv_setFromUCallBack(m_converterICU,
++      ucnv_setFromUCallBack(converter_icu_,
+                             m_needsGBKFallbacks ? gbkUrlEscapedEntityCallack
+-                                                : urlEscapedEntityCallback,
++                                                : UrlEscapedEntityCallback,
+                             0, 0, 0, &err);
+ #endif
+       break;
+@@ -654,9 +655,9 @@ CString TextCodecICU::EncodeInternal(const TextCodecInput& input,
+       ucnv_setFromUCallBack(converter_icu_, CssEscapedEntityCallback, 0, 0, 0,
+                             &err);
+ #else
+-      ucnv_setFromUCallBack(m_converterICU,
++      ucnv_setFromUCallBack(converter_icu_,
+                             m_needsGBKFallbacks ? gbkCssEscapedEntityCallack
+-                                                : cssEscapedEntityCallback,
++                                                : CssEscapedEntityCallback,
+                             0, 0, 0, &err);
+ #endif
+       break;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-03-22  2:39 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-03-22  2:39 UTC (permalink / raw
  To: gentoo-commits

commit:     f8a72fe420751ebd6d1e3c32410e16a2008de0ac
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 22 02:38:56 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Mar 22 02:38:56 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f8a72fe4

www-client/chromium: work around skia build failure with GCC

Bug: https://bugs.gentoo.org/608640
Package-Manager: Portage-2.3.5_p2, Repoman-2.3.2_p32

 www-client/chromium/chromium-58.0.3029.19.ebuild |  1 +
 www-client/chromium/chromium-59.0.3043.0.ebuild  |  1 +
 www-client/chromium/files/skia-avx2.patch        | 15 +++++++++++++++
 3 files changed, 17 insertions(+)

diff --git a/www-client/chromium/chromium-58.0.3029.19.ebuild b/www-client/chromium/chromium-58.0.3029.19.ebuild
index df09c5655f0..9a0f942fca0 100644
--- a/www-client/chromium/chromium-58.0.3029.19.ebuild
+++ b/www-client/chromium/chromium-58.0.3029.19.ebuild
@@ -200,6 +200,7 @@ src_prepare() {
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
 		"${FILESDIR}/${PN}-gn-bootstrap-r2.patch"
+		"${FILESDIR}/skia-avx2.patch"
 	)
 
 	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )

diff --git a/www-client/chromium/chromium-59.0.3043.0.ebuild b/www-client/chromium/chromium-59.0.3043.0.ebuild
index 2d43ee97371..8c0d3caf2ee 100644
--- a/www-client/chromium/chromium-59.0.3043.0.ebuild
+++ b/www-client/chromium/chromium-59.0.3043.0.ebuild
@@ -200,6 +200,7 @@ src_prepare() {
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
 		"${FILESDIR}/${PN}-gn-bootstrap-r3.patch"
+		"${FILESDIR}/skia-avx2.patch"
 	)
 
 	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )

diff --git a/www-client/chromium/files/skia-avx2.patch b/www-client/chromium/files/skia-avx2.patch
new file mode 100644
index 00000000000..a1b530990c0
--- /dev/null
+++ b/www-client/chromium/files/skia-avx2.patch
@@ -0,0 +1,15 @@
+Disable AVX2 code to prevent build failure with GCC
+
+Bug: https://bugs.gentoo.org/608640
+
+--- a/third_party/skia/include/core/SkPreConfig.h
++++ b/third_party/skia/include/core/SkPreConfig.h
+@@ -125,7 +125,7 @@
+     // These checks must be done in descending order to ensure we set the highest
+     // available SSE level.
+     #if defined(__AVX2__)
+-        #define SK_CPU_SSE_LEVEL    SK_CPU_SSE_LEVEL_AVX2
++        #define SK_CPU_SSE_LEVEL    SK_CPU_SSE_LEVEL_AVX
+     #elif defined(__AVX__)
+         #define SK_CPU_SSE_LEVEL    SK_CPU_SSE_LEVEL_AVX
+     #elif defined(__SSE4_2__)


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-03-20 12:12 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-03-20 12:12 UTC (permalink / raw
  To: gentoo-commits

commit:     f55837776b4f36915d842a8b8716c324d565ae6a
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 20 11:54:18 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Mar 20 12:12:09 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f5583777

www-client/chromium: dev channel bump (59.0.3043.0)

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-59.0.3043.0.ebuild    | 651 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r3.patch  |  13 +
 3 files changed, 665 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 6ef2d5d8581..519c2a3684b 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-57.0.2987.98.tar.xz 525286840 SHA256 16b5ecf70fcab8476231636ec20f5415897781b01ed21640283cb358322f792d SHA512 10b832e1cb3693899499080d62f7b9162dd807308b9228b1aeebf0f3481db85d301fcce16cbc089909f4cd08f77205805c7215127415ab2679d15e5dcb87a912 WHIRLPOOL 372dae1469374a156be7343042d48fa27fafcd1007bc64954f88dbb021a793c4ef90ec69b83965ca0b10aa85b0b39d490cd9d106251796184a779ce559ff087d
 DIST chromium-58.0.3029.14.tar.xz 509043400 SHA256 b7a02ec45d61516552f7377bd066ee1d77a4ededc03c4c53c18373797dc8d8c4 SHA512 b84c422965c694eee4159bd4f8c102fda5e7d8012adf195c2882f9ef3030a0433fac666de85bfcdd4e635d82a57dfa9f3d4e8000dfb8ada2e068348190a4524c WHIRLPOOL dc47733b3344f58fa1a3bc3f1dcac5088d9bbfcffa1c395547ff42367d2164f51cced3f9ad4afc7157834339dbe3fbe6790c835345533c917013770fe11ebec7
 DIST chromium-58.0.3029.19.tar.xz 509050504 SHA256 ffe5b52faf219bee7675460ac56b3d62a3ee9fd2001f4a854224a1445b8af5e6 SHA512 b1780d4920d14e4861b5e5895accf49d7b65d49345ec243d7d1042ca1d0246cb3b4fcfa383ea3a6ef9a2145bc526be71286af156051a058f4f699b64cce772cb WHIRLPOOL e5e57370aa06ef8ef7b1e923f684148a1035dc3c4282e6a327cbe4f6e7a472ed724e5c4edb3e5ea91ed3620ea6a9d9f23c5ddb52246ff840b7997e3b00bebc8a
+DIST chromium-59.0.3043.0.tar.xz 517038628 SHA256 ad6286835c4348bd7d596ae9948b987af4e08701470f2f2f100a22dd01b06f89 SHA512 9b82389c3d25d9902f3efd3ecce326df05df405ad1619bb997f1eb1b09980b796dde31536062a88b9b4c924587e0c809cac60bfac57e2bd670b3380e310f22a9 WHIRLPOOL 887e2e7b1e2f2b5ba1af4c3de7ae4ac772c8f40a56725a650c4f3f9545758fdb6a71b3816cb0589423c82135e2b08990845100fb6e2286c824a262f9db93567d

diff --git a/www-client/chromium/chromium-59.0.3043.0.ebuild b/www-client/chromium/chromium-59.0.3043.0.ebuild
new file mode 100644
index 00000000000..2d43ee97371
--- /dev/null
+++ b/www-client/chromium/chromium-59.0.3043.0.ebuild
@@ -0,0 +1,651 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib multiprocessing pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="component-build cups gconf gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:2
+	dev-libs/icu:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/libxml2:=[icu]
+	dev-libs/libxslt:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gconf? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	>=media-libs/harfbuzz-1.3.1:=[icu(+)]
+	media-libs/libexif:=
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[svc] )
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-3:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:2
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	media-libs/flac:=
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-57
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	!gtk3? ( x11-libs/gtk+:2 )
+	gtk3? ( x11-libs/gtk+:3 )
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	net-libs/nodejs
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	dev-vcs/git
+	x11-libs/gtk+:2
+	x11-libs/gtk+:3
+	$(python_gen_any_dep '
+		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+		dev-python/html5lib[${PYTHON_USEDEP}]
+		dev-python/simplejson[${PYTHON_USEDEP}]
+	')
+"
+
+# Keep this in sync with the python_gen_any_dep call.
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		local -x CPP="$(tc-getCXX) -E"
+		if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+			# bugs: #601654
+			die "At least clang 3.9.1 is required"
+		fi
+		if tc-is-gcc && ! version_is_at_least 4.8 "$(gcc-version)"; then
+			# bugs: #535730, #525374, #518668, #600288
+			die "At least gcc 4.8 is required"
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	eshopts_pop
+	check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+	pre_build_checks
+}
+
+pkg_setup() {
+	pre_build_checks
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	local PATCHES=(
+		"${FILESDIR}/${PN}-widevine-r1.patch"
+		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r3.patch"
+	)
+
+	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )
+
+	default
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin || die
+	ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		breakpad/src/third_party/curl
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		third_party/WebKit
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/numerics
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/murmurhash
+		third_party/angle/src/third_party/trace_event
+		third_party/boringssl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/py_vulcanize
+		third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
+		third_party/catapult/third_party/py_vulcanize/third_party/rjsmin
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/ced
+		third_party/cld_2
+		third_party/cld_3
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jinja2
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libudev
+		third_party/libusb
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/markupsafe
+		third_party/mesa
+		third_party/modp_b64
+		third_party/mt19937ar
+		third_party/node
+		third_party/node/node_modules/vulcanize/third_party/UglifyJS2
+		third_party/openh264
+		third_party/openmax_dl
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms2-2.6
+		third_party/pdfium/third_party/libjpeg
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/zlib_v128
+		third_party/ply
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/qcms
+		third_party/sfntly
+		third_party/skia
+		third_party/smhasher
+		third_party/sqlite
+		third_party/tcmalloc
+		third_party/usrsctp
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/x86inc
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg )
+	fi
+	if ! use system-libvpx; then
+		keeplibs+=( third_party/libvpx )
+		keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Component build isn't generally intended for use by end users. It's mostly useful
+	# for development and debugging.
+	myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries=(
+		flac
+		harfbuzz-ng
+		icu
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		re2
+		snappy
+		yasm
+		zlib
+	)
+	if use system-ffmpeg; then
+		gn_system_libraries+=( ffmpeg )
+	fi
+	if use system-libvpx; then
+		gn_system_libraries+=( libvpx )
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gconf=$(usex gconf true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_gtk3=$(usex gtk3 true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# https://bugs.gentoo.org/588596
+	append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"${FILESDIR}/toolchain:default\""
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
+	tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn} use_allocator=\"none\"" || die
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+	out/Release/gn gen --args="${myconf_gn}" out/Release || die
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chromedriver"
+	if use suid; then
+		ninja_targets+=" chrome_sandbox"
+	fi
+
+	# Build mksnapshot and pax-mark it.
+	eninja -C out/Release mksnapshot || die
+	pax-mark m out/Release/mksnapshot
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+	# Allow users to override command-line options, bug #357629.
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default"
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	if use widevine; then
+		# These will be provided by chrome-binary-plugins
+		rm out/Release/libwidevinecdm*.so || die
+	fi
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin
+	doins out/Release/*.pak
+	doins out/Release/*.so
+
+	# Needed by bundled icu
+	# doins out/Release/icudtl.dat
+
+	doins -r out/Release/locales
+	doins -r out/Release/resources
+
+	newman out/Release/chrome.1 chromium.1
+	newman out/Release/chrome.1 chromium-browser.1
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser \
+		"Chromium" \
+		chromium-browser \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	insinto /usr/share/gnome-control-center/default-apps
+	newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r3.patch b/www-client/chromium/files/chromium-gn-bootstrap-r3.patch
new file mode 100644
index 00000000000..f214059d1cb
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r3.patch
@@ -0,0 +1,13 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 75e2eb4cce3ae9554c0a25193712683ac221f6c0..10dd512c085d6476fa40d28b04100dccec30b64f 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -472,6 +472,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/task_scheduler/post_task.cc',
+       'base/task_scheduler/priority_queue.cc',
+       'base/task_scheduler/scheduler_lock_impl.cc',
++      'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc',
+       'base/task_scheduler/scheduler_worker.cc',
+       'base/task_scheduler/scheduler_worker_pool_impl.cc',
+       'base/task_scheduler/scheduler_worker_pool_params.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-03-12  1:00 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-03-12  1:00 UTC (permalink / raw
  To: gentoo-commits

commit:     1ba9c56b090a44dd9b5163209e03d9267824531b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 12 00:53:54 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Mar 12 00:55:02 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ba9c56b

www-client/chromium: fix build error with gcc 4.9

Package-Manager: Portage-2.3.3_p79, Repoman-2.3.1_p72

 www-client/chromium/chromium-57.0.2987.98.ebuild |  5 +++--
 www-client/chromium/files/chromium-57-gcc4.patch | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/www-client/chromium/chromium-57.0.2987.98.ebuild b/www-client/chromium/chromium-57.0.2987.98.ebuild
index aa5f20b4328..ab9cd4bf842 100644
--- a/www-client/chromium/chromium-57.0.2987.98.ebuild
+++ b/www-client/chromium/chromium-57.0.2987.98.ebuild
@@ -161,9 +161,9 @@ pre_build_checks() {
 			# bugs: #601654
 			die "At least clang 3.9.1 is required"
 		fi
-		if tc-is-gcc && ! version_is_at_least 5 "$(gcc-major-version)"; then
+		if tc-is-gcc && ! version_is_at_least 4.9 "$(gcc-version)"; then
 			# bugs: #535730, #525374, #518668, #600288
-			die "At least gcc 5 is required"
+			die "At least gcc 4.9 is required"
 		fi
 	fi
 
@@ -198,6 +198,7 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
+		"${FILESDIR}/chromium-57-gcc4.patch"
 	)
 
 	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )

diff --git a/www-client/chromium/files/chromium-57-gcc4.patch b/www-client/chromium/files/chromium-57-gcc4.patch
new file mode 100644
index 00000000000..044c8f41b9f
--- /dev/null
+++ b/www-client/chromium/files/chromium-57-gcc4.patch
@@ -0,0 +1,22 @@
+--- a/chrome/browser/ui/libgtkui/gtk_ui.cc
++++ b/chrome/browser/ui/libgtkui/gtk_ui.cc
+@@ -676,7 +676,7 @@
+             : nullptr);
+   }
+ 
+-  return gtk_border;
++  return std::move(gtk_border);
+ }
+ 
+ void GtkUi::AddWindowButtonOrderObserver(
+--- a/third_party/webrtc/modules/desktop_capture/screen_capturer_x11.cc
++++ b/third_party/webrtc/modules/desktop_capture/screen_capturer_x11.cc
+@@ -412,7 +412,7 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawScreenCapturer(
+     return nullptr;
+   }
+ 
+-  return capturer;
++  return std::move(capturer);
+ }
+ 
+ }  // namespace webrtc


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-01-29 22:27 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-01-29 22:27 UTC (permalink / raw
  To: gentoo-commits

commit:     cafd6ad57a34ab75bcd488be996019dc6c3f8268
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 29 22:26:22 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jan 29 22:27:09 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cafd6ad5

www-client/chromium: fix warnings about _FORTIFY_SOURCE being redefined

Package-Manager: Portage-2.3.3_p42_p324477, Repoman-2.3.1_p35_p324477

 www-client/chromium/chromium-57.0.2987.8.ebuild    |  1 +
 .../chromium/files/chromium-FORTIFY_SOURCE.patch   | 27 ++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/www-client/chromium/chromium-57.0.2987.8.ebuild b/www-client/chromium/chromium-57.0.2987.8.ebuild
index 139ec0c..8613930 100644
--- a/www-client/chromium/chromium-57.0.2987.8.ebuild
+++ b/www-client/chromium/chromium-57.0.2987.8.ebuild
@@ -158,6 +158,7 @@ For other desktop environments, try one of the following:
 PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r4.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
+	"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-FORTIFY_SOURCE.patch b/www-client/chromium/files/chromium-FORTIFY_SOURCE.patch
new file mode 100644
index 00000000..c6477d6
--- /dev/null
+++ b/www-client/chromium/files/chromium-FORTIFY_SOURCE.patch
@@ -0,0 +1,27 @@
+Drop _FORTIFY_SOURCE=2 from defines
+
+Gentoo toolchains enable this by default. Removing this prevents spammy
+warnings about the macro being redefined.
+
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -1069,19 +1069,6 @@ config("chromium_code") {
+       "__STDC_FORMAT_MACROS",
+     ]
+ 
+-    if (!is_debug && !using_sanitizer &&
+-        (!is_linux || !is_clang || is_official_build)) {
+-      # _FORTIFY_SOURCE isn't really supported by Clang now, see
+-      # http://llvm.org/bugs/show_bug.cgi?id=16821.
+-      # It seems to work fine with Ubuntu 12 headers though, so use it in
+-      # official builds.
+-      #
+-      # Non-chromium code is not guaranteed to compile cleanly with
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+-      # disabled, so only do that for Release build.
+-      defines += [ "_FORTIFY_SOURCE=2" ]
+-    }
+-
+     if (is_mac || is_ios) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-01-22  5:24 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2017-01-22  5:24 UTC (permalink / raw
  To: gentoo-commits

commit:     6159ac3f9f5d2eb5be6cbd6737c5ad901e3011c5
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 22 05:22:50 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jan 22 05:23:33 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6159ac3f

www-client/chromium: bump to 56.0.2924.67

Fix build with gcc 4.9.

Bug: https://bugs.gentoo.org/600288
Package-Manager: Portage-2.3.3_p32, Repoman-2.3.1_p25

 www-client/chromium/Manifest                       |  2 +-
 ...2924.21.ebuild => chromium-56.0.2924.67.ebuild} | 17 ++++----
 www-client/chromium/files/chromium-56-gcc4.patch   | 48 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a1dfd6f..3fc7a7f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-55.0.2883.75.tar.xz 511256096 SHA256 5bcf7180935bebc7648f7e2577f612da681f7846127f79dac22630ded9984e55 SHA512 9830b02e05ebaf120b02b11114c67196ba5c7f2d5aa917b9e5f8516b1f0cce1abd8e752c379e8ac1f16c7b7e451341486d9356d47a1b77b72ab5117390ce16b9 WHIRLPOOL ab752b9e9a6c7a536424ac1384d9f0ad0f23dd40bbf6784e4185554602628e8e1f45acbb264fff33f7f00c8ee14f293bfaf23259d2db4f785c9c9c49e72b28eb
-DIST chromium-56.0.2924.21.tar.xz 513324284 SHA256 08330d147a9340c593ac0255adac30e189e1e9ed99c43d148891058365b4182a SHA512 acfc81177e5fdacc954cdc94b705079b8fdf19a7d90573b38b9a297eeb2d169325f460ce1ec14ea52cfa57782f818d733ece62c8ff313610730881efeba5afb7 WHIRLPOOL cc2ed9362aa5f88d05e884e46897b919020044d7556c5c4217ddd527cf198d84c87d9d48281aa4d4dae94dc06490657fdcf2d9c5653f9eea3a33767e5383eac6
 DIST chromium-56.0.2924.59.tar.xz 513389580 SHA256 3b34c4cef3a5017556064d246b14b69a8bd2277d8908a6e8b63c014d501ebac2 SHA512 3ef43728e7ca9d5c1eb4b808bd8c0dbf37a3ee387c57d2826e39fed47ab6316e636b96fd2787c140601e87bd084df61093a85c5014e6151ca70c2e9619a1d52c WHIRLPOOL 4d2f8ee6e7c5b1f3455ba9c25518178990e725dafcc75a3049a6fd5ddb17dfdf3b325c78478b7b3ca62fe7712e8e58e0f5f0f0944d32d99dc0819f99293268c0
+DIST chromium-56.0.2924.67.tar.xz 513502788 SHA256 564444bcdff78b3361c361d5c32ec4344be6acde58570e6739401395b6e42594 SHA512 a93d3cc343bf6b87aa222920e44485e43eaeb4cecf31999ab96113886432e986b530f929c8032e648938aeac5a957991995c795bc6760ce105a4419bb649961c WHIRLPOOL 18dc7b69a15bfb2fc0e990f4e07aa2e8e09d3f847b89b2e468a7752a40ded1e9095869cab913e39c0e363a1f1af1ec401c6fe1aa12cca71b66ab68c37e0ac746
 DIST chromium-57.0.2979.0.tar.xz 523638884 SHA256 b4ae30097c9fa52c366618e611ee2ee0dae35b742abbf9384099131b48357682 SHA512 cbf14fceacc5c559c27d2b8f22c2f1bc02207de0156b54b090f6f08106771349b5dcc04e3cd80021318098b5a9e7b00cf8a5f11414e97ee1e8a0c07da10c494f WHIRLPOOL 42f62f2d6de4cccdcad81370b545022daec08b9dd163639d81571e1c07f50e5f46e628e8194a8c51493ce416c1cdd0a572bf1f469d0089f612c3a22b33e2abe7
 DIST chromium-57.0.2986.0.tar.xz 524087844 SHA256 3d6db744a750c0bffeda6f00aa1d2fd27efa6e0a44354a5d6be5fa2414095897 SHA512 1737c0e626d38277176f96cc3314c2b44226f020d1387ed6a31362763e37b13312a112af16c876fa99546f20f8649f0076dfe3280895272fd0f2dd9d57ae8deb WHIRLPOOL 988cf3f656082efbe6b78a74b7f9060d1f0e436dae72f250a0751eaeab2cd654c25d83c5b84fd1bd726346ce6bdbf1db98cdba69c1cab0c200d84c339685fc1f

diff --git a/www-client/chromium/chromium-56.0.2924.21.ebuild b/www-client/chromium/chromium-56.0.2924.67.ebuild
similarity index 98%
rename from www-client/chromium/chromium-56.0.2924.21.ebuild
rename to www-client/chromium/chromium-56.0.2924.67.ebuild
index 17cd0d0..15e309b 100644
--- a/www-client/chromium/chromium-56.0.2924.21.ebuild
+++ b/www-client/chromium/chromium-56.0.2924.67.ebuild
@@ -33,7 +33,7 @@ COMMON_DEPEND="
 	cups? ( >=net-print/cups-1.3.11:= )
 	>=dev-libs/elfutils-0.149
 	dev-libs/expat:=
-	dev-libs/glib:=
+	dev-libs/glib:2
 	dev-libs/icu:=
 	>=dev-libs/jsoncpp-0.5.0-r1:=
 	dev-libs/nspr:=
@@ -56,7 +56,7 @@ COMMON_DEPEND="
 	>=sys-libs/libcap-2.22:=
 	virtual/udev
 	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:=
+	x11-libs/gdk-pixbuf:2
 	x11-libs/libdrm
 	x11-libs/libX11:=
 	x11-libs/libXcomposite:=
@@ -114,8 +114,6 @@ DEPEND="${COMMON_DEPEND}
 		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
 		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
 		dev-python/html5lib[${PYTHON_USEDEP}]
-		dev-python/jinja[${PYTHON_USEDEP}]
-		dev-python/ply[${PYTHON_USEDEP}]
 		dev-python/simplejson[${PYTHON_USEDEP}]
 	')
 "
@@ -125,8 +123,6 @@ python_check_deps() {
 	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
 	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
 	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
-	has_version --host-root "dev-python/jinja[${PYTHON_USEDEP}]" &&
-	has_version --host-root "dev-python/ply[${PYTHON_USEDEP}]" &&
 	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
 }
 
@@ -161,9 +157,9 @@ For other desktop environments, try one of the following:
 
 PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r4.patch"
-	"${FILESDIR}/${PN}-system-jinja-r14.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-glibc-2.24.patch"
+	"${FILESDIR}/${PN}-56-gcc4.patch"
 )
 
 pre_build_checks() {
@@ -173,9 +169,9 @@ pre_build_checks() {
 			# bugs: #601654
 			die "At least clang 3.9.1 is required"
 		fi
-		if tc-is-gcc && ! version_is_at_least 5 "$(gcc-major-version)"; then
+		if tc-is-gcc && ! version_is_at_least 4.9 "$(gcc-version)"; then
 			# bugs: #535730, #525374, #518668, #600288
-			die "At least gcc 5 is required"
+			die "At least gcc 4.9 is required"
 		fi
 	fi
 
@@ -256,6 +252,7 @@ src_prepare() {
 		third_party/hunspell
 		third_party/iccjpeg
 		third_party/inspector_protocol
+		third_party/jinja2
 		third_party/jstemplate
 		third_party/khronos
 		third_party/leveldatabase
@@ -272,6 +269,7 @@ src_prepare() {
 		third_party/libyuv
 		third_party/lss
 		third_party/lzma_sdk
+		third_party/markupsafe
 		third_party/mesa
 		third_party/modp_b64
 		third_party/mt19937ar
@@ -290,6 +288,7 @@ src_prepare() {
 		third_party/pdfium/third_party/libpng16
 		third_party/pdfium/third_party/libtiff
 		third_party/pdfium/third_party/zlib_v128
+		third_party/ply
 		third_party/polymer
 		third_party/protobuf
 		third_party/protobuf/third_party/six

diff --git a/www-client/chromium/files/chromium-56-gcc4.patch b/www-client/chromium/files/chromium-56-gcc4.patch
new file mode 100644
index 00000000..e318866
--- /dev/null
+++ b/www-client/chromium/files/chromium-56-gcc4.patch
@@ -0,0 +1,48 @@
+From 888874f761fdd69bb9448b3905627289b5fd66dd Mon Sep 17 00:00:00 2001
+From: floppymaster <floppymaster@gmail.com>
+Date: Thu, 19 Jan 2017 20:20:45 -0800
+Subject: [PATCH] Allow GCC 4.9 to compile Chromium
+
+In order to implicit cast an lvalue to an rvalue when returning
+from a function, the return type and type of variable in the return
+statement previously had to be exactly the same. When this was not
+the case, std::move was required. For instance, when returning a
+std::unique_ptr<Derived> variable in a function with a
+std::unique_ptr<Base> return type, std::move is required.
+
+DR 1579 changed this, and allows for implicitly converting
+to the return type, if the return type has a constructor(T&&), where
+T is the type of the local variable being returned. DR 1579 was
+implemented in GCC 5, but not in GCC 4.9 and below. By explicitly
+qualifying the local variable with std::move, we allow for compiling
+with GCC 4.9 and incur no performance penalty. The code is still
+absolutely correct to the word of C++11.
+
+BUG=chromium:682965
+
+See also:
+* https://bugs.gentoo.org/show_bug.cgi?id=600288
+* https://stackoverflow.com/questions/22018115/converting-stdunique-ptrderived-to-stdunique-ptrbase#comment33375875_22018521
+* http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3833.html#1579
+
+Review-Url: https://codereview.webrtc.org/2642053003
+Cr-Commit-Position: refs/heads/master@{#16175}
+---
+ AUTHORS                                               | 1 +
+ webrtc/modules/desktop_capture/screen_capturer_x11.cc | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+--- a/third_party/webrtc/modules/desktop_capture/screen_capturer_x11.cc
++++ b/third_party/webrtc/modules/desktop_capture/screen_capturer_x11.cc
+@@ -412,7 +412,7 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawScreenCapturer(
+     return nullptr;
+   }
+ 
+-  return capturer;
++  return std::move(capturer);
+ }
+ 
+ }  // namespace webrtc
+-- 
+2.11.0
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2017-01-05 21:47 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2017-01-05 21:47 UTC (permalink / raw
  To: gentoo-commits

commit:     5c95a4a832157104ea5e5307faf0bdf1bb59a1c4
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  5 21:42:53 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Jan  5 21:46:47 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c95a4a8

www-client/chromium: fix build with glibc-2.24

This addresses bug #594070 by iGentoo . The issue has already been fixed
upstream for M57, this is a backport.

 www-client/chromium/chromium-56.0.2924.21.ebuild    |  3 ++-
 www-client/chromium/files/chromium-glibc-2.24.patch | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/chromium-56.0.2924.21.ebuild b/www-client/chromium/chromium-56.0.2924.21.ebuild
index edaa776..17cd0d0 100644
--- a/www-client/chromium/chromium-56.0.2924.21.ebuild
+++ b/www-client/chromium/chromium-56.0.2924.21.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -163,6 +163,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r4.patch"
 	"${FILESDIR}/${PN}-system-jinja-r14.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
+	"${FILESDIR}/${PN}-glibc-2.24.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-glibc-2.24.patch b/www-client/chromium/files/chromium-glibc-2.24.patch
new file mode 100644
index 00000000..f7bfd81
--- /dev/null
+++ b/www-client/chromium/files/chromium-glibc-2.24.patch
@@ -0,0 +1,15 @@
+--- a/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.orig	2017-01-05 20:50:56.329369189 +0000
++++ b/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp	2017-01-05 20:51:32.926099779 +0000
+@@ -242,6 +242,12 @@
+   ASSERT(!(len & kSystemPageOffsetMask));
+ #if OS(POSIX)
+   int ret = madvise(addr, len, MADV_FREE);
++  if (ret != 0 && errno == EINVAL) {
++    // MADV_FREE only works on Linux 4.5+ . If request failed,
++    // retry with older MADV_DONTNEED . Note that MADV_FREE
++    // being defined at compile time doesn't imply runtime support.
++    ret = madvise(addr, len, MADV_DONTNEED);
++  }
+   RELEASE_ASSERT(!ret);
+ #else
+   setSystemPagesInaccessible(addr, len);


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-11-08 19:14 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2016-11-08 19:14 UTC (permalink / raw
  To: gentoo-commits

commit:     5bfc3ceed4ac7acb954e5ebdc20568ad34265128
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Nov  8 19:13:35 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Nov  8 19:14:05 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bfc3cee

www-client/chromium: dev channel bump (56.0.2906.0)

Package-Manager: portage-2.3.2_p5

 www-client/chromium/Manifest                    |   1 +
 www-client/chromium/chromium-56.0.2906.0.ebuild | 623 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r9.patch  |  12 +
 3 files changed, 636 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 9f5704e..0d3d65f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-54.0.2840.59.tar.xz 479763932 SHA256 df89c284b0109566acc6a5a1a84d9
 DIST chromium-55.0.2883.28.tar.xz 511010052 SHA256 e09f3c69fc3937da9a4ef6f9dfb7eda8364bbcf17a358229ee7245544e548ae2 SHA512 9fc5bce0d154e6c6e211afee596acd179337354a257b5aab8c089d822132eb97ac307d33a9e91201e76218b3504431c02762c9d5e96efcad11f79d0f6adeaf27 WHIRLPOOL 7e774b4a76909e6f6402e5dfdcd71c3d8a1e1b0459a2f5be670761376c7311a502d1d8659c965925b1f288c5f6cfa81cc263dc20e78343684bc4031fd0b6f8dc
 DIST chromium-55.0.2883.35.tar.xz 511169840 SHA256 fa296cf4135576dcb70384264614e520db101e63f6532dab2c909e6fa7454985 SHA512 f3a9e9eecfec76517a20db6fbd5d45c6d390fea62cbc19c4b67684c556018ac9e6d247395ca1c067a71dc26faab25bd312bae62a6fafa2bf9c15e5a25857c361 WHIRLPOOL a659cf280bec4c68c1f41fdd59c6931e7798831406078a04623f5a6362da0bfbe05d848e23b462d794d2bfbb49e3e233c2513c1687effceb488480cbbd7f9f19
 DIST chromium-56.0.2897.0.tar.xz 512048692 SHA256 a91e43b3747d22192b4712bb59db64cc90d3dbb75716fe1d3ca5dd9c16f9f40b SHA512 101b803ded07767c92e938a7b31444ca984208ea28a6005ebd9895f1255cd98ffa999ba9b0ce2ab159a7708a739b62a4ebbdcd3d4bac22ccb345433c0abad9e7 WHIRLPOOL 0fd43cb2a8ef5604c22971f24f1aed9cfa61f0e562f2fb15b2a42e8d03fefda3b14f728bb7eda27d8f44f5595f58f0739091a80067cfe652ad13d4fdf8bde63c
+DIST chromium-56.0.2906.0.tar.xz 512964244 SHA256 df2e0f02630fcdf394bab60c71fe4727b054822ed146831d8fdd3f6f5b59cfdd SHA512 f9b52cd5ebaf0f18a660018cbdaeb0ceb49862847ba067b1ab9b970ab77a760a256477fcb7e479bdc6248ce7d2a514745d6139139edd04cb1c9e5fb7df3efd4d WHIRLPOOL cb635f3db2cb965930c6a5f5eb7e9e987238ec058abe381451c9c1476ba390c7bb8f6bc618f0cc55b1ac568ab955bbf539a460e61c36437bdf6c16d39e7a4ee3

diff --git a/www-client/chromium/chromium-56.0.2906.0.ebuild b/www-client/chromium/chromium-56.0.2906.0.ebuild
new file mode 100644
index 00000000..b6bc628
--- /dev/null
+++ b/www-client/chromium/chromium-56.0.2906.0.ebuild
@@ -0,0 +1,623 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib multiprocessing pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="cups gnome gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+COMMON_DEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	dev-libs/icu:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	>=dev-libs/re2-0.2016.05.01:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	media-libs/libvpx:=[svc]
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	app-arch/snappy:=
+	dev-libs/libxml2:=[icu]
+	dev-libs/libxslt:=
+	media-libs/flac:=
+	>=media-libs/harfbuzz-0.9.41:=[icu(+)]
+	>=media-libs/libwebp-0.4.0:=
+	sys-libs/zlib:=[minizip]
+	kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+DEPEND="${COMMON_DEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig
+	dev-vcs/git
+	$(python_gen_any_dep '
+		dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+		>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+		dev-python/html5lib[${PYTHON_USEDEP}]
+		dev-python/jinja[${PYTHON_USEDEP}]
+		dev-python/ply[${PYTHON_USEDEP}]
+		dev-python/simplejson[${PYTHON_USEDEP}]
+	')
+"
+
+# Keep this in sync with the python_gen_any_dep call.
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/jinja[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/ply[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-system-ffmpeg-r4.patch"
+	"${FILESDIR}/${PN}-system-jinja-r14.patch"
+	"${FILESDIR}/${PN}-widevine-r1.patch"
+	"${FILESDIR}/${PN}-54-ffmpeg2compat.patch"
+	"${FILESDIR}/${PN}-gn-r9.patch"
+)
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		if tc-is-gcc && ! version_is_at_least 4.8 "$(gcc-version)"; then
+			die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+		fi
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	default
+
+	local keeplibs=(
+		base/third_party/dmg_fp
+		base/third_party/dynamic_annotations
+		base/third_party/icu
+		base/third_party/nspr
+		base/third_party/superfasthash
+		base/third_party/symbolize
+		base/third_party/valgrind
+		base/third_party/xdg_mime
+		base/third_party/xdg_user_dirs
+		breakpad/src/third_party/curl
+		chrome/third_party/mozilla_security_manager
+		courgette/third_party
+		net/third_party/mozilla_security_manager
+		net/third_party/nss
+		third_party/WebKit
+		third_party/analytics
+		third_party/angle
+		third_party/angle/src/common/third_party/numerics
+		third_party/angle/src/third_party/compiler
+		third_party/angle/src/third_party/libXNVCtrl
+		third_party/angle/src/third_party/murmurhash
+		third_party/angle/src/third_party/trace_event
+		third_party/boringssl
+		third_party/brotli
+		third_party/cacheinvalidation
+		third_party/catapult
+		third_party/catapult/third_party/polymer
+		third_party/catapult/third_party/py_vulcanize
+		third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
+		third_party/catapult/third_party/py_vulcanize/third_party/rjsmin
+		third_party/catapult/tracing/third_party/d3
+		third_party/catapult/tracing/third_party/gl-matrix
+		third_party/catapult/tracing/third_party/jszip
+		third_party/catapult/tracing/third_party/mannwhitneyu
+		third_party/ced
+		third_party/cld_2
+		third_party/cld_3
+		third_party/cros_system_api
+		third_party/devscripts
+		third_party/dom_distiller_js
+		third_party/fips181
+		third_party/flatbuffers
+		third_party/flot
+		third_party/google_input_tools
+		third_party/google_input_tools/third_party/closure_library
+		third_party/google_input_tools/third_party/closure_library/third_party/closure
+		third_party/hunspell
+		third_party/iccjpeg
+		third_party/inspector_protocol
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libXNVCtrl
+		third_party/libaddressinput
+		third_party/libjingle
+		third_party/libphonenumber
+		third_party/libsecret
+		third_party/libsrtp
+		third_party/libudev
+		third_party/libusb
+		third_party/libwebm
+		third_party/libxml/chromium
+		third_party/libyuv
+		third_party/lss
+		third_party/lzma_sdk
+		third_party/mesa
+		third_party/modp_b64
+		third_party/mt19937ar
+		third_party/openh264
+		third_party/openmax_dl
+		third_party/opus
+		third_party/ots
+		third_party/pdfium
+		third_party/pdfium/third_party/agg23
+		third_party/pdfium/third_party/base
+		third_party/pdfium/third_party/bigint
+		third_party/pdfium/third_party/freetype
+		third_party/pdfium/third_party/lcms2-2.6
+		third_party/pdfium/third_party/libjpeg
+		third_party/pdfium/third_party/libopenjpeg20
+		third_party/pdfium/third_party/libpng16
+		third_party/pdfium/third_party/libtiff
+		third_party/pdfium/third_party/zlib_v128
+		third_party/polymer
+		third_party/protobuf
+		third_party/protobuf/third_party/six
+		third_party/qcms
+		third_party/sfntly
+		third_party/skia
+		third_party/smhasher
+		third_party/sqlite
+		third_party/tcmalloc
+		third_party/usrsctp
+		third_party/web-animations-js
+		third_party/webdriver
+		third_party/webrtc
+		third_party/widevine
+		third_party/woff2
+		third_party/x86inc
+		third_party/zlib/google
+		url/third_party/mozilla
+		v8/src/third_party/valgrind
+		v8/third_party/inspector_protocol
+
+		# gyp -> gn leftovers
+		base/third_party/libevent
+		third_party/adobe
+		third_party/speech-dispatcher
+		third_party/usb_ids
+		third_party/xdg-utils
+		third_party/yasm/run_yasm.py
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg )
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gn+=" enable_nacl=false"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries="
+		flac
+		harfbuzz-ng
+		icu
+		libjpeg
+		libpng
+		libvpx
+		libwebp
+		libxml
+		libxslt
+		re2
+		snappy
+		yasm
+		zlib"
+	if use system-ffmpeg; then
+		gn_system_libraries+=" ffmpeg"
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries} || die
+
+	# Optional dependencies.
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gconf=$(usex gnome true false)"
+	myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+	myconf_gn+=" use_gtk3=$(usex gtk3 true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	if tc-is-clang; then
+		myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
+	else
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+	myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Define a custom toolchain for GN
+	myconf_gn+=" custom_toolchain=\"${FILESDIR}/toolchain:default\""
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gn.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
+	tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn} use_allocator=\"none\"" || die
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+	out/Release/gn gen --args="${myconf_gn}" out/Release || die
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chromedriver"
+	if use suid; then
+		ninja_targets+=" chrome_sandbox"
+	fi
+
+	# Build mksnapshot and pax-mark it.
+	eninja -C out/Release mksnapshot || die
+	pax-mark m out/Release/mksnapshot
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	if use suid; then
+		newexe out/Release/chrome_sandbox chrome-sandbox || die
+		fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	fi
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-gn-r9.patch b/www-client/chromium/files/chromium-gn-r9.patch
new file mode 100644
index 00000000..dde262d
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r9.patch
@@ -0,0 +1,12 @@
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 6059741..78e508d 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -532,6 +532,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/synchronization/read_write_lock_posix.cc',
+         'base/synchronization/waitable_event_posix.cc',
+         'base/sys_info_posix.cc',
++        'base/task_scheduler/task_tracker_posix.cc',
+         'base/threading/platform_thread_internal_posix.cc',
+         'base/threading/platform_thread_posix.cc',
+         'base/threading/thread_local_storage_posix.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-10-17 15:35 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2016-10-17 15:35 UTC (permalink / raw
  To: gentoo-commits

commit:     11df69ff96e563593943e29479e84f2a6c8dcfc9
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 17 15:34:49 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Oct 17 15:35:36 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11df69ff

www-client/chromium: use cxx for linking when bootstrapping gn

Bug: https://bugs.gentoo.org/597218

Package-Manager: portage-2.3.2

 www-client/chromium/chromium-54.0.2840.59.ebuild   |  5 +---
 www-client/chromium/chromium-55.0.2873.0.ebuild    |  5 +---
 .../chromium/files/chromium-gn-bootstrap-ld.patch  | 29 ++++++++++++++++++++++
 3 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/www-client/chromium/chromium-54.0.2840.59.ebuild b/www-client/chromium/chromium-54.0.2840.59.ebuild
index 150f342..80087d2 100644
--- a/www-client/chromium/chromium-54.0.2840.59.ebuild
+++ b/www-client/chromium/chromium-54.0.2840.59.ebuild
@@ -165,6 +165,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-system-jinja-r13.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/chromium-54-ffmpeg2compat.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-ld.patch"
 )
 
 pkg_pretend() {
@@ -537,10 +538,6 @@ src_configure() {
 	# Make sure the build system will use the right tools, bug #340795.
 	tc-export AR CC CXX NM
 
-	# Work around people setting LD in make.conf, bug 597218.
-	# gn's bootstrap.py looks at the environment first.
-	export LD=${CXX}
-
 	# Define a custom toolchain for GN
 	myconf_gn+=" custom_toolchain=\"${FILESDIR}/toolchain:default\""
 

diff --git a/www-client/chromium/chromium-55.0.2873.0.ebuild b/www-client/chromium/chromium-55.0.2873.0.ebuild
index 133ec4a..cc21908 100644
--- a/www-client/chromium/chromium-55.0.2873.0.ebuild
+++ b/www-client/chromium/chromium-55.0.2873.0.ebuild
@@ -168,6 +168,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-54-ffmpeg2compat.patch"
 	"${FILESDIR}/${PN}-gn-r7.patch"
 	"${FILESDIR}/${PN}-system-zlib-r1.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-ld.patch"
 )
 
 pkg_pretend() {
@@ -535,10 +536,6 @@ src_configure() {
 	# Make sure the build system will use the right tools, bug #340795.
 	tc-export AR CC CXX NM
 
-	# Work around people setting LD in make.conf, bug 597218.
-	# gn's bootstrap.py looks at the environment first.
-	export LD=${CXX}
-
 	# Define a custom toolchain for GN
 	myconf_gn+=" custom_toolchain=\"${FILESDIR}/toolchain:default\""
 

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-ld.patch b/www-client/chromium/files/chromium-gn-bootstrap-ld.patch
new file mode 100644
index 00000000..7916a7b
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-ld.patch
@@ -0,0 +1,29 @@
+From 7f8c896c0e4d7e65b94a23e4e75fc6d1545c3cfd Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Mon, 17 Oct 2016 10:41:10 -0400
+Subject: [PATCH] gn: bootstrap: always use cxx for linking
+
+LD may be set to something like "ld.bfd" or "ld.gold". We want to let
+the compiler invoke the linker instead of calling these directly.
+
+Bug: https://bugs.gentoo.org/597218
+---
+ tools/gn/bootstrap/bootstrap.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index b86757a..d66da12 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -288,7 +288,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+   else:
+     cc = os.environ.get('CC', 'cc')
+     cxx = os.environ.get('CXX', 'c++')
+-    ld = os.environ.get('LD', cxx)
++    ld = cxx
+     ar = os.environ.get('AR', 'ar')
+ 
+   cflags = os.environ.get('CFLAGS', '').split()
+-- 
+2.10.1
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-09-01 17:11 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2016-09-01 17:11 UTC (permalink / raw
  To: gentoo-commits

commit:     934f744c0c3bb6ec10bb81289d7058ecbb96f474
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Sep  1 15:21:12 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Sep  1 17:08:47 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=934f744c

www-client/chromium: build fix with ffmpeg-2.x

Thanks to aballier for the patch.

Package-Manager: portage-2.3.0_p22

 www-client/chromium/chromium-54.0.2840.6.ebuild    |  3 ++-
 .../chromium/files/chromium-54-ffmpeg2compat.patch | 27 ++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/chromium-54.0.2840.6.ebuild b/www-client/chromium/chromium-54.0.2840.6.ebuild
index 0491429..5c2881a 100644
--- a/www-client/chromium/chromium-54.0.2840.6.ebuild
+++ b/www-client/chromium/chromium-54.0.2840.6.ebuild
@@ -51,7 +51,7 @@ COMMON_DEPEND="
 	media-libs/libvpx:=[svc]
 	media-libs/speex:=
 	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? ( >=media-video/ffmpeg-3.0.1:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
 	>=sys-libs/libcap-2.22:=
@@ -163,6 +163,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r3.patch"
 	"${FILESDIR}/${PN}-system-jinja-r13.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
+	"${FILESDIR}/chromium-54-ffmpeg2compat.patch"
 )
 
 pkg_pretend() {

diff --git a/www-client/chromium/files/chromium-54-ffmpeg2compat.patch b/www-client/chromium/files/chromium-54-ffmpeg2compat.patch
new file mode 100644
index 00000000..efe70fc
--- /dev/null
+++ b/www-client/chromium/files/chromium-54-ffmpeg2compat.patch
@@ -0,0 +1,27 @@
+Disable checks against macros that do not exist in ffmpeg-2.x
+
+Patch by aballier.
+
+--- a/media/ffmpeg/ffmpeg_common.cc
++++ b/media/ffmpeg/ffmpeg_common.cc
+@@ -786,7 +786,9 @@ TEST_PRIMARY(SMPTE170M);
+ TEST_PRIMARY(SMPTE240M);
+ TEST_PRIMARY(FILM);
+ TEST_PRIMARY(BT2020);
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(55,5,0)
+ TEST_PRIMARY(SMPTEST428_1);
++#endif
+ 
+ TEST_TRANSFER(RESERVED0);
+ TEST_TRANSFER(BT709);
+@@ -804,8 +806,10 @@ TEST_TRANSFER(BT1361_ECG);
+ TEST_TRANSFER(IEC61966_2_1);
+ TEST_TRANSFER(BT2020_10);
+ TEST_TRANSFER(BT2020_12);
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(55,5,0)
+ TEST_TRANSFER(SMPTEST2084);
+ TEST_TRANSFER(SMPTEST428_1);
++#endif
+ 
+ TEST_COLORSPACE(RGB);
+ TEST_COLORSPACE(BT709);


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-08-01 17:37 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2016-08-01 17:37 UTC (permalink / raw
  To: gentoo-commits

commit:     19050b84a294b9807bd6e755b75230141892f195
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  1 19:32:56 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Aug  1 19:32:56 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=19050b84

www-client/chromium: dev channel bump (54.0.2810.2)

Fix build with system libpng (bug #578212).

Fix build with system libvpx (bug #567652 by Rok Kralj).

Package-Manager: portage-2.2.28

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-54.0.2810.2.ebuild    | 727 +++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r3.patch     |  21 +
 .../files/chromium-last-commit-position-r1.patch   |  26 +
 .../chromium/files/chromium-system-ffmpeg-r3.patch |  37 +-
 .../chromium/files/chromium-system-jinja-r12.patch |  79 +++
 6 files changed, 860 insertions(+), 31 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 5f6b2e2..909cb50 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-52.0.2743.82.tar.xz 458110272 SHA256 a7de6015df9cf685d68efd1e070ae9c706c723cd9395d079a7d43672a2c37eb4 SHA512 9bba841cb726bfa06888deefacfcee628e36d25de47dd0303d3fd1ce2f07922148d60befe934f44c33fcdfed6ce3dadfb9e3ee0828b66994807178a488051806 WHIRLPOOL f0d258882db85291262c2381aeb6d85ebf20a252344e114a2da35e75f79dc8b73de95b71926512537af17e109fd7a8dd04386d5b3ed610262d42d11bcc1a5707
 DIST chromium-53.0.2785.21.tar.xz 460600312 SHA256 68f4a97af24f0c1c964b6633338eab68ead815833b56ea9a9f925a5b3b35baef SHA512 8ccc84506ca47f0d8c77f542b1c0fe7e8f5b8849ce8378ef49a0b7916822bdc622f4e6a4a53b7c5e2b51b68d191e71b6b6757d2258d732103bca507cfc799e90 WHIRLPOOL 30404088b6e8cd572c9c3715ee0ba75c9823e3acea464c956fcd2f7deee2e375eca35ee10cd254b866ecd91e6653ba876893c4d5b810fbd39f9a1caa470217e6
 DIST chromium-53.0.2785.34.tar.xz 460739532 SHA256 261ba008c96b335a55feff18785b01484af2d678f85b58206008b31c9e9c372f SHA512 99e0b7a30e34f70ec844ef50f02eadadead2b83f2a47ca7d5779cf0a90bf49e7d3efc1bbc98eb4d1294ed283edd04a993a639003a365e06ae8b2adf26cc1c865 WHIRLPOOL dec533670c1664f88ea32fe253644e479b81fb93bd93f1bc5dbfe41c56979a7642afdfcd041ddf05ca3f0da8e1bedc7ddf48779be3b965038026f65ab199f344
+DIST chromium-54.0.2810.2.tar.xz 460923284 SHA256 f038e72cbd8b7383d13c286329623fda8d6d48f45fa2d964e554b5565283ad71 SHA512 069edcc27427dc7e3c6c3af1932b7d88d2070f8280c9e1881bcba3cbf13bd2d74fe13b79d1e89194c51b9edf71b8ff0f5e45a0a9727798cc723cb8237b95df8c WHIRLPOOL 64b32d5b5c06f9a4d3e774d340da935b92c46bb1573923dfd4f5748af310214ff7295f1b1e101dd6cb50de383e36fd2813087af801bed47df889e69441a6a375

diff --git a/www-client/chromium/chromium-54.0.2810.2.ebuild b/www-client/chromium/chromium-54.0.2810.2.ebuild
new file mode 100644
index 0000000..a0e2a3c
--- /dev/null
+++ b/www-client/chromium/chromium-54.0.2810.2.ebuild
@@ -0,0 +1,727 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib multiprocessing pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
+REQUIRED_USE="gn? ( gnome gnome-keyring !tcmalloc )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+RDEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/libpng:=
+	media-libs/libvpx:=[svc]
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		media-libs/flac:=
+		>=media-libs/harfbuzz-0.9.41:=[icu(+)]
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
+DEPEND="${RDEPEND}
+	>=app-arch/gzip-1.7
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig"
+
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND+="
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
+
+# Python dependencies. The DEPEND part needs to be kept in sync
+# with python_check_deps.
+DEPEND+=" $(python_gen_any_dep '
+	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+	>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
+	dev-python/html5lib[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/ply[${PYTHON_USEDEP}]
+	dev-python/simplejson[${PYTHON_USEDEP}]
+')"
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/jinja[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/ply[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-system-ffmpeg-r3.patch"
+	"${FILESDIR}/${PN}-system-jinja-r12.patch"
+	"${FILESDIR}/${PN}-widevine-r1.patch"
+	"${FILESDIR}/${PN}-last-commit-position-r1.patch"
+	"${FILESDIR}/${PN}-gn-r3.patch"
+)
+
+pkg_pretend() {
+	if [[ $(tc-getCC) == *gcc* ]] && \
+		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
+		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if [[ "${SLOT}" == "0" ]]; then
+		CHROMIUM_SUFFIX=""
+	else
+		CHROMIUM_SUFFIX="-${SLOT}"
+	fi
+	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	default
+
+	local conditional_bundled_libraries=""
+	if ! use system-ffmpeg; then
+		conditional_bundled_libraries+=" third_party/ffmpeg"
+	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			base/third_party/libevent
+			third_party/adobe
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm/run_yasm.py
+		"
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		${conditional_bundled_libraries} \
+		'base/third_party/dmg_fp' \
+		'base/third_party/dynamic_annotations' \
+		'base/third_party/icu' \
+		'base/third_party/nspr' \
+		'base/third_party/superfasthash' \
+		'base/third_party/symbolize' \
+		'base/third_party/valgrind' \
+		'base/third_party/xdg_mime' \
+		'base/third_party/xdg_user_dirs' \
+		'breakpad/src/third_party/curl' \
+		'chrome/third_party/mozilla_security_manager' \
+		'courgette/third_party' \
+		'net/third_party/mozilla_security_manager' \
+		'net/third_party/nss' \
+		'third_party/WebKit' \
+		'third_party/analytics' \
+		'third_party/angle' \
+		'third_party/angle/src/common/third_party/numerics' \
+		'third_party/angle/src/third_party/compiler' \
+		'third_party/angle/src/third_party/libXNVCtrl' \
+		'third_party/angle/src/third_party/murmurhash' \
+		'third_party/angle/src/third_party/trace_event' \
+		'third_party/boringssl' \
+		'third_party/brotli' \
+		'third_party/cacheinvalidation' \
+		'third_party/catapult' \
+		'third_party/catapult/third_party/polymer' \
+		'third_party/catapult/third_party/py_vulcanize' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+		'third_party/catapult/tracing/third_party/d3' \
+		'third_party/catapult/tracing/third_party/gl-matrix' \
+		'third_party/catapult/tracing/third_party/jszip' \
+		'third_party/catapult/tracing/third_party/mannwhitneyu' \
+		'third_party/ced' \
+		'third_party/cld_2' \
+		'third_party/cros_system_api' \
+		'third_party/cython/python_flags.py' \
+		'third_party/devscripts' \
+		'third_party/dom_distiller_js' \
+		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+		'third_party/fips181' \
+		'third_party/flatbuffers' \
+		'third_party/flot' \
+		'third_party/google_input_tools' \
+		'third_party/google_input_tools/third_party/closure_library' \
+		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/hunspell' \
+		'third_party/iccjpeg' \
+		'third_party/icu' \
+		'third_party/jstemplate' \
+		'third_party/khronos' \
+		'third_party/leveldatabase' \
+		'third_party/libXNVCtrl' \
+		'third_party/libaddressinput' \
+		'third_party/libjingle' \
+		'third_party/libjpeg_turbo' \
+		'third_party/libphonenumber' \
+		'third_party/libsecret' \
+		'third_party/libsrtp' \
+		'third_party/libudev' \
+		'third_party/libusb' \
+		'third_party/libwebm' \
+		'third_party/libxml/chromium' \
+		'third_party/libyuv' \
+		'third_party/lss' \
+		'third_party/lzma_sdk' \
+		'third_party/mesa' \
+		'third_party/modp_b64' \
+		'third_party/mt19937ar' \
+		'third_party/openh264' \
+		'third_party/openmax_dl' \
+		'third_party/opus' \
+		'third_party/ots' \
+		'third_party/pdfium' \
+		'third_party/pdfium/third_party/agg23' \
+		'third_party/pdfium/third_party/base' \
+		'third_party/pdfium/third_party/bigint' \
+		'third_party/pdfium/third_party/freetype' \
+		'third_party/pdfium/third_party/lcms2-2.6' \
+		'third_party/pdfium/third_party/libjpeg' \
+		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/libpng16' \
+		'third_party/pdfium/third_party/libtiff' \
+		'third_party/pdfium/third_party/zlib_v128' \
+		'third_party/polymer' \
+		'third_party/protobuf' \
+		'third_party/protobuf/third_party/six' \
+		'third_party/qcms' \
+		'third_party/re2' \
+		'third_party/sfntly' \
+		'third_party/skia' \
+		'third_party/smhasher' \
+		'third_party/sqlite' \
+		'third_party/tcmalloc' \
+		'third_party/usrsctp' \
+		'third_party/web-animations-js' \
+		'third_party/webdriver' \
+		'third_party/webrtc' \
+		'third_party/widevine' \
+		'third_party/woff2' \
+		'third_party/x86inc' \
+		'third_party/zlib/google' \
+		'url/third_party/mozilla' \
+		'v8/src/third_party/valgrind' \
+		--do-remove || die
+}
+
+src_configure() {
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Never tell the build system to "enable" SSE2, it has a few unexpected
+	# additions, bug #336871.
+	myconf_gyp+=" -Ddisable_sse2=1"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
+
+	# Make it possible to remove third_party/adobe.
+	echo > "${T}/flapper_version.h" || die
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_icu (bug #576370).
+	# TODO: use_system_libjpeg (bug #584518).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_re2 (bug #571156).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+	myconf_gyp+="
+		-Duse_system_bzip2=1
+		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
+		-Duse_system_flac=1
+		-Duse_system_harfbuzz=1
+		-Duse_system_jsoncpp=1
+		-Duse_system_libevent=1
+		-Duse_system_libpng=1
+		-Duse_system_libvpx=1
+		-Duse_system_libwebp=1
+		-Duse_system_libxml=1
+		-Duse_system_libxslt=1
+		-Duse_system_minizip=1
+		-Duse_system_nspr=1
+		-Duse_system_snappy=1
+		-Duse_system_speex=1
+		-Duse_system_xdg_utils=1
+		-Duse_system_zlib=1"
+
+	local gn_system_libraries="
+		flac
+		harfbuzz-ng
+		libevent
+		libpng
+		libvpx
+		libwebp
+		libxml
+		libxslt
+		snappy
+		yasm
+		zlib"
+	if use system-ffmpeg; then
+		gn_system_libraries+=" ffmpeg"
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries} || die
+
+	# Needed for system icu - we don't need additional data files.
+	# myconf_gyp+=" -Dicu_use_data_file_flag=0"
+
+	# TODO: patch gyp so that this arm conditional is not needed.
+	if ! use arm; then
+		myconf_gyp+="
+			-Duse_system_yasm=1"
+	fi
+
+	# Optional dependencies.
+	# TODO: linux_link_kerberos, bug #381289.
+	myconf_gyp+="
+		$(gyp_use cups)
+		$(gyp_use gnome use_gconf)
+		$(gyp_use gnome-keyring use_gnome_keyring)
+		$(gyp_use gnome-keyring linux_link_gnome_keyring)
+		$(gyp_use gtk3)
+		$(gyp_use hangouts enable_hangout_services_extension)
+		$(gyp_use kerberos)
+		$(gyp_use pulseaudio)
+		$(gyp_use tcmalloc use_allocator tcmalloc none)
+		$(gyp_use widevine enable_widevine)"
+
+	# TODO: support USE=gnome-keyring for GN
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gconf=$(usex gnome true false)"
+	myconf_gn+=" use_gtk3=$(usex gtk3 true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# Use explicit library dependencies instead of dlopen.
+	# This makes breakages easier to detect by revdep-rebuild.
+	myconf_gyp+="
+		-Dlinux_link_gsettings=1
+		-Dlinux_link_libpci=1
+		-Dlinux_link_libspeechd=1
+		-Dlibspeechd_h_prefix=speech-dispatcher/"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	# TODO: use the file at run time instead of effectively compiling it in.
+	myconf_gyp+="
+		-Dusb_ids_path=/usr/share/misc/usb.ids"
+
+	myconf_gyp+=" -Dfieldtrial_testing_like_official_build=1"
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	if [[ $(tc-getCC) == *clang* ]]; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
+	else
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	myconf_gyp+="
+		-Dclang_use_chrome_plugins=0
+		-Dhost_clang=0
+		-Dlinux_use_bundled_binutils=0
+		-Dlinux_use_bundled_gold=0
+		-Dlinux_use_gold_flags=0
+		-Dsysroot="
+	# Trying to use gold results in linker crash.
+	myconf_gn+=" use_gold=false use_sysroot=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+	myconf_gn+=" proprietary_codecs=true ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gyp+=" -Dgoogle_api_key=${google_api_key}
+		-Dgoogle_default_client_id=${google_default_client_id}
+		-Dgoogle_default_client_secret=${google_default_client_secret}"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		# TODO: re-enable NaCl (NativeClient).
+		local CTARGET=${CTARGET:-${CHOST}}
+		if [[ $(tc-is-softfloat) == "no" ]]; then
+
+			myconf_gyp+=" -Darm_float_abi=hard"
+		fi
+		filter-flags "-mfpu=*"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+
+		if [[ ${CTARGET} == armv[78]* ]]; then
+			myconf_gyp+=" -Darmv7=1"
+		else
+			myconf_gyp+=" -Darmv7=0"
+		fi
+		myconf_gyp+=" -Dsysroot=
+			$(gyp_use neon arm_neon)
+			-Ddisable_nacl=1"
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
+	myconf_gn+=" fatal_linker_warnings=false"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gyp.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chrome_sandbox chromedriver"
+
+	# Build mksnapshot and pax-mark it.
+	eninja -C out/Release mksnapshot || die
+	pax-mark m out/Release/mksnapshot
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	newexe out/Release/chrome_sandbox chrome-sandbox || die
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	doins out/Release/icudtl.dat || die
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-gn-r3.patch b/www-client/chromium/files/chromium-gn-r3.patch
new file mode 100644
index 0000000..b29a6ae
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r3.patch
@@ -0,0 +1,21 @@
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 9a3740e8..fa81d10 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -427,6 +427,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/profiler/scoped_tracker.cc',
+       'base/profiler/tracked_time.cc',
+       'base/run_loop.cc',
++      'base/sequence_token.cc',
+       'base/sequence_checker_impl.cc',
+       'base/sequenced_task_runner.cc',
+       'base/sha1.cc',
+@@ -439,7 +440,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/strings/stringprintf.cc',
+       'base/strings/utf_string_conversion_utils.cc',
+       'base/strings/utf_string_conversions.cc',
+-      'base/synchronization/cancellation_flag.cc',
++      'base/synchronization/atomic_flag.cc',
+       'base/synchronization/lock.cc',
+       'base/sys_info.cc',
+       'base/task_runner.cc',

diff --git a/www-client/chromium/files/chromium-last-commit-position-r1.patch b/www-client/chromium/files/chromium-last-commit-position-r1.patch
new file mode 100644
index 0000000..700a86e
--- /dev/null
+++ b/www-client/chromium/files/chromium-last-commit-position-r1.patch
@@ -0,0 +1,26 @@
+--- a/tools/gn/gn_main.cc.orig	2015-11-12 11:49:56.260549036 +0000
++++ b/tools/gn/gn_main.cc	2015-11-12 11:50:14.780931485 +0000
+@@ -11,13 +11,7 @@
+ #include "tools/gn/standard_out.h"
+ #include "tools/gn/switches.h"
+ 
+-// Only the GN-generated build makes this header for now.
+-// TODO(brettw) consider adding this if we need it in GYP.
+-#if defined(GN_BUILD)
+-#include "tools/gn/last_commit_position.h"
+-#else
+ #define LAST_COMMIT_POSITION "UNKNOWN"
+-#endif
+ 
+ namespace {
+ 
+--- a/tools/gn/BUILD.gn.orig	2015-11-12 11:50:43.513524769 +0000
++++ b/tools/gn/BUILD.gn	2015-11-12 11:50:57.697817632 +0000
+@@ -227,7 +227,6 @@
+ 
+   deps = [
+     ":gn_lib",
+-    ":last_commit_position",
+     "//base",
+     "//build/config/sanitizers:deps",
+   ]

diff --git a/www-client/chromium/files/chromium-system-ffmpeg-r3.patch b/www-client/chromium/files/chromium-system-ffmpeg-r3.patch
index 8be1735..023dd26 100644
--- a/www-client/chromium/files/chromium-system-ffmpeg-r3.patch
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r3.patch
@@ -19,14 +19,12 @@
  #include <libavformat/avio.h>
  #include <libavutil/avutil.h>
  #include <libavutil/imgutils.h>
-diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
-index 155e980..7ba327a 100644
---- a/media/filters/ffmpeg_demuxer.cc
-+++ b/media/filters/ffmpeg_demuxer.cc
-@@ -1034,24 +1034,6 @@
-   // If no estimate is found, the stream entry will be kInfiniteDuration().
+--- a/media/filters/ffmpeg_demuxer.cc.orig	2016-08-01 10:52:01.528177808 +0000
++++ b/media/filters/ffmpeg_demuxer.cc	2016-08-01 10:52:27.160707694 +0000
+@@ -1150,24 +1150,6 @@
+   // If no estimate is found, the stream entry will be kInfiniteDuration.
    std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
-                                                     kInfiniteDuration());
+                                                     kInfiniteDuration);
 -  const AVFormatInternal* internal = format_context->internal;
 -  if (internal && internal->packet_buffer &&
 -      format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
@@ -46,28 +44,5 @@ index 155e980..7ba327a 100644
 -    }
 -  }
  
+   std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
    AVStream* audio_stream = NULL;
-   AudioDecoderConfig audio_config;
-Index: build/linux/unbundle/ffmpeg.gyp
-diff --git a/build/linux/unbundle/ffmpeg.gyp b/build/linux/unbundle/ffmpeg.gyp
-index e3c3723894ceae651920154dbb65cf83aa4d3d40..b86a1c4dc71c55d86a0bb66664f27cfe4f243fbc 100644
---- a/build/linux/unbundle/ffmpeg.gyp
-+++ b/build/linux/unbundle/ffmpeg.gyp
-@@ -41,6 +41,17 @@
-           'USE_SYSTEM_FFMPEG',
-         ],
-       },
-+      'variables': {
-+        'headers_root_path': '.',
-+        'header_filenames': [
-+          'libavcodec/avcodec.h',
-+          'libavformat/avformat.h',
-+          'libavutil/imgutils.h',
-+        ],
-+      },
-+      'includes': [
-+        '../../build/shim_headers.gypi',
-+      ],
-       'link_settings': {
-         'ldflags': [
-           '<!@(pkg-config --libs-only-L --libs-only-other libavcodec libavformat libavutil)',

diff --git a/www-client/chromium/files/chromium-system-jinja-r12.patch b/www-client/chromium/files/chromium-system-jinja-r12.patch
new file mode 100644
index 0000000..869cef9
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-jinja-r12.patch
@@ -0,0 +1,79 @@
+--- a/third_party/WebKit/Source/bindings/scripts/scripts.gyp.orig	2014-08-19 09:55:10.330972228 +0000
++++ b/third_party/WebKit/Source/bindings/scripts/scripts.gyp	2014-08-19 09:55:26.387286232 +0000
+@@ -54,7 +54,6 @@
+     'actions': [{
+       'action_name': 'cache_jinja_templates',
+       'inputs': [
+-        '<@(jinja_module_files)',
+         'code_generator_v8.py',
+         '<@(code_generator_template_files)',
+       ],
+--- a/third_party/WebKit/Source/build/scripts/scripts.gypi.orig	2014-08-19 10:00:00.216521733 +0000
++++ b/third_party/WebKit/Source/build/scripts/scripts.gypi	2014-08-19 10:00:11.464735099 +0000
+@@ -2,10 +2,6 @@
+ {
+     'variables': {
+         'scripts_for_in_files': [
+-            # jinja2/__init__.py contains version string, so sufficient as
+-            # dependency for whole jinja2 package
+-            '<(DEPTH)/third_party/jinja2/__init__.py',
+-            '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
+             'hasher.py',
+             'in_file.py',
+             'in_generator.py',
+--- a/third_party/WebKit/Source/bindings/scripts/scripts.gypi.orig	2014-08-19 10:53:02.824618979 +0000
++++ b/third_party/WebKit/Source/bindings/scripts/scripts.gypi	2014-08-19 10:53:20.784957370 +0000
+@@ -12,9 +12,6 @@
+       '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
+     ],
+     'idl_lexer_parser_files': [
+-      # PLY (Python Lex-Yacc)
+-      '<(DEPTH)/third_party/ply/lex.py',
+-      '<(DEPTH)/third_party/ply/yacc.py',
+       # Web IDL lexer/parser (base parser)
+       '<(DEPTH)/tools/idl_parser/idl_lexer.py',
+       '<(DEPTH)/tools/idl_parser/idl_node.py',
+--- a/third_party/WebKit/Source/build/scripts/scripts.gni.orig	2016-06-02 09:54:28.510152077 +0000
++++ b/third_party/WebKit/Source/build/scripts/scripts.gni	2016-06-02 09:54:50.966612510 +0000
+@@ -9,10 +9,6 @@
+ _scripts_dir = "//third_party/WebKit/Source/build/scripts"
+ 
+ scripts_for_in_files = [
+-  # jinja2/__init__.py contains version string, so sufficient as
+-  # dependency for whole jinja2 package
+-  "//third_party/jinja2/__init__.py",
+-  "//third_party/markupsafe/__init__.py",  # jinja2 dep
+   "$_scripts_dir/hasher.py",
+   "$_scripts_dir/in_file.py",
+   "$_scripts_dir/in_generator.py",
+--- a/third_party/WebKit/Source/bindings/scripts/BUILD.gn.orig	2016-06-02 10:03:01.100658943 +0000
++++ b/third_party/WebKit/Source/bindings/scripts/BUILD.gn	2016-06-02 10:03:13.240907715 +0000
+@@ -36,7 +36,7 @@
+ action("cached_jinja_templates") {
+   script = "code_generator_v8.py"
+ 
+-  inputs = jinja_module_files + [ "code_generator_v8.py" ] +
++  inputs = [ "code_generator_v8.py" ] +
+            code_generator_template_files
+ 
+   # Dummy file to track dependency.
+--- a/third_party/WebKit/Source/platform/v8_inspector/v8_inspector.gyp.orig	2016-06-03 12:31:49.844954196 +0000
++++ b/third_party/WebKit/Source/platform/v8_inspector/v8_inspector.gyp	2016-06-03 12:32:01.869198425 +0000
+@@ -60,7 +60,6 @@
+         {
+           'action_name': 'generateV8InspectorProtocolBackendSources',
+           'inputs': [
+-            '<@(jinja_module_files)',
+             # The python script in action below.
+             '../inspector_protocol/CodeGenerator.py',
+             # Input files for the script.
+--- a/third_party/WebKit/Source/core/inspector/inspector.gyp.orig	2016-06-03 12:38:20.712891692 +0000
++++ b/third_party/WebKit/Source/core/inspector/inspector.gyp	2016-06-03 12:38:31.197104557 +0000
+@@ -52,7 +52,6 @@
+         {
+           'action_name': 'generateInspectorProtocolBackendSources',
+           'inputs': [
+-            '<@(jinja_module_files)',
+             # The python script in action below.
+             '../../platform/inspector_protocol/CodeGenerator.py',
+             # Input files for the script.


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-06-13 20:38 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2016-06-13 20:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ba650a012d8bb9d01291a052c905e8eea5c188d3
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 13 22:36:13 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Jun 13 22:37:44 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba650a01

www-client/chromium: dev channel bump (53.0.2763.0)

Package-Manager: portage-2.2.28

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-53.0.2763.0.ebuild    | 715 +++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r2.patch     |  23 +
 .../chromium/files/chromium-system-jinja-r11.patch |  79 +++
 4 files changed, 818 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 852a832..d13f498 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,3 +3,4 @@ DIST chromium-51.0.2704.63.tar.xz 448628724 SHA256 b243e46e0ebaf8f60d1c37a0d99f1
 DIST chromium-52.0.2743.19.tar.xz 457854724 SHA256 e4149f479bea32142214b07b14912a011278917077e97819fb17fa83540eac16 SHA512 d29638959b8f36e70ce60bffc65b58878e5d607959062847b625d9d6acccfba14e96fbc0cd757b28283dd90bbc1ab336f8da65d4564df26bd86e260aa92cfd7c WHIRLPOOL f48864c796f6a98731de5253daf3d281d6613ada18528358dba9c1de9e86cc14a42f6bd60a5c05c3ddfb826a6eb371c1e5353b9b8e206b24d379225bb439fdbd
 DIST chromium-52.0.2743.33.tar.xz 458015816 SHA256 3201db69bb1dde8b51c1f55f86a7f9374df4d15d8577eb7d2cfcd8544f26be2a SHA512 1e736a9d4c2db5ec285bf9fc73d5a67740a34cfa44f760a2939329513b825e2935a8443c7203883a712a13844c29694cc20a09ac3e901bb9436e0b4c1b74e437 WHIRLPOOL e5a428cb2ed6b57fcffca7efb97634507a1ddba2e625bd271c5dc37619f917716469c7fccb3062a1850268078aef9ee9bd41d55408cc07eba7bb3c49b3f3e97e
 DIST chromium-53.0.2756.0.tar.xz 457232644 SHA256 fc5e54267a857277a08653c95ea6a04c012ac92a5f2c2848b7715536e902c107 SHA512 a93dd06100b846eb3222cc9e7b1841798de02fee2eb70807ed68bc7c2da5422e5259f31d5a3741dbc18c9ed34f3d9cd389b078554fc38cf13183d147266e3efd WHIRLPOOL f9ac5cb89c93b5221c8a036751a2fda35ca5bfaed0d1a7c5e142bfea590a35421109e2ee8965e7fb63eecf6fedae373812dcaeafe95e8acba60630246c9482f7
+DIST chromium-53.0.2763.0.tar.xz 458102064 SHA256 5eeba399dee66367d011dc7732a7d695736693a6652ba7ab9cb6aa8c22562168 SHA512 b1715889e4d5fef6a44123457a613587abc5bc437abb7e02a39e98d83f74bd52eeeb7a0369766957ee90e1c3274ea28fffc411e4f589371813571631a4f9ac0e WHIRLPOOL 929a5db51d389faaf5a04916dba77cdc5932a0c14079c807d984c7ce96fe1225c54279e5d1e03950f9ff9f146744e69f67c4a5e945ad940c9a6d209746658a87

diff --git a/www-client/chromium/chromium-53.0.2763.0.ebuild b/www-client/chromium/chromium-53.0.2763.0.ebuild
new file mode 100644
index 0000000..1238b58
--- /dev/null
+++ b/www-client/chromium/chromium-53.0.2763.0.ebuild
@@ -0,0 +1,715 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh_CN zh_TW"
+
+inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
+	portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
+REQUIRED_USE="gn? ( gnome-keyring !tcmalloc )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+RDEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		media-libs/flac:=
+		>=media-libs/harfbuzz-0.9.41:=[icu(+)]
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
+DEPEND="${RDEPEND}
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig"
+
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND+="
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
+
+# Python dependencies. The DEPEND part needs to be kept in sync
+# with python_check_deps.
+DEPEND+=" $(python_gen_any_dep '
+	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+	dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+	dev-python/html5lib[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/ply[${PYTHON_USEDEP}]
+	dev-python/simplejson[${PYTHON_USEDEP}]
+')"
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/jinja[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/ply[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+pkg_pretend() {
+	if [[ $(tc-getCC)$ == *gcc* ]] && \
+		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
+		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if [[ "${SLOT}" == "0" ]]; then
+		CHROMIUM_SUFFIX=""
+	else
+		CHROMIUM_SUFFIX="-${SLOT}"
+	fi
+	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
+	epatch "${FILESDIR}/${PN}-system-jinja-r11.patch"
+	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-zlib-r0.patch"
+	epatch "${FILESDIR}/${PN}-linker-warnings-r0.patch"
+	epatch "${FILESDIR}/${PN}-gn-r2.patch"
+
+	epatch_user
+
+	local conditional_bundled_libraries=""
+	if ! use system-ffmpeg; then
+		conditional_bundled_libraries+=" third_party/ffmpeg"
+	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			base/third_party/libevent
+			third_party/adobe
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm/run_yasm.py
+		"
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		${conditional_bundled_libraries} \
+		'base/third_party/dmg_fp' \
+		'base/third_party/dynamic_annotations' \
+		'base/third_party/icu' \
+		'base/third_party/nspr' \
+		'base/third_party/superfasthash' \
+		'base/third_party/symbolize' \
+		'base/third_party/valgrind' \
+		'base/third_party/xdg_mime' \
+		'base/third_party/xdg_user_dirs' \
+		'breakpad/src/third_party/curl' \
+		'chrome/third_party/mozilla_security_manager' \
+		'courgette/third_party' \
+		'net/third_party/mozilla_security_manager' \
+		'net/third_party/nss' \
+		'third_party/WebKit' \
+		'third_party/analytics' \
+		'third_party/angle' \
+		'third_party/angle/src/common/third_party/numerics' \
+		'third_party/angle/src/third_party/compiler' \
+		'third_party/angle/src/third_party/libXNVCtrl' \
+		'third_party/angle/src/third_party/murmurhash' \
+		'third_party/angle/src/third_party/trace_event' \
+		'third_party/boringssl' \
+		'third_party/brotli' \
+		'third_party/cacheinvalidation' \
+		'third_party/catapult' \
+		'third_party/catapult/third_party/py_vulcanize' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+		'third_party/catapult/tracing/third_party/components/polymer' \
+		'third_party/catapult/tracing/third_party/d3' \
+		'third_party/catapult/tracing/third_party/gl-matrix' \
+		'third_party/catapult/tracing/third_party/jszip' \
+		'third_party/cld_2' \
+		'third_party/cros_system_api' \
+		'third_party/cython/python_flags.py' \
+		'third_party/devscripts' \
+		'third_party/dom_distiller_js' \
+		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+		'third_party/fips181' \
+		'third_party/flot' \
+		'third_party/google_input_tools' \
+		'third_party/google_input_tools/third_party/closure_library' \
+		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/hunspell' \
+		'third_party/iccjpeg' \
+		'third_party/icu' \
+		'third_party/jstemplate' \
+		'third_party/khronos' \
+		'third_party/leveldatabase' \
+		'third_party/libXNVCtrl' \
+		'third_party/libaddressinput' \
+		'third_party/libjingle' \
+		'third_party/libjpeg_turbo' \
+		'third_party/libphonenumber' \
+		'third_party/libpng' \
+		'third_party/libsecret' \
+		'third_party/libsrtp' \
+		'third_party/libudev' \
+		'third_party/libusb' \
+		'third_party/libvpx' \
+		'third_party/libvpx/source/libvpx/third_party/x86inc' \
+		'third_party/libwebm' \
+		'third_party/libxml/chromium' \
+		'third_party/libyuv' \
+		'third_party/lss' \
+		'third_party/lzma_sdk' \
+		'third_party/mesa' \
+		'third_party/modp_b64' \
+		'third_party/mt19937ar' \
+		'third_party/openh264' \
+		'third_party/openmax_dl' \
+		'third_party/opus' \
+		'third_party/ots' \
+		'third_party/pdfium' \
+		'third_party/pdfium/third_party/agg23' \
+		'third_party/pdfium/third_party/base' \
+		'third_party/pdfium/third_party/bigint' \
+		'third_party/pdfium/third_party/freetype' \
+		'third_party/pdfium/third_party/lcms2-2.6' \
+		'third_party/pdfium/third_party/libjpeg' \
+		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/libpng16' \
+		'third_party/pdfium/third_party/libtiff' \
+		'third_party/pdfium/third_party/zlib_v128' \
+		'third_party/polymer' \
+		'third_party/protobuf' \
+		'third_party/protobuf/third_party/six' \
+		'third_party/qcms' \
+		'third_party/re2' \
+		'third_party/sfntly' \
+		'third_party/skia' \
+		'third_party/smhasher' \
+		'third_party/sqlite' \
+		'third_party/tcmalloc' \
+		'third_party/usrsctp' \
+		'third_party/web-animations-js' \
+		'third_party/webdriver' \
+		'third_party/webrtc' \
+		'third_party/widevine' \
+		'third_party/woff2' \
+		'third_party/x86inc' \
+		'third_party/zlib/google' \
+		'url/third_party/mozilla' \
+		'v8/src/third_party/fdlibm' \
+		'v8/src/third_party/valgrind' \
+		--do-remove || die
+}
+
+src_configure() {
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Never tell the build system to "enable" SSE2, it has a few unexpected
+	# additions, bug #336871.
+	myconf_gyp+=" -Ddisable_sse2=1"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
+
+	# Make it possible to remove third_party/adobe.
+	echo > "${T}/flapper_version.h" || die
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_icu (bug #576370).
+	# TODO: use_system_libjpeg (bug #584518).
+	# TODO: use_system_libpng (bug #578212).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_libvpx (http://crbug.com/494939).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_re2 (bug #571156).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+	myconf_gyp+="
+		-Duse_system_bzip2=1
+		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
+		-Duse_system_flac=1
+		-Duse_system_harfbuzz=1
+		-Duse_system_jsoncpp=1
+		-Duse_system_libevent=1
+		-Duse_system_libwebp=1
+		-Duse_system_libxml=1
+		-Duse_system_libxslt=1
+		-Duse_system_minizip=1
+		-Duse_system_nspr=1
+		-Duse_system_snappy=1
+		-Duse_system_speex=1
+		-Duse_system_xdg_utils=1
+		-Duse_system_zlib=1"
+
+	local gn_system_libraries="
+		flac
+		harfbuzz-ng
+		libevent
+		libwebp
+		libxml
+		libxslt
+		snappy
+		yasm
+		zlib"
+	if use system-ffmpeg; then
+		gn_system_libraries+=" ffmpeg"
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries} || die
+
+	# Needed for system icu - we don't need additional data files.
+	# myconf_gyp+=" -Dicu_use_data_file_flag=0"
+
+	# TODO: patch gyp so that this arm conditional is not needed.
+	if ! use arm; then
+		myconf_gyp+="
+			-Duse_system_yasm=1"
+	fi
+
+	# Optional dependencies.
+	# TODO: linux_link_kerberos, bug #381289.
+	myconf_gyp+="
+		$(gyp_use cups)
+		$(gyp_use gnome use_gconf)
+		$(gyp_use gnome-keyring use_gnome_keyring)
+		$(gyp_use gnome-keyring linux_link_gnome_keyring)
+		$(gyp_use gtk3)
+		$(gyp_use hangouts enable_hangout_services_extension)
+		$(gyp_use kerberos)
+		$(gyp_use pulseaudio)
+		$(gyp_use tcmalloc use_allocator tcmalloc none)
+		$(gyp_use widevine enable_widevine)"
+
+	# TODO: support USE=gnome-keyring for GN
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gconf=$(usex gnome true false)"
+	myconf_gn+=" use_gtk3=$(usex gtk3 true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# Use explicit library dependencies instead of dlopen.
+	# This makes breakages easier to detect by revdep-rebuild.
+	myconf_gyp+="
+		-Dlinux_link_gsettings=1
+		-Dlinux_link_libpci=1
+		-Dlinux_link_libspeechd=1
+		-Dlibspeechd_h_prefix=speech-dispatcher/"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	# TODO: use the file at run time instead of effectively compiling it in.
+	myconf_gyp+="
+		-Dusb_ids_path=/usr/share/misc/usb.ids"
+
+	myconf_gyp+=" -Dfieldtrial_testing_like_official_build=1"
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	if [[ $(tc-getCC) == *clang* ]]; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
+	else
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	myconf_gyp+="
+		-Dclang_use_chrome_plugins=0
+		-Dhost_clang=0
+		-Dlinux_use_bundled_binutils=0
+		-Dlinux_use_bundled_gold=0
+		-Dlinux_use_gold_flags=0
+		-Dsysroot="
+	myconf_gn+=" use_sysroot=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+	myconf_gn+=" proprietary_codecs=true ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gyp+=" -Dgoogle_api_key=${google_api_key}
+		-Dgoogle_default_client_id=${google_default_client_id}
+		-Dgoogle_default_client_secret=${google_default_client_secret}"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		# TODO: re-enable NaCl (NativeClient).
+		local CTARGET=${CTARGET:-${CHOST}}
+		if [[ $(tc-is-softfloat) == "no" ]]; then
+
+			myconf_gyp+=" -Darm_float_abi=hard"
+		fi
+		filter-flags "-mfpu=*"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+
+		if [[ ${CTARGET} == armv[78]* ]]; then
+			myconf_gyp+=" -Darmv7=1"
+		else
+			myconf_gyp+=" -Darmv7=0"
+		fi
+		myconf_gyp+=" -Dsysroot=
+			$(gyp_use neon arm_neon)
+			-Ddisable_nacl=1"
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gyp.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chrome_sandbox chromedriver"
+
+	if ! use gn; then
+		# Build mksnapshot and pax-mark it.
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	newexe out/Release/chrome_sandbox chrome-sandbox || die
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	doins out/Release/icudtl.dat || die
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	fdo-mime_desktop_database_update
+	gnome2_icon_cache_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-gn-r2.patch b/www-client/chromium/files/chromium-gn-r2.patch
new file mode 100644
index 0000000..e304829
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r2.patch
@@ -0,0 +1,23 @@
+Patch by saiarcot895, https://codereview.chromium.org/2059803002
+
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 4648b540acbbba5666ea6a1c4b832e3706f7e642..72ffd6093d22dfa993f523ed425bcec8d3320b02 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -316,6 +316,7 @@ def write_ninja(path, root_gen_dir, options):
+       'base/trace_event/memory_dump_manager.cc',
+       'base/trace_event/memory_dump_request_args.cc',
+       'base/trace_event/memory_dump_session_state.cc',
++      'base/trace_event/memory_infra_background_whitelist.cc',
+       'base/trace_event/process_memory_dump.cc',
+       'base/trace_event/process_memory_maps.cc',
+       'base/trace_event/process_memory_totals.cc',
+@@ -353,6 +354,7 @@ def write_ninja(path, root_gen_dir, options):
+         'base/process/process_posix.cc',
+         'base/synchronization/condition_variable_posix.cc',
+         'base/synchronization/lock_impl_posix.cc',
++        'base/synchronization/read_write_lock_posix.cc',
+         'base/synchronization/waitable_event_posix.cc',
+         'base/sys_info_posix.cc',
+         'base/threading/platform_thread_internal_posix.cc',

diff --git a/www-client/chromium/files/chromium-system-jinja-r11.patch b/www-client/chromium/files/chromium-system-jinja-r11.patch
new file mode 100644
index 0000000..0b3c9b7
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-jinja-r11.patch
@@ -0,0 +1,79 @@
+--- third_party/WebKit/Source/bindings/scripts/scripts.gyp.orig	2014-08-19 09:55:10.330972228 +0000
++++ third_party/WebKit/Source/bindings/scripts/scripts.gyp	2014-08-19 09:55:26.387286232 +0000
+@@ -54,7 +54,6 @@
+     'actions': [{
+       'action_name': 'cache_jinja_templates',
+       'inputs': [
+-        '<@(jinja_module_files)',
+         'code_generator_v8.py',
+         '<@(code_generator_template_files)',
+       ],
+--- third_party/WebKit/Source/build/scripts/scripts.gypi.orig	2014-08-19 10:00:00.216521733 +0000
++++ third_party/WebKit/Source/build/scripts/scripts.gypi	2014-08-19 10:00:11.464735099 +0000
+@@ -2,10 +2,6 @@
+ {
+     'variables': {
+         'scripts_for_in_files': [
+-            # jinja2/__init__.py contains version string, so sufficient as
+-            # dependency for whole jinja2 package
+-            '<(DEPTH)/third_party/jinja2/__init__.py',
+-            '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
+             'hasher.py',
+             'in_file.py',
+             'in_generator.py',
+--- third_party/WebKit/Source/bindings/scripts/scripts.gypi.orig	2014-08-19 10:53:02.824618979 +0000
++++ third_party/WebKit/Source/bindings/scripts/scripts.gypi	2014-08-19 10:53:20.784957370 +0000
+@@ -12,9 +12,6 @@
+       '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
+     ],
+     'idl_lexer_parser_files': [
+-      # PLY (Python Lex-Yacc)
+-      '<(DEPTH)/third_party/ply/lex.py',
+-      '<(DEPTH)/third_party/ply/yacc.py',
+       # Web IDL lexer/parser (base parser)
+       '<(DEPTH)/tools/idl_parser/idl_lexer.py',
+       '<(DEPTH)/tools/idl_parser/idl_node.py',
+--- third_party/WebKit/Source/build/scripts/scripts.gni.orig	2016-06-02 09:54:28.510152077 +0000
++++ third_party/WebKit/Source/build/scripts/scripts.gni	2016-06-02 09:54:50.966612510 +0000
+@@ -9,10 +9,6 @@
+ _scripts_dir = "//third_party/WebKit/Source/build/scripts"
+ 
+ scripts_for_in_files = [
+-  # jinja2/__init__.py contains version string, so sufficient as
+-  # dependency for whole jinja2 package
+-  "//third_party/jinja2/__init__.py",
+-  "//third_party/markupsafe/__init__.py",  # jinja2 dep
+   "$_scripts_dir/hasher.py",
+   "$_scripts_dir/in_file.py",
+   "$_scripts_dir/in_generator.py",
+--- third_party/WebKit/Source/bindings/scripts/BUILD.gn.orig	2016-06-02 10:03:01.100658943 +0000
++++ third_party/WebKit/Source/bindings/scripts/BUILD.gn	2016-06-02 10:03:13.240907715 +0000
+@@ -36,7 +36,7 @@
+ action("cached_jinja_templates") {
+   script = "code_generator_v8.py"
+ 
+-  inputs = jinja_module_files + [ "code_generator_v8.py" ] +
++  inputs = [ "code_generator_v8.py" ] +
+            code_generator_template_files
+ 
+   # Dummy file to track dependency.
+--- third_party/WebKit/Source/platform/v8_inspector/v8_inspector.gyp.orig	2016-06-03 12:31:49.844954196 +0000
++++ third_party/WebKit/Source/platform/v8_inspector/v8_inspector.gyp	2016-06-03 12:32:01.869198425 +0000
+@@ -60,7 +60,6 @@
+         {
+           'action_name': 'generateV8InspectorProtocolBackendSources',
+           'inputs': [
+-            '<@(jinja_module_files)',
+             # The python script in action below.
+             '../inspector_protocol/CodeGenerator.py',
+             # Input files for the script.
+--- third_party/WebKit/Source/core/inspector/inspector.gyp.orig	2016-06-03 12:38:20.712891692 +0000
++++ third_party/WebKit/Source/core/inspector/inspector.gyp	2016-06-03 12:38:31.197104557 +0000
+@@ -52,7 +52,6 @@
+         {
+           'action_name': 'generateInspectorProtocolBackendSources',
+           'inputs': [
+-            '<@(jinja_module_files)',
+             # The python script in action below.
+             '../../platform/inspector_protocol/CodeGenerator.py',
+             # Input files for the script.


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-06-03 18:58 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2016-06-03 18:58 UTC (permalink / raw
  To: gentoo-commits

commit:     53bd2b6994bbd70c4d26c5a665138788bf89790c
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  3 18:58:09 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Fri Jun  3 18:58:09 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=53bd2b69

www-client/chromium: dev channel bump (53.0.2756.0)

Package-Manager: portage-2.2.26

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-53.0.2756.0.ebuild    | 713 +++++++++++++++++++++
 .../chromium/files/chromium-system-jinja-r10.patch |  91 +++
 3 files changed, 805 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0213d4a..af3f23a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-50.0.2661.102.tar.xz 531505652 SHA256 12135ef890c2bd13b653a06e2a44
 DIST chromium-51.0.2704.63.tar.xz 448628724 SHA256 b243e46e0ebaf8f60d1c37a0d99f1fdd80e1597667be4776a1862bb004e4eee9 SHA512 d85b6adcf2be5082ec8dc51f62849b3a2d84104d225188b7c5441cd3f9bb1e639b8d9b8cfb069b4a42d2f44128111649982fd20ca99b4f4ed5208c2c2c1a9560 WHIRLPOOL 0b3047c1c38386dbc20ef8fd6992e3c1cfc4e92986f5cbbd3e640671763ff5023427d0d8b5a6a6f6604aaeea4e2fa57e4b3f88d8e47e20684e5c774e8407c8fb
 DIST chromium-52.0.2743.10.tar.xz 457933176 SHA256 9c27e642590a86123bc6abd4d61528927eb982c1ed22f5a7bb22bfad815d7cad SHA512 60302b834702434bff11966dcd5c7a6b7d1c1178a0ca5d65d58051ec0cafd6be301c8f2741298a48c1607466bcec6eb4f5d254480cce25ea3e5742a58d51bd93 WHIRLPOOL b9546216019aa7119f36ce42d873f6882cf3d1198e82134aa5ca4614959f365c7c1b4cf6d500c6637bf4cbe0b08923d1462c22c0a2115854da797c0af0c14ffb
 DIST chromium-52.0.2743.19.tar.xz 457854724 SHA256 e4149f479bea32142214b07b14912a011278917077e97819fb17fa83540eac16 SHA512 d29638959b8f36e70ce60bffc65b58878e5d607959062847b625d9d6acccfba14e96fbc0cd757b28283dd90bbc1ab336f8da65d4564df26bd86e260aa92cfd7c WHIRLPOOL f48864c796f6a98731de5253daf3d281d6613ada18528358dba9c1de9e86cc14a42f6bd60a5c05c3ddfb826a6eb371c1e5353b9b8e206b24d379225bb439fdbd
+DIST chromium-53.0.2756.0.tar.xz 457232644 SHA256 fc5e54267a857277a08653c95ea6a04c012ac92a5f2c2848b7715536e902c107 SHA512 a93dd06100b846eb3222cc9e7b1841798de02fee2eb70807ed68bc7c2da5422e5259f31d5a3741dbc18c9ed34f3d9cd389b078554fc38cf13183d147266e3efd WHIRLPOOL f9ac5cb89c93b5221c8a036751a2fda35ca5bfaed0d1a7c5e142bfea590a35421109e2ee8965e7fb63eecf6fedae373812dcaeafe95e8acba60630246c9482f7

diff --git a/www-client/chromium/chromium-53.0.2756.0.ebuild b/www-client/chromium/chromium-53.0.2756.0.ebuild
new file mode 100644
index 0000000..8744ec3
--- /dev/null
+++ b/www-client/chromium/chromium-53.0.2756.0.ebuild
@@ -0,0 +1,713 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_419 et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh_CN zh_TW"
+
+inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
+	portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
+REQUIRED_USE="gn? ( gnome-keyring !tcmalloc )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+RDEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		media-libs/flac:=
+		>=media-libs/harfbuzz-0.9.41:=[icu(+)]
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
+DEPEND="${RDEPEND}
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig"
+
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND+="
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
+
+# Python dependencies. The DEPEND part needs to be kept in sync
+# with python_check_deps.
+DEPEND+=" $(python_gen_any_dep '
+	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+	dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+	dev-python/html5lib[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/ply[${PYTHON_USEDEP}]
+	dev-python/simplejson[${PYTHON_USEDEP}]
+')"
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/jinja[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/ply[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+pkg_pretend() {
+	if [[ $(tc-getCC)$ == *gcc* ]] && \
+		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
+		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if [[ "${SLOT}" == "0" ]]; then
+		CHROMIUM_SUFFIX=""
+	else
+		CHROMIUM_SUFFIX="-${SLOT}"
+	fi
+	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
+	epatch "${FILESDIR}/${PN}-system-jinja-r10.patch"
+	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-zlib-r0.patch"
+	epatch "${FILESDIR}/${PN}-linker-warnings-r0.patch"
+
+	epatch_user
+
+	local conditional_bundled_libraries=""
+	if ! use system-ffmpeg; then
+		conditional_bundled_libraries+=" third_party/ffmpeg"
+	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			base/third_party/libevent
+			third_party/adobe
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm/run_yasm.py
+		"
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		${conditional_bundled_libraries} \
+		'base/third_party/dmg_fp' \
+		'base/third_party/dynamic_annotations' \
+		'base/third_party/icu' \
+		'base/third_party/nspr' \
+		'base/third_party/superfasthash' \
+		'base/third_party/symbolize' \
+		'base/third_party/valgrind' \
+		'base/third_party/xdg_mime' \
+		'base/third_party/xdg_user_dirs' \
+		'breakpad/src/third_party/curl' \
+		'chrome/third_party/mozilla_security_manager' \
+		'courgette/third_party' \
+		'net/third_party/mozilla_security_manager' \
+		'net/third_party/nss' \
+		'third_party/WebKit' \
+		'third_party/analytics' \
+		'third_party/angle' \
+		'third_party/angle/src/third_party/compiler' \
+		'third_party/angle/src/third_party/libXNVCtrl' \
+		'third_party/angle/src/third_party/murmurhash' \
+		'third_party/angle/src/third_party/trace_event' \
+		'third_party/boringssl' \
+		'third_party/brotli' \
+		'third_party/cacheinvalidation' \
+		'third_party/catapult' \
+		'third_party/catapult/third_party/py_vulcanize' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+		'third_party/catapult/tracing/third_party/components/polymer' \
+		'third_party/catapult/tracing/third_party/d3' \
+		'third_party/catapult/tracing/third_party/gl-matrix' \
+		'third_party/catapult/tracing/third_party/jszip' \
+		'third_party/cld_2' \
+		'third_party/cros_system_api' \
+		'third_party/cython/python_flags.py' \
+		'third_party/devscripts' \
+		'third_party/dom_distiller_js' \
+		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+		'third_party/fips181' \
+		'third_party/flot' \
+		'third_party/google_input_tools' \
+		'third_party/google_input_tools/third_party/closure_library' \
+		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/hunspell' \
+		'third_party/iccjpeg' \
+		'third_party/icu' \
+		'third_party/jstemplate' \
+		'third_party/khronos' \
+		'third_party/leveldatabase' \
+		'third_party/libXNVCtrl' \
+		'third_party/libaddressinput' \
+		'third_party/libjingle' \
+		'third_party/libjpeg_turbo' \
+		'third_party/libphonenumber' \
+		'third_party/libpng' \
+		'third_party/libsecret' \
+		'third_party/libsrtp' \
+		'third_party/libudev' \
+		'third_party/libusb' \
+		'third_party/libvpx' \
+		'third_party/libvpx/source/libvpx/third_party/x86inc' \
+		'third_party/libwebm' \
+		'third_party/libxml/chromium' \
+		'third_party/libyuv' \
+		'third_party/lss' \
+		'third_party/lzma_sdk' \
+		'third_party/mesa' \
+		'third_party/modp_b64' \
+		'third_party/mt19937ar' \
+		'third_party/openh264' \
+		'third_party/openmax_dl' \
+		'third_party/opus' \
+		'third_party/ots' \
+		'third_party/pdfium' \
+		'third_party/pdfium/third_party/agg23' \
+		'third_party/pdfium/third_party/base' \
+		'third_party/pdfium/third_party/bigint' \
+		'third_party/pdfium/third_party/freetype' \
+		'third_party/pdfium/third_party/lcms2-2.6' \
+		'third_party/pdfium/third_party/libjpeg' \
+		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/libpng16' \
+		'third_party/pdfium/third_party/libtiff' \
+		'third_party/pdfium/third_party/zlib_v128' \
+		'third_party/polymer' \
+		'third_party/protobuf' \
+		'third_party/protobuf/third_party/six' \
+		'third_party/qcms' \
+		'third_party/re2' \
+		'third_party/sfntly' \
+		'third_party/skia' \
+		'third_party/smhasher' \
+		'third_party/sqlite' \
+		'third_party/tcmalloc' \
+		'third_party/usrsctp' \
+		'third_party/web-animations-js' \
+		'third_party/webdriver' \
+		'third_party/webrtc' \
+		'third_party/widevine' \
+		'third_party/woff2' \
+		'third_party/x86inc' \
+		'third_party/zlib/google' \
+		'url/third_party/mozilla' \
+		'v8/src/third_party/fdlibm' \
+		'v8/src/third_party/valgrind' \
+		--do-remove || die
+}
+
+src_configure() {
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Never tell the build system to "enable" SSE2, it has a few unexpected
+	# additions, bug #336871.
+	myconf_gyp+=" -Ddisable_sse2=1"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
+
+	# Make it possible to remove third_party/adobe.
+	echo > "${T}/flapper_version.h" || die
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_icu (bug #576370).
+	# TODO: use_system_libjpeg (bug #584518).
+	# TODO: use_system_libpng (bug #578212).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_libvpx (http://crbug.com/494939).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_re2 (bug #571156).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+	myconf_gyp+="
+		-Duse_system_bzip2=1
+		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
+		-Duse_system_flac=1
+		-Duse_system_harfbuzz=1
+		-Duse_system_jsoncpp=1
+		-Duse_system_libevent=1
+		-Duse_system_libwebp=1
+		-Duse_system_libxml=1
+		-Duse_system_libxslt=1
+		-Duse_system_minizip=1
+		-Duse_system_nspr=1
+		-Duse_system_snappy=1
+		-Duse_system_speex=1
+		-Duse_system_xdg_utils=1
+		-Duse_system_zlib=1"
+
+	local gn_system_libraries="
+		flac
+		harfbuzz-ng
+		libevent
+		libwebp
+		libxml
+		libxslt
+		snappy
+		yasm
+		zlib"
+	if use system-ffmpeg; then
+		gn_system_libraries+=" ffmpeg"
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries} || die
+
+	# Needed for system icu - we don't need additional data files.
+	# myconf_gyp+=" -Dicu_use_data_file_flag=0"
+
+	# TODO: patch gyp so that this arm conditional is not needed.
+	if ! use arm; then
+		myconf_gyp+="
+			-Duse_system_yasm=1"
+	fi
+
+	# Optional dependencies.
+	# TODO: linux_link_kerberos, bug #381289.
+	myconf_gyp+="
+		$(gyp_use cups)
+		$(gyp_use gnome use_gconf)
+		$(gyp_use gnome-keyring use_gnome_keyring)
+		$(gyp_use gnome-keyring linux_link_gnome_keyring)
+		$(gyp_use gtk3)
+		$(gyp_use hangouts enable_hangout_services_extension)
+		$(gyp_use kerberos)
+		$(gyp_use pulseaudio)
+		$(gyp_use tcmalloc use_allocator tcmalloc none)
+		$(gyp_use widevine enable_widevine)"
+
+	# TODO: support USE=gnome-keyring for GN
+	myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+	myconf_gn+=" enable_widevine=$(usex widevine true false)"
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_gconf=$(usex gnome true false)"
+	myconf_gn+=" use_gtk3=$(usex gtk3 true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+	myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+	# Use explicit library dependencies instead of dlopen.
+	# This makes breakages easier to detect by revdep-rebuild.
+	myconf_gyp+="
+		-Dlinux_link_gsettings=1
+		-Dlinux_link_libpci=1
+		-Dlinux_link_libspeechd=1
+		-Dlibspeechd_h_prefix=speech-dispatcher/"
+
+	# TODO: link_pulseaudio=true for GN.
+
+	# TODO: use the file at run time instead of effectively compiling it in.
+	myconf_gyp+="
+		-Dusb_ids_path=/usr/share/misc/usb.ids"
+
+	myconf_gyp+=" -Dfieldtrial_testing_like_official_build=1"
+	myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+	if [[ $(tc-getCC) == *clang* ]]; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
+	else
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	myconf_gyp+="
+		-Dclang_use_chrome_plugins=0
+		-Dhost_clang=0
+		-Dlinux_use_bundled_binutils=0
+		-Dlinux_use_bundled_gold=0
+		-Dlinux_use_gold_flags=0
+		-Dsysroot="
+	myconf_gn+=" use_sysroot=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+	myconf_gn+=" proprietary_codecs=true ffmpeg_branding=\"${ffmpeg_branding}\""
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gyp+=" -Dgoogle_api_key=${google_api_key}
+		-Dgoogle_default_client_id=${google_default_client_id}
+		-Dgoogle_default_client_secret=${google_default_client_secret}"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		# TODO: re-enable NaCl (NativeClient).
+		local CTARGET=${CTARGET:-${CHOST}}
+		if [[ $(tc-is-softfloat) == "no" ]]; then
+
+			myconf_gyp+=" -Darm_float_abi=hard"
+		fi
+		filter-flags "-mfpu=*"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+
+		if [[ ${CTARGET} == armv[78]* ]]; then
+			myconf_gyp+=" -Darmv7=1"
+		else
+			myconf_gyp+=" -Darmv7=0"
+		fi
+		myconf_gyp+=" -Dsysroot=
+			$(gyp_use neon arm_neon)
+			-Ddisable_nacl=1"
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	if ! use system-ffmpeg; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gyp.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chrome_sandbox chromedriver"
+
+	if ! use gn; then
+		# Build mksnapshot and pax-mark it.
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	newexe out/Release/chrome_sandbox chrome-sandbox || die
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	doins out/Release/icudtl.dat || die
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	fdo-mime_desktop_database_update
+	gnome2_icon_cache_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-system-jinja-r10.patch b/www-client/chromium/files/chromium-system-jinja-r10.patch
new file mode 100644
index 0000000..ee00b60
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-jinja-r10.patch
@@ -0,0 +1,91 @@
+--- third_party/WebKit/Source/bindings/scripts/scripts.gyp.orig	2014-08-19 09:55:10.330972228 +0000
++++ third_party/WebKit/Source/bindings/scripts/scripts.gyp	2014-08-19 09:55:26.387286232 +0000
+@@ -54,7 +54,6 @@
+     'actions': [{
+       'action_name': 'cache_jinja_templates',
+       'inputs': [
+-        '<@(jinja_module_files)',
+         'code_generator_v8.py',
+         '<@(code_generator_template_files)',
+       ],
+--- third_party/WebKit/Source/build/scripts/scripts.gypi.orig	2014-08-19 10:00:00.216521733 +0000
++++ third_party/WebKit/Source/build/scripts/scripts.gypi	2014-08-19 10:00:11.464735099 +0000
+@@ -2,10 +2,6 @@
+ {
+     'variables': {
+         'scripts_for_in_files': [
+-            # jinja2/__init__.py contains version string, so sufficient as
+-            # dependency for whole jinja2 package
+-            '<(DEPTH)/third_party/jinja2/__init__.py',
+-            '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
+             'hasher.py',
+             'in_file.py',
+             'in_generator.py',
+--- third_party/WebKit/Source/bindings/scripts/scripts.gypi.orig	2014-08-19 10:53:02.824618979 +0000
++++ third_party/WebKit/Source/bindings/scripts/scripts.gypi	2014-08-19 10:53:20.784957370 +0000
+@@ -12,9 +12,6 @@
+       '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
+     ],
+     'idl_lexer_parser_files': [
+-      # PLY (Python Lex-Yacc)
+-      '<(DEPTH)/third_party/ply/lex.py',
+-      '<(DEPTH)/third_party/ply/yacc.py',
+       # Web IDL lexer/parser (base parser)
+       '<(DEPTH)/tools/idl_parser/idl_lexer.py',
+       '<(DEPTH)/tools/idl_parser/idl_node.py',
+--- third_party/WebKit/Source/platform/inspector_protocol/protocol.gyp.orig	2016-03-23 15:10:41.522637837 +0000
++++ third_party/WebKit/Source/platform/inspector_protocol/protocol.gyp	2016-03-23 15:10:56.938953740 +0000
+@@ -6,9 +6,6 @@
+   'variables': {
+     'blink_platform_output_dir': '<(SHARED_INTERMEDIATE_DIR)/blink/platform',
+     'jinja_module_files': [
+-      # jinja2/__init__.py contains version string, so sufficient for package
+-      '<(DEPTH)/third_party/jinja2/__init__.py',
+-      '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
+     ],
+   },
+ 
+--- third_party/WebKit/Source/build/scripts/scripts.gni.orig	2016-06-02 09:54:28.510152077 +0000
++++ third_party/WebKit/Source/build/scripts/scripts.gni	2016-06-02 09:54:50.966612510 +0000
+@@ -9,10 +9,6 @@
+ _scripts_dir = "//third_party/WebKit/Source/build/scripts"
+ 
+ scripts_for_in_files = [
+-  # jinja2/__init__.py contains version string, so sufficient as
+-  # dependency for whole jinja2 package
+-  "//third_party/jinja2/__init__.py",
+-  "//third_party/markupsafe/__init__.py",  # jinja2 dep
+   "$_scripts_dir/hasher.py",
+   "$_scripts_dir/in_file.py",
+   "$_scripts_dir/in_generator.py",
+--- third_party/WebKit/Source/bindings/scripts/BUILD.gn.orig	2016-06-02 10:03:01.100658943 +0000
++++ third_party/WebKit/Source/bindings/scripts/BUILD.gn	2016-06-02 10:03:13.240907715 +0000
+@@ -36,7 +36,7 @@
+ action("cached_jinja_templates") {
+   script = "code_generator_v8.py"
+ 
+-  inputs = jinja_module_files + [ "code_generator_v8.py" ] +
++  inputs = [ "code_generator_v8.py" ] +
+            code_generator_template_files
+ 
+   # Dummy file to track dependency.
+--- third_party/WebKit/Source/platform/v8_inspector/v8_inspector.gyp.orig	2016-06-03 12:31:49.844954196 +0000
++++ third_party/WebKit/Source/platform/v8_inspector/v8_inspector.gyp	2016-06-03 12:32:01.869198425 +0000
+@@ -60,7 +60,6 @@
+         {
+           'action_name': 'generateV8InspectorProtocolBackendSources',
+           'inputs': [
+-            '<@(jinja_module_files)',
+             # The python script in action below.
+             '../inspector_protocol/CodeGenerator.py',
+             # Input files for the script.
+--- third_party/WebKit/Source/core/inspector/inspector.gyp.orig	2016-06-03 12:38:20.712891692 +0000
++++ third_party/WebKit/Source/core/inspector/inspector.gyp	2016-06-03 12:38:31.197104557 +0000
+@@ -52,7 +52,6 @@
+         {
+           'action_name': 'generateInspectorProtocolBackendSources',
+           'inputs': [
+-            '<@(jinja_module_files)',
+             # The python script in action below.
+             '../../platform/inspector_protocol/CodeGenerator.py',
+             # Input files for the script.


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-06-01 20:22 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2016-06-01 20:22 UTC (permalink / raw
  To: gentoo-commits

commit:     e4ccfa62bbbbfa8a8b72e810163e40ba79a4b17e
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  1 20:22:03 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Jun  1 20:22:36 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4ccfa62

www-client/chromium: dev channel bump (52.0.2743.10)

Package-Manager: portage-2.2.26

 www-client/chromium/Manifest                       |  2 +-
 ....2716.0.ebuild => chromium-52.0.2743.10.ebuild} | 44 +++++++++++++---------
 .../files/chromium-linker-warnings-r0.patch        | 18 +++++++++
 www-client/chromium/files/chromium-pdfium-r0.patch | 17 +++++++++
 .../chromium/files/chromium-system-zlib-r0.patch   | 19 ++++++++++
 5 files changed, 82 insertions(+), 18 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f78346e..cbf4841 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,4 @@
 DIST chromium-50.0.2661.102.tar.xz 531505652 SHA256 12135ef890c2bd13b653a06e2a44e8f251a65fe9e91404c792d27e346c5d57c6 SHA512 277311b77df7331b996a1b08c2591c7407a57ba4ee9c93d82eaea63db7ffd1551647e04c64c5e460c58862ff2363d59a674043a41d6b7f05ff4b2b85f18c7e7e WHIRLPOOL 183c6e8dd0e195bc027a685c4064a0aaceaf880fae62b89b664a4cd1e1aedf9510961ce7b6c3e515f47222545bc695a5876a6ed4c8580ce599d1139cb3fd20f7
 DIST chromium-51.0.2704.63.tar.xz 448628724 SHA256 b243e46e0ebaf8f60d1c37a0d99f1fdd80e1597667be4776a1862bb004e4eee9 SHA512 d85b6adcf2be5082ec8dc51f62849b3a2d84104d225188b7c5441cd3f9bb1e639b8d9b8cfb069b4a42d2f44128111649982fd20ca99b4f4ed5208c2c2c1a9560 WHIRLPOOL 0b3047c1c38386dbc20ef8fd6992e3c1cfc4e92986f5cbbd3e640671763ff5023427d0d8b5a6a6f6604aaeea4e2fa57e4b3f88d8e47e20684e5c774e8407c8fb
-DIST chromium-52.0.2716.0.tar.xz 461514628 SHA256 c0f593a640fce7a8c93081725bfc16fae0c4a268c846343fdfeba11fd35755fe SHA512 25cda422bc1af230613004db56fe8fa0d9a7ed3f9c20b357ff60f788854509ac60f855c1454db05e8921a8f83ba0e95a4f841255d8d6390df68808f04f94826e WHIRLPOOL e49f3f56a63afb755c1432ea82b77b9f4b4ce02559e24b2e11bdaa199df67a20d4a80470b6c0ae86f5091b24d77bdabf3d79f37d3d40604e0db11b823e7e3500
 DIST chromium-52.0.2723.2.tar.xz 466192080 SHA256 b463bca13a37f474e2d34e85d138d595e2e091e845f9bdc69c1090931de353a3 SHA512 fe7de4db588115e1f6155577c0dc721e8b54db5bd67a2c6dc495f75569d3a78060b9f7343c70ed5e04814b021f7031790da7a5486b25bbe41b11a256eb0cd163 WHIRLPOOL e7a911da45c7bdc8b887f27f14fda933e3c56ddea07f5af1c89f32a39c83511f06f2e7d30a7762fa90ca1fef4684e82ee06cc08fb2ef6e7a882fbba255e8d9f9
+DIST chromium-52.0.2743.10.tar.xz 457933176 SHA256 9c27e642590a86123bc6abd4d61528927eb982c1ed22f5a7bb22bfad815d7cad SHA512 60302b834702434bff11966dcd5c7a6b7d1c1178a0ca5d65d58051ec0cafd6be301c8f2741298a48c1607466bcec6eb4f5d254480cce25ea3e5742a58d51bd93 WHIRLPOOL b9546216019aa7119f36ce42d873f6882cf3d1198e82134aa5ca4614959f365c7c1b4cf6d500c6637bf4cbe0b08923d1462c22c0a2115854da797c0af0c14ffb

diff --git a/www-client/chromium/chromium-52.0.2716.0.ebuild b/www-client/chromium/chromium-52.0.2743.10.ebuild
similarity index 96%
rename from www-client/chromium/chromium-52.0.2716.0.ebuild
rename to www-client/chromium/chromium-52.0.2743.10.ebuild
index 2d23e7d..e3d154d 100644
--- a/www-client/chromium/chromium-52.0.2716.0.ebuild
+++ b/www-client/chromium/chromium-52.0.2743.10.ebuild
@@ -81,7 +81,6 @@ RDEPEND="
 		dev-libs/libxslt:=
 		media-libs/flac:=
 		>=media-libs/harfbuzz-0.9.41:=[icu(+)]
-		>=media-libs/libjpeg-turbo-1.2.0-r1:=
 		>=media-libs/libwebp-0.4.0:=
 		sys-libs/zlib:=[minizip]
 	)"
@@ -193,6 +192,9 @@ src_prepare() {
 	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
 	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
 	epatch "${FILESDIR}/${PN}-snapshot-toolchain-r1.patch"
+	epatch "${FILESDIR}/${PN}-pdfium-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-zlib-r0.patch"
+	epatch "${FILESDIR}/${PN}-linker-warnings-r0.patch"
 
 	epatch_user
 
@@ -204,23 +206,13 @@ src_prepare() {
 		conditional_bundled_libraries+="
 			base/third_party/libevent
 			third_party/adobe
-			third_party/ffmpeg
-			third_party/flac
-			third_party/harfbuzz-ng
-			third_party/icu
 			third_party/jinja2
-			third_party/libjpeg_turbo
 			third_party/libpng
-			third_party/libwebp
-			third_party/libxml
-			third_party/libxslt
 			third_party/markupsafe
-			third_party/snappy
 			third_party/speech-dispatcher
 			third_party/usb_ids
 			third_party/xdg-utils
-			third_party/yasm
-			third_party/zlib
+			third_party/yasm/run_yasm.py
 		"
 	fi
 
@@ -239,7 +231,6 @@ src_prepare() {
 		'breakpad/src/third_party/curl' \
 		'chrome/third_party/mozilla_security_manager' \
 		'courgette/third_party' \
-		'crypto/third_party/nss' \
 		'net/third_party/mozilla_security_manager' \
 		'net/third_party/nss' \
 		'third_party/WebKit' \
@@ -280,6 +271,7 @@ src_prepare() {
 		'third_party/libXNVCtrl' \
 		'third_party/libaddressinput' \
 		'third_party/libjingle' \
+		'third_party/libjpeg_turbo' \
 		'third_party/libphonenumber' \
 		'third_party/libpng' \
 		'third_party/libsecret' \
@@ -288,8 +280,8 @@ src_prepare() {
 		'third_party/libusb' \
 		'third_party/libvpx' \
 		'third_party/libvpx/source/libvpx/third_party/x86inc' \
-		'third_party/libxml/chromium' \
 		'third_party/libwebm' \
+		'third_party/libxml/chromium' \
 		'third_party/libyuv' \
 		'third_party/lss' \
 		'third_party/lzma_sdk' \
@@ -308,9 +300,12 @@ src_prepare() {
 		'third_party/pdfium/third_party/lcms2-2.6' \
 		'third_party/pdfium/third_party/libjpeg' \
 		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/libpng16' \
+		'third_party/pdfium/third_party/libtiff' \
 		'third_party/pdfium/third_party/zlib_v128' \
 		'third_party/polymer' \
 		'third_party/protobuf' \
+		'third_party/protobuf/third_party/six' \
 		'third_party/qcms' \
 		'third_party/re2' \
 		'third_party/sfntly' \
@@ -354,6 +349,7 @@ src_configure() {
 	# Use system-provided libraries.
 	# TODO: use_system_hunspell (upstream changes needed).
 	# TODO: use_system_icu (bug #576370).
+	# TODO: use_system_libjpeg (bug #584518).
 	# TODO: use_system_libpng (bug #578212).
 	# TODO: use_system_libsrtp (bug #459932).
 	# TODO: use_system_libusb (http://crbug.com/266149).
@@ -370,7 +366,6 @@ src_configure() {
 		-Duse_system_harfbuzz=1
 		-Duse_system_jsoncpp=1
 		-Duse_system_libevent=1
-		-Duse_system_libjpeg=1
 		-Duse_system_libwebp=1
 		-Duse_system_libxml=1
 		-Duse_system_libxslt=1
@@ -381,6 +376,21 @@ src_configure() {
 		-Duse_system_xdg_utils=1
 		-Duse_system_zlib=1"
 
+	local gn_system_libraries="
+		flac
+		harfbuzz-ng
+		libevent
+		libwebp
+		libxml
+		libxslt
+		snappy
+		yasm
+		zlib"
+	if use system-ffmpeg; then
+		gn_system_libraries+=" ffmpeg"
+	fi
+	build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries} || die
+
 	# Needed for system icu - we don't need additional data files.
 	# myconf_gyp+=" -Dicu_use_data_file_flag=0"
 
@@ -446,6 +456,7 @@ src_configure() {
 
 	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
 	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+	myconf_gn+=" proprietary_codecs=true ffmpeg_branding=\"${ffmpeg_branding}\""
 
 	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
 	# Note: these are for Gentoo use ONLY. For your own distribution,
@@ -537,8 +548,7 @@ src_configure() {
 	export TMPDIR="${WORKDIR}/temp"
 	mkdir -p -m 755 "${TMPDIR}" || die
 
-	# TODO: also do this for GN bundled ffmpeg build.
-	if ! use system-ffmpeg && ! use gn; then
+	if ! use system-ffmpeg; then
 		local build_ffmpeg_args=""
 		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
 			build_ffmpeg_args+=" --disable-asm"

diff --git a/www-client/chromium/files/chromium-linker-warnings-r0.patch b/www-client/chromium/files/chromium-linker-warnings-r0.patch
new file mode 100644
index 0000000..97d5e16
--- /dev/null
+++ b/www-client/chromium/files/chromium-linker-warnings-r0.patch
@@ -0,0 +1,18 @@
+--- build/config/compiler/BUILD.gn.orig	2016-05-30 13:50:15.341749039 +0000
++++ build/config/compiler/BUILD.gn	2016-05-30 13:50:30.502061407 +0000
+@@ -203,15 +203,6 @@
+         cflags += [ "-fstack-protector" ]
+       }
+     }
+-
+-    # Linker warnings.
+-    if (!(is_chromeos && current_cpu == "arm") &&
+-        !(is_android && use_order_profiling) && !is_mac && !is_ios) {
+-      # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580
+-      # TODO(lizeb,pasko): Fix link errors when linking with order_profiling=1
+-      # crbug.com/485542
+-      ldflags += [ "-Wl,--fatal-warnings" ]
+-    }
+   }
+ 
+   if (is_clang && is_debug) {

diff --git a/www-client/chromium/files/chromium-pdfium-r0.patch b/www-client/chromium/files/chromium-pdfium-r0.patch
new file mode 100644
index 0000000..2ba2684
--- /dev/null
+++ b/www-client/chromium/files/chromium-pdfium-r0.patch
@@ -0,0 +1,17 @@
+--- third_party/pdfium/xfa/fxbarcode/utils.h.orig	2016-05-30 10:24:54.071773744 +0000
++++ third_party/pdfium/xfa/fxbarcode/utils.h	2016-05-30 10:25:15.808219373 +0000
+@@ -26,12 +26,10 @@
+ #endif
+ #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_)
+ #define FXSYS_isnan(x) _isnan(x)
+-#elif(_FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_)
++#elif(_FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_ || \
++      _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_ANDROID_)
+ #include <cmath>
+ #define FXSYS_isnan(x) std::isnan(x)
+-#elif(_FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_ANDROID_)
+-#include <math.h>
+-#define FXSYS_isnan(x) isnan(x)
+ #endif
+ #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_)
+ #define FXSYS_nan() (std::numeric_limits<float>::quiet_NaN())

diff --git a/www-client/chromium/files/chromium-system-zlib-r0.patch b/www-client/chromium/files/chromium-system-zlib-r0.patch
new file mode 100644
index 0000000..3bf38e5
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-zlib-r0.patch
@@ -0,0 +1,19 @@
+--- build/linux/unbundle/zlib.gn.orig	2016-05-30 13:09:56.987716771 +0000
++++ build/linux/unbundle/zlib.gn	2016-05-30 13:12:36.879014187 +0000
+@@ -9,11 +9,16 @@
+   headers = [ "zlib.h" ]
+ }
+ 
++config("system_zlib") {
++  defines = [ "USE_SYSTEM_ZLIB=1" ]
++}
++
+ source_set("zlib") {
+   deps = [
+     ":zlib_shim",
+   ]
+   libs = [ "z" ]
++  public_configs = [ ":system_zlib" ]
+ }
+ 
+ shim_headers("minizip_shim") {


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-05-08 20:06 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2016-05-08 20:06 UTC (permalink / raw
  To: gentoo-commits

commit:     f8f7892ab1c8bd7ce252a89d844978db265eb04c
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sun May  8 20:05:45 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sun May  8 20:06:20 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f8f7892a

www-client/chromium: dev channel bump (52.0.2723.2)

Package-Manager: portage-2.2.26

 www-client/chromium/Manifest                    |   1 +
 www-client/chromium/chromium-52.0.2723.2.ebuild | 703 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r1.patch  |  45 ++
 3 files changed, 749 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 5375883..4e9f604 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-50.0.2661.94.tar.xz 531491584 SHA256 66f0516b076d42b3f00a5fa4ebf31
 DIST chromium-51.0.2704.19.tar.xz 459662212 SHA256 515846fadd3fb4a539c5b368854ba918aeeff910f83e346e2f2515e9251f2ef3 SHA512 86aca654f4ba1c6704748cb41c53273513f6de80a0482e1ae95d02306cc967b7d9d87cba8e9b4984287a4f38b821611fe42c3870c2c9f79997d6a5f8a00004ca WHIRLPOOL 5bf091f52335f7ba29f1acf78e0666673c5c4304e83d7537781691fdd483c45b6466333d64f756ce99ef47578b31fd2828f4124fda492cb62bc6974e71de67d9
 DIST chromium-51.0.2704.22.tar.xz 459682528 SHA256 808ffd06a299a2f8d05deb8199c837cbd9e5b7091715ae48ec5872e8b5ef6bc0 SHA512 d09d2e78d87ed76df597fa764fd9487d04bf66016ce784cf34ac5e69d76535b2969d16d81c7abbd1a2286f35311ab050e4de98b211901a00c925c66b5a10383e WHIRLPOOL e15a330347b1b9b1fed3351ceddfa4eb847c08ebd87e9edf8917ee8e558a016a740da15260af92f3b9fad5ebe45f5654ee1a105d25334876b2948e3d9701b98d
 DIST chromium-52.0.2716.0.tar.xz 461514628 SHA256 c0f593a640fce7a8c93081725bfc16fae0c4a268c846343fdfeba11fd35755fe SHA512 25cda422bc1af230613004db56fe8fa0d9a7ed3f9c20b357ff60f788854509ac60f855c1454db05e8921a8f83ba0e95a4f841255d8d6390df68808f04f94826e WHIRLPOOL e49f3f56a63afb755c1432ea82b77b9f4b4ce02559e24b2e11bdaa199df67a20d4a80470b6c0ae86f5091b24d77bdabf3d79f37d3d40604e0db11b823e7e3500
+DIST chromium-52.0.2723.2.tar.xz 466192080 SHA256 b463bca13a37f474e2d34e85d138d595e2e091e845f9bdc69c1090931de353a3 SHA512 fe7de4db588115e1f6155577c0dc721e8b54db5bd67a2c6dc495f75569d3a78060b9f7343c70ed5e04814b021f7031790da7a5486b25bbe41b11a256eb0cd163 WHIRLPOOL e7a911da45c7bdc8b887f27f14fda933e3c56ddea07f5af1c89f32a39c83511f06f2e7d30a7762fa90ca1fef4684e82ee06cc08fb2ef6e7a882fbba255e8d9f9

diff --git a/www-client/chromium/chromium-52.0.2723.2.ebuild b/www-client/chromium/chromium-52.0.2723.2.ebuild
new file mode 100644
index 0000000..a3c00fc
--- /dev/null
+++ b/www-client/chromium/chromium-52.0.2723.2.ebuild
@@ -0,0 +1,703 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_LA et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh_CN zh_TW"
+
+inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
+	portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD hotwording? ( no-source-code )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
+REQUIRED_USE="gn? ( kerberos !system-ffmpeg !tcmalloc )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+RDEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		media-libs/flac:=
+		>=media-libs/harfbuzz-0.9.41:=[icu(+)]
+		>=media-libs/libjpeg-turbo-1.2.0-r1:=
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
+DEPEND="${RDEPEND}
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig"
+
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND+="
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
+
+# Python dependencies. The DEPEND part needs to be kept in sync
+# with python_check_deps.
+DEPEND+=" $(python_gen_any_dep '
+	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+	dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+	dev-python/html5lib[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/ply[${PYTHON_USEDEP}]
+	dev-python/simplejson[${PYTHON_USEDEP}]
+')"
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/jinja[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/ply[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+pkg_pretend() {
+	if [[ $(tc-getCC)$ == *gcc* ]] && \
+		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
+		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if [[ "${SLOT}" == "0" ]]; then
+		CHROMIUM_SUFFIX=""
+	else
+		CHROMIUM_SUFFIX="-${SLOT}"
+	fi
+	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
+	epatch "${FILESDIR}/${PN}-system-jinja-r8.patch"
+	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
+	epatch "${FILESDIR}/${PN}-snapshot-toolchain-r1.patch"
+	epatch "${FILESDIR}/${PN}-gn-r1.patch"
+
+	epatch_user
+
+	local conditional_bundled_libraries=""
+	if ! use system-ffmpeg; then
+		conditional_bundled_libraries+=" third_party/ffmpeg"
+	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			base/third_party/libevent
+			third_party/adobe
+			third_party/ffmpeg
+			third_party/flac
+			third_party/harfbuzz-ng
+			third_party/icu
+			third_party/jinja2
+			third_party/libjpeg_turbo
+			third_party/libpng
+			third_party/libwebp
+			third_party/libxml
+			third_party/libxslt
+			third_party/markupsafe
+			third_party/snappy
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm
+			third_party/zlib
+		"
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		${conditional_bundled_libraries} \
+		'base/third_party/dmg_fp' \
+		'base/third_party/dynamic_annotations' \
+		'base/third_party/icu' \
+		'base/third_party/nspr' \
+		'base/third_party/superfasthash' \
+		'base/third_party/symbolize' \
+		'base/third_party/valgrind' \
+		'base/third_party/xdg_mime' \
+		'base/third_party/xdg_user_dirs' \
+		'breakpad/src/third_party/curl' \
+		'chrome/third_party/mozilla_security_manager' \
+		'courgette/third_party' \
+		'net/third_party/mozilla_security_manager' \
+		'net/third_party/nss' \
+		'third_party/WebKit' \
+		'third_party/analytics' \
+		'third_party/angle' \
+		'third_party/angle/src/third_party/compiler' \
+		'third_party/angle/src/third_party/libXNVCtrl' \
+		'third_party/angle/src/third_party/murmurhash' \
+		'third_party/angle/src/third_party/trace_event' \
+		'third_party/boringssl' \
+		'third_party/brotli' \
+		'third_party/cacheinvalidation' \
+		'third_party/catapult' \
+		'third_party/catapult/third_party/py_vulcanize' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+		'third_party/catapult/tracing/third_party/components/polymer' \
+		'third_party/catapult/tracing/third_party/d3' \
+		'third_party/catapult/tracing/third_party/gl-matrix' \
+		'third_party/catapult/tracing/third_party/jszip' \
+		'third_party/cld_2' \
+		'third_party/cros_system_api' \
+		'third_party/cython/python_flags.py' \
+		'third_party/devscripts' \
+		'third_party/dom_distiller_js' \
+		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+		'third_party/fips181' \
+		'third_party/flot' \
+		'third_party/google_input_tools' \
+		'third_party/google_input_tools/third_party/closure_library' \
+		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/hunspell' \
+		'third_party/iccjpeg' \
+		'third_party/icu' \
+		'third_party/jstemplate' \
+		'third_party/khronos' \
+		'third_party/leveldatabase' \
+		'third_party/libXNVCtrl' \
+		'third_party/libaddressinput' \
+		'third_party/libjingle' \
+		'third_party/libphonenumber' \
+		'third_party/libpng' \
+		'third_party/libsecret' \
+		'third_party/libsrtp' \
+		'third_party/libudev' \
+		'third_party/libusb' \
+		'third_party/libvpx' \
+		'third_party/libvpx/source/libvpx/third_party/x86inc' \
+		'third_party/libxml/chromium' \
+		'third_party/libwebm' \
+		'third_party/libyuv' \
+		'third_party/lss' \
+		'third_party/lzma_sdk' \
+		'third_party/mesa' \
+		'third_party/modp_b64' \
+		'third_party/mt19937ar' \
+		'third_party/openh264' \
+		'third_party/openmax_dl' \
+		'third_party/opus' \
+		'third_party/ots' \
+		'third_party/pdfium' \
+		'third_party/pdfium/third_party/agg23' \
+		'third_party/pdfium/third_party/base' \
+		'third_party/pdfium/third_party/bigint' \
+		'third_party/pdfium/third_party/freetype' \
+		'third_party/pdfium/third_party/lcms2-2.6' \
+		'third_party/pdfium/third_party/libjpeg' \
+		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/zlib_v128' \
+		'third_party/polymer' \
+		'third_party/protobuf' \
+		'third_party/protobuf/third_party/six' \
+		'third_party/qcms' \
+		'third_party/re2' \
+		'third_party/sfntly' \
+		'third_party/skia' \
+		'third_party/smhasher' \
+		'third_party/sqlite' \
+		'third_party/tcmalloc' \
+		'third_party/usrsctp' \
+		'third_party/web-animations-js' \
+		'third_party/webdriver' \
+		'third_party/webrtc' \
+		'third_party/widevine' \
+		'third_party/woff2' \
+		'third_party/x86inc' \
+		'third_party/zlib/google' \
+		'url/third_party/mozilla' \
+		'v8/src/third_party/fdlibm' \
+		'v8/src/third_party/valgrind' \
+		--do-remove || die
+}
+
+src_configure() {
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Never tell the build system to "enable" SSE2, it has a few unexpected
+	# additions, bug #336871.
+	myconf_gyp+=" -Ddisable_sse2=1"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
+
+	# Make it possible to remove third_party/adobe.
+	echo > "${T}/flapper_version.h" || die
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_icu (bug #576370).
+	# TODO: use_system_libpng (bug #578212).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_libvpx (http://crbug.com/494939).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_re2 (bug #571156).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+	myconf_gyp+="
+		-Duse_system_bzip2=1
+		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
+		-Duse_system_flac=1
+		-Duse_system_harfbuzz=1
+		-Duse_system_jsoncpp=1
+		-Duse_system_libevent=1
+		-Duse_system_libjpeg=1
+		-Duse_system_libwebp=1
+		-Duse_system_libxml=1
+		-Duse_system_libxslt=1
+		-Duse_system_minizip=1
+		-Duse_system_nspr=1
+		-Duse_system_snappy=1
+		-Duse_system_speex=1
+		-Duse_system_xdg_utils=1
+		-Duse_system_zlib=1"
+
+	# Needed for system icu - we don't need additional data files.
+	# myconf_gyp+=" -Dicu_use_data_file_flag=0"
+
+	# TODO: patch gyp so that this arm conditional is not needed.
+	if ! use arm; then
+		myconf_gyp+="
+			-Duse_system_yasm=1"
+	fi
+
+	# Optional dependencies.
+	# TODO: linux_link_kerberos, bug #381289.
+	myconf_gyp+="
+		$(gyp_use cups)
+		$(gyp_use gnome use_gconf)
+		$(gyp_use gnome-keyring use_gnome_keyring)
+		$(gyp_use gnome-keyring linux_link_gnome_keyring)
+		$(gyp_use gtk3)
+		$(gyp_use hangouts enable_hangout_services_extension)
+		$(gyp_use hidpi enable_hidpi)
+		$(gyp_use hotwording enable_hotwording)
+		$(gyp_use kerberos)
+		$(gyp_use pulseaudio)
+		$(gyp_use tcmalloc use_allocator tcmalloc none)
+		$(gyp_use widevine enable_widevine)"
+
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Use explicit library dependencies instead of dlopen.
+	# This makes breakages easier to detect by revdep-rebuild.
+	myconf_gyp+="
+		-Dlinux_link_gsettings=1
+		-Dlinux_link_libpci=1
+		-Dlinux_link_libspeechd=1
+		-Dlibspeechd_h_prefix=speech-dispatcher/"
+
+	# TODO: use the file at run time instead of effectively compiling it in.
+	myconf_gyp+="
+		-Dusb_ids_path=/usr/share/misc/usb.ids"
+
+	# Save space by removing DLOG and DCHECK messages (about 6% reduction).
+	myconf_gyp+="
+		-Dlogging_like_official_build=1"
+
+	if [[ $(tc-getCC) == *clang* ]]; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
+	else
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	myconf_gyp+="
+		-Dclang_use_chrome_plugins=0
+		-Dhost_clang=0
+		-Dlinux_use_bundled_binutils=0
+		-Dlinux_use_bundled_gold=0
+		-Dlinux_use_gold_flags=0
+		-Dsysroot="
+	myconf_gn+=" use_sysroot=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+	local google_default_client_id="329227923882.apps.googleusercontent.com"
+	local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+	myconf_gyp+=" -Dgoogle_api_key=${google_api_key}
+		-Dgoogle_default_client_id=${google_default_client_id}
+		-Dgoogle_default_client_secret=${google_default_client_secret}"
+	myconf_gn+=" google_api_key=\"${google_api_key}\""
+	myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+	myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		# TODO: re-enable NaCl (NativeClient).
+		local CTARGET=${CTARGET:-${CHOST}}
+		if [[ $(tc-is-softfloat) == "no" ]]; then
+
+			myconf_gyp+=" -Darm_float_abi=hard"
+		fi
+		filter-flags "-mfpu=*"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+
+		if [[ ${CTARGET} == armv[78]* ]]; then
+			myconf_gyp+=" -Darmv7=1"
+		else
+			myconf_gyp+=" -Darmv7=0"
+		fi
+		myconf_gyp+=" -Dsysroot=
+			$(gyp_use neon arm_neon)
+			-Ddisable_nacl=1"
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# TODO: also do this for GN bundled ffmpeg build.
+	if ! use system-ffmpeg && ! use gn; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gyp.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chrome_sandbox chromedriver"
+
+	if ! use gn; then
+		# Build mksnapshot and pax-mark it.
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	newexe out/Release/chrome_sandbox chrome-sandbox || die
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	doins out/Release/icudtl.dat || die
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	fdo-mime_desktop_database_update
+	gnome2_icon_cache_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-gn-r1.patch b/www-client/chromium/files/chromium-gn-r1.patch
new file mode 100644
index 0000000..d892941
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r1.patch
@@ -0,0 +1,45 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 2262ab4a801745012ebe7da7ae15bafdf0bc2f79..3d996366f36ce052f57f2430dfe396dc5285cc59 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -291,6 +291,7 @@ def write_ninja(path, root_gen_dir, options):
+       'base/thread_task_runner_handle.cc',
+       'base/threading/non_thread_safe_impl.cc',
+       'base/threading/post_task_and_reply_impl.cc',
++      'base/threading/sequenced_task_runner_handle.cc',
+       'base/threading/sequenced_worker_pool.cc',
+       'base/threading/simple_thread.cc',
+       'base/threading/thread.cc',
+--- a/build/toolchain/gcc_toolchain.gni.orig	2016-05-06 10:44:53.493297905 +0000
++++ b/build/toolchain/gcc_toolchain.gni	2016-05-06 10:46:27.391223437 +0000
+@@ -410,13 +410,6 @@
+       target_os = target_os
+       target_cpu = target_cpu
+ 
+-      forward_variables_from(invoker,
+-                             [
+-                               "use_allocator",
+-                               "use_gold",
+-                               "symbol_level",
+-                             ])
+-
+       if (defined(invoker.is_clang)) {
+         is_clang = invoker.is_clang
+       }
+@@ -426,6 +419,15 @@
+       if (defined(invoker.is_nacl_glibc)) {
+         is_nacl_glibc = invoker.is_nacl_glibc
+       }
++      if (defined(invoker.symbol_level)) {
++        symbol_level = invoker.symbol_level
++      }
++      if (defined(invoker.use_allocator)) {
++        use_allocator = invoker.use_allocator
++      }
++      if (defined(invoker.use_gold)) {
++        use_gold = invoker.use_gold
++      }
+ 
+       if (defined(invoker.clear_sanitizers) && invoker.clear_sanitizers) {
+         is_asan = false


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-03-25 21:29 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2016-03-25 21:29 UTC (permalink / raw
  To: gentoo-commits

commit:     c94bd495ffb08ce97b33c9a491388860f3d2d879
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 25 21:28:43 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Fri Mar 25 21:28:43 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c94bd495

www-client/chromium: dev channel bump (51.0.2687.0)

Package-Manager: portage-2.2.26

 www-client/chromium/Manifest                    |   1 +
 www-client/chromium/chromium-51.0.2687.0.ebuild | 697 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r0.patch  |  93 ++++
 3 files changed, 791 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ec81cfe..0c13158 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,3 @@
 DIST chromium-49.0.2623.108.tar.xz 520440328 SHA256 da083a2bf17ff4c9b09b7451a81dfb41ece6b50ad363df20e918909e8cbcb1c0 SHA512 4b52bad489c21f20598c2770a4240e07e57fc127492eea6d7401214d3dbc74fdc68a8f20bbcff5c12ff5ff51cb0e76e2585ed590c2ca14fac7b99f4dd9281ee3 WHIRLPOOL cd7ec9002e1c1bd794fd1448294bd7aedd9bfe83839f4270046edab7c66d11c0d9f3223aabdc33870831592c939aff4d7fc1e73608d4cc21709f1cd523f34728
 DIST chromium-50.0.2661.37.tar.xz 462477912 SHA256 e67a0e083a446ab57cabe8c7d8e1047aac128ee1aecaddc3d9f801b178a7be39 SHA512 e620d005a1ce2bfd0f3fe940914ac4e117feadbc8a569fa6e32be2593d540dc350c1282675a9f8cb07402a5393203eed77894531f3a9fe2cf16cbb8f70c124d3 WHIRLPOOL 97b66dbfa1824f45a038f761aa1d41852c174853b80bc8c297497ac4d549e46d84b6eb1f6732615c258f14c12aa3b02f3826bebcf2afceca27d8e04f1b311cf8
+DIST chromium-51.0.2687.0.tar.xz 462664524 SHA256 2453e8c43cec937e8ec38e69714a2a18827fffbd4646c62e50f64d99fb9d32f0 SHA512 518d22e5171bc668775356878b4d949ad9e531b329b06ea29f3c909865671da55ec809c058d262e9ece23fa0def805f02d893aba80e487259722a837315e99e2 WHIRLPOOL 98cb82f412c562c16b942000fb44102356bc74bfcc7917ce33db2839caddc5d69998c6e6307c4f35bc30c95ed7e6970a2500e86e1dc34da13ccfcb0656232452

diff --git a/www-client/chromium/chromium-51.0.2687.0.ebuild b/www-client/chromium/chromium-51.0.2687.0.ebuild
new file mode 100644
index 0000000..c86d313
--- /dev/null
+++ b/www-client/chromium/chromium-51.0.2687.0.ebuild
@@ -0,0 +1,697 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_LA et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh_CN zh_TW"
+
+inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
+	portability python-any-r1 readme.gentoo toolchain-funcs versionator virtualx
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD hotwording? ( no-source-code )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+# TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
+REQUIRED_USE="gn? ( kerberos !system-ffmpeg !tcmalloc )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+RDEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		media-libs/flac:=
+		>=media-libs/harfbuzz-0.9.41:=[icu(+)]
+		>=media-libs/libjpeg-turbo-1.2.0-r1:=
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
+DEPEND="${RDEPEND}
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig"
+
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND+="
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
+
+# Python dependencies. The DEPEND part needs to be kept in sync
+# with python_check_deps.
+DEPEND+=" $(python_gen_any_dep '
+	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+	dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+	dev-python/html5lib[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/ply[${PYTHON_USEDEP}]
+	dev-python/simplejson[${PYTHON_USEDEP}]
+')"
+python_check_deps() {
+	has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/jinja[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/ply[${PYTHON_USEDEP}]" &&
+	has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+pkg_pretend() {
+	if [[ $(tc-getCC)$ == *gcc* ]] && \
+		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
+		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if [[ "${SLOT}" == "0" ]]; then
+		CHROMIUM_SUFFIX=""
+	else
+		CHROMIUM_SUFFIX="-${SLOT}"
+	fi
+	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
+	epatch "${FILESDIR}/${PN}-system-jinja-r8.patch"
+	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
+	epatch "${FILESDIR}/${PN}-snapshot-toolchain-r1.patch"
+	epatch "${FILESDIR}/${PN}-gn-r0.patch"
+
+	epatch_user
+
+	local conditional_bundled_libraries=""
+	if ! use system-ffmpeg; then
+		conditional_bundled_libraries+=" third_party/ffmpeg"
+	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			base/third_party/libevent
+			third_party/adobe
+			third_party/ffmpeg
+			third_party/flac
+			third_party/harfbuzz-ng
+			third_party/icu
+			third_party/jinja2
+			third_party/libjpeg_turbo
+			third_party/libpng
+			third_party/libwebp
+			third_party/libxml
+			third_party/libxslt
+			third_party/markupsafe
+			third_party/snappy
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm
+			third_party/zlib
+		"
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		${conditional_bundled_libraries} \
+		'base/third_party/dmg_fp' \
+		'base/third_party/dynamic_annotations' \
+		'base/third_party/icu' \
+		'base/third_party/nspr' \
+		'base/third_party/superfasthash' \
+		'base/third_party/symbolize' \
+		'base/third_party/valgrind' \
+		'base/third_party/xdg_mime' \
+		'base/third_party/xdg_user_dirs' \
+		'breakpad/src/third_party/curl' \
+		'chrome/third_party/mozilla_security_manager' \
+		'courgette/third_party' \
+		'crypto/third_party/nss' \
+		'net/third_party/mozilla_security_manager' \
+		'net/third_party/nss' \
+		'third_party/WebKit' \
+		'third_party/analytics' \
+		'third_party/angle' \
+		'third_party/angle/src/third_party/compiler' \
+		'third_party/angle/src/third_party/murmurhash' \
+		'third_party/angle/src/third_party/trace_event' \
+		'third_party/boringssl' \
+		'third_party/brotli' \
+		'third_party/cacheinvalidation' \
+		'third_party/catapult' \
+		'third_party/catapult/third_party/py_vulcanize' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+		'third_party/catapult/tracing/third_party/components/polymer' \
+		'third_party/catapult/tracing/third_party/d3' \
+		'third_party/catapult/tracing/third_party/gl-matrix' \
+		'third_party/catapult/tracing/third_party/jszip' \
+		'third_party/cld_2' \
+		'third_party/cros_system_api' \
+		'third_party/cython/python_flags.py' \
+		'third_party/devscripts' \
+		'third_party/dom_distiller_js' \
+		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+		'third_party/fips181' \
+		'third_party/flot' \
+		'third_party/google_input_tools' \
+		'third_party/google_input_tools/third_party/closure_library' \
+		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/hunspell' \
+		'third_party/iccjpeg' \
+		'third_party/icu' \
+		'third_party/jstemplate' \
+		'third_party/khronos' \
+		'third_party/leveldatabase' \
+		'third_party/libXNVCtrl' \
+		'third_party/libaddressinput' \
+		'third_party/libjingle' \
+		'third_party/libphonenumber' \
+		'third_party/libpng' \
+		'third_party/libsecret' \
+		'third_party/libsrtp' \
+		'third_party/libudev' \
+		'third_party/libusb' \
+		'third_party/libvpx' \
+		'third_party/libvpx/source/libvpx/third_party/x86inc' \
+		'third_party/libxml/chromium' \
+		'third_party/libwebm' \
+		'third_party/libyuv' \
+		'third_party/lss' \
+		'third_party/lzma_sdk' \
+		'third_party/mesa' \
+		'third_party/modp_b64' \
+		'third_party/mt19937ar' \
+		'third_party/npapi' \
+		'third_party/openh264' \
+		'third_party/openmax_dl' \
+		'third_party/opus' \
+		'third_party/ots' \
+		'third_party/pdfium' \
+		'third_party/pdfium/third_party/agg23' \
+		'third_party/pdfium/third_party/base' \
+		'third_party/pdfium/third_party/bigint' \
+		'third_party/pdfium/third_party/freetype' \
+		'third_party/pdfium/third_party/lcms2-2.6' \
+		'third_party/pdfium/third_party/libjpeg' \
+		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/zlib_v128' \
+		'third_party/polymer' \
+		'third_party/protobuf' \
+		'third_party/qcms' \
+		'third_party/re2' \
+		'third_party/sfntly' \
+		'third_party/skia' \
+		'third_party/smhasher' \
+		'third_party/sqlite' \
+		'third_party/tcmalloc' \
+		'third_party/usrsctp' \
+		'third_party/web-animations-js' \
+		'third_party/webdriver' \
+		'third_party/webrtc' \
+		'third_party/widevine' \
+		'third_party/woff2' \
+		'third_party/x86inc' \
+		'third_party/zlib/google' \
+		'url/third_party/mozilla' \
+		'v8/src/third_party/fdlibm' \
+		'v8/src/third_party/valgrind' \
+		--do-remove || die
+}
+
+src_configure() {
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Never tell the build system to "enable" SSE2, it has a few unexpected
+	# additions, bug #336871.
+	myconf_gyp+=" -Ddisable_sse2=1"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
+
+	# Make it possible to remove third_party/adobe.
+	echo > "${T}/flapper_version.h" || die
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_icu (bug #576370).
+	# TODO: use_system_libpng (bug #578212).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_libvpx (http://crbug.com/494939).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_re2 (bug #571156).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+	myconf_gyp+="
+		-Duse_system_bzip2=1
+		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
+		-Duse_system_flac=1
+		-Duse_system_harfbuzz=1
+		-Duse_system_jsoncpp=1
+		-Duse_system_libevent=1
+		-Duse_system_libjpeg=1
+		-Duse_system_libwebp=1
+		-Duse_system_libxml=1
+		-Duse_system_libxslt=1
+		-Duse_system_minizip=1
+		-Duse_system_nspr=1
+		-Duse_system_snappy=1
+		-Duse_system_speex=1
+		-Duse_system_xdg_utils=1
+		-Duse_system_zlib=1"
+
+	# Needed for system icu - we don't need additional data files.
+	# myconf_gyp+=" -Dicu_use_data_file_flag=0"
+
+	# TODO: patch gyp so that this arm conditional is not needed.
+	if ! use arm; then
+		myconf_gyp+="
+			-Duse_system_yasm=1"
+	fi
+
+	# Optional dependencies.
+	# TODO: linux_link_kerberos, bug #381289.
+	myconf_gyp+="
+		$(gyp_use cups)
+		$(gyp_use gnome use_gconf)
+		$(gyp_use gnome-keyring use_gnome_keyring)
+		$(gyp_use gnome-keyring linux_link_gnome_keyring)
+		$(gyp_use gtk3)
+		$(gyp_use hangouts enable_hangout_services_extension)
+		$(gyp_use hidpi enable_hidpi)
+		$(gyp_use hotwording enable_hotwording)
+		$(gyp_use kerberos)
+		$(gyp_use pulseaudio)
+		$(gyp_use tcmalloc use_allocator tcmalloc none)
+		$(gyp_use widevine enable_widevine)"
+
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+	# Use explicit library dependencies instead of dlopen.
+	# This makes breakages easier to detect by revdep-rebuild.
+	myconf_gyp+="
+		-Dlinux_link_gsettings=1
+		-Dlinux_link_libpci=1
+		-Dlinux_link_libspeechd=1
+		-Dlibspeechd_h_prefix=speech-dispatcher/"
+
+	# TODO: use the file at run time instead of effectively compiling it in.
+	myconf_gyp+="
+		-Dusb_ids_path=/usr/share/misc/usb.ids"
+
+	# Save space by removing DLOG and DCHECK messages (about 6% reduction).
+	myconf_gyp+="
+		-Dlogging_like_official_build=1"
+
+	if [[ $(tc-getCC) == *clang* ]]; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
+	else
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	myconf_gyp+="
+		-Dclang_use_chrome_plugins=0
+		-Dhost_clang=0
+		-Dlinux_use_bundled_binutils=0
+		-Dlinux_use_bundled_gold=0
+		-Dlinux_use_gold_flags=0
+		-Dsysroot="
+	myconf_gn+=" use_sysroot=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	myconf_gyp+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
+		-Dgoogle_default_client_id=329227923882.apps.googleusercontent.com
+		-Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu"
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		# TODO: re-enable NaCl (NativeClient).
+		local CTARGET=${CTARGET:-${CHOST}}
+		if [[ $(tc-is-softfloat) == "no" ]]; then
+
+			myconf_gyp+=" -Darm_float_abi=hard"
+		fi
+		filter-flags "-mfpu=*"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+
+		if [[ ${CTARGET} == armv[78]* ]]; then
+			myconf_gyp+=" -Darmv7=1"
+		else
+			myconf_gyp+=" -Darmv7=0"
+		fi
+		myconf_gyp+=" -Dsysroot=
+			$(gyp_use neon arm_neon)
+			-Ddisable_nacl=1"
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# TODO: also do this for GN bundled ffmpeg build.
+	if ! use system-ffmpeg && ! use gn; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gyp.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chrome_sandbox chromedriver"
+
+	if ! use gn; then
+		# Build mksnapshot and pax-mark it.
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	newexe out/Release/chrome_sandbox chrome-sandbox || die
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	doins out/Release/icudtl.dat || die
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	fdo-mime_desktop_database_update
+	gnome2_icon_cache_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-gn-r0.patch b/www-client/chromium/files/chromium-gn-r0.patch
new file mode 100644
index 0000000..4ccfb93
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r0.patch
@@ -0,0 +1,93 @@
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index ac8adc8..f198833 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -118,6 +118,19 @@ def build_gn_with_ninja_manually(tempdir, options):
+   root_gen_dir = os.path.join(tempdir, 'gen')
+   mkdir_p(root_gen_dir)
+ 
++  if is_linux:
++    mkdir_p(os.path.join(root_gen_dir, 'base', 'allocator'))
++    with tempfile.NamedTemporaryFile() as f:
++      f.write('--flags USE_EXPERIMENTAL_ALLOCATOR_SHIM=true')
++      f.flush()
++
++      check_call([
++          os.path.join(SRC_ROOT, 'build', 'write_buildflag_header.py'),
++          '--output', 'base/allocator/features.h',
++          '--gen-dir', root_gen_dir,
++          '--definitions', f.name,
++      ])
++
+   if is_mac:
+     # //base/build_time.cc needs base/generated_build_date.h,
+     # and this file is only included for Mac builds.
+@@ -155,13 +168,18 @@ def write_ninja(path, root_gen_dir, options):
+     else:
+       cflags.extend(['-O2', '-g0'])
+ 
+-    cflags.extend(['-D_FILE_OFFSET_BITS=64', '-pthread', '-pipe'])
++    cflags.extend([
++        '-D_FILE_OFFSET_BITS=64',
++        '-pthread',
++        '-pipe',
++        '-fno-exceptions'
++    ])
+     cflags_cc.extend(['-std=c++11', '-Wno-c++11-narrowing'])
+ 
+   static_libraries = {
+-      'base': {'sources': [], 'tool': 'cxx'},
+-      'dynamic_annotations': {'sources': [], 'tool': 'cc'},
+-      'gn': {'sources': [], 'tool': 'cxx'},
++      'base': {'sources': [], 'tool': 'cxx', 'include_dirs': []},
++      'dynamic_annotations': {'sources': [], 'tool': 'cc', 'include_dirs': []},
++      'gn': {'sources': [], 'tool': 'cxx', 'include_dirs': []},
+   }
+ 
+   for name in os.listdir(GN_ROOT):
+@@ -181,6 +199,7 @@ def write_ninja(path, root_gen_dir, options):
+   ])
+   static_libraries['base']['sources'].extend([
+       'base/allocator/allocator_extension.cc',
++      'base/allocator/allocator_shim.cc',
+       'base/at_exit.cc',
+       'base/base_paths.cc',
+       'base/base_switches.cc',
+@@ -220,10 +239,11 @@ def write_ninja(path, root_gen_dir, options):
+       'base/metrics/bucket_ranges.cc',
+       'base/metrics/histogram.cc',
+       'base/metrics/histogram_base.cc',
+-      'base/metrics/histogram_persistence.cc',
+       'base/metrics/histogram_samples.cc',
+       'base/metrics/metrics_hashes.cc',
++      'base/metrics/persistent_histogram_allocator.cc',
+       'base/metrics/persistent_memory_allocator.cc',
++      'base/metrics/persistent_sample_map.cc',
+       'base/metrics/sample_map.cc',
+       'base/metrics/sample_vector.cc',
+       'base/metrics/sparse_histogram.cc',
+@@ -276,6 +296,8 @@ def write_ninja(path, root_gen_dir, options):
+       'base/timer/timer.cc',
+       'base/trace_event/heap_profiler_allocation_context.cc',
+       'base/trace_event/heap_profiler_allocation_context_tracker.cc',
++      'base/trace_event/heap_profiler_allocation_register.cc',
++      'base/trace_event/heap_profiler_heap_dump_writer.cc',
+       'base/trace_event/heap_profiler_stack_frame_deduplicator.cc',
+       'base/trace_event/heap_profiler_type_name_deduplicator.cc',
+       'base/trace_event/memory_allocator_dump.cc',
+@@ -328,6 +350,7 @@ def write_ninja(path, root_gen_dir, options):
+         'base/threading/thread_local_storage_posix.cc',
+         'base/threading/worker_pool_posix.cc',
+         'base/time/time_posix.cc',
++        'base/trace_event/heap_profiler_allocation_register_posix.cc',
+     ])
+     static_libraries['libevent'] = {
+         'sources': [
+@@ -362,6 +385,7 @@ def write_ninja(path, root_gen_dir, options):
+         'tool': 'cxx',
+     }
+     static_libraries['base']['sources'].extend([
++        'base/allocator/allocator_shim_default_dispatch_to_glibc.cc',
+         'base/memory/shared_memory_posix.cc',
+         'base/nix/xdg_util.cc',
+         'base/process/internal_linux.cc',


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2016-03-09  4:33 Mike Gilbert
  0 siblings, 0 replies; 149+ messages in thread
From: Mike Gilbert @ 2016-03-09  4:33 UTC (permalink / raw
  To: gentoo-commits

commit:     0f9ab4a2ff84c250ae4f6d89668ac40adddcb54e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  9 02:30:58 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Mar  9 04:33:30 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f9ab4a2

www-client/chromium: Fix sandbox on arm64

https://bugs.gentoo.org/576672

Package-Manager: portage-2.2.27_p81

 .../chromium/chromium-49.0.2623.75-r1.ebuild       | 698 +++++++++++++++++++++
 .../chromium-arm64-align-stack-16-bytes.patch      |  69 ++
 .../files/chromium-whitelist-arm64-syscalls.patch  |  91 +++
 3 files changed, 858 insertions(+)

diff --git a/www-client/chromium/chromium-49.0.2623.75-r1.ebuild b/www-client/chromium/chromium-49.0.2623.75-r1.ebuild
new file mode 100644
index 0000000..2c81516
--- /dev/null
+++ b/www-client/chromium/chromium-49.0.2623.75-r1.ebuild
@@ -0,0 +1,698 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_LA et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh_CN zh_TW"
+
+inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
+	portability python-any-r1 readme.gentoo toolchain-funcs versionator virtualx
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD hotwording? ( no-source-code )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+REQUIRED_USE="gn? ( kerberos !system-ffmpeg )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+RDEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/icu-55.1:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		media-libs/flac:=
+		>=media-libs/harfbuzz-0.9.41:=[icu(+)]
+		>=media-libs/libjpeg-turbo-1.2.0-r1:=
+		media-libs/libpng:0=
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
+DEPEND="${RDEPEND}
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig"
+
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND+="
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
+
+# Python dependencies. The DEPEND part needs to be kept in sync
+# with python_check_deps.
+DEPEND+=" $(python_gen_any_dep '
+	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+	dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+	dev-python/html5lib[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/ply[${PYTHON_USEDEP}]
+	dev-python/simplejson[${PYTHON_USEDEP}]
+')"
+python_check_deps() {
+	has_version "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/html5lib[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/jinja[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/ply[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+pkg_pretend() {
+	if [[ $(tc-getCC)$ == *gcc* ]] && \
+		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
+		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if [[ "${SLOT}" == "0" ]]; then
+		CHROMIUM_SUFFIX=""
+	else
+		CHROMIUM_SUFFIX="-${SLOT}"
+	fi
+	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
+	epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
+	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
+	epatch "${FILESDIR}/${PN}-snapshot-toolchain-r1.patch"
+	#epatch "${FILESDIR}/chromium-whitelist-arm64-syscalls.patch"
+	epatch "${FILESDIR}/chromium-arm64-align-stack-16-bytes.patch"
+
+	epatch_user
+
+	local conditional_bundled_libraries=""
+	if ! use system-ffmpeg; then
+		conditional_bundled_libraries+=" third_party/ffmpeg"
+	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			base/third_party/libevent
+			third_party/adobe
+			third_party/ffmpeg
+			third_party/flac
+			third_party/harfbuzz-ng
+			third_party/icu
+			third_party/jinja2
+			third_party/libjpeg_turbo
+			third_party/libpng
+			third_party/libwebp
+			third_party/libxml
+			third_party/libxslt
+			third_party/markupsafe
+			third_party/snappy
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm
+			third_party/zlib
+		"
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		${conditional_bundled_libraries} \
+		'base/third_party/dmg_fp' \
+		'base/third_party/dynamic_annotations' \
+		'base/third_party/icu' \
+		'base/third_party/nspr' \
+		'base/third_party/superfasthash' \
+		'base/third_party/symbolize' \
+		'base/third_party/valgrind' \
+		'base/third_party/xdg_mime' \
+		'base/third_party/xdg_user_dirs' \
+		'breakpad/src/third_party/curl' \
+		'chrome/third_party/mozilla_security_manager' \
+		'courgette/third_party' \
+		'crypto/third_party/nss' \
+		'net/third_party/mozilla_security_manager' \
+		'net/third_party/nss' \
+		'third_party/WebKit' \
+		'third_party/analytics' \
+		'third_party/angle' \
+		'third_party/angle/src/third_party/compiler' \
+		'third_party/angle/src/third_party/murmurhash' \
+		'third_party/angle/src/third_party/trace_event' \
+		'third_party/boringssl' \
+		'third_party/brotli' \
+		'third_party/cacheinvalidation' \
+		'third_party/catapult' \
+		'third_party/catapult/third_party/py_vulcanize' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+		'third_party/catapult/tracing/third_party/components/polymer' \
+		'third_party/catapult/tracing/third_party/d3' \
+		'third_party/catapult/tracing/third_party/gl-matrix' \
+		'third_party/catapult/tracing/third_party/jszip' \
+		'third_party/cld_2' \
+		'third_party/cros_system_api' \
+		'third_party/cython/python_flags.py' \
+		'third_party/devscripts' \
+		'third_party/dom_distiller_js' \
+		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+		'third_party/fips181' \
+		'third_party/flot' \
+		'third_party/google_input_tools' \
+		'third_party/google_input_tools/third_party/closure_library' \
+		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/hunspell' \
+		'third_party/iccjpeg' \
+		'third_party/jstemplate' \
+		'third_party/khronos' \
+		'third_party/leveldatabase' \
+		'third_party/libXNVCtrl' \
+		'third_party/libaddressinput' \
+		'third_party/libjingle' \
+		'third_party/libphonenumber' \
+		'third_party/libsecret' \
+		'third_party/libsrtp' \
+		'third_party/libudev' \
+		'third_party/libusb' \
+		'third_party/libvpx_new' \
+		'third_party/libvpx_new/source/libvpx/third_party/x86inc' \
+		'third_party/libxml/chromium' \
+		'third_party/libwebm' \
+		'third_party/libyuv' \
+		'third_party/lss' \
+		'third_party/lzma_sdk' \
+		'third_party/mesa' \
+		'third_party/modp_b64' \
+		'third_party/mojo' \
+		'third_party/mt19937ar' \
+		'third_party/npapi' \
+		'third_party/openmax_dl' \
+		'third_party/opus' \
+		'third_party/ots' \
+		'third_party/pdfium' \
+		'third_party/pdfium/third_party/agg23' \
+		'third_party/pdfium/third_party/base' \
+		'third_party/pdfium/third_party/bigint' \
+		'third_party/pdfium/third_party/freetype' \
+		'third_party/pdfium/third_party/lcms2-2.6' \
+		'third_party/pdfium/third_party/libjpeg' \
+		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/zlib_v128' \
+		'third_party/polymer' \
+		'third_party/protobuf' \
+		'third_party/qcms' \
+		'third_party/re2' \
+		'third_party/sfntly' \
+		'third_party/skia' \
+		'third_party/smhasher' \
+		'third_party/sqlite' \
+		'third_party/tcmalloc' \
+		'third_party/usrsctp' \
+		'third_party/web-animations-js' \
+		'third_party/webdriver' \
+		'third_party/webrtc' \
+		'third_party/widevine' \
+		'third_party/woff2' \
+		'third_party/x86inc' \
+		'third_party/zlib/google' \
+		'url/third_party/mozilla' \
+		'v8/src/third_party/fdlibm' \
+		'v8/src/third_party/valgrind' \
+		--do-remove || die
+}
+
+src_configure() {
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
+	# Never tell the build system to "enable" SSE2, it has a few unexpected
+	# additions, bug #336871.
+	myconf_gyp+=" -Ddisable_sse2=1"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
+
+	# Make it possible to remove third_party/adobe.
+	echo > "${T}/flapper_version.h" || die
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_libvpx (http://crbug.com/494939).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_re2 (bug #571156).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+	myconf_gyp+="
+		-Duse_system_bzip2=1
+		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
+		-Duse_system_flac=1
+		-Duse_system_harfbuzz=1
+		-Duse_system_icu=1
+		-Duse_system_jsoncpp=1
+		-Duse_system_libevent=1
+		-Duse_system_libjpeg=1
+		-Duse_system_libpng=1
+		-Duse_system_libwebp=1
+		-Duse_system_libxml=1
+		-Duse_system_libxslt=1
+		-Duse_system_minizip=1
+		-Duse_system_nspr=1
+		-Duse_system_snappy=1
+		-Duse_system_speex=1
+		-Duse_system_xdg_utils=1
+		-Duse_system_zlib=1"
+
+	# Needed for system icu - we don't need additional data files.
+	myconf_gyp+=" -Dicu_use_data_file_flag=0"
+
+	# TODO: patch gyp so that this arm conditional is not needed.
+	if ! use arm; then
+		myconf_gyp+="
+			-Duse_system_yasm=1"
+	fi
+
+	# Optional dependencies.
+	# TODO: linux_link_kerberos, bug #381289.
+	myconf_gyp+="
+		$(gyp_use cups)
+		$(gyp_use gnome use_gconf)
+		$(gyp_use gnome-keyring use_gnome_keyring)
+		$(gyp_use gnome-keyring linux_link_gnome_keyring)
+		$(gyp_use gtk3)
+		$(gyp_use hangouts enable_hangout_services_extension)
+		$(gyp_use hidpi enable_hidpi)
+		$(gyp_use hotwording enable_hotwording)
+		$(gyp_use kerberos)
+		$(gyp_use pulseaudio)
+		$(gyp_use tcmalloc use_allocator tcmalloc none)
+		$(gyp_use widevine enable_widevine)"
+
+	myconf_gn+=" use_cups=$(usex cups true false)"
+
+	# Use explicit library dependencies instead of dlopen.
+	# This makes breakages easier to detect by revdep-rebuild.
+	myconf_gyp+="
+		-Dlinux_link_gsettings=1
+		-Dlinux_link_libpci=1
+		-Dlinux_link_libspeechd=1
+		-Dlibspeechd_h_prefix=speech-dispatcher/"
+
+	# TODO: use the file at run time instead of effectively compiling it in.
+	myconf_gyp+="
+		-Dusb_ids_path=/usr/share/misc/usb.ids"
+
+	# Save space by removing DLOG and DCHECK messages (about 6% reduction).
+	myconf_gyp+="
+		-Dlogging_like_official_build=1"
+
+	if [[ $(tc-getCC) == *clang* ]]; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
+	else
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	myconf_gyp+="
+		-Dclang_use_chrome_plugins=0
+		-Dhost_clang=0
+		-Dlinux_use_bundled_binutils=0
+		-Dlinux_use_bundled_gold=0
+		-Dlinux_use_gold_flags=0
+		-Dsysroot="
+	myconf_gn+=" use_sysroot=false"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	myconf_gyp+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
+		-Dgoogle_default_client_id=329227923882.apps.googleusercontent.com
+		-Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu"
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm64 ]] ; then
+		target_arch=arm64
+		ffmpeg_target_arch=arm64
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		# TODO: re-enable NaCl (NativeClient).
+		local CTARGET=${CTARGET:-${CHOST}}
+		if [[ $(tc-is-softfloat) == "no" ]]; then
+
+			myconf_gyp+=" -Darm_float_abi=hard"
+		fi
+		filter-flags "-mfpu=*"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+
+		if [[ ${CTARGET} == armv[78]* ]]; then
+			myconf_gyp+=" -Darmv7=1"
+		else
+			myconf_gyp+=" -Darmv7=0"
+		fi
+		myconf_gyp+=" -Dsysroot=
+			$(gyp_use neon arm_neon)
+			-Ddisable_nacl=1"
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# TODO: also do this for GN bundled ffmpeg build.
+	if ! use system-ffmpeg && ! use gn; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gyp.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chrome_sandbox chromedriver"
+
+	if ! use gn; then
+		# Build mksnapshot and pax-mark it.
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	newexe out/Release/chrome_sandbox chrome-sandbox || die
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	if use gn; then
+		doins out/Release/icudtl.dat || die
+	fi
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	fdo-mime_desktop_database_update
+	gnome2_icon_cache_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-arm64-align-stack-16-bytes.patch b/www-client/chromium/files/chromium-arm64-align-stack-16-bytes.patch
new file mode 100644
index 0000000..a962f79
--- /dev/null
+++ b/www-client/chromium/files/chromium-arm64-align-stack-16-bytes.patch
@@ -0,0 +1,69 @@
+From f352d974e43a73fed311c60c8fcb4dd043b16093 Mon Sep 17 00:00:00 2001
+From: "riku.voipio" <riku.voipio@linaro.org>
+Date: Wed, 27 Jan 2016 09:13:57 -0800
+Subject: [PATCH] sandbox arm64: align stack 16 bytes
+
+chrome fails to start with user namespace sandboxing:
+
+[866:866:0120/134742:FATAL:zygote_host_impl_linux.cc(182)] Check failed: process.IsValid().
+Failed to launch zygote process
+
+With strace..
+
+clone(child_stack=0x7ffd28fd98, flags=CLONE_NEWUSER|CLONE_NEWPID|CLONE_NEWNET|SIGCHLD) = -1 EINVAL (Invalid argument)
+
+Which compared to kernel sources[1], shows that stack needs to be 16
+bytes aligned. because stack grows downward, this patch assumes
+PTHREAD_STACK_MIN is dividable by 16 too.
+
+[1] http://lxr.free-electrons.com/source/arch/arm64/kernel/process.c#L267
+
+BUG=581018
+R=keescook@chromium.org,jln@chromium.org,rsesek@chromium.org,thakis@chromium.org
+TEST=base_unittests ProcessUtilTest.* and sandbox_linux_unittests NamespaceSandboxTest.*
+
+Review URL: https://codereview.chromium.org/1617763002
+
+Cr-Commit-Position: refs/heads/master@{#371809}
+---
+ base/process/launch_posix.cc          | 2 +-
+ sandbox/linux/services/credentials.cc | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
+index 4bd3da3..4019de5 100644
+--- a/base/process/launch_posix.cc
++++ b/base/process/launch_posix.cc
+@@ -736,7 +736,7 @@ NOINLINE pid_t CloneAndLongjmpInChild(unsigned long flags,
+   // internal pid cache. The libc interface unfortunately requires
+   // specifying a new stack, so we use setjmp/longjmp to emulate
+   // fork-like behavior.
+-  char stack_buf[PTHREAD_STACK_MIN];
++  char stack_buf[PTHREAD_STACK_MIN] ALIGNAS(16);
+ #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
+     defined(ARCH_CPU_MIPS64_FAMILY) || defined(ARCH_CPU_MIPS_FAMILY)
+   // The stack grows downward.
+diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc
+index fb6b6b4..76038af 100644
+--- a/sandbox/linux/services/credentials.cc
++++ b/sandbox/linux/services/credentials.cc
+@@ -16,6 +16,7 @@
+ #include <unistd.h>
+ 
+ #include "base/bind.h"
++#include "base/compiler_specific.h"
+ #include "base/files/file_path.h"
+ #include "base/files/file_util.h"
+ #include "base/logging.h"
+@@ -94,7 +95,7 @@ bool ChrootToSafeEmptyDir() {
+   // /proc/tid directory for the thread (since /proc may not be aware of the
+   // PID namespace). With a process, we can just use /proc/self.
+   pid_t pid = -1;
+-  char stack_buf[PTHREAD_STACK_MIN];
++  char stack_buf[PTHREAD_STACK_MIN] ALIGNAS(16);
+ #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
+     defined(ARCH_CPU_MIPS64_FAMILY) || defined(ARCH_CPU_MIPS_FAMILY)
+   // The stack grows downward.
+-- 
+2.7.2
+

diff --git a/www-client/chromium/files/chromium-whitelist-arm64-syscalls.patch b/www-client/chromium/files/chromium-whitelist-arm64-syscalls.patch
new file mode 100644
index 0000000..125f77d
--- /dev/null
+++ b/www-client/chromium/files/chromium-whitelist-arm64-syscalls.patch
@@ -0,0 +1,91 @@
+From 4e8083b4ab953ba298aedfc4e79d464be15e4012 Mon Sep 17 00:00:00 2001
+From: "riku.voipio" <riku.voipio@linaro.org>
+Date: Tue, 1 Mar 2016 08:02:43 -0800
+Subject: [PATCH] Linux Sandbox: whitelist arm64 syscalls
+
+On debian/arm64, two syscalls needed whitelisting for chromium to work with seccomp:
+
+epoll_pwait, replacing epoll_wait which is a legacy syscall not available on arm64. epoll_wait implmentation in glibc calls epoll_pwait behind scenes, so this needs to be enabled.
+
+getrlimit, missing #ifdef for arm64 in several policy definitions. test for arm64 added for each case.
+
+BUG=581018
+R=keescook@chromium.org,jln@chromium.org,rsesek@chromium.org
+TEST=Start chrome on arm64 with seccomp enabled kernel
+
+Review URL: https://codereview.chromium.org/1613883002
+
+Cr-Commit-Position: refs/heads/master@{#378440}
+---
+ components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc | 3 ++-
+ content/common/sandbox_linux/bpf_renderer_policy_linux.cc      | 3 ++-
+ content/common/sandbox_linux/bpf_utility_policy_linux.cc       | 3 ++-
+ mojo/shell/runner/host/linux_sandbox.cc                        | 5 ++++-
+ sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc              | 2 +-
+ 5 files changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc b/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc
+index 66a606a..3e88304 100644
+--- a/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc
++++ b/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc
+@@ -106,7 +106,8 @@ ResultExpr NaClBPFSandboxPolicy::EvaluateSyscall(int sysno) const {
+     // NaCl uses custom signal stacks.
+     case __NR_sigaltstack:
+     // Below is fairly similar to the policy for a Chromium renderer.
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__aarch64__)
+     case __NR_getrlimit:
+ #endif
+ #if defined(__i386__) || defined(__arm__)
+diff --git a/content/common/sandbox_linux/bpf_renderer_policy_linux.cc b/content/common/sandbox_linux/bpf_renderer_policy_linux.cc
+index e799273..993e2a5 100644
+--- a/content/common/sandbox_linux/bpf_renderer_policy_linux.cc
++++ b/content/common/sandbox_linux/bpf_renderer_policy_linux.cc
+@@ -60,7 +60,8 @@ ResultExpr RendererProcessPolicy::EvaluateSyscall(int sysno) const {
+     // Allow the system calls below.
+     case __NR_fdatasync:
+     case __NR_fsync:
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__aarch64__)
+     case __NR_getrlimit:
+ #endif
+ #if defined(__i386__) || defined(__arm__)
+diff --git a/content/common/sandbox_linux/bpf_utility_policy_linux.cc b/content/common/sandbox_linux/bpf_utility_policy_linux.cc
+index 3ead1c8..1336796 100644
+--- a/content/common/sandbox_linux/bpf_utility_policy_linux.cc
++++ b/content/common/sandbox_linux/bpf_utility_policy_linux.cc
+@@ -32,7 +32,8 @@ ResultExpr UtilityProcessPolicy::EvaluateSyscall(int sysno) const {
+     // Allow the system calls below.
+     case __NR_fdatasync:
+     case __NR_fsync:
+-#if defined(__i386__) || defined(__x86_64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__aarch64__)
+     case __NR_getrlimit:
+ #endif
+ #if defined(__i386__) || defined(__arm__)
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+index 10278dc..b30b3e6 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -414,6 +414,7 @@ bool SyscallSets::IsAllowedEpoll(int sysno) {
+     case __NR_epoll_create:
+     case __NR_epoll_wait:
+ #endif
++    case __NR_epoll_pwait:
+     case __NR_epoll_create1:
+     case __NR_epoll_ctl:
+       return true;
+@@ -421,7 +422,6 @@ bool SyscallSets::IsAllowedEpoll(int sysno) {
+ #if defined(__x86_64__)
+     case __NR_epoll_ctl_old:
+ #endif
+-    case __NR_epoll_pwait:
+ #if defined(__x86_64__)
+     case __NR_epoll_wait_old:
+ #endif
+-- 
+2.7.2
+


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2015-12-07 21:19 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2015-12-07 21:19 UTC (permalink / raw
  To: gentoo-commits

commit:     35506c7c014973e97a1d4234d055dd018bb5d769
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  7 21:18:42 2015 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Dec  7 21:19:16 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35506c7c

www-client/chromium: beta channel bump (48.0.2564.23)

Package-Manager: portage-2.2.20.1

 www-client/chromium/Manifest                                 |  2 +-
 ...omium-48.0.2560.0.ebuild => chromium-48.0.2564.23.ebuild} | 12 ++++++++++--
 www-client/chromium/files/chromium-system-icu-r0.patch       | 11 +++++++++++
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a87f49d..c84129c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-47.0.2526.73-lite.tar.xz 317476384 SHA256 f1b79a5c8dffc4606076fa6c1797aac0da2f3d0c41457eb271769413820987b0 SHA512 3a7d27d258c7b15a26f5a009c58d1d8a1b0ff181b427d63e01d610846eda94bf16c90bbbab5939dbdef187b90cbfb4b1ba1663d7b32804a6414399f96c274bc8 WHIRLPOOL 87b450ab5849baeb98738d47d43cf478db58072a0dcf7f54b9ffd0f2f479cb4aeff1bd3fb857383f9c4be80196589cd355186576c2d60d4f81f65f28ac9df1ea
-DIST chromium-48.0.2560.0.tar.xz 395160400 SHA256 d2c1b9ad53dcaa08302d1dbfa74dc5d003c3c62ce1cd4b6eaf05d274d1af462b SHA512 422b09b0cfafc8761d6addb178b065a7de8f72d0c312b2288a991916536c06403a819b4ec6e3bc37ff0c2fd1ba8b8929f4e43b57a732a03bd5531208cc48e10f WHIRLPOOL 76bff863a212de3a74696e83924f9b5d4c70c045b9d309b0d25267458228761eee4505e2f5b93ac037358f14bc704a41ae03970c7f2ba96192a738fec611dae8
 DIST chromium-48.0.2564.10.tar.xz 432060420 SHA256 1902d75d49d46c32a8c33f6de53c9253a63a364b85eb4ada1e8a9ba7c0f523d0 SHA512 7753dc19a50c862211c10975b3ad64a0408e3645df7b0ea548f8437c4c5380ad0bb350920eb8c6791e0685ae7ec921c6be720e337a17dffe4b73c56b74a2bc9a WHIRLPOOL a9ccb2872ad639886288581e1c7d9244f16965ef924395531701289cc69c5a9dfdc4a25175151d27b150acc8e4398c8d91ca5f8f3e623c3c85c8b99d913c4f00
+DIST chromium-48.0.2564.23.tar.xz 1099898120 SHA256 e9a5eeaedb1975a93d37bc865d3122cf28b7e3a246c06ba19204edaefbce1266 SHA512 72b253f39b561e53c0ef2220402ae15e8d2cdd1af8eab4d5fa8480316919df9059dddf4f4c0d027f78fd0db924b7cbd23d29d406808d18fa047ccddffb6701b3 WHIRLPOOL c133e8e389b560efcc239e2f24bb3befd3fe8731bb2529aeee3f2ae04bf09e5d815ef805750c48dd549fb0b94c1ab77d94b03a0b8245cd537bdb204c79393761

diff --git a/www-client/chromium/chromium-48.0.2560.0.ebuild b/www-client/chromium/chromium-48.0.2564.23.ebuild
similarity index 98%
rename from www-client/chromium/chromium-48.0.2560.0.ebuild
rename to www-client/chromium/chromium-48.0.2564.23.ebuild
index 2f6e233..49ea972 100644
--- a/www-client/chromium/chromium-48.0.2560.0.ebuild
+++ b/www-client/chromium/chromium-48.0.2564.23.ebuild
@@ -190,12 +190,13 @@ pkg_setup() {
 }
 
 src_prepare() {
-	epatch "${FILESDIR}/${PN}-system-ffmpeg-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r1.patch"
 	epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
 	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
-	epatch "${FILESDIR}/${PN}-werror-r0.patch"
 	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
 	epatch "${FILESDIR}/${PN}-snapshot-toolchain-r0.patch"
+	epatch "${FILESDIR}/${PN}-rpath-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-icu-r0.patch"
 
 	epatch_user
 
@@ -334,6 +335,9 @@ src_configure() {
 	local myconf_gyp=""
 	local myconf_gn=""
 
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
+
 	# Never tell the build system to "enable" SSE2, it has a few unexpected
 	# additions, bug #336871.
 	myconf_gyp+=" -Ddisable_sse2=1"
@@ -633,6 +637,10 @@ src_install() {
 	doins out/Release/*.bin || die
 	doins out/Release/*.pak || die
 
+	if use gn; then
+		doins out/Release/icudtl.dat || die
+	fi
+
 	doins -r out/Release/locales || die
 	doins -r out/Release/resources || die
 

diff --git a/www-client/chromium/files/chromium-system-icu-r0.patch b/www-client/chromium/files/chromium-system-icu-r0.patch
new file mode 100644
index 0000000..e1e2135
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-icu-r0.patch
@@ -0,0 +1,11 @@
+--- components/autofill/core/common/autofill_l10n_util.cc.orig	2015-12-07 11:46:37.738740329 +0000
++++ components/autofill/core/common/autofill_l10n_util.cc	2015-12-07 11:46:44.574878953 +0000
+@@ -22,7 +22,7 @@
+     // library. This could be due to a device-specific issue (has been seen in
+     // the wild on Android devices). In the failure case, |collator_| will be
+     // null. See http://crbug.com/558625.
+-    icu_54::UnicodeString name;
++    icu::UnicodeString name;
+     std::string locale_name;
+     locale.getDisplayName(name).toUTF8String(locale_name);
+     LOG(ERROR) << "Failed to initialize the ICU Collator for "


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2015-11-29 21:44 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2015-11-29 21:44 UTC (permalink / raw
  To: gentoo-commits

commit:     a88a8ea88c3e2d4ea99cf2fab97329795f290ca8
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 21:43:19 2015 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 21:44:50 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a88a8ea8

www-client/chromium: dev channel bump (48.0.2564.10)

Package-Manager: portage-2.2.20.1

 www-client/chromium/Manifest                       |   3 +-
 www-client/chromium/chromium-48.0.2552.0.ebuild    | 654 ---------------------
 ....2547.0.ebuild => chromium-48.0.2564.10.ebuild} | 168 +++---
 www-client/chromium/files/chromium-rpath-r0.patch  |  72 +++
 .../chromium/files/chromium-system-ffmpeg-r1.patch |  50 ++
 5 files changed, 225 insertions(+), 722 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ed6dd3a..2e2d528 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,5 @@
 DIST chromium-46.0.2490.86-lite.tar.xz 275908972 SHA256 bc8cc67e9b197e6aebe977b3af70ea57041c020c93a13264515a0dac81937bc6 SHA512 63a23aca030c86be8f12a16884b17e2c3e8c97fd580ea989e34465f9fa91378aeb11c6718e969e0a640e2a8cb0a8999b1ca003409a0436a84dfba500a58f0160 WHIRLPOOL 60a9d4bb5c62d3a781ef0ed0731782fc039a58d0e514cc2e17fb36fdd070894159c4aff7d3711471c2af56d401ef334feb2148eeb08da3601017cf3e6ac07522
 DIST chromium-47.0.2526.49-lite.tar.xz 317398984 SHA256 32fe2246fc25542475c9702853eef9299f097ddeeea7700f275965189da8ac8f SHA512 8d927c564d39182ff35f3089164cfacee12a81d6e46cd349e114ba97ad5a8d807dc24873ef1eccef36a9a75f83a7bb83552d89da4cb6141933ce1e0c07187963 WHIRLPOOL a99a3abc6698bb32dfaff2674e816431178653187cebcfacfdf549bd862e93dcd47405f484d2784ead2be5fb722dff2c88eaaac2aeae2d35a55af4ab87ac1f11
 DIST chromium-47.0.2526.58-lite.tar.xz 317393916 SHA256 86cf7abde8056ab22215f7651eaab29fc0c1dcbc9dfa57dd40409418b800551d SHA512 555fad79cbcd967ecf4b001d703c9fee3b9506e7e7cec9ad59a200ebb7cd39b75fc764d1a52662c328381b97cbf08438f521a04d6bffba48da1adc54b29597eb WHIRLPOOL e75ba2c6353ae24a0ae3175bec544404145ed66f602ea8d46671da7792645272f51e71a728ca3c398d1a35da651e8545a65e927cd4f1d5b418d9c1d72442ebb8
-DIST chromium-48.0.2547.0-lite.tar.xz 306282056 SHA256 cfbdce75bd8904d4a43d5bc7acc82481bfe840c17894294cb0b3d79c2386cee2 SHA512 706c7e6699b7e07a819d29c88a678c62507251cb08ccd4516e2ce847519a34356d49762037a3fefac8adff39f1f9b7c0a6284fa455ffccd98e6074d1ac346d1f WHIRLPOOL 7694f443375dfdc17c90fd4b6c603b210b5e34ad39cfbe93ee9bcdebf0d5600f389b5ffd54fd3438460ffa88e4d456ad20e5b0553582b8ce0389f2bd7c7e15f5
-DIST chromium-48.0.2552.0-lite.tar.xz 306545148 SHA256 ab72fd1e4ff9c2d2d8d931e12ba52395044cd136f1927c1cdb137fdef9dd0ad1 SHA512 1133d4670133ff9a18a2fbad08fcfb5cb2f28e9df092417ca17c0f5360767fa597eb85a0f55de7e2dc06e90a55068410da890664cc1bd071cc85631acebad16d WHIRLPOOL e13788bb8c21a06fc81c0bc2dfe03b13e19089eb8c59301c92666ec7745ac65a527f5a1179c9633194c63b562a2958154b0afc8c173e2a4db59eefada85580e0
 DIST chromium-48.0.2560.0.tar.xz 395160400 SHA256 d2c1b9ad53dcaa08302d1dbfa74dc5d003c3c62ce1cd4b6eaf05d274d1af462b SHA512 422b09b0cfafc8761d6addb178b065a7de8f72d0c312b2288a991916536c06403a819b4ec6e3bc37ff0c2fd1ba8b8929f4e43b57a732a03bd5531208cc48e10f WHIRLPOOL 76bff863a212de3a74696e83924f9b5d4c70c045b9d309b0d25267458228761eee4505e2f5b93ac037358f14bc704a41ae03970c7f2ba96192a738fec611dae8
+DIST chromium-48.0.2564.10.tar.xz 432060420 SHA256 1902d75d49d46c32a8c33f6de53c9253a63a364b85eb4ada1e8a9ba7c0f523d0 SHA512 7753dc19a50c862211c10975b3ad64a0408e3645df7b0ea548f8437c4c5380ad0bb350920eb8c6791e0685ae7ec921c6be720e337a17dffe4b73c56b74a2bc9a WHIRLPOOL a9ccb2872ad639886288581e1c7d9244f16965ef924395531701289cc69c5a9dfdc4a25175151d27b150acc8e4398c8d91ca5f8f3e623c3c85c8b99d913c4f00

diff --git a/www-client/chromium/chromium-48.0.2552.0.ebuild b/www-client/chromium/chromium-48.0.2552.0.ebuild
deleted file mode 100644
index 7c51aa4..0000000
--- a/www-client/chromium/chromium-48.0.2552.0.ebuild
+++ /dev/null
@@ -1,654 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-PYTHON_COMPAT=( python2_7 )
-
-CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_LA et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
-	sv sw ta te th tr uk vi zh_CN zh_TW"
-
-inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
-	portability python-any-r1 readme.gentoo toolchain-funcs versionator virtualx
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}-lite.tar.xz"
-
-LICENSE="BSD hotwording? ( no-source-code )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="cups gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
-RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
-
-# Native Client binaries are compiled with different set of flags, bug #452066.
-QA_FLAGS_IGNORED=".*\.nexe"
-
-# Native Client binaries may be stripped by the build system, which uses the
-# right tools for it, bug #469144 .
-QA_PRESTRIPPED=".*\.nexe"
-
-RDEPEND=">=app-accessibility/speech-dispatcher-0.8:=
-	app-arch/bzip2:=
-	app-arch/snappy:=
-	cups? ( >=net-print/cups-1.3.11:= )
-	>=dev-libs/elfutils-0.149
-	dev-libs/expat:=
-	dev-libs/glib:=
-	>=dev-libs/icu-55.1:=
-	>=dev-libs/jsoncpp-0.5.0-r1:=
-	>=dev-libs/libevent-1.4.13:=
-	dev-libs/libxml2:=[icu]
-	dev-libs/libxslt:=
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.14.3:=
-	dev-libs/re2:=
-	gnome? ( >=gnome-base/gconf-2.24.0:= )
-	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
-	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/flac:=
-	media-libs/fontconfig:=
-	media-libs/freetype:=
-	media-libs/harfbuzz:=[icu(+)]
-	media-libs/libexif:=
-	>=media-libs/libjpeg-turbo-1.2.0-r1:=
-	media-libs/libpng:0=
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/speex:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:=[opus,vorbis,vpx] )
-	sys-apps/dbus:=
-	sys-apps/pciutils:=
-	>=sys-libs/libcap-2.22:=
-	sys-libs/zlib:=[minizip]
-	virtual/udev
-	x11-libs/cairo:=
-	x11-libs/gdk-pixbuf:=
-	gtk3? ( x11-libs/gtk+:3= )
-	!gtk3? ( x11-libs/gtk+:2= )
-	x11-libs/libdrm
-	x11-libs/libX11:=
-	x11-libs/libXcomposite:=
-	x11-libs/libXcursor:=
-	x11-libs/libXdamage:=
-	x11-libs/libXext:=
-	x11-libs/libXfixes:=
-	>=x11-libs/libXi-1.6.0:=
-	x11-libs/libXinerama:=
-	x11-libs/libXrandr:=
-	x11-libs/libXrender:=
-	x11-libs/libXScrnSaver:=
-	x11-libs/libXtst:=
-	x11-libs/pango:=
-	kerberos? ( virtual/krb5 )"
-DEPEND="${RDEPEND}
-	!arm? (
-		dev-lang/yasm
-	)
-	dev-lang/perl
-	dev-perl/JSON
-	>=dev-util/gperf-3.0.3
-	dev-util/ninja
-	sys-apps/hwids[usb(+)]
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig"
-
-# For nvidia-drivers blocker, see bug #413637 .
-RDEPEND+="
-	!=www-client/chromium-9999
-	!<www-plugins/chrome-binary-plugins-37
-	x11-misc/xdg-utils
-	virtual/opengl
-	virtual/ttf-fonts
-	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
-	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
-
-# Python dependencies. The DEPEND part needs to be kept in sync
-# with python_check_deps.
-DEPEND+=" $(python_gen_any_dep '
-	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
-	dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
-	dev-python/html5lib[${PYTHON_USEDEP}]
-	dev-python/jinja[${PYTHON_USEDEP}]
-	dev-python/ply[${PYTHON_USEDEP}]
-	dev-python/simplejson[${PYTHON_USEDEP}]
-')"
-python_check_deps() {
-	has_version "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && \
-		has_version "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" && \
-		has_version "dev-python/html5lib[${PYTHON_USEDEP}]" && \
-		has_version "dev-python/jinja[${PYTHON_USEDEP}]" && \
-		has_version "dev-python/ply[${PYTHON_USEDEP}]" && \
-		has_version "dev-python/simplejson[${PYTHON_USEDEP}]"
-}
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
-	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/bitstream-cyberbit
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-Depending on your desktop environment, you may need
-to install additional packages to get icons on the Downloads page.
-
-For KDE, the required package is kde-frameworks/oxygen-icons.
-
-For other desktop environments, try one of the following:
-- x11-themes/gnome-icon-theme
-- x11-themes/tango-icon-theme
-"
-
-pkg_pretend() {
-	if [[ $(tc-getCC)$ == *gcc* ]] && \
-		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
-		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="3G"
-	CHECKREQS_DISK_BUILD="5G"
-	eshopts_push -s extglob
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		CHECKREQS_DISK_BUILD="25G"
-	fi
-	eshopts_pop
-	check-reqs_pkg_pretend
-}
-
-pkg_setup() {
-	if [[ "${SLOT}" == "0" ]]; then
-		CHROMIUM_SUFFIX=""
-	else
-		CHROMIUM_SUFFIX="-${SLOT}"
-	fi
-	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
-
-	# Make sure the build system will use the right python, bug #344367.
-	python-any-r1_pkg_setup
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
-	# if ! use arm; then
-	#	mkdir -p out/Release/gen/sdk/toolchain || die
-	#	# Do not preserve SELinux context, bug #460892 .
-	#	cp -a --no-preserve=context /usr/$(get_libdir)/nacl-toolchain-newlib \
-	#		out/Release/gen/sdk/toolchain/linux_x86_newlib || die
-	#	touch out/Release/gen/sdk/toolchain/linux_x86_newlib/stamp.untar || die
-	# fi
-
-	epatch "${FILESDIR}/${PN}-system-ffmpeg-r0.patch"
-	epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
-	epatch "${FILESDIR}/chromium-widevine-r1.patch"
-
-	epatch_user
-
-	local conditional_bundled_libraries=""
-	if ! use system-ffmpeg; then
-		conditional_bundled_libraries+=" third_party/ffmpeg"
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	build/linux/unbundle/remove_bundled_libraries.py \
-		${conditional_bundled_libraries} \
-		'base/third_party/dmg_fp' \
-		'base/third_party/dynamic_annotations' \
-		'base/third_party/icu' \
-		'base/third_party/nspr' \
-		'base/third_party/superfasthash' \
-		'base/third_party/symbolize' \
-		'base/third_party/valgrind' \
-		'base/third_party/xdg_mime' \
-		'base/third_party/xdg_user_dirs' \
-		'breakpad/src/third_party/curl' \
-		'chrome/third_party/mozilla_security_manager' \
-		'courgette/third_party' \
-		'crypto/third_party/nss' \
-		'net/third_party/mozilla_security_manager' \
-		'net/third_party/nss' \
-		'third_party/WebKit' \
-		'third_party/analytics' \
-		'third_party/angle' \
-		'third_party/angle/src/third_party/compiler' \
-		'third_party/boringssl' \
-		'third_party/brotli' \
-		'third_party/cacheinvalidation' \
-		'third_party/catapult' \
-		'third_party/catapult/third_party/py_vulcanize' \
-		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
-		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
-		'third_party/catapult/tracing/third_party/components/polymer' \
-		'third_party/catapult/tracing/third_party/d3' \
-		'third_party/catapult/tracing/third_party/gl-matrix' \
-		'third_party/catapult/tracing/third_party/jszip' \
-		'third_party/cld_2' \
-		'third_party/cros_system_api' \
-		'third_party/cython/python_flags.py' \
-		'third_party/devscripts' \
-		'third_party/dom_distiller_js' \
-		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
-		'third_party/fips181' \
-		'third_party/flot' \
-		'third_party/google_input_tools' \
-		'third_party/google_input_tools/third_party/closure_library' \
-		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
-		'third_party/hunspell' \
-		'third_party/iccjpeg' \
-		'third_party/jstemplate' \
-		'third_party/khronos' \
-		'third_party/leveldatabase' \
-		'third_party/libXNVCtrl' \
-		'third_party/libaddressinput' \
-		'third_party/libjingle' \
-		'third_party/libphonenumber' \
-		'third_party/libsecret' \
-		'third_party/libsrtp' \
-		'third_party/libudev' \
-		'third_party/libusb' \
-		'third_party/libvpx_new' \
-		'third_party/libvpx_new/source/libvpx/third_party/x86inc' \
-		'third_party/libxml/chromium' \
-		'third_party/libwebm' \
-		'third_party/libyuv' \
-		'third_party/lss' \
-		'third_party/lzma_sdk' \
-		'third_party/mesa' \
-		'third_party/modp_b64' \
-		'third_party/mojo' \
-		'third_party/mt19937ar' \
-		'third_party/npapi' \
-		'third_party/openmax_dl' \
-		'third_party/opus' \
-		'third_party/ots' \
-		'third_party/pdfium' \
-		'third_party/pdfium/third_party/agg23' \
-		'third_party/pdfium/third_party/base' \
-		'third_party/pdfium/third_party/bigint' \
-		'third_party/pdfium/third_party/freetype' \
-		'third_party/pdfium/third_party/lcms2-2.6' \
-		'third_party/pdfium/third_party/libjpeg' \
-		'third_party/pdfium/third_party/libopenjpeg20' \
-		'third_party/pdfium/third_party/zlib_v128' \
-		'third_party/polymer' \
-		'third_party/protobuf' \
-		'third_party/qcms' \
-		'third_party/sfntly' \
-		'third_party/skia' \
-		'third_party/smhasher' \
-		'third_party/sqlite' \
-		'third_party/tcmalloc' \
-		'third_party/usrsctp' \
-		'third_party/web-animations-js' \
-		'third_party/webdriver' \
-		'third_party/webrtc' \
-		'third_party/widevine' \
-		'third_party/x86inc' \
-		'third_party/zlib/google' \
-		'url/third_party/mozilla' \
-		'v8/src/third_party/fdlibm' \
-		'v8/src/third_party/valgrind' \
-		--do-remove || die
-}
-
-src_configure() {
-	local myconf=""
-
-	# Never tell the build system to "enable" SSE2, it has a few unexpected
-	# additions, bug #336871.
-	myconf+=" -Ddisable_sse2=1"
-
-	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf+=" -Ddisable_nacl=1"
-
-	# Disable glibc Native Client toolchain, we don't need it (bug #417019).
-	# myconf+=" -Ddisable_glibc=1"
-
-	# TODO: also build with pnacl
-	# myconf+=" -Ddisable_pnacl=1"
-
-	# It would be awkward for us to tar the toolchain and get it untarred again
-	# during the build.
-	# myconf+=" -Ddisable_newlib_untar=1"
-
-	# Make it possible to remove third_party/adobe.
-	echo > "${T}/flapper_version.h" || die
-	myconf+=" -Dflapper_version_h_file=${T}/flapper_version.h"
-
-	# Use system-provided libraries.
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_libsrtp (bug #459932).
-	# TODO: use_system_libusb (http://crbug.com/266149).
-	# TODO: use_system_libvpx (http://crbug.com/494939).
-	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_ssl (http://crbug.com/58087).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-	myconf+="
-		-Duse_system_bzip2=1
-		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
-		-Duse_system_flac=1
-		-Duse_system_harfbuzz=1
-		-Duse_system_icu=1
-		-Duse_system_jsoncpp=1
-		-Duse_system_libevent=1
-		-Duse_system_libjpeg=1
-		-Duse_system_libpng=1
-		-Duse_system_libwebp=1
-		-Duse_system_libxml=1
-		-Duse_system_libxslt=1
-		-Duse_system_minizip=1
-		-Duse_system_nspr=1
-		-Duse_system_re2=1
-		-Duse_system_snappy=1
-		-Duse_system_speex=1
-		-Duse_system_xdg_utils=1
-		-Duse_system_zlib=1"
-
-	# Needed for system icu - we don't need additional data files.
-	myconf+=" -Dicu_use_data_file_flag=0"
-
-	# TODO: patch gyp so that this arm conditional is not needed.
-	if ! use arm; then
-		myconf+="
-			-Duse_system_yasm=1"
-	fi
-
-	# Optional dependencies.
-	# TODO: linux_link_kerberos, bug #381289.
-	myconf+="
-		$(gyp_use cups)
-		$(gyp_use gnome use_gconf)
-		$(gyp_use gnome-keyring use_gnome_keyring)
-		$(gyp_use gnome-keyring linux_link_gnome_keyring)
-		$(gyp_use gtk3)
-		$(gyp_use hangouts enable_hangout_services_extension)
-		$(gyp_use hidpi enable_hidpi)
-		$(gyp_use hotwording enable_hotwording)
-		$(gyp_use kerberos)
-		$(gyp_use pulseaudio)
-		$(gyp_use tcmalloc use_allocator tcmalloc none)
-		$(gyp_use widevine enable_widevine)"
-
-	# Use explicit library dependencies instead of dlopen.
-	# This makes breakages easier to detect by revdep-rebuild.
-	myconf+="
-		-Dlinux_link_gsettings=1
-		-Dlinux_link_libpci=1
-		-Dlinux_link_libspeechd=1
-		-Dlibspeechd_h_prefix=speech-dispatcher/"
-
-	# TODO: use the file at run time instead of effectively compiling it in.
-	myconf+="
-		-Dusb_ids_path=/usr/share/misc/usb.ids"
-
-	# Save space by removing DLOG and DCHECK messages (about 6% reduction).
-	myconf+="
-		-Dlogging_like_official_build=1"
-
-	if [[ $(tc-getCC) == *clang* ]]; then
-		myconf+=" -Dclang=1"
-	else
-		myconf+=" -Dclang=0"
-	fi
-
-	# Never use bundled gold binary. Disable gold linker flags for now.
-	# Do not use bundled clang.
-	myconf+="
-		-Dclang_use_chrome_plugins=0
-		-Dhost_clang=0
-		-Dlinux_use_bundled_binutils=0
-		-Dlinux_use_bundled_gold=0
-		-Dlinux_use_gold_flags=0"
-
-	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
-
-	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
-	# Note: these are for Gentoo use ONLY. For your own distribution,
-	# please get your own set of keys. Feel free to contact chromium@gentoo.org
-	# for more info.
-	myconf+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
-		-Dgoogle_default_client_id=329227923882.apps.googleusercontent.com
-		-Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu"
-
-	local myarch="$(tc-arch)"
-	if [[ $myarch = amd64 ]] ; then
-		target_arch=x64
-		ffmpeg_target_arch=x64
-	elif [[ $myarch = x86 ]] ; then
-		target_arch=ia32
-		ffmpeg_target_arch=ia32
-	elif [[ $myarch = arm ]] ; then
-		target_arch=arm
-		ffmpeg_target_arch=$(usex neon arm-neon arm)
-		# TODO: re-enable NaCl (NativeClient).
-		local CTARGET=${CTARGET:-${CHOST}}
-		if [[ $(tc-is-softfloat) == "no" ]]; then
-
-			myconf+=" -Darm_float_abi=hard"
-		fi
-		filter-flags "-mfpu=*"
-		use neon || myconf+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
-
-		if [[ ${CTARGET} == armv[78]* ]]; then
-			myconf+=" -Darmv7=1"
-		else
-			myconf+=" -Darmv7=0"
-		fi
-		myconf+=" -Dsysroot=
-			$(gyp_use neon arm_neon)
-			-Ddisable_nacl=1"
-	else
-		die "Failed to determine target arch, got '$myarch'."
-	fi
-
-	myconf+=" -Dtarget_arch=${target_arch}"
-
-	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
-	# Depending on GCC version the warnings are different and we don't want
-	# the build to fail because of that.
-	myconf+=" -Dwerror="
-
-	# Disable fatal linker warnings, bug 506268.
-	myconf+=" -Ddisable_fatal_linker_warnings=1"
-
-	# Avoid CFLAGS problems, bug #352457, bug #390147.
-	if ! use custom-cflags; then
-		replace-flags "-Os" "-O2"
-		strip-flags
-
-		# Prevent linker from running out of address space, bug #471810 .
-		if use x86; then
-			filter-flags "-g*"
-		fi
-
-		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
-		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
-			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
-		fi
-	fi
-
-	# Make sure the build system will use the right tools, bug #340795.
-	tc-export AR CC CXX NM
-
-	# Tools for building programs to be executed on the build system, bug #410883.
-	if tc-is-cross-compiler; then
-		export AR_host=$(tc-getBUILD_AR)
-		export CC_host=$(tc-getBUILD_CC)
-		export CXX_host=$(tc-getBUILD_CXX)
-		export NM_host=$(tc-getBUILD_NM)
-	fi
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	if ! use system-ffmpeg; then
-		local build_ffmpeg_args=""
-		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
-			build_ffmpeg_args+=" --disable-asm"
-		fi
-
-		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
-		einfo "Configuring bundled ffmpeg..."
-		pushd third_party/ffmpeg > /dev/null || die
-		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
-			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
-		chromium/scripts/copy_config.sh || die
-		chromium/scripts/generate_gyp.py || die
-		popd > /dev/null || die
-	fi
-
-	third_party/libaddressinput/chromium/tools/update-strings.py || die
-
-	touch chrome/test/data/webui/i18n_process_css_test.html || die
-
-	einfo "Configuring Chromium..."
-	build/linux/unbundle/replace_gyp_files.py ${myconf} || die
-	egyp_chromium ${myconf} || die
-}
-
-eninja() {
-	if [[ -z ${NINJAOPTS+set} ]]; then
-		local jobs=$(makeopts_jobs)
-		local loadavg=$(makeopts_loadavg)
-
-		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
-			NINJAOPTS+=" -j ${jobs}"
-		fi
-		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
-			NINJAOPTS+=" -l ${loadavg}"
-		fi
-	fi
-	set -- ninja -v ${NINJAOPTS} "$@"
-	echo "$@"
-	"$@"
-}
-
-src_compile() {
-	local ninja_targets="chrome chrome_sandbox chromedriver"
-
-	# Build mksnapshot and pax-mark it.
-	eninja -C out/Release mksnapshot || die
-	pax-mark m out/Release/mksnapshot
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release ${ninja_targets} || die
-
-	pax-mark m out/Release/chrome
-}
-
-src_install() {
-	exeinto "${CHROMIUM_HOME}"
-	doexe out/Release/chrome || die
-
-	newexe out/Release/chrome_sandbox chrome-sandbox || die
-	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-
-	doexe out/Release/chromedriver || die
-	use widevine && doexe out/Release/libwidevinecdmadapter.so
-
-	# if ! use arm; then
-	#	doexe out/Release/nacl_helper{,_bootstrap} || die
-	#	insinto "${CHROMIUM_HOME}"
-	#	doins out/Release/nacl_irt_*.nexe || die
-	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
-	# fi
-
-	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
-	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
-		sedargs+=(
-			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
-			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
-			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
-		)
-	fi
-	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
-	doexe chromium-launcher.sh
-
-	# It is important that we name the target "chromium-browser",
-	# xdg-utils expect it; bug #355517.
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
-
-	# Allow users to override command-line options, bug #357629.
-	dodir /etc/chromium || die
-	insinto /etc/chromium
-	newins "${FILESDIR}/chromium.default" "default" || die
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd
-
-	insinto "${CHROMIUM_HOME}"
-	doins out/Release/*.bin || die
-	doins out/Release/*.pak || die
-
-	doins -r out/Release/locales || die
-	doins -r out/Release/resources || die
-
-	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
-	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
-
-	# Install icons and desktop entry.
-	local branding size
-	for size in 16 22 24 32 48 64 128 256 ; do
-		case ${size} in
-			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
-				*) branding="chrome/app/theme/chromium" ;;
-		esac
-		newicon -s ${size} "${branding}/product_logo_${size}.png" \
-			chromium-browser${CHROMIUM_SUFFIX}.png
-	done
-
-	local mime_types="text/html;text/xml;application/xhtml+xml;"
-	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
-	mime_types+="x-scheme-handler/ftp;" # bug #412185
-	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
-	make_desktop_entry \
-		chromium-browser${CHROMIUM_SUFFIX} \
-		"Chromium${CHROMIUM_SUFFIX}" \
-		chromium-browser${CHROMIUM_SUFFIX} \
-		"Network;WebBrowser" \
-		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
-	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
-
-	# Install GNOME default application entry (bug #303100).
-	if use gnome; then
-		dodir /usr/share/gnome-control-center/default-apps || die
-		insinto /usr/share/gnome-control-center/default-apps
-		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
-		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
-			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
-				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
-		fi
-	fi
-
-	readme.gentoo_create_doc
-}
-
-pkg_postinst() {
-	fdo-mime_desktop_database_update
-	gnome2_icon_cache_update
-	readme.gentoo_print_elog
-}

diff --git a/www-client/chromium/chromium-48.0.2547.0.ebuild b/www-client/chromium/chromium-48.0.2564.10.ebuild
similarity index 85%
rename from www-client/chromium/chromium-48.0.2547.0.ebuild
rename to www-client/chromium/chromium-48.0.2564.10.ebuild
index 7c51aa4..534859a 100644
--- a/www-client/chromium/chromium-48.0.2547.0.ebuild
+++ b/www-client/chromium/chromium-48.0.2564.10.ebuild
@@ -14,14 +14,16 @@ inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-uti
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="http://chromium.org/"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}-lite.tar.xz"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
 
 LICENSE="BSD hotwording? ( no-source-code )"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~x86"
-IUSE="cups gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
+REQUIRED_USE="gn? ( kerberos !system-ffmpeg )"
+
 # Native Client binaries are compiled with different set of flags, bug #452066.
 QA_FLAGS_IGNORED=".*\.nexe"
 
@@ -29,39 +31,27 @@ QA_FLAGS_IGNORED=".*\.nexe"
 # right tools for it, bug #469144 .
 QA_PRESTRIPPED=".*\.nexe"
 
-RDEPEND=">=app-accessibility/speech-dispatcher-0.8:=
+RDEPEND="
 	app-arch/bzip2:=
-	app-arch/snappy:=
 	cups? ( >=net-print/cups-1.3.11:= )
 	>=dev-libs/elfutils-0.149
 	dev-libs/expat:=
 	dev-libs/glib:=
-	>=dev-libs/icu-55.1:=
 	>=dev-libs/jsoncpp-0.5.0-r1:=
-	>=dev-libs/libevent-1.4.13:=
-	dev-libs/libxml2:=[icu]
-	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.14.3:=
-	dev-libs/re2:=
 	gnome? ( >=gnome-base/gconf-2.24.0:= )
 	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
 	>=media-libs/alsa-lib-1.0.19:=
-	media-libs/flac:=
 	media-libs/fontconfig:=
 	media-libs/freetype:=
-	media-libs/harfbuzz:=[icu(+)]
 	media-libs/libexif:=
-	>=media-libs/libjpeg-turbo-1.2.0-r1:=
-	media-libs/libpng:0=
-	>=media-libs/libwebp-0.4.0:=
 	media-libs/speex:=
 	pulseaudio? ( media-sound/pulseaudio:= )
 	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:=[opus,vorbis,vpx] )
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
 	>=sys-libs/libcap-2.22:=
-	sys-libs/zlib:=[minizip]
 	virtual/udev
 	x11-libs/cairo:=
 	x11-libs/gdk-pixbuf:=
@@ -81,7 +71,22 @@ RDEPEND=">=app-accessibility/speech-dispatcher-0.8:=
 	x11-libs/libXScrnSaver:=
 	x11-libs/libXtst:=
 	x11-libs/pango:=
-	kerberos? ( virtual/krb5 )"
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/icu-55.1:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		dev-libs/re2:=
+		media-libs/flac:=
+		media-libs/harfbuzz:=[icu(+)]
+		>=media-libs/libjpeg-turbo-1.2.0-r1:=
+		media-libs/libpng:0=
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
 DEPEND="${RDEPEND}
 	!arm? (
 		dev-lang/yasm
@@ -185,17 +190,12 @@ pkg_setup() {
 }
 
 src_prepare() {
-	# if ! use arm; then
-	#	mkdir -p out/Release/gen/sdk/toolchain || die
-	#	# Do not preserve SELinux context, bug #460892 .
-	#	cp -a --no-preserve=context /usr/$(get_libdir)/nacl-toolchain-newlib \
-	#		out/Release/gen/sdk/toolchain/linux_x86_newlib || die
-	#	touch out/Release/gen/sdk/toolchain/linux_x86_newlib/stamp.untar || die
-	# fi
-
-	epatch "${FILESDIR}/${PN}-system-ffmpeg-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r1.patch"
 	epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
-	epatch "${FILESDIR}/chromium-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
+	epatch "${FILESDIR}/${PN}-snapshot-toolchain-r0.patch"
+	epatch "${FILESDIR}/${PN}-rpath-r0.patch"
 
 	epatch_user
 
@@ -203,6 +203,30 @@ src_prepare() {
 	if ! use system-ffmpeg; then
 		conditional_bundled_libraries+=" third_party/ffmpeg"
 	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			third_party/adobe
+			third_party/ffmpeg
+			third_party/flac
+			third_party/harfbuzz-ng
+			third_party/icu
+			third_party/jinja2
+			third_party/libevent
+			third_party/libjpeg_turbo
+			third_party/libpng
+			third_party/libwebp
+			third_party/libxml
+			third_party/libxslt
+			third_party/markupsafe
+			third_party/re2
+			third_party/snappy
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm
+			third_party/zlib
+		"
+	fi
 
 	# Remove most bundled libraries. Some are still needed.
 	build/linux/unbundle/remove_bundled_libraries.py \
@@ -307,28 +331,23 @@ src_prepare() {
 }
 
 src_configure() {
-	local myconf=""
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+	myconf_gn+=" is_debug=false"
 
 	# Never tell the build system to "enable" SSE2, it has a few unexpected
 	# additions, bug #336871.
-	myconf+=" -Ddisable_sse2=1"
+	myconf_gyp+=" -Ddisable_sse2=1"
 
 	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
-	myconf+=" -Ddisable_nacl=1"
-
-	# Disable glibc Native Client toolchain, we don't need it (bug #417019).
-	# myconf+=" -Ddisable_glibc=1"
-
-	# TODO: also build with pnacl
-	# myconf+=" -Ddisable_pnacl=1"
-
-	# It would be awkward for us to tar the toolchain and get it untarred again
-	# during the build.
-	# myconf+=" -Ddisable_newlib_untar=1"
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
 
 	# Make it possible to remove third_party/adobe.
 	echo > "${T}/flapper_version.h" || die
-	myconf+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
 
 	# Use system-provided libraries.
 	# TODO: use_system_hunspell (upstream changes needed).
@@ -339,7 +358,7 @@ src_configure() {
 	# TODO: use_system_protobuf (bug #525560).
 	# TODO: use_system_ssl (http://crbug.com/58087).
 	# TODO: use_system_sqlite (http://crbug.com/22208).
-	myconf+="
+	myconf_gyp+="
 		-Duse_system_bzip2=1
 		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
 		-Duse_system_flac=1
@@ -361,17 +380,17 @@ src_configure() {
 		-Duse_system_zlib=1"
 
 	# Needed for system icu - we don't need additional data files.
-	myconf+=" -Dicu_use_data_file_flag=0"
+	myconf_gyp+=" -Dicu_use_data_file_flag=0"
 
 	# TODO: patch gyp so that this arm conditional is not needed.
 	if ! use arm; then
-		myconf+="
+		myconf_gyp+="
 			-Duse_system_yasm=1"
 	fi
 
 	# Optional dependencies.
 	# TODO: linux_link_kerberos, bug #381289.
-	myconf+="
+	myconf_gyp+="
 		$(gyp_use cups)
 		$(gyp_use gnome use_gconf)
 		$(gyp_use gnome-keyring use_gnome_keyring)
@@ -385,31 +404,35 @@ src_configure() {
 		$(gyp_use tcmalloc use_allocator tcmalloc none)
 		$(gyp_use widevine enable_widevine)"
 
+	myconf_gn+=" use_cups=$(usex cups true false)"
+
 	# Use explicit library dependencies instead of dlopen.
 	# This makes breakages easier to detect by revdep-rebuild.
-	myconf+="
+	myconf_gyp+="
 		-Dlinux_link_gsettings=1
 		-Dlinux_link_libpci=1
 		-Dlinux_link_libspeechd=1
 		-Dlibspeechd_h_prefix=speech-dispatcher/"
 
 	# TODO: use the file at run time instead of effectively compiling it in.
-	myconf+="
+	myconf_gyp+="
 		-Dusb_ids_path=/usr/share/misc/usb.ids"
 
 	# Save space by removing DLOG and DCHECK messages (about 6% reduction).
-	myconf+="
+	myconf_gyp+="
 		-Dlogging_like_official_build=1"
 
 	if [[ $(tc-getCC) == *clang* ]]; then
-		myconf+=" -Dclang=1"
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
 	else
-		myconf+=" -Dclang=0"
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
 	fi
 
 	# Never use bundled gold binary. Disable gold linker flags for now.
 	# Do not use bundled clang.
-	myconf+="
+	myconf_gyp+="
 		-Dclang_use_chrome_plugins=0
 		-Dhost_clang=0
 		-Dlinux_use_bundled_binutils=0
@@ -417,13 +440,13 @@ src_configure() {
 		-Dlinux_use_gold_flags=0"
 
 	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
-	myconf+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
 
 	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
 	# Note: these are for Gentoo use ONLY. For your own distribution,
 	# please get your own set of keys. Feel free to contact chromium@gentoo.org
 	# for more info.
-	myconf+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
+	myconf_gyp+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
 		-Dgoogle_default_client_id=329227923882.apps.googleusercontent.com
 		-Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu"
 
@@ -441,32 +464,33 @@ src_configure() {
 		local CTARGET=${CTARGET:-${CHOST}}
 		if [[ $(tc-is-softfloat) == "no" ]]; then
 
-			myconf+=" -Darm_float_abi=hard"
+			myconf_gyp+=" -Darm_float_abi=hard"
 		fi
 		filter-flags "-mfpu=*"
-		use neon || myconf+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
 
 		if [[ ${CTARGET} == armv[78]* ]]; then
-			myconf+=" -Darmv7=1"
+			myconf_gyp+=" -Darmv7=1"
 		else
-			myconf+=" -Darmv7=0"
+			myconf_gyp+=" -Darmv7=0"
 		fi
-		myconf+=" -Dsysroot=
+		myconf_gyp+=" -Dsysroot=
 			$(gyp_use neon arm_neon)
 			-Ddisable_nacl=1"
 	else
 		die "Failed to determine target arch, got '$myarch'."
 	fi
 
-	myconf+=" -Dtarget_arch=${target_arch}"
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
 
 	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
 	# Depending on GCC version the warnings are different and we don't want
 	# the build to fail because of that.
-	myconf+=" -Dwerror="
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
 
 	# Disable fatal linker warnings, bug 506268.
-	myconf+=" -Ddisable_fatal_linker_warnings=1"
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
 
 	# Avoid CFLAGS problems, bug #352457, bug #390147.
 	if ! use custom-cflags; then
@@ -499,7 +523,8 @@ src_configure() {
 	export TMPDIR="${WORKDIR}/temp"
 	mkdir -p -m 755 "${TMPDIR}" || die
 
-	if ! use system-ffmpeg; then
+	# TODO: also do this for GN bundled ffmpeg build.
+	if ! use system-ffmpeg && ! use gn; then
 		local build_ffmpeg_args=""
 		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
 			build_ffmpeg_args+=" --disable-asm"
@@ -520,8 +545,13 @@ src_configure() {
 	touch chrome/test/data/webui/i18n_process_css_test.html || die
 
 	einfo "Configuring Chromium..."
-	build/linux/unbundle/replace_gyp_files.py ${myconf} || die
-	egyp_chromium ${myconf} || die
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
 }
 
 eninja() {
@@ -544,9 +574,11 @@ eninja() {
 src_compile() {
 	local ninja_targets="chrome chrome_sandbox chromedriver"
 
-	# Build mksnapshot and pax-mark it.
-	eninja -C out/Release mksnapshot || die
-	pax-mark m out/Release/mksnapshot
+	if ! use gn; then
+		# Build mksnapshot and pax-mark it.
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
 
 	# Even though ninja autodetects number of CPUs, we respect
 	# user's options, for debugging with -j 1 or any other reason.
@@ -604,6 +636,10 @@ src_install() {
 	doins out/Release/*.bin || die
 	doins out/Release/*.pak || die
 
+	if use gn; then
+		doins out/Release/icudtl.dat || die
+	fi
+
 	doins -r out/Release/locales || die
 	doins -r out/Release/resources || die
 

diff --git a/www-client/chromium/files/chromium-rpath-r0.patch b/www-client/chromium/files/chromium-rpath-r0.patch
new file mode 100644
index 0000000..244e012
--- /dev/null
+++ b/www-client/chromium/files/chromium-rpath-r0.patch
@@ -0,0 +1,72 @@
+Index: base/BUILD.gn
+diff --git a/base/BUILD.gn b/base/BUILD.gn
+index 9e4270d26009f853e37dc7af883bed4cb43705c8..7d67f62a688b0214bd3eb95a3cd4612bdd273b6d 100644
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -1562,11 +1562,18 @@ test("base_unittests") {
+   if (is_linux) {
+     sources -= [ "file_version_info_unittest.cc" ]
+     sources += [ "nix/xdg_util_unittest.cc" ]
++
+     deps += [ "//base/test:malloc_wrapper" ]
+ 
+     if (use_glib) {
+       configs += [ "//build/config/linux:glib" ]
+     }
++
++    if (!is_component_build) {
++      # Set rpath so that we find libmalloc_wrapper.so
++      # even in a non-component build.
++      configs += [ "//build/config/gcc:rpath_link" ]
++    }
+   }
+ 
+   if (!is_linux || use_ozone) {
+Index: build/config/gcc/BUILD.gn
+diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn
+index b6ab1d4b96ba7ba9a39409006f949569551f92d2..9bc16d9e0d918096cec7124ccf20f145643824b8 100644
+--- a/build/config/gcc/BUILD.gn
++++ b/build/config/gcc/BUILD.gn
+@@ -20,14 +20,8 @@ config("symbol_visibility_hidden") {
+   cflags = [ "-fvisibility=hidden" ]
+ }
+ 
+-# Settings for executables and shared libraries.
+-config("executable_ldconfig") {
+-  if (is_android) {
+-    ldflags = [
+-      "-Bdynamic",
+-      "-Wl,-z,nocopyreloc",
+-    ]
+-  } else {
++config("rpath_link") {
++  if (!is_android) {
+     # Note: Android doesn't support rpath.
+     rpath_link = ""
+     if (shlib_subdir != ".") {
+@@ -37,7 +31,25 @@ config("executable_ldconfig") {
+       # Want to pass "\$". GN will re-escape as required for ninja.
+       "-Wl,-rpath=\$ORIGIN/${rpath_link}",
+       "-Wl,-rpath-link=${rpath_link}",
++    ]
++  }
++}
+ 
++# Settings for executables and shared libraries.
++config("executable_ldconfig") {
++  if (is_android) {
++    ldflags = [
++      "-Bdynamic",
++      "-Wl,-z,nocopyreloc",
++    ]
++  } else {
++    if (is_component_build) {
++      configs += [ ":rpath_link" ]
++    }
++
++    ldflags = [
++      # TODO(GYP): Do we need a check on the binutils version here?
++      #
+       # Newer binutils don't set DT_RPATH unless you disable "new" dtags
+       # and the new DT_RUNPATH doesn't work without --no-as-needed flag.
+       "-Wl,--disable-new-dtags",

diff --git a/www-client/chromium/files/chromium-system-ffmpeg-r1.patch b/www-client/chromium/files/chromium-system-ffmpeg-r1.patch
new file mode 100644
index 0000000..c9f6ce0
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r1.patch
@@ -0,0 +1,50 @@
+--- a/media/ffmpeg/ffmpeg_common.h	2015-11-27 12:01:56.155462264 +0000
++++ b/media/ffmpeg/ffmpeg_common.h	2015-11-27 12:03:03.348846300 +0000
+@@ -19,10 +19,6 @@
+ 
+ // Include FFmpeg header files.
+ extern "C" {
+-// Disable deprecated features which result in spammy compile warnings.  This
+-// list of defines must mirror those in the 'defines' section of BUILD.gn file &
+-// ffmpeg.gyp file or the headers below will generate different structures!
+-#define FF_API_CONVERGENCE_DURATION 0
+ // Upstream libavcodec/utils.c still uses the deprecated
+ // av_dup_packet(), causing deprecation warnings.
+ // The normal fix for such things is to disable the feature as below,
+@@ -36,7 +32,6 @@
+ MSVC_PUSH_DISABLE_WARNING(4244);
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
+-#include <libavformat/internal.h>
+ #include <libavformat/avio.h>
+ #include <libavutil/avutil.h>
+ #include <libavutil/imgutils.h>
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+index 155e980..7ba327a 100644
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -966,24 +966,6 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
+   // If no estimate is found, the stream entry will be kInfiniteDuration().
+   std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
+                                                     kInfiniteDuration());
+-  const AVFormatInternal* internal = format_context->internal;
+-  if (internal && internal->packet_buffer &&
+-      format_context->start_time != static_cast<int64>(AV_NOPTS_VALUE)) {
+-    struct AVPacketList* packet_buffer = internal->packet_buffer;
+-    while (packet_buffer != internal->packet_buffer_end) {
+-      DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
+-                start_time_estimates.size());
+-      const AVStream* stream =
+-          format_context->streams[packet_buffer->pkt.stream_index];
+-      if (packet_buffer->pkt.pts != static_cast<int64>(AV_NOPTS_VALUE)) {
+-        const base::TimeDelta packet_pts =
+-            ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
+-        if (packet_pts < start_time_estimates[stream->index])
+-          start_time_estimates[stream->index] = packet_pts;
+-      }
+-      packet_buffer = packet_buffer->next;
+-    }
+-  }
+ 
+   AVStream* audio_stream = NULL;
+   AudioDecoderConfig audio_config;


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2015-11-19  7:19 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2015-11-19  7:19 UTC (permalink / raw
  To: gentoo-commits

commit:     4b12cd6638bc61a9b88ab799d4bd7fd99429fe2e
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 19 07:18:51 2015 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Nov 19 07:19:20 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b12cd66

www-client/chromium: dev channel bump (48.0.2560.0); experimental GN support

Package-Manager: portage-2.2.20.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-48.0.2560.0.ebuild    | 683 +++++++++++++++++++++
 .../files/chromium-last-commit-position-r0.patch   |  26 +
 .../files/chromium-snapshot-toolchain-r0.patch     |  23 +
 www-client/chromium/files/chromium-werror-r0.patch |  50 ++
 www-client/chromium/metadata.xml                   |   1 +
 6 files changed, 784 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e1c0639..ed6dd3a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,3 +3,4 @@ DIST chromium-47.0.2526.49-lite.tar.xz 317398984 SHA256 32fe2246fc25542475c97028
 DIST chromium-47.0.2526.58-lite.tar.xz 317393916 SHA256 86cf7abde8056ab22215f7651eaab29fc0c1dcbc9dfa57dd40409418b800551d SHA512 555fad79cbcd967ecf4b001d703c9fee3b9506e7e7cec9ad59a200ebb7cd39b75fc764d1a52662c328381b97cbf08438f521a04d6bffba48da1adc54b29597eb WHIRLPOOL e75ba2c6353ae24a0ae3175bec544404145ed66f602ea8d46671da7792645272f51e71a728ca3c398d1a35da651e8545a65e927cd4f1d5b418d9c1d72442ebb8
 DIST chromium-48.0.2547.0-lite.tar.xz 306282056 SHA256 cfbdce75bd8904d4a43d5bc7acc82481bfe840c17894294cb0b3d79c2386cee2 SHA512 706c7e6699b7e07a819d29c88a678c62507251cb08ccd4516e2ce847519a34356d49762037a3fefac8adff39f1f9b7c0a6284fa455ffccd98e6074d1ac346d1f WHIRLPOOL 7694f443375dfdc17c90fd4b6c603b210b5e34ad39cfbe93ee9bcdebf0d5600f389b5ffd54fd3438460ffa88e4d456ad20e5b0553582b8ce0389f2bd7c7e15f5
 DIST chromium-48.0.2552.0-lite.tar.xz 306545148 SHA256 ab72fd1e4ff9c2d2d8d931e12ba52395044cd136f1927c1cdb137fdef9dd0ad1 SHA512 1133d4670133ff9a18a2fbad08fcfb5cb2f28e9df092417ca17c0f5360767fa597eb85a0f55de7e2dc06e90a55068410da890664cc1bd071cc85631acebad16d WHIRLPOOL e13788bb8c21a06fc81c0bc2dfe03b13e19089eb8c59301c92666ec7745ac65a527f5a1179c9633194c63b562a2958154b0afc8c173e2a4db59eefada85580e0
+DIST chromium-48.0.2560.0.tar.xz 395160400 SHA256 d2c1b9ad53dcaa08302d1dbfa74dc5d003c3c62ce1cd4b6eaf05d274d1af462b SHA512 422b09b0cfafc8761d6addb178b065a7de8f72d0c312b2288a991916536c06403a819b4ec6e3bc37ff0c2fd1ba8b8929f4e43b57a732a03bd5531208cc48e10f WHIRLPOOL 76bff863a212de3a74696e83924f9b5d4c70c045b9d309b0d25267458228761eee4505e2f5b93ac037358f14bc704a41ae03970c7f2ba96192a738fec611dae8

diff --git a/www-client/chromium/chromium-48.0.2560.0.ebuild b/www-client/chromium/chromium-48.0.2560.0.ebuild
new file mode 100644
index 0000000..2f6e233
--- /dev/null
+++ b/www-client/chromium/chromium-48.0.2560.0.ebuild
@@ -0,0 +1,683 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_LA et fa fi fil fr gu he
+	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
+	sv sw ta te th tr uk vi zh_CN zh_TW"
+
+inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
+	portability python-any-r1 readme.gentoo toolchain-funcs versionator virtualx
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD hotwording? ( no-source-code )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="cups gn gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+REQUIRED_USE="gn? ( kerberos !system-ffmpeg )"
+
+# Native Client binaries are compiled with different set of flags, bug #452066.
+QA_FLAGS_IGNORED=".*\.nexe"
+
+# Native Client binaries may be stripped by the build system, which uses the
+# right tools for it, bug #469144 .
+QA_PRESTRIPPED=".*\.nexe"
+
+RDEPEND="
+	app-arch/bzip2:=
+	cups? ( >=net-print/cups-1.3.11:= )
+	>=dev-libs/elfutils-0.149
+	dev-libs/expat:=
+	dev-libs/glib:=
+	>=dev-libs/jsoncpp-0.5.0-r1:=
+	dev-libs/nspr:=
+	>=dev-libs/nss-3.14.3:=
+	gnome? ( >=gnome-base/gconf-2.24.0:= )
+	gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+	>=media-libs/alsa-lib-1.0.19:=
+	media-libs/fontconfig:=
+	media-libs/freetype:=
+	media-libs/libexif:=
+	media-libs/speex:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:=[opus,vorbis,vpx] )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	gtk3? ( x11-libs/gtk+:3= )
+	!gtk3? ( x11-libs/gtk+:2= )
+	x11-libs/libdrm
+	x11-libs/libX11:=
+	x11-libs/libXcomposite:=
+	x11-libs/libXcursor:=
+	x11-libs/libXdamage:=
+	x11-libs/libXext:=
+	x11-libs/libXfixes:=
+	>=x11-libs/libXi-1.6.0:=
+	x11-libs/libXinerama:=
+	x11-libs/libXrandr:=
+	x11-libs/libXrender:=
+	x11-libs/libXScrnSaver:=
+	x11-libs/libXtst:=
+	x11-libs/pango:=
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		app-arch/snappy:=
+		>=dev-libs/icu-55.1:=
+		>=dev-libs/libevent-1.4.13:=
+		dev-libs/libxml2:=[icu]
+		dev-libs/libxslt:=
+		dev-libs/re2:=
+		media-libs/flac:=
+		media-libs/harfbuzz:=[icu(+)]
+		>=media-libs/libjpeg-turbo-1.2.0-r1:=
+		media-libs/libpng:0=
+		>=media-libs/libwebp-0.4.0:=
+		sys-libs/zlib:=[minizip]
+	)"
+DEPEND="${RDEPEND}
+	!arm? (
+		dev-lang/yasm
+	)
+	dev-lang/perl
+	dev-perl/JSON
+	>=dev-util/gperf-3.0.3
+	dev-util/ninja
+	sys-apps/hwids[usb(+)]
+	>=sys-devel/bison-2.4.3
+	sys-devel/flex
+	virtual/pkgconfig"
+
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND+="
+	!=www-client/chromium-9999
+	!<www-plugins/chrome-binary-plugins-37
+	x11-misc/xdg-utils
+	virtual/opengl
+	virtual/ttf-fonts
+	selinux? ( sec-policy/selinux-chromium )
+	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+	widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
+
+# Python dependencies. The DEPEND part needs to be kept in sync
+# with python_check_deps.
+DEPEND+=" $(python_gen_any_dep '
+	dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
+	dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+	dev-python/html5lib[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/ply[${PYTHON_USEDEP}]
+	dev-python/simplejson[${PYTHON_USEDEP}]
+')"
+python_check_deps() {
+	has_version "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/html5lib[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/jinja[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/ply[${PYTHON_USEDEP}]" && \
+		has_version "dev-python/simplejson[${PYTHON_USEDEP}]"
+}
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+	EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/bitstream-cyberbit
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+Depending on your desktop environment, you may need
+to install additional packages to get icons on the Downloads page.
+
+For KDE, the required package is kde-frameworks/oxygen-icons.
+
+For other desktop environments, try one of the following:
+- x11-themes/gnome-icon-theme
+- x11-themes/tango-icon-theme
+"
+
+pkg_pretend() {
+	if [[ $(tc-getCC)$ == *gcc* ]] && \
+		[[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
+		die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
+	fi
+
+	# Check build requirements, bug #541816 and bug #471810 .
+	CHECKREQS_MEMORY="3G"
+	CHECKREQS_DISK_BUILD="5G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="25G"
+	fi
+	eshopts_pop
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if [[ "${SLOT}" == "0" ]]; then
+		CHROMIUM_SUFFIX=""
+	else
+		CHROMIUM_SUFFIX="-${SLOT}"
+	fi
+	CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
+
+	# Make sure the build system will use the right python, bug #344367.
+	python-any-r1_pkg_setup
+
+	chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
+	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
+	epatch "${FILESDIR}/${PN}-werror-r0.patch"
+	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
+	epatch "${FILESDIR}/${PN}-snapshot-toolchain-r0.patch"
+
+	epatch_user
+
+	local conditional_bundled_libraries=""
+	if ! use system-ffmpeg; then
+		conditional_bundled_libraries+=" third_party/ffmpeg"
+	fi
+	if use gn; then
+		conditional_bundled_libraries+="
+			third_party/adobe
+			third_party/ffmpeg
+			third_party/flac
+			third_party/harfbuzz-ng
+			third_party/icu
+			third_party/jinja2
+			third_party/libevent
+			third_party/libjpeg_turbo
+			third_party/libpng
+			third_party/libwebp
+			third_party/libxml
+			third_party/libxslt
+			third_party/markupsafe
+			third_party/re2
+			third_party/snappy
+			third_party/speech-dispatcher
+			third_party/usb_ids
+			third_party/xdg-utils
+			third_party/yasm
+			third_party/zlib
+		"
+	fi
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		${conditional_bundled_libraries} \
+		'base/third_party/dmg_fp' \
+		'base/third_party/dynamic_annotations' \
+		'base/third_party/icu' \
+		'base/third_party/nspr' \
+		'base/third_party/superfasthash' \
+		'base/third_party/symbolize' \
+		'base/third_party/valgrind' \
+		'base/third_party/xdg_mime' \
+		'base/third_party/xdg_user_dirs' \
+		'breakpad/src/third_party/curl' \
+		'chrome/third_party/mozilla_security_manager' \
+		'courgette/third_party' \
+		'crypto/third_party/nss' \
+		'net/third_party/mozilla_security_manager' \
+		'net/third_party/nss' \
+		'third_party/WebKit' \
+		'third_party/analytics' \
+		'third_party/angle' \
+		'third_party/angle/src/third_party/compiler' \
+		'third_party/boringssl' \
+		'third_party/brotli' \
+		'third_party/cacheinvalidation' \
+		'third_party/catapult' \
+		'third_party/catapult/third_party/py_vulcanize' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+		'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+		'third_party/catapult/tracing/third_party/components/polymer' \
+		'third_party/catapult/tracing/third_party/d3' \
+		'third_party/catapult/tracing/third_party/gl-matrix' \
+		'third_party/catapult/tracing/third_party/jszip' \
+		'third_party/cld_2' \
+		'third_party/cros_system_api' \
+		'third_party/cython/python_flags.py' \
+		'third_party/devscripts' \
+		'third_party/dom_distiller_js' \
+		'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+		'third_party/fips181' \
+		'third_party/flot' \
+		'third_party/google_input_tools' \
+		'third_party/google_input_tools/third_party/closure_library' \
+		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/hunspell' \
+		'third_party/iccjpeg' \
+		'third_party/jstemplate' \
+		'third_party/khronos' \
+		'third_party/leveldatabase' \
+		'third_party/libXNVCtrl' \
+		'third_party/libaddressinput' \
+		'third_party/libjingle' \
+		'third_party/libphonenumber' \
+		'third_party/libsecret' \
+		'third_party/libsrtp' \
+		'third_party/libudev' \
+		'third_party/libusb' \
+		'third_party/libvpx_new' \
+		'third_party/libvpx_new/source/libvpx/third_party/x86inc' \
+		'third_party/libxml/chromium' \
+		'third_party/libwebm' \
+		'third_party/libyuv' \
+		'third_party/lss' \
+		'third_party/lzma_sdk' \
+		'third_party/mesa' \
+		'third_party/modp_b64' \
+		'third_party/mojo' \
+		'third_party/mt19937ar' \
+		'third_party/npapi' \
+		'third_party/openmax_dl' \
+		'third_party/opus' \
+		'third_party/ots' \
+		'third_party/pdfium' \
+		'third_party/pdfium/third_party/agg23' \
+		'third_party/pdfium/third_party/base' \
+		'third_party/pdfium/third_party/bigint' \
+		'third_party/pdfium/third_party/freetype' \
+		'third_party/pdfium/third_party/lcms2-2.6' \
+		'third_party/pdfium/third_party/libjpeg' \
+		'third_party/pdfium/third_party/libopenjpeg20' \
+		'third_party/pdfium/third_party/zlib_v128' \
+		'third_party/polymer' \
+		'third_party/protobuf' \
+		'third_party/qcms' \
+		'third_party/sfntly' \
+		'third_party/skia' \
+		'third_party/smhasher' \
+		'third_party/sqlite' \
+		'third_party/tcmalloc' \
+		'third_party/usrsctp' \
+		'third_party/web-animations-js' \
+		'third_party/webdriver' \
+		'third_party/webrtc' \
+		'third_party/widevine' \
+		'third_party/x86inc' \
+		'third_party/zlib/google' \
+		'url/third_party/mozilla' \
+		'v8/src/third_party/fdlibm' \
+		'v8/src/third_party/valgrind' \
+		--do-remove || die
+}
+
+src_configure() {
+	local myconf_gyp=""
+	local myconf_gn=""
+
+	# Never tell the build system to "enable" SSE2, it has a few unexpected
+	# additions, bug #336871.
+	myconf_gyp+=" -Ddisable_sse2=1"
+
+	# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+	myconf_gyp+=" -Ddisable_nacl=1"
+	myconf_gn+=" enable_nacl=false"
+
+	# Make it possible to remove third_party/adobe.
+	echo > "${T}/flapper_version.h" || die
+	myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
+
+	# Use system-provided libraries.
+	# TODO: use_system_hunspell (upstream changes needed).
+	# TODO: use_system_libsrtp (bug #459932).
+	# TODO: use_system_libusb (http://crbug.com/266149).
+	# TODO: use_system_libvpx (http://crbug.com/494939).
+	# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
+	# TODO: use_system_protobuf (bug #525560).
+	# TODO: use_system_ssl (http://crbug.com/58087).
+	# TODO: use_system_sqlite (http://crbug.com/22208).
+	myconf_gyp+="
+		-Duse_system_bzip2=1
+		-Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
+		-Duse_system_flac=1
+		-Duse_system_harfbuzz=1
+		-Duse_system_icu=1
+		-Duse_system_jsoncpp=1
+		-Duse_system_libevent=1
+		-Duse_system_libjpeg=1
+		-Duse_system_libpng=1
+		-Duse_system_libwebp=1
+		-Duse_system_libxml=1
+		-Duse_system_libxslt=1
+		-Duse_system_minizip=1
+		-Duse_system_nspr=1
+		-Duse_system_re2=1
+		-Duse_system_snappy=1
+		-Duse_system_speex=1
+		-Duse_system_xdg_utils=1
+		-Duse_system_zlib=1"
+
+	# Needed for system icu - we don't need additional data files.
+	myconf_gyp+=" -Dicu_use_data_file_flag=0"
+
+	# TODO: patch gyp so that this arm conditional is not needed.
+	if ! use arm; then
+		myconf_gyp+="
+			-Duse_system_yasm=1"
+	fi
+
+	# Optional dependencies.
+	# TODO: linux_link_kerberos, bug #381289.
+	myconf_gyp+="
+		$(gyp_use cups)
+		$(gyp_use gnome use_gconf)
+		$(gyp_use gnome-keyring use_gnome_keyring)
+		$(gyp_use gnome-keyring linux_link_gnome_keyring)
+		$(gyp_use gtk3)
+		$(gyp_use hangouts enable_hangout_services_extension)
+		$(gyp_use hidpi enable_hidpi)
+		$(gyp_use hotwording enable_hotwording)
+		$(gyp_use kerberos)
+		$(gyp_use pulseaudio)
+		$(gyp_use tcmalloc use_allocator tcmalloc none)
+		$(gyp_use widevine enable_widevine)"
+
+	myconf_gn+=" use_cups=$(usex cups true false)"
+
+	# Use explicit library dependencies instead of dlopen.
+	# This makes breakages easier to detect by revdep-rebuild.
+	myconf_gyp+="
+		-Dlinux_link_gsettings=1
+		-Dlinux_link_libpci=1
+		-Dlinux_link_libspeechd=1
+		-Dlibspeechd_h_prefix=speech-dispatcher/"
+
+	# TODO: use the file at run time instead of effectively compiling it in.
+	myconf_gyp+="
+		-Dusb_ids_path=/usr/share/misc/usb.ids"
+
+	# Save space by removing DLOG and DCHECK messages (about 6% reduction).
+	myconf_gyp+="
+		-Dlogging_like_official_build=1"
+
+	if [[ $(tc-getCC) == *clang* ]]; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true"
+	else
+		myconf_gyp+=" -Dclang=0"
+		myconf_gn+=" is_clang=false"
+	fi
+
+	# Never use bundled gold binary. Disable gold linker flags for now.
+	# Do not use bundled clang.
+	myconf_gyp+="
+		-Dclang_use_chrome_plugins=0
+		-Dhost_clang=0
+		-Dlinux_use_bundled_binutils=0
+		-Dlinux_use_bundled_gold=0
+		-Dlinux_use_gold_flags=0"
+
+	ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+	myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
+
+	# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+	# Note: these are for Gentoo use ONLY. For your own distribution,
+	# please get your own set of keys. Feel free to contact chromium@gentoo.org
+	# for more info.
+	myconf_gyp+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
+		-Dgoogle_default_client_id=329227923882.apps.googleusercontent.com
+		-Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu"
+
+	local myarch="$(tc-arch)"
+	if [[ $myarch = amd64 ]] ; then
+		target_arch=x64
+		ffmpeg_target_arch=x64
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+		ffmpeg_target_arch=ia32
+	elif [[ $myarch = arm ]] ; then
+		target_arch=arm
+		ffmpeg_target_arch=$(usex neon arm-neon arm)
+		# TODO: re-enable NaCl (NativeClient).
+		local CTARGET=${CTARGET:-${CHOST}}
+		if [[ $(tc-is-softfloat) == "no" ]]; then
+
+			myconf_gyp+=" -Darm_float_abi=hard"
+		fi
+		filter-flags "-mfpu=*"
+		use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
+
+		if [[ ${CTARGET} == armv[78]* ]]; then
+			myconf_gyp+=" -Darmv7=1"
+		else
+			myconf_gyp+=" -Darmv7=0"
+		fi
+		myconf_gyp+=" -Dsysroot=
+			$(gyp_use neon arm_neon)
+			-Ddisable_nacl=1"
+	else
+		die "Failed to determine target arch, got '$myarch'."
+	fi
+
+	myconf_gyp+=" -Dtarget_arch=${target_arch}"
+
+	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
+	# Depending on GCC version the warnings are different and we don't want
+	# the build to fail because of that.
+	myconf_gyp+=" -Dwerror="
+	myconf_gn+=" treat_warnings_as_errors=false"
+
+	# Disable fatal linker warnings, bug 506268.
+	myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
+
+	# Avoid CFLAGS problems, bug #352457, bug #390147.
+	if ! use custom-cflags; then
+		replace-flags "-Os" "-O2"
+		strip-flags
+
+		# Prevent linker from running out of address space, bug #471810 .
+		if use x86; then
+			filter-flags "-g*"
+		fi
+
+		# Prevent libvpx build failures. Bug 530248, 544702, 546984.
+		if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+			filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+		fi
+	fi
+
+	# Make sure the build system will use the right tools, bug #340795.
+	tc-export AR CC CXX NM
+
+	# Tools for building programs to be executed on the build system, bug #410883.
+	if tc-is-cross-compiler; then
+		export AR_host=$(tc-getBUILD_AR)
+		export CC_host=$(tc-getBUILD_CC)
+		export CXX_host=$(tc-getBUILD_CXX)
+		export NM_host=$(tc-getBUILD_NM)
+	fi
+
+	# Bug 491582.
+	export TMPDIR="${WORKDIR}/temp"
+	mkdir -p -m 755 "${TMPDIR}" || die
+
+	# TODO: also do this for GN bundled ffmpeg build.
+	if ! use system-ffmpeg && ! use gn; then
+		local build_ffmpeg_args=""
+		if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+			build_ffmpeg_args+=" --disable-asm"
+		fi
+
+		# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+		einfo "Configuring bundled ffmpeg..."
+		pushd third_party/ffmpeg > /dev/null || die
+		chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+			--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+		chromium/scripts/copy_config.sh || die
+		chromium/scripts/generate_gyp.py || die
+		popd > /dev/null || die
+	fi
+
+	third_party/libaddressinput/chromium/tools/update-strings.py || die
+
+	touch chrome/test/data/webui/i18n_process_css_test.html || die
+
+	einfo "Configuring Chromium..."
+	if use gn; then
+		tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
+		out/Release/gn gen --args="${myconf_gn}" out/Release || die
+	else
+		build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
+		egyp_chromium ${myconf_gyp} || die
+	fi
+}
+
+eninja() {
+	if [[ -z ${NINJAOPTS+set} ]]; then
+		local jobs=$(makeopts_jobs)
+		local loadavg=$(makeopts_loadavg)
+
+		if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
+			NINJAOPTS+=" -j ${jobs}"
+		fi
+		if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
+			NINJAOPTS+=" -l ${loadavg}"
+		fi
+	fi
+	set -- ninja -v ${NINJAOPTS} "$@"
+	echo "$@"
+	"$@"
+}
+
+src_compile() {
+	local ninja_targets="chrome chrome_sandbox chromedriver"
+
+	if ! use gn; then
+		# Build mksnapshot and pax-mark it.
+		eninja -C out/Release mksnapshot || die
+		pax-mark m out/Release/mksnapshot
+	fi
+
+	# Even though ninja autodetects number of CPUs, we respect
+	# user's options, for debugging with -j 1 or any other reason.
+	eninja -C out/Release ${ninja_targets} || die
+
+	pax-mark m out/Release/chrome
+}
+
+src_install() {
+	exeinto "${CHROMIUM_HOME}"
+	doexe out/Release/chrome || die
+
+	newexe out/Release/chrome_sandbox chrome-sandbox || die
+	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+	doexe out/Release/chromedriver || die
+	use widevine && doexe out/Release/libwidevinecdmadapter.so
+
+	# if ! use arm; then
+	#	doexe out/Release/nacl_helper{,_bootstrap} || die
+	#	insinto "${CHROMIUM_HOME}"
+	#	doins out/Release/nacl_irt_*.nexe || die
+	#	doins out/Release/libppGoogleNaClPluginChrome.so || die
+	# fi
+
+	local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+	if [[ -n ${CHROMIUM_SUFFIX} ]]; then
+		sedargs+=(
+			-e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
+			-e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
+			-e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
+		)
+	fi
+	sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+	doexe chromium-launcher.sh
+
+	# It is important that we name the target "chromium-browser",
+	# xdg-utils expect it; bug #355517.
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
+	# keep the old symlink around for consistency
+	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
+
+	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
+
+	# Allow users to override command-line options, bug #357629.
+	dodir /etc/chromium || die
+	insinto /etc/chromium
+	newins "${FILESDIR}/chromium.default" "default" || die
+
+	pushd out/Release/locales > /dev/null || die
+	chromium_remove_language_paks
+	popd
+
+	insinto "${CHROMIUM_HOME}"
+	doins out/Release/*.bin || die
+	doins out/Release/*.pak || die
+
+	doins -r out/Release/locales || die
+	doins -r out/Release/resources || die
+
+	newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
+	newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
+
+	# Install icons and desktop entry.
+	local branding size
+	for size in 16 22 24 32 48 64 128 256 ; do
+		case ${size} in
+			16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+				*) branding="chrome/app/theme/chromium" ;;
+		esac
+		newicon -s ${size} "${branding}/product_logo_${size}.png" \
+			chromium-browser${CHROMIUM_SUFFIX}.png
+	done
+
+	local mime_types="text/html;text/xml;application/xhtml+xml;"
+	mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+	mime_types+="x-scheme-handler/ftp;" # bug #412185
+	mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+	make_desktop_entry \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Chromium${CHROMIUM_SUFFIX}" \
+		chromium-browser${CHROMIUM_SUFFIX} \
+		"Network;WebBrowser" \
+		"MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+	sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+	# Install GNOME default application entry (bug #303100).
+	if use gnome; then
+		dodir /usr/share/gnome-control-center/default-apps || die
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
+		if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
+			sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
+				"${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
+		fi
+	fi
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	fdo-mime_desktop_database_update
+	gnome2_icon_cache_update
+	readme.gentoo_print_elog
+}

diff --git a/www-client/chromium/files/chromium-last-commit-position-r0.patch b/www-client/chromium/files/chromium-last-commit-position-r0.patch
new file mode 100644
index 0000000..344ed4c
--- /dev/null
+++ b/www-client/chromium/files/chromium-last-commit-position-r0.patch
@@ -0,0 +1,26 @@
+--- tools/gn/gn_main.cc.orig	2015-11-12 11:49:56.260549036 +0000
++++ tools/gn/gn_main.cc	2015-11-12 11:50:14.780931485 +0000
+@@ -11,13 +11,7 @@
+ #include "tools/gn/standard_out.h"
+ #include "tools/gn/switches.h"
+ 
+-// Only the GN-generated build makes this header for now.
+-// TODO(brettw) consider adding this if we need it in GYP.
+-#if defined(GN_BUILD)
+-#include "tools/gn/last_commit_position.h"
+-#else
+ #define LAST_COMMIT_POSITION "UNKNOWN"
+-#endif
+ 
+ namespace {
+ 
+--- tools/gn/BUILD.gn.orig	2015-11-12 11:50:43.513524769 +0000
++++ tools/gn/BUILD.gn	2015-11-12 11:50:57.697817632 +0000
+@@ -227,7 +227,6 @@
+ 
+   deps = [
+     ":gn_lib",
+-    ":last_commit_position",
+     "//base",
+     "//build/config/sanitizers:deps",
+   ]

diff --git a/www-client/chromium/files/chromium-snapshot-toolchain-r0.patch b/www-client/chromium/files/chromium-snapshot-toolchain-r0.patch
new file mode 100644
index 0000000..629ef80
--- /dev/null
+++ b/www-client/chromium/files/chromium-snapshot-toolchain-r0.patch
@@ -0,0 +1,23 @@
+--- v8/snapshot_toolchain.gni.orig	2015-11-12 15:24:59.332391956 +0000
++++ v8/snapshot_toolchain.gni	2015-11-12 15:25:23.280889700 +0000
+@@ -28,19 +28,4 @@
+ # The snapshot needs to be compiled for the host, but compiled with
+ # a toolchain that matches the bit-width of the target.
+ 
+-# TODO(GYP): For now we only support 32-bit little-endian target builds from an
+-# x64 Linux host. Eventually we need to support all of the host/target
+-# configurations v8 runs on.
+-if (host_cpu == "x64" && host_os == "linux") {
+-  if (target_cpu == "arm" || target_cpu == "mipsel" || target_cpu == "x86") {
+-    snapshot_toolchain = "//build/toolchain/linux:clang_x86"
+-  } else if (target_cpu == "x64") {
+-    snapshot_toolchain = "//build/toolchain/linux:clang_x64"
+-  } else {
+-    assert(false, "Need environment for this arch")
+-  }
+-} else {
+-  snapshot_toolchain = default_toolchain
+-}
+-
+-
++snapshot_toolchain = default_toolchain

diff --git a/www-client/chromium/files/chromium-werror-r0.patch b/www-client/chromium/files/chromium-werror-r0.patch
new file mode 100644
index 0000000..be0649b
--- /dev/null
+++ b/www-client/chromium/files/chromium-werror-r0.patch
@@ -0,0 +1,50 @@
+Index: build/config/compiler/BUILD.gn
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 4d3c6ba0c09093bd5137cd32c4d37cdee1db6d40..71d9dc345f89f0f86e0e4e079f3124b682f558c1 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -22,6 +22,11 @@ if (is_win) {
+ }
+ 
+ declare_args() {
++  # Default to warnings as errors for default workflow, where we catch
++  # warnings with known toolchains. Allow overriding this e.g. for Chromium
++  # builds on Linux that could use a different version of the compiler.
++  treat_warnings_as_errors = true
++
+   # 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
+@@ -601,10 +606,11 @@ config("default_warnings") {
+   cflags_cc = []
+ 
+   if (is_win) {
+-    cflags += [
+-      # Treat warnings as errors.
+-      "/WX",
++    if (treat_warnings_as_errors) {
++      cflags += [ "/WX" ]
++    }
+ 
++    cflags += [
+       # Warnings permanently disabled:
+ 
+       # C4127: conditional expression is constant
+@@ -704,13 +710,16 @@ config("default_warnings") {
+     cflags += [
+       # Enables.
+       "-Wendif-labels",  # Weird old-style text after an #endif.
+-      "-Werror",  # Warnings as errors.
+ 
+       # Disables.
+       "-Wno-missing-field-initializers",  # "struct foo f = {0};"
+       "-Wno-unused-parameter",  # Unused function parameters.
+     ]
+ 
++    if (treat_warnings_as_errors) {
++      cflags += [ "-Werror" ]
++    }
++
+     if (is_mac) {
+       cflags += [ "-Wnewline-eof" ]
+       if (!is_nacl) {

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 3f339a0..74a14ac 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -4,6 +4,7 @@
 	<herd>chromium</herd>
 	<longdescription>Chromium is the open-source web browser project behind Google Chrome</longdescription>
 	<use>
+		<flag name="gn">Use GN (generate ninja) instead of GYP for building</flag>
 		<flag name="gtk3">Use gtk3 instead of gtk2</flag>
 		<flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag>
 		<flag name="hidpi">Enable support for high-resolution screens (high dots per inch)</flag>


^ permalink raw reply related	[flat|nested] 149+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
@ 2015-09-08 21:01 Paweł Hajdan
  0 siblings, 0 replies; 149+ messages in thread
From: Paweł Hajdan @ 2015-09-08 21:01 UTC (permalink / raw
  To: gentoo-commits

commit:     7c186f8f74d8aca1509b3f7d6a45ce51e6fd08ec
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  8 21:01:06 2015 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Tue Sep  8 21:01:27 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c186f8f

www-client/chromium: fix build when dev-python/tracing is installed

This fixes bug #556812 by Helmut Jarausch.

Culprit has been identified by Guillaume ZITTA.

Package-Manager: portage-2.2.20.1

 www-client/chromium/chromium-45.0.2454.85.ebuild    |  1 +
 www-client/chromium/files/chromium-tracing-r0.patch | 10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/www-client/chromium/chromium-45.0.2454.85.ebuild b/www-client/chromium/chromium-45.0.2454.85.ebuild
index 70baec6..2df11ca 100644
--- a/www-client/chromium/chromium-45.0.2454.85.ebuild
+++ b/www-client/chromium/chromium-45.0.2454.85.ebuild
@@ -187,6 +187,7 @@ src_prepare() {
 	# fi
 
 	epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
+	epatch "${FILESDIR}/${PN}-tracing-r0.patch"
 
 	epatch_user
 

diff --git a/www-client/chromium/files/chromium-tracing-r0.patch b/www-client/chromium/files/chromium-tracing-r0.patch
new file mode 100644
index 0000000..7312116
--- /dev/null
+++ b/www-client/chromium/files/chromium-tracing-r0.patch
@@ -0,0 +1,10 @@
+--- third_party/trace-viewer/tracing/build/generate_about_tracing_contents.orig	2015-09-08 13:14:21.048113295 +0000
++++ third_party/trace-viewer/tracing/build/generate_about_tracing_contents	2015-09-08 13:14:34.232384815 +0000
+@@ -8,6 +8,6 @@
+ 
+ if __name__ == '__main__':
+   top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
+-  sys.path.append(top_dir)
++  sys.path.insert(0, top_dir)
+   from tracing.build import generate_about_tracing_contents
+   sys.exit(generate_about_tracing_contents.main(sys.argv))


^ permalink raw reply related	[flat|nested] 149+ messages in thread

end of thread, other threads:[~2024-11-12 14:43 UTC | newest]

Thread overview: 149+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-16 19:34 [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/ Mike Gilbert
  -- strict thread matches above, loose matches on Subject: below --
2024-11-12 14:43 Matt Jolly
2024-10-12 11:05 Matt Jolly
2024-07-07  9:46 Matt Jolly
2024-05-21  5:59 Matt Jolly
2024-04-26  1:54 Matt Jolly
2024-04-18 15:30 Matt Jolly
2024-01-31  9:42 Sam James
2024-01-31  9:42 Sam James
2023-11-24 22:48 Sam James
2023-08-15  8:02 Stephan Hartmann
2023-08-14  7:12 Stephan Hartmann
2023-08-04  6:57 Stephan Hartmann
2023-08-03 18:31 Stephan Hartmann
2023-06-30 13:11 Stephan Hartmann
2023-06-29 14:49 Stephan Hartmann
2023-06-14 15:09 Mike Gilbert
2023-06-10  5:09 Sam James
2023-05-05 14:17 Mike Gilbert
2023-04-22 23:29 Mike Gilbert
2023-04-14 15:57 Mike Gilbert
2023-04-03 17:32 Mike Gilbert
2023-03-28 15:29 Mike Gilbert
2023-03-13  2:01 Mike Gilbert
2023-01-14  8:38 Stephan Hartmann
2022-12-04 23:40 Sam James
2022-10-01  9:58 Stephan Hartmann
2022-09-26 20:33 Stephan Hartmann
2022-08-20 18:07 Stephan Hartmann
2022-08-20  8:18 Stephan Hartmann
2022-03-11 17:10 Stephan Hartmann
2022-03-03 18:09 Stephan Hartmann
2022-02-20 14:12 Stephan Hartmann
2022-01-30  8:37 Stephan Hartmann
2022-01-24  9:33 Stephan Hartmann
2022-01-23 18:05 Stephan Hartmann
2022-01-23 18:03 Stephan Hartmann
2022-01-12 18:53 Stephan Hartmann
2022-01-03 18:20 Stephan Hartmann
2021-11-22 16:03 Stephan Hartmann
2021-11-13 20:08 Stephan Hartmann
2021-11-04 20:16 Stephan Hartmann
2021-10-30 17:30 Stephan Hartmann
2021-10-24  7:30 Stephan Hartmann
2021-10-10 17:45 Stephan Hartmann
2021-10-04 20:58 Stephan Hartmann
2021-09-14 11:27 Stephan Hartmann
2021-09-11  7:47 Stephan Hartmann
2021-09-08 20:00 Stephan Hartmann
2021-08-08 11:50 Jason A. Donenfeld
2021-07-27 17:39 Stephan Hartmann
2021-07-26 21:17 Stephan Hartmann
2021-07-24  9:48 Stephan Hartmann
2021-06-16 21:28 Stephan Hartmann
2021-05-22  8:37 Stephan Hartmann
2021-04-19 13:07 Stephan Hartmann
2021-04-13 17:01 Stephan Hartmann
2021-02-28  9:16 Stephan Hartmann
2021-02-18 22:08 Stephan Hartmann
2021-02-14  8:43 Stephan Hartmann
2020-11-22  8:18 Stephan Hartmann
2020-10-22 17:24 Mike Gilbert
2020-10-03  7:25 Stephan Hartmann
2020-09-12  9:16 Stephan Hartmann
2020-09-07  5:27 Stephan Hartmann
2020-07-29 18:02 Mike Gilbert
2020-07-26 16:42 Mike Gilbert
2020-06-20  4:09 Aaron Bauman
2020-06-04 14:47 Mike Gilbert
2020-05-30  0:19 Mike Gilbert
2020-05-08 16:23 Mike Gilbert
2020-05-03 19:57 Mike Gilbert
2020-04-11 16:43 Mike Gilbert
2020-04-09 17:20 Mike Gilbert
2020-04-08 15:30 Mike Gilbert
2020-03-30 18:55 Mike Gilbert
2020-03-15 18:35 Mike Gilbert
2020-03-10 15:06 Mike Gilbert
2020-02-14 20:12 Mike Gilbert
2020-02-06 20:48 Mike Gilbert
2020-02-06 20:24 Mike Gilbert
2020-01-20 17:04 Mike Gilbert
2019-12-23 16:22 Mike Gilbert
2019-12-18 17:31 Mike Gilbert
2019-11-11 21:04 Mike Gilbert
2019-11-06 18:56 Mike Gilbert
2019-10-29 20:11 Mike Gilbert
2019-10-27 14:40 Mike Gilbert
2019-08-27 17:25 Mike Gilbert
2019-08-22 15:00 Mike Gilbert
2019-08-08 15:46 Mike Gilbert
2019-08-02 20:42 Mike Gilbert
2019-07-29 17:32 Mike Gilbert
2019-07-25 14:34 Mike Gilbert
2019-06-25 14:58 Mike Gilbert
2019-06-19 21:24 Mike Gilbert
2019-06-18 13:52 Mike Gilbert
2019-02-17 17:53 Mike Gilbert
2019-02-15 20:26 Mike Gilbert
2019-02-10 15:44 Mike Gilbert
2018-11-05  0:22 Mike Gilbert
2018-11-05  0:22 Mike Gilbert
2018-10-21 15:17 Mike Gilbert
2018-09-22 17:38 Mike Gilbert
2018-07-22  0:41 Mike Gilbert
2018-06-20 14:00 Mike Gilbert
2018-05-29 19:36 Mike Gilbert
2018-04-30 23:26 Mike Gilbert
2018-03-04 23:02 Mike Gilbert
2018-02-21 20:31 Mike Gilbert
2018-01-14  2:32 Mike Gilbert
2017-12-09 16:00 Mike Gilbert
2017-11-04 22:17 Mike Gilbert
2017-11-04 14:53 Mike Gilbert
2017-10-04 13:50 Paweł Hajdan
2017-09-27 12:32 Paweł Hajdan
2017-09-04 21:07 Paweł Hajdan
2017-08-16 19:35 Paweł Hajdan
2017-08-02 21:28 Mike Gilbert
2017-07-27  8:22 Paweł Hajdan
2017-07-17 12:41 Paweł Hajdan
2017-06-28 15:18 Paweł Hajdan
2017-06-26  7:09 Paweł Hajdan
2017-06-11 17:35 Mike Gilbert
2017-06-11 16:39 Paweł Hajdan
2017-05-31 20:19 Paweł Hajdan
2017-05-17 14:22 Paweł Hajdan
2017-04-28 15:09 Paweł Hajdan
2017-04-13 19:18 Paweł Hajdan
2017-03-22  2:39 Mike Gilbert
2017-03-20 12:12 Paweł Hajdan
2017-03-12  1:00 Mike Gilbert
2017-01-29 22:27 Mike Gilbert
2017-01-22  5:24 Mike Gilbert
2017-01-05 21:47 Paweł Hajdan
2016-11-08 19:14 Mike Gilbert
2016-10-17 15:35 Mike Gilbert
2016-09-01 17:11 Mike Gilbert
2016-08-01 17:37 Paweł Hajdan
2016-06-13 20:38 Paweł Hajdan
2016-06-03 18:58 Paweł Hajdan
2016-06-01 20:22 Paweł Hajdan
2016-05-08 20:06 Paweł Hajdan
2016-03-25 21:29 Paweł Hajdan
2016-03-09  4:33 Mike Gilbert
2015-12-07 21:19 Paweł Hajdan
2015-11-29 21:44 Paweł Hajdan
2015-11-19  7:19 Paweł Hajdan
2015-09-08 21:01 Paweł Hajdan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox