public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-03-24 23:36 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-03-24 23:36 UTC (permalink / raw
  To: gentoo-commits

commit:     71a085dc6223c29fa0d95743706eb131c342116d
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 24 23:35:30 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Mar 24 23:35:30 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71a085dc

www-client/chromium: beta channel bump (50.0.2661.37)

Package-Manager: portage-2.2.26

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-50.0.2661.37.ebuild   | 695 +++++++++++++++++++++
 .../chromium/files/chromium-system-jinja-r8.patch  |  47 ++
 3 files changed, 743 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0fefb0f..11df9ac 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1 +1,2 @@
 DIST chromium-49.0.2623.87.tar.xz 452249780 SHA256 c98d0f843d1f5e24f5df42154d91f340a8ae64f316399f163b701193e880774d SHA512 4c9a96d322ec199a047d52057076579b9d6aefe6db8661f3b3c53f9f9d18ef5cd39c91038fe61e4158d371d4d4d8a78019f8cdf6e5e8135488d8233471d62728 WHIRLPOOL ac660f2d73bc5adcec6b93a19f33939dbc110c6c650ddb980f3d3e6e013d98beb7056359b29b713bbb00f742686d965a32b079adcb24faa4ed45474f2ee6a77a
+DIST chromium-50.0.2661.37.tar.xz 462477912 SHA256 e67a0e083a446ab57cabe8c7d8e1047aac128ee1aecaddc3d9f801b178a7be39 SHA512 e620d005a1ce2bfd0f3fe940914ac4e117feadbc8a569fa6e32be2593d540dc350c1282675a9f8cb07402a5393203eed77894531f3a9fe2cf16cbb8f70c124d3 WHIRLPOOL 97b66dbfa1824f45a038f761aa1d41852c174853b80bc8c297497ac4d549e46d84b6eb1f6732615c258f14c12aa3b02f3826bebcf2afceca27d8e04f1b311cf8

diff --git a/www-client/chromium/chromium-50.0.2661.37.ebuild b/www-client/chromium/chromium-50.0.2661.37.ebuild
new file mode 100644
index 0000000..030e6f9
--- /dev/null
+++ b/www-client/chromium/chromium-50.0.2661.37.ebuild
@@ -0,0 +1,695 @@
+# 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/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 --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}/chromium-whitelist-arm64-syscalls.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/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/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_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_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
+
+	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-r8.patch b/www-client/chromium/files/chromium-system-jinja-r8.patch
new file mode 100644
index 0000000..e1576ae
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-jinja-r8.patch
@@ -0,0 +1,47 @@
+--- 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
+     ],
+   },
+ 


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

commit:     948c1a804692fd8998616c869edfd5be7dcc5362
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  8 02:10:19 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Thu Aug  8 02:13:45 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=948c1a80

www-client/chromium: drop old

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

 www-client/chromium/Manifest                       |   10 -
 www-client/chromium/chromium-126.0.6478.126.ebuild | 1452 --------------------
 www-client/chromium/chromium-126.0.6478.182.ebuild | 1452 --------------------
 www-client/chromium/chromium-127.0.6533.43.ebuild  | 1357 ------------------
 www-client/chromium/chromium-127.0.6533.72.ebuild  | 1433 -------------------
 .../chromium/files/chromium-125-system-zstd.patch  |   53 -
 .../files/chromium-127-enterprise-companion.patch  |   44 -
 www-client/chromium/metadata.xml                   |    2 -
 8 files changed, 5803 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b6a071bcb7dc..227673467475 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,19 +1,9 @@
-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.126.tar.xz 4166142564 BLAKE2B 4c709c3a02a01f6bef46309b4a2f3d8cd688007e6b69152a5119a098c98aa272e10ea1ebf418c75387d08e1b9dde75ad53eabc12cf860b288e732c9b974e6066 SHA512 4a86edb82ec530299f8298b7604a18efb5ccf6a6cde37950d7821a73b005b9e83805a0b7f36f2fa5b4f71e237bf70ec628c1864e4f81caa4333a5dc904fb3aab
-DIST chromium-126.0.6478.182.tar.xz 4173311388 BLAKE2B fd11cdc99b9b5f9700ba2c64777c3b49f457a619687c6b1532145bc6a89ec6491bc7f9c2a71e2466530f3a1785b428f86d0fcb678dfdabd7f7708a7ad980a78c SHA512 3809234f9e9e5adba0b3b9fdfb12ff078ac2376a7f56d05df4f56f1d8ae2dad4be8f3683460c790a9e6b187a4760f70580fde8b7d7266b4b16ce3004ffc19fcf
 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.43.tar.xz 6598802356 BLAKE2B eab679025fd4764e7e3eb6ed0b32e0e3c106848626d7477c02a9a1201eb5add64614864366bdecf9d7b0a9fe62b9df621d4d6cb8762f7f7e85d7725ae2eed5bf SHA512 138e709105f6b7328c5029e6c5e5d9f0cf9611561bb6631605eb79051f3ef8be6dd0c2fb50ab2a89c7b1b5a869dcfb69bbc37ec56f4239039e32a8ada72be172
-DIST chromium-127.0.6533.72.tar.xz 6606381412 BLAKE2B 076cdd0ba5df2aba92d80074c52eafcd44926b70266ab4ec01f13c20b73eeeff752514d88665535cac94c8a6068cbb0da9c596d105ad3c430ff8ee582284ef22 SHA512 1b112b26dd52d2f45b5cd2e0109299b82335005f80be9897baed8735792bc05ef79ef24f9a40627313ac619dbf92ed334bcf7a2b366f40dce7c689763677603b
 DIST chromium-127.0.6533.88.tar.xz 6614557448 BLAKE2B 5940def45d64ccea7bb6d577a2b7c8ac4c4f868dc29dcb9ad03b0ce5459b737c60969ed3403da9d3630c3e2bfb297f2b08a4b58fb6921da8711715ba606268cd SHA512 226384246c17a9dd40f070937d0f1532b2bf7101f2e8707716fdf006cf087f2ab1c5eac719a2a52cf1fa7387e4c57bc088f5ac20d6235bd2dc58cfbfea538363
 DIST chromium-127.0.6533.99.tar.xz 6618098428 BLAKE2B 6a89e4ff8edcda31d8c04ae846c2869a96157b1b07c59614fe5f8fedba1699bc3b4d53adc9c94a0170d3288d8c9282348e275090848fc92a4c06b2e04104248b SHA512 e851e34c0f0b240fa08e60c0cb4373aead7656187bab7fd0dea5bad7cfc6b4ffe38b43f108f20528a508023cdd437b392b5c2ca09a1b1f5f21ba83d4fa88fd99
-DIST chromium-patches-126.tar.bz2 4538 BLAKE2B c1f224015618ec908ef09d0c04a2243923371e2caeccd60d93747599fd1434b284291a5b4326008db21749cf78827d5a4b50d22fc805dcd3c1fd86303dc82729 SHA512 6692075adac0379b5f27d1023de1a051cf7f7f7138efd32dfc3af0d501b714142a16daf18022bb46d92218587f364f4dafe9f4aea24f6826e88b0e7cc2be7d0b
 DIST chromium-patches-127-1.tar.bz2 4907 BLAKE2B 3d8599c4c75a0993f6627e4570e5059c5cc5036b2f7916685ca75742f483af8c07f22d5ac8a594a64a92bffe0262fd75c2e3417639197558a5bd3da909ac2c65 SHA512 a75a42d5c5c54fd6e53469a229f0f5382eb3108ffa6e7c503ec03fa7e5e8e470291981373e039ff8d7326ab420ad894d7d3cd8a918921438376924f7aa125924
 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
-DIST chromium_126.0.6478.114-1raptor0~deb12u1.debian.tar.xz 613488 BLAKE2B ecdf33e0ced01d540b7f1e599df6655055afd8f72b22a92c600205d1b02176be76140a5bfa550e62e4a0e4f03c68992eb480d9ba4a256b3f8b48b525a8ce7400 SHA512 53ea7f89dac5c42ca991f40f2a5515393cb74334a27df72b944552d5a557f6c53b0dac9c89cfb99918fd502396bc80a677a87533f48552af9f7fd440b7b8b2cc
-DIST chromium_126.0.6478.126-1raptor0~deb12u1.debian.tar.xz 614000 BLAKE2B 5eaad3a34447aefb080f9c0ff5170d111a318c8dc6866807aedbcfb014113877a2b8f6b4b80ec4ad8a35e2ed01a0bf0bc2bdcee1474ba4d7759180d0fbe77124 SHA512 6f1c8090bd94fa09c057799938c92d1cad1ac1638944727196ce5cc172d5a41f3f7121bc0b28ad07172b65108a8ae17086e6503b9bc4a20e2662c40f6d65f765
 DIST chromium_127.0.6533.88-1raptor0~deb12u2.debian.tar.xz 8675684 BLAKE2B 868de8a681496c5da5aa9ebb8d27c84b35313038da85232c89d58f6ab7a4ac15866e8d0650d5283023aa38ab55da93f3b6a97280afdd1a3cf69a021517bfa8ab SHA512 3afea47fedad9c1374b238028ea642cde603f548af9992fdcff836745cf8c4243d0781f56e8710ca1bb22b0a552944c62a67a4799f8073fbe309d0f5a514c724

diff --git a/www-client/chromium/chromium-126.0.6478.126.ebuild b/www-client/chromium/chromium-126.0.6478.126.ebuild
deleted file mode 100644
index d3ff927c29ad..000000000000
--- a/www-client/chromium/chromium-126.0.6478.126.ebuild
+++ /dev/null
@@ -1,1452 +0,0 @@
-# Copyright 2009-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..13} )
-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.2165
-# 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-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
-: ${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 systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PATCHSET_PPC64="126.0.6478.114-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/stable"
-KEYWORDS="amd64 arm64 ~ppc64"
-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-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 [[ ${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=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() {
-	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-109-system-zlib.patch"
-		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-125-system-zstd.patch"
-		"${FILESDIR}/chromium-126-oauth2-client-switches.patch"
-		"${FILESDIR}/chromium-cross-compile.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" )
-	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/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/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		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"
-			# 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) -eq 18 ]] && [[ $(clang-minor-version) -lt 6 ]] &&
-				tc-cpp-is-true "!defined(__AVX512F__)" ${CXXFLAGS} &&
-				append-flags -mevex512
-		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
-
-	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/chromium-126.0.6478.182.ebuild b/www-client/chromium/chromium-126.0.6478.182.ebuild
deleted file mode 100644
index b11b4a533dcf..000000000000
--- a/www-client/chromium/chromium-126.0.6478.182.ebuild
+++ /dev/null
@@ -1,1452 +0,0 @@
-# Copyright 2009-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..13} )
-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.2165
-# 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-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
-: ${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 systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PATCHSET_PPC64="126.0.6478.126-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/stable"
-KEYWORDS="amd64 arm64 ~ppc64"
-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-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 [[ ${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=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() {
-	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-109-system-zlib.patch"
-		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-125-system-zstd.patch"
-		"${FILESDIR}/chromium-126-oauth2-client-switches.patch"
-		"${FILESDIR}/chromium-cross-compile.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" )
-	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/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/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		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"
-			# 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) -eq 18 ]] && [[ $(clang-minor-version) -lt 6 ]] &&
-				tc-cpp-is-true "!defined(__AVX512F__)" ${CXXFLAGS} &&
-				append-flags -mevex512
-		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
-
-	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/chromium-127.0.6533.43.ebuild b/www-client/chromium/chromium-127.0.6533.43.ebuild
deleted file mode 100644
index 93696fb304f5..000000000000
--- a/www-client/chromium/chromium-127.0.6533.43.ebuild
+++ /dev/null
@@ -1,1357 +0,0 @@
-# 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() {
-	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/chromium-127.0.6533.72.ebuild b/www-client/chromium/chromium-127.0.6533.72.ebuild
deleted file mode 100644
index 336aa71c9faf..000000000000
--- a/www-client/chromium/chromium-127.0.6533.72.ebuild
+++ /dev/null
@@ -1,1433 +0,0 @@
-# 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.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"
-
-# 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="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/stable"
-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?] )
-	)
-"
-
-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
-	)
-	>=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
-}
-
-# 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.
-			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"
-					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
-
-		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"
-		"${FILESDIR}/chromium-127-enterprise-companion.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_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
-
-	# 936673: Updater (which we don't use) depends on libsystemd
-	# This _should_ always be disabled if we're not building a
-	# "Chrome" branded browser, but obviously this is not always sufficient.
-	myconf_gn+=" enable_updater=false"
-
-	# 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-125-system-zstd.patch b/www-client/chromium/files/chromium-125-system-zstd.patch
deleted file mode 100644
index 6211662f98fa..000000000000
--- a/www-client/chromium/files/chromium-125-system-zstd.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-127-enterprise-companion.patch b/www-client/chromium/files/chromium-127-enterprise-companion.patch
deleted file mode 100644
index 76ce131bba3d..000000000000
--- a/www-client/chromium/files/chromium-127-enterprise-companion.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From e7d008ff98df2049cce1c4d941b13b320da336c9 Mon Sep 17 00:00:00 2001
-From: Matt Jolly <Matt.Jolly@footclan.ninja>
-Date: Mon, 29 Jul 2024 23:42:04 +1000
-Subject: [PATCH] no-op enterprise_companion.
-
-For some reason this pulls in updater components which breaks
-builds on OpenRC systems (or any non-systemd system, really).
-
-It doesn't seem essential so we'll just not build it.
-
-Bug: https://bugs.gentoo.org/936673
-Signed-off-by: Matt Jolly <kangie@gentoo.org>
---- a/chrome/enterprise_companion/BUILD.gn
-+++ b/chrome/enterprise_companion/BUILD.gn
-@@ -60,16 +60,16 @@ static_library("client") {
-   deps = [ "//mojo/public/cpp/platform" ]
- }
- 
--if (!is_official_build) {
--  executable("enterprise_companion") {
--    sources = [ "main.cc" ]
--    deps = [ ":base" ]
--
--    if (is_win) {
--      configs += [ "//build/config/win:windowed" ]
--    }
--  }
--}
-+#if (!is_official_build) {
-+#  executable("enterprise_companion") {
-+#    sources = [ "main.cc" ]
-+#    deps = [ ":base" ]
-+#
-+#    if (is_win) {
-+#      configs += [ "//build/config/win:windowed" ]
-+#    }
-+#  }
-+#}
- 
- group("all") {
-   testonly = true
--- 
-2.45.2
-

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 46230c585260..66251f8abc81 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -15,8 +15,6 @@
 		<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="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>


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

commit:     e52b059766917ec7c3d0c1af5ea377e82c9529c3
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  1 06:49:05 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Thu Aug  1 08:39:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e52b0597

www-client/chromium: add 127.0.6533.88

Also drop LTO use in favour of `tc-is-lto`

Closes: https://bugs.gentoo.org/937025
Closes: https://bugs.gentoo.org/936959
Bug: https://bugs.gentoo.org/936673
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/Manifest                       |    2 +
 www-client/chromium/chromium-127.0.6533.88.ebuild  | 1443 ++++++++++++++++++++
 .../files/chromium-127-updater-systemd.patch       |   73 +
 3 files changed, 1518 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 350027944ebf..0e13d32f9e8d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -6,6 +6,7 @@ DIST chromium-127-clang.tar.xz 50869256 BLAKE2B a25c78c28e1a19bb251ce78831ff8aee
 DIST chromium-127-rust.tar.xz 151082700 BLAKE2B 53b5e72724425ae97bbb22e128ca5e826a2db5fb49f615c5331cdf6d790c253d58061223ff9fbd7f4deecaa19668e7b905b0a661380f48ce74d7f66a9605be18 SHA512 a47fc0bdbf48da9c8c17c91d9dc1a4a3f09578e82199c0d5843dfb6188803161cdb98d065ee3f85ceaf78efd2c233397c325c4c9f2d19255f38734a81599404b
 DIST chromium-127.0.6533.43.tar.xz 6598802356 BLAKE2B eab679025fd4764e7e3eb6ed0b32e0e3c106848626d7477c02a9a1201eb5add64614864366bdecf9d7b0a9fe62b9df621d4d6cb8762f7f7e85d7725ae2eed5bf SHA512 138e709105f6b7328c5029e6c5e5d9f0cf9611561bb6631605eb79051f3ef8be6dd0c2fb50ab2a89c7b1b5a869dcfb69bbc37ec56f4239039e32a8ada72be172
 DIST chromium-127.0.6533.72.tar.xz 6606381412 BLAKE2B 076cdd0ba5df2aba92d80074c52eafcd44926b70266ab4ec01f13c20b73eeeff752514d88665535cac94c8a6068cbb0da9c596d105ad3c430ff8ee582284ef22 SHA512 1b112b26dd52d2f45b5cd2e0109299b82335005f80be9897baed8735792bc05ef79ef24f9a40627313ac619dbf92ed334bcf7a2b366f40dce7c689763677603b
+DIST chromium-127.0.6533.88.tar.xz 6614557448 BLAKE2B 5940def45d64ccea7bb6d577a2b7c8ac4c4f868dc29dcb9ad03b0ce5459b737c60969ed3403da9d3630c3e2bfb297f2b08a4b58fb6921da8711715ba606268cd SHA512 226384246c17a9dd40f070937d0f1532b2bf7101f2e8707716fdf006cf087f2ab1c5eac719a2a52cf1fa7387e4c57bc088f5ac20d6235bd2dc58cfbfea538363
 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
@@ -13,3 +14,4 @@ DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b2655123
 DIST chromium_124.0.6367.207-1raptor0~deb12u1.debian.tar.xz 587248 BLAKE2B 4c5a12b3e70be85b31d60d35d160281cbf8b93422169243f743fff25805bc7006ffeed5f95b415fb49e9cf4c3bf2c0a2d5ed10642d8f772df24cab1fe738125a SHA512 025ac185f27c66438a5eaf482120fded42d37403706fd012fbde1b6acf5c2e360bb2fb7723183d4883f66f36afe10167a2d919cde11735186a1a87b28ffaf9c6
 DIST chromium_126.0.6478.114-1raptor0~deb12u1.debian.tar.xz 613488 BLAKE2B ecdf33e0ced01d540b7f1e599df6655055afd8f72b22a92c600205d1b02176be76140a5bfa550e62e4a0e4f03c68992eb480d9ba4a256b3f8b48b525a8ce7400 SHA512 53ea7f89dac5c42ca991f40f2a5515393cb74334a27df72b944552d5a557f6c53b0dac9c89cfb99918fd502396bc80a677a87533f48552af9f7fd440b7b8b2cc
 DIST chromium_126.0.6478.126-1raptor0~deb12u1.debian.tar.xz 614000 BLAKE2B 5eaad3a34447aefb080f9c0ff5170d111a318c8dc6866807aedbcfb014113877a2b8f6b4b80ec4ad8a35e2ed01a0bf0bc2bdcee1474ba4d7759180d0fbe77124 SHA512 6f1c8090bd94fa09c057799938c92d1cad1ac1638944727196ce5cc172d5a41f3f7121bc0b28ad07172b65108a8ae17086e6503b9bc4a20e2662c40f6d65f765
+DIST chromium_127.0.6533.88-1raptor0~deb12u2.debian.tar.xz 8675684 BLAKE2B 868de8a681496c5da5aa9ebb8d27c84b35313038da85232c89d58f6ab7a4ac15866e8d0650d5283023aa38ab55da93f3b6a97280afdd1a3cf69a021517bfa8ab SHA512 3afea47fedad9c1374b238028ea642cde603f548af9992fdcff836745cf8c4243d0781f56e8710ca1bb22b0a552944c62a67a4799f8073fbe309d0f5a514c724

diff --git a/www-client/chromium/chromium-127.0.6533.88.ebuild b/www-client/chromium/chromium-127.0.6533.88.ebuild
new file mode 100644
index 000000000000..604be48b3915
--- /dev/null
+++ b/www-client/chromium/chromium-127.0.6533.88.ebuild
@@ -0,0 +1,1443 @@
+# 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.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"
+
+# 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="127.0.6533.88-1raptor0~deb12u2"
+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/stable"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+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-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*"
+	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
+	)
+	>=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
+
+			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"
+					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
+
+		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"
+		"${FILESDIR}/chromium-127-updater-systemd.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_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
+
+	# 936673: Updater (which we don't use) depends on libsystemd
+	# This _should_ always be disabled if we're not building a
+	# "Chrome" branded browser, but obviously this is not always sufficient.
+	myconf_gn+=" enable_updater=false"
+
+	local use_lto="false"
+	if tc-is-lto; then
+		use_lto="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
+		# Req's LTO; 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-updater-systemd.patch b/www-client/chromium/files/chromium-127-updater-systemd.patch
new file mode 100644
index 000000000000..57e9029b9378
--- /dev/null
+++ b/www-client/chromium/files/chromium-127-updater-systemd.patch
@@ -0,0 +1,73 @@
+https://github.com/chromium/chromium/commit/570332aad61afab5d9d88a8438bae53ea28a298a
+From: Noah Rose Ledesma <noahrose@google.com>
+Date: Wed, 31 Jul 2024 17:59:12 +0000
+Subject: [PATCH] Use libs instead of pkg_config for linux deps
+
+pkg_config can cause builds to fail if the requested packages are not
+present, regardless of if the lib is depended upon by the target being
+built.
+
+This issue can be avoided by setting 'libs' instead. I'm not sure why we
+didn't do so in the first place.
+
+Bug: 355967882
+Change-Id: Ie5dc4c03b08d7c1e26458ea143f6dc812b670544
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5749680
+Reviewed-by: Sorin Jianu <sorin@chromium.org>
+Commit-Queue: Noah Rose Ledesma <noahrose@google.com>
+Cr-Commit-Position: refs/heads/main@{#1335558}
+--- a/chrome/updater/BUILD.gn
++++ b/chrome/updater/BUILD.gn
+@@ -367,9 +367,10 @@ if (is_win || is_mac || is_linux) {
+         "update_service_internal_impl_qualifying_linux.cc",
+         "update_usage_stats_task_linux.cc",
+       ]
+-      public_configs = [
+-        "linux:libcurl",
+-        "linux:libsystemd",
++
++      libs = [
++        "curl",
++        "systemd",
+       ]
+     }
+   }
+@@ -1040,7 +1041,7 @@ if (is_win || is_mac || is_linux) {
+ 
+       data += [ "//chrome/test/data/updater/updater_qualification_app.crx" ]
+       data_deps += [ "//chrome/updater/linux:updater_test" ]
+-      public_configs = [ "linux:libsystemd" ]
++      libs = [ "systemd" ]
+     }
+ 
+     if (is_posix) {
+--- a/chrome/updater/linux/BUILD.gn
++++ b/chrome/updater/linux/BUILD.gn
+@@ -2,7 +2,6 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
+-import("//build/config/linux/pkg_config.gni")
+ import("//chrome/updater/zip.gni")
+ 
+ # This target builds the updater executable and unittests.
+@@ -13,18 +12,10 @@ group("linux") {
+   ]
+ }
+ 
+-pkg_config("libcurl") {
+-  packages = [ "libcurl" ]
+-}
+-
+-pkg_config("libsystemd") {
+-  packages = [ "libsystemd" ]
+-}
+-
+ source_set("updater_executable") {
+   sources = [ "main.cc" ]
+   deps = [ "//chrome/updater:base" ]
+-  public_configs = [ ":libsystemd" ]
++  libs = [ "systemd" ]
+ }
+ 
+ executable("updater") {


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

commit:     ea8d28aa98aee00aafd19a81032dc6c9cde530c5
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 29 22:41:57 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Mon Jul 29 22:43:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea8d28aa

www-client/chromium: fix build with USE="-official" on OpenRC

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

 www-client/chromium/chromium-127.0.6533.72.ebuild  |  1 +
 .../files/chromium-127-enterprise-companion.patch  | 44 ++++++++++++++++++++++
 2 files changed, 45 insertions(+)

diff --git a/www-client/chromium/chromium-127.0.6533.72.ebuild b/www-client/chromium/chromium-127.0.6533.72.ebuild
index 0861db4237d8..336aa71c9faf 100644
--- a/www-client/chromium/chromium-127.0.6533.72.ebuild
+++ b/www-client/chromium/chromium-127.0.6533.72.ebuild
@@ -453,6 +453,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-126-oauth2-client-switches.patch"
 		"${FILESDIR}/chromium-127-browser-ui-deps.patch"
 		"${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch"
+		"${FILESDIR}/chromium-127-enterprise-companion.patch"
 	)
 
 	# 127: test deps are broken for ui/lens with system ICU "//third_party/icu:icuuc_public"

diff --git a/www-client/chromium/files/chromium-127-enterprise-companion.patch b/www-client/chromium/files/chromium-127-enterprise-companion.patch
new file mode 100644
index 000000000000..76ce131bba3d
--- /dev/null
+++ b/www-client/chromium/files/chromium-127-enterprise-companion.patch
@@ -0,0 +1,44 @@
+From e7d008ff98df2049cce1c4d941b13b320da336c9 Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Mon, 29 Jul 2024 23:42:04 +1000
+Subject: [PATCH] no-op enterprise_companion.
+
+For some reason this pulls in updater components which breaks
+builds on OpenRC systems (or any non-systemd system, really).
+
+It doesn't seem essential so we'll just not build it.
+
+Bug: https://bugs.gentoo.org/936673
+Signed-off-by: Matt Jolly <kangie@gentoo.org>
+--- a/chrome/enterprise_companion/BUILD.gn
++++ b/chrome/enterprise_companion/BUILD.gn
+@@ -60,16 +60,16 @@ static_library("client") {
+   deps = [ "//mojo/public/cpp/platform" ]
+ }
+ 
+-if (!is_official_build) {
+-  executable("enterprise_companion") {
+-    sources = [ "main.cc" ]
+-    deps = [ ":base" ]
+-
+-    if (is_win) {
+-      configs += [ "//build/config/win:windowed" ]
+-    }
+-  }
+-}
++#if (!is_official_build) {
++#  executable("enterprise_companion") {
++#    sources = [ "main.cc" ]
++#    deps = [ ":base" ]
++#
++#    if (is_win) {
++#      configs += [ "//build/config/win:windowed" ]
++#    }
++#  }
++#}
+ 
+ group("all") {
+   testonly = true
+-- 
+2.45.2
+


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

commit:     47e3fb7439f6b5a83bb2d77ff95f6e15d8d5319f
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 11 00:08:11 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Thu Apr 11 09:25:41 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47e3fb74

www-client/chromium: add 123.0.6312.122

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

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-123.0.6312.122.ebuild | 1439 ++++++++++++++++++++
 .../chromium/files/chromium-123-qt-gui-check.patch |   31 +
 3 files changed, 1471 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1fa2c49919b5..a47026b4b4d7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,6 +4,7 @@ DIST chromium-122.0.6261.111.tar.xz 3422993788 BLAKE2B 14e010fcb658aed85b6b83169
 DIST chromium-123-clang.tar.xz 50178332 BLAKE2B 4b5c4f81a83c7b0c809c93a713e869fde6fe559477665cb3b2f03c62d2175f821b81fb03b0ddd127c6eaf77c41011b4de06561f09a58384153d80fe2b3aa7427 SHA512 17108b9579f16d0da383bd5e41d012f94bcb8445a517ff823aa49b66d3861b0a124b6cce6183fbc64e8050f1ebcd65a9daa2acbda5fdaa42390bfbf4ecb16bd3
 DIST chromium-123-rust.tar.xz 145295100 BLAKE2B ae6603a0e0218e4e39d3e8b7aa48a2cd946c90779dac48be26582926963c8a10a48e3e58fd00a23cb8cd9a3584d9d4a142e843f93c761e862253817635f18c2c SHA512 b4f8dce6d74be4be495d9948d7593ec9664c0b93e87456fab33d3ae5ac0e486a4e8576b26a9ab9890285a7c0d566afb803b98225c0692b6cac9f623a10b954a2
 DIST chromium-123.0.6312.105.tar.xz 3481204616 BLAKE2B 8adbc4a0c96ea53b45b26a48c8eb94e29b31b981471a0d5fda4cdea1f7aa69714a9e5a5729a61a49a92b6322889ee794b4c7ac5e243bc495ff5bd04cdc59f616 SHA512 a1abbba78c96fd7bc44a23b21d8180ebff015d17abcb186dece595513fda9d4443ac67498a78181589884c384a48e6c3abfe72e6ee806fdfc764d05f13fb5cb6
+DIST chromium-123.0.6312.122.tar.xz 3488275388 BLAKE2B 9f7e6c4984a41dbed6849eee08d4f6b8241c86ece0250d67786038980f3d7f208897f42b279c20ffbb965e8e49427ce74e896c34b40390321780b9cc2ba685ce SHA512 23e13d1d5758aa771f4c66e1a55068438e7c4890456dcb0b7a1fc1839b750e612e29d59e744c8b773935757aad01b78a5fecc3e03057a8acbb7e997dbb98f007
 DIST chromium-123.0.6312.86.tar.xz 3472393888 BLAKE2B 542adf3ef909404f140a32cd965ded7e0c55d1108047430eebbab6a28b104089bda4b6df0b929179313cd46ca8c8c8a0067301251cdf74a0362d1e28c0a99013 SHA512 e2be69f3f82460560be915d666349c807822d955a729aee41f8bded5d34b00823a7ac0740c3bc68a4162bcfcb5656f7b192e42b5c79769c18a0bae6b091fb0f0
 DIST chromium-124-clang.tar.xz 50212876 BLAKE2B f4786d4192306c005ce790ec3fc2595055d7a835b438e3c7a101b2c56653ad0ef3eb7b797224c9fe910c7ccd31c7cad50d502411ef220d151a8a1b432610d6b8 SHA512 4fb7bbb8abc9b3ae065b32215327d5de58e27c20c0199a8c243a9bfb89bf95b932ac1c2162e65acc954bde5975373a40ccada346cd0340d89889a12e4b8b96df
 DIST chromium-124-rust.tar.xz 145977368 BLAKE2B 3fccaed3a1f7b85a303f5e4281d0d7fe0d194f3203751bae4a937f3447260ecfa5141d49b945705d69d36e89901b99fd0955ce0e5bcff0c17c7096fd78782722 SHA512 272ef52b5b201aeb056db7339387504b78252411899ea13ed5829b77bab8c76fd84125d68678064ac204fa48caf16f86ee1d99c64d599d955fb1097d5e46fc51

diff --git a/www-client/chromium/chromium-123.0.6312.122.ebuild b/www-client/chromium/chromium-123.0.6312.122.ebuild
new file mode 100644
index 000000000000..e159ce285ff4
--- /dev/null
+++ b/www-client/chromium/chromium-123.0.6312.122.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-2319-g7c4c2746-1
+GOOGLE_RUST_VER=340bb19fea20fd5f9357bbfac542fad84fc7ea2b-3
+
+# 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.86-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/stable"
+KEYWORDS="amd64 arm64 ~ppc64"
+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.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() {
+	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-use-oauth2-client-switches-as-default.patch"
+		"${FILESDIR}/chromium-109-system-zlib.patch"
+		"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-117-system-zstd.patch"
+		"${FILESDIR}/chromium-124-libwebp-shim-sharpyuv.patch"
+		"${FILESDIR}/chromium-123-qt-gui-check.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" )
+	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
+		# 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-123-qt-gui-check.patch b/www-client/chromium/files/chromium-123-qt-gui-check.patch
new file mode 100644
index 000000000000..53c1ca89222f
--- /dev/null
+++ b/www-client/chromium/files/chromium-123-qt-gui-check.patch
@@ -0,0 +1,31 @@
+From 3a812de6e7e0b285eda21ebbb670ca809c4db2b5 Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Thu, 11 Apr 2024 12:42:17 +1000
+Subject: [PATCH] Add QtGui to the list of Qt modules
+
+Re: https://bugreports.qt.io/browse/QTBUG-124135 - certain versions of QT
+(6.6.3, 6.7.0) produce pkg-config files that no longer emit dependencies.
+This causes Chromium builds to fail as due to not seeing QtGui as a dependency
+of QtWidgets:
+
+    `gen/qt6/../../../../ui/qt/qt_shim.h:11:10: fatal error: 'QImage' file not found`
+
+While this has been resolved upstream, there will certainly be some users
+that are still using these versions of QT. This patch adds QtGui to the list of
+Qt modules that are required to build the Chromium UI.
+
+Bug: https://bugs.gentoo.org/928299
+Suggested-by: Chris Pritchard <chris@christopherpritchard.co.uk>
+Signed-off-by: Matt Jolly <kangie@gentoo.org>
+--- a/ui/qt/BUILD.gn
++++ b/ui/qt/BUILD.gn
+@@ -60,6 +60,7 @@ template("qt_shim") {
+   pkg_config("qt" + invoker.qt_version + "_config") {
+     packages = [
+       "Qt" + invoker.qt_version + "Core",
++      "Qt" + invoker.qt_version + "Gui",
+       "Qt" + invoker.qt_version + "Widgets",
+     ]
+   }
+-- 
+2.44.0


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

commit:     ab0da6660785c2f89a93ffda79f5ec7169378003
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 10 05:29:57 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 10 05:30:32 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab0da666

www-client/chromium: drop 112.0.5615.165, 113.0.5672.63, 113.0.5672.92

Bug: https://bugs.gentoo.org/906586
Bug: https://bugs.gentoo.org/905620
Bug: https://bugs.gentoo.org/904560
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-client/chromium/Manifest                       |    4 -
 www-client/chromium/chromium-112.0.5615.165.ebuild | 1261 -------------------
 www-client/chromium/chromium-113.0.5672.63.ebuild  | 1265 --------------------
 www-client/chromium/chromium-113.0.5672.92.ebuild  | 1265 --------------------
 .../chromium/files/chromium-112-compiler.patch     |  256 ----
 .../files/chromium-112-gcc-mno-outline.patch       |   29 -
 .../chromium/files/chromium-112-libstdc++-1.patch  |   59 -
 .../chromium/files/chromium-112-libstdc++.patch    |   63 -
 .../chromium/files/chromium-112-sql-relax.patch    |   46 -
 .../chromium/files/chromium-112-swiftshader.patch  |  122 --
 10 files changed, 4370 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c5b5392927b4..f16d2a354e98 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,11 +1,7 @@
 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.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-112.0.5615.165.ebuild b/www-client/chromium/chromium-112.0.5615.165.ebuild
deleted file mode 100644
index 2feac82dcb99..000000000000
--- a/www-client/chromium/chromium-112.0.5615.165.ebuild
+++ /dev/null
@@ -1,1261 +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=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
-
-	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"
-		"${WORKDIR}/chromium-112-gcc-13-patches"
-	)
-
-	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/chromium-113.0.5672.63.ebuild b/www-client/chromium/chromium-113.0.5672.63.ebuild
deleted file mode 100644
index 73c153d99a70..000000000000
--- a/www-client/chromium/chromium-113.0.5672.63.ebuild
+++ /dev/null
@@ -1,1265 +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=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_113.0.5672.63-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"
-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
-
-	# 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"
-		"${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.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/chromium-113.0.5672.92.ebuild b/www-client/chromium/chromium-113.0.5672.92.ebuild
deleted file mode 100644
index 73c153d99a70..000000000000
--- a/www-client/chromium/chromium-113.0.5672.92.ebuild
+++ /dev/null
@@ -1,1265 +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=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_113.0.5672.63-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"
-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
-
-	# 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"
-		"${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.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-compiler.patch b/www-client/chromium/files/chromium-112-compiler.patch
deleted file mode 100644
index 8d4237379b27..000000000000
--- a/www-client/chromium/files/chromium-112-compiler.patch
+++ /dev/null
@@ -1,256 +0,0 @@
-From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Tue, 15 Nov 2022 10:27:58 +0000
-Subject: [PATCH] Disable various compiler configs
-
----
- build/config/compiler/BUILD.gn | 134 +++++----------------------------
- 1 file changed, 17 insertions(+), 117 deletions(-)
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index bd039fc..4d3759a 100644
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -276,9 +276,7 @@ config("compiler") {
- 
-   configs += [
-     # See the definitions below.
--    ":clang_revision",
-     ":rustc_revision",
--    ":compiler_cpu_abi",
-     ":compiler_codegen",
-     ":compiler_deterministic",
-   ]
-@@ -529,37 +527,6 @@ config("compiler") {
-     ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
-   }
- 
--  if (is_clang && !is_nacl && current_os != "zos") {
--    cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
--    if (save_reproducers_on_lld_crash && use_lld) {
--      ldflags += [
--        "-fcrash-diagnostics=all",
--        "-fcrash-diagnostics-dir=" + clang_diagnostic_dir,
--      ]
--    }
--
--    # TODO(hans): Remove this once Clang generates better optimized debug info
--    # by default. https://crbug.com/765793
--    cflags += [
--      "-mllvm",
--      "-instcombine-lower-dbg-declare=0",
--    ]
--    if (!is_debug && use_thin_lto && is_a_target_toolchain) {
--      if (is_win) {
--        ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
--      } else {
--        ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
--      }
--    }
--
--    # TODO(crbug.com/1235145): Investigate why/if this should be needed.
--    if (is_win) {
--      cflags += [ "/clang:-ffp-contract=off" ]
--    } else {
--      cflags += [ "-ffp-contract=off" ]
--    }
--  }
--
-   # Rust compiler setup (for either clang or rustc).
-   if (enable_rust) {
-     defines += [ "RUST_ENABLED" ]
-@@ -1301,46 +1268,6 @@ config("compiler_deterministic") {
-     }
-   }
- 
--  # Makes builds independent of absolute file path.
--  if (is_clang && strip_absolute_paths_from_debug_symbols) {
--    # If debug option is given, clang includes $cwd in debug info by default.
--    # For such build, this flag generates reproducible obj files even we use
--    # different build directory like "out/feature_a" and "out/feature_b" if
--    # we build same files with same compile flag.
--    # Other paths are already given in relative, no need to normalize them.
--    if (is_nacl) {
--      # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
--      cflags += [
--        "-Xclang",
--        "-fdebug-compilation-dir",
--        "-Xclang",
--        ".",
--      ]
--    } else {
--      # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
--      # and -fcoverage-compilation-dir=.
--      cflags += [ "-ffile-compilation-dir=." ]
--      swiftflags += [ "-file-compilation-dir=." ]
--    }
--    if (!is_win) {
--      # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
--      asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
--    }
--
--    if (is_win && use_lld) {
--      if (symbol_level == 2 || (is_clang && using_sanitizer)) {
--        # Absolutize source file paths for PDB. Pass the real build directory
--        # if the pdb contains source-level debug information and if linker
--        # reproducibility is not critical.
--        ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
--      } else {
--        # Use a fake fixed base directory for paths in the pdb to make the pdb
--        # output fully deterministic and independent of the build directory.
--        ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
--      }
--    }
--  }
--
-   # Tells the compiler not to use absolute paths when passing the default
-   # paths to the tools it invokes. We don't want this because we don't
-   # really need it and it can mess up the goma cache entries.
-@@ -1359,27 +1286,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 (enable_rust && defined(rustc_version)) {
-     # Similar to the above config, this is here so that all files get
-@@ -1669,7 +1575,7 @@ config("chromium_code") {
-       defines = [ "_HAS_NODISCARD" ]
-     }
-   } else {
--    cflags = [ "-Wall" ]
-+    cflags = []
-     if (treat_warnings_as_errors) {
-       cflags += [ "-Werror" ]
- 
-@@ -1678,10 +1584,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.
-@@ -1690,16 +1592,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_mac) {
-       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
-       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -2092,7 +1984,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.
-@@ -2137,7 +2030,8 @@ config("optimize") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2177,7 +2071,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:
-@@ -2210,7 +2105,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:
-@@ -2236,7 +2132,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
-@@ -2356,7 +2253,8 @@ config("win_pdbaltpath") {
- }
- 
- # Full symbols.
--config("symbols") {
-+config("symbols") { }
-+config("xsymbols") {
-   if (is_win) {
-     if (is_clang) {
-       cflags = [
-@@ -2495,7 +2393,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 = []
-@@ -2568,7 +2467,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" ]
- 
--- 
-2.37.4
-

diff --git a/www-client/chromium/files/chromium-112-gcc-mno-outline.patch b/www-client/chromium/files/chromium-112-gcc-mno-outline.patch
deleted file mode 100644
index 9ebaf1720a90..000000000000
--- a/www-client/chromium/files/chromium-112-gcc-mno-outline.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 428afabde5f20bc91ad1166b983b9975188be737 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Tue, 07 Mar 2023 17:46:30 +0000
-Subject: [PATCH] GCC: do not disable outlining with -mno-outline
-
-GCC build fails in arm64 because -mno-outline is passed. This build
-option is only supported in Clang.
-
-Bug: 819294
-Change-Id: Ied5cf194c26fd284aa66477cf0cd381b8cd26607
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4316542
-Reviewed-by: Hans Wennborg <hans@chromium.org>
-Commit-Queue: José Dapena Paz <jdapena@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#1114023}
----
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 4e6708b..6ca2924 100644
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -1304,7 +1304,7 @@
-     configs += [ "//build/config/nacl:compiler_codegen" ]
-   }
- 
--  if (current_cpu == "arm64" && !is_win) {
-+  if (current_cpu == "arm64" && !is_win && is_clang) {
-     # Disable outlining everywhere on arm64 except Win. For more information see
-     # crbug.com/931297 for Android and crbug.com/1410297 for iOS.
-     # TODO(crbug.com/1411363): Enable this on Windows if possible.

diff --git a/www-client/chromium/files/chromium-112-libstdc++-1.patch b/www-client/chromium/files/chromium-112-libstdc++-1.patch
deleted file mode 100644
index 36a1f94252c3..000000000000
--- a/www-client/chromium/files/chromium-112-libstdc++-1.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From aaeaf2a563682f2f63196f924a842dcca42be8ef Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Tue, 07 Mar 2023 16:54:09 +0000
-Subject: [PATCH] IWYU: libstdc++ unique_ptr cast from nullptr requires declaration of type
-
-fallback_linux_ui.cc returns a nullptr as a result of several
-calls returning a std::unique_ptr of a type that has not been declared
-and that's not allowed in libstdc++ implementation.
-
-Fix build errors:
-    /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::LinuxInputMethodContext]’:
-    /usr/include/c++/12/bits/unique_ptr.h:396:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::LinuxInputMethodContext; _Dp = std::default_delete<ui::LinuxInputMethodContext>]’
-    ../../ui/linux/fallback_linux_ui.cc:35:10:   required from here
-    /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::LinuxInputMethodContext’
-       93 |         static_assert(sizeof(_Tp)>0,
-          |                       ^~~~~~~~~~~
-    /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::NavButtonProvider]’:
-    /usr/include/c++/12/bits/unique_ptr.h:396:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::NavButtonProvider; _Dp = std::default_delete<ui::NavButtonProvider>]’
-    ../../ui/linux/fallback_linux_ui.cc:133:10:   required from here
-    /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::NavButtonProvider’
-
-Bug: 957519
-Change-Id: I5e7f096003d8f5de8f5be36137ac4427799bf7a5
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4310671
-Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1113983}
----
-
-diff --git a/ui/linux/BUILD.gn b/ui/linux/BUILD.gn
-index eb72461..8662261 100644
---- a/ui/linux/BUILD.gn
-+++ b/ui/linux/BUILD.gn
-@@ -52,6 +52,7 @@
-   deps = [
-     "//base",
-     "//ui/base:buildflags",
-+    "//ui/base/ime/linux:linux",
-     "//ui/events:dom_keyboard_layout",
-     "//ui/gfx",
-     "//ui/native_theme",
-diff --git a/ui/linux/fallback_linux_ui.cc b/ui/linux/fallback_linux_ui.cc
-index ee3e7b9..5f5abee 100644
---- a/ui/linux/fallback_linux_ui.cc
-+++ b/ui/linux/fallback_linux_ui.cc
-@@ -5,11 +5,13 @@
- #include "ui/linux/fallback_linux_ui.h"
- 
- #include "base/time/time.h"
-+#include "ui/base/ime/linux/linux_input_method_context.h"
- #include "ui/events/keycodes/dom/dom_keyboard_layout_map.h"
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/geometry/size.h"
- #include "ui/gfx/image/image.h"
- #include "ui/gfx/platform_font.h"
-+#include "ui/linux/nav_button_provider.h"
- #include "ui/native_theme/native_theme.h"
- #include "ui/shell_dialogs/select_file_policy.h"
- #include "ui/views/controls/textfield/textfield.h"

diff --git a/www-client/chromium/files/chromium-112-libstdc++.patch b/www-client/chromium/files/chromium-112-libstdc++.patch
deleted file mode 100644
index bef364e0b5e0..000000000000
--- a/www-client/chromium/files/chromium-112-libstdc++.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From f2ea90d9cf667612b2913a6f30636a4773bad026 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Tue, 28 Feb 2023 18:38:25 +0000
-Subject: [PATCH] IWYU: include blink::URLLoader for unique_ptr usage in WebLocalFrameClient
-
-Recent refactor broke again libstdc++ build by not including URLLoader
-header. But the reason for that change was removing in public code
-includes of non public code, as URLLoader.
-
-To fix the problem, move the implementation exposing the problem
-to the .cc file.
-
-Fixes build error with libstdc++:
-    /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = blink::URLLoader]’:
-    /usr/include/c++/12/bits/unique_ptr.h:396:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = blink::URLLoader; _Dp = std::default_delete<blink::URLLoader>]’
-    ../../third_party/blink/public/web/web_local_frame_client.h:678:12:   required from here
-    /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘blink::URLLoader’
-
-Bug: 957519
-Change-Id: I0db2f86603fba4fe8f10d6c4370ad1ff4c9ca70b
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4276241
-Reviewed-by: Daniel Cheng <dcheng@chromium.org>
-Commit-Queue: José Dapena Paz <jdapena@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#1111077}
----
-
-diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
-index d6bb896..246d2ff 100644
---- a/third_party/blink/public/web/web_local_frame_client.h
-+++ b/third_party/blink/public/web/web_local_frame_client.h
-@@ -674,9 +674,7 @@
-     return nullptr;
-   }
- 
--  virtual std::unique_ptr<URLLoader> CreateURLLoaderForTesting() {
--    return nullptr;
--  }
-+  virtual std::unique_ptr<URLLoader> CreateURLLoaderForTesting();
- 
-   virtual void OnStopLoading() {}
- 
-diff --git a/third_party/blink/renderer/core/frame/web_local_frame_client.cc b/third_party/blink/renderer/core/frame/web_local_frame_client.cc
-index a3617af..3adcd7c 100644
---- a/third_party/blink/renderer/core/frame/web_local_frame_client.cc
-+++ b/third_party/blink/renderer/core/frame/web_local_frame_client.cc
-@@ -7,6 +7,7 @@
- #include "mojo/public/cpp/bindings/pending_remote.h"
- #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
- #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
-+#include "third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.h"
- 
- namespace blink {
- 
-@@ -25,4 +26,9 @@
-   // have this implementation in the base class.
-   return AssociatedInterfaceProvider::GetEmptyAssociatedInterfaceProvider();
- }
-+
-+std::unique_ptr<URLLoader> WebLocalFrameClient::CreateURLLoaderForTesting() {
-+  return nullptr;
-+}
-+
- }  // namespace blink

diff --git a/www-client/chromium/files/chromium-112-sql-relax.patch b/www-client/chromium/files/chromium-112-sql-relax.patch
deleted file mode 100644
index 2510d1000034..000000000000
--- a/www-client/chromium/files/chromium-112-sql-relax.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-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;
-   }
- 

diff --git a/www-client/chromium/files/chromium-112-swiftshader.patch b/www-client/chromium/files/chromium-112-swiftshader.patch
deleted file mode 100644
index 9d67841a1dea..000000000000
--- a/www-client/chromium/files/chromium-112-swiftshader.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-https://bugs.gentoo.org/904725
-https://bugs.gentoo.org/904850
-
-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>
----
-
---- 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;
-   }
-From e4dea744b7838470757f010fc2ff4b92f02b3fac Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Thu, 16 Mar 2023 13:29:54 +0100
-Subject: [PATCH] More C++20 fixes
-
-Partial backport of llvm-project patch:
-    commit 2ccf0b76bcaf0895e04f14e3ff53c59dd96f9f0f
-    Author: Evgeny Mandrikov <mandrikov@gmail.com>
-    Date:   Thu Jan 6 17:01:05 2022 +0100
-
-    Fix build failure with GCC 11 in C++20 mode
-
-    See https://wg21.link/cwg2237
-
-    Reviewed By: shafik, dexonsmith
-
-    Differential Revision: https://reviews.llvm.org/D115355
-
-Bug: chromium:819294
-Change-Id: I90d58b6fc601f9a4f615e2f6edc13a73ce848e4f
-Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71089
-Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
-Tested-by: Shahbaz Youssefi <syoussefi@google.com>
-Kokoro-Result: kokoro <noreply+kokoro@google.com>
-Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
----
-
---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/LiveInterval.h
-+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/LiveInterval.h
-@@ -718,7 +718,7 @@
-       T *P;
- 
-     public:
--      SingleLinkedListIterator<T>(T *P) : P(P) {}
-+      SingleLinkedListIterator(T *P) : P(P) {}
- 
-       SingleLinkedListIterator<T> &operator++() {
-         P = P->Next;
---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/BinaryStreamArray.h
-+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/BinaryStreamArray.h
-@@ -324,7 +324,7 @@
-   FixedStreamArrayIterator(const FixedStreamArray<T> &Array, uint32_t Index)
-       : Array(Array), Index(Index) {}
- 
--  FixedStreamArrayIterator<T>(const FixedStreamArrayIterator<T> &Other)
-+  FixedStreamArrayIterator(const FixedStreamArrayIterator<T> &Other)
-       : Array(Other.Array), Index(Other.Index) {}
-   FixedStreamArrayIterator<T> &
-   operator=(const FixedStreamArrayIterator<T> &Other) {


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

commit:     ea9fdbdfa608bbf3968f2b45f91bed951a771b52
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri May  5 23:25:52 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri May  5 23:25:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea9fdbdf

www-client/chromium: fix build with gcc-13

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

 www-client/chromium/chromium-113.0.5672.63.ebuild              |  1 +
 .../files/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch | 10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/www-client/chromium/chromium-113.0.5672.63.ebuild b/www-client/chromium/chromium-113.0.5672.63.ebuild
index 7c514d04f523..cdd81cb02473 100644
--- a/www-client/chromium/chromium-113.0.5672.63.ebuild
+++ b/www-client/chromium/chromium-113.0.5672.63.ebuild
@@ -349,6 +349,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-113-system-zlib.patch"
 		"${FILESDIR}/chromium-113-web_view_impl-cstring.patch"
 		"${FILESDIR}/chromium-113-std-monospace.patch"
+		"${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch"
 	)
 
 	if use ppc64 ; then

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
new file mode 100644
index 000000000000..28372caeb72c
--- /dev/null
+++ b/www-client/chromium/files/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch
@@ -0,0 +1,10 @@
+--- 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>


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

commit:     e6cee38fceb4d49e92468fddb0020e838041d2bb
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 20 17:42:46 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Apr 20 17:42:46 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6cee38f

www-client/chromium: fix build with GCC on ARM64

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

 www-client/chromium/chromium-112.0.5615.121.ebuild |  1 +
 .../files/chromium-112-gcc-mno-outline.patch       | 29 ++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/www-client/chromium/chromium-112.0.5615.121.ebuild b/www-client/chromium/chromium-112.0.5615.121.ebuild
index b391a12be8fd..e48dbe582783 100644
--- a/www-client/chromium/chromium-112.0.5615.121.ebuild
+++ b/www-client/chromium/chromium-112.0.5615.121.ebuild
@@ -341,6 +341,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-112-libstdc++.patch"
 		"${FILESDIR}/chromium-112-libstdc++-1.patch"
 		"${FILESDIR}/chromium-112-sql-relax.patch"
+		"${FILESDIR}/chromium-112-gcc-mno-outline.patch"
 	)
 
 	if use ppc64 ; then

diff --git a/www-client/chromium/files/chromium-112-gcc-mno-outline.patch b/www-client/chromium/files/chromium-112-gcc-mno-outline.patch
new file mode 100644
index 000000000000..9ebaf1720a90
--- /dev/null
+++ b/www-client/chromium/files/chromium-112-gcc-mno-outline.patch
@@ -0,0 +1,29 @@
+From 428afabde5f20bc91ad1166b983b9975188be737 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 07 Mar 2023 17:46:30 +0000
+Subject: [PATCH] GCC: do not disable outlining with -mno-outline
+
+GCC build fails in arm64 because -mno-outline is passed. This build
+option is only supported in Clang.
+
+Bug: 819294
+Change-Id: Ied5cf194c26fd284aa66477cf0cd381b8cd26607
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4316542
+Reviewed-by: Hans Wennborg <hans@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#1114023}
+---
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 4e6708b..6ca2924 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -1304,7 +1304,7 @@
+     configs += [ "//build/config/nacl:compiler_codegen" ]
+   }
+ 
+-  if (current_cpu == "arm64" && !is_win) {
++  if (current_cpu == "arm64" && !is_win && is_clang) {
+     # Disable outlining everywhere on arm64 except Win. For more information see
+     # crbug.com/931297 for Android and crbug.com/1410297 for iOS.
+     # TODO(crbug.com/1411363): Enable this on Windows if possible.


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

commit:     f76a08d017e0e725b96b126b9b67f07c97e20d2a
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 13 21:23:06 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Apr 13 21:23:47 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f76a08d0

www-client/chromium: add 112.0.5615.49

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

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-112.0.5615.49.ebuild  | 1250 ++++++++++++++++++++
 .../chromium/files/chromium-112-compiler.patch     |  256 ++++
 .../chromium/files/chromium-112-libstdc++-1.patch  |   59 +
 .../chromium/files/chromium-112-libstdc++.patch    |   63 +
 5 files changed, 1629 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 09b7e52ac5ce..8bcd3e105e3d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,7 @@
 DIST chromium-111-patchset-2.tar.xz 21480 BLAKE2B e59d67d261df23c110c2db0644250c20d9e1cd6b99cb9513dbd12463faad8aea8520c5b5dbbfd2187a7795f7e34ebd3379fac4c3b2b01e30ffb4451b45084866 SHA512 7a2e660a9271b9b643dce5f7522570182eb895935312446775bf7c03a4c2d50d7f95c2082cac2dd477060d03f68e5424c990f535e0b1de9f0d12ac248806d043
 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.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
 DIST chromium_111.0.5563.64-1raptor0~deb11u1.debian.tar.xz 442300 BLAKE2B ceb6691169073e1420daebba1eea1c00ab0f60786a276d116f02d8f693c542f853cc69083bb2f1dba4b2802413ba4d40591b04284a0816cbc814af99b0b9df38 SHA512 21525147a9c61de746c736b44007e57316155acdb71ba139d1b0f2f8d99ca1df7bf5087e736726f4062203e4dd20302ce3c523b9cb32309fb7ae017866f1f137

diff --git a/www-client/chromium/chromium-112.0.5615.49.ebuild b/www-client/chromium/chromium-112.0.5615.49.ebuild
new file mode 100644
index 000000000000..a0663b22f3f0
--- /dev/null
+++ b/www-client/chromium/chromium-112.0.5615.49.ebuild
@@ -0,0 +1,1250 @@
+# 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_111.0.5563.64-1raptor0~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"
+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"
+	)
+
+	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
+	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-compiler.patch b/www-client/chromium/files/chromium-112-compiler.patch
new file mode 100644
index 000000000000..8d4237379b27
--- /dev/null
+++ b/www-client/chromium/files/chromium-112-compiler.patch
@@ -0,0 +1,256 @@
+From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Tue, 15 Nov 2022 10:27:58 +0000
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 134 +++++----------------------------
+ 1 file changed, 17 insertions(+), 117 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index bd039fc..4d3759a 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -276,9 +276,7 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+     ":rustc_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+     ":compiler_deterministic",
+   ]
+@@ -529,37 +527,6 @@ config("compiler") {
+     ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+   }
+ 
+-  if (is_clang && !is_nacl && current_os != "zos") {
+-    cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-    if (save_reproducers_on_lld_crash && use_lld) {
+-      ldflags += [
+-        "-fcrash-diagnostics=all",
+-        "-fcrash-diagnostics-dir=" + clang_diagnostic_dir,
+-      ]
+-    }
+-
+-    # TODO(hans): Remove this once Clang generates better optimized debug info
+-    # by default. https://crbug.com/765793
+-    cflags += [
+-      "-mllvm",
+-      "-instcombine-lower-dbg-declare=0",
+-    ]
+-    if (!is_debug && use_thin_lto && is_a_target_toolchain) {
+-      if (is_win) {
+-        ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
+-      } else {
+-        ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
+-      }
+-    }
+-
+-    # TODO(crbug.com/1235145): Investigate why/if this should be needed.
+-    if (is_win) {
+-      cflags += [ "/clang:-ffp-contract=off" ]
+-    } else {
+-      cflags += [ "-ffp-contract=off" ]
+-    }
+-  }
+-
+   # Rust compiler setup (for either clang or rustc).
+   if (enable_rust) {
+     defines += [ "RUST_ENABLED" ]
+@@ -1301,46 +1268,6 @@ config("compiler_deterministic") {
+     }
+   }
+ 
+-  # Makes builds independent of absolute file path.
+-  if (is_clang && strip_absolute_paths_from_debug_symbols) {
+-    # If debug option is given, clang includes $cwd in debug info by default.
+-    # For such build, this flag generates reproducible obj files even we use
+-    # different build directory like "out/feature_a" and "out/feature_b" if
+-    # we build same files with same compile flag.
+-    # Other paths are already given in relative, no need to normalize them.
+-    if (is_nacl) {
+-      # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+-      cflags += [
+-        "-Xclang",
+-        "-fdebug-compilation-dir",
+-        "-Xclang",
+-        ".",
+-      ]
+-    } else {
+-      # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+-      # and -fcoverage-compilation-dir=.
+-      cflags += [ "-ffile-compilation-dir=." ]
+-      swiftflags += [ "-file-compilation-dir=." ]
+-    }
+-    if (!is_win) {
+-      # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
+-      asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+-    }
+-
+-    if (is_win && use_lld) {
+-      if (symbol_level == 2 || (is_clang && using_sanitizer)) {
+-        # Absolutize source file paths for PDB. Pass the real build directory
+-        # if the pdb contains source-level debug information and if linker
+-        # reproducibility is not critical.
+-        ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
+-      } else {
+-        # Use a fake fixed base directory for paths in the pdb to make the pdb
+-        # output fully deterministic and independent of the build directory.
+-        ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
+-      }
+-    }
+-  }
+-
+   # Tells the compiler not to use absolute paths when passing the default
+   # paths to the tools it invokes. We don't want this because we don't
+   # really need it and it can mess up the goma cache entries.
+@@ -1359,27 +1286,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 (enable_rust && defined(rustc_version)) {
+     # Similar to the above config, this is here so that all files get
+@@ -1669,7 +1575,7 @@ config("chromium_code") {
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1678,10 +1584,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.
+@@ -1690,16 +1592,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_mac) {
+       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2092,7 +1984,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.
+@@ -2137,7 +2030,8 @@ config("optimize") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2177,7 +2071,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:
+@@ -2210,7 +2105,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:
+@@ -2236,7 +2132,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
+@@ -2356,7 +2253,8 @@ config("win_pdbaltpath") {
+ }
+ 
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+   if (is_win) {
+     if (is_clang) {
+       cflags = [
+@@ -2495,7 +2393,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 = []
+@@ -2568,7 +2467,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" ]
+ 
+-- 
+2.37.4
+

diff --git a/www-client/chromium/files/chromium-112-libstdc++-1.patch b/www-client/chromium/files/chromium-112-libstdc++-1.patch
new file mode 100644
index 000000000000..36a1f94252c3
--- /dev/null
+++ b/www-client/chromium/files/chromium-112-libstdc++-1.patch
@@ -0,0 +1,59 @@
+From aaeaf2a563682f2f63196f924a842dcca42be8ef Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 07 Mar 2023 16:54:09 +0000
+Subject: [PATCH] IWYU: libstdc++ unique_ptr cast from nullptr requires declaration of type
+
+fallback_linux_ui.cc returns a nullptr as a result of several
+calls returning a std::unique_ptr of a type that has not been declared
+and that's not allowed in libstdc++ implementation.
+
+Fix build errors:
+    /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::LinuxInputMethodContext]’:
+    /usr/include/c++/12/bits/unique_ptr.h:396:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::LinuxInputMethodContext; _Dp = std::default_delete<ui::LinuxInputMethodContext>]’
+    ../../ui/linux/fallback_linux_ui.cc:35:10:   required from here
+    /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::LinuxInputMethodContext’
+       93 |         static_assert(sizeof(_Tp)>0,
+          |                       ^~~~~~~~~~~
+    /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::NavButtonProvider]’:
+    /usr/include/c++/12/bits/unique_ptr.h:396:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::NavButtonProvider; _Dp = std::default_delete<ui::NavButtonProvider>]’
+    ../../ui/linux/fallback_linux_ui.cc:133:10:   required from here
+    /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::NavButtonProvider’
+
+Bug: 957519
+Change-Id: I5e7f096003d8f5de8f5be36137ac4427799bf7a5
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4310671
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1113983}
+---
+
+diff --git a/ui/linux/BUILD.gn b/ui/linux/BUILD.gn
+index eb72461..8662261 100644
+--- a/ui/linux/BUILD.gn
++++ b/ui/linux/BUILD.gn
+@@ -52,6 +52,7 @@
+   deps = [
+     "//base",
+     "//ui/base:buildflags",
++    "//ui/base/ime/linux:linux",
+     "//ui/events:dom_keyboard_layout",
+     "//ui/gfx",
+     "//ui/native_theme",
+diff --git a/ui/linux/fallback_linux_ui.cc b/ui/linux/fallback_linux_ui.cc
+index ee3e7b9..5f5abee 100644
+--- a/ui/linux/fallback_linux_ui.cc
++++ b/ui/linux/fallback_linux_ui.cc
+@@ -5,11 +5,13 @@
+ #include "ui/linux/fallback_linux_ui.h"
+ 
+ #include "base/time/time.h"
++#include "ui/base/ime/linux/linux_input_method_context.h"
+ #include "ui/events/keycodes/dom/dom_keyboard_layout_map.h"
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/geometry/size.h"
+ #include "ui/gfx/image/image.h"
+ #include "ui/gfx/platform_font.h"
++#include "ui/linux/nav_button_provider.h"
+ #include "ui/native_theme/native_theme.h"
+ #include "ui/shell_dialogs/select_file_policy.h"
+ #include "ui/views/controls/textfield/textfield.h"

diff --git a/www-client/chromium/files/chromium-112-libstdc++.patch b/www-client/chromium/files/chromium-112-libstdc++.patch
new file mode 100644
index 000000000000..bef364e0b5e0
--- /dev/null
+++ b/www-client/chromium/files/chromium-112-libstdc++.patch
@@ -0,0 +1,63 @@
+From f2ea90d9cf667612b2913a6f30636a4773bad026 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 28 Feb 2023 18:38:25 +0000
+Subject: [PATCH] IWYU: include blink::URLLoader for unique_ptr usage in WebLocalFrameClient
+
+Recent refactor broke again libstdc++ build by not including URLLoader
+header. But the reason for that change was removing in public code
+includes of non public code, as URLLoader.
+
+To fix the problem, move the implementation exposing the problem
+to the .cc file.
+
+Fixes build error with libstdc++:
+    /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = blink::URLLoader]’:
+    /usr/include/c++/12/bits/unique_ptr.h:396:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = blink::URLLoader; _Dp = std::default_delete<blink::URLLoader>]’
+    ../../third_party/blink/public/web/web_local_frame_client.h:678:12:   required from here
+    /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘blink::URLLoader’
+
+Bug: 957519
+Change-Id: I0db2f86603fba4fe8f10d6c4370ad1ff4c9ca70b
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4276241
+Reviewed-by: Daniel Cheng <dcheng@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#1111077}
+---
+
+diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
+index d6bb896..246d2ff 100644
+--- a/third_party/blink/public/web/web_local_frame_client.h
++++ b/third_party/blink/public/web/web_local_frame_client.h
+@@ -674,9 +674,7 @@
+     return nullptr;
+   }
+ 
+-  virtual std::unique_ptr<URLLoader> CreateURLLoaderForTesting() {
+-    return nullptr;
+-  }
++  virtual std::unique_ptr<URLLoader> CreateURLLoaderForTesting();
+ 
+   virtual void OnStopLoading() {}
+ 
+diff --git a/third_party/blink/renderer/core/frame/web_local_frame_client.cc b/third_party/blink/renderer/core/frame/web_local_frame_client.cc
+index a3617af..3adcd7c 100644
+--- a/third_party/blink/renderer/core/frame/web_local_frame_client.cc
++++ b/third_party/blink/renderer/core/frame/web_local_frame_client.cc
+@@ -7,6 +7,7 @@
+ #include "mojo/public/cpp/bindings/pending_remote.h"
+ #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
+ #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
++#include "third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.h"
+ 
+ namespace blink {
+ 
+@@ -25,4 +26,9 @@
+   // have this implementation in the base class.
+   return AssociatedInterfaceProvider::GetEmptyAssociatedInterfaceProvider();
+ }
++
++std::unique_ptr<URLLoader> WebLocalFrameClient::CreateURLLoaderForTesting() {
++  return nullptr;
++}
++
+ }  // namespace blink


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

commit:     7749cc6d8c99208972c965a11ea29cdbd770c34f
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 25 11:17:07 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Jan 25 11:17:44 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7749cc6d

www-client/chromium: stable channel bump to 109.0.5414.119

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

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-109.0.5414.119.ebuild | 1250 ++++++++++++++++++++
 .../chromium/files/chromium-109-v8-icu72.patch     |  106 ++
 3 files changed, 1357 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d5ed1165e35f..86b04b072b39 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +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.38.tar.xz 1703266068 BLAKE2B 8b990eef533f8469afc6ea88c9fc70f316ccf33381fbbe30b43c89cde476a0487b201d7b07e8202bfdf94b44c2c5b184627f27225bb12ad7cef9fb505e608206 SHA512 4ad20231ce1c42d30886cfa179b154f1bd09efb61b971dc55a2aa70538a39141199f9a799c09b546c3e3501cf1981b6dd850e92e44aaa8f816ddb294fc194231

diff --git a/www-client/chromium/chromium-109.0.5414.119.ebuild b/www-client/chromium/chromium-109.0.5414.119.ebuild
new file mode 100644
index 000000000000..176c1bcbbdf8
--- /dev/null
+++ b/www-client/chromium/chromium-109.0.5414.119.ebuild
@@ -0,0 +1,1250 @@
+# 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-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/files/chromium-109-v8-icu72.patch b/www-client/chromium/files/chromium-109-v8-icu72.patch
new file mode 100644
index 000000000000..1de11c8cd1d6
--- /dev/null
+++ b/www-client/chromium/files/chromium-109-v8-icu72.patch
@@ -0,0 +1,106 @@
+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);


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

commit:     dd67ac969c0a0f780e495496ca476c40495af7dc
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 18 17:28:58 2023 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Jan 18 17:29:05 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd67ac96

www-client/chromium: drop 108.0.5359.124

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

 www-client/chromium/Manifest                       |    3 -
 www-client/chromium/chromium-108.0.5359.124.ebuild | 1242 --------------------
 .../chromium/files/chromium-107-system-zlib.patch  |   10 -
 .../chromium-108-DocumentLoader-private.patch      |   36 -
 ...8-revert-GlobalMediaControlsCastStartStop.patch |   35 -
 5 files changed, 1326 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 9735cb2ecb16..9aa5fcf6c236 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-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-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-3.tar.xz 12652 BLAKE2B ce98f5c6134d759d885fd50867559f30c05192a13195f860b2ac8e910fc75cb8a180583f7d1420cbd71c3ea4d6639d6b8d11470765333940a8d6797c26f3d712 SHA512 48bcf1704d4ada278a0904eb8f991f5ce26b5645361e32623ccee47b93316a4049e784325683978cd27bb42d5e27ffdd21a911862514909bae064b2d94be7799
@@ -8,5 +6,4 @@ DIST chromium-111-patchset-1.tar.xz 8044 BLAKE2B bd63c8a06548a39bd448ee5f0de6e17
 DIST chromium-111.0.5532.2.tar.xz 1720621720 BLAKE2B eaa86b03bdaac2c6d9bbe4846cc956d109fb803d83aba022e82c86694ac0ab4379ccc0d87cdbdbfe211169cb3c7ee374ae0068749e1fde94fdf554ad23421e48 SHA512 cc44c13d8783c3828500362e339c70baede4edd5cf144cbd45de619c09922b323e5453dd03e914c4049ca9e5a4be91334d923e92596d5e45e9783ed3ecf86cdf
 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_108.0.5359.71-2raptor0~deb11u1.debian.tar.xz 439020 BLAKE2B ef900e3978b03c7330147b338266694f2ea4bafee8a34fb871bd7548a05c9276c25e8c34dd26875ca552db758590c4e4a80ae411c2fe658e485d9dca6e55adae SHA512 99486b35c5eb718e25faaddd526970969f5d8c4c74f3c17f64f6fbe25f45a0764643bf746644b205ac27d13912f36eba6f497a0552d7d96d1af4a569d895e64c
 DIST chromium_109.0.5414.74-2raptor0~deb11u1.debian.tar.xz 445284 BLAKE2B 838df6439816d36df2e9bb9224745aa0c0a3f6c3e19ec2b29b78b8e2be8c59e8df9dde7fdba49a73ee7bdd2282016f0366500f5bd1579b870a6aab25f4bb115f SHA512 6e6523d5f2aed2d931074af1dddea7312d5c8ed09d2b143dd9309db634547c37b67ba3c905fefa67097fb44c64f4d45431eedeed7b33d8b07eb2bae73bdc7f16

diff --git a/www-client/chromium/chromium-108.0.5359.124.ebuild b/www-client/chromium/chromium-108.0.5359.124.ebuild
deleted file mode 100644
index 941cc19587f6..000000000000
--- a/www-client/chromium/chromium-108.0.5359.124.ebuild
+++ /dev/null
@@ -1,1242 +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_108.0.5359.71-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 )
-	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
-			( app-accessibility/at-spi2-atk dev-libs/atk )
-		)
-		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
-		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
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${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"
-	)
-
-	# Applied upstream, can drop on next patchset creation
-	rm "${WORKDIR}/patches/chromium-108-LabToLCH-include.patch" || die
-
-	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 "${FILESDIR}/ppc64le/fix-breakpad-compile.patch"
-			else
-				eapply "${WORKDIR}/debian/patches/${p}"
-			fi
-		done
-		eapply "${FILESDIR}/ppc64le/libpng-pdfium-compile-98.patch"
-		eapply "${FILESDIR}/ppc64le/fix-swiftshader-compile.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/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/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
-		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/files/chromium-107-system-zlib.patch b/www-client/chromium/files/chromium-107-system-zlib.patch
deleted file mode 100644
index 5ee7dccb7ab2..000000000000
--- a/www-client/chromium/files/chromium-107-system-zlib.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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/files/chromium-108-DocumentLoader-private.patch b/www-client/chromium/files/chromium-108-DocumentLoader-private.patch
deleted file mode 100644
index 1ea2116edc1c..000000000000
--- a/www-client/chromium/files/chromium-108-DocumentLoader-private.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-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;
-

diff --git a/www-client/chromium/files/chromium-108-revert-GlobalMediaControlsCastStartStop.patch b/www-client/chromium/files/chromium-108-revert-GlobalMediaControlsCastStartStop.patch
deleted file mode 100644
index 650e94816f49..000000000000
--- a/www-client/chromium/files/chromium-108-revert-GlobalMediaControlsCastStartStop.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From b58f0f2725a8c1a8a131f9984b5fd53b54119dba Mon Sep 17 00:00:00 2001
-From: Muyao Xu <muyaoxu@google.com>
-Date: Thu, 20 Jan 2022 23:46:21 +0000
-Subject: [PATCH] [Zenith] Enable GlobalMediaControlsCastStartStop flag by
- default
-
-The feature is rolled out to 100% stable through finch for M96+.
-This CL enables it by default and fixes some unit tests failures.
-
-Bug: 1287242, 1287305
-Change-Id: I7e5c9625b77379fef253c41ef292a0dd6fc366fb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3388416
-Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
-Commit-Queue: Muyao Xu <muyaoxu@google.com>
-Cr-Commit-Position: refs/heads/main@{#961658}
----
- chrome/browser/media/router/media_router_feature.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
-index 862329e..47c8912 100644
---- a/chrome/browser/media/router/media_router_feature.cc
-+++ b/chrome/browser/media/router/media_router_feature.cc
-@@ -54,7 +54,7 @@ BASE_FEATURE(kGlobalMediaControlsCastStartStop,
- #else
- BASE_FEATURE(kGlobalMediaControlsCastStartStop,
-              "GlobalMediaControlsCastStartStop",
--             base::FEATURE_ENABLED_BY_DEFAULT);
-+             base::FEATURE_DISABLED_BY_DEFAULT);
- #endif  // BUILDFLAG(IS_CHROMEOS)
- 
- #endif  // !BUILDFLAG(IS_ANDROID)
--- 
-2.35.1
-


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

commit:     447c9115b8fd3362ce51122378a360409143e36b
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 17 22:03:29 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Dec 17 22:05:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=447c9115

www-client/chromium: beta channel bump to 109.0.5414.46

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

 www-client/chromium/Manifest                       |    2 +
 www-client/chromium/chromium-109.0.5414.46.ebuild  | 1235 ++++++++++++++++++++
 .../files/chromium-109-system-openh264.patch       |   20 +
 .../chromium/files/chromium-109-system-zlib.patch  |   10 +
 4 files changed, 1267 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 00d64b94b349..34dec0fcc6a0 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +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.0.5414.46.tar.xz 1748161204 BLAKE2B 0c5da147e6647cd486419131ab04699db8adf2ed06c5d1fa01a1c97027a8667ebc035ad91f308e7c0f49803476126bc0cf019f3b38c33e446e673ea1eb52f4d0 SHA512 d847766f417d1206b62e0354ca255ac5b75b974b2b1696eaed99f8a7af3ce14b71f1415d752a92d73815a8c648c8709685fbb4d29d6584015c01a86a60387c43
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
 DIST chromium_108.0.5359.71-2raptor0~deb11u1.debian.tar.xz 439020 BLAKE2B ef900e3978b03c7330147b338266694f2ea4bafee8a34fb871bd7548a05c9276c25e8c34dd26875ca552db758590c4e4a80ae411c2fe658e485d9dca6e55adae SHA512 99486b35c5eb718e25faaddd526970969f5d8c4c74f3c17f64f6fbe25f45a0764643bf746644b205ac27d13912f36eba6f497a0552d7d96d1af4a569d895e64c

diff --git a/www-client/chromium/chromium-109.0.5414.46.ebuild b/www-client/chromium/chromium-109.0.5414.46.ebuild
new file mode 100644
index 000000000000..b3feb1622ded
--- /dev/null
+++ b/www-client/chromium/chromium-109.0.5414.46.ebuild
@@ -0,0 +1,1235 @@
+# 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
+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="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://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.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 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
+		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
+
+	# 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
+
+	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-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/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/files/chromium-109-system-openh264.patch b/www-client/chromium/files/chromium-109-system-openh264.patch
new file mode 100644
index 000000000000..6be816b305b4
--- /dev/null
+++ b/www-client/chromium/files/chromium-109-system-openh264.patch
@@ -0,0 +1,20 @@
+--- 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-109-system-zlib.patch b/www-client/chromium/files/chromium-109-system-zlib.patch
new file mode 100644
index 000000000000..5e8b2d80a9a8
--- /dev/null
+++ b/www-client/chromium/files/chromium-109-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 "third_party/zlib/contrib/minizip/ioapi.h"
+ 
+ namespace tflite {
+ namespace metadata {


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

commit:     fa18c856abd39f116d01df7ad4d2c5899db00b1c
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Oct  9 11:47:31 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Oct  9 11:48:45 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa18c856

www-client/chromium: dev channel bump to 108.0.5343.2

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

 www-client/chromium/Manifest                       |  4 +-
 ....5327.0.ebuild => chromium-108.0.5343.2.ebuild} | 34 +++++-----
 .../files/chromium-108-EnumTable-crash.patch       | 76 ++++++++++++++++++++++
 ...8-revert-GlobalMediaControlsCastStartStop.patch | 35 ++++++++++
 4 files changed, 129 insertions(+), 20 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a59f7af5c078..9124f9a4e521 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,6 +4,6 @@ DIST chromium-106.0.5249.61.tar.xz 1621965008 BLAKE2B f15043eeefb898809adf580c6e
 DIST chromium-106.0.5249.91.tar.xz 1611228868 BLAKE2B 75703b23a0538bdae74b2ac42e36e6d13297e3b6aaead6e5a8b97ed8f2cdd2d5883752c6d90f13fd1c2fb68828558f269c0c4f7ece4587de30e2ea8d878a9073 SHA512 741e3a3331a7e3f666bdbaa16cc8a1d829d73396bd34cb8f5f030e7704970dd5b5c4e274a1f69d05c1a9cfac148bc7740f56648c53bb20b782e6edd9b248a92c
 DIST chromium-107-patchset-1.tar.xz 5736 BLAKE2B 581ca307d63635ef91aaa907aeebb8c735be6d6bbfcc3fe064fed7531b8848b5d918e017031ee606ed3bd8f0fc23aa6d2f8af4b36d33483dbeee2b5c8eacac82 SHA512 acbfb41c31a510a689cad3b0686e24925b018bd7a2a8f56f74b730dc36d878c266a11b3bb76b131e66f7b859f483ff00e16cbaae1b2b6944010c7396310c03b8
 DIST chromium-107.0.5304.29.tar.xz 1688306728 BLAKE2B 2e00ce9cdfe41ed20004ccdf11f7d0f5824f1b23ac706e18c3891ff189983815f1ccbd26e1a12862db0688f6bc045fcf49d7694043883a608b182994cd8f2cec SHA512 871c373b44b18167126deef82ec835e33772c27d5c9d89585a1752efdcade8696c3be5d2735999838b13e3ce2e06d431f30f3591e861d1dcd7a80281817851eb
-DIST chromium-108-patchset-1.tar.xz 6344 BLAKE2B d5febda6415d0573d86f1c85dcf4449ab63633605b8d3cb5815bee0ed26dba8348554f8c7e06eb0450932c1062d388d5ad8817ef698afeb978bce1a98fcb3c5b SHA512 d5f47692388c66099d6af75c781866bc45e05ffb7fa91c354243fcd1dd83f5de3279706809b3f65039e07d2c3b03d86b7dadcf6d14d93d9aa53562f1b8318b01
-DIST chromium-108.0.5327.0.tar.xz 1672115480 BLAKE2B c92636436fb8017d4a6b5e7daa7518384149ea6478998e511dd04e17c1cc788cfa2fe5484c1f732e134d4f351fa9f37f68bab306904307cf2de5158f825a5efe SHA512 a073b08ea7cff74440510c08cc90105a80f91f8bdf49e74de9f048be54821a7ef246078775260ffeff00c925a849d9958c0643e9bdc1f31edc798d4bb0928efa
+DIST chromium-108-patchset-2.tar.xz 6480 BLAKE2B 2a40bb741fdd305b3525b790f82c2b36f6c909680788527a31aa2a11f519ff630aa12ffe7c53553b717f1909978c77e7db07a02a86c8e7d12d63375402802d7a SHA512 3fe182f0f928baaf0f5521efa8763080de765240b5608d5126e84e49335eb5edc788ab406aa71f5fa97c371afe1f6808e93e2e082c7f65169b5f157ff6c3e00b
+DIST chromium-108.0.5343.2.tar.xz 1669214708 BLAKE2B e022bb908b15a5ae645d23cc5ab1e268ab87b77af3ae9ac352f6dc2fc9ba36f9e212cd53f4e3fdb18bb114f89ffada3f0fbee2b2fd46b6824fccaa68e21d930a SHA512 ff74eae98a44ebfc77a729ee65b4d338fcc39f04f2168247eed039d5c19c945d90c2b6aa5a12ca96d493c5116c2dcf9c959c74ffe2dc25ea6717176f699342b2
 DIST chromium-profiler-0.1.tar 269066240 BLAKE2B 6897387b63ff9a724b67f2e8799fe803dc75da376da809e752d19d6f5cf98bd84ac24161d07ac4a967577279e9ad5a8a46f0825332a7ee933a27693d6dc95611 SHA512 3fb6132599d28455d1b5c04d856ea7623e49b0b0b96f021c31d0952c4ba57d69d0a1cae6f0b91470a235221c89cc0d3bb38303ff02594ed0739712e6e2f8dbcc

diff --git a/www-client/chromium/chromium-108.0.5327.0.ebuild b/www-client/chromium/chromium-108.0.5343.2.ebuild
similarity index 98%
rename from www-client/chromium/chromium-108.0.5327.0.ebuild
rename to www-client/chromium/chromium-108.0.5343.2.ebuild
index c7fa92deec98..c9925bfbc5d4 100644
--- a/www-client/chromium/chromium-108.0.5327.0.ebuild
+++ b/www-client/chromium/chromium-108.0.5343.2.ebuild
@@ -12,11 +12,11 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
 
 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
+inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils 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="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
@@ -167,7 +167,7 @@ BDEPEND="
 		dev-python/setuptools[${PYTHON_USEDEP}]
 	')
 	>=app-arch/gzip-1.7
-	libcxx? ( >=sys-devel/clang-12 )
+	libcxx? ( >=sys-devel/clang-13 )
 	lto? ( $(depend_clang_llvm_versions 13 14 15) )
 	pgo? (
 		>=dev-python/selenium-3.141.0
@@ -190,7 +190,7 @@ BDEPEND="
 : ${CHROMIUM_FORCE_CLANG=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-12"
+	BDEPEND+=" >=sys-devel/clang-13"
 fi
 
 if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
@@ -254,7 +254,7 @@ pre_build_checks() {
 
 		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"
+			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"
@@ -262,8 +262,8 @@ pre_build_checks() {
 		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"
+			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
@@ -296,7 +296,7 @@ pkg_pretend() {
 	pre_build_checks
 
 	if use headless; then
-		local headless_unused_flags=("cups" "kerberos" "pulseaudio" "vaapi" "wayland")
+		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
@@ -322,9 +322,10 @@ src_prepare() {
 	local PATCHES=(
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
-		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
 		"${FILESDIR}/chromium-107-system-zlib.patch"
+		"${FILESDIR}/chromium-108-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-108-revert-GlobalMediaControlsCastStartStop.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"
@@ -433,7 +434,6 @@ src_prepare() {
 		third_party/fusejs
 		third_party/fxdiv
 		third_party/highway
-		third_party/libgifcodec
 		third_party/liburlpattern
 		third_party/libzip
 		third_party/gemmlowp
@@ -591,18 +591,14 @@ src_prepare() {
 			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 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 )
@@ -926,7 +922,7 @@ chromium_configure() {
 		myconf_gn+=" use_system_libdrm=true"
 		myconf_gn+=" use_system_minigbm=true"
 		myconf_gn+=" use_xkbcommon=true"
-		use qt5 && export PATH="${PATH}:/usr/$(get_libdir)/qt5/bin"
+		use qt5 && export PATH="${PATH}:$(qt5_get_bindir)"
 		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)"
@@ -1073,6 +1069,8 @@ src_compile() {
 
 	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;' \

diff --git a/www-client/chromium/files/chromium-108-EnumTable-crash.patch b/www-client/chromium/files/chromium-108-EnumTable-crash.patch
new file mode 100644
index 000000000000..661ec33c1d0d
--- /dev/null
+++ b/www-client/chromium/files/chromium-108-EnumTable-crash.patch
@@ -0,0 +1,76 @@
+diff --git a/components/media_router/common/providers/cast/channel/enum_table.h b/components/media_router/common/providers/cast/channel/enum_table.h
+index 842553a..89de703 100644
+--- a/components/media_router/common/providers/cast/channel/enum_table.h
++++ b/components/media_router/common/providers/cast/channel/enum_table.h
+@@ -8,6 +8,7 @@
+ #include <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-108-revert-GlobalMediaControlsCastStartStop.patch b/www-client/chromium/files/chromium-108-revert-GlobalMediaControlsCastStartStop.patch
new file mode 100644
index 000000000000..650e94816f49
--- /dev/null
+++ b/www-client/chromium/files/chromium-108-revert-GlobalMediaControlsCastStartStop.patch
@@ -0,0 +1,35 @@
+From b58f0f2725a8c1a8a131f9984b5fd53b54119dba Mon Sep 17 00:00:00 2001
+From: Muyao Xu <muyaoxu@google.com>
+Date: Thu, 20 Jan 2022 23:46:21 +0000
+Subject: [PATCH] [Zenith] Enable GlobalMediaControlsCastStartStop flag by
+ default
+
+The feature is rolled out to 100% stable through finch for M96+.
+This CL enables it by default and fixes some unit tests failures.
+
+Bug: 1287242, 1287305
+Change-Id: I7e5c9625b77379fef253c41ef292a0dd6fc366fb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3388416
+Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
+Commit-Queue: Muyao Xu <muyaoxu@google.com>
+Cr-Commit-Position: refs/heads/main@{#961658}
+---
+ chrome/browser/media/router/media_router_feature.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
+index 862329e..47c8912 100644
+--- a/chrome/browser/media/router/media_router_feature.cc
++++ b/chrome/browser/media/router/media_router_feature.cc
+@@ -54,7 +54,7 @@ BASE_FEATURE(kGlobalMediaControlsCastStartStop,
+ #else
+ BASE_FEATURE(kGlobalMediaControlsCastStartStop,
+              "GlobalMediaControlsCastStartStop",
+-             base::FEATURE_ENABLED_BY_DEFAULT);
++             base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+ #endif  // !BUILDFLAG(IS_ANDROID)
+-- 
+2.35.1
+


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

commit:     362c0284fd9a43f87777977ae3402548a238bbdc
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  6 09:11:19 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Oct  6 09:12:48 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=362c0284

www-client/chromium: stable channel bump to 106.0.5249.103

Workaround crash with global media controls and casting.

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

 www-client/chromium/Manifest                       |    1 +
 www-client/chromium/chromium-106.0.5249.103.ebuild | 1190 ++++++++++++++++++++
 ...6-revert-GlobalMediaControlsCastStartStop.patch |   32 +
 3 files changed, 1223 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a3d6622b696d..2e3762eb3cbd 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,5 @@
 DIST chromium-106-patchset-3.tar.xz 6672 BLAKE2B 4c56702e84c761b5b4e5ea84a3e9bed0c9c81cbf448998c51b149a5f3b745944e8c824384a879798fba284eb96d76ebbc22ce038971daf9a574ea02d52f204b5 SHA512 3e58bf2811a6674bbe04ab12c0404faad5e6b17c7a5de213e661a7cc34dd4c3329b8736e3b1ffd43a442eae4ad132ff05b042ef904d451bbe0c9a76554499b61
+DIST chromium-106.0.5249.103.tar.xz 1611232904 BLAKE2B 8c16faf7b450a9e55e19c607afc7252d6fb013d1735ff1fe8e4d54953fcc3bf7a5a5416ae0bbdf8cb15074841a63ad4485e1ff24fdf557e5b76bafd483f7418d SHA512 a01d34473e2fda00389aceb7a1024573c4346423e7a5de3398508130bf9f2f1aff22c23bbd613cc2bb46f0a907f19887b28decdb9d57bccdb5d3f7a14d1866db
 DIST chromium-106.0.5249.61.tar.xz 1621965008 BLAKE2B f15043eeefb898809adf580c6ef9258f9512ec29f9f0688865c226b13a47d6dd8733a51a64c6a0e5ba0b67e5d5b54419e5264401fa4ef96112dcbdfb70c4aa17 SHA512 472754e11472d4b6d7545d3dfb784b3ca6ecb951753e6e966b5a2ee18aab35e185872d55bece98a99d4d2c2d1ef38e07a29a4d6989e5a287046108100a799ac1
 DIST chromium-106.0.5249.91.tar.xz 1611228868 BLAKE2B 75703b23a0538bdae74b2ac42e36e6d13297e3b6aaead6e5a8b97ed8f2cdd2d5883752c6d90f13fd1c2fb68828558f269c0c4f7ece4587de30e2ea8d878a9073 SHA512 741e3a3331a7e3f666bdbaa16cc8a1d829d73396bd34cb8f5f030e7704970dd5b5c4e274a1f69d05c1a9cfac148bc7740f56648c53bb20b782e6edd9b248a92c
 DIST chromium-107-patchset-1.tar.xz 5736 BLAKE2B 581ca307d63635ef91aaa907aeebb8c735be6d6bbfcc3fe064fed7531b8848b5d918e017031ee606ed3bd8f0fc23aa6d2f8af4b36d33483dbeee2b5c8eacac82 SHA512 acbfb41c31a510a689cad3b0686e24925b018bd7a2a8f56f74b730dc36d878c266a11b3bb76b131e66f7b859f483ff00e16cbaae1b2b6944010c7396310c03b8

diff --git a/www-client/chromium/chromium-106.0.5249.103.ebuild b/www-client/chromium/chromium-106.0.5249.103.ebuild
new file mode 100644
index 000000000000..4075c12b6a87
--- /dev/null
+++ b/www-client/chromium/chromium-106.0.5249.103.ebuild
@@ -0,0 +1,1190 @@
+# 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=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="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
+	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-core-2.46.0:2
+			( app-accessibility/at-spi2-atk dev-libs/atk )
+		)
+		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-105-swiftshader-no-wayland.patch"
+		"${FILESDIR}/chromium-106-python3_11.patch"
+		"${FILESDIR}/chromium-106-revert-GlobalMediaControlsCastStartStop.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/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/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/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-106-revert-GlobalMediaControlsCastStartStop.patch b/www-client/chromium/files/chromium-106-revert-GlobalMediaControlsCastStartStop.patch
new file mode 100644
index 000000000000..5b28ff461bb1
--- /dev/null
+++ b/www-client/chromium/files/chromium-106-revert-GlobalMediaControlsCastStartStop.patch
@@ -0,0 +1,32 @@
+From b58f0f2725a8c1a8a131f9984b5fd53b54119dba Mon Sep 17 00:00:00 2001
+From: Muyao Xu <muyaoxu@google.com>
+Date: Thu, 20 Jan 2022 23:46:21 +0000
+Subject: [PATCH] [Zenith] Enable GlobalMediaControlsCastStartStop flag by
+ default
+
+The feature is rolled out to 100% stable through finch for M96+.
+This CL enables it by default and fixes some unit tests failures.
+
+Bug: 1287242, 1287305
+Change-Id: I7e5c9625b77379fef253c41ef292a0dd6fc366fb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3388416
+Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
+Commit-Queue: Muyao Xu <muyaoxu@google.com>
+Cr-Commit-Position: refs/heads/main@{#961658}
+---
+ chrome/browser/media/router/media_router_feature.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
+index dcb025a..f7ea08a 100644
+--- a/chrome/browser/media/router/media_router_feature.cc
++++ b/chrome/browser/media/router/media_router_feature.cc
+@@ -48,7 +48,7 @@ const base::Feature kGlobalMediaControlsCastStartStop{
+     "GlobalMediaControlsCastStartStop", base::FEATURE_DISABLED_BY_DEFAULT};
+ #else
+ const base::Feature kGlobalMediaControlsCastStartStop{
+-    "GlobalMediaControlsCastStartStop", base::FEATURE_ENABLED_BY_DEFAULT};
++    "GlobalMediaControlsCastStartStop", base::FEATURE_DISABLED_BY_DEFAULT};
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+ #endif  // !BUILDFLAG(IS_ANDROID)


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

commit:     b405ff8995606331c646596b7c7d7850fccead51
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 22 18:17:04 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Sep 22 18:17:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b405ff89

www-client/chromium: drop 104.0.5112.101

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

 www-client/chromium/Manifest                       |    2 -
 www-client/chromium/chromium-104.0.5112.101.ebuild | 1194 --------------------
 .../chromium-104-swiftshader-no-wayland.patch      |   52 -
 .../chromium/files/chromium-104-v8-neon.patch      |   72 --
 4 files changed, 1320 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b1077564cff6..b2a4d87b53a7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-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-105-patchset-1.tar.xz 9116 BLAKE2B 7728b83899e19b3c0ba4a69c660b68af7ea549a0144c15ab9fa972001441d9d145de20b7a1bafabf2b0667335b7436f6374c9934d4433160805c31bc743e867e SHA512 8f97aecf7b24c3f676bc74b88382dc4a5d967a090a4b4890971cb342973b0a20fd563c658b1c3fdaf036e830317d97470143ab78b28f336b315d491217368a81
 DIST chromium-105.0.5195.102.tar.xz 1597977496 BLAKE2B dada382717f8d48c87f586ba190aa4b4dff32929d70efe54dc091e42087b6f1744d3fdc16d9f601674fda28f5146808f0de419dec95f5ebfcd2b61fb62db0ef6 SHA512 a5b569e1a019863cd27e03b7e834ecef284e170a41f8ff29b9d22101a45474b5157720e52e7f7438a217b8b00707bd3c414c83257c18f2d9f4d5ee46e2e06e9e
 DIST chromium-106-patchset-1.tar.xz 5660 BLAKE2B b1003aa49aed07ac097607e67cb48bab11b8790c6b4c8f241bb8677baff372771b76076195713164ee71c81b8211fc400e52598b63a3cc03ff7a32ef5d1b0226 SHA512 7eb2818a8449cb2c90198e2d7f228adaed4c7c50de1833ebf59ff895512bd033d3a55398349f1ac797661d1d0b3c201b74b54f4b1d4e375e280795a4a20ba5aa

diff --git a/www-client/chromium/chromium-104.0.5112.101.ebuild b/www-client/chromium/chromium-104.0.5112.101.ebuild
deleted file mode 100644
index 200c78ad9df4..000000000000
--- a/www-client/chromium/chromium-104.0.5112.101.ebuild
+++ /dev/null
@@ -1,1194 +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="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://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="13G"
-	if use lto || use pgo; then
-		CHECKREQS_MEMORY="9G"
-		CHECKREQS_DISK_BUILD="12G"
-		tc-is-cross-compiler && CHECKREQS_DISK_BUILD="15G"
-		use pgo && CHECKREQS_DISK_BUILD="19G"
-	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-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"
-	)
-
-	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/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/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/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/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
-		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 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 )
-	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\")"
-	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-swiftshader-no-wayland.patch b/www-client/chromium/files/chromium-104-swiftshader-no-wayland.patch
deleted file mode 100644
index 75f78f36bc3d..000000000000
--- a/www-client/chromium/files/chromium-104-swiftshader-no-wayland.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- a/third_party/swiftshader/src/Vulkan/BUILD.gn
-+++ b/third_party/swiftshader/src/Vulkan/BUILD.gn
-@@ -16,14 +16,22 @@ import("//build_overrides/build.gni")
- import("../swiftshader.gni")
- import("vulkan.gni")
- 
-+if (is_linux) {
-+  import("//build/config/ozone.gni")
-+}
-+
- # Need a separate config to ensure the warnings are added to the end.
- config("swiftshader_libvulkan_private_config") {
-   if (is_linux) {
-     defines = [
-       "VK_USE_PLATFORM_XCB_KHR",
--      "VK_USE_PLATFORM_WAYLAND_KHR",
-       "VK_EXPORT=__attribute__((visibility(\"default\")))",
-     ]
-+    if (ozone_platform_wayland) {
-+      defines += [
-+        "VK_USE_PLATFORM_WAYLAND_KHR",
-+      ]
-+    }
-   } else if (is_chromeos) {
-     defines = [
-       "VK_EXPORT=__attribute__((visibility(\"default\")))",
---- a/third_party/swiftshader/src/WSI/BUILD.gn
-+++ b/third_party/swiftshader/src/WSI/BUILD.gn
-@@ -42,15 +42,19 @@ swiftshader_source_set("WSI") {
- 
-   if (is_linux) {
-     sources += [
--      "WaylandSurfaceKHR.cpp",
--      "WaylandSurfaceKHR.hpp",
-       "XcbSurfaceKHR.cpp",
-       "XcbSurfaceKHR.hpp",
--      "libWaylandClient.cpp",
--      "libWaylandClient.hpp",
-       "libXCB.cpp",
-       "libXCB.hpp",
-     ]
-+    if (ozone_platform_wayland) {
-+      sources += [
-+        "WaylandSurfaceKHR.cpp",
-+        "WaylandSurfaceKHR.hpp",
-+        "libWaylandClient.cpp",
-+        "libWaylandClient.hpp",
-+      ]
-+    }
-   }
- 
-   if (is_win) {

diff --git a/www-client/chromium/files/chromium-104-v8-neon.patch b/www-client/chromium/files/chromium-104-v8-neon.patch
deleted file mode 100644
index ee573f8862e6..000000000000
--- a/www-client/chromium/files/chromium-104-v8-neon.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2022-08-21 13:04 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2022-08-21 13:04 UTC (permalink / raw
  To: gentoo-commits

commit:     60b1fdbbf66574ea6c415f7495ef9ebf086e7a08
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 21 13:03:26 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Aug 21 13:04:01 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60b1fdbb

www-client/chromium: dev channel bump to 106.0.5245.0

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

 www-client/chromium/Manifest                       |    2 +
 www-client/chromium/chromium-106.0.5245.0.ebuild   | 1188 ++++++++++++++++++++
 .../chromium/files/chromium-106-python3_11.patch   |   11 +
 3 files changed, 1201 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 7b9d49d68e0d..0c9b31069265 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,4 +2,6 @@ DIST chromium-104-patchset-2.tar.xz 6168 BLAKE2B 57e9f2090315d2fa9baa0d285e40fd7
 DIST chromium-104.0.5112.101.tar.xz 1510110428 BLAKE2B 33b5ac2339d88e03096f3ca8cba9b388eeea2f120ab137a38d3e6d0c03315136cfb9f01a4c7b52b5eb7e78921d00a502dfcab3c0cf167074fbc197490fd3866b SHA512 a955cee81e983212c27a972db8e4857000e626b5e85ce07db71b7f19a4f1a10b675fb4d3df055265681670b4166dc96a3b597a00cf60b837016be9c81e6972b1
 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-106-patchset-1.tar.xz 5660 BLAKE2B b1003aa49aed07ac097607e67cb48bab11b8790c6b4c8f241bb8677baff372771b76076195713164ee71c81b8211fc400e52598b63a3cc03ff7a32ef5d1b0226 SHA512 7eb2818a8449cb2c90198e2d7f228adaed4c7c50de1833ebf59ff895512bd033d3a55398349f1ac797661d1d0b3c201b74b54f4b1d4e375e280795a4a20ba5aa
+DIST chromium-106.0.5245.0.tar.xz 1610761832 BLAKE2B 7e22bbfdaf4273e13576a03803a7f6a6b67ce5b4db337ee9274d314691cc59ffba6370fc12a89ddc516b221f8632b78570d25ad98e246a2730cad30c30ef8d95 SHA512 479db4df69731692e7093ca48e44e2eb9e9e83d82ddb4e6f13556a9b29781571f4455aed9b6a32c498472322ced5976f86ea679b68cde138a665fed7caa3ccc2
 DIST chromium-profiler-0.1.tar 269066240 BLAKE2B 6897387b63ff9a724b67f2e8799fe803dc75da376da809e752d19d6f5cf98bd84ac24161d07ac4a967577279e9ad5a8a46f0825332a7ee933a27693d6dc95611 SHA512 3fb6132599d28455d1b5c04d856ea7623e49b0b0b96f021c31d0952c4ba57d69d0a1cae6f0b91470a235221c89cc0d3bb38303ff02594ed0739712e6e2f8dbcc

diff --git a/www-client/chromium/chromium-106.0.5245.0.ebuild b/www-client/chromium/chromium-106.0.5245.0.ebuild
new file mode 100644
index 000000000000..98e38de570c2
--- /dev/null
+++ b/www-client/chromium/chromium-106.0.5245.0.ebuild
@@ -0,0 +1,1188 @@
+# 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=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/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 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="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-106-python3_11.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/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/ipcz
+		third_party/jinja2
+		third_party/jsoncpp
+		third_party/jstemplate
+		third_party/khronos
+		third_party/leveldatabase
+		third_party/libaddressinput
+		third_party/libaom
+		third_party/libaom/source/libaom/third_party/fastfeat
+		third_party/libaom/source/libaom/third_party/vector
+		third_party/libaom/source/libaom/third_party/x86inc
+		third_party/libavif
+		third_party/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-106-python3_11.patch b/www-client/chromium/files/chromium-106-python3_11.patch
new file mode 100644
index 000000000000..795f48547490
--- /dev/null
+++ b/www-client/chromium/files/chromium-106-python3_11.patch
@@ -0,0 +1,11 @@
+--- a/tools/grit/grit/util.py
++++ b/tools/grit/grit/util.py
+@@ -209,7 +209,7 @@ def ReadFile(filename, encoding):
+     mode = 'rb'
+     encoding = None
+   else:
+-    mode = 'rU'
++    mode = 'r'
+ 
+   with io.open(filename, mode, encoding=encoding) as f:
+     return f.read()


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

commit:     86fadaf884374edcf34226ea00e8f59fd24f42f6
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 28 06:51:46 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Jun 28 06:51:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86fadaf8

www-client/chromium: security cleanup

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

 www-client/chromium/Manifest                       |    3 -
 www-client/chromium/chromium-102.0.5005.115.ebuild | 1034 --------------------
 www-client/chromium/chromium-102.0.5005.61.ebuild  | 1029 -------------------
 .../files/chromium-101-libxml-unbundle.patch       |   10 -
 .../files/chromium-102-i3-tab-dragging-fix.patch   |   70 --
 .../files/chromium-97-arm-tflite-cast.patch        |   26 -
 6 files changed, 2172 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ba6e07304e93..5ad994f24952 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,3 @@
-DIST chromium-102-patchset-6.tar.xz 4780 BLAKE2B c59d23779fd769176e1cd92884dd259e5d37aaff746f7d72274e784f6467940226adea1a1f3921b0c49e402fa320b99a8ea995a3e1ffe881d7a8146aeb2b95e5 SHA512 dbed8e41cb7d2a0f9dd9be9a10b162e2258f016a23340c2ff0de9d73ef067342e63e77bd295e28d1e37fdead5ee52890e6ad143023225bfaff4c4c4a840b4619
-DIST chromium-102.0.5005.115.tar.xz 1461900356 BLAKE2B c886967fa9ee2d093f7a5456613c1b0b9e7dfb958f9bef16429cc66eba0e0c26224ad036d690beb230027a92717586ac11ace937920b4c52380ad54134230002 SHA512 37f7789a3fe1d3ffc741fce346b4de25cec6fb21106a3013283a273300409b16115d193036f168a46a6524043a9ed5d4d0276ad1ad469cc347659fa20b678426
-DIST chromium-102.0.5005.61.tar.xz 1433350708 BLAKE2B 7130b2c9dbc67783499003fd98f95e050bac3580e9dd6c9f4fee320e9eed876cd8c3ec29d9e9f23c78c159b1b622fbe0511750baeb6f8117f176612e1571747f SHA512 4b5d48debafef0a38105e259f97eac6e25eae1147ce67e357c3ce1e8e7700950af63117ff104b71cfbdfcaa0b31925d1b686ab1be6c52b32dad819c7e38f1846
 DIST chromium-103-patchset-4.tar.xz 7220 BLAKE2B 3dc9670be01d4bbfd24e8d305ea72e6bd911062a9a012c7548fca76ec34998b54ff31ef0118be5db9fdde3839365103cb06b29ff2ab167ad4313b4b64cba3a63 SHA512 54fb3600bb42ffcd6168f9741432879877bb5d206c11b3874249faaaff13288bffd4e7336f055c0c619efba02aa694de6abde394a6964c0ff6b33d9e3aed1691
 DIST chromium-103.0.5060.53.tar.xz 1470748636 BLAKE2B 71f4e265afbe655ec41b1f2f8d46c8196b11d86f04fff5604b00167dd13c357058e7a60e8cb0f512a6a3ee32cd52421a5ce51dc0ad4d9e92d79949b5f84a5b64 SHA512 6a312f85e4fda49fc63b1b6bc74b1d6ea5be5a9db98f22c88ab0394968399df49daf1dfab19922b69a04a5afacc16eb9aa3f8af350f4cb1d2b0824c74efcf835
 DIST chromium-104-patchset-2.tar.xz 6168 BLAKE2B 57e9f2090315d2fa9baa0d285e40fd7809b35a897fba7684672d04850c2b59ea1bc11383654a8178ece2d4baa9bb2e248898d2435618b9e8a995461d6e92ac53 SHA512 f23effc604051c18acfad3bfb974efd4aa675b84135f4eb95e0dd97261dcc9099f283a8015854c375499370f4155bb9fad51fca59555ec2f41f2d7ab90be7208

diff --git a/www-client/chromium/chromium-102.0.5005.115.ebuild b/www-client/chromium/chromium-102.0.5005.115.ebuild
deleted file mode 100644
index f6aec029a381..000000000000
--- a/www-client/chromium/chromium-102.0.5005.115.ebuild
+++ /dev/null
@@ -1,1034 +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="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 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="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"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="amd64 ~arm64"
-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 !libcxx )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/gdk-pixbuf:2
-	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:=
-	virtual/opengl
-"
-
-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:=
-	!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] )
-		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? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		cups? ( >=net-print/cups-1.3.11:= )
-		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/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?] )
-	)
-"
-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-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() {
-	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 || 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
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="10G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="13G"
-	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
-
-	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-97-arm-tflite-cast.patch"
-		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-101-libxml-unbundle.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/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/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/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/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/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/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 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 )
-	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
-}
-
-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 ]] || 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 || use libcxx; 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\""
-		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 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 [[ $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"
-	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_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"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	else
-		myconf_gn+=" ozone_platform=\"x11\""
-	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=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
-
-	# 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_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 && ! 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-102.0.5005.61.ebuild b/www-client/chromium/chromium-102.0.5005.61.ebuild
deleted file mode 100644
index b6f0dd7d6b30..000000000000
--- a/www-client/chromium/chromium-102.0.5005.61.ebuild
+++ /dev/null
@@ -1,1029 +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="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 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="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"
-
-LICENSE="BSD"
-SLOT="0/stable"
-KEYWORDS="amd64 arm64"
-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 !libcxx )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/gdk-pixbuf:2
-	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:=
-	virtual/opengl
-"
-
-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:=
-	!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] )
-		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? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		cups? ( >=net-print/cups-1.3.11:= )
-		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/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?] )
-	)
-"
-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-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() {
-	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 || 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
-		fi
-	fi
-
-	# Check build requirements, bug #541816 and bug #471810 .
-	CHECKREQS_MEMORY="4G"
-	CHECKREQS_DISK_BUILD="10G"
-	tc-is-cross-compiler && CHECKREQS_DISK_BUILD="13G"
-	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
-
-	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-97-arm-tflite-cast.patch"
-		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${FILESDIR}/chromium-101-libxml-unbundle.patch"
-		"${FILESDIR}/chromium-102-i3-tab-dragging-fix.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/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/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/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/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/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/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 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 )
-	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
-}
-
-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 ]] || 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 || use libcxx; 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\""
-		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 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 [[ $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"
-	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_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"
-			myconf_gn+=" use_system_minigbm=true"
-			myconf_gn+=" use_xkbcommon=true"
-			myconf_gn+=" ozone_platform=\"wayland\""
-		fi
-	else
-		myconf_gn+=" ozone_platform=\"x11\""
-	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=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 && ! 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-101-libxml-unbundle.patch b/www-client/chromium/files/chromium-101-libxml-unbundle.patch
deleted file mode 100644
index 5699bc8f8eaf..000000000000
--- a/www-client/chromium/files/chromium-101-libxml-unbundle.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/build/linux/unbundle/libxml.gn
-+++ b/build/linux/unbundle/libxml.gn
-@@ -19,6 +19,7 @@ static_library("libxml_utils") {
-     ":xml_reader",
-     ":xml_writer",
-     "//base/test:test_support",
-+    "//services/data_decoder:lib",
-     "//services/data_decoder:xml_parser_fuzzer_deps",
-   ]
-   sources = [

diff --git a/www-client/chromium/files/chromium-102-i3-tab-dragging-fix.patch b/www-client/chromium/files/chromium-102-i3-tab-dragging-fix.patch
deleted file mode 100644
index 3a6046b690a9..000000000000
--- a/www-client/chromium/files/chromium-102-i3-tab-dragging-fix.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 95b94a2b841b624be8c0c99730f7011aa56a6a60 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson@chromium.org>
-Date: Thu, 26 May 2022 21:04:21 +0000
-Subject: [PATCH] Fix x11::WindowCache::GetWindowAtPoint() in i3
-
-In i3, container windows have a WM_NAME, but we're interested in the
-named content window.  This CL changes the DFS search order to check
-child windows before checking parent windows.
-
-R=​sky
-
-(cherry picked from commit 57032db2a7adea88585b1bb00a3cd6542d04285c)
-
-Fixed: 1316735
-Change-Id: I8049552f1c0faa7dcbc3bb6b25df2324ee9bbf7a
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3588704
-Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
-Reviewed-by: Scott Violet <sky@chromium.org>
-Commit-Queue: Scott Violet <sky@chromium.org>
-Cr-Original-Commit-Position: refs/heads/main@{#993220}
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3669471
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/branch-heads/5005@{#1031}
-Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
----
-
-diff --git a/ui/gfx/x/window_cache.cc b/ui/gfx/x/window_cache.cc
-index 0f1fa29..c12bea05 100644
---- a/ui/gfx/x/window_cache.cc
-+++ b/ui/gfx/x/window_cache.cc
-@@ -152,13 +152,13 @@
-     }
-   }
- 
--  if (info->has_wm_name)
--    return window;
-   for (Window child : base::Reversed(info->children)) {
-     Window ret = GetWindowAtPoint(point_px, child, ignore);
-     if (ret != Window::None)
-       return ret;
-   }
-+  if (info->has_wm_name)
-+    return window;
-   return Window::None;
- }
- 
-diff --git a/ui/gfx/x/window_cache_unittest.cc b/ui/gfx/x/window_cache_unittest.cc
-index a4c2378..c88dbfd5 100644
---- a/ui/gfx/x/window_cache_unittest.cc
-+++ b/ui/gfx/x/window_cache_unittest.cc
-@@ -418,4 +418,19 @@
-   EXPECT_EQ(cache()->GetWindowAtPoint({150, 150}, root()), c);
- }
- 
-+// Regression test for https://crbug.com/1316735
-+// If both a parent and child window have a WM_NAME, the child window
-+// should be returned by GetWindowAtPoint().
-+TEST_F(WindowCacheTest, NestedWmName) {
-+  connection()->MapWindow(root());
-+  SetStringProperty(root(), Atom::WM_NAME, Atom::STRING, "root");
-+
-+  Window a = CreateWindow(root());
-+  connection()->MapWindow(a);
-+  SetStringProperty(a, Atom::WM_NAME, Atom::STRING, "a");
-+
-+  cache()->SyncForTest();
-+  EXPECT_EQ(cache()->GetWindowAtPoint({100, 100}, root()), a);
-+}
-+
- }  // namespace x11

diff --git a/www-client/chromium/files/chromium-97-arm-tflite-cast.patch b/www-client/chromium/files/chromium-97-arm-tflite-cast.patch
deleted file mode 100644
index 843a384c76d3..000000000000
--- a/www-client/chromium/files/chromium-97-arm-tflite-cast.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-vreinterpret_s32_s8() casts int8x8_t to int32x2_t. However, third argument
-of vdotq_lane_s32() is of type int8x8_t.
-
---- a/third_party/tflite/src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h
-+++ b/third_party/tflite/src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h
-@@ -129,16 +129,14 @@ inline int32x4_t vdotq_four_lane_s32(int32x4_t acc, int8x16_t lhs,
-                                      int8x16_t rhs, const int lane) {
-   switch (lane) {
-     case 0:
--      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_low_s8(rhs)), 0);
-+      return vdotq_lane_s32(acc, lhs, vget_low_s8(rhs), 0);
-     case 1:
--      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_low_s8(rhs)), 1);
-+      return vdotq_lane_s32(acc, lhs, vget_low_s8(rhs), 1);
-     case 2:
--      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_high_s8(rhs)),
--                            0);
-+      return vdotq_lane_s32(acc, lhs, vget_high_s8(rhs), 0);
-     case 3:
-     default:
--      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_high_s8(rhs)),
--                            1);
-+      return vdotq_lane_s32(acc, lhs, vget_high_s8(rhs), 1);
-   }
- }
- 


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

commit:     3d0d39989e1625c57c742f282f6336f66cca0d33
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 14 17:00:47 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Jun 14 17:01:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d0d3998

www-client/chromium: fix building with USE=-wayland

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

 www-client/chromium/chromium-104.0.5110.0.ebuild   |  1 +
 .../chromium-104-swiftshader-no-wayland.patch      | 52 ++++++++++++++++++++++
 2 files changed, 53 insertions(+)

diff --git a/www-client/chromium/chromium-104.0.5110.0.ebuild b/www-client/chromium/chromium-104.0.5110.0.ebuild
index 965ce6985844..64b7e13cd82b 100644
--- a/www-client/chromium/chromium-104.0.5110.0.ebuild
+++ b/www-client/chromium/chromium-104.0.5110.0.ebuild
@@ -312,6 +312,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
 		"${FILESDIR}/chromium-104-tflite-system-zlib.patch"
+		"${FILESDIR}/chromium-104-swiftshader-no-wayland.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-swiftshader-no-wayland.patch b/www-client/chromium/files/chromium-104-swiftshader-no-wayland.patch
new file mode 100644
index 000000000000..75f78f36bc3d
--- /dev/null
+++ b/www-client/chromium/files/chromium-104-swiftshader-no-wayland.patch
@@ -0,0 +1,52 @@
+--- a/third_party/swiftshader/src/Vulkan/BUILD.gn
++++ b/third_party/swiftshader/src/Vulkan/BUILD.gn
+@@ -16,14 +16,22 @@ import("//build_overrides/build.gni")
+ import("../swiftshader.gni")
+ import("vulkan.gni")
+ 
++if (is_linux) {
++  import("//build/config/ozone.gni")
++}
++
+ # Need a separate config to ensure the warnings are added to the end.
+ config("swiftshader_libvulkan_private_config") {
+   if (is_linux) {
+     defines = [
+       "VK_USE_PLATFORM_XCB_KHR",
+-      "VK_USE_PLATFORM_WAYLAND_KHR",
+       "VK_EXPORT=__attribute__((visibility(\"default\")))",
+     ]
++    if (ozone_platform_wayland) {
++      defines += [
++        "VK_USE_PLATFORM_WAYLAND_KHR",
++      ]
++    }
+   } else if (is_chromeos) {
+     defines = [
+       "VK_EXPORT=__attribute__((visibility(\"default\")))",
+--- a/third_party/swiftshader/src/WSI/BUILD.gn
++++ b/third_party/swiftshader/src/WSI/BUILD.gn
+@@ -42,15 +42,19 @@ swiftshader_source_set("WSI") {
+ 
+   if (is_linux) {
+     sources += [
+-      "WaylandSurfaceKHR.cpp",
+-      "WaylandSurfaceKHR.hpp",
+       "XcbSurfaceKHR.cpp",
+       "XcbSurfaceKHR.hpp",
+-      "libWaylandClient.cpp",
+-      "libWaylandClient.hpp",
+       "libXCB.cpp",
+       "libXCB.hpp",
+     ]
++    if (ozone_platform_wayland) {
++      sources += [
++        "WaylandSurfaceKHR.cpp",
++        "WaylandSurfaceKHR.hpp",
++        "libWaylandClient.cpp",
++        "libWaylandClient.hpp",
++      ]
++    }
+   }
+ 
+   if (is_win) {


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

commit:     cc8b4484b9a3461e41f80d3bc0ce4d39f59ee180
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  5 13:12:30 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Jun  5 13:13:23 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc8b4484

www-client/chromium: dev channel bump to 104.0.5098.0

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

 www-client/chromium/Manifest                       |  4 +-
 ....5083.0.ebuild => chromium-104.0.5098.0.ebuild} |  3 +-
 .../files/chromium-104-tflite-system-zlib.patch    | 70 ++++++++++++++++++++++
 3 files changed, 74 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8f4ff2d39ee3..d5b4399de3fa 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,6 @@ DIST chromium-102-patchset-6.tar.xz 4780 BLAKE2B c59d23779fd769176e1cd92884dd259
 DIST chromium-102.0.5005.61.tar.xz 1433350708 BLAKE2B 7130b2c9dbc67783499003fd98f95e050bac3580e9dd6c9f4fee320e9eed876cd8c3ec29d9e9f23c78c159b1b622fbe0511750baeb6f8117f176612e1571747f SHA512 4b5d48debafef0a38105e259f97eac6e25eae1147ce67e357c3ce1e8e7700950af63117ff104b71cfbdfcaa0b31925d1b686ab1be6c52b32dad819c7e38f1846
 DIST chromium-103-patchset-4.tar.xz 7220 BLAKE2B 3dc9670be01d4bbfd24e8d305ea72e6bd911062a9a012c7548fca76ec34998b54ff31ef0118be5db9fdde3839365103cb06b29ff2ab167ad4313b4b64cba3a63 SHA512 54fb3600bb42ffcd6168f9741432879877bb5d206c11b3874249faaaff13288bffd4e7336f055c0c619efba02aa694de6abde394a6964c0ff6b33d9e3aed1691
 DIST chromium-103.0.5060.33.tar.xz 1470671736 BLAKE2B e036115ff0439e2e8ab18d97ebf720e88fa48a65f99eca9bcd37d30b9c9b4e5a376242783c83e65678dbcd73764e1a10fb62c95aabca3b10e3a86ad54c79fd00 SHA512 3c03d39bc182202c3849a040951d3414e2539444fd87a8740775612c0a80cc76de9a286eadc9af97e9db35e342bed092e20ac997a059673c6c4357f73c8841f8
-DIST chromium-104-patchset-1.tar.xz 5792 BLAKE2B 7febe80c63c598812c86196fb0279132dfb3fec827841e51aafdc8e24e3eb04834578d351b049275688d1b0ae7e17fcbf47b5ec4905b943cbb7570f4d4c1ec3f SHA512 ff87c1150c74a97f4d08da2af4266861503df45061b57283a098225078a118e240c3ef7ad0e943d6bb56d3b73a4d839109b1344dec833d4acd0ed5f07230dff5
-DIST chromium-104.0.5083.0.tar.xz 1443051464 BLAKE2B 9746f6a0fb058e12507565c59b2e582efb9188bf6faeaaf17c45a1b52269b780a54f507bc6377c6790e7f37ddb8333e193ab5190352d3eb74c39cd80756ea4c3 SHA512 d8a88805710934fed80ce00a144f1e7517149a6ee495df5a2f9fa4095de6125a59d261041c72f45bd1087060899cc1afc437f32373a74ba7bb3a8c378b9d7503
+DIST chromium-104-patchset-2.tar.xz 6168 BLAKE2B 57e9f2090315d2fa9baa0d285e40fd7809b35a897fba7684672d04850c2b59ea1bc11383654a8178ece2d4baa9bb2e248898d2435618b9e8a995461d6e92ac53 SHA512 f23effc604051c18acfad3bfb974efd4aa675b84135f4eb95e0dd97261dcc9099f283a8015854c375499370f4155bb9fad51fca59555ec2f41f2d7ab90be7208
+DIST chromium-104.0.5098.0.tar.xz 1479242536 BLAKE2B 6dff915d90ef0a08b6bb31ef0b46a7cb827f8698b8443564b0f03b731d36d37cb4de9d249cab5e5a6808a0190fba5c5756feee719b4c7630bccef2024ecfcd6f SHA512 3864a2dce49e4ab984d4d30514edefcb8eef313575f07254940fe6f5974d2b7d6ebc48ab80e6a92017ce8c96bcdb5f15f7dfc048bb8457de16806f8c34db2b3f
 DIST chromium-profiler-0.1.tar 269066240 BLAKE2B 6897387b63ff9a724b67f2e8799fe803dc75da376da809e752d19d6f5cf98bd84ac24161d07ac4a967577279e9ad5a8a46f0825332a7ee933a27693d6dc95611 SHA512 3fb6132599d28455d1b5c04d856ea7623e49b0b0b96f021c31d0952c4ba57d69d0a1cae6f0b91470a235221c89cc0d3bb38303ff02594ed0739712e6e2f8dbcc

diff --git a/www-client/chromium/chromium-104.0.5083.0.ebuild b/www-client/chromium/chromium-104.0.5098.0.ebuild
similarity index 99%
rename from www-client/chromium/chromium-104.0.5083.0.ebuild
rename to www-client/chromium/chromium-104.0.5098.0.ebuild
index 394904049912..f5937f520544 100644
--- a/www-client/chromium/chromium-104.0.5083.0.ebuild
+++ b/www-client/chromium/chromium-104.0.5098.0.ebuild
@@ -16,7 +16,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils py
 
 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
@@ -311,6 +311,7 @@ src_prepare() {
 		"${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-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-tflite-system-zlib.patch b/www-client/chromium/files/chromium-104-tflite-system-zlib.patch
new file mode 100644
index 000000000000..91ef5726bc8d
--- /dev/null
+++ b/www-client/chromium/files/chromium-104-tflite-system-zlib.patch
@@ -0,0 +1,70 @@
+--- 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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2022-06-01 21:06 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2022-06-01 21:06 UTC (permalink / raw
  To: gentoo-commits

commit:     d215544160ebe45b6ee03f9cc59976abdf1ce859
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  1 21:03:52 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Jun  1 21:06:18 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2155441

www-client/chromium: fix tab dragging with i3

No revbump because it is a minor issue.

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

 www-client/chromium/chromium-102.0.5005.61.ebuild  |  1 +
 .../files/chromium-102-i3-tab-dragging-fix.patch   | 70 ++++++++++++++++++++++
 2 files changed, 71 insertions(+)

diff --git a/www-client/chromium/chromium-102.0.5005.61.ebuild b/www-client/chromium/chromium-102.0.5005.61.ebuild
index 70ce397edf93..b6f0dd7d6b30 100644
--- a/www-client/chromium/chromium-102.0.5005.61.ebuild
+++ b/www-client/chromium/chromium-102.0.5005.61.ebuild
@@ -248,6 +248,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
 		"${FILESDIR}/chromium-101-libxml-unbundle.patch"
+		"${FILESDIR}/chromium-102-i3-tab-dragging-fix.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-102-i3-tab-dragging-fix.patch b/www-client/chromium/files/chromium-102-i3-tab-dragging-fix.patch
new file mode 100644
index 000000000000..3a6046b690a9
--- /dev/null
+++ b/www-client/chromium/files/chromium-102-i3-tab-dragging-fix.patch
@@ -0,0 +1,70 @@
+From 95b94a2b841b624be8c0c99730f7011aa56a6a60 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Thu, 26 May 2022 21:04:21 +0000
+Subject: [PATCH] Fix x11::WindowCache::GetWindowAtPoint() in i3
+
+In i3, container windows have a WM_NAME, but we're interested in the
+named content window.  This CL changes the DFS search order to check
+child windows before checking parent windows.
+
+R=​sky
+
+(cherry picked from commit 57032db2a7adea88585b1bb00a3cd6542d04285c)
+
+Fixed: 1316735
+Change-Id: I8049552f1c0faa7dcbc3bb6b25df2324ee9bbf7a
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3588704
+Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Scott Violet <sky@chromium.org>
+Commit-Queue: Scott Violet <sky@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#993220}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3669471
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1031}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+
+diff --git a/ui/gfx/x/window_cache.cc b/ui/gfx/x/window_cache.cc
+index 0f1fa29..c12bea05 100644
+--- a/ui/gfx/x/window_cache.cc
++++ b/ui/gfx/x/window_cache.cc
+@@ -152,13 +152,13 @@
+     }
+   }
+ 
+-  if (info->has_wm_name)
+-    return window;
+   for (Window child : base::Reversed(info->children)) {
+     Window ret = GetWindowAtPoint(point_px, child, ignore);
+     if (ret != Window::None)
+       return ret;
+   }
++  if (info->has_wm_name)
++    return window;
+   return Window::None;
+ }
+ 
+diff --git a/ui/gfx/x/window_cache_unittest.cc b/ui/gfx/x/window_cache_unittest.cc
+index a4c2378..c88dbfd5 100644
+--- a/ui/gfx/x/window_cache_unittest.cc
++++ b/ui/gfx/x/window_cache_unittest.cc
+@@ -418,4 +418,19 @@
+   EXPECT_EQ(cache()->GetWindowAtPoint({150, 150}, root()), c);
+ }
+ 
++// Regression test for https://crbug.com/1316735
++// If both a parent and child window have a WM_NAME, the child window
++// should be returned by GetWindowAtPoint().
++TEST_F(WindowCacheTest, NestedWmName) {
++  connection()->MapWindow(root());
++  SetStringProperty(root(), Atom::WM_NAME, Atom::STRING, "root");
++
++  Window a = CreateWindow(root());
++  connection()->MapWindow(a);
++  SetStringProperty(a, Atom::WM_NAME, Atom::STRING, "a");
++
++  cache()->SyncForTest();
++  EXPECT_EQ(cache()->GetWindowAtPoint({100, 100}, root()), a);
++}
++
+ }  // namespace x11


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

commit:     b712f779e9e45622850e39550f607cff6808537c
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 12:42:10 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 12:42:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b712f779

www-client/chromium: dev channel bump to 102.0.4997.0

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

 www-client/chromium/Manifest                       |   4 +-
 ....4987.0.ebuild => chromium-102.0.4997.0.ebuild} |   5 +-
 .../chromium/files/chromium-102-dawn-revert.patch  | 268 ---------------------
 3 files changed, 3 insertions(+), 274 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ff886f270cbc..331f9f498a51 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,5 +4,5 @@ DIST chromium-100.0.4896.75.tar.xz 1358118152 BLAKE2B a7747bd1a3ea4e2cab313c139e
 DIST chromium-100.0.4896.88.tar.xz 1358219840 BLAKE2B c26ff1c3e226b01f9f7f39f5b51d864d4a068358daddfe86ac5b8fb59b8e4399e4079409caaa1100d3918051f023bfb4ec09070e62ddde6dc3a79009bded5f95 SHA512 875ca6ad8062afe12e69f38767ad021dbda3342ea0a30a92ae4c90bf337984307bc7c3ae9ebc339b9d4daa39c00647ea94f43d7d6783f519a084ae6bb5c50e38
 DIST chromium-101-patchset-4.tar.xz 3644 BLAKE2B 537be42d078338afc46fb8f358afecffdeea11ffc76d391a2c8785cee343bcde5de4d3c2a4102e2cd90a7331bf561c54b7e0c390e21785db3821d3cd39fcb080 SHA512 19370a96f1f3edcf4d529038dedfdc1bc680e6265832bf5b3d0a86f6dbc6784d34dd861ad39c328d4755e21966d19614cbd2f7719af2981abe2c7d8e0e985a78
 DIST chromium-101.0.4951.26.tar.xz 1401081820 BLAKE2B 395b381bccffd6072ca93d84f422c65c220813a7e153e09635fbf55417bc287613b305ab8355941c01e3d448d3680db6b5beac4fdf7a261738d6dd6530b7e27d SHA512 e22ac973f5093b8cb992587897be5ad79963a541e4aca56c2f36d26dd99370030413363371946f1faa50fd8adc53e42b50b99633c7704e2c39c24e6f49477a85
-DIST chromium-102-patchset-2.tar.xz 3548 BLAKE2B ebcdde1e72cfa21d1d5b1e8edcf06b2145a4c892cae5aa5a79c9196d18c7897d5c97da1cead0f421c39258702557464ef0aa0dee3eb7c9e162b18119ae6f75c5 SHA512 98c01231a2965965ec4d4017812ec0c95bdb9c7c5d27e127060d2f24eb1c19b0b82c64367102f191496c55a819da98c76085c88b672b37e5e4c489b60e15de67
-DIST chromium-102.0.4987.0.tar.xz 1427741816 BLAKE2B 5de977daa1d585dcb8ba88293f25dbec64b885d32d44a54ec53b48ae5aa01f4e9019d42f700a4f8f9ac98a892014c9b5e1149eff65562599078b92b3ed18909c SHA512 196c70e36517bcfc3b1fe79844a6bb5904d0863cd6db78477b83d2070b57075663081dfd709a82a71b661781899239870cbcb0b5c52dfda714ed0df3264250cd
+DIST chromium-102-patchset-3.tar.xz 4540 BLAKE2B 79daaafa620b8a2e3c0d5e04c43112d74ad5f5929753408a59f56098c13733a11c2c61b6ea303592916f78d1f3aef8ea6b32ef2fae8ce2c2ce2bb48c4781ea7f SHA512 c14499b775adc7fe3324dfbbad7322b7959d08d1d04b5e6d7a83f43f94b30e2e547c0635580356106e7c71ba9909a8759f8bd26f436f0599fb2cba99f568ebae
+DIST chromium-102.0.4997.0.tar.xz 1430480956 BLAKE2B a3ee13627cae99c41f3cd5a45610b1c766c2ce0d15aa7c717d297f51923c0bc7ed5c95f424eb51c3448336aa57e89cd7bc68325d17285a6972ac21ab1563af27 SHA512 59eec03408a7d8154e1988f6941101b7065bcb2c4c17568b00d2344a930aa909822b9bdef4a6b5476d3a909300521236402fe0e508be851237fc5bbc65acaeab

diff --git a/www-client/chromium/chromium-102.0.4987.0.ebuild b/www-client/chromium/chromium-102.0.4997.0.ebuild
similarity index 99%
rename from www-client/chromium/chromium-102.0.4987.0.ebuild
rename to www-client/chromium/chromium-102.0.4997.0.ebuild
index b24042a4eb88..3a02ebb0cc5b 100644
--- a/www-client/chromium/chromium-102.0.4987.0.ebuild
+++ b/www-client/chromium/chromium-102.0.4997.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"
@@ -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-102-dawn-revert.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"
@@ -327,7 +326,6 @@ src_prepare() {
 		third_party/dawn
 		third_party/dawn/third_party/gn/webgpu-cts
 		third_party/dawn/third_party/khronos
-		third_party/dawn/third_party/tint
 		third_party/depot_tools
 		third_party/devscripts
 		third_party/devtools-frontend
@@ -415,7 +413,6 @@ src_prepare() {
 		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

diff --git a/www-client/chromium/files/chromium-102-dawn-revert.patch b/www-client/chromium/files/chromium-102-dawn-revert.patch
deleted file mode 100644
index 6e77207b4813..000000000000
--- a/www-client/chromium/files/chromium-102-dawn-revert.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-diff --git a/third_party/dawn/generator/dawn_generator.gni b/third_party/dawn/generator/dawn_generator.gni
-index 28c5301..fb7e639 100644
---- a/third_party/dawn/generator/dawn_generator.gni
-+++ b/third_party/dawn/generator/dawn_generator.gni
-@@ -39,7 +39,6 @@ import("generator_lib.gni")
- 
- dawn_allowed_gen_output_dirs = [
-   "src/dawn/",
--  "src/dawn/common/",
-   "src/dawn/native/",
-   "src/dawn/native/opengl/",
-   "src/dawn/wire/client/",
-diff --git a/third_party/dawn/generator/dawn_version_generator.py b/third_party/dawn/generator/dawn_version_generator.py
-deleted file mode 100644
-index 462cb31..0000000
---- a/third_party/dawn/generator/dawn_version_generator.py
-+++ /dev/null
-@@ -1,105 +0,0 @@
--#!/usr/bin/env python3
--# Copyright 2022 The Dawn Authors
--#
--# Licensed under the Apache License, Version 2.0 (the "License");
--# you may not use this file except in compliance with the License.
--# You may obtain a copy of the License at
--#
--#     http://www.apache.org/licenses/LICENSE-2.0
--#
--# Unless required by applicable law or agreed to in writing, software
--# distributed under the License is distributed on an "AS IS" BASIS,
--# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# See the License for the specific language governing permissions and
--# limitations under the License.
--
--import os, subprocess, sys
--
--from generator_lib import Generator, run_generator, FileRender
--
--
--def get_git():
--    return 'git.bat' if sys.platform == 'win32' else 'git'
--
--
--def get_gitHash(dawnDir):
--    result = subprocess.run([get_git(), 'rev-parse', 'HEAD'],
--                            stdout=subprocess.PIPE,
--                            cwd=dawnDir)
--    if result.returncode == 0:
--        return result.stdout.decode('utf-8').strip()
--    return ''
--
--
--def get_gitHead(dawnDir):
--    return [os.path.join(dawnDir, '.git', 'HEAD')]
--
--
--def unpackGitRef(packed, resolved):
--    with open(packed) as fin:
--        refs = fin.read().strip().split('\n')
--
--    # Strip comments
--    refs = [ref.split(' ') for ref in refs if ref.strip()[0] != '#']
--
--    # Parse results which are in the format [<gitHash>, <refFile>] from previous step.
--    refs = [gitHash for (gitHash, refFile) in refs if refFile == resolved]
--    if len(refs) == 1:
--        with open(resolved, 'w') as fout:
--            fout.write(refs[0] + '\n')
--        return True
--    return False
--
--
--def get_gitResolvedHead(dawnDir):
--    result = subprocess.run(
--        [get_git(), 'rev-parse', '--symbolic-full-name', 'HEAD'],
--        stdout=subprocess.PIPE,
--        cwd=dawnDir)
--    if result.returncode != 0:
--        raise Exception('Failed to execute git rev-parse to resolve git head.')
--
--    resolved = os.path.join(dawnDir, '.git',
--                            result.stdout.decode('utf-8').strip())
--
--    # Check a packed-refs file exists. If so, we need to potentially unpack and include it as a dep.
--    packed = os.path.join(dawnDir, '.git', 'packed-refs')
--    if os.path.exists(packed) and unpackGitRef(packed, resolved):
--        return [packed, resolved]
--
--    if not os.path.exists(resolved):
--        raise Exception('Unable to resolve git HEAD hash file:', path)
--    return [resolved]
--
--
--def compute_params(args):
--    return {
--        'get_gitHash': lambda: get_gitHash(os.path.abspath(args.dawn_dir)),
--    }
--
--
--class DawnVersionGenerator(Generator):
--    def get_description(self):
--        return 'Generates version dependent Dawn code. Currently regenerated dependent on git hash.'
--
--    def add_commandline_arguments(self, parser):
--        parser.add_argument('--dawn-dir',
--                            required=True,
--                            type=str,
--                            help='The Dawn root directory path to use')
--
--    def get_dependencies(self, args):
--        dawn_dir = os.path.abspath(args.dawn_dir)
--        return get_gitHead(dawn_dir) + get_gitResolvedHead(dawn_dir)
--
--    def get_file_renders(self, args):
--        params = compute_params(args)
--
--        return [
--            FileRender('dawn/common/Version.h',
--                       'src/dawn/common/Version_autogen.h', [params]),
--        ]
--
--
--if __name__ == '__main__':
--    sys.exit(run_generator(DawnVersionGenerator()))
-diff --git a/third_party/dawn/generator/templates/dawn/common/Version.h b/third_party/dawn/generator/templates/dawn/common/Version.h
-deleted file mode 100644
-index f9f67e7..0000000
---- a/third_party/dawn/generator/templates/dawn/common/Version.h
-+++ /dev/null
-@@ -1,24 +0,0 @@
--// Copyright 2022 The Dawn Authors
--//
--// Licensed under the Apache License, Version 2.0 (the "License");
--// you may not use this file except in compliance with the License.
--// You may obtain a copy of the License at
--//
--//     http://www.apache.org/licenses/LICENSE-2.0
--//
--// Unless required by applicable law or agreed to in writing, software
--// distributed under the License is distributed on an "AS IS" BASIS,
--// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--// See the License for the specific language governing permissions and
--// limitations under the License.
--
--#ifndef COMMON_VERISON_AUTOGEN_H_
--#define COMMON_VERISON_AUTOGEN_H_
--
--namespace dawn {
--
--static constexpr char kGitHash[] = "{{get_gitHash()}}";
--
--} // namespace dawn
--
--#endif  // COMMON_VERISON_AUTOGEN_H_
-diff --git a/third_party/dawn/src/dawn/common/BUILD.gn b/third_party/dawn/src/dawn/common/BUILD.gn
-index d09999d..8a15f02 100644
---- a/third_party/dawn/src/dawn/common/BUILD.gn
-+++ b/third_party/dawn/src/dawn/common/BUILD.gn
-@@ -15,7 +15,6 @@
- import("../../../scripts/dawn_overrides_with_defaults.gni")
- 
- import("//build_overrides/build.gni")
--import("${dawn_root}/generator/dawn_generator.gni")
- import("${dawn_root}/scripts/dawn_features.gni")
- 
- # Use Chromium's dcheck_always_on when available so that we respect it when
-@@ -168,15 +167,6 @@ config("internal_config") {
- # Common dawn library
- ###############################################################################
- 
--dawn_generator("dawn_version_gen") {
--  script = "${dawn_root}/generator/dawn_version_generator.py"
--  args = [
--    "--dawn-dir",
--    rebase_path("${dawn_root}", root_build_dir),
--  ]
--  outputs = [ "src/dawn/common/Version_autogen.h" ]
--}
--
- # This GN file is discovered by all Chromium builds, but common doesn't support
- # all of Chromium's OSes so we explicitly make the target visible only on
- # systems we know Dawn is able to compile on.
-@@ -233,8 +223,6 @@ if (is_win || is_linux || is_chromeos || is_mac || is_fuchsia || is_android) {
-       "xlib_with_undefs.h",
-     ]
- 
--    public_deps = [ ":dawn_version_gen" ]
--
-     if (is_mac) {
-       sources += [ "SystemUtils_mac.mm" ]
-     }
-@@ -253,7 +241,7 @@ if (is_win || is_linux || is_chromeos || is_mac || is_fuchsia || is_android) {
-       ]
-     }
-     if (dawn_enable_vulkan) {
--      public_deps += [ "${dawn_root}/third_party/khronos:vulkan_headers" ]
-+      public_deps = [ "${dawn_root}/third_party/khronos:vulkan_headers" ]
-     }
-     if (is_android) {
-       libs = [ "log" ]
-diff --git a/third_party/dawn/src/dawn/common/CMakeLists.txt b/third_party/dawn/src/dawn/common/CMakeLists.txt
-index 1c28e71..d839d84 100644
---- a/third_party/dawn/src/dawn/common/CMakeLists.txt
-+++ b/third_party/dawn/src/dawn/common/CMakeLists.txt
-@@ -12,17 +12,8 @@
- # See the License for the specific language governing permissions and
- # limitations under the License.
- 
--DawnGenerator(
--    SCRIPT "${Dawn_SOURCE_DIR}/generator/dawn_version_generator.py"
--    PRINT_NAME "Dawn version based utilities"
--    ARGS "--dawn-dir"
--         "${Dawn_SOURCE_DIR}"
--    RESULT_VARIABLE "DAWN_VERSION_AUTOGEN_SOURCES"
--)
--
- add_library(dawn_common STATIC ${DAWN_DUMMY_FILE})
- target_sources(dawn_common PRIVATE
--    ${DAWN_VERSION_AUTOGEN_SOURCES}
-     "Alloc.h"
-     "Assert.cpp"
-     "Assert.h"
-diff --git a/third_party/dawn/src/dawn/tests/BUILD.gn b/third_party/dawn/src/dawn/tests/BUILD.gn
-index 0951b9b..990b5b9 100644
---- a/third_party/dawn/src/dawn/tests/BUILD.gn
-+++ b/third_party/dawn/src/dawn/tests/BUILD.gn
-@@ -238,7 +238,6 @@ dawn_test("dawn_unittests") {
-     "unittests/SystemUtilsTests.cpp",
-     "unittests/ToBackendTests.cpp",
-     "unittests/TypedIntegerTests.cpp",
--    "unittests/VersionTests.cpp",
-     "unittests/native/CacheKeyTests.cpp",
-     "unittests/native/CommandBufferEncodingTests.cpp",
-     "unittests/native/CreatePipelineAsyncTaskTests.cpp",
-diff --git a/third_party/dawn/src/dawn/tests/unittests/VersionTests.cpp b/third_party/dawn/src/dawn/tests/unittests/VersionTests.cpp
-deleted file mode 100644
-index 60172a7..0000000
---- a/third_party/dawn/src/dawn/tests/unittests/VersionTests.cpp
-+++ /dev/null
-@@ -1,29 +0,0 @@
--// Copyright 2022 The Dawn Authors
--//
--// Licensed under the Apache License, Version 2.0 (the "License");
--// you may not use this file except in compliance with the License.
--// You may obtain a copy of the License at
--//
--//     http://www.apache.org/licenses/LICENSE-2.0
--//
--// Unless required by applicable law or agreed to in writing, software
--// distributed under the License is distributed on an "AS IS" BASIS,
--// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--// See the License for the specific language governing permissions and
--// limitations under the License.
--
--#include <gmock/gmock.h>
--#include <gtest/gtest.h>
--
--#include "dawn/common/Version_autogen.h"
--
--namespace dawn { namespace {
--
--    using ::testing::SizeIs;
--
--    TEST(VersionTests, GitCommitHashLength) {
--        // Git hashes should be 40 characters long.
--        EXPECT_THAT(std::string(kGitHash), SizeIs(40));
--    }
--
--}}  // namespace dawn::


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

commit:     80573012dd89ca319af9bcba9465383bb85e40d8
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Fri Apr  8 12:28:23 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Fri Apr  8 12:28:45 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80573012

www-client/chromium: dev channel bump to 102.0.4987.0

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

 www-client/chromium/Manifest                       |   4 +-
 ....4972.0.ebuild => chromium-102.0.4987.0.ebuild} |   4 +-
 .../chromium/files/chromium-102-dawn-revert.patch  | 268 +++++++++++++++++++++
 3 files changed, 272 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 903ff9cfe59b..c336cf8ef20c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,5 +4,5 @@ DIST chromium-100.0.4896.60.tar.xz 1357922968 BLAKE2B a4efa2d4a6bfed6a20552b8cd9
 DIST chromium-100.0.4896.75.tar.xz 1358118152 BLAKE2B a7747bd1a3ea4e2cab313c139ed68726a253c5b5c71c7b9817aeac94eb9ba167bc28a7c6d498e719c62b4054583c56aa2f2c45ce4351ee3437995393919712ef SHA512 df066ee1a9f8ae324c6ab0d788e01e5d30a9d30148c45f88b270dc00246d34d74a760e7ae6eb8490c4d688ad2d7b8f00d604bb0a260dd3fb7bfc80d3a987958e
 DIST chromium-101-patchset-4.tar.xz 3644 BLAKE2B 537be42d078338afc46fb8f358afecffdeea11ffc76d391a2c8785cee343bcde5de4d3c2a4102e2cd90a7331bf561c54b7e0c390e21785db3821d3cd39fcb080 SHA512 19370a96f1f3edcf4d529038dedfdc1bc680e6265832bf5b3d0a86f6dbc6784d34dd861ad39c328d4755e21966d19614cbd2f7719af2981abe2c7d8e0e985a78
 DIST chromium-101.0.4951.26.tar.xz 1401081820 BLAKE2B 395b381bccffd6072ca93d84f422c65c220813a7e153e09635fbf55417bc287613b305ab8355941c01e3d448d3680db6b5beac4fdf7a261738d6dd6530b7e27d SHA512 e22ac973f5093b8cb992587897be5ad79963a541e4aca56c2f36d26dd99370030413363371946f1faa50fd8adc53e42b50b99633c7704e2c39c24e6f49477a85
-DIST chromium-102-patchset-1.tar.xz 3804 BLAKE2B 099109dab19ef3e45a1927a893b5d5484d8743458b2027b3cc3aad644f970bbd3fafc2d56f958b33c52b8aaa42f5498ffd4a73baf82374e73e3aaa7deebbefe2 SHA512 1411050d819034e1eeee2918cd8d5daf29982e7a3965d1f0cd9833dfddd488108aa38780f459ec0abc7d5b5dfa395e3f464a3555d6208908966e0c23fb4af01f
-DIST chromium-102.0.4972.0.tar.xz 1405292324 BLAKE2B 470dc49986b34b7c8c8759a44ab28b5ee562fce6999ec1456a357d16c2fd0239f734937caef658363b04e1e6889410b4d1773325c120545a7537c640c66e6ae2 SHA512 b4e39297c42a51cf7ab52c8022191434bcd583a1ee3b56a6e5dcce9e0c9d3dfd6f12cb09efb1562efb9b29770af7fe930d850eb31a551e7bf41507cec7757167
+DIST chromium-102-patchset-2.tar.xz 3548 BLAKE2B ebcdde1e72cfa21d1d5b1e8edcf06b2145a4c892cae5aa5a79c9196d18c7897d5c97da1cead0f421c39258702557464ef0aa0dee3eb7c9e162b18119ae6f75c5 SHA512 98c01231a2965965ec4d4017812ec0c95bdb9c7c5d27e127060d2f24eb1c19b0b82c64367102f191496c55a819da98c76085c88b672b37e5e4c489b60e15de67
+DIST chromium-102.0.4987.0.tar.xz 1427741816 BLAKE2B 5de977daa1d585dcb8ba88293f25dbec64b885d32d44a54ec53b48ae5aa01f4e9019d42f700a4f8f9ac98a892014c9b5e1149eff65562599078b92b3ed18909c SHA512 196c70e36517bcfc3b1fe79844a6bb5904d0863cd6db78477b83d2070b57075663081dfd709a82a71b661781899239870cbcb0b5c52dfda714ed0df3264250cd

diff --git a/www-client/chromium/chromium-102.0.4972.0.ebuild b/www-client/chromium/chromium-102.0.4987.0.ebuild
similarity index 99%
rename from www-client/chromium/chromium-102.0.4972.0.ebuild
rename to www-client/chromium/chromium-102.0.4987.0.ebuild
index 504055107716..b24042a4eb88 100644
--- a/www-client/chromium/chromium-102.0.4972.0.ebuild
+++ b/www-client/chromium/chromium-102.0.4987.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"
@@ -247,6 +247,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-98-gtk4-build.patch"
 		"${FILESDIR}/chromium-101-libxml-unbundle.patch"
+		"${FILESDIR}/chromium-102-dawn-revert.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 		"${FILESDIR}/chromium-cross-compile.patch"
@@ -468,7 +469,6 @@ src_prepare() {
 		third_party/six
 		third_party/ukey2
 		third_party/unrar
-		third_party/usrsctp
 		third_party/utf
 		third_party/vulkan
 		third_party/web-animations-js

diff --git a/www-client/chromium/files/chromium-102-dawn-revert.patch b/www-client/chromium/files/chromium-102-dawn-revert.patch
new file mode 100644
index 000000000000..6e77207b4813
--- /dev/null
+++ b/www-client/chromium/files/chromium-102-dawn-revert.patch
@@ -0,0 +1,268 @@
+diff --git a/third_party/dawn/generator/dawn_generator.gni b/third_party/dawn/generator/dawn_generator.gni
+index 28c5301..fb7e639 100644
+--- a/third_party/dawn/generator/dawn_generator.gni
++++ b/third_party/dawn/generator/dawn_generator.gni
+@@ -39,7 +39,6 @@ import("generator_lib.gni")
+ 
+ dawn_allowed_gen_output_dirs = [
+   "src/dawn/",
+-  "src/dawn/common/",
+   "src/dawn/native/",
+   "src/dawn/native/opengl/",
+   "src/dawn/wire/client/",
+diff --git a/third_party/dawn/generator/dawn_version_generator.py b/third_party/dawn/generator/dawn_version_generator.py
+deleted file mode 100644
+index 462cb31..0000000
+--- a/third_party/dawn/generator/dawn_version_generator.py
++++ /dev/null
+@@ -1,105 +0,0 @@
+-#!/usr/bin/env python3
+-# Copyright 2022 The Dawn Authors
+-#
+-# Licensed under the Apache License, Version 2.0 (the "License");
+-# you may not use this file except in compliance with the License.
+-# You may obtain a copy of the License at
+-#
+-#     http://www.apache.org/licenses/LICENSE-2.0
+-#
+-# Unless required by applicable law or agreed to in writing, software
+-# distributed under the License is distributed on an "AS IS" BASIS,
+-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-# See the License for the specific language governing permissions and
+-# limitations under the License.
+-
+-import os, subprocess, sys
+-
+-from generator_lib import Generator, run_generator, FileRender
+-
+-
+-def get_git():
+-    return 'git.bat' if sys.platform == 'win32' else 'git'
+-
+-
+-def get_gitHash(dawnDir):
+-    result = subprocess.run([get_git(), 'rev-parse', 'HEAD'],
+-                            stdout=subprocess.PIPE,
+-                            cwd=dawnDir)
+-    if result.returncode == 0:
+-        return result.stdout.decode('utf-8').strip()
+-    return ''
+-
+-
+-def get_gitHead(dawnDir):
+-    return [os.path.join(dawnDir, '.git', 'HEAD')]
+-
+-
+-def unpackGitRef(packed, resolved):
+-    with open(packed) as fin:
+-        refs = fin.read().strip().split('\n')
+-
+-    # Strip comments
+-    refs = [ref.split(' ') for ref in refs if ref.strip()[0] != '#']
+-
+-    # Parse results which are in the format [<gitHash>, <refFile>] from previous step.
+-    refs = [gitHash for (gitHash, refFile) in refs if refFile == resolved]
+-    if len(refs) == 1:
+-        with open(resolved, 'w') as fout:
+-            fout.write(refs[0] + '\n')
+-        return True
+-    return False
+-
+-
+-def get_gitResolvedHead(dawnDir):
+-    result = subprocess.run(
+-        [get_git(), 'rev-parse', '--symbolic-full-name', 'HEAD'],
+-        stdout=subprocess.PIPE,
+-        cwd=dawnDir)
+-    if result.returncode != 0:
+-        raise Exception('Failed to execute git rev-parse to resolve git head.')
+-
+-    resolved = os.path.join(dawnDir, '.git',
+-                            result.stdout.decode('utf-8').strip())
+-
+-    # Check a packed-refs file exists. If so, we need to potentially unpack and include it as a dep.
+-    packed = os.path.join(dawnDir, '.git', 'packed-refs')
+-    if os.path.exists(packed) and unpackGitRef(packed, resolved):
+-        return [packed, resolved]
+-
+-    if not os.path.exists(resolved):
+-        raise Exception('Unable to resolve git HEAD hash file:', path)
+-    return [resolved]
+-
+-
+-def compute_params(args):
+-    return {
+-        'get_gitHash': lambda: get_gitHash(os.path.abspath(args.dawn_dir)),
+-    }
+-
+-
+-class DawnVersionGenerator(Generator):
+-    def get_description(self):
+-        return 'Generates version dependent Dawn code. Currently regenerated dependent on git hash.'
+-
+-    def add_commandline_arguments(self, parser):
+-        parser.add_argument('--dawn-dir',
+-                            required=True,
+-                            type=str,
+-                            help='The Dawn root directory path to use')
+-
+-    def get_dependencies(self, args):
+-        dawn_dir = os.path.abspath(args.dawn_dir)
+-        return get_gitHead(dawn_dir) + get_gitResolvedHead(dawn_dir)
+-
+-    def get_file_renders(self, args):
+-        params = compute_params(args)
+-
+-        return [
+-            FileRender('dawn/common/Version.h',
+-                       'src/dawn/common/Version_autogen.h', [params]),
+-        ]
+-
+-
+-if __name__ == '__main__':
+-    sys.exit(run_generator(DawnVersionGenerator()))
+diff --git a/third_party/dawn/generator/templates/dawn/common/Version.h b/third_party/dawn/generator/templates/dawn/common/Version.h
+deleted file mode 100644
+index f9f67e7..0000000
+--- a/third_party/dawn/generator/templates/dawn/common/Version.h
++++ /dev/null
+@@ -1,24 +0,0 @@
+-// Copyright 2022 The Dawn Authors
+-//
+-// Licensed under the Apache License, Version 2.0 (the "License");
+-// you may not use this file except in compliance with the License.
+-// You may obtain a copy of the License at
+-//
+-//     http://www.apache.org/licenses/LICENSE-2.0
+-//
+-// Unless required by applicable law or agreed to in writing, software
+-// distributed under the License is distributed on an "AS IS" BASIS,
+-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-// See the License for the specific language governing permissions and
+-// limitations under the License.
+-
+-#ifndef COMMON_VERISON_AUTOGEN_H_
+-#define COMMON_VERISON_AUTOGEN_H_
+-
+-namespace dawn {
+-
+-static constexpr char kGitHash[] = "{{get_gitHash()}}";
+-
+-} // namespace dawn
+-
+-#endif  // COMMON_VERISON_AUTOGEN_H_
+diff --git a/third_party/dawn/src/dawn/common/BUILD.gn b/third_party/dawn/src/dawn/common/BUILD.gn
+index d09999d..8a15f02 100644
+--- a/third_party/dawn/src/dawn/common/BUILD.gn
++++ b/third_party/dawn/src/dawn/common/BUILD.gn
+@@ -15,7 +15,6 @@
+ import("../../../scripts/dawn_overrides_with_defaults.gni")
+ 
+ import("//build_overrides/build.gni")
+-import("${dawn_root}/generator/dawn_generator.gni")
+ import("${dawn_root}/scripts/dawn_features.gni")
+ 
+ # Use Chromium's dcheck_always_on when available so that we respect it when
+@@ -168,15 +167,6 @@ config("internal_config") {
+ # Common dawn library
+ ###############################################################################
+ 
+-dawn_generator("dawn_version_gen") {
+-  script = "${dawn_root}/generator/dawn_version_generator.py"
+-  args = [
+-    "--dawn-dir",
+-    rebase_path("${dawn_root}", root_build_dir),
+-  ]
+-  outputs = [ "src/dawn/common/Version_autogen.h" ]
+-}
+-
+ # This GN file is discovered by all Chromium builds, but common doesn't support
+ # all of Chromium's OSes so we explicitly make the target visible only on
+ # systems we know Dawn is able to compile on.
+@@ -233,8 +223,6 @@ if (is_win || is_linux || is_chromeos || is_mac || is_fuchsia || is_android) {
+       "xlib_with_undefs.h",
+     ]
+ 
+-    public_deps = [ ":dawn_version_gen" ]
+-
+     if (is_mac) {
+       sources += [ "SystemUtils_mac.mm" ]
+     }
+@@ -253,7 +241,7 @@ if (is_win || is_linux || is_chromeos || is_mac || is_fuchsia || is_android) {
+       ]
+     }
+     if (dawn_enable_vulkan) {
+-      public_deps += [ "${dawn_root}/third_party/khronos:vulkan_headers" ]
++      public_deps = [ "${dawn_root}/third_party/khronos:vulkan_headers" ]
+     }
+     if (is_android) {
+       libs = [ "log" ]
+diff --git a/third_party/dawn/src/dawn/common/CMakeLists.txt b/third_party/dawn/src/dawn/common/CMakeLists.txt
+index 1c28e71..d839d84 100644
+--- a/third_party/dawn/src/dawn/common/CMakeLists.txt
++++ b/third_party/dawn/src/dawn/common/CMakeLists.txt
+@@ -12,17 +12,8 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ 
+-DawnGenerator(
+-    SCRIPT "${Dawn_SOURCE_DIR}/generator/dawn_version_generator.py"
+-    PRINT_NAME "Dawn version based utilities"
+-    ARGS "--dawn-dir"
+-         "${Dawn_SOURCE_DIR}"
+-    RESULT_VARIABLE "DAWN_VERSION_AUTOGEN_SOURCES"
+-)
+-
+ add_library(dawn_common STATIC ${DAWN_DUMMY_FILE})
+ target_sources(dawn_common PRIVATE
+-    ${DAWN_VERSION_AUTOGEN_SOURCES}
+     "Alloc.h"
+     "Assert.cpp"
+     "Assert.h"
+diff --git a/third_party/dawn/src/dawn/tests/BUILD.gn b/third_party/dawn/src/dawn/tests/BUILD.gn
+index 0951b9b..990b5b9 100644
+--- a/third_party/dawn/src/dawn/tests/BUILD.gn
++++ b/third_party/dawn/src/dawn/tests/BUILD.gn
+@@ -238,7 +238,6 @@ dawn_test("dawn_unittests") {
+     "unittests/SystemUtilsTests.cpp",
+     "unittests/ToBackendTests.cpp",
+     "unittests/TypedIntegerTests.cpp",
+-    "unittests/VersionTests.cpp",
+     "unittests/native/CacheKeyTests.cpp",
+     "unittests/native/CommandBufferEncodingTests.cpp",
+     "unittests/native/CreatePipelineAsyncTaskTests.cpp",
+diff --git a/third_party/dawn/src/dawn/tests/unittests/VersionTests.cpp b/third_party/dawn/src/dawn/tests/unittests/VersionTests.cpp
+deleted file mode 100644
+index 60172a7..0000000
+--- a/third_party/dawn/src/dawn/tests/unittests/VersionTests.cpp
++++ /dev/null
+@@ -1,29 +0,0 @@
+-// Copyright 2022 The Dawn Authors
+-//
+-// Licensed under the Apache License, Version 2.0 (the "License");
+-// you may not use this file except in compliance with the License.
+-// You may obtain a copy of the License at
+-//
+-//     http://www.apache.org/licenses/LICENSE-2.0
+-//
+-// Unless required by applicable law or agreed to in writing, software
+-// distributed under the License is distributed on an "AS IS" BASIS,
+-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-// See the License for the specific language governing permissions and
+-// limitations under the License.
+-
+-#include <gmock/gmock.h>
+-#include <gtest/gtest.h>
+-
+-#include "dawn/common/Version_autogen.h"
+-
+-namespace dawn { namespace {
+-
+-    using ::testing::SizeIs;
+-
+-    TEST(VersionTests, GitCommitHashLength) {
+-        // Git hashes should be 40 characters long.
+-        EXPECT_THAT(std::string(kGitHash), SizeIs(40));
+-    }
+-
+-}}  // namespace dawn::


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

commit:     f0224834f4c1c17bd06bc66ef05f327e1fe26c66
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Apr  5 08:14:31 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Apr  5 08:14:31 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f0224834

www-client/chromium: security cleanup

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

 www-client/chromium/Manifest                       |    2 -
 www-client/chromium/chromium-99.0.4844.84.ebuild   | 1013 --------------------
 .../chromium/files/chromium-98-system-libdrm.patch |   34 -
 .../chromium/files/chromium-glibc-2.34-r1.patch    |   20 -
 4 files changed, 1069 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b7741cf49d5e..75e19083335c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -5,5 +5,3 @@ DIST chromium-101-patchset-3.tar.xz 3236 BLAKE2B 6a190eb102a2d330a1224cd132f41ce
 DIST chromium-101.0.4951.15.tar.xz 1400555704 BLAKE2B 2757239c9935af8c8b7a2ed973ed6f5e4c1fa36248ccdabd9c216409cd87ed28149cc38295284679e752789046aa74ea0394b682722592f177cd1d7d6b456a2a SHA512 008a94fa4fd06055bf98c3e49b934a410a34eeff06443ca5ee3b5daef9ac992364a6d362acd169861acd7b25bf64f5cdbbf8b9d751598dcfd47347e0b674d0f5
 DIST chromium-102-patchset-1.tar.xz 3804 BLAKE2B 099109dab19ef3e45a1927a893b5d5484d8743458b2027b3cc3aad644f970bbd3fafc2d56f958b33c52b8aaa42f5498ffd4a73baf82374e73e3aaa7deebbefe2 SHA512 1411050d819034e1eeee2918cd8d5daf29982e7a3965d1f0cd9833dfddd488108aa38780f459ec0abc7d5b5dfa395e3f464a3555d6208908966e0c23fb4af01f
 DIST chromium-102.0.4972.0.tar.xz 1405292324 BLAKE2B 470dc49986b34b7c8c8759a44ab28b5ee562fce6999ec1456a357d16c2fd0239f734937caef658363b04e1e6889410b4d1773325c120545a7537c640c66e6ae2 SHA512 b4e39297c42a51cf7ab52c8022191434bcd583a1ee3b56a6e5dcce9e0c9d3dfd6f12cb09efb1562efb9b29770af7fe930d850eb31a551e7bf41507cec7757167
-DIST chromium-99-patchset-3.tar.xz 3912 BLAKE2B 79030156e81ebd6b3c348fb429e23d0c866059e047e7cdc0f656a1b1ee290f3afa8b358d0e1df18a86616a35a9a256e7432a5ab4e9b952c7a360aed871236659 SHA512 63d951cb3d17c1d02d9ddbee3a44aca000c5ba2f908012584944ce7fc435aebfe39b9628d4bd043df97c4dd7afa0ad614c65368ca759b64a84654126f06f9ea8
-DIST chromium-99.0.4844.84.tar.xz 1326587000 BLAKE2B 9a59f6f521ed9d1ad5d061f9cad4df969c163b532089a18215b0c92de263f838ae64358cc3c52eaf28843e1eedcfb4009d76cbfa1882f5985d2dc5e2e86365a2 SHA512 7d8bd7e03fc3c8f546f4b9d49fd0191a9b174f1eea4ea53673e0337dbe985ee56b31de132bf0b228ca741416f9b6aa707ee182021fc65df37b193aab75ab05cc

diff --git a/www-client/chromium/chromium-99.0.4844.84.ebuild b/www-client/chromium/chromium-99.0.4844.84.ebuild
deleted file mode 100644
index 74ee1e8d0757..000000000000
--- a/www-client/chromium/chromium-99.0.4844.84.ebuild
+++ /dev/null
@@ -1,1013 +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="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/stable"
-KEYWORDS="amd64 ~arm64 ~x86"
-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 !libcxx )
-	screencast? ( wayland )
-"
-
-COMMON_X_DEPEND="
-	x11-libs/gdk-pixbuf:2
-	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:=
-	virtual/opengl
-"
-
-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:=
-	!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] )
-		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? (
-		${COMMON_X_DEPEND}
-		>=app-accessibility/at-spi2-atk-2.26:2
-		>=app-accessibility/at-spi2-core-2.26:2
-		>=dev-libs/atk-2.26
-		cups? ( >=net-print/cups-1.3.11:= )
-		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/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?] )
-	)
-"
-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-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}
-
-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() {
-	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 || 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
-		fi
-	fi
-
-	# 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"
-		fi
-		if ! use component-build; then
-			CHECKREQS_MEMORY="16G"
-		fi
-	fi
-	check-reqs_pkg_setup
-}
-
-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-97-arm-tflite-cast.patch"
-		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-98-system-libdrm.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.patch"
-		"${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
-
-	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/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/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 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 )
-	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
-	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 ]] || 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 || use libcxx; 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\""
-		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 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 [[ $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.
-	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"
-	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_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"
-			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 && ! 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-98-system-libdrm.patch b/www-client/chromium/files/chromium-98-system-libdrm.patch
deleted file mode 100644
index f2f18beda3db..000000000000
--- a/www-client/chromium/files/chromium-98-system-libdrm.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-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/files/chromium-glibc-2.34-r1.patch b/www-client/chromium/files/chromium-glibc-2.34-r1.patch
deleted file mode 100644
index 0747b4f1cedb..000000000000
--- a/www-client/chromium/files/chromium-glibc-2.34-r1.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- 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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2022-03-06  8:29 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2022-03-06  8:29 UTC (permalink / raw
  To: gentoo-commits

commit:     5261ceb6e76fdcdcc6a4b44105624958c010a176
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  6 08:26:20 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Mar  6 08:29:29 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5261ceb6

www-client/chromium: dev channel bump to 101.0.4919.0

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

 www-client/chromium/Manifest                       |    2 +
 www-client/chromium/chromium-101.0.4919.0.ebuild   | 1012 ++++++++++++++++++++
 .../files/chromium-101-libxml-unbundle.patch       |   10 +
 .../chromium/files/chromium-101-system-icu.patch   |   26 +
 4 files changed, 1050 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 192ff81999a2..4765553788af 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +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-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.4919.0.ebuild
new file mode 100644
index 000000000000..86e690d0f33d
--- /dev/null
+++ b/www-client/chromium/chromium-101.0.4919.0.ebuild
@@ -0,0 +1,1012 @@
+# 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 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 !libcxx )
+	screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+	x11-libs/gdk-pixbuf:2
+	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:=
+	virtual/opengl
+"
+
+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:=
+	!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:= )
+		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:=
+		|| (
+			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? (
+		${COMMON_X_DEPEND}
+		>=app-accessibility/at-spi2-atk-2.26:2
+		>=app-accessibility/at-spi2-core-2.26:2
+		>=dev-libs/atk-2.26
+		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/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?] )
+	)
+"
+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-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}
+
+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() {
+	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 || 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
+		fi
+	fi
+
+	# 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"
+		fi
+		if ! use component-build; then
+			CHECKREQS_MEMORY="16G"
+		fi
+	fi
+	check-reqs_pkg_setup
+}
+
+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-97-arm-tflite-cast.patch"
+		"${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"
+	)
+
+	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/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/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/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 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 )
+	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
+	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 ]] || 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 || use libcxx; 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\""
+		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
+
+	# 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 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 [[ $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.
+	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"
+	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_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"
+			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 && ! 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-101-libxml-unbundle.patch b/www-client/chromium/files/chromium-101-libxml-unbundle.patch
new file mode 100644
index 000000000000..5699bc8f8eaf
--- /dev/null
+++ b/www-client/chromium/files/chromium-101-libxml-unbundle.patch
@@ -0,0 +1,10 @@
+--- a/build/linux/unbundle/libxml.gn
++++ b/build/linux/unbundle/libxml.gn
+@@ -19,6 +19,7 @@ static_library("libxml_utils") {
+     ":xml_reader",
+     ":xml_writer",
+     "//base/test:test_support",
++    "//services/data_decoder:lib",
+     "//services/data_decoder:xml_parser_fuzzer_deps",
+   ]
+   sources = [

diff --git a/www-client/chromium/files/chromium-101-system-icu.patch b/www-client/chromium/files/chromium-101-system-icu.patch
new file mode 100644
index 000000000000..2e8557257da2
--- /dev/null
+++ b/www-client/chromium/files/chromium-101-system-icu.patch
@@ -0,0 +1,26 @@
+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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2022-03-06  7:59 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2022-03-06  7:59 UTC (permalink / raw
  To: gentoo-commits

commit:     96b76c0fe868ae9cc1bad0d774c0de6792ab7862
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  6 07:58:15 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Mar  6 07:59:00 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96b76c0f

www-client/chromium: security cleanup

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

 www-client/chromium/Manifest                       |   2 -
 www-client/chromium/chromium-98.0.4758.102.ebuild  | 964 ---------------------
 .../chromium/files/chromium-glibc-2.34.patch       |  50 --
 3 files changed, 1016 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d55771717801..192ff81999a2 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,4 @@
 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-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
 DIST chromium-99.0.4844.51.tar.xz 1316125164 BLAKE2B 5dc0c956b68301d48cd02af6ca2ac7330eaf46175038426587f7c7fe9baa228c25c17dc184f80f8b8fb6d069da981fcf1cb00231810bd70796dc4b0097cffc9b SHA512 85f81afa35907d59e7dee328c1c30d61a4106b8d5e9dabad4888c0a1962d8e4debfb88358417123979d8a4ad471acbf8d90c0a3bb2cc9bac5fef71b800bcc1af

diff --git a/www-client/chromium/chromium-98.0.4758.102.ebuild b/www-client/chromium/chromium-98.0.4758.102.ebuild
deleted file mode 100644
index 174ca60c0f59..000000000000
--- a/www-client/chromium/chromium-98.0.4758.102.ebuild
+++ /dev/null
@@ -1,964 +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="5"
-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-97-arm-tflite-cast.patch"
-		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
-		"${FILESDIR}/chromium-98-system-libdrm.patch"
-		"${FILESDIR}/chromium-98-gtk4-build.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
-		# 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
-	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-glibc-2.34.patch b/www-client/chromium/files/chromium-glibc-2.34.patch
deleted file mode 100644
index 64c03a6adae6..000000000000
--- a/www-client/chromium/files/chromium-glibc-2.34.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-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.
-diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc
-index ca6b595..1c1ee42 100644
---- 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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2022-02-15 18:45 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2022-02-15 18:45 UTC (permalink / raw
  To: gentoo-commits

commit:     72eb5dbbfcfc32433f52d674b6dd1ee179eefc35
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 15 18:44:37 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Feb 15 18:45:08 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=72eb5dbb

www-client/chromium: stable channel bump to 98.0.4758.102

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

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-98.0.4758.102.ebuild  | 961 +++++++++++++++++++++
 .../chromium/files/chromium-98-gtk4-build.patch    |  56 ++
 3 files changed, 1018 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 484923dcbaf7..e99ad31c5822 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,7 @@
 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-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-98.0.4758.80.tar.xz 1242425668 BLAKE2B 78bc4c1956228e64740e01a69b09e9839aeb24e75cf72d251266936a98a7480ab8eb83595aa7c97d270d18441629e7fea97a2a1520e48c46f0d4bd6855bb2a53 SHA512 34eea957e8e67214c368dc9109a8d582ea7092b24f99467652dbda1cb236330ac2c6b3a394cc7f0389a673958019a7e59621d3eafe8c6beb69a8397ba76a4b88
 DIST chromium-99-patchset-3.tar.xz 3912 BLAKE2B 79030156e81ebd6b3c348fb429e23d0c866059e047e7cdc0f656a1b1ee290f3afa8b358d0e1df18a86616a35a9a256e7432a5ab4e9b952c7a360aed871236659 SHA512 63d951cb3d17c1d02d9ddbee3a44aca000c5ba2f908012584944ce7fc435aebfe39b9628d4bd043df97c4dd7afa0ad614c65368ca759b64a84654126f06f9ea8
 DIST chromium-99.0.4844.27.tar.xz 1316323204 BLAKE2B 5fcd94e8c5ffc07c35068d999d50a08a2ba6b91b640e429ba06857dde4abdca226419420d80b9dd5cdfb95886eb17a7cf25248d51e880eff85e9be08bf21608b SHA512 a474bc36f0fcecf36fec9df1a84b0a64ae01cf30fe2b3275007e271533cd334e6b37d0ec99a2cf27360772fae43570662f8044532c5e905210ddee4705684fe2

diff --git a/www-client/chromium/chromium-98.0.4758.102.ebuild b/www-client/chromium/chromium-98.0.4758.102.ebuild
new file mode 100644
index 000000000000..e0fddd2da8c7
--- /dev/null
+++ b/www-client/chromium/chromium-98.0.4758.102.ebuild
@@ -0,0 +1,961 @@
+# 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="5"
+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-97-arm-tflite-cast.patch"
+		"${FILESDIR}/chromium-98-EnumTable-crash.patch"
+		"${FILESDIR}/chromium-98-system-libdrm.patch"
+		"${FILESDIR}/chromium-98-gtk4-build.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/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-98-gtk4-build.patch b/www-client/chromium/files/chromium-98-gtk4-build.patch
new file mode 100644
index 000000000000..94d2f1f00d58
--- /dev/null
+++ b/www-client/chromium/files/chromium-98-gtk4-build.patch
@@ -0,0 +1,56 @@
+--- a/ui/gtk/gsk.sigs
++++ b/ui/gtk/gsk.sigs
+@@ -1,16 +1,16 @@
+-GskRenderNodeType gsk_render_node_get_node_type(GskRenderNode* node);
++GskRenderNodeType gsk_render_node_get_node_type(const GskRenderNode* node);
+ void gsk_render_node_unref(GskRenderNode* node);
+-GskRenderNode* gsk_transform_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_opacity_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_color_matrix_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_repeat_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_clip_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_rounded_clip_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_shadow_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_blur_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_debug_node_get_child(GskRenderNode* node);
+-GskRenderNode* gsk_container_node_get_child(GskRenderNode* node, guint idx);
+-GskRenderNode* gsk_gl_shader_node_get_child(GskRenderNode* node, guint idx);
+-guint gsk_container_node_get_n_children(GskRenderNode* node);
+-guint gsk_gl_shader_node_get_n_children(GskRenderNode* node);
+-GdkTexture* gsk_texture_node_get_texture(GskRenderNode* node);
++GskRenderNode* gsk_transform_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_opacity_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_color_matrix_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_repeat_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_clip_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_rounded_clip_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_shadow_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_blur_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_debug_node_get_child(const GskRenderNode* node);
++GskRenderNode* gsk_container_node_get_child(const GskRenderNode* node, guint idx);
++GskRenderNode* gsk_gl_shader_node_get_child(const GskRenderNode* node, guint idx);
++guint gsk_container_node_get_n_children(const GskRenderNode* node);
++guint gsk_gl_shader_node_get_n_children(const GskRenderNode* node);
++GdkTexture* gsk_texture_node_get_texture(const GskRenderNode* node);
+--- a/ui/gtk/gtk_util.cc
++++ b/ui/gtk/gtk_util.cc
+@@ -705,7 +705,7 @@
+   DCHECK(GtkCheckVersion(4));
+   struct {
+     GskRenderNodeType node_type;
+-    GskRenderNode* (*get_child)(GskRenderNode*);
++    GskRenderNode* (*get_child)(const GskRenderNode*);
+   } constexpr simple_getters[] = {
+       {GSK_TRANSFORM_NODE, gsk_transform_node_get_child},
+       {GSK_OPACITY_NODE, gsk_opacity_node_get_child},
+@@ -719,8 +719,8 @@
+   };
+   struct {
+     GskRenderNodeType node_type;
+-    guint (*get_n_children)(GskRenderNode*);
+-    GskRenderNode* (*get_child)(GskRenderNode*, guint);
++    guint (*get_n_children)(const GskRenderNode*);
++    GskRenderNode* (*get_child)(const GskRenderNode*, guint);
+   } constexpr container_getters[] = {
+       {GSK_CONTAINER_NODE, gsk_container_node_get_n_children,
+        gsk_container_node_get_child},


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

commit:     7a60cec57a2fe78292758c678697d0f16819ad90
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 15 08:47:52 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Jan 15 08:48:27 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a60cec5

www-client/chromium: fix building with dotprod extension on arm64

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

 .../chromium/chromium-97.0.4692.71-r1.ebuild       |  1 +
 www-client/chromium/chromium-98.0.4758.54.ebuild   |  1 +
 www-client/chromium/chromium-99.0.4818.0.ebuild    |  1 +
 .../files/chromium-97-arm-tflite-cast.patch        | 26 ++++++++++++++++++++++
 4 files changed, 29 insertions(+)

diff --git a/www-client/chromium/chromium-97.0.4692.71-r1.ebuild b/www-client/chromium/chromium-97.0.4692.71-r1.ebuild
index 18c2360c6a75..1534ae2ed09e 100644
--- a/www-client/chromium/chromium-97.0.4692.71-r1.ebuild
+++ b/www-client/chromium/chromium-97.0.4692.71-r1.ebuild
@@ -234,6 +234,7 @@ src_prepare() {
 		"${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"

diff --git a/www-client/chromium/chromium-98.0.4758.54.ebuild b/www-client/chromium/chromium-98.0.4758.54.ebuild
index af028da209f3..434c6e1fdf92 100644
--- a/www-client/chromium/chromium-98.0.4758.54.ebuild
+++ b/www-client/chromium/chromium-98.0.4758.54.ebuild
@@ -231,6 +231,7 @@ src_prepare() {
 		"${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"
 		"${FILESDIR}/chromium-glibc-2.34.patch"

diff --git a/www-client/chromium/chromium-99.0.4818.0.ebuild b/www-client/chromium/chromium-99.0.4818.0.ebuild
index 709268237eb6..b2d9fb16d746 100644
--- a/www-client/chromium/chromium-99.0.4818.0.ebuild
+++ b/www-client/chromium/chromium-99.0.4818.0.ebuild
@@ -231,6 +231,7 @@ src_prepare() {
 		"${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"
 		"${FILESDIR}/chromium-glibc-2.34-r1.patch"

diff --git a/www-client/chromium/files/chromium-97-arm-tflite-cast.patch b/www-client/chromium/files/chromium-97-arm-tflite-cast.patch
new file mode 100644
index 000000000000..843a384c76d3
--- /dev/null
+++ b/www-client/chromium/files/chromium-97-arm-tflite-cast.patch
@@ -0,0 +1,26 @@
+vreinterpret_s32_s8() casts int8x8_t to int32x2_t. However, third argument
+of vdotq_lane_s32() is of type int8x8_t.
+
+--- a/third_party/tflite/src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h
++++ b/third_party/tflite/src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h
+@@ -129,16 +129,14 @@ inline int32x4_t vdotq_four_lane_s32(int32x4_t acc, int8x16_t lhs,
+                                      int8x16_t rhs, const int lane) {
+   switch (lane) {
+     case 0:
+-      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_low_s8(rhs)), 0);
++      return vdotq_lane_s32(acc, lhs, vget_low_s8(rhs), 0);
+     case 1:
+-      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_low_s8(rhs)), 1);
++      return vdotq_lane_s32(acc, lhs, vget_low_s8(rhs), 1);
+     case 2:
+-      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_high_s8(rhs)),
+-                            0);
++      return vdotq_lane_s32(acc, lhs, vget_high_s8(rhs), 0);
+     case 3:
+     default:
+-      return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_high_s8(rhs)),
+-                            1);
++      return vdotq_lane_s32(acc, lhs, vget_high_s8(rhs), 1);
+   }
+ }
+ 


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

commit:     65d397e4463368cb67058b2c9ca56a2820a5bd77
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 12 19:55:20 2022 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Jan 12 19:56:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65d397e4

www-client/chromium: fix tag dragging (M97)

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>

 ...2.71.ebuild => chromium-97.0.4692.71-r1.ebuild} |  2 +
 .../files/chromium-97-fix-tag-dragging.patch       | 52 ++++++++++++++++++++++
 2 files changed, 54 insertions(+)

diff --git a/www-client/chromium/chromium-97.0.4692.71.ebuild b/www-client/chromium/chromium-97.0.4692.71-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-97.0.4692.71.ebuild
rename to www-client/chromium/chromium-97.0.4692.71-r1.ebuild
index e11b724ca6f8..07dd572e2c9e 100644
--- a/www-client/chromium/chromium-97.0.4692.71.ebuild
+++ b/www-client/chromium/chromium-97.0.4692.71-r1.ebuild
@@ -232,6 +232,8 @@ src_prepare() {
 		"${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-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-fix-tag-dragging.patch b/www-client/chromium/files/chromium-97-fix-tag-dragging.patch
new file mode 100644
index 000000000000..6afd5a78ec05
--- /dev/null
+++ b/www-client/chromium/files/chromium-97-fix-tag-dragging.patch
@@ -0,0 +1,52 @@
+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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2021-12-07 21:20 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2021-12-07 21:20 UTC (permalink / raw
  To: gentoo-commits

commit:     0a80fce1e06160885815b51aa22017bbf1732be6
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  7 21:20:29 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Dec  7 21:20:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a80fce1

www-client/chromium: security cleanup

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

 www-client/chromium/Manifest                       |   1 -
 www-client/chromium/chromium-96.0.4664.45.ebuild   | 956 ---------------------
 .../chromium/files/chromium-96-xfce-maximize.patch |  51 --
 3 files changed, 1008 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 14d8c01c9871..cb9423f163c5 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,5 @@
 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.45.tar.xz 1221965612 BLAKE2B e990a2c3f0ae6d8bc4b6dddbecea2c640bb6491d9b321a301c1f168a35ad37553a23b8290a28dc05d50be005d3ad57fa69af2d3574266b9c83dcd24e65116c35 SHA512 0b1ccaf95697c14cb080dcb22e8584817ddcd98e704d081bc4f35a22dcfc8cca82dcabc4b82ad89ed0cd64752d226f389941bfab33b615e3948e2f778b9d9028
 DIST chromium-96.0.4664.93.tar.xz 1209670724 BLAKE2B ebc99f6232fb65874dc73af6157c7175c1b7bf98f800819c343bdb37c42f49369b6af0146a093663a09a2588652eeb196526e9de776098f69e5ba8d75d205e69 SHA512 3441380372014dc338418f494fcd7407dd3888cea07af3415c9e8ff2c3547abbd516ae03eb4b831b89923817046a6d1549fb9558db9aa271aa0ba397e514c0b3
 DIST chromium-97-patchset-4.tar.xz 4240 BLAKE2B 450d013b6fd68f7e0bcb21a2b0828d531eda86965e636fe24fc36c2e7e1f74fe93f27f0d4b1d03e67c605797e28db37de4949ff78d5106e07b0362bec4bc5d8a SHA512 181c706c83bdbe07b2e7f02b654922a860aea761ad267e6545fb7d56b66373b003c1c79fae5cd45eeb3be8917782fa45df1c05bbb00e170f0146e7385f4246c4
 DIST chromium-97.0.4692.36.tar.xz 1213467240 BLAKE2B 5a21c2b94fce104bef4dba895f170b496167154d0c364631f2f02d62a4ebb3fd0fa9143f570e4aad50d6b84214a6682b297aeef3cf6963fe7948a9b420c777bd SHA512 8aa99149c0bdf740988a0ba2d8e397f29df5b4372c6ab1e6700893e9a5978153c7d9701439ce7925de2ae521da689e5a1116876977e06d0c36350d03e10f8fc0

diff --git a/www-client/chromium/chromium-96.0.4664.45.ebuild b/www-client/chromium/chromium-96.0.4664.45.ebuild
deleted file mode 100644
index 5e7bf8cb0468..000000000000
--- a/www-client/chromium/chromium-96.0.4664.45.ebuild
+++ /dev/null
@@ -1,956 +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 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-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-96-xfce-maximize.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-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
-		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 )
-	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
-}
-
-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-96-xfce-maximize.patch b/www-client/chromium/files/chromium-96-xfce-maximize.patch
deleted file mode 100644
index 77cf410cfe95..000000000000
--- a/www-client/chromium/files/chromium-96-xfce-maximize.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-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"));
- }
- 


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

commit:     06f038ad46e0e1e3b3b594d67356d08e45197ed2
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 24 08:06:09 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Nov 24 08:06:44 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06f038ad

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/824274
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-95.0.4638.69.ebuild   | 953 ---------------------
 .../files/chromium-93-EnumTable-crash.patch        |  79 --
 .../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 -
 .../chromium/files/chromium-95-harfbuzz-3.patch    |  31 -
 .../chromium/files/chromium-95-maldoca-zlib.patch  |  13 -
 .../chromium/files/chromium-95-xfce-maximize.patch |  30 -
 9 files changed, 1411 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index db139b55a9ca..7bc39bbdd2e5 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-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-ppc64le-1.tar.xz 29224 BLAKE2B 3369a3b15eb4f42761e01758135995a1f34e40cecbfc0372a4bc17b393d50b276ea5a0813d1c57f73f0dd34cf2a021356d25c2b4dcaa95998ffc082545dc915c SHA512 256d64fbf192e55d77c6580d36766a67dadfbd0f1e34e49bfc6d55114da7f2252d783db0dd09123996a71a01ec4a3d5c70fd1a5c8852db135857b8495f7cfbf1
 DIST chromium-96.0.4664.45.tar.xz 1221965612 BLAKE2B e990a2c3f0ae6d8bc4b6dddbecea2c640bb6491d9b321a301c1f168a35ad37553a23b8290a28dc05d50be005d3ad57fa69af2d3574266b9c83dcd24e65116c35 SHA512 0b1ccaf95697c14cb080dcb22e8584817ddcd98e704d081bc4f35a22dcfc8cca82dcabc4b82ad89ed0cd64752d226f389941bfab33b615e3948e2f778b9d9028

diff --git a/www-client/chromium/chromium-95.0.4638.69.ebuild b/www-client/chromium/chromium-95.0.4638.69.ebuild
deleted file mode 100644
index 53d1b4a46cac..000000000000
--- a/www-client/chromium/chromium-95.0.4638.69.ebuild
+++ /dev/null
@@ -1,953 +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="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 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.1943
-	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-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-95-harfbuzz-3.patch"
-		"${FILESDIR}/chromium-95-xfce-maximize.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/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/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 )
-		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
-		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 )
-	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"
-	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-93-EnumTable-crash.patch b/www-client/chromium/files/chromium-93-EnumTable-crash.patch
deleted file mode 100644
index a5c2defa0ae2..000000000000
--- a/www-client/chromium/files/chromium-93-EnumTable-crash.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-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()))

diff --git a/www-client/chromium/files/chromium-95-eigen-avx-1.patch b/www-client/chromium/files/chromium-95-eigen-avx-1.patch
deleted file mode 100644
index 21d520cc4d44..000000000000
--- a/www-client/chromium/files/chromium-95-eigen-avx-1.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-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
deleted file mode 100644
index 1cb8007b6a6a..000000000000
--- a/www-client/chromium/files/chromium-95-eigen-avx-2.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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
deleted file mode 100644
index 44e9ef4e0ec0..000000000000
--- a/www-client/chromium/files/chromium-95-eigen-avx-3.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-95-harfbuzz-3.patch b/www-client/chromium/files/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/www-client/chromium/files/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
-   // Retain all variation information for OpenType variation fonts. See:
-   // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
-   hb_set_t* skip_subset =
--      hb_subset_input_no_subset_tables_set(input.get());  // Owned by |input|.
-+      hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
-   hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
-   hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
-   hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));

diff --git a/www-client/chromium/files/chromium-95-maldoca-zlib.patch b/www-client/chromium/files/chromium-95-maldoca-zlib.patch
deleted file mode 100644
index 1f64a66ddcdb..000000000000
--- a/www-client/chromium/files/chromium-95-maldoca-zlib.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/third_party/maldoca/BUILD.gn b/third_party/maldoca/BUILD.gn
-index eeab205..29a0a2c 100644
---- a/third_party/maldoca/BUILD.gn
-+++ b/third_party/maldoca/BUILD.gn
-@@ -224,7 +224,7 @@ source_set("maldoca-ole") {
-     "//third_party/libxml",
-     "//third_party/protobuf:protobuf_lite",
-     "//third_party/re2",
--    "//third_party/zlib:zlib_common_headers",
-+    "//third_party/zlib:zlib",
-     "//third_party/zlib/google:zip",
-   ]
- 

diff --git a/www-client/chromium/files/chromium-95-xfce-maximize.patch b/www-client/chromium/files/chromium-95-xfce-maximize.patch
deleted file mode 100644
index 296d97873ddc..000000000000
--- a/www-client/chromium/files/chromium-95-xfce-maximize.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2021-10-10 11:16 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2021-10-10 11:16 UTC (permalink / raw
  To: gentoo-commits

commit:     cdccf09cb37bce1cdb93797ab54ce474d0fff0b3
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 10 11:14:58 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Oct 10 11:15:22 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdccf09c

www-client/chromium: fix building with harfbuzz-3 (M95)

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/chromium-95.0.4638.40.ebuild   |  1 +
 .../chromium/files/chromium-95-harfbuzz-3.patch    | 31 ++++++++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/www-client/chromium/chromium-95.0.4638.40.ebuild b/www-client/chromium/chromium-95.0.4638.40.ebuild
index 5053fd82ccc..377ba36b7e9 100644
--- a/www-client/chromium/chromium-95.0.4638.40.ebuild
+++ b/www-client/chromium/chromium-95.0.4638.40.ebuild
@@ -237,6 +237,7 @@ src_prepare() {
 		"${FILESDIR}/chromium-95-eigen-avx-1.patch"
 		"${FILESDIR}/chromium-95-eigen-avx-2.patch"
 		"${FILESDIR}/chromium-95-eigen-avx-3.patch"
+		"${FILESDIR}/chromium-95-harfbuzz-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-harfbuzz-3.patch b/www-client/chromium/files/chromium-95-harfbuzz-3.patch
new file mode 100644
index 00000000000..33fe9556aaf
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-harfbuzz-3.patch
@@ -0,0 +1,31 @@
+From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
+From: Dominik Röttsches <drott@chromium.org>
+Date: Tue, 28 Sep 2021 15:31:50 +0000
+Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
+
+Fixed: 1252284
+Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
+Commit-Queue: Dominik Röttsches <drott@chromium.org>
+Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
+Auto-Submit: Dominik Röttsches <drott@chromium.org>
+Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
+Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#925776}
+
+(only components/paint_preview/common/subset_font.cc)
+---
+
+diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
+index 45daea7b1..43a448e 100644
+--- a/components/paint_preview/common/subset_font.cc
++++ b/components/paint_preview/common/subset_font.cc
+@@ -79,7 +79,7 @@
+   // Retain all variation information for OpenType variation fonts. See:
+   // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
+   hb_set_t* skip_subset =
+-      hb_subset_input_no_subset_tables_set(input.get());  // Owned by |input|.
++      hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
+   hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
+   hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
+   hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));


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

commit:     e08515cdb0db40ea6e3ff2ea3ea2420bee94ca10
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 25 07:46:34 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Sep 25 07:47:04 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e08515cd

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/814221
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-93.0.4577.82.ebuild   | 948 ---------------------
 .../chromium-93-fix-build-with-system-ffmpeg.patch |  85 --
 3 files changed, 1037 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 5d9a625d13f..69007383459 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,9 +1,5 @@
-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.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.54.tar.xz 1039891076 BLAKE2B 2591eb0f886f08e2fad3b8ebff109f1da7336417e9be9f480a4278554dff4886def6fb52b5e3488b9f85b7f5025f9f835469484c6a4860b0d38eb3f77a627a50 SHA512 3e5e2a800decd30d0297aa9926f7d0f47ab47f930ed42131c53b9533d0245b09d8f2b404b0f84ca083817c6c55f7dce6518046fde4889e5d79be505043fdc084
 DIST chromium-94.0.4606.61.tar.xz 1039880428 BLAKE2B ed6993c9f1352c58bb6f534d1bae96ed379b2114d76f4383c79211589482d12e81df74f4ca057c26c54b47ee9b6ba94012bc9ec7391f510b2820ecac0df5b031 SHA512 e33e1dfdfc2839b2c7481c4cb4482a9456a76d5e2bee066d21dbe8a01c619104191978120a1b87606722d9b9d53333ab2046df80095805b252c41036a11e3c57
 DIST chromium-95-patchset-4.tar.xz 4308 BLAKE2B e91cb78d2357af8c0dfc66e4d148c5e6ef20cf9a811bcebf411e07cc5af73f30760d889842923afb2945e57b0f67330deac3f9068b6ce7c487482a6434e5c672 SHA512 152657e13afab3caca6a9ff6c0b51203f5bc8b0a4075a4396794d7a85caddce1b26f989c7dede5fa9a54316334099d21889e6767885fbf974260a6e9bd90df9d
 DIST chromium-95.0.4638.17.tar.xz 1212354740 BLAKE2B 5f4d65a3c21814cebe10134e73ec6c546beef92a5c3dbfa4798dd42141c0705cabee9f3b11a22c01422cf7e41e197ff7d249d84422728eb5411f691f7029f1ff SHA512 1e730e2855343d86d30a21e2d2cd7687b72f247e9e443c26f91aca3326bb70bacf525f23eea4b047ed441a6134774c1b0d931c601ff8125df226a1caff5989b7
-DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb

diff --git a/www-client/chromium/chromium-93.0.4577.82.ebuild b/www-client/chromium/chromium-93.0.4577.82.ebuild
deleted file mode 100644
index d0757d6acb4..00000000000
--- a/www-client/chromium/chromium-93.0.4577.82.ebuild
+++ /dev/null
@@ -1,948 +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="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
-
-	# 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/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
deleted file mode 100644
index c1906683719..00000000000
--- a/www-client/chromium/files/chromium-93-fix-build-with-system-ffmpeg.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2021-09-18 11:15 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2021-09-18 11:15 UTC (permalink / raw
  To: gentoo-commits

commit:     b6ab1d50a96898abd751de99503f1b888cc9c83c
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 18 11:14:44 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Sep 18 11:14:44 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6ab1d50

www-client/chromium: dev channel bump to 95.0.4638.10

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

 www-client/chromium/Manifest                                |  4 ++--
 ...mium-95.0.4636.4.ebuild => chromium-95.0.4638.10.ebuild} |  6 +++++-
 www-client/chromium/files/chromium-95-maldoca-zlib.patch    | 13 +++++++++++++
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0c20e1aaebb..8449f124851 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.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.50.tar.xz 1039765752 BLAKE2B 7bf10b9de827e96dde2d3882554f9020e0c26158a9045a3d0131ed8ef34ea241d383ec9ba161e792ce9c68fa712a4677e395a5923817d9c69d4c6c305c8fc3c6 SHA512 27128f56d4e1bab5d63dee908e60022f38693e27eb9e1d81754dc8da59dedc23897e5e962c6be125af067f181e9273a1eebd623256faba9692de667b41e85aeb
-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 chromium-95-patchset-4.tar.xz 4308 BLAKE2B e91cb78d2357af8c0dfc66e4d148c5e6ef20cf9a811bcebf411e07cc5af73f30760d889842923afb2945e57b0f67330deac3f9068b6ce7c487482a6434e5c672 SHA512 152657e13afab3caca6a9ff6c0b51203f5bc8b0a4075a4396794d7a85caddce1b26f989c7dede5fa9a54316334099d21889e6767885fbf974260a6e9bd90df9d
+DIST chromium-95.0.4638.10.tar.xz 1212124668 BLAKE2B 74b1ca8200914768160ef9c358d1b448c4df587660b972c399b6ea456ed6519530776c6e83f3c14215ffc8476891dfe1c7e007bf8eb25a9373c1843ecd6728eb SHA512 f2007d9f93478cddfa4e6a34c2c7f0c3d21317b9cdbd48ef8f25cb81c63350c6aeec18412e73b519c5a48a306d80050ec2ecd48ed3dd9ce983979d2c97d48653
 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb

diff --git a/www-client/chromium/chromium-95.0.4636.4.ebuild b/www-client/chromium/chromium-95.0.4638.10.ebuild
similarity index 99%
rename from www-client/chromium/chromium-95.0.4636.4.ebuild
rename to www-client/chromium/chromium-95.0.4638.10.ebuild
index bd299825d13..342045a937f 100644
--- a/www-client/chromium/chromium-95.0.4636.4.ebuild
+++ b/www-client/chromium/chromium-95.0.4638.10.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="3"
+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"
@@ -233,6 +233,7 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-93-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-95-maldoca-zlib.patch"
 		"${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
@@ -379,6 +380,9 @@ src_prepare() {
 		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

diff --git a/www-client/chromium/files/chromium-95-maldoca-zlib.patch b/www-client/chromium/files/chromium-95-maldoca-zlib.patch
new file mode 100644
index 00000000000..1f64a66ddcd
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-maldoca-zlib.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/maldoca/BUILD.gn b/third_party/maldoca/BUILD.gn
+index eeab205..29a0a2c 100644
+--- a/third_party/maldoca/BUILD.gn
++++ b/third_party/maldoca/BUILD.gn
+@@ -224,7 +224,7 @@ source_set("maldoca-ole") {
+     "//third_party/libxml",
+     "//third_party/protobuf:protobuf_lite",
+     "//third_party/re2",
+-    "//third_party/zlib:zlib_common_headers",
++    "//third_party/zlib:zlib",
+     "//third_party/zlib/google:zip",
+   ]
+ 


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

commit:     821e8d8d6541091f7082d623761b9192ce085b35
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  3 21:07:22 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Tue Aug  3 21:08:13 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=821e8d8d

www-client/chromium: stable channel bump to 92.0.4515.131

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

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-92.0.4515.131.ebuild  | 956 +++++++++++++++++++++
 .../files/chromium-92-crashpad-consent.patch       |  46 +
 3 files changed, 1003 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 30276cf2a39..2ac2953e239 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,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-92.0.4515.131.tar.xz 958012564 BLAKE2B 3f2db5d2293b0c0dad61815ad527c401f6d48756bf7fc9d36e2c7ed87d466747ffe326db7bad2a3ddf039619c37ae0b1bf1cc20ad95ff10f2326a48faf42306a SHA512 5f3bf1288567499455fc8d4e5c04b85a8547d16165746bc4777b2bc48b53e082cfea0d39def4f513fb7f640232bc2e77129ba07e4a21d1c31d9c2bd4d4ee5b68
 DIST chromium-93-patchset-6.tar.xz 6796 BLAKE2B 2688c68becac1187668b459f9827ffca79de6c7ee64299dff20f91cb774af676ec3d95d809b4fc5f7bd663c3b8c904a46ac9cd3ec70a5ce248456dcd48834932 SHA512 eaf0d2bc29c53c7021ccded9c14463bbde2887926c069154c0126ee1bf513bf41a38eeb3dc21023a2e9637ce3e1e541a3b2a79a990bb8becae0da0a04e57c76a
 DIST chromium-93.0.4577.18.tar.xz 1041809024 BLAKE2B 4f67353559143985dd94c862279c16120e35e03e77997140edc236bdc03ca308131acc434741c1585a3ef3e92458a0d4ec97eb5a1006076b09eab5b17e472041 SHA512 939a8692a9432d9c1b9a1bf117bf59e301299e73c465023ca5318948399e6d5522f5f0eacea93b56d745a8d3b223e425c8862f3db312f450f43f0362fce0294d
 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb

diff --git a/www-client/chromium/chromium-92.0.4515.131.ebuild b/www-client/chromium/chromium-92.0.4515.131.ebuild
new file mode 100644
index 00000000000..63504fa0cd2
--- /dev/null
+++ b/www-client/chromium/chromium-92.0.4515.131.ebuild
@@ -0,0 +1,956 @@
+# 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-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.
+	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
+
+	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-crashpad-consent.patch b/www-client/chromium/files/chromium-92-crashpad-consent.patch
new file mode 100644
index 00000000000..956d19eee23
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-crashpad-consent.patch
@@ -0,0 +1,46 @@
+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();
+ }


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

commit:     0f568bf655f5348dbacf740c70c37d6ce351f0c1
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 26 15:45:28 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Jun 26 15:45:39 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f568bf6

www-client/chromium: dev channel bump to 93.0.4549.3

Bug: 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                       |  4 ++--
 ...0.4542.2.ebuild => chromium-93.0.4549.3.ebuild} |  6 ++----
 .../chromium/files/chromium-93-system-ffmpeg.patch | 25 ++++++++++++++++++++++
 3 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 785fce8c630..2ae63cd042f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,7 +4,7 @@ DIST chromium-91.0.4472.106.tar.xz 950214296 BLAKE2B 1c68c3d6ccb593b4516482ba8f1
 DIST chromium-91.0.4472.114.tar.xz 950268264 BLAKE2B e811ec3550434a5f5dcff3f5a0c07d2a951b0479ae8ef7de0dc82c60d63bb19a04ed065b2f8f12b0ba4786244fd0fdba9a38e1f0ae076a9be2fc50bc293453b5 SHA512 7a04d966e8c8b75b5fe063730cbc4734cc9a5a38a50a573193243301930719cef26e2b741f2f893350bb717261302e5d00b0b3264a3fdb8f80a5460223eac5de
 DIST chromium-92-patchset-6.tar.xz 3764 BLAKE2B a7149940b1371e4bd295e6038b87cc13f4edf8d8ed286d9d8d0e63144c2546de39564fc203a4b2e185267e46398efd0414c1f695ee31c78d33a6cd8d7b434016 SHA512 2f104901271d42762ea27f7c8a017307bde7348ec6b84d0c85875a07bf3783ba43bdb886fb3c6376753b6a14102b495a28bdc7adc611992440d2c1345aea035b
 DIST chromium-92.0.4515.59.tar.xz 957613080 BLAKE2B b6d4009e9c0cb90d3c16bac95d383a243c0e0660a521110bb188c1091aa97d84de85f5766e2a1ed908f78637ea786778030a0ae430ddfa8a4505feb5e9385fd4 SHA512 d7dbc569751cb4b3b3fd97429cfda5577d8468ba201914775b27562911010719c84ea2380b11f07c7b5965cd8444676200ae190f06a19e35586a0980d085968b
-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 chromium-93-patchset-4.tar.xz 4452 BLAKE2B a697175dceb03ae19175860c29f93b7f58bb212ba4932822c5c85dd8230a50b0cfefd3968ebb872d0b62fb4371b065fc51192f657c7f0fd5667bb3531344abed SHA512 836cbb1580f3559fc55e110b61120282cd2384da028d244fab5b9bdba475f3162e952bc45b7a827019ca0ebf92127dc0a89ba32c5718bded349c8ba25eecd207
+DIST chromium-93.0.4549.3.tar.xz 989184368 BLAKE2B e0b690797ac99587b3a4385e09d4c9fed51fb75321269b239d931f39ca839ec82d474a5bba90f22e558562a5c395c9680c781fef4f35ead9de9e063a7c900357 SHA512 5e27d524163bddc168d6344d09bc02aed50cba487e8d8310f421cb9a4f2103f5cf1ed036dc9adf572eb950401e74755eb7561fc51f9ed28ac5f92fda3eb210aa
 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.4542.2.ebuild b/www-client/chromium/chromium-93.0.4549.3.ebuild
similarity index 99%
rename from www-client/chromium/chromium-93.0.4542.2.ebuild
rename to www-client/chromium/chromium-93.0.4549.3.ebuild
index c99ac3f994e..2895f1aa216 100644
--- a/www-client/chromium/chromium-93.0.4542.2.ebuild
+++ b/www-client/chromium/chromium-93.0.4549.3.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="3"
+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
@@ -234,6 +234,7 @@ src_prepare() {
 		"${WORKDIR}/patches"
 		"${FILESDIR}/chromium-92-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+		"${FILESDIR}/chromium-93-system-ffmpeg.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -262,9 +263,6 @@ 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

diff --git a/www-client/chromium/files/chromium-93-system-ffmpeg.patch b/www-client/chromium/files/chromium-93-system-ffmpeg.patch
new file mode 100644
index 00000000000..7ed5331c527
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-system-ffmpeg.patch
@@ -0,0 +1,25 @@
+From 04d56bcb5a59c4a36b9bb9ac57a84090033761ce Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 19 Jun 2021 13:08:48 +0000
+Subject: [PATCH] unbundle: add libavcodec/format.h shim headers
+
+Header is included in ffmpeg_demuxer.
+---
+ build/linux/unbundle/ffmpeg.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/unbundle/ffmpeg.gn b/build/linux/unbundle/ffmpeg.gn
+index 978298a..16e2074 100644
+--- a/build/linux/unbundle/ffmpeg.gn
++++ b/build/linux/unbundle/ffmpeg.gn
+@@ -23,6 +23,7 @@ shim_headers("ffmpeg_shim") {
+   root_path = "."
+   headers = [
+     "libavcodec/avcodec.h",
++    "libavcodec/packet.h",
+     "libavformat/avformat.h",
+     "libavutil/imgutils.h",
+   ]
+-- 
+2.31.1
+


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

commit:     c82202486e56dbe7be55fa708154fa1df71fb97b
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 17 12:36:05 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Apr 17 12:38:00 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8220248

www-client/chromium: dev channel bump to 91.0.4472.10

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

 www-client/chromium/Manifest                       |  4 +--
 ....4469.4.ebuild => chromium-91.0.4472.10.ebuild} | 18 +++++------
 .../files/chromium-91-ThemeService-crash.patch     | 36 ++++++++++++++++++++++
 .../chromium/files/chromium-91-system-icu.patch    | 29 +++++++++++++++++
 4 files changed, 74 insertions(+), 13 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 3af48dd8294..f9bb0669943 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,6 +3,6 @@ DIST chromium-89.0.4389.114.tar.xz 890898912 BLAKE2B b9590f83eb54fc1b524a7893f8c
 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-4.tar.xz 3188 BLAKE2B 34d64f4124cb5c020d7d20c883c3409f710b96d5412f8881936e86d78ed034c1d70bd16f9324c5af21f735c3c5f98b4b4cd28cbd7f86f9513df2a5f1ff404772 SHA512 79c1640a7248d628c31fdbf3df296aa888e80f3c90cc6a74be56ac1389d9748b7cce88641e626cd4a5ae298e82fb325a8604fda68378706f0f26a2570e8983a2
-DIST chromium-91.0.4469.4.tar.xz 949712784 BLAKE2B 99453196fb9f2336afffb03affcf7441a1ee5f8c9ce50c76888783b8520f2490299e5fc3448c7f61c270c175e48e55a1f947f8cfdf0053a02513676d9ed8daeb SHA512 413452da449198713e6d10f05b937f95a6c0ffb11b2408dc9ced1048af6f7a406af07f8112fe39f73482723802ff25e51ce0085c598d03dba207a5658385871d
+DIST chromium-91-patchset-5.tar.xz 3648 BLAKE2B 6c8636f63dc857886d09c8ed69b4c61adc627d2280decdf03b548be8ff2cb522ef0def7a240d1c3c9ee71920304a43af571e2146e2828b89c3b6f87373b8c4a1 SHA512 1554feec958291ad3140e2685683befe4b6e0b0ab6a8694c0e02d5b4bf4b7fcad410f17e72099653456fd95ed24a732dd28f2dcfaf146eb3bf68052e2342a481
+DIST chromium-91.0.4472.10.tar.xz 949094512 BLAKE2B 902f09e8f3f45598343524ab6dd6f91267c387d882c83c085fa8021c6db65c9093ac6aa9ad73ce64386a1642d3dbe9aa55cc024cdbcdad14032c89141426c962 SHA512 03cb2671941d3a1d38a424336b7e72ca28db249acc6df4d72d53cf59698cca140e935fa0c1dc07bf1f48e9a240690f7e10e57cff09ce5b86225bc229a27b80fa
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-91.0.4469.4.ebuild b/www-client/chromium/chromium-91.0.4472.10.ebuild
similarity index 98%
rename from www-client/chromium/chromium-91.0.4469.4.ebuild
rename to www-client/chromium/chromium-91.0.4472.10.ebuild
index e9fb9b7d3ab..a4a4720d578 100644
--- a/www-client/chromium/chromium-91.0.4469.4.ebuild
+++ b/www-client/chromium/chromium-91.0.4472.10.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-PYTHON_COMPAT=( python3_8 )
+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
@@ -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
@@ -40,8 +40,8 @@ COMMON_X_DEPEND="
 	x11-libs/libXrandr:=
 	x11-libs/libXrender:=
 	x11-libs/libXtst:=
-	x11-libs/libXScrnSaver:=
 	x11-libs/libxcb:=
+	x11-libs/libxshmfence:=
 	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
 "
 
@@ -109,7 +109,6 @@ BDEPEND="
 	>=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
@@ -229,6 +228,8 @@ src_prepare() {
 	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"
 	)
 
@@ -237,12 +238,6 @@ 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
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-	sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
-	sed -i -e "s|python|python2\.7|g" \
-		third_party/dom_distiller_js/protoc_plugins/json_values_converter.py || die
-
 	local keeplibs=(
 		base/third_party/cityhash
 		base/third_party/double_conversion
@@ -330,6 +325,7 @@ src_prepare() {
 		third_party/flatbuffers
 		third_party/freetype
 		third_party/fusejs
+		third_party/highway
 		third_party/libgifcodec
 		third_party/liburlpattern
 		third_party/libzip
@@ -356,6 +352,7 @@ src_prepare() {
 		third_party/libavif
 		third_party/libgav1
 		third_party/libjingle
+		third_party/libjxl
 		third_party/libphonenumber
 		third_party/libsecret
 		third_party/libsrtp
@@ -413,7 +410,6 @@ src_prepare() {
 		third_party/qcms
 		third_party/rnnoise
 		third_party/s2cellid
-		third_party/schema_org
 		third_party/securemessage
 		third_party/shell-encryption
 		third_party/simplejson

diff --git a/www-client/chromium/files/chromium-91-ThemeService-crash.patch b/www-client/chromium/files/chromium-91-ThemeService-crash.patch
new file mode 100644
index 00000000000..455aef33e78
--- /dev/null
+++ b/www-client/chromium/files/chromium-91-ThemeService-crash.patch
@@ -0,0 +1,36 @@
+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
new file mode 100644
index 00000000000..797ee33b374
--- /dev/null
+++ b/www-client/chromium/files/chromium-91-system-icu.patch
@@ -0,0 +1,29 @@
+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
+


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

commit:     44986e6f7775e58438fb2a543a6d2ac081df45b0
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  5 21:34:26 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Fri Mar  5 21:34:26 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44986e6f

www-client/chromium: security cleanup

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

 www-client/chromium/Manifest                       |   2 -
 www-client/chromium/chromium-88.0.4324.182.ebuild  | 901 ---------------------
 .../files/chromium-87-webcodecs-deps.patch         |  27 -
 .../chromium/files/chromium-88-ozone-deps.patch    |  40 -
 4 files changed, 970 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b012fbe71de..1d0060baa69 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-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-7.tar.xz 4640 BLAKE2B 6150f92a4cb83025b7521c573e9a14bfcb26f7a5ff4ebe79cfc819b214ae05d0e986b9db561a99b4f9c7b4a8e4adf1c8ee966011bb0791ef11fc2be89b03b216 SHA512 6ef5be9e56b82c70d3d1a0596e74af3bab97ea82a8247b6d0ba736411779be10b17c7cd9ccd9eae5fac27af3907fd3b56e301e73011f58b2c4052bbc03390b1c
 DIST chromium-89.0.4389.72.tar.xz 890838884 BLAKE2B c84286128ad3563f0570815efb2fe190153e5ea4c2ea74a48a9d9b31614b3f88850ddfb74819a8b27d594f97071ef5c1f356d0419d4dd3bbc2003c636c3aa60b SHA512 b5e3693bc104ff857a2ef4de9b0a9265d44c26e5b94c44e5054bfa810c24dbb1933f1f4a626dda4d74ba6cb13fe5045c4ea9d7ea43e1b0e4057e01428d645fb7
 DIST chromium-90-patchset-6.tar.xz 3828 BLAKE2B bbd1378868cf4d699ff097ea41226ff694d58468f8f93860f2d6cc60924f35fb1f0b17fcf5a916f04545171d1219b699072222f138240fd483c704874cfce178 SHA512 70321eb4e9fe27818d5e6ae3109d3871a870a7fb6886328dcc9fc8291ac72fc003d678aec7f9925afe0c5667c70ce9bca8f61434b11a331fc1a29d61ad7b59e3

diff --git a/www-client/chromium/chromium-88.0.4324.182.ebuild b/www-client/chromium/chromium-88.0.4324.182.ebuild
deleted file mode 100644
index f14450e0032..00000000000
--- a/www-client/chromium/chromium-88.0.4324.182.ebuild
+++ /dev/null
@@ -1,901 +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="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"
-
-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 +tcmalloc vaapi wayland widevine"
-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:=
-	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:=
-			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
-
-	rm "${WORKDIR}/patches/chromium-84-blink-disable-clang-format.patch" || die
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-88-ozone-deps.patch"
-		"${FILESDIR}/chromium-87-webcodecs-deps.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/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/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/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/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/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/shaka-player
-		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/spirv-cross/spirv-cross
-		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/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/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 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)"
-
-	# 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 missing in tarball
-		# (https://groups.google.com/a/chromium.org/g/chromium-packagers/c/2ID9c4j6UkY)
-		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)
-		[[ ${#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
-}

diff --git a/www-client/chromium/files/chromium-87-webcodecs-deps.patch b/www-client/chromium/files/chromium-87-webcodecs-deps.patch
deleted file mode 100644
index e9d411305ee..00000000000
--- a/www-client/chromium/files/chromium-87-webcodecs-deps.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-88-ozone-deps.patch b/www-client/chromium/files/chromium-88-ozone-deps.patch
deleted file mode 100644
index 6274ded44ac..00000000000
--- a/www-client/chromium/files/chromium-88-ozone-deps.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From a5a6050ed551972faaaa65ebc2b4e7e1958738a1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 6 Nov 2020 16:17:30 +0000
-Subject: [PATCH] fix building without Ozone
-
-When building with use_x11=true and use_ozone=false build fails,
-because features::IsUsingOzonePlatform() is not defined:
-
-../../content/browser/gpu/gpu_internals_ui.cc: In function
-'std::unique_ptr<base::ListValue>
-content::{anonymous}::GpuMemoryBufferInfo(const gfx::GpuExtraInfo&)'
-../../content/browser/gpu/gpu_internals_ui.cc:397:18: error:
-'IsUsingOzonePlatform' is not a member of 'features'
-  397 |   if (!features::IsUsingOzonePlatform()) {
-      |                  ^~~~~~~~~~~~~~~~~~~~
----
- content/browser/gpu/gpu_internals_ui.cc | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc
-index 4f07186..01dfcbf 100644
---- a/content/browser/gpu/gpu_internals_ui.cc
-+++ b/content/browser/gpu/gpu_internals_ui.cc
-@@ -394,7 +394,12 @@ std::unique_ptr<base::ListValue> GpuMemoryBufferInfo(
- 
-   gpu::GpuMemoryBufferConfigurationSet native_config;
- #if defined(USE_X11)
--  if (!features::IsUsingOzonePlatform()) {
-+#if defined(USE_OZONE)
-+  const auto is_using_ozone_platform = features::IsUsingOzonePlatform();
-+#else
-+  const auto is_using_ozone_platform = false;
-+#endif
-+  if (!is_using_ozone_platform) {
-     for (const auto& config : gpu_extra_info.gpu_memory_buffer_support_x11) {
-       native_config.emplace(config);
-     }
--- 
-2.26.2
-


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

commit:     5fc137628e6b5afd416d1fa336be13c1210c2afc
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 20 11:41:55 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sat Feb 20 11:42:35 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5fc13762

www-client/chromium: dev channel bump to 90.0.4421.5

Bug: https://bugs.gentoo.org/768000
Closes: 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                       |  4 ++--
 ...0.4412.3.ebuild => chromium-90.0.4421.5.ebuild} | 18 ++++++++-------
 .../chromium/files/chromium-90-unbundle-zlib.patch | 27 ----------------------
 3 files changed, 12 insertions(+), 37 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ff48d304f9a..fecb8677f17 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,6 @@ DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74
 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-90-patchset-3.tar.xz 5344 BLAKE2B 19b9d69d5d4aecc18e1a3867fd0c53d01dd873fd533b83fbd8c25d435976dd2176975ccf5d4ebb04f84b6c1c0a009315ef4344fbf575b8ae6942ddfb12d1e1e1 SHA512 97d756b4b4270c7631ca42792e869815c22a786ebba36c2668b99298bcd60f24fd89b52d2491ade07341c20f2bdac933b46b299e52bfe9e45cb57bf056ee050c
-DIST chromium-90.0.4412.3.tar.xz 920864492 BLAKE2B a0d5e6ddc552611231c7ba8fd81da4d2e01e59695eccce33c040ffdd37fa360008cf8c8095f10622902a5e25297db4c10b5c463fdca5e5c46d390db4268f3d17 SHA512 bf168dd2a817823bd9ec7b7c925cddd783366460011782884f02ef15952546d6edef6bb2f08813bfd8be2e64c787e80c2cd449032b9eaf19d2ea7a6eb2294da8
+DIST chromium-90-patchset-4.tar.xz 3080 BLAKE2B 3a13c5c9bfb938cbe6d3480b267ef025c19bedb0a9a9d1cd2f9f25285538d75eaddbeba39cbd6c5983357ede446fdf75ffa513abe7e86657b9412205c0333a7f SHA512 bb1d3172403d4352be328b86d12fbdc478bab9a82deff0be87d893145d0ee10badca065992f86c4466baae6b426beb90778a01e9243044bf4cca52eb30fa0282
+DIST chromium-90.0.4421.5.tar.xz 916802704 BLAKE2B 7241e156b2fd851ffcfb364b889b9ee1271baaca9877ff9edd51555ff35bc2b95134fbb92c23d86ae93883d12989c222d22b10bdd335e8ec333bcb9677904e9e SHA512 90b4f1d5fc32f0235716daae11644a258c520c1fdeef75ec719d446f04879bbc6382303c86aed11e36f430fa97d70485dc148132885f005edea43f9ed77598e7
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-90.0.4412.3.ebuild b/www-client/chromium/chromium-90.0.4421.5.ebuild
similarity index 98%
rename from www-client/chromium/chromium-90.0.4412.3.ebuild
rename to www-client/chromium/chromium-90.0.4421.5.ebuild
index 613e64db8a5..f46a78d193e 100644
--- a/www-client/chromium/chromium-90.0.4412.3.ebuild
+++ b/www-client/chromium/chromium-90.0.4421.5.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="3"
+PATCHSET="4"
 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
@@ -127,12 +127,12 @@ BDEPEND="
 : ${CHROMIUM_FORCE_LIBCXX=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
-	BDEPEND+=" >=sys-devel/clang-10"
+	BDEPEND+=" >=sys-devel/clang-12"
 fi
 
 if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
-	RDEPEND+=" >=sys-libs/libcxx-10"
-	DEPEND+=" >=sys-libs/libcxx-10"
+	RDEPEND+=" >=sys-libs/libcxx-12"
+	DEPEND+=" >=sys-libs/libcxx-12"
 else
 	COMMON_DEPEND="
 		app-arch/snappy:=
@@ -189,15 +189,16 @@ pre_build_checks() {
 			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."
+			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="7G"
+	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"
@@ -231,7 +232,7 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-90-unbundle-zlib.patch"
+		"${FILESDIR}/chromium-89-EnumTable-crash.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -346,6 +347,7 @@ src_prepare() {
 		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/libphonenumber
 		third_party/libsecret

diff --git a/www-client/chromium/files/chromium-90-unbundle-zlib.patch b/www-client/chromium/files/chromium-90-unbundle-zlib.patch
deleted file mode 100644
index ad3847515ad..00000000000
--- a/www-client/chromium/files/chromium-90-unbundle-zlib.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9b04353f502d3fa371231742817b07cb0c41f80c Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Mon, 8 Feb 2021 11:15:39 +0000
-Subject: [PATCH] profiling_host: depend on zlib instead of headers only
-
-There is no zlib_common_headers target for unbundled zlib
-and in the end code links against zlib static library anyways.
----
- chrome/browser/profiling_host/BUILD.gn | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/chrome/browser/profiling_host/BUILD.gn b/chrome/browser/profiling_host/BUILD.gn
-index a68ac82..1ec9d66 100644
---- a/chrome/browser/profiling_host/BUILD.gn
-+++ b/chrome/browser/profiling_host/BUILD.gn
-@@ -24,7 +24,7 @@ static_library("profiling_host") {
-     "//components/version_info",
-     "//content/public/browser",
-     "//content/public/common",
--    "//third_party/zlib:zlib_common_headers",
-+    "//third_party/zlib:zlib",
- 
-     # Added to support the dependency on //chrome/browser/metrics
-     # TODO(darin): We should instead have a way to express that dependency here.
--- 
-2.26.2
-


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

commit:     0a8328a55c49a608d7ca3da61c1b50445ad47dbf
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 10 12:12:55 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Wed Feb 10 12:13:33 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a8328a5

www-client/chromium: dev channel bump to 90.0.4412.3

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

 www-client/chromium/Manifest                       |  4 ++--
 ...0.4408.0.ebuild => chromium-90.0.4412.3.ebuild} |  3 ++-
 .../chromium/files/chromium-90-unbundle-zlib.patch | 27 ++++++++++++++++++++++
 3 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 61d06d19da4..dd09275593e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,6 @@ 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-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-90-patchset-2.tar.xz 6772 BLAKE2B 1eeca3ee11e6bb8dcafd262c92ba42f58e04ae152ae557de9bd2c0245703093d6e555bed618532542fba4a2080a3c5b49cdaf0973643e5636115b3a7b016759d SHA512 489d07237f2ed1886d06484cdefa2503a080b41659f67a4fa2c313366ddeb359c66e9e256324d362bbeedb0a2919ead198f9da94cd6c8b598590fe8a529387d3
-DIST chromium-90.0.4408.0.tar.xz 914704444 BLAKE2B f48303f95122886e8326f5d584ad7652bced1d149795b0920aebfcaa5b00ed000aee9187c95b676cb7c848f4f821bcd6ef0f2b15df35bf5c4d053b9ce5a5cc6f SHA512 8562f04aa393c7daa1a5053d2b417f5e61e18024bd61081fedb2f9ae7b44fd0331957560907960fde008f38058b42cd8a26bf8a93bec2170091f79e5f833bf1a
+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-90.0.4408.0.ebuild b/www-client/chromium/chromium-90.0.4412.3.ebuild
similarity index 99%
rename from www-client/chromium/chromium-90.0.4408.0.ebuild
rename to www-client/chromium/chromium-90.0.4412.3.ebuild
index 24b31ce0b6a..613e64db8a5 100644
--- a/www-client/chromium/chromium-90.0.4408.0.ebuild
+++ b/www-client/chromium/chromium-90.0.4412.3.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://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
@@ -231,6 +231,7 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-90-unbundle-zlib.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 

diff --git a/www-client/chromium/files/chromium-90-unbundle-zlib.patch b/www-client/chromium/files/chromium-90-unbundle-zlib.patch
new file mode 100644
index 00000000000..ad3847515ad
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-unbundle-zlib.patch
@@ -0,0 +1,27 @@
+From 9b04353f502d3fa371231742817b07cb0c41f80c Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Mon, 8 Feb 2021 11:15:39 +0000
+Subject: [PATCH] profiling_host: depend on zlib instead of headers only
+
+There is no zlib_common_headers target for unbundled zlib
+and in the end code links against zlib static library anyways.
+---
+ chrome/browser/profiling_host/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/browser/profiling_host/BUILD.gn b/chrome/browser/profiling_host/BUILD.gn
+index a68ac82..1ec9d66 100644
+--- a/chrome/browser/profiling_host/BUILD.gn
++++ b/chrome/browser/profiling_host/BUILD.gn
+@@ -24,7 +24,7 @@ static_library("profiling_host") {
+     "//components/version_info",
+     "//content/public/browser",
+     "//content/public/common",
+-    "//third_party/zlib:zlib_common_headers",
++    "//third_party/zlib:zlib",
+ 
+     # Added to support the dependency on //chrome/browser/metrics
+     # TODO(darin): We should instead have a way to express that dependency here.
+-- 
+2.26.2
+


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

commit:     74eb7dd4fae8d28233aea4ea3b3e81bb2727df09
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 22 08:58:21 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Fri Jan 22 08:59:05 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74eb7dd4

www-client/chromium: dev channel bump to 89.0.4389.9

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

 www-client/chromium/Manifest                       |  4 ++--
 ...0.4385.0.ebuild => chromium-89.0.4389.9.ebuild} |  5 ++---
 .../files/chromium-89-webcodecs-deps.patch         | 26 ++++++++++++++++++++++
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 3d79bd809a8..60127146221 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74bc6a734b49a9ca43343d03903159dafc66159939f9a6c4b55665ddbe7bd97a26d8d86c285ec02cf76cad5f5cc7410570 SHA512 c39afa26f5b0b9930f6f67ce0c42eefd74c09d528b26bc0db57129b150f75ff83c8b1cb97bd9c5d75f288fb4767cc68c9c5ce89231b4a59f8ca02493e4dd281a
 DIST chromium-88.0.4324.96.tar.xz 857138392 BLAKE2B 6c3136ff7bd0fe3cde3cfd9340804b5ddd9dd10f892870eac677a2364b8ddd8a6ab09770b167287e890b525d0ef572a5c03a1e8e28d1d16740043ae17ad56746 SHA512 f51e6dbbd4ea2b6528a601c1bd7e76820a4b614f05366d2999b4a30d8e13581279f69a1a76d3f417ae1cea38f9f834d011f754d078784a70388e2cde0ccba6b6
-DIST chromium-89-patchset-5.tar.xz 5712 BLAKE2B f9cd9bc584048b6e96e74938aa8f7ba8238ab772d184697fd3af1df061f97ce135d9372531e6313618e66470fa94c28128daf916b18cb0c1246ddba3564c6f35 SHA512 9b2480c4eeccb6adc1b74e92e4d31737a99b2da5ebc3b6a90d90c1b5648e4a280aeb93231d1a926b03fb30fec71e72568a6cfe08783bc5870f081cca68f135e3
-DIST chromium-89.0.4385.0.tar.xz 888545140 BLAKE2B 8c963c35a210a419d61919014ad6748d06a41c594e35f676dcc609d866d3f2268b587b9308ad385f3d2f48ab69e7fed3a40ac2e1ccadffe29a0edd6e92e1546a SHA512 80c96d3395b89f5e76de7f01861bf6f207449150a35307f7c674c71084a3da66b4bec7d8e3cd042017b075f056ee5187c7a24915f12faddd807faa9cf9bd153e
+DIST chromium-89-patchset-6.tar.xz 4308 BLAKE2B 22e2db8b5e287925f8b550075e48ad381ccf7ef54e23d8f4e4aedff7fd6cfee8f9e70eff1edb8c867c256ee5ec881ef9379e18278b84b47ff08dcc00f5801667 SHA512 aa5d902c1959f50eb9a0d773a77bf12e5a955d796ee8b18f6e2143573dd73beec62109940e55a858fd9927753dba1d3bf9c1bd940b18a616e7b70b801e93f041
+DIST chromium-89.0.4389.9.tar.xz 890804984 BLAKE2B 39e81bc34f2cb871376046a72b187248e97eebbda60144c4bb91ec86e5395bd02cb1140c26f73eb4c0ad753ea23e3162fec9158056e494e389be8f6b37a6c5bb SHA512 5ffbc3ae31f3e9038f13d0b8520daf67425222bafb26fe5b25500cb5ce24a74dc14bc9b951c47dd39eb0696614c4b5488154e8c665aa34f78559295447f1c3d5
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-89.0.4385.0.ebuild b/www-client/chromium/chromium-89.0.4389.9.ebuild
similarity index 99%
rename from www-client/chromium/chromium-89.0.4385.0.ebuild
rename to www-client/chromium/chromium-89.0.4389.9.ebuild
index 68606b1b256..e3b9317305c 100644
--- a/www-client/chromium/chromium-89.0.4385.0.ebuild
+++ b/www-client/chromium/chromium-89.0.4389.9.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="5"
+PATCHSET="6"
 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
@@ -231,6 +231,7 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-89-webcodecs-deps.patch"
 		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
@@ -401,7 +402,6 @@ 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
@@ -449,7 +449,6 @@ src_prepare() {
 
 		# gyp -> gn leftovers
 		base/third_party/libevent
-		third_party/adobe
 		third_party/speech-dispatcher
 		third_party/usb_ids
 		third_party/xdg-utils

diff --git a/www-client/chromium/files/chromium-89-webcodecs-deps.patch b/www-client/chromium/files/chromium-89-webcodecs-deps.patch
new file mode 100644
index 00000000000..304f45df05d
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-webcodecs-deps.patch
@@ -0,0 +1,26 @@
+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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2021-01-21 11:28 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2021-01-21 11:28 UTC (permalink / raw
  To: gentoo-commits

commit:     787bcd34ea6720e2cad16db0fa2e0d65c5286ff8
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 21 11:27:53 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Jan 21 11:27:53 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=787bcd34

www-client/chromium: security cleanup

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

 www-client/chromium/Manifest                       |   2 -
 www-client/chromium/chromium-87.0.4280.141.ebuild  | 900 ---------------------
 .../files/chromium-86-fix-vaapi-on-intel.patch     |  40 -
 www-client/chromium/files/chromium-87-icu68.patch  | 400 ---------
 .../chromium/files/chromium-87-ozone-deps.patch    |  15 -
 .../chromium/files/chromium-87-v8-icu68.patch      | 192 -----
 6 files changed, 1549 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 05c735720e2..3d79bd809a8 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-DIST chromium-87-patchset-9.tar.xz 6036 BLAKE2B 4dd9aa0e88f11a9104cb13e73607c3b4fcd7e9cb556034472e2fd46158db6e7505b22c098df1c7cab6c7ff06ba6dc45914dcab58a405e0eafffa58d8b0cafbbf SHA512 c036ee20b4906bdb1b3104ecacf30a092ee3662ec10754bf2b168f1b7e1dbf593216e4dc70f8264540fadf91a33b48a8b8040028966dfcc8d8be99807b5f1b99
-DIST chromium-87.0.4280.141.tar.xz 856467564 BLAKE2B 9c0a43b3326bcfba911e5d19e984c9722d31559664b30398da9f0067106957b154c04968f9376d9b3709e34edb248ca55abe8050f33622152cbe837c95e55c08 SHA512 402a8ff60512b855925cefa862093b70629376d99bc465e3255aeecea29d79a04e5f9bf72c7a497d768b7987b855bc8e8819ebaa5226ca3f5c9d6602e9cd62d6
 DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74bc6a734b49a9ca43343d03903159dafc66159939f9a6c4b55665ddbe7bd97a26d8d86c285ec02cf76cad5f5cc7410570 SHA512 c39afa26f5b0b9930f6f67ce0c42eefd74c09d528b26bc0db57129b150f75ff83c8b1cb97bd9c5d75f288fb4767cc68c9c5ce89231b4a59f8ca02493e4dd281a
 DIST chromium-88.0.4324.96.tar.xz 857138392 BLAKE2B 6c3136ff7bd0fe3cde3cfd9340804b5ddd9dd10f892870eac677a2364b8ddd8a6ab09770b167287e890b525d0ef572a5c03a1e8e28d1d16740043ae17ad56746 SHA512 f51e6dbbd4ea2b6528a601c1bd7e76820a4b614f05366d2999b4a30d8e13581279f69a1a76d3f417ae1cea38f9f834d011f754d078784a70388e2cde0ccba6b6
 DIST chromium-89-patchset-5.tar.xz 5712 BLAKE2B f9cd9bc584048b6e96e74938aa8f7ba8238ab772d184697fd3af1df061f97ce135d9372531e6313618e66470fa94c28128daf916b18cb0c1246ddba3564c6f35 SHA512 9b2480c4eeccb6adc1b74e92e4d31737a99b2da5ebc3b6a90d90c1b5648e4a280aeb93231d1a926b03fb30fec71e72568a6cfe08783bc5870f081cca68f135e3

diff --git a/www-client/chromium/chromium-87.0.4280.141.ebuild b/www-client/chromium/chromium-87.0.4280.141.ebuild
deleted file mode 100644
index fdf6560c939..00000000000
--- a/www-client/chromium/chromium-87.0.4280.141.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="9"
-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 +tcmalloc vaapi wayland widevine"
-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:=
-	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:=
-			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-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 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
-
-	rm "${WORKDIR}/patches/chromium-84-blink-disable-clang-format.patch" || die
-
-	local PATCHES=(
-		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-87-ozone-deps.patch"
-		"${FILESDIR}/chromium-87-webcodecs-deps.patch"
-		"${FILESDIR}/chromium-87-v8-icu68.patch"
-		"${FILESDIR}/chromium-87-icu68.patch"
-	)
-
-	if use vaapi; then
-		PATCHES+=( "${FILESDIR}/chromium-86-fix-vaapi-on-intel.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/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/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/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/libvpx
-		third_party/libvpx/source/libvpx/third_party/x86inc
-		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/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/shaka-player
-		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/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 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)"
-
-	# 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 missing in tarball
-		# (https://groups.google.com/a/chromium.org/g/chromium-packagers/c/2ID9c4j6UkY)
-		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)
-		[[ ${#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
-}

diff --git a/www-client/chromium/files/chromium-86-fix-vaapi-on-intel.patch b/www-client/chromium/files/chromium-86-fix-vaapi-on-intel.patch
deleted file mode 100644
index 2e3f9a6fdc5..00000000000
--- a/www-client/chromium/files/chromium-86-fix-vaapi-on-intel.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 9ff06536caf7ea51aad9fd2bb649c858eaf7ee84 Mon Sep 17 00:00:00 2001
-From: Akarshan Biswas <akarshanbiswas@fedoraproject.org>
-Date: Sat, 26 Oct 2019 10:06:30 +0530
-Subject: [PATCH] Move offending function to chromeos only
-
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -58,6 +58,7 @@ unsigned int GetVaFormatForVideoCodecProfile(VideoCodecProfile profile) {
-   return VA_RT_FORMAT_YUV420;
- }
- 
-+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
- // Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
- // Lake) Cpu platform id's are referenced from the following file in kernel
- // source arch/x86/include/asm/intel-family.h
-@@ -70,6 +71,7 @@ bool IsGeminiLakeOrLater() {
-       cpuid.model() >= kGeminiLakeModelId;
-   return is_geminilake_or_later;
- }
-+#endif
- 
- }  // namespace
- 
-@@ -1213,6 +1215,8 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
-   if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
-     return BufferAllocationMode::kNormal;
- 
-+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
-+  // Move this to chromeOs only as it is causing problem in some intel linux drivers
-   // On Gemini Lake, Kaby Lake and later we can pass to libva the client's
-   // PictureBuffers to decode onto, which skips the use of the Vpp unit and its
-   // associated format reconciliation copy, avoiding all internal buffer
-@@ -1228,6 +1232,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
-       num_extra_pics_ = 3;
-     return BufferAllocationMode::kNone;
-   }
-+#endif
- 
-   // For H.264 on older devices, another +1 is experimentally needed for
-   // high-to-high resolution changes.

diff --git a/www-client/chromium/files/chromium-87-icu68.patch b/www-client/chromium/files/chromium-87-icu68.patch
deleted file mode 100644
index dfea967dbaa..00000000000
--- a/www-client/chromium/files/chromium-87-icu68.patch
+++ /dev/null
@@ -1,400 +0,0 @@
-From 4d16e52a5e6771c4aa5f892e14486bf0e87027d1 Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Tue, 20 Oct 2020 00:11:50 +0000
-Subject: [PATCH] Prepare for landing ICU68
-
-In the landing process of ICU68 we found these need to be changed
-since ICU68 no longer define TRUE and FALSE for UBool to
-avoid C++20 problem.
-
-Bug: 1138555
-Change-Id: I64fd98c99864aa86b07280537a780105cb0eabbe
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2473522
-Reviewed-by: Frank Tang <ftang@chromium.org>
-Reviewed-by: Colin Blundell <blundell@chromium.org>
-Reviewed-by: Dominic Battré <battre@chromium.org>
-Reviewed-by: Guillaume Jenkins <gujen@google.com>
-Reviewed-by: Jungshik Shin <jshin@chromium.org>
-Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
-Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
-Reviewed-by: Mustafa Emre Acer <meacer@chromium.org>
-Reviewed-by: Marian Fechete <marianfe@google.com>
-Reviewed-by: Matthew Denton <mpdenton@chromium.org>
-Commit-Queue: Frank Tang <ftang@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#818713}
----
-
-diff --git a/base/i18n/icu_util.cc b/base/i18n/icu_util.cc
-index b225f1d..20debbe 100644
---- a/base/i18n/icu_util.cc
-+++ b/base/i18n/icu_util.cc
-@@ -327,7 +327,7 @@
-   // https://ssl.icu-project.org/trac/ticket/13208 .
-   string16 zone_id = android::GetDefaultTimeZoneId();
-   icu::TimeZone::adoptDefault(icu::TimeZone::createTimeZone(
--      icu::UnicodeString(FALSE, zone_id.data(), zone_id.length())));
-+      icu::UnicodeString(false, zone_id.data(), zone_id.length())));
- #elif defined(OS_FUCHSIA)
-   // The platform-specific mechanisms used by ICU's detectHostTimeZone() to
-   // determine the default time zone will not work on Fuchsia. Therefore,
-diff --git a/base/i18n/string_compare.cc b/base/i18n/string_compare.cc
-index c0e83c6..e4fb687 100644
---- a/base/i18n/string_compare.cc
-+++ b/base/i18n/string_compare.cc
-@@ -18,8 +18,8 @@
-                                              StringPiece16 rhs) {
-   UErrorCode error = U_ZERO_ERROR;
-   UCollationResult result = collator.compare(
--      icu::UnicodeString(FALSE, lhs.data(), static_cast<int>(lhs.length())),
--      icu::UnicodeString(FALSE, rhs.data(), static_cast<int>(rhs.length())),
-+      icu::UnicodeString(false, lhs.data(), static_cast<int>(lhs.length())),
-+      icu::UnicodeString(false, rhs.data(), static_cast<int>(rhs.length())),
-       error);
-   DCHECK(U_SUCCESS(error));
-   return result;
-diff --git a/base/i18n/time_formatting.cc b/base/i18n/time_formatting.cc
-index c769b57..c085f5e 100644
---- a/base/i18n/time_formatting.cc
-+++ b/base/i18n/time_formatting.cc
-@@ -240,7 +240,7 @@
-   icu::FieldPosition ignore(icu::FieldPosition::DONT_CARE);
-   measure_format.formatMeasures(measures, 3, formatted, ignore, status);
-   *out = i18n::UnicodeStringToString16(formatted);
--  return U_SUCCESS(status) == TRUE;
-+  return U_SUCCESS(status);
- }
- 
- string16 DateIntervalFormat(const Time& begin_time,
-diff --git a/components/autofill/core/common/autofill_regexes.cc b/components/autofill/core/common/autofill_regexes.cc
-index 02254fa..1cf12f3 100644
---- a/components/autofill/core/common/autofill_regexes.cc
-+++ b/components/autofill/core/common/autofill_regexes.cc
-@@ -43,7 +43,7 @@
- icu::RegexMatcher* AutofillRegexes::GetMatcher(const base::string16& pattern) {
-   auto it = matchers_.find(pattern);
-   if (it == matchers_.end()) {
--    const icu::UnicodeString icu_pattern(FALSE, pattern.data(),
-+    const icu::UnicodeString icu_pattern(false, pattern.data(),
-                                          pattern.length());
- 
-     UErrorCode status = U_ZERO_ERROR;
-@@ -71,21 +71,21 @@
-   base::AutoLock lock(*g_lock);
- 
-   icu::RegexMatcher* matcher = g_autofill_regexes->GetMatcher(pattern);
--  icu::UnicodeString icu_input(FALSE, input.data(), input.length());
-+  icu::UnicodeString icu_input(false, input.data(), input.length());
-   matcher->reset(icu_input);
- 
-   UErrorCode status = U_ZERO_ERROR;
-   UBool matched = matcher->find(0, status);
-   DCHECK(U_SUCCESS(status));
- 
--  if (matched == TRUE && match) {
-+  if (matched && match) {
-     icu::UnicodeString match_unicode =
-         matcher->group(group_to_be_captured, status);
-     DCHECK(U_SUCCESS(status));
-     *match = base::i18n::UnicodeStringToString16(match_unicode);
-   }
- 
--  return matched == TRUE;
-+  return matched;
- }
- 
- }  // namespace autofill
-diff --git a/components/autofill_assistant/browser/string_conversions_util.cc b/components/autofill_assistant/browser/string_conversions_util.cc
-index 212bafa..1d00d68 100644
---- a/components/autofill_assistant/browser/string_conversions_util.cc
-+++ b/components/autofill_assistant/browser/string_conversions_util.cc
-@@ -39,13 +39,13 @@
- // |target|.
- bool AppendUnicodeToUTF8(const UChar32 source, std::string* target) {
-   char bytes[4];
--  UBool error = FALSE;
-+  UBool error = false;
-   size_t offset = 0;
-   U8_APPEND(bytes, offset, base::size(bytes), source, error);
--  if (error == FALSE) {
-+  if (error == false) {
-     target->append(bytes, offset);
-   }
--  return error == FALSE;
-+  return !error;
- }
- 
- }  // namespace autofill_assistant
-diff --git a/components/signin/public/identity_manager/identity_utils.cc b/components/signin/public/identity_manager/identity_utils.cc
-index 1c414e2..014d674 100644
---- a/components/signin/public/identity_manager/identity_utils.cc
-+++ b/components/signin/public/identity_manager/identity_utils.cc
-@@ -33,7 +33,7 @@
- 
-   // See if the username matches the policy-provided pattern.
-   UErrorCode status = U_ZERO_ERROR;
--  const icu::UnicodeString icu_pattern(FALSE, utf16_pattern.data(),
-+  const icu::UnicodeString icu_pattern(false, utf16_pattern.data(),
-                                        utf16_pattern.length());
-   icu::RegexMatcher matcher(icu_pattern, UREGEX_CASE_INSENSITIVE, status);
-   if (!U_SUCCESS(status)) {
-diff --git a/components/spellcheck/renderer/spellcheck_worditerator.cc b/components/spellcheck/renderer/spellcheck_worditerator.cc
-index ec16fef..3b1f060 100644
---- a/components/spellcheck/renderer/spellcheck_worditerator.cc
-+++ b/components/spellcheck/renderer/spellcheck_worditerator.cc
-@@ -442,7 +442,7 @@
-   // spellchecker and we need manual normalization as well. The normalized
-   // text does not have to be NUL-terminated since its characters are copied to
-   // string16, which adds a NUL character when we need.
--  icu::UnicodeString input(FALSE, &text_[input_start],
-+  icu::UnicodeString input(false, &text_[input_start],
-                            base::checked_cast<int32_t>(input_length));
-   UErrorCode status = U_ZERO_ERROR;
-   icu::UnicodeString output;
-diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker.cc b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
-index 6d66a7c..d73192b1 100644
---- a/components/url_formatter/spoof_checks/idn_spoof_checker.cc
-+++ b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
-@@ -368,7 +368,7 @@
-     return Result::kICUSpoofChecks;
-   }
- 
--  icu::UnicodeString label_string(FALSE /* isTerminated */, label.data(),
-+  icu::UnicodeString label_string(false /* isTerminated */, label.data(),
-                                   base::checked_cast<int32_t>(label.size()));
- 
-   // A punycode label with 'xn--' prefix is not subject to the URL
-@@ -711,7 +711,7 @@
-     base::StringPiece tld,
-     base::StringPiece16 tld_unicode) {
-   icu::UnicodeString tld_string(
--      FALSE /* isTerminated */, tld_unicode.data(),
-+      false /* isTerminated */, tld_unicode.data(),
-       base::checked_cast<int32_t>(tld_unicode.size()));
-   // Allow if the TLD contains any letter from the script, in which case it's
-   // likely to be a TLD in that script.
-diff --git a/components/url_formatter/spoof_checks/skeleton_generator.cc b/components/url_formatter/spoof_checks/skeleton_generator.cc
-index 9628626..9a77901 100644
---- a/components/url_formatter/spoof_checks/skeleton_generator.cc
-+++ b/components/url_formatter/spoof_checks/skeleton_generator.cc
-@@ -116,7 +116,7 @@
- Skeletons SkeletonGenerator::GetSkeletons(base::StringPiece16 hostname) {
-   Skeletons skeletons;
-   size_t hostname_length = hostname.length() - (hostname.back() == '.' ? 1 : 0);
--  icu::UnicodeString host(FALSE, hostname.data(), hostname_length);
-+  icu::UnicodeString host(false, hostname.data(), hostname_length);
-   // If input has any characters outside Latin-Greek-Cyrillic and [0-9._-],
-   // there is no point in getting rid of diacritics because combining marks
-   // attached to non-LGC characters are already blocked.
-diff --git a/content/zygote/zygote_linux.cc b/content/zygote/zygote_linux.cc
-index 95d5a82..b6d8e5a 100644
---- a/content/zygote/zygote_linux.cc
-+++ b/content/zygote/zygote_linux.cc
-@@ -557,7 +557,7 @@
-   if (!iter.ReadString16(&timezone_id))
-     return -1;
-   icu::TimeZone::adoptDefault(icu::TimeZone::createTimeZone(
--      icu::UnicodeString(FALSE, timezone_id.data(), timezone_id.length())));
-+      icu::UnicodeString(false, timezone_id.data(), timezone_id.length())));
- 
-   if (!iter.ReadInt(&numfds))
-     return -1;
-diff --git a/services/device/time_zone_monitor/time_zone_monitor_android.cc b/services/device/time_zone_monitor/time_zone_monitor_android.cc
-index 818670a..f57f972 100644
---- a/services/device/time_zone_monitor/time_zone_monitor_android.cc
-+++ b/services/device/time_zone_monitor/time_zone_monitor_android.cc
-@@ -34,7 +34,7 @@
-   // See base/i18n/icu_util.cc:InitializeIcuTimeZone() for more information.
-   base::string16 zone_id = base::android::GetDefaultTimeZoneId();
-   std::unique_ptr<icu::TimeZone> new_zone(icu::TimeZone::createTimeZone(
--      icu::UnicodeString(FALSE, zone_id.data(), zone_id.length())));
-+      icu::UnicodeString(false, zone_id.data(), zone_id.length())));
-   UpdateIcuAndNotifyClients(std::move(new_zone));
- }
- 
-diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc
-index a6b9552..36809d91 100644
---- a/third_party/blink/renderer/core/exported/web_view_test.cc
-+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
-@@ -4868,18 +4868,18 @@
- 
- TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateDom) {
-   // Test dom mutation.
--  TestEachMouseEvent("mutateDom", FALSE);
-+  TestEachMouseEvent("mutateDom", false);
- 
-   // Test without any DOM mutation.
--  TestEachMouseEvent("none", TRUE);
-+  TestEachMouseEvent("none", true);
- }
- 
- TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateStyle) {
-   // Test style mutation.
--  TestEachMouseEvent("mutateStyle", FALSE);
-+  TestEachMouseEvent("mutateStyle", false);
- 
-   // Test checkbox:indeterminate style mutation.
--  TestEachMouseEvent("mutateIndeterminate", FALSE);
-+  TestEachMouseEvent("mutateIndeterminate", false);
- 
-   // Test click div with :active style.
-   Tap("style_active");
-@@ -4888,10 +4888,10 @@
- 
- TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithPreventDefault) {
-   // Test swallowing.
--  TestEachMouseEvent("preventDefault", FALSE);
-+  TestEachMouseEvent("preventDefault", false);
- 
-   // Test without any preventDefault.
--  TestEachMouseEvent("none", TRUE);
-+  TestEachMouseEvent("none", true);
- }
- 
- TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithNonTriggeringNodes) {
-diff --git a/third_party/blink/renderer/platform/text/locale_icu.cc b/third_party/blink/renderer/platform/text/locale_icu.cc
-index 92fb99e0..f991b51 100644
---- a/third_party/blink/renderer/platform/text/locale_icu.cc
-+++ b/third_party/blink/renderer/platform/text/locale_icu.cc
-@@ -169,12 +169,12 @@
-     return g_empty_string;
- 
-   UErrorCode status = U_ZERO_ERROR;
--  int32_t length = udat_toPattern(date_format, TRUE, nullptr, 0, &status);
-+  int32_t length = udat_toPattern(date_format, true, nullptr, 0, &status);
-   if (status != U_BUFFER_OVERFLOW_ERROR || !length)
-     return g_empty_string;
-   StringBuffer<UChar> buffer(length);
-   status = U_ZERO_ERROR;
--  udat_toPattern(date_format, TRUE, buffer.Characters(), length, &status);
-+  udat_toPattern(date_format, true, buffer.Characters(), length, &status);
-   if (U_FAILURE(status))
-     return g_empty_string;
-   return String::Adopt(buffer);
-diff --git a/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc b/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
-index 5bea007..0e8c60a 100644
---- a/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
-+++ b/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
-@@ -312,13 +312,13 @@
-       text->chunkOffset = offset <= std::numeric_limits<int32_t>::max()
-                               ? static_cast<int32_t>(offset)
-                               : 0;
--      is_accessible = TRUE;
-+      is_accessible = true;
-       return true;
-     }
-     if (native_index >= native_length &&
-         text->chunkNativeLimit == native_length) {
-       text->chunkOffset = text->chunkLength;
--      is_accessible = FALSE;
-+      is_accessible = false;
-       return true;
-     }
-   } else {
-@@ -331,12 +331,12 @@
-       text->chunkOffset = offset <= std::numeric_limits<int32_t>::max()
-                               ? static_cast<int32_t>(offset)
-                               : 0;
--      is_accessible = TRUE;
-+      is_accessible = true;
-       return true;
-     }
-     if (native_index <= 0 && !text->chunkNativeStart) {
-       text->chunkOffset = 0;
--      is_accessible = FALSE;
-+      is_accessible = false;
-       return true;
-     }
-   }
-@@ -347,7 +347,7 @@
-                               int64_t native_index,
-                               UBool forward) {
-   if (!text->context)
--    return FALSE;
-+    return false;
-   int64_t native_length = TextNativeLength(text);
-   UBool is_accessible;
-   if (TextInChunkOrOutOfRange(text, native_index, native_length, forward,
-@@ -371,7 +371,7 @@
-     DCHECK_EQ(new_context, kPriorContext);
-     TextLatin1SwitchToPriorContext(text, native_index, native_length, forward);
-   }
--  return TRUE;
-+  return true;
- }
- 
- static const struct UTextFuncs kTextLatin1Funcs = {
-@@ -511,7 +511,7 @@
- 
- static UBool TextUTF16Access(UText* text, int64_t native_index, UBool forward) {
-   if (!text->context)
--    return FALSE;
-+    return false;
-   int64_t native_length = TextNativeLength(text);
-   UBool is_accessible;
-   if (TextInChunkOrOutOfRange(text, native_index, native_length, forward,
-@@ -533,7 +533,7 @@
-     DCHECK_EQ(new_context, kPriorContext);
-     TextUTF16SwitchToPriorContext(text, native_index, native_length, forward);
-   }
--  return TRUE;
-+  return true;
- }
- 
- static const struct UTextFuncs kTextUTF16Funcs = {
-diff --git a/third_party/blink/renderer/platform/text/unicode_utilities.cc b/third_party/blink/renderer/platform/text/unicode_utilities.cc
-index 2cefd53..b8c4515 100644
---- a/third_party/blink/renderer/platform/text/unicode_utilities.cc
-+++ b/third_party/blink/renderer/platform/text/unicode_utilities.cc
-@@ -300,7 +300,7 @@
-   DCHECK(U_SUCCESS(status));
-   int32_t input_length = static_cast<int32_t>(length);
-   // copy-on-write.
--  icu::UnicodeString normalized(FALSE, characters, input_length);
-+  icu::UnicodeString normalized(false, characters, input_length);
-   // In the vast majority of cases, input is already NFC. Run a quick check
-   // to avoid normalizing the entire input unnecessarily.
-   int32_t normalized_prefix_length =
-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 b625735..fb8ab05 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
-@@ -327,7 +327,7 @@
-   DLOG_IF(ERROR, err == U_AMBIGUOUS_ALIAS_WARNING)
-       << "ICU ambiguous alias warning for encoding: " << encoding_.GetName();
-   if (converter_icu_)
--    ucnv_setFallback(converter_icu_, TRUE);
-+    ucnv_setFallback(converter_icu_, true);
- }
- 
- int TextCodecICU::DecodeToBuffer(UChar* target,
-diff --git a/ui/base/l10n/formatter.cc b/ui/base/l10n/formatter.cc
-index e4446d4..684ead8 100644
---- a/ui/base/l10n/formatter.cc
-+++ b/ui/base/l10n/formatter.cc
-@@ -234,7 +234,7 @@
-                        int value,
-                        icu::UnicodeString* formatted_string) const {
-   DCHECK(simple_format_[unit]);
--  DCHECK(formatted_string->isEmpty() == TRUE);
-+  DCHECK(formatted_string->isEmpty());
-   UErrorCode error = U_ZERO_ERROR;
-   FormatNumberInPlural(*simple_format_[unit],
-                         value, formatted_string, &error);
-@@ -250,7 +250,7 @@
-       << "Detailed() not implemented for your (format, length) combination!";
-   DCHECK(detailed_format_[units][1])
-       << "Detailed() not implemented for your (format, length) combination!";
--  DCHECK(formatted_string->isEmpty() == TRUE);
-+  DCHECK(formatted_string->isEmpty());
-   UErrorCode error = U_ZERO_ERROR;
-   FormatNumberInPlural(*detailed_format_[units][0], value_1,
-                        formatted_string, &error);
-@@ -283,7 +283,7 @@
-     base::string16 pattern = l10n_util::GetStringUTF16(pluralities.id);
-     UErrorCode error = U_ZERO_ERROR;
-     std::unique_ptr<icu::MessageFormat> format(new icu::MessageFormat(
--        icu::UnicodeString(FALSE, pattern.data(), pattern.length()), error));
-+        icu::UnicodeString(false, pattern.data(), pattern.length()), error));
-     DCHECK(U_SUCCESS(error));
-     if (format.get())
-       return format;

diff --git a/www-client/chromium/files/chromium-87-ozone-deps.patch b/www-client/chromium/files/chromium-87-ozone-deps.patch
deleted file mode 100644
index ceb693cea8b..00000000000
--- a/www-client/chromium/files/chromium-87-ozone-deps.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
-index 3f89c70..0df6490 100644
---- a/chrome/browser/BUILD.gn
-+++ b/chrome/browser/BUILD.gn
-@@ -5056,7 +5056,9 @@ static_library("browser") {
-       "chrome_browser_main_extra_parts_ozone.cc",
-       "chrome_browser_main_extra_parts_ozone.h",
-     ]
--    deps += [ "//ui/ozone" ]
-+    if (use_ozone) {
-+      deps += [ "//ui/ozone" ]
-+    }
-   }
- 
-   if (enable_background_mode) {

diff --git a/www-client/chromium/files/chromium-87-v8-icu68.patch b/www-client/chromium/files/chromium-87-v8-icu68.patch
deleted file mode 100644
index 2c274dc1abb..00000000000
--- a/www-client/chromium/files/chromium-87-v8-icu68.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From b0a7f5691113534c2cf771f2dd3cece5e93bc7d4 Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Tue, 03 Nov 2020 23:20:37 -0800
-Subject: [PATCH] Update to ICU68-1
-
-ICU68-1 change the output skeleton format. So we need to change
-resolvedOptions code for 68 migration.
-
-Chromium roll
-https://chromium-review.googlesource.com/c/chromium/src/+/2474093
-
-Bug: v8:10945
-Change-Id: I3b2c7fbe8abb22df8fa51287c498ca3245b8c55b
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477431
-Commit-Queue: Frank Tang <ftang@chromium.org>
-Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
-Reviewed-by: Shu-yu Guo <syg@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#70972}
-
-(ported to work with <ICU-68.1 and rebased chromium)
----
-
-diff --git a/v8/src/objects/js-number-format.cc b/v8/src/objects/js-number-format.cc
-index 45b0eab..d18b133 100644
---- a/v8/src/objects/js-number-format.cc
-+++ b/v8/src/objects/js-number-format.cc
-@@ -389,17 +389,20 @@ Handle<String> CurrencySignString(Isolate* isolate,
- Handle<String> UnitDisplayString(Isolate* isolate,
-                                  const icu::UnicodeString& skeleton) {
-   // Ex: skeleton as
--  // "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name"
-+  // <ICU-68.1:  "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name".
-+  // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-full-name"
-   if (skeleton.indexOf("unit-width-full-name") >= 0) {
-     return ReadOnlyRoots(isolate).long_string_handle();
-   }
-   // Ex: skeleton as
--  // "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
-+  // <ICU-68.1:  "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
-+  // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-narrow".
-   if (skeleton.indexOf("unit-width-narrow") >= 0) {
-     return ReadOnlyRoots(isolate).narrow_string_handle();
-   }
-   // Ex: skeleton as
--  // "measure-unit/length-foot .### rounding-mode-half-up"
-+  // <ICU-68.1:  "measure-unit/length-foot .### rounding-mode-half-up"
-+  // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
-   return ReadOnlyRoots(isolate).short_string_handle();
- }
- 
-@@ -422,7 +425,8 @@ Notation NotationFromSkeleton(const icu::UnicodeString& skeleton) {
-     return Notation::COMPACT;
-   }
-   // Ex: skeleton as
--  // "measure-unit/length-foot .### rounding-mode-half-up"
-+  // <ICU-68.1:  "measure-unit/length-foot .### rounding-mode-half-up"
-+  // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
-   return Notation::STANDARD;
- }
- 
-@@ -562,14 +566,23 @@ namespace {
- 
- // Ex: percent .### rounding-mode-half-up
- // Special case for "percent"
--// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
--// rounding-mode-half-up" should return "kilometer-per-unit".
--// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
--// "year".
-+// <ICU-68.1:
-+//   Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
-+//   rounding-mode-half-up" should return "kilometer-per-unit".
-+//   Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
-+// >=ICU-68.1:
-+//   Ex: "unit/milliliter-per-acre .### rounding-mode-half-up"
-+//   should return "milliliter-per-acre".
-+//   Ex: "unit/year .### rounding-mode-half-up" should return
-+//   "year".
- std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
-   std::string str;
-   str = skeleton.toUTF8String<std::string>(str);
-+#if U_ICU_VERSION_MAJOR_NUM < 68
-   std::string search("measure-unit/");
-+#else
-+  std::string search("unit/");
-+#endif
-   size_t begin = str.find(search);
-   if (begin == str.npos) {
-     // Special case for "percent".
-@@ -578,20 +591,41 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
-     }
-     return "";
-   }
-+#if U_ICU_VERSION_MAJOR_NUM < 68
-   // Skip the type (ex: "length").
-   // "measure-unit/length-kilometer per-measure-unit/duration-hour"
-   //                     b
-   begin = str.find("-", begin + search.size());
-+#else
-+  // Ex:
-+  // "unit/acre .### rounding-mode-half-up"
-+  //       b
-+  // Ex:
-+  // "unit/milliliter-per-acre .### rounding-mode-half-up"
-+  //       b
-+  begin += search.size();
-+#endif
-   if (begin == str.npos) {
-     return "";
-   }
-+#if U_ICU_VERSION_MAJOR_NUM < 68
-   begin++;  // Skip the '-'.
-+#endif
-   // Find the end of the subtype.
-   size_t end = str.find(" ", begin);
--  // "measure-unit/length-kilometer per-measure-unit/duration-hour"
--  //                      b        e
-+  // <ICU-68.1:
-+  //   "measure-unit/length-kilometer per-measure-unit/duration-hour"
-+  //                        b        e
-+  // >=ICU-68.1:
-+  //   Ex:
-+  //   "unit/acre .### rounding-mode-half-up"
-+  //         b   e
-+  //   Ex:
-+  //   "unit/milliliter-per-acre .### rounding-mode-half-up"
-+  //         b                  e
-   if (end == str.npos) {
-     end = str.size();
-+#if U_ICU_VERSION_MAJOR_NUM < 68
-     return str.substr(begin, end - begin);
-   }
-   // "measure-unit/length-kilometer per-measure-unit/duration-hour"
-@@ -625,17 +659,36 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
-   // "measure-unit/length-kilometer per-measure-unit/duration-hour"
-   //                      [result ]                           b   e
-   return result + "-per-" + str.substr(begin, end - begin);
-+#else
-+  }
-+  return str.substr(begin, end - begin);
-+#endif
- }
- 
- Style StyleFromSkeleton(const icu::UnicodeString& skeleton) {
-   if (skeleton.indexOf("currency/") >= 0) {
-     return Style::CURRENCY;
-   }
-+#if U_ICU_VERSION_MAJOR_NUM < 68
-   if (skeleton.indexOf("measure-unit/") >= 0) {
-     if (skeleton.indexOf("scale/100") >= 0 &&
-         skeleton.indexOf("measure-unit/concentr-percent") >= 0) {
-+#else
-+  if (skeleton.indexOf("percent") >= 0) {
-+    // percent precision-integer rounding-mode-half-up scale/100
-+    if (skeleton.indexOf("scale/100") >= 0) {
-+#endif
-       return Style::PERCENT;
-+#if U_ICU_VERSION_MAJOR_NUM >= 68
-+    } else {
-+      return Style::UNIT;
-+#endif
-     }
-+#if U_ICU_VERSION_MAJOR_NUM >= 68
-+  }
-+  // Before ICU68: "measure-unit/", since ICU68 "unit/"
-+  if (skeleton.indexOf("unit/") >= 0) {
-+#endif
-     return Style::UNIT;
-   }
-   return Style::DECIMAL;
-diff --git a/v8/src/objects/js-relative-time-format.cc b/v8/src/objects/js-relative-time-format.cc
-index 267343aaae..64d56a1c12 100644
---- a/v8/src/objects/js-relative-time-format.cc
-+++ b/v8/src/objects/js-relative-time-format.cc
-@@ -195,9 +195,18 @@ MaybeHandle<JSRelativeTimeFormat> JSRelativeTimeFormat::New(
-     }
-   }
- 
-+#if U_ICU_VERSION_MAJOR_NUM < 68
-   icu::DecimalFormat* decimal_format =
-       static_cast<icu::DecimalFormat*>(number_format);
-   decimal_format->setMinimumGroupingDigits(-2);
-+#else
-+  if (number_format->getDynamicClassID() ==
-+      icu::DecimalFormat::getStaticClassID()) {
-+    icu::DecimalFormat* decimal_format =
-+        static_cast<icu::DecimalFormat*>(number_format);
-+    decimal_format->setMinimumGroupingDigits(-2);
-+  }
-+#endif
- 
-   // Change UDISPCTX_CAPITALIZATION_NONE to other values if
-   // ECMA402 later include option to change capitalization.


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

commit:     9d39fafe437f2d7a060e41144c21d29a1b9ec85e
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 10 21:35:54 2021 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Jan 10 21:36:13 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d39fafe

www-client/chromium: dev channel bump to 89.0.4381.6

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

 www-client/chromium/Manifest                       |  4 +-
 ...0.4356.6.ebuild => chromium-89.0.4381.6.ebuild} | 16 ++------
 .../chromium/files/chromium-shim_headers.patch     | 48 ++++++++++++++++++++++
 3 files changed, 53 insertions(+), 15 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 80d764350bf..d36b0a79770 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,6 @@ DIST chromium-87-patchset-9.tar.xz 6036 BLAKE2B 4dd9aa0e88f11a9104cb13e73607c3b4
 DIST chromium-87.0.4280.141.tar.xz 856467564 BLAKE2B 9c0a43b3326bcfba911e5d19e984c9722d31559664b30398da9f0067106957b154c04968f9376d9b3709e34edb248ca55abe8050f33622152cbe837c95e55c08 SHA512 402a8ff60512b855925cefa862093b70629376d99bc465e3255aeecea29d79a04e5f9bf72c7a497d768b7987b855bc8e8819ebaa5226ca3f5c9d6602e9cd62d6
 DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74bc6a734b49a9ca43343d03903159dafc66159939f9a6c4b55665ddbe7bd97a26d8d86c285ec02cf76cad5f5cc7410570 SHA512 c39afa26f5b0b9930f6f67ce0c42eefd74c09d528b26bc0db57129b150f75ff83c8b1cb97bd9c5d75f288fb4767cc68c9c5ce89231b4a59f8ca02493e4dd281a
 DIST chromium-88.0.4324.79.tar.xz 857135416 BLAKE2B 10264e9fb97a605216fc199564336d5542ef5234fe36bf59f46b22e8ccd44ce73ddb0b093a11f48c5168682ebb9ddbade85da8f8e4c668db15f96e6277076a20 SHA512 6ba9a051d56aa326e700a7f3442c62b401d7adde892be0f8bb7d083e0e4577eae91b593796f2458b677f2956af55bec9f0ee01bab406171b699ddaed2392fbee
-DIST chromium-89-patchset-3.tar.xz 5276 BLAKE2B c5001450e876c4be85d1ecfa9219c9d5d59d95d7c7a783470357e4a34fb60a72c20a138d652e3d587fd893e230d8e729ad5887915f1d39fdc940e726cb965341 SHA512 5157265a5d712bbf5a456cc5e0b798ee358d03f571dc91e2bff4b53eab71aae013d40a0140c1adf5aea9d791bbd543883cd5a133a2d3eb971baababb0acd54b7
-DIST chromium-89.0.4356.6.tar.xz 885537076 BLAKE2B 75c8f977b62bb73f5b0c8223561d1bd868270f3fdb01ca86a7e9355d442352fa17d7c7db3d67a20f273b8caeda06a03ce57b1f04017d73d6d4bc195356e39d1b SHA512 f83ce11fd9957a794c6dfdd5e128016f55140936af94daf1b7f09156b04b28d77f924bd9c9f92e062c75aae14d11508cb532deda23732acfa85d987de28cbad3
+DIST chromium-89-patchset-4.tar.xz 6048 BLAKE2B f7549ad64ef51d1c3a6d47ac817cc21f1e09f4ec7516385dec87324dc8b0228ea0b03cae894b411d6574499673a185b0908b4ef420455a004238ac9c94b6c7cf SHA512 7797ccf198483c9bbe5257a1321984075c982ce5f5bf14f578dd9ac8a8aa85b82ef6ae35492738bf7994aed85cf65c825be123aedf9a10aa7b35a289a3f855ce
+DIST chromium-89.0.4381.6.tar.xz 890366840 BLAKE2B 45c49669140e84c3ab19cd0bf643a87903a1da7dcd001c0f6ba0d9ffc61db004d471bab6e32d84262d6e4e1692abbfc411c4be46a71ba535c0fa6907521c27ad SHA512 ce0b63fb08cb123c9d8e07b22956467ac1f625cdf75a06308af42aa846d3b75070797b9f5675349c7aed562b8a2811932b77fe80e7a21cfea7467ce08a8046fd
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-89.0.4356.6.ebuild b/www-client/chromium/chromium-89.0.4381.6.ebuild
similarity index 98%
rename from www-client/chromium/chromium-89.0.4356.6.ebuild
rename to www-client/chromium/chromium-89.0.4381.6.ebuild
index 9a4725ffc82..f23d0f62c75 100644
--- a/www-client/chromium/chromium-89.0.4356.6.ebuild
+++ b/www-client/chromium/chromium-89.0.4381.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2009-2020 Gentoo Authors
+# Copyright 2009-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -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="3"
+PATCHSET="4"
 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
@@ -231,6 +231,7 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
+		"${FILESDIR}/chromium-shim_headers.patch"
 	)
 
 	default
@@ -266,13 +267,6 @@ src_prepare() {
 		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
@@ -330,7 +324,6 @@ src_prepare() {
 		third_party/fusejs
 		third_party/libgifcodec
 		third_party/liburlpattern
-		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
@@ -416,9 +409,6 @@ src_prepare() {
 		third_party/skia/third_party/skcms
 		third_party/skia/third_party/vulkan
 		third_party/smhasher
-		third_party/spirv-cross/spirv-cross
-		third_party/spirv-headers
-		third_party/SPIRV-Tools
 		third_party/sqlite
 		third_party/swiftshader
 		third_party/swiftshader/third_party/astc-encoder

diff --git a/www-client/chromium/files/chromium-shim_headers.patch b/www-client/chromium/files/chromium-shim_headers.patch
new file mode 100644
index 00000000000..9372632a3cc
--- /dev/null
+++ b/www-client/chromium/files/chromium-shim_headers.patch
@@ -0,0 +1,48 @@
+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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2020-12-03 19:26 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2020-12-03 19:26 UTC (permalink / raw
  To: gentoo-commits

commit:     ce271b74f0f6be73cef6b837d17a411386d691a4
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  3 19:25:45 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Dec  3 19:26:23 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce271b74

www-client/chromium: stable channel bump to 87.0.4280.88

Add patches for ICU 68.1 compatibility.

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

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-87.0.4280.88.ebuild   | 899 +++++++++++++++++++++
 www-client/chromium/files/chromium-87-icu68.patch  | 400 +++++++++
 .../chromium/files/chromium-87-v8-icu68.patch      | 192 +++++
 4 files changed, 1492 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 56a20f2793a..e7ad956666c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,6 @@
 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-87.0.4280.88.tar.xz 856266548 BLAKE2B 06a29a6c1e8cf71eb2db6e93a009feb8fd0b7ee676ff2c1dd31d2d72c597e5e84d979dbc64b7cb3f80ee0c51196f60a56157a27b679cab7f779baee61cd1928a SHA512 ac3903b598bd69f4ee3065845eac3c85cb5524715b9ce629c9c2bd017f2ebd168b7ee8111bccc2e6b6cfd12ad07add834cb2cd3bf0e27a8a5076bb7842fca897
 DIST chromium-88-patchset-3.tar.xz 8396 BLAKE2B 4c978f1a6efef3f71e3dd6340c392b74bc6a734b49a9ca43343d03903159dafc66159939f9a6c4b55665ddbe7bd97a26d8d86c285ec02cf76cad5f5cc7410570 SHA512 c39afa26f5b0b9930f6f67ce0c42eefd74c09d528b26bc0db57129b150f75ff83c8b1cb97bd9c5d75f288fb4767cc68c9c5ce89231b4a59f8ca02493e4dd281a
 DIST chromium-88.0.4324.11.tar.xz 857506624 BLAKE2B 4ba54ceb848d9d7b9d3b9d5dc2a1dc80ea7da49150beb4ee5509f51db7d85cd72de79803ed25be52d0e6f8ff176a7154d05be5f36d604c4efe0a5b86c2fcd533 SHA512 736d77ba1c100cb6a0e6518920acf839f15213eaaa5f350f304c8ce9afbbeb47195b9927609ac01829e04f11f23cd2f8ab06493c1b14639c5b57f3ef5d01d5ee
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-87.0.4280.88.ebuild b/www-client/chromium/chromium-87.0.4280.88.ebuild
new file mode 100644
index 00000000000..a23879fdc47
--- /dev/null
+++ b/www-client/chromium/chromium-87.0.4280.88.ebuild
@@ -0,0 +1,899 @@
+# 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="9"
+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 +tcmalloc vaapi 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:=
+	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:=
+			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-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 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-87-ozone-deps.patch"
+		"${FILESDIR}/chromium-87-webcodecs-deps.patch"
+		"${FILESDIR}/chromium-87-v8-icu68.patch"
+		"${FILESDIR}/chromium-87-icu68.patch"
+	)
+
+	if use vaapi; then
+		PATCHES+=( "${FILESDIR}/chromium-86-fix-vaapi-on-intel.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/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/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/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/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
+		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/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/shaka-player
+		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/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 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)"
+
+	# 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 missing in tarball
+		# (https://groups.google.com/a/chromium.org/g/chromium-packagers/c/2ID9c4j6UkY)
+		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)
+		[[ ${#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
+}

diff --git a/www-client/chromium/files/chromium-87-icu68.patch b/www-client/chromium/files/chromium-87-icu68.patch
new file mode 100644
index 00000000000..dfea967dbaa
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-icu68.patch
@@ -0,0 +1,400 @@
+From 4d16e52a5e6771c4aa5f892e14486bf0e87027d1 Mon Sep 17 00:00:00 2001
+From: Frank Tang <ftang@chromium.org>
+Date: Tue, 20 Oct 2020 00:11:50 +0000
+Subject: [PATCH] Prepare for landing ICU68
+
+In the landing process of ICU68 we found these need to be changed
+since ICU68 no longer define TRUE and FALSE for UBool to
+avoid C++20 problem.
+
+Bug: 1138555
+Change-Id: I64fd98c99864aa86b07280537a780105cb0eabbe
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2473522
+Reviewed-by: Frank Tang <ftang@chromium.org>
+Reviewed-by: Colin Blundell <blundell@chromium.org>
+Reviewed-by: Dominic Battré <battre@chromium.org>
+Reviewed-by: Guillaume Jenkins <gujen@google.com>
+Reviewed-by: Jungshik Shin <jshin@chromium.org>
+Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
+Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
+Reviewed-by: Mustafa Emre Acer <meacer@chromium.org>
+Reviewed-by: Marian Fechete <marianfe@google.com>
+Reviewed-by: Matthew Denton <mpdenton@chromium.org>
+Commit-Queue: Frank Tang <ftang@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#818713}
+---
+
+diff --git a/base/i18n/icu_util.cc b/base/i18n/icu_util.cc
+index b225f1d..20debbe 100644
+--- a/base/i18n/icu_util.cc
++++ b/base/i18n/icu_util.cc
+@@ -327,7 +327,7 @@
+   // https://ssl.icu-project.org/trac/ticket/13208 .
+   string16 zone_id = android::GetDefaultTimeZoneId();
+   icu::TimeZone::adoptDefault(icu::TimeZone::createTimeZone(
+-      icu::UnicodeString(FALSE, zone_id.data(), zone_id.length())));
++      icu::UnicodeString(false, zone_id.data(), zone_id.length())));
+ #elif defined(OS_FUCHSIA)
+   // The platform-specific mechanisms used by ICU's detectHostTimeZone() to
+   // determine the default time zone will not work on Fuchsia. Therefore,
+diff --git a/base/i18n/string_compare.cc b/base/i18n/string_compare.cc
+index c0e83c6..e4fb687 100644
+--- a/base/i18n/string_compare.cc
++++ b/base/i18n/string_compare.cc
+@@ -18,8 +18,8 @@
+                                              StringPiece16 rhs) {
+   UErrorCode error = U_ZERO_ERROR;
+   UCollationResult result = collator.compare(
+-      icu::UnicodeString(FALSE, lhs.data(), static_cast<int>(lhs.length())),
+-      icu::UnicodeString(FALSE, rhs.data(), static_cast<int>(rhs.length())),
++      icu::UnicodeString(false, lhs.data(), static_cast<int>(lhs.length())),
++      icu::UnicodeString(false, rhs.data(), static_cast<int>(rhs.length())),
+       error);
+   DCHECK(U_SUCCESS(error));
+   return result;
+diff --git a/base/i18n/time_formatting.cc b/base/i18n/time_formatting.cc
+index c769b57..c085f5e 100644
+--- a/base/i18n/time_formatting.cc
++++ b/base/i18n/time_formatting.cc
+@@ -240,7 +240,7 @@
+   icu::FieldPosition ignore(icu::FieldPosition::DONT_CARE);
+   measure_format.formatMeasures(measures, 3, formatted, ignore, status);
+   *out = i18n::UnicodeStringToString16(formatted);
+-  return U_SUCCESS(status) == TRUE;
++  return U_SUCCESS(status);
+ }
+ 
+ string16 DateIntervalFormat(const Time& begin_time,
+diff --git a/components/autofill/core/common/autofill_regexes.cc b/components/autofill/core/common/autofill_regexes.cc
+index 02254fa..1cf12f3 100644
+--- a/components/autofill/core/common/autofill_regexes.cc
++++ b/components/autofill/core/common/autofill_regexes.cc
+@@ -43,7 +43,7 @@
+ icu::RegexMatcher* AutofillRegexes::GetMatcher(const base::string16& pattern) {
+   auto it = matchers_.find(pattern);
+   if (it == matchers_.end()) {
+-    const icu::UnicodeString icu_pattern(FALSE, pattern.data(),
++    const icu::UnicodeString icu_pattern(false, pattern.data(),
+                                          pattern.length());
+ 
+     UErrorCode status = U_ZERO_ERROR;
+@@ -71,21 +71,21 @@
+   base::AutoLock lock(*g_lock);
+ 
+   icu::RegexMatcher* matcher = g_autofill_regexes->GetMatcher(pattern);
+-  icu::UnicodeString icu_input(FALSE, input.data(), input.length());
++  icu::UnicodeString icu_input(false, input.data(), input.length());
+   matcher->reset(icu_input);
+ 
+   UErrorCode status = U_ZERO_ERROR;
+   UBool matched = matcher->find(0, status);
+   DCHECK(U_SUCCESS(status));
+ 
+-  if (matched == TRUE && match) {
++  if (matched && match) {
+     icu::UnicodeString match_unicode =
+         matcher->group(group_to_be_captured, status);
+     DCHECK(U_SUCCESS(status));
+     *match = base::i18n::UnicodeStringToString16(match_unicode);
+   }
+ 
+-  return matched == TRUE;
++  return matched;
+ }
+ 
+ }  // namespace autofill
+diff --git a/components/autofill_assistant/browser/string_conversions_util.cc b/components/autofill_assistant/browser/string_conversions_util.cc
+index 212bafa..1d00d68 100644
+--- a/components/autofill_assistant/browser/string_conversions_util.cc
++++ b/components/autofill_assistant/browser/string_conversions_util.cc
+@@ -39,13 +39,13 @@
+ // |target|.
+ bool AppendUnicodeToUTF8(const UChar32 source, std::string* target) {
+   char bytes[4];
+-  UBool error = FALSE;
++  UBool error = false;
+   size_t offset = 0;
+   U8_APPEND(bytes, offset, base::size(bytes), source, error);
+-  if (error == FALSE) {
++  if (error == false) {
+     target->append(bytes, offset);
+   }
+-  return error == FALSE;
++  return !error;
+ }
+ 
+ }  // namespace autofill_assistant
+diff --git a/components/signin/public/identity_manager/identity_utils.cc b/components/signin/public/identity_manager/identity_utils.cc
+index 1c414e2..014d674 100644
+--- a/components/signin/public/identity_manager/identity_utils.cc
++++ b/components/signin/public/identity_manager/identity_utils.cc
+@@ -33,7 +33,7 @@
+ 
+   // See if the username matches the policy-provided pattern.
+   UErrorCode status = U_ZERO_ERROR;
+-  const icu::UnicodeString icu_pattern(FALSE, utf16_pattern.data(),
++  const icu::UnicodeString icu_pattern(false, utf16_pattern.data(),
+                                        utf16_pattern.length());
+   icu::RegexMatcher matcher(icu_pattern, UREGEX_CASE_INSENSITIVE, status);
+   if (!U_SUCCESS(status)) {
+diff --git a/components/spellcheck/renderer/spellcheck_worditerator.cc b/components/spellcheck/renderer/spellcheck_worditerator.cc
+index ec16fef..3b1f060 100644
+--- a/components/spellcheck/renderer/spellcheck_worditerator.cc
++++ b/components/spellcheck/renderer/spellcheck_worditerator.cc
+@@ -442,7 +442,7 @@
+   // spellchecker and we need manual normalization as well. The normalized
+   // text does not have to be NUL-terminated since its characters are copied to
+   // string16, which adds a NUL character when we need.
+-  icu::UnicodeString input(FALSE, &text_[input_start],
++  icu::UnicodeString input(false, &text_[input_start],
+                            base::checked_cast<int32_t>(input_length));
+   UErrorCode status = U_ZERO_ERROR;
+   icu::UnicodeString output;
+diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker.cc b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
+index 6d66a7c..d73192b1 100644
+--- a/components/url_formatter/spoof_checks/idn_spoof_checker.cc
++++ b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
+@@ -368,7 +368,7 @@
+     return Result::kICUSpoofChecks;
+   }
+ 
+-  icu::UnicodeString label_string(FALSE /* isTerminated */, label.data(),
++  icu::UnicodeString label_string(false /* isTerminated */, label.data(),
+                                   base::checked_cast<int32_t>(label.size()));
+ 
+   // A punycode label with 'xn--' prefix is not subject to the URL
+@@ -711,7 +711,7 @@
+     base::StringPiece tld,
+     base::StringPiece16 tld_unicode) {
+   icu::UnicodeString tld_string(
+-      FALSE /* isTerminated */, tld_unicode.data(),
++      false /* isTerminated */, tld_unicode.data(),
+       base::checked_cast<int32_t>(tld_unicode.size()));
+   // Allow if the TLD contains any letter from the script, in which case it's
+   // likely to be a TLD in that script.
+diff --git a/components/url_formatter/spoof_checks/skeleton_generator.cc b/components/url_formatter/spoof_checks/skeleton_generator.cc
+index 9628626..9a77901 100644
+--- a/components/url_formatter/spoof_checks/skeleton_generator.cc
++++ b/components/url_formatter/spoof_checks/skeleton_generator.cc
+@@ -116,7 +116,7 @@
+ Skeletons SkeletonGenerator::GetSkeletons(base::StringPiece16 hostname) {
+   Skeletons skeletons;
+   size_t hostname_length = hostname.length() - (hostname.back() == '.' ? 1 : 0);
+-  icu::UnicodeString host(FALSE, hostname.data(), hostname_length);
++  icu::UnicodeString host(false, hostname.data(), hostname_length);
+   // If input has any characters outside Latin-Greek-Cyrillic and [0-9._-],
+   // there is no point in getting rid of diacritics because combining marks
+   // attached to non-LGC characters are already blocked.
+diff --git a/content/zygote/zygote_linux.cc b/content/zygote/zygote_linux.cc
+index 95d5a82..b6d8e5a 100644
+--- a/content/zygote/zygote_linux.cc
++++ b/content/zygote/zygote_linux.cc
+@@ -557,7 +557,7 @@
+   if (!iter.ReadString16(&timezone_id))
+     return -1;
+   icu::TimeZone::adoptDefault(icu::TimeZone::createTimeZone(
+-      icu::UnicodeString(FALSE, timezone_id.data(), timezone_id.length())));
++      icu::UnicodeString(false, timezone_id.data(), timezone_id.length())));
+ 
+   if (!iter.ReadInt(&numfds))
+     return -1;
+diff --git a/services/device/time_zone_monitor/time_zone_monitor_android.cc b/services/device/time_zone_monitor/time_zone_monitor_android.cc
+index 818670a..f57f972 100644
+--- a/services/device/time_zone_monitor/time_zone_monitor_android.cc
++++ b/services/device/time_zone_monitor/time_zone_monitor_android.cc
+@@ -34,7 +34,7 @@
+   // See base/i18n/icu_util.cc:InitializeIcuTimeZone() for more information.
+   base::string16 zone_id = base::android::GetDefaultTimeZoneId();
+   std::unique_ptr<icu::TimeZone> new_zone(icu::TimeZone::createTimeZone(
+-      icu::UnicodeString(FALSE, zone_id.data(), zone_id.length())));
++      icu::UnicodeString(false, zone_id.data(), zone_id.length())));
+   UpdateIcuAndNotifyClients(std::move(new_zone));
+ }
+ 
+diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc
+index a6b9552..36809d91 100644
+--- a/third_party/blink/renderer/core/exported/web_view_test.cc
++++ b/third_party/blink/renderer/core/exported/web_view_test.cc
+@@ -4868,18 +4868,18 @@
+ 
+ TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateDom) {
+   // Test dom mutation.
+-  TestEachMouseEvent("mutateDom", FALSE);
++  TestEachMouseEvent("mutateDom", false);
+ 
+   // Test without any DOM mutation.
+-  TestEachMouseEvent("none", TRUE);
++  TestEachMouseEvent("none", true);
+ }
+ 
+ TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateStyle) {
+   // Test style mutation.
+-  TestEachMouseEvent("mutateStyle", FALSE);
++  TestEachMouseEvent("mutateStyle", false);
+ 
+   // Test checkbox:indeterminate style mutation.
+-  TestEachMouseEvent("mutateIndeterminate", FALSE);
++  TestEachMouseEvent("mutateIndeterminate", false);
+ 
+   // Test click div with :active style.
+   Tap("style_active");
+@@ -4888,10 +4888,10 @@
+ 
+ TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithPreventDefault) {
+   // Test swallowing.
+-  TestEachMouseEvent("preventDefault", FALSE);
++  TestEachMouseEvent("preventDefault", false);
+ 
+   // Test without any preventDefault.
+-  TestEachMouseEvent("none", TRUE);
++  TestEachMouseEvent("none", true);
+ }
+ 
+ TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithNonTriggeringNodes) {
+diff --git a/third_party/blink/renderer/platform/text/locale_icu.cc b/third_party/blink/renderer/platform/text/locale_icu.cc
+index 92fb99e0..f991b51 100644
+--- a/third_party/blink/renderer/platform/text/locale_icu.cc
++++ b/third_party/blink/renderer/platform/text/locale_icu.cc
+@@ -169,12 +169,12 @@
+     return g_empty_string;
+ 
+   UErrorCode status = U_ZERO_ERROR;
+-  int32_t length = udat_toPattern(date_format, TRUE, nullptr, 0, &status);
++  int32_t length = udat_toPattern(date_format, true, nullptr, 0, &status);
+   if (status != U_BUFFER_OVERFLOW_ERROR || !length)
+     return g_empty_string;
+   StringBuffer<UChar> buffer(length);
+   status = U_ZERO_ERROR;
+-  udat_toPattern(date_format, TRUE, buffer.Characters(), length, &status);
++  udat_toPattern(date_format, true, buffer.Characters(), length, &status);
+   if (U_FAILURE(status))
+     return g_empty_string;
+   return String::Adopt(buffer);
+diff --git a/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc b/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
+index 5bea007..0e8c60a 100644
+--- a/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
++++ b/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
+@@ -312,13 +312,13 @@
+       text->chunkOffset = offset <= std::numeric_limits<int32_t>::max()
+                               ? static_cast<int32_t>(offset)
+                               : 0;
+-      is_accessible = TRUE;
++      is_accessible = true;
+       return true;
+     }
+     if (native_index >= native_length &&
+         text->chunkNativeLimit == native_length) {
+       text->chunkOffset = text->chunkLength;
+-      is_accessible = FALSE;
++      is_accessible = false;
+       return true;
+     }
+   } else {
+@@ -331,12 +331,12 @@
+       text->chunkOffset = offset <= std::numeric_limits<int32_t>::max()
+                               ? static_cast<int32_t>(offset)
+                               : 0;
+-      is_accessible = TRUE;
++      is_accessible = true;
+       return true;
+     }
+     if (native_index <= 0 && !text->chunkNativeStart) {
+       text->chunkOffset = 0;
+-      is_accessible = FALSE;
++      is_accessible = false;
+       return true;
+     }
+   }
+@@ -347,7 +347,7 @@
+                               int64_t native_index,
+                               UBool forward) {
+   if (!text->context)
+-    return FALSE;
++    return false;
+   int64_t native_length = TextNativeLength(text);
+   UBool is_accessible;
+   if (TextInChunkOrOutOfRange(text, native_index, native_length, forward,
+@@ -371,7 +371,7 @@
+     DCHECK_EQ(new_context, kPriorContext);
+     TextLatin1SwitchToPriorContext(text, native_index, native_length, forward);
+   }
+-  return TRUE;
++  return true;
+ }
+ 
+ static const struct UTextFuncs kTextLatin1Funcs = {
+@@ -511,7 +511,7 @@
+ 
+ static UBool TextUTF16Access(UText* text, int64_t native_index, UBool forward) {
+   if (!text->context)
+-    return FALSE;
++    return false;
+   int64_t native_length = TextNativeLength(text);
+   UBool is_accessible;
+   if (TextInChunkOrOutOfRange(text, native_index, native_length, forward,
+@@ -533,7 +533,7 @@
+     DCHECK_EQ(new_context, kPriorContext);
+     TextUTF16SwitchToPriorContext(text, native_index, native_length, forward);
+   }
+-  return TRUE;
++  return true;
+ }
+ 
+ static const struct UTextFuncs kTextUTF16Funcs = {
+diff --git a/third_party/blink/renderer/platform/text/unicode_utilities.cc b/third_party/blink/renderer/platform/text/unicode_utilities.cc
+index 2cefd53..b8c4515 100644
+--- a/third_party/blink/renderer/platform/text/unicode_utilities.cc
++++ b/third_party/blink/renderer/platform/text/unicode_utilities.cc
+@@ -300,7 +300,7 @@
+   DCHECK(U_SUCCESS(status));
+   int32_t input_length = static_cast<int32_t>(length);
+   // copy-on-write.
+-  icu::UnicodeString normalized(FALSE, characters, input_length);
++  icu::UnicodeString normalized(false, characters, input_length);
+   // In the vast majority of cases, input is already NFC. Run a quick check
+   // to avoid normalizing the entire input unnecessarily.
+   int32_t normalized_prefix_length =
+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 b625735..fb8ab05 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
+@@ -327,7 +327,7 @@
+   DLOG_IF(ERROR, err == U_AMBIGUOUS_ALIAS_WARNING)
+       << "ICU ambiguous alias warning for encoding: " << encoding_.GetName();
+   if (converter_icu_)
+-    ucnv_setFallback(converter_icu_, TRUE);
++    ucnv_setFallback(converter_icu_, true);
+ }
+ 
+ int TextCodecICU::DecodeToBuffer(UChar* target,
+diff --git a/ui/base/l10n/formatter.cc b/ui/base/l10n/formatter.cc
+index e4446d4..684ead8 100644
+--- a/ui/base/l10n/formatter.cc
++++ b/ui/base/l10n/formatter.cc
+@@ -234,7 +234,7 @@
+                        int value,
+                        icu::UnicodeString* formatted_string) const {
+   DCHECK(simple_format_[unit]);
+-  DCHECK(formatted_string->isEmpty() == TRUE);
++  DCHECK(formatted_string->isEmpty());
+   UErrorCode error = U_ZERO_ERROR;
+   FormatNumberInPlural(*simple_format_[unit],
+                         value, formatted_string, &error);
+@@ -250,7 +250,7 @@
+       << "Detailed() not implemented for your (format, length) combination!";
+   DCHECK(detailed_format_[units][1])
+       << "Detailed() not implemented for your (format, length) combination!";
+-  DCHECK(formatted_string->isEmpty() == TRUE);
++  DCHECK(formatted_string->isEmpty());
+   UErrorCode error = U_ZERO_ERROR;
+   FormatNumberInPlural(*detailed_format_[units][0], value_1,
+                        formatted_string, &error);
+@@ -283,7 +283,7 @@
+     base::string16 pattern = l10n_util::GetStringUTF16(pluralities.id);
+     UErrorCode error = U_ZERO_ERROR;
+     std::unique_ptr<icu::MessageFormat> format(new icu::MessageFormat(
+-        icu::UnicodeString(FALSE, pattern.data(), pattern.length()), error));
++        icu::UnicodeString(false, pattern.data(), pattern.length()), error));
+     DCHECK(U_SUCCESS(error));
+     if (format.get())
+       return format;

diff --git a/www-client/chromium/files/chromium-87-v8-icu68.patch b/www-client/chromium/files/chromium-87-v8-icu68.patch
new file mode 100644
index 00000000000..2c274dc1abb
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-v8-icu68.patch
@@ -0,0 +1,192 @@
+From b0a7f5691113534c2cf771f2dd3cece5e93bc7d4 Mon Sep 17 00:00:00 2001
+From: Frank Tang <ftang@chromium.org>
+Date: Tue, 03 Nov 2020 23:20:37 -0800
+Subject: [PATCH] Update to ICU68-1
+
+ICU68-1 change the output skeleton format. So we need to change
+resolvedOptions code for 68 migration.
+
+Chromium roll
+https://chromium-review.googlesource.com/c/chromium/src/+/2474093
+
+Bug: v8:10945
+Change-Id: I3b2c7fbe8abb22df8fa51287c498ca3245b8c55b
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477431
+Commit-Queue: Frank Tang <ftang@chromium.org>
+Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
+Reviewed-by: Shu-yu Guo <syg@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#70972}
+
+(ported to work with <ICU-68.1 and rebased chromium)
+---
+
+diff --git a/v8/src/objects/js-number-format.cc b/v8/src/objects/js-number-format.cc
+index 45b0eab..d18b133 100644
+--- a/v8/src/objects/js-number-format.cc
++++ b/v8/src/objects/js-number-format.cc
+@@ -389,17 +389,20 @@ Handle<String> CurrencySignString(Isolate* isolate,
+ Handle<String> UnitDisplayString(Isolate* isolate,
+                                  const icu::UnicodeString& skeleton) {
+   // Ex: skeleton as
+-  // "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name"
++  // <ICU-68.1:  "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name".
++  // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-full-name"
+   if (skeleton.indexOf("unit-width-full-name") >= 0) {
+     return ReadOnlyRoots(isolate).long_string_handle();
+   }
+   // Ex: skeleton as
+-  // "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
++  // <ICU-68.1:  "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
++  // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-narrow".
+   if (skeleton.indexOf("unit-width-narrow") >= 0) {
+     return ReadOnlyRoots(isolate).narrow_string_handle();
+   }
+   // Ex: skeleton as
+-  // "measure-unit/length-foot .### rounding-mode-half-up"
++  // <ICU-68.1:  "measure-unit/length-foot .### rounding-mode-half-up"
++  // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
+   return ReadOnlyRoots(isolate).short_string_handle();
+ }
+ 
+@@ -422,7 +425,8 @@ Notation NotationFromSkeleton(const icu::UnicodeString& skeleton) {
+     return Notation::COMPACT;
+   }
+   // Ex: skeleton as
+-  // "measure-unit/length-foot .### rounding-mode-half-up"
++  // <ICU-68.1:  "measure-unit/length-foot .### rounding-mode-half-up"
++  // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
+   return Notation::STANDARD;
+ }
+ 
+@@ -562,14 +566,23 @@ namespace {
+ 
+ // Ex: percent .### rounding-mode-half-up
+ // Special case for "percent"
+-// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
+-// rounding-mode-half-up" should return "kilometer-per-unit".
+-// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
+-// "year".
++// <ICU-68.1:
++//   Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
++//   rounding-mode-half-up" should return "kilometer-per-unit".
++//   Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
++// >=ICU-68.1:
++//   Ex: "unit/milliliter-per-acre .### rounding-mode-half-up"
++//   should return "milliliter-per-acre".
++//   Ex: "unit/year .### rounding-mode-half-up" should return
++//   "year".
+ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
+   std::string str;
+   str = skeleton.toUTF8String<std::string>(str);
++#if U_ICU_VERSION_MAJOR_NUM < 68
+   std::string search("measure-unit/");
++#else
++  std::string search("unit/");
++#endif
+   size_t begin = str.find(search);
+   if (begin == str.npos) {
+     // Special case for "percent".
+@@ -578,20 +591,41 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
+     }
+     return "";
+   }
++#if U_ICU_VERSION_MAJOR_NUM < 68
+   // Skip the type (ex: "length").
+   // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+   //                     b
+   begin = str.find("-", begin + search.size());
++#else
++  // Ex:
++  // "unit/acre .### rounding-mode-half-up"
++  //       b
++  // Ex:
++  // "unit/milliliter-per-acre .### rounding-mode-half-up"
++  //       b
++  begin += search.size();
++#endif
+   if (begin == str.npos) {
+     return "";
+   }
++#if U_ICU_VERSION_MAJOR_NUM < 68
+   begin++;  // Skip the '-'.
++#endif
+   // Find the end of the subtype.
+   size_t end = str.find(" ", begin);
+-  // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+-  //                      b        e
++  // <ICU-68.1:
++  //   "measure-unit/length-kilometer per-measure-unit/duration-hour"
++  //                        b        e
++  // >=ICU-68.1:
++  //   Ex:
++  //   "unit/acre .### rounding-mode-half-up"
++  //         b   e
++  //   Ex:
++  //   "unit/milliliter-per-acre .### rounding-mode-half-up"
++  //         b                  e
+   if (end == str.npos) {
+     end = str.size();
++#if U_ICU_VERSION_MAJOR_NUM < 68
+     return str.substr(begin, end - begin);
+   }
+   // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+@@ -625,17 +659,36 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
+   // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+   //                      [result ]                           b   e
+   return result + "-per-" + str.substr(begin, end - begin);
++#else
++  }
++  return str.substr(begin, end - begin);
++#endif
+ }
+ 
+ Style StyleFromSkeleton(const icu::UnicodeString& skeleton) {
+   if (skeleton.indexOf("currency/") >= 0) {
+     return Style::CURRENCY;
+   }
++#if U_ICU_VERSION_MAJOR_NUM < 68
+   if (skeleton.indexOf("measure-unit/") >= 0) {
+     if (skeleton.indexOf("scale/100") >= 0 &&
+         skeleton.indexOf("measure-unit/concentr-percent") >= 0) {
++#else
++  if (skeleton.indexOf("percent") >= 0) {
++    // percent precision-integer rounding-mode-half-up scale/100
++    if (skeleton.indexOf("scale/100") >= 0) {
++#endif
+       return Style::PERCENT;
++#if U_ICU_VERSION_MAJOR_NUM >= 68
++    } else {
++      return Style::UNIT;
++#endif
+     }
++#if U_ICU_VERSION_MAJOR_NUM >= 68
++  }
++  // Before ICU68: "measure-unit/", since ICU68 "unit/"
++  if (skeleton.indexOf("unit/") >= 0) {
++#endif
+     return Style::UNIT;
+   }
+   return Style::DECIMAL;
+diff --git a/v8/src/objects/js-relative-time-format.cc b/v8/src/objects/js-relative-time-format.cc
+index 267343aaae..64d56a1c12 100644
+--- a/v8/src/objects/js-relative-time-format.cc
++++ b/v8/src/objects/js-relative-time-format.cc
+@@ -195,9 +195,18 @@ MaybeHandle<JSRelativeTimeFormat> JSRelativeTimeFormat::New(
+     }
+   }
+ 
++#if U_ICU_VERSION_MAJOR_NUM < 68
+   icu::DecimalFormat* decimal_format =
+       static_cast<icu::DecimalFormat*>(number_format);
+   decimal_format->setMinimumGroupingDigits(-2);
++#else
++  if (number_format->getDynamicClassID() ==
++      icu::DecimalFormat::getStaticClassID()) {
++    icu::DecimalFormat* decimal_format =
++        static_cast<icu::DecimalFormat*>(number_format);
++    decimal_format->setMinimumGroupingDigits(-2);
++  }
++#endif
+ 
+   // Change UDISPCTX_CAPITALIZATION_NONE to other values if
+   // ECMA402 later include option to change capitalization.


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

commit:     86e673d9139c02cc4760aed472ed0f7e0f015c04
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  8 12:28:49 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Sun Nov  8 12:34:19 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86e673d9

www-client/chromium: dev channel bump to 88.0.4315.5

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

 www-client/chromium/Manifest                       |  4 +--
 ...0.4300.0.ebuild => chromium-88.0.4315.5.ebuild} |  8 +++--
 .../chromium/files/chromium-88-ozone-deps.patch    | 40 ++++++++++++++++++++++
 3 files changed, 48 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f6bfcee7f11..6df7bd466cf 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,6 +2,6 @@ DIST chromium-86-patchset-7.tar.xz 7560 BLAKE2B b7efc559bebe048e7c1a8ff7e3a88f4c
 DIST chromium-86.0.4240.183.tar.xz 825615220 BLAKE2B 72cf9099de420b1cb2af8841a4f7c430ad137a81d0cecb3130549a8bb15e66b1c13d4ff462c6b9e2682f269e1efd24d77416071fe4785481dfd97cac0a740661 SHA512 25d46413a39c0181ee400bcc9cf9ba4a83b4b000c4dcee5a8d471f5ddf21b80b010e6887cf387722278144657fd5f77e8ca4002b9d4f738853473bc79c776cc1
 DIST chromium-87-patchset-8.tar.xz 5484 BLAKE2B 732fe9b293a0956478ca8fc7a8b09a4ae7b618cffa193cc886c2a618adb33eccdc15bcf5cb4b878f970385d93c025129a6048ac3e9de62acc0021f0c5e6cabee SHA512 9fd7057341d35c23577f48fc0c95ca96d723dd11a7c24aa91de90898c0a4958b3f2c699594b5d32d59e8c587018da2be83caf1a1746656e5c24d14045b1d2c2a
 DIST chromium-87.0.4280.47.tar.xz 856391876 BLAKE2B 892f3083d783fec200aba60e8181162615f055af118a5b7538a277f2f411c937e0c7fbc23b3a20359396bfa97b361d6c2fb91706fcd024eefd7d29f45b800caf SHA512 5ac841c82999afa4d283bef693c9929f59b85e9f39e1e703393298427ddd70a73f1cd0c535066cf46c894092fb42ade6925ca312836aea2293f51611de350702
-DIST chromium-88-patchset-1.tar.xz 9224 BLAKE2B 0fca6f309ebfab5735f6ef468177cbfb35530336f6640938e6bfdd4f251a5b8cd6a0573be186db13e255f5ddf6862f64830b19b6112a974dfcfb4930b4cb28e9 SHA512 8bdbc15bc02400d39d7f31b00a6a0129d7cf4c08571b490ea7224ba752b4536fd2cc455cd513ca28105ca6eda0d4a8736ece3a97c7d2c57aa47137f576613c4e
-DIST chromium-88.0.4300.0.tar.xz 844288696 BLAKE2B 26ce30b580d09677d65d1b85af5ac3498463315f2d23f2ad5b762a29109a2d8ebf89a556782b252e6ca7a96b7d68656d0d41be8877368ac502f7130e99b6284c SHA512 ede4fbbba98a4cdfa8ec42818441aaf30d955a48a75dd61fff4b823c47722583d63b68fcfe43baacb1767bdb52f8e9682015274de00b66791b45d7efe9ee9f5c
+DIST chromium-88-patchset-2.tar.xz 6832 BLAKE2B 5ef8a3ce491c96d71ab7ed41d188dcff929c146f2c412bda1035b52fda09dc2bdeb3266eb3e1d046398deb59f440e69ee255a61ced3c2ab409e99ffd36b769e7 SHA512 e83564dfb4367867494868b53d171c276ee9d6827a60a80ac6ab06b410ed79c64c79b60b5be6e44d25987029ebed997b2779ab019d23908df8d14f2decad51be
+DIST chromium-88.0.4315.5.tar.xz 845479952 BLAKE2B 78021935cbf7b3ceaedda1d1e4f355e4fe95795f5c793b46311ccc3c9dda53eb1518fe6472dc761790a9ea37a57c2f554fe442aff5d82bb133a028ff491b6099 SHA512 586fabb0759a880a010d6f80b3c5ec0f6477524b7d110cf05767cf2a8b48d81ad1e5161ebcd0e045f18006cf626413188dc6247a08b7ea57db53422b0708d4d3
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-88.0.4300.0.ebuild b/www-client/chromium/chromium-88.0.4315.5.ebuild
similarity index 99%
rename from www-client/chromium/chromium-88.0.4300.0.ebuild
rename to www-client/chromium/chromium-88.0.4315.5.ebuild
index 78f6dddb0c3..c14c2f338f4 100644
--- a/www-client/chromium/chromium-88.0.4300.0.ebuild
+++ b/www-client/chromium/chromium-88.0.4315.5.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
@@ -228,7 +228,7 @@ src_prepare() {
 
 	local PATCHES=(
 		"${WORKDIR}/patches"
-		"${FILESDIR}/chromium-87-ozone-deps.patch"
+		"${FILESDIR}/chromium-88-ozone-deps.patch"
 		"${FILESDIR}/chromium-87-webcodecs-deps.patch"
 	)
 
@@ -326,6 +326,7 @@ src_prepare() {
 		third_party/emoji-segmenter
 		third_party/flatbuffers
 		third_party/freetype
+		third_party/fusejs
 		third_party/libgifcodec
 		third_party/glslang
 		third_party/google_input_tools
@@ -356,6 +357,8 @@ src_prepare() {
 		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
@@ -438,6 +441,7 @@ src_prepare() {
 		third_party/widevine
 		third_party/woff2
 		third_party/wuffs
+		third_party/x11proto
 		third_party/xcbproto
 		third_party/zxcvbn-cpp
 		third_party/zlib/google

diff --git a/www-client/chromium/files/chromium-88-ozone-deps.patch b/www-client/chromium/files/chromium-88-ozone-deps.patch
new file mode 100644
index 00000000000..6274ded44ac
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-ozone-deps.patch
@@ -0,0 +1,40 @@
+From a5a6050ed551972faaaa65ebc2b4e7e1958738a1 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 6 Nov 2020 16:17:30 +0000
+Subject: [PATCH] fix building without Ozone
+
+When building with use_x11=true and use_ozone=false build fails,
+because features::IsUsingOzonePlatform() is not defined:
+
+../../content/browser/gpu/gpu_internals_ui.cc: In function
+'std::unique_ptr<base::ListValue>
+content::{anonymous}::GpuMemoryBufferInfo(const gfx::GpuExtraInfo&)'
+../../content/browser/gpu/gpu_internals_ui.cc:397:18: error:
+'IsUsingOzonePlatform' is not a member of 'features'
+  397 |   if (!features::IsUsingOzonePlatform()) {
+      |                  ^~~~~~~~~~~~~~~~~~~~
+---
+ content/browser/gpu/gpu_internals_ui.cc | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc
+index 4f07186..01dfcbf 100644
+--- a/content/browser/gpu/gpu_internals_ui.cc
++++ b/content/browser/gpu/gpu_internals_ui.cc
+@@ -394,7 +394,12 @@ std::unique_ptr<base::ListValue> GpuMemoryBufferInfo(
+ 
+   gpu::GpuMemoryBufferConfigurationSet native_config;
+ #if defined(USE_X11)
+-  if (!features::IsUsingOzonePlatform()) {
++#if defined(USE_OZONE)
++  const auto is_using_ozone_platform = features::IsUsingOzonePlatform();
++#else
++  const auto is_using_ozone_platform = false;
++#endif
++  if (!is_using_ozone_platform) {
+     for (const auto& config : gpu_extra_info.gpu_memory_buffer_support_x11) {
+       native_config.emplace(config);
+     }
+-- 
+2.26.2
+


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

commit:     a72458f5dce3c9d8052f625df61efc7850064589
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  8 06:21:36 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Oct  8 06:21:36 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a72458f5

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/747013
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-85.0.4183.121.ebuild  | 867 ---------------------
 .../chromium/files/chromium-84-mediaalloc.patch    |  41 -
 3 files changed, 910 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 51dcce357db..e051529d7e3 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-DIST chromium-85-patchset-2.tar.xz 9724 BLAKE2B 929d6abe3a66db395a9cedc63510a6a0ed0d79057f92ade22fe26221bf46a63e88fb40d6e54e6ffa837d142ec5da22e2b428f3153db431e3389de0b230fa2aec SHA512 753ce53c2c10cf1abdce334086a633dfcb4543c86a2dccbee0ad1bc8a8a0b642cdd18e2277c67088a380a9fa2ca8fd655e2fc0b3a2931de3230afa046615cd0e
-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.75.tar.xz 825512672 BLAKE2B d7b596c6f3b0ac15eafdca53c10d520206f562331e6b858da585070f0f6f6be97e49524ffba2fd1c31429eb21ad0f0d5047aa5f78de7d338b84c9a989cfcb675 SHA512 d553d2ea1fd1d7e3fc64f0d0c5a4fd53235bdabd07c9f85b58c26d371ff587f2917cf0d50993d878c72a4a9f7d8031bf7e542be3bc3e9aeeb8625e4c1570efd8
 DIST chromium-87-patchset-5.tar.xz 7932 BLAKE2B d97f2f901e51288504cc6313d517251daf23d4f4b0f7802453076774c019ef4eeebef5e38c64c12efb156cc770f0fa3e0b00d6b832f8e0614988a0961b1ebb05 SHA512 b4d70cca16ec944771238140765c63487b7306a800298d896b6b5b46761af57b6c58f080d308bfd7d9e131e05d8b79503651c94b200a3ff3e18d11dafab3db0c

diff --git a/www-client/chromium/chromium-85.0.4183.121.ebuild b/www-client/chromium/chromium-85.0.4183.121.ebuild
deleted file mode 100644
index 3423601bdd4..00000000000
--- a/www-client/chromium/chromium-85.0.4183.121.ebuild
+++ /dev/null
@@ -1,867 +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/"
-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
-	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 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,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[X]
-			ozone-wayland? (
-				dev-libs/wayland:=
-				dev-libs/libffi:=
-				x11-libs/gtk+:3[wayland,X]
-				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
-	js-type-check? ( 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/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/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/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/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
-
-	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-84-mediaalloc.patch b/www-client/chromium/files/chromium-84-mediaalloc.patch
deleted file mode 100644
index 69f0229088a..00000000000
--- a/www-client/chromium/files/chromium-84-mediaalloc.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2020-09-24 16:38 Stephan Hartmann
  0 siblings, 0 replies; 135+ messages in thread
From: Stephan Hartmann @ 2020-09-24 16:38 UTC (permalink / raw
  To: gentoo-commits

commit:     add1b12dc5e74f23686f3652c251ef1f3f991722
Author:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 24 16:36:33 2020 +0000
Commit:     Stephan Hartmann <sultan <AT> gentoo <DOT> org>
CommitDate: Thu Sep 24 16:37:39 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=add1b12d

www-client/chromium: dev channel bump to 87.0.4270.0

- Add experimental vaapi support
- drop USE=system-libvpx, because vaapi uses internal
  libvpx API

Bug: https://bugs.gentoo.org/633332
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.4263.3.ebuild => chromium-87.0.4270.0.ebuild} |  43 ++---
 .../files/chromium-86-fix-vaapi-on-intel.patch     |  40 +++++
 .../files/chromium-87-fix-vaapi-build.patch        | 177 +++++++++++++++++++++
 .../chromium/files/chromium-87-ozone-deps.patch    |  15 ++
 5 files changed, 258 insertions(+), 21 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f6af9471028..ae5531a4293 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.42.tar.xz 825375252 BLAKE2B 9b2abf8c9158630cf89cb35106db7259cf99b6e9753446fd2fc5ce47ceb4f5bc37e68b92e26b80a9e3ab0bf972309b5fdf6326eb9a890d187959f5f95b2309e0 SHA512 8b0edac6b924d6f599c3051e06309824367951389cb18920e7d401ac56f65305b4d39b702cad92babe38c8ae3833f24accf5f436bb9aa5a525f52fcf6fa0603b
-DIST chromium-87-patchset-3.tar.xz 8884 BLAKE2B 9f06f3e4afd53d633a01a5df197799ac54760b5608f202be0216fca80bba57cfbee78b0ea67290f12bccbf1bc150802f007914563f04903727ac15b92a3a68f9 SHA512 1fde82d4cc238a949b6aad7e5c2b7213c06dac49965873b7dcc270312a581421687f7726dbf6c28220c0e69379a5ccdadfc2a99fcdfe6c9f011f482266c177ef
-DIST chromium-87.0.4263.3.tar.xz 830924908 BLAKE2B 8388732772ae84671a3cf90a04663a1f71d4ee51310bf494a9bcbb60867648ac30920ab5eca83b236784cb6f3bb44ecde94b5d74f92e22f5bddd456bc01308fe SHA512 071cc9f88ad7229619b101911202f9c0fa094c99238a20ade793a9e013e2bb497033fb1a1c4458218003f1892e4a3018ac103ea0bf28a44ea689cb4b4cb4c17d
+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 setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-87.0.4263.3.ebuild b/www-client/chromium/chromium-87.0.4270.0.ebuild
similarity index 97%
rename from www-client/chromium/chromium-87.0.4263.3.ebuild
rename to www-client/chromium/chromium-87.0.4270.0.ebuild
index 35a5f4c1ced..008abd293ee 100644
--- a/www-client/chromium/chromium-87.0.4263.3.ebuild
+++ b/www-client/chromium/chromium-87.0.4270.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="3"
+PATCHSET="4"
 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
@@ -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 +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine"
+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 +tcmalloc vaapi wayland widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 REQUIRED_USE="
 	component-build? ( !suid )
@@ -41,6 +41,7 @@ COMMON_X_DEPEND="
 	x11-libs/libXtst:=
 	x11-libs/libXScrnSaver:=
 	x11-libs/libxcb:=
+	vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
 "
 
 COMMON_DEPEND="
@@ -57,7 +58,6 @@ 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] )
 	pulseaudio? ( media-sound/pulseaudio:= )
 	system-ffmpeg? (
 		>=media-video/ffmpeg-4.3:=
@@ -175,6 +175,10 @@ them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
 in /etc/chromium/default.
 "
 
+PATCHES=(
+	"${FILESDIR}/chromium-87-ozone-deps.patch"
+)
+
 pre_build_checks() {
 	if [[ ${MERGE_TYPE} != binary ]]; then
 		local -x CPP="$(tc-getCXX) -E"
@@ -227,6 +231,10 @@ src_prepare() {
 	python_setup
 
 	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
 
@@ -304,6 +312,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/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
@@ -347,6 +356,8 @@ src_prepare() {
 		third_party/libsrtp
 		third_party/libsync
 		third_party/libudev
+		third_party/libvpx
+		third_party/libvpx/source/libvpx/third_party/x86inc
 		third_party/libwebm
 		third_party/libxml/chromium
 		third_party/libyuv
@@ -451,19 +462,6 @@ src_prepare() {
 	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
@@ -483,6 +481,15 @@ src_prepare() {
 	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
 }
@@ -562,9 +569,6 @@ src_configure() {
 	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 )
@@ -588,6 +592,7 @@ src_configure() {
 	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)"
 
 	# TODO: link_pulseaudio=true for GN.
 

diff --git a/www-client/chromium/files/chromium-86-fix-vaapi-on-intel.patch b/www-client/chromium/files/chromium-86-fix-vaapi-on-intel.patch
new file mode 100644
index 00000000000..2e3f9a6fdc5
--- /dev/null
+++ b/www-client/chromium/files/chromium-86-fix-vaapi-on-intel.patch
@@ -0,0 +1,40 @@
+From 9ff06536caf7ea51aad9fd2bb649c858eaf7ee84 Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshanbiswas@fedoraproject.org>
+Date: Sat, 26 Oct 2019 10:06:30 +0530
+Subject: [PATCH] Move offending function to chromeos only
+
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -58,6 +58,7 @@ unsigned int GetVaFormatForVideoCodecProfile(VideoCodecProfile profile) {
+   return VA_RT_FORMAT_YUV420;
+ }
+ 
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ // Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
+ // Lake) Cpu platform id's are referenced from the following file in kernel
+ // source arch/x86/include/asm/intel-family.h
+@@ -70,6 +71,7 @@ bool IsGeminiLakeOrLater() {
+       cpuid.model() >= kGeminiLakeModelId;
+   return is_geminilake_or_later;
+ }
++#endif
+ 
+ }  // namespace
+ 
+@@ -1213,6 +1215,8 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+   if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
+     return BufferAllocationMode::kNormal;
+ 
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
++  // Move this to chromeOs only as it is causing problem in some intel linux drivers
+   // On Gemini Lake, Kaby Lake and later we can pass to libva the client's
+   // PictureBuffers to decode onto, which skips the use of the Vpp unit and its
+   // associated format reconciliation copy, avoiding all internal buffer
+@@ -1228,6 +1232,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+       num_extra_pics_ = 3;
+     return BufferAllocationMode::kNone;
+   }
++#endif
+ 
+   // For H.264 on older devices, another +1 is experimentally needed for
+   // high-to-high resolution changes.

diff --git a/www-client/chromium/files/chromium-87-fix-vaapi-build.patch b/www-client/chromium/files/chromium-87-fix-vaapi-build.patch
new file mode 100644
index 00000000000..e230510fde7
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-fix-vaapi-build.patch
@@ -0,0 +1,177 @@
+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-ozone-deps.patch b/www-client/chromium/files/chromium-87-ozone-deps.patch
new file mode 100644
index 00000000000..ceb693cea8b
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-ozone-deps.patch
@@ -0,0 +1,15 @@
+diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
+index 3f89c70..0df6490 100644
+--- a/chrome/browser/BUILD.gn
++++ b/chrome/browser/BUILD.gn
+@@ -5056,7 +5056,9 @@ static_library("browser") {
+       "chrome_browser_main_extra_parts_ozone.cc",
+       "chrome_browser_main_extra_parts_ozone.h",
+     ]
+-    deps += [ "//ui/ozone" ]
++    if (use_ozone) {
++      deps += [ "//ui/ozone" ]
++    }
+   }
+ 
+   if (enable_background_mode) {


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

commit:     bb66b22fbade7c75db6fcecda87e9ebbc8225629
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sat Jul 18 10:22:39 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Jul 18 13:36:24 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb66b22f

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/732588
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/16737

 www-client/chromium/Manifest                       |   1 -
 www-client/chromium/chromium-83.0.4103.116.ebuild  | 821 ---------------------
 .../files/chromium-78-protobuf-export.patch        |  13 -
 .../chromium/files/chromium-79-gcc-alignas.patch   |  68 --
 .../chromium/files/chromium-80-gcc-quiche.patch    |  30 -
 .../files/chromium-81-re2-0.2020.05.01.patch       |  13 -
 .../files/chromium-82-gcc-incomplete-type.patch    |  53 --
 .../chromium/files/chromium-82-gcc-iterator.patch  |  23 -
 .../chromium/files/chromium-82-gcc-noexcept.patch  |  35 -
 .../chromium/files/chromium-82-gcc-template.patch  |  50 --
 www-client/chromium/files/chromium-83-gcc-10.patch |  64 --
 .../files/chromium-83-gcc-compatibility.patch      |  25 -
 .../chromium/files/chromium-83-gcc-include.patch   |  75 --
 .../chromium/files/chromium-83-gcc-iterator.patch  |  41 -
 .../files/chromium-83-gcc-permissive.patch         |  31 -
 .../files/chromium-83-gcc-serviceworker.patch      | 130 ----
 .../chromium/files/chromium-83-gcc-template.patch  |  69 --
 www-client/chromium/files/chromium-83-icu67.patch  | 170 -----
 .../files/chromium-blink-style_format.patch        |  18 -
 .../chromium/files/chromium-compiler-r12.patch     | 175 -----
 .../chromium/files/chromium-fix-char_traits.patch  |  14 -
 www-client/chromium/files/chromium-launcher-r3.sh  |  39 -
 22 files changed, 1958 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 73225f51e0b..09ce705e91e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,3 @@
-DIST chromium-83.0.4103.116.tar.xz 802626772 BLAKE2B 6890d8f4a4a9b12ab56a63e037129f6b77f03f95a841494505fdbbe212b0dd756e5558bddd7ee186669929c6069568c76b70b179fe4a58ccad465f2d4677d6e5 SHA512 dbd92fb04183ec1402401388f70b18b95040083c9ea8bf2ea6b1692fddc375b090968b13afb010ebf412b480b34747eb2c82709adbeb386cccf60b972f23254f
 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

diff --git a/www-client/chromium/chromium-83.0.4103.116.ebuild b/www-client/chromium/chromium-83.0.4103.116.ebuild
deleted file mode 100644
index db11978df3c..00000000000
--- a/www-client/chromium/chromium-83.0.4103.116.ebuild
+++ /dev/null
@@ -1,821 +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
-	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:0
-		<media-video/ffmpeg-4.3:0=
-		|| (
-			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-78-protobuf-export.patch b/www-client/chromium/files/chromium-78-protobuf-export.patch
deleted file mode 100644
index ddb9e80eefe..00000000000
--- a/www-client/chromium/files/chromium-78-protobuf-export.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
-index b5b193c..4434854 100644
---- a/third_party/protobuf/src/google/protobuf/repeated_field.h
-+++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
-@@ -804,7 +804,7 @@ class StringTypeHandler {
- // RepeatedPtrField is like RepeatedField, but used for repeated strings or
- // Messages.
- template <typename Element>
--class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
-+class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
-  public:
-   RepeatedPtrField();
-   explicit RepeatedPtrField(Arena* arena);

diff --git a/www-client/chromium/files/chromium-79-gcc-alignas.patch b/www-client/chromium/files/chromium-79-gcc-alignas.patch
deleted file mode 100644
index 1e031e2a6f2..00000000000
--- a/www-client/chromium/files/chromium-79-gcc-alignas.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-Re-use chromium alignas workaround in protobuf.
----
-
-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-80-gcc-quiche.patch b/www-client/chromium/files/chromium-80-gcc-quiche.patch
deleted file mode 100644
index aa3d54126ca..00000000000
--- a/www-client/chromium/files/chromium-80-gcc-quiche.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
-From: vasilvv <vasilvv@google.com>
-Date: Wed, 03 Apr 2019 13:58:53 -0700
-Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer
-
-QuicStreamSendBuffer constructor is implicitely required in the
-initialization of the vector of substreams in QuicCryptoStream.
-Though clang apparently ignores that, GCC fails to build.
-
-BUG=chromium:819294
-
-Originally submitted by José Dapena Paz <jose.dapena@lge.com> at https://quiche-review.googlesource.com/c/quiche/+/2420
-
-PiperOrigin-RevId: 241800134
-Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
----
-
-diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
-index e34514b..74e9d0d 100644
---- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
-+++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
-@@ -62,7 +62,7 @@
-  public:
-   explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
-   QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
--  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
-+  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
-   ~QuicStreamSendBuffer();
- 
-   // Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.

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
deleted file mode 100644
index 17f539060f3..00000000000
--- a/www-client/chromium/files/chromium-81-re2-0.2020.05.01.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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;

diff --git a/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch b/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch
deleted file mode 100644
index a3393405b49..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-incomplete-type.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-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 7b8d9b1..e915402 100644
---- a/ui/accessibility/ax_tree.cc
-+++ b/ui/accessibility/ax_tree.cc
-@@ -567,14 +567,8 @@
-   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;
--};
-+AXTree::NodeSetSizePosInSetInfo::NodeSetSizePosInSetInfo() = default;
-+AXTree::NodeSetSizePosInSetInfo::~NodeSetSizePosInSetInfo() = default;
- 
- struct AXTree::OrderedSetContent {
-   explicit OrderedSetContent(const AXNode* ordered_set = nullptr)
-diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h
-index a51ca8d..8c1c575 100644
---- a/ui/accessibility/ax_tree.h
-+++ b/ui/accessibility/ax_tree.h
-@@ -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();
-+    ~NodeSetSizePosInSetInfo();
-+
-+    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-iterator.patch b/www-client/chromium/files/chromium-82-gcc-iterator.patch
deleted file mode 100644
index 6405d52b3b2..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-iterator.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-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-82-gcc-noexcept.patch b/www-client/chromium/files/chromium-82-gcc-noexcept.patch
deleted file mode 100644
index 1c7de53d8ef..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-noexcept.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-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/third_party/blink/public/platform/cross_variant_mojo_util.h b/third_party/blink/public/platform/cross_variant_mojo_util.h
-index dee0b95..0c83580 100644
---- a/third_party/blink/public/platform/cross_variant_mojo_util.h
-+++ b/third_party/blink/public/platform/cross_variant_mojo_util.h
-@@ -124,7 +124,7 @@ class CrossVariantMojoAssociatedReceiver {
-   ~CrossVariantMojoAssociatedReceiver() = default;
- 
-   CrossVariantMojoAssociatedReceiver(
--      CrossVariantMojoAssociatedReceiver&&) noexcept = default;
-+      CrossVariantMojoAssociatedReceiver&&) = default;
-   CrossVariantMojoAssociatedReceiver& operator=(
-       CrossVariantMojoAssociatedReceiver&&) noexcept = default;
- 
-@@ -155,7 +155,7 @@ class CrossVariantMojoAssociatedRemote {
-   ~CrossVariantMojoAssociatedRemote() = default;
- 
-   CrossVariantMojoAssociatedRemote(
--      CrossVariantMojoAssociatedRemote&&) noexcept = default;
-+      CrossVariantMojoAssociatedRemote&&) = default;
-   CrossVariantMojoAssociatedRemote& operator=(
-       CrossVariantMojoAssociatedRemote&&) noexcept = default;
- 

diff --git a/www-client/chromium/files/chromium-82-gcc-template.patch b/www-client/chromium/files/chromium-82-gcc-template.patch
deleted file mode 100644
index 90909c5692b..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-template.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-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-83-gcc-10.patch b/www-client/chromium/files/chromium-83-gcc-10.patch
deleted file mode 100644
index 974b49cde70..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-10.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-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-compatibility.patch b/www-client/chromium/files/chromium-83-gcc-compatibility.patch
deleted file mode 100644
index 09508ea50b1..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-compatibility.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-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);
-   }

diff --git a/www-client/chromium/files/chromium-83-gcc-include.patch b/www-client/chromium/files/chromium-83-gcc-include.patch
deleted file mode 100644
index 9c405e84002..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-include.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 3681c96f54b34f60493cbbf5ec830f158e469799 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Thu, 2 Apr 2020 14:35:44 +0000
-Subject: [PATCH] IWYU: std::find is defined in algorithm
-
----
- extensions/browser/install/crx_install_error.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/extensions/browser/install/crx_install_error.cc b/extensions/browser/install/crx_install_error.cc
-index a9765bb..bd0d3e3 100644
---- a/extensions/browser/install/crx_install_error.cc
-+++ b/extensions/browser/install/crx_install_error.cc
-@@ -4,6 +4,8 @@
- 
- #include "extensions/browser/install/crx_install_error.h"
- 
-+#include <algorithm>
-+
- #include "base/logging.h"
- #include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"
- 
--- 
-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
deleted file mode 100644
index 3df032751db..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-iterator.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-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
deleted file mode 100644
index a87f1c44b0f..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-permissive.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From fdf2767e8dc54727c9536a4d39d230a959e3698c Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Thu, 2 Apr 2020 16:16:14 +0000
-Subject: [PATCH] GCC: add missing apps namespace to BrowserAppLauncher
-
-GCC does not get namespace of BrowserAppLauncher right and
-fails like this:
-
-chrome/browser/apps/app_service/app_service_proxy.h:82:23: error:
-declaration of 'apps::BrowserAppLauncher&
-apps::AppServiceProxy::BrowserAppLauncher()' changes meaning of
-'BrowserAppLauncher' [-fpermissive]
----
- chrome/browser/apps/app_service/app_service_proxy.h | 2 +-
- 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 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,
-   apps::InstanceRegistry& InstanceRegistry();
- #endif
- 
--  BrowserAppLauncher& BrowserAppLauncher();
-+  apps::BrowserAppLauncher& BrowserAppLauncher();
- 
-   apps::PreferredAppsList& PreferredApps();
- 
--- 
-2.24.1

diff --git a/www-client/chromium/files/chromium-83-gcc-serviceworker.patch b/www-client/chromium/files/chromium-83-gcc-serviceworker.patch
deleted file mode 100644
index a836e7fc533..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-serviceworker.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 0914a38252f205fc04fa50e858b24fa5f535ab11 Mon Sep 17 00:00:00 2001
-From: Hiroki Nakagawa <nhiroki@chromium.org>
-Date: Wed, 29 Apr 2020 11:46:54 +0900
-Subject: [PATCH] ServiceWorker: Avoid double destruction of ServiceWorkerObjectHost on connection error
-
-This CL avoids the case where ServiceWorkerObjectHost is destroyed twice
-on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built
-with the GCC build toolchain.
-
-> How does the issue happen?
-
-ServiceWorkerObjectHost has a cyclic reference like this:
-
-ServiceWorkerObjectHost
-  --([1] scoped_refptr)--> ServiceWorkerVersion
-    --([2] std::unique_ptr)--> ServiceWorkerProviderHost
-      --([3] std::unique_ptr)--> ServiceWorkerContainerHost
-        --([4] std::unique_ptr)--> ServiceWorkerObjectHost
-
-Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in
-map<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>.
-
-When ServiceWorkerObjectHost::OnConnectionError() is called, the
-function removes the reference [4] from the map, and destroys
-ServiceWorkerObjectHost. If the object host has the last reference [1]
-to ServiceWorkerVersion, the destruction also cuts off the references
-[2] and [3], and destroys ServiceWorkerProviderHost and
-ServiceWorkerContainerHost.
-
-This seems to work well on the Chromium's default toolchain, but not
-work on the GCC toolchain. According to the report, destruction of
-ServiceWorkerContainerHost happens while the map owned by the container
-host is erasing the ServiceWorkerObjectHost, and this results in crash
-due to double destruction of the object host.
-
-I don't know the reason why this happens only on the GCC toolchain, but
-I suspect the order of object destruction on std::map::erase() could be
-different depending on the toolchains.
-
-> How does this CL fix this?
-
-The ideal fix is to redesign the ownership model of
-ServiceWorkerVersion, but it's not feasible in the short term.
-
-Instead, this CL avoids destruction of ServiceWorkerObjectHost on
-std::map::erase(). The new code takes the ownership of the object host
-from the map first, and then erases the entry from the map. This
-separates timings to erase the map entry and to destroy the object host,
-so the crash should no longer happen.
-
-Bug: 1056598
-Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613
----
-
-diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
-index c631bcd..ff917f8 100644
---- a/content/browser/service_worker/service_worker_container_host.cc
-+++ b/content/browser/service_worker/service_worker_container_host.cc
-@@ -717,6 +717,16 @@
-     int64_t version_id) {
-   DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
-   DCHECK(base::Contains(service_worker_object_hosts_, version_id));
-+
-+  // ServiceWorkerObjectHost to be deleted may have the last reference to
-+  // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost.
-+  // If we erase the object host directly from the map, |this| could be deleted
-+  // during the map operation and may crash. To avoid the case, we take the
-+  // ownership of the object host from the map first, and then erase the entry
-+  // from the map. See https://crbug.com/1056598 for details.
-+  std::unique_ptr<ServiceWorkerObjectHost> to_be_deleted =
-+      std::move(service_worker_object_hosts_[version_id]);
-+  DCHECK(to_be_deleted);
-   service_worker_object_hosts_.erase(version_id);
- }
- 
-diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
-index 238cb8b..f60c7a2 100644
---- a/content/browser/service_worker/service_worker_object_host_unittest.cc
-+++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
-@@ -200,6 +200,19 @@
-     return registration_info;
-   }
- 
-+  void CallOnConnectionError(ServiceWorkerContainerHost* container_host,
-+                             int64_t version_id) {
-+    // ServiceWorkerObjectHost has the last reference to the version.
-+    ServiceWorkerObjectHost* object_host =
-+        GetServiceWorkerObjectHost(container_host, version_id);
-+    EXPECT_TRUE(object_host->version_->HasOneRef());
-+
-+    // Make sure that OnConnectionError induces destruction of the version and
-+    // the object host.
-+    object_host->receivers_.Clear();
-+    object_host->OnConnectionError();
-+  }
-+
-   BrowserTaskEnvironment task_environment_;
-   std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
-   scoped_refptr<ServiceWorkerRegistration> registration_;
-@@ -409,5 +422,30 @@
-             events[0]->source_info_for_client->client_type);
- }
- 
-+// This is a regression test for https://crbug.com/1056598.
-+TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) {
-+  const GURL scope("https://www.example.com/");
-+  const GURL script_url("https://www.example.com/service_worker.js");
-+  Initialize(std::make_unique<EmbeddedWorkerTestHelper>(base::FilePath()));
-+  SetUpRegistration(scope, script_url);
-+
-+  // Create the provider host.
-+  ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
-+            StartServiceWorker(version_.get()));
-+
-+  // Set up the case where the last reference to the version is owned by the
-+  // service worker object host.
-+  ServiceWorkerContainerHost* container_host =
-+      version_->provider_host()->container_host();
-+  ServiceWorkerVersion* version_rawptr = version_.get();
-+  version_ = nullptr;
-+  ASSERT_TRUE(version_rawptr->HasOneRef());
-+
-+  // Simulate the connection error that induces the object host destruction.
-+  // This shouldn't crash.
-+  CallOnConnectionError(container_host, version_rawptr->version_id());
-+  base::RunLoop().RunUntilIdle();
-+}
-+
- }  // namespace service_worker_object_host_unittest
- }  // namespace content

diff --git a/www-client/chromium/files/chromium-83-gcc-template.patch b/www-client/chromium/files/chromium-83-gcc-template.patch
deleted file mode 100644
index 27365220b03..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-template.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 8d115ddda495d0d2e1e1447392db6e9e6a8a1b32 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-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
-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
-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
-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));
-     }
-   }
- 

diff --git a/www-client/chromium/files/chromium-83-icu67.patch b/www-client/chromium/files/chromium-83-icu67.patch
deleted file mode 100644
index d45d9e810a4..00000000000
--- a/www-client/chromium/files/chromium-83-icu67.patch
+++ /dev/null
@@ -1,170 +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}
----
-
-diff --git a/v8/src/objects/js-number-format.cc b/v8/src/objects/js-number-format.cc
-index ad831c5..bcd4403 100644
---- a/v8/src/objects/js-number-format.cc
-+++ b/v8/src/objects/js-number-format.cc
-@@ -1241,44 +1241,33 @@
- }
- 
- 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->IsNaN()
-                         ? std::numeric_limits<double>::quiet_NaN()
-                         : 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>());
-+    THROW_NEW_ERROR_RETURN_VALUE(
-+        isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
-   }
--  if (fp_iter) {
--    formatted.getAllFieldPositions(*fp_iter, status);
--  }
--  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
-@@ -1289,10 +1278,16 @@
-     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 {
-@@ -1405,12 +1400,18 @@
- }
- 
- 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);
- 
-@@ -1419,13 +1420,14 @@
-   // 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()));
-     }
-   }
- 
-@@ -1447,7 +1449,7 @@
-     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;
-@@ -1467,20 +1469,19 @@
-       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>());
--
-   UErrorCode status = U_ZERO_ERROR;
-+
-   bool style_is_unit =
-       Style::UNIT == StyleFromSkeleton(fmt->toSkeleton(status));
-   CHECK(U_SUCCESS(status));
- 
-   Handle<JSArray> result = factory->NewJSArray(0);
--  Maybe<int> maybe_format_to_parts =
--      ConstructParts(isolate, maybe_format.FromJust(), &fp_iter, result, 0,
--                     numeric_obj, style_is_unit);
-+  Maybe<int> maybe_format_to_parts = ConstructParts(
-+      isolate, &formatted, result, 0, numeric_obj, style_is_unit);
-   MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());
- 
-   return result;

diff --git a/www-client/chromium/files/chromium-blink-style_format.patch b/www-client/chromium/files/chromium-blink-style_format.patch
deleted file mode 100644
index 7c9bc9e4604..00000000000
--- a/www-client/chromium/files/chromium-blink-style_format.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
-index d50a6c1..e0ff436 100644
---- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
-+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
-@@ -149,12 +149,4 @@ def write_code_node_to_file(code_node, filepath):
- 
-     rendered_text = render_code_node(code_node)
- 
--    format_result = style_format.auto_format(rendered_text, filename=filepath)
--    if not format_result.did_succeed:
--        raise RuntimeError("Style-formatting failed: filename = {filename}\n"
--                           "---- stderr ----\n"
--                           "{stderr}:".format(
--                               filename=format_result.filename,
--                               stderr=format_result.error_message))
--
--    web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)
-+    web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)

diff --git a/www-client/chromium/files/chromium-compiler-r12.patch b/www-client/chromium/files/chromium-compiler-r12.patch
deleted file mode 100644
index a17cc4b52c8..00000000000
--- a/www-client/chromium/files/chromium-compiler-r12.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From 907b74447f4a35d5a8e851c73c15cc951a2e446b Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Fri, 20 Mar 2020 09:14:25 +0000
-Subject: [PATCH] Disable various compiler configs
-
----
- build/config/compiler/BUILD.gn | 61 +++++++++++++---------------------
- 1 file changed, 23 insertions(+), 38 deletions(-)
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 9573394..d35e736 100644
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -261,8 +261,6 @@ config("compiler") {
- 
-   configs += [
-     # See the definitions below.
--    ":clang_revision",
--    ":compiler_cpu_abi",
-     ":compiler_codegen",
-     ":compiler_deterministic",
-   ]
-@@ -487,20 +485,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") {
-         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" ]
-@@ -1559,7 +1549,7 @@ config("chromium_code") {
-       defines = [ "_HAS_NODISCARD" ]
-     }
-   } else {
--    cflags = [ "-Wall" ]
-+    cflags = []
-     if (treat_warnings_as_errors) {
-       cflags += [ "-Werror" ]
- 
-@@ -1568,10 +1558,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.
-@@ -1580,15 +1566,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" ]
-@@ -1980,7 +1957,8 @@ config("default_stack_frames") {
- }
- 
- # Default "optimization on" config.
--config("optimize") {
-+config("optimize") { }
-+config("xoptimize") {
-   if (is_win) {
-     # Favor size over speed, /O1 must be before the common flags.
-     # /O1 implies /Os and /GF.
-@@ -2001,7 +1979,8 @@ config("optimize") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2035,7 +2014,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:
-@@ -2067,7 +2047,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:
-@@ -2092,7 +2073,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" ]
-@@ -2208,7 +2190,8 @@ config("win_pdbaltpath") {
- }
- 
- # Full symbols.
--config("symbols") {
-+config("symbols") { }
-+config("xsymbols") {
-   if (is_win) {
-     if (is_clang) {
-       cflags = [ "/Z7" ]  # Debug information in the .obj files.
-@@ -2314,7 +2297,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 = []
-@@ -2371,7 +2355,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" ]
- 
--- 
-2.24.1
-

diff --git a/www-client/chromium/files/chromium-fix-char_traits.patch b/www-client/chromium/files/chromium-fix-char_traits.patch
deleted file mode 100644
index 4cb9503a93f..00000000000
--- a/www-client/chromium/files/chromium-fix-char_traits.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/base/strings/char_traits.h
-+++ b/base/strings/char_traits.h
-@@ -67,9 +67,9 @@
-   return __builtin_memcmp(s1, s2, n);
- #else
-   for (; n; --n, ++s1, ++s2) {
--    if (*s1 < *s2)
-+    if ((unsigned char)*s1 < (unsigned char)*s2)
-       return -1;
--    if (*s1 > *s2)
-+    if ((unsigned char)*s1 > (unsigned char)*s2)
-       return 1;
-   }
-   return 0;

diff --git a/www-client/chromium/files/chromium-launcher-r3.sh b/www-client/chromium/files/chromium-launcher-r3.sh
deleted file mode 100644
index a4fc1a95394..00000000000
--- a/www-client/chromium/files/chromium-launcher-r3.sh
+++ /dev/null
@@ -1,39 +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
-
-# 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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2020-06-29 20:55 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2020-06-29 20:55 UTC (permalink / raw
  To: gentoo-commits

commit:     a250152db47aca94418d17b02fed1c70dd826023
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Jun 29 07:08:11 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Jun 29 20:54:06 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a250152d

www-client/chromium: dev channel bump to 85.0.4181.8

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>

 www-client/chromium/Manifest                       |   2 +
 www-client/chromium/chromium-85.0.4181.8.ebuild    | 866 +++++++++++++++++++++
 .../chromium/files/chromium-85-ozone-include.patch |  24 +
 www-client/chromium/metadata.xml                   |   1 +
 4 files changed, 893 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d738c1693e3..8f0047fc5b2 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,7 @@
 DIST chromium-83.0.4103.116.tar.xz 802626772 BLAKE2B 6890d8f4a4a9b12ab56a63e037129f6b77f03f95a841494505fdbbe212b0dd756e5558bddd7ee186669929c6069568c76b70b179fe4a58ccad465f2d4677d6e5 SHA512 dbd92fb04183ec1402401388f70b18b95040083c9ea8bf2ea6b1692fddc375b090968b13afb010ebf412b480b34747eb2c82709adbeb386cccf60b972f23254f
 DIST chromium-84-patchset-3.tar.xz 20148 BLAKE2B d910570b43f63bcf4ead90ca4e4005a08d7c85b5b4e7af2a70ec4bc18265cbe8b075523878710075cfee4e0631eb3374e1e6d06251f4bf03377954807b1951e9 SHA512 316db8b0359b10a988242a0d665475d912fa9b610a547478d8c39b337afc02780a54d7024e231eb4fd402063cf439f6e2b4bb92a4968c8e0c3e69d84a2ae1664
 DIST chromium-84.0.4147.68.tar.xz 845188784 BLAKE2B a0185a5aacc1297f6240e2d887e980c69ba1219267714fb82c87e2ec31e4a3bee24ea9c059fc4f56dcc5c3e576d0baf5b59ec3576fc266daac583cf2b2917b56 SHA512 c5304dfa76ec9bf1d7e96116b6560b77d636eaa226acf7be46798f4b161c6aba90c54bec797dfbf1e48ece46d4e52e44737ed68457f9b10bbc11658a9020bffd
+DIST chromium-85-patchset-1.tar.xz 9164 BLAKE2B ae52909be374accc0bfa1d9928beb573409de6f6b4f6e1e2cb9f45a7ecdf7a70dcae66f95697a718c2d8271a402b1ce3546c20a85510e219da4d12d3e09419cd SHA512 d04ffd78315710312fbda1161dced731ae23441080ccf3f410b06a22950fa72b6e67f45abe9c9c2a509881191da4ddc4aff391c8cc5c80adfe06c6154ea857d0
+DIST chromium-85.0.4181.8.tar.xz 863049932 BLAKE2B 0a43002498254297ff15e569912b22d5d5b701c1939b92dc544fe2c8c6dbc0190f6afbe3cbe927cd145156ff1b3a9741bd4faf03a37b7aa20f63fec77f899a35 SHA512 7a8141ede000e81346c3ffb62caef1660fed98450eb088a9ba048a7b75a1255c1fc3e5a015e2c0988ad0fd05dc7116d169693465a0d1421c24519d23f7640a98
 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.4181.8.ebuild b/www-client/chromium/chromium-85.0.4181.8.ebuild
new file mode 100644
index 00000000000..14d6fac66e6
--- /dev/null
+++ b/www-client/chromium/chromium-85.0.4181.8.ebuild
@@ -0,0 +1,866 @@
+# 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="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check 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/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]
+		x11-libs/libXScrnSaver:=
+		${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
+	js-type-check? ( 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"
+	"${FILESDIR}/chromium-85-ozone-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 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/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/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+=" 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)
+
+	# 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-85-ozone-include.patch b/www-client/chromium/files/chromium-85-ozone-include.patch
new file mode 100644
index 00000000000..2441a2aca13
--- /dev/null
+++ b/www-client/chromium/files/chromium-85-ozone-include.patch
@@ -0,0 +1,24 @@
+From 9abbd7da1ddd8003106cc3420170561d475231a9 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Mon, 29 Jun 2020 13:01:27 +0000
+Subject: [PATCH] IWYU: add missing include for std::vector
+
+---
+ ui/ozone/public/platform_screen.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/public/platform_screen.h b/ui/ozone/public/platform_screen.h
+index 9ce293c..ba20597 100644
+--- a/ui/ozone/public/platform_screen.h
++++ b/ui/ozone/public/platform_screen.h
+@@ -7,6 +7,7 @@
+ 
+ #include <set>
+ #include <string>
++#include <vector>
+ 
+ #include "base/component_export.h"
+ #include "base/macros.h"
+-- 
+2.26.2
+

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 4be3cc80873..55475a29fef 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -7,6 +7,7 @@
 	</maintainer>
 	<use>
 		<flag name="closure-compile">Enable closure type-checking for Chrome's web technology-based UI. Requires Java.</flag>
+		<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="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>


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

commit:     7df14bbbf6f80e1fca0dc66dcf4c4530085cea9b
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri Jun 19 17:13:58 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jun 28 02:20:51 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7df14bbb

www-client/chromium: beta channel bump to 84.0.4147.68

Closes: https://bugs.gentoo.org/689584
Closes: https://bugs.gentoo.org/655158
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>

 www-client/chromium/Manifest                       |   4 +-
 www-client/chromium/chromium-84.0.4147.45.ebuild   | 804 ---------------------
 ...7.45-r1.ebuild => chromium-84.0.4147.68.ebuild} | 109 ++-
 www-client/chromium/files/chromium-launcher-r4.sh  |  52 ++
 www-client/chromium/metadata.xml                   |   3 +
 5 files changed, 140 insertions(+), 832 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index ec6120b2d52..39875559fb8 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,6 @@
 DIST chromium-83.0.4103.106.tar.xz 802630620 BLAKE2B b145fd04347ef252778c99931d2e6aebc4cb9c3b4340db13ede074ac0631fef3c530b6b8c348ad33576a1da828817a590339206cf941729ee01444350bec1683 SHA512 37d0298ec6794f753bc280352c9ea45d57dd5050240d468fd2a7465b2021ebb598cdc6c4538050dd1d626bcd4a146af87fb837619e08766d38d21821605bd3a8
 DIST chromium-83.0.4103.116.tar.xz 802626772 BLAKE2B 6890d8f4a4a9b12ab56a63e037129f6b77f03f95a841494505fdbbe212b0dd756e5558bddd7ee186669929c6069568c76b70b179fe4a58ccad465f2d4677d6e5 SHA512 dbd92fb04183ec1402401388f70b18b95040083c9ea8bf2ea6b1692fddc375b090968b13afb010ebf412b480b34747eb2c82709adbeb386cccf60b972f23254f
-DIST chromium-84-patchset-1.tar.xz 17652 BLAKE2B 17008a5d7b81fd9dd3934f815922a10c4b33bd4b3a13b350011d60627133f2179c2e70a6e74ef11ddf9b68b83b988fad3df15e9307f871006ccb7aca52c819da SHA512 2a45183c60794256b150bf67aa8395bab113e77b338775f737ebd8a822fd17be776b786ad12ffa759774a8876e0976a1c285ef90257e9532cfd9952baba7096d
-DIST chromium-84.0.4147.45.tar.xz 845103524 BLAKE2B 8b1e1c052b2ff3968fc4f13215551b9bd53b2fe89f15512d064267e82e71909f267d4f91665b456ad84ec537601e4fbc097eebc45b461f967aa8fe997da2716c SHA512 d43ef067ed855813d3f003cc8f7302d433c924a58ea79bdafa3ec1fe35b4f71a24c4493389563bbc88744ee8fce9b1664c62548e975e0e5a97c823f90aacfe30
+DIST chromium-84-patchset-3.tar.xz 20148 BLAKE2B d910570b43f63bcf4ead90ca4e4005a08d7c85b5b4e7af2a70ec4bc18265cbe8b075523878710075cfee4e0631eb3374e1e6d06251f4bf03377954807b1951e9 SHA512 316db8b0359b10a988242a0d665475d912fa9b610a547478d8c39b337afc02780a54d7024e231eb4fd402063cf439f6e2b4bb92a4968c8e0c3e69d84a2ae1664
+DIST chromium-84.0.4147.68.tar.xz 845188784 BLAKE2B a0185a5aacc1297f6240e2d887e980c69ba1219267714fb82c87e2ec31e4a3bee24ea9c059fc4f56dcc5c3e576d0baf5b59ec3576fc266daac583cf2b2917b56 SHA512 c5304dfa76ec9bf1d7e96116b6560b77d636eaa226acf7be46798f4b161c6aba90c54bec797dfbf1e48ece46d4e52e44737ed68457f9b10bbc11658a9020bffd
 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-84.0.4147.45.ebuild b/www-client/chromium/chromium-84.0.4147.45.ebuild
deleted file mode 100644
index d50cafdca25..00000000000
--- a/www-client/chromium/chromium-84.0.4147.45.ebuild
+++ /dev/null
@@ -1,804 +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="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"
-
-	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/chromium-84.0.4147.45-r1.ebuild b/www-client/chromium/chromium-84.0.4147.68.ebuild
similarity index 93%
rename from www-client/chromium/chromium-84.0.4147.45-r1.ebuild
rename to www-client/chromium/chromium-84.0.4147.68.ebuild
index 966c8a05a06..fa4201cf1b1 100644
--- a/www-client/chromium/chromium-84.0.4147.45-r1.ebuild
+++ b/www-client/chromium/chromium-84.0.4147.68.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/"
 XCB_PROTO_VERSION="1.14"
-PATCHSET="1"
+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
@@ -23,15 +23,31 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 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"
+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 )"
+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/libxcb:=
+"
 
 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]
@@ -43,11 +59,11 @@ COMMON_DEPEND="
 	>=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-4:0
+		<media-video/ffmpeg-4.3:0=
 		|| (
 			media-video/ffmpeg[-samba]
 			>=net-fs/samba-4.5.10-r1[-debug(-)]
@@ -59,23 +75,31 @@ COMMON_DEPEND="
 	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 )
+	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]
+		x11-libs/libXScrnSaver:=
+		${COMMON_X_DEPEND}
+	)
 "
 # For nvidia-drivers blocker, see bug #413637 .
 RDEPEND="${COMMON_DEPEND}
@@ -160,6 +184,10 @@ 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"
@@ -206,7 +234,6 @@ src_prepare() {
 	python_setup
 
 	eapply "${WORKDIR}/patches"
-	eapply "${FILESDIR}"/chromium-84-mediaalloc.patch
 
 	default
 
@@ -434,6 +461,9 @@ src_prepare() {
 	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 )
@@ -658,9 +688,6 @@ src_configure() {
 	# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
 	append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
 
-	# Silence lots of GCC warnings upstream doesn't seem to care about
-	append-cxxflags -Wno-invalid-offsetof -Wno-attributes -Wno-pragmas
-
 	# Explicitly disable ICU data file support for system-icu builds.
 	if use system-icu; then
 		myconf_gn+=" icu_use_data_file=false"
@@ -669,6 +696,26 @@ src_configure() {
 	# 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 "$@"
@@ -734,8 +781,14 @@ src_install() {
 
 	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
+	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",
@@ -757,7 +810,11 @@ src_install() {
 	insinto "${CHROMIUM_HOME}"
 	doins out/Release/*.bin
 	doins out/Release/*.pak
-	doins out/Release/*.so
+	(
+		shopt -s nullglob
+		local files=(out/Release/*.so)
+		[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+	)
 
 	if ! use system-icu; then
 		doins out/Release/icudtl.dat

diff --git a/www-client/chromium/files/chromium-launcher-r4.sh b/www-client/chromium/files/chromium-launcher-r4.sh
new file mode 100644
index 00000000000..cb1e9f548b3
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r4.sh
@@ -0,0 +1,52 @@
+#!/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} "$@"

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index c54bc9ef351..4be3cc80873 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -8,7 +8,9 @@
 	<use>
 		<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="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="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 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>
@@ -16,6 +18,7 @@
 		<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="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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2020-06-01 17:34 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2020-06-01 17:34 UTC (permalink / raw
  To: gentoo-commits

commit:     aca4cd0b6fc95026da9ff7be4678f1e9ff92ffc3
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Jun  1 07:57:03 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Jun  1 17:34:20 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aca4cd0b

www-client/chromium: beta channel bump to 84.0.4147.30

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>

 www-client/chromium/Manifest                       |   3 +-
 ....4136.5.ebuild => chromium-84.0.4147.30.ebuild} |  37 ++----
 .../chromium/files/chromium-84-gcc-include.patch   | 145 --------------------
 .../chromium/files/chromium-84-gcc-noexcept.patch  |  57 --------
 .../chromium/files/chromium-84-gcc-template.patch  | 146 ---------------------
 .../files/chromium-84-gcc-unique_ptr.patch         |  29 ----
 .../chromium/files/chromium-84-template.patch      |  80 -----------
 7 files changed, 11 insertions(+), 486 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a37ec5e53f6..1966ce66d89 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-84.0.4136.5.tar.xz 840308252 BLAKE2B 3f10ea5dbb48dd2a39cfb8d39289ad439d0257bea6e40ff130d427f96252890a6164a8dae3b5d30b7e74bcb87815055a6f27826add3ef5e9849e72c6a7dcc3b1 SHA512 9b6285ec2bb9790b8e1593473f8e1f2642a6fa851fb5645c282c48911dffabc2107aa99c90b6d6450eb8c0dc38daa089c514801921bc1ac782b25e34d9b8fd84
+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
 DIST xcb-proto-1.14.tar.xz 143384 BLAKE2B 60212b0f0ce039a64a2e6cbbc78564eeffc57cff20987b37dc780d8d97ae888a7dbfbbaadc6e0e4bedfc5d1e360f16318e3825ad8406de668d9c7c66cf7f4b5d SHA512 de66d568163b6da2be9d6c59984f3afa3acd119a781378638045fd68018665ef5c9af98f024e9962ba3eb7c7a4d85c27ba70ffafceb2324ccc6940f34de16690

diff --git a/www-client/chromium/chromium-84.0.4136.5.ebuild b/www-client/chromium/chromium-84.0.4147.30.ebuild
similarity index 96%
rename from www-client/chromium/chromium-84.0.4136.5.ebuild
rename to www-client/chromium/chromium-84.0.4147.30.ebuild
index 58360a0999f..7e7c4d23de9 100644
--- a/www-client/chromium/chromium-84.0.4136.5.ebuild
+++ b/www-client/chromium/chromium-84.0.4147.30.ebuild
@@ -13,9 +13,12 @@ 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/"
 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://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"
@@ -100,10 +103,6 @@ BDEPEND="
 	sys-devel/flex
 	virtual/pkgconfig
 	closure-compile? ( virtual/jre )
-	!system-libvpx? (
-		amd64? ( dev-lang/yasm )
-		x86? ( dev-lang/yasm )
-	)
 "
 
 : ${CHROMIUM_FORCE_CLANG=no}
@@ -116,10 +115,6 @@ 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:=
@@ -165,23 +160,6 @@ 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-template.patch"
-	"${FILESDIR}/chromium-83-gcc-serviceworker.patch"
-	"${FILESDIR}/chromium-83-gcc-10.patch"
-	"${FILESDIR}/chromium-84-gcc-noexcept.patch"
-	"${FILESDIR}/chromium-84-gcc-template.patch"
-	"${FILESDIR}/chromium-84-gcc-include.patch"
-	"${FILESDIR}/chromium-84-gcc-unique_ptr.patch"
-	"${FILESDIR}/chromium-84-template.patch"
-)
-
 pre_build_checks() {
 	if [[ ${MERGE_TYPE} != binary ]]; then
 		local -x CPP="$(tc-getCXX) -E"
@@ -227,6 +205,8 @@ 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
@@ -267,7 +247,6 @@ src_prepare() {
 		third_party/angle/third_party/vulkan-loader
 		third_party/angle/third_party/vulkan-tools
 		third_party/angle/third_party/vulkan-validation-layers
-		third_party/angle/third_party/VulkanMemoryAllocator
 		third_party/apple_apsl
 		third_party/axe-core
 		third_party/blink
@@ -304,6 +283,7 @@ src_prepare() {
 		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
@@ -344,6 +324,7 @@ src_prepare() {
 		third_party/libxml/chromium
 		third_party/libyuv
 		third_party/llvm
+		third_party/lottie
 		third_party/lss
 		third_party/lzma_sdk
 		third_party/mako
@@ -575,7 +556,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 use_custom_libcxx=false"
+	myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
 
 	# Disable forced lld, bug 641556
 	myconf_gn+=" use_lld=false"

diff --git a/www-client/chromium/files/chromium-84-gcc-include.patch b/www-client/chromium/files/chromium-84-gcc-include.patch
deleted file mode 100644
index 1c6d96cb9c4..00000000000
--- a/www-client/chromium/files/chromium-84-gcc-include.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From 60e856c553f4532c2035b087dbdbdde42dbb5f09 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Sat, 9 May 2020 11:33:04 +0000
-Subject: [PATCH] IWYU: memcpy is defined in cstring
-
----
- cc/base/list_container_helper.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/cc/base/list_container_helper.cc b/cc/base/list_container_helper.cc
-index afd386e..7b594b4 100644
---- a/cc/base/list_container_helper.cc
-+++ b/cc/base/list_container_helper.cc
-@@ -7,6 +7,7 @@
- #include <stddef.h>
- 
- #include <algorithm>
-+#include <cstring>
- #include <vector>
- 
- #include "base/check_op.h"
--- 
-2.26.2
-
-From 5e20370e4bc1fd3beaa9af62fe27aaedb903bacf Mon Sep 17 00:00:00 2001
-From: Piotr Tworek <ptworek@vewd.com>
-Date: Tue, 05 May 2020 06:06:35 +0000
-Subject: [PATCH] Add missing bitset include in web_touch_event.cc.
-
-The code uses std::bitset, but does not include header declaring it. It
-works when using bundled copy of libcxx, but fails when using system
-libstdc++ on Linux.
-
-Change-Id: I8a88078e110b27623b3cdea38c94012ba4050ee7
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2179123
-Reviewed-by: Jeremy Roman <jbroman@chromium.org>
-Commit-Queue: Piotr Tworek <ptworek@vewd.com>
-Cr-Commit-Position: refs/heads/master@{#765415}
----
-
-diff --git a/third_party/blink/common/input/web_touch_event.cc b/third_party/blink/common/input/web_touch_event.cc
-index 7ef37fec..aa054f9 100644
---- a/third_party/blink/common/input/web_touch_event.cc
-+++ b/third_party/blink/common/input/web_touch_event.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 <bitset>
-+
- #include "third_party/blink/public/common/input/web_touch_event.h"
- 
- namespace blink {
-
-From effd506ce070d58e731bd6086681b9cded8573ed Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Sun, 10 May 2020 07:24:38 +0000
-Subject: [PATCH] IWYU: add a bunch of missing cstring includes
-
----
- .../crashpad/snapshot/minidump/minidump_context_converter.cc    | 2 ++
- third_party/crashpad/crashpad/util/linux/ptrace_client.cc       | 1 +
- .../crashpad/crashpad/util/net/http_multipart_builder.cc        | 1 +
- third_party/crashpad/crashpad/util/net/http_transport_socket.cc | 2 ++
- third_party/crashpad/crashpad/util/process/process_memory.cc    | 1 +
- third_party/crashpad/crashpad/util/stream/log_output_stream.cc  | 1 +
- 6 files changed, 8 insertions(+)
-
-diff --git a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc b/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
-index 0c840deac..1d163b42f 100644
---- a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
-+++ b/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
-@@ -14,6 +14,8 @@
- 
- #include "snapshot/minidump/minidump_context_converter.h"
- 
-+#include <cstring>
-+
- #include "base/stl_util.h"
- #include "minidump/minidump_context.h"
- 
-diff --git a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc b/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
-index f097ad985..e91ce2eca 100644
---- a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
-+++ b/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
-@@ -17,6 +17,7 @@
- #include <errno.h>
- #include <stdio.h>
- 
-+#include <cstring>
- #include <string>
- 
- #include "base/logging.h"
-diff --git a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc b/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
-index 267960b27..8ed7edc2f 100644
---- a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
-+++ b/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
-@@ -16,6 +16,7 @@
- 
- #include <sys/types.h>
- 
-+#include <cstring>
- #include <utility>
- #include <vector>
- 
-diff --git a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc b/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
-index 4dd01b6e7..60cd60c17 100644
---- a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
-+++ b/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
-@@ -19,6 +19,8 @@
- #include <poll.h>
- #include <sys/socket.h>
- 
-+#include <cstring>
-+
- #include "base/logging.h"
- #include "base/macros.h"
- #include "base/numerics/safe_conversions.h"
-diff --git a/third_party/crashpad/crashpad/util/process/process_memory.cc b/third_party/crashpad/crashpad/util/process/process_memory.cc
-index ab87b940f..e02bcea81 100644
---- a/third_party/crashpad/crashpad/util/process/process_memory.cc
-+++ b/third_party/crashpad/crashpad/util/process/process_memory.cc
-@@ -15,6 +15,7 @@
- #include "util/process/process_memory.h"
- 
- #include <algorithm>
-+#include <cstring>
- 
- #include "base/logging.h"
- #include "util/numeric/safe_assignment.h"
-diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
-index 03c0a5a02..45d823aa4 100644
---- a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
-+++ b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
-@@ -15,6 +15,7 @@
- #include "util/stream/log_output_stream.h"
- 
- #include <algorithm>
-+#include <cstring>
- 
- #include "base/logging.h"
- 
--- 
-2.26.2
-

diff --git a/www-client/chromium/files/chromium-84-gcc-noexcept.patch b/www-client/chromium/files/chromium-84-gcc-noexcept.patch
deleted file mode 100644
index e3918ca28f5..00000000000
--- a/www-client/chromium/files/chromium-84-gcc-noexcept.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/third_party/blink/public/platform/cross_variant_mojo_util.h b/third_party/blink/public/platform/cross_variant_mojo_util.h
-index dee0b95..0c83580 100644
---- a/third_party/blink/public/platform/cross_variant_mojo_util.h
-+++ b/third_party/blink/public/platform/cross_variant_mojo_util.h
-@@ -124,7 +124,7 @@ class CrossVariantMojoAssociatedReceiver {
-   ~CrossVariantMojoAssociatedReceiver() = default;
- 
-   CrossVariantMojoAssociatedReceiver(
--      CrossVariantMojoAssociatedReceiver&&) noexcept = default;
-+      CrossVariantMojoAssociatedReceiver&&) = default;
-   CrossVariantMojoAssociatedReceiver& operator=(
-       CrossVariantMojoAssociatedReceiver&&) noexcept = default;
- 
-@@ -155,7 +155,7 @@ class CrossVariantMojoAssociatedRemote {
-   ~CrossVariantMojoAssociatedRemote() = default;
- 
-   CrossVariantMojoAssociatedRemote(
--      CrossVariantMojoAssociatedRemote&&) noexcept = default;
-+      CrossVariantMojoAssociatedRemote&&) = default;
-   CrossVariantMojoAssociatedRemote& operator=(
-       CrossVariantMojoAssociatedRemote&&) noexcept = default;
- 
-diff --git a/base/containers/flat_map.h b/base/containers/flat_map.h
-index ed82c5d..1af6b40 100644
---- a/base/containers/flat_map.h
-+++ b/base/containers/flat_map.h
-@@ -202,7 +202,7 @@ class flat_map : public ::base::internal::flat_tree<
-   ~flat_map() = default;
- 
-   flat_map& operator=(const flat_map&) = default;
--  flat_map& operator=(flat_map&&) = default;
-+  flat_map& operator=(flat_map&&) noexcept = default;
-   // Takes the first if there are duplicates in the initializer list.
-   flat_map& operator=(std::initializer_list<value_type> ilist);
- 
-diff --git a/base/containers/flat_tree.h b/base/containers/flat_tree.h
-index 9412ff6..8ecc1fa 100644
---- a/base/containers/flat_tree.h
-+++ b/base/containers/flat_tree.h
-@@ -125,7 +125,7 @@ class flat_tree {
-   // Assume that move assignment invalidates iterators and references.
- 
-   flat_tree& operator=(const flat_tree&);
--  flat_tree& operator=(flat_tree&&);
-+  flat_tree& operator=(flat_tree&&) noexcept;
-   // Takes the first if there are duplicates in the initializer list.
-   flat_tree& operator=(std::initializer_list<value_type> ilist);
- 
-@@ -519,7 +519,7 @@ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::operator=(
- 
- template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
- auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::operator=(flat_tree &&)
--    -> flat_tree& = default;
-+    noexcept -> flat_tree& = default;
- 
- template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
- auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::operator=(

diff --git a/www-client/chromium/files/chromium-84-gcc-template.patch b/www-client/chromium/files/chromium-84-gcc-template.patch
deleted file mode 100644
index 15875109d75..00000000000
--- a/www-client/chromium/files/chromium-84-gcc-template.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From 2cd1ba11c364fc0f2f06c5fa3c15ff75ee860966 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Sat, 2 May 2020 16:42:38 +0000
-Subject: [PATCH] GCC: fix template specialization in WTF::VectorBuffer
-
-GCC complains that explicit specialization in non-namespace scope
-is happening for InitInlinedBuffer. However, specialization is
-not really necessary here with templates and can be moved
-into InitInlinedBuffer method without changing generated code.
----
- third_party/blink/renderer/platform/wtf/vector.h | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h
-index 81a4e7b..30ffa89 100644
---- a/third_party/blink/renderer/platform/wtf/vector.h
-+++ b/third_party/blink/renderer/platform/wtf/vector.h
-@@ -950,11 +950,10 @@ class VectorBuffer : protected VectorBufferBase<T, Allocator> {
-     return unsafe_reinterpret_cast_ptr<const T*>(inline_buffer_);
-   }
- 
--  template <bool = Allocator::kIsGarbageCollected>
--  void InitInlinedBuffer() {}
--  template <>
--  void InitInlinedBuffer<true>() {
--    memset(&inline_buffer_, 0, kInlineBufferSize);
-+  void InitInlinedBuffer() {
-+    if ( Allocator::kIsGarbageCollected ) {
-+      memset(&inline_buffer_, 0, kInlineBufferSize);
-+    }
-   }
- 
-   alignas(T) char inline_buffer_[kInlineBufferSize];
--- 
-2.26.2
-From 421aca221966c7d736c4bc5f268a730199f02fb9 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Sat, 9 May 2020 14:59:07 +0000
-Subject: [PATCH] GCC: fix template specialization in TraceInCollectionTrait
-
-GCC complains that explicit specialization in non-namespace scope
-is happening for TraceImpl. Move TraceImpl implementations into
-different nested classes and select implementation using
-std::conditional.
----
- .../heap_hash_table_backing.h                 | 80 ++++++++++---------
- 1 file changed, 41 insertions(+), 39 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
-index a6c73f5..068ab8e 100644
---- a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
-+++ b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
-@@ -241,50 +241,52 @@ struct TraceInCollectionTrait<kNoWeakHandling,
- 
-   static void Trace(blink::Visitor* visitor,
-                     const KeyValuePair<Key, Value>& self) {
--    TraceImpl(visitor, self);
-+    TraceImpl::TraceImpl(visitor, self);
-   }
- 
-  private:
--  template <bool = EphemeronHelper::is_ephemeron>
--  static void TraceImpl(blink::Visitor* visitor,
--                        const KeyValuePair<Key, Value>& self);
--
--  // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
--  template <>
--  static void TraceImpl<true>(blink::Visitor* visitor,
--                              const KeyValuePair<Key, Value>& self) {
-+  struct TraceImplEphemerons {
-     // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
--    // The helper ensures that helper.key always refers to the weak part and
--    // helper.value always refers to the dependent part.
--    // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow users
--    // to override visitation behavior. An example is creating a heap snapshot,
--    // where it is useful to annotate values as being kept alive from keys
--    // rather than the table.
--    EphemeronHelper helper(&self.key, &self.value);
--    // Strongify the weak part.
--    blink::TraceCollectionIfEnabled<
--        kNoWeakHandling, typename EphemeronHelper::KeyType,
--        typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key);
--    // Strongify the dependent part.
--    visitor->TraceEphemeron(
--        *helper.key, helper.value,
--        blink::TraceCollectionIfEnabled<
--            kNoWeakHandling, typename EphemeronHelper::ValueType,
--            typename EphemeronHelper::ValueTraits>::Trace);
--  }
-+    static void TraceImpl(blink::Visitor* visitor,
-+                          const KeyValuePair<Key, Value>& self) {
-+      // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
-+      // The helper ensures that helper.key always refers to the weak part and
-+      // helper.value always refers to the dependent part.
-+      // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow users
-+      // to override visitation behavior. An example is creating a heap snapshot,
-+      // where it is useful to annotate values as being kept alive from keys
-+      // rather than the table.
-+      EphemeronHelper helper(&self.key, &self.value);
-+      // Strongify the weak part.
-+      blink::TraceCollectionIfEnabled<
-+          kNoWeakHandling, typename EphemeronHelper::KeyType,
-+          typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key);
-+      // Strongify the dependent part.
-+      visitor->TraceEphemeron(
-+          *helper.key, helper.value,
-+          blink::TraceCollectionIfEnabled<
-+              kNoWeakHandling, typename EphemeronHelper::ValueType,
-+              typename EphemeronHelper::ValueTraits>::Trace);
-+    }
-+  };
- 
--  template <>
--  static void TraceImpl<false>(blink::Visitor* visitor,
--                               const KeyValuePair<Key, Value>& self) {
--    // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak.
--    // Order does not matter here.
--    blink::TraceCollectionIfEnabled<
--        kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor,
--                                                                 &self.key);
--    blink::TraceCollectionIfEnabled<
--        kNoWeakHandling, Value,
--        typename Traits::ValueTraits>::Trace(visitor, &self.value);
--  }
-+  struct TraceImplDefault {
-+    static void TraceImpl(blink::Visitor* visitor,
-+                          const KeyValuePair<Key, Value>& self) {
-+      // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak.
-+      // Order does not matter here.
-+      blink::TraceCollectionIfEnabled<
-+          kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor,
-+                                                                   &self.key);
-+      blink::TraceCollectionIfEnabled<
-+          kNoWeakHandling, Value,
-+          typename Traits::ValueTraits>::Trace(visitor, &self.value);
-+    }
-+  };
-+
-+  using TraceImpl = typename std::conditional<EphemeronHelper::is_ephemeron,
-+                                              TraceImplEphemerons,
-+                                              TraceImplDefault>::type;
- };
- 
- template <typename Key, typename Value, typename Traits>
--- 
-2.26.2

diff --git a/www-client/chromium/files/chromium-84-gcc-unique_ptr.patch b/www-client/chromium/files/chromium-84-gcc-unique_ptr.patch
deleted file mode 100644
index 4fa443bb66a..00000000000
--- a/www-client/chromium/files/chromium-84-gcc-unique_ptr.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9b749dc5c7fdb0f4b1bd0df5901beb6af1b81ff1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Sat, 9 May 2020 16:46:07 +0000
-Subject: [PATCH] GCC: fix DCHECK_EQ in NGInlineNode::SegmentScriptRuns
-
-data->segments is a std::unique_ptr, but underlying CheckOpValueStr
-has no overloaded function for std::unique_ptr.
-However, overloaded function with const void* exists and can be
-used with std::unique_ptr::get().
----
- .../blink/renderer/core/layout/ng/inline/ng_inline_node.cc      | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
-index 55ca9e3..ee691df 100644
---- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
-+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
-@@ -891,7 +891,7 @@ void NGInlineNode::SegmentText(NGInlineNodeData* data) {
- 
- // Segment NGInlineItem by script, Emoji, and orientation using RunSegmenter.
- void NGInlineNode::SegmentScriptRuns(NGInlineNodeData* data) {
--  DCHECK_EQ(data->segments, nullptr);
-+  DCHECK_EQ(data->segments.get(), nullptr);
- 
-   String& text_content = data->text_content;
-   if (text_content.IsEmpty()) {
--- 
-2.26.2
-

diff --git a/www-client/chromium/files/chromium-84-template.patch b/www-client/chromium/files/chromium-84-template.patch
deleted file mode 100644
index 73d277560b1..00000000000
--- a/www-client/chromium/files/chromium-84-template.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7ea92bc4f0cbdf68bf8e04b18f560aece9666e9e Mon Sep 17 00:00:00 2001
-From: Hans Wennborg <hans@chromium.org>
-Date: Tue, 05 May 2020 18:23:40 +0000
-Subject: [PATCH] De-templatize ContentSettingsAgentImpl::GetContentSettingFromRules
-
-The template definition was not in the header, so callers from outside
-content_settings_agent_impl.cc could not instantiate the template,
-leading to link errors in some configs (see bug).
-
-Instead, provide overloads for the two types of URL parameter, and
-use a template internally (in the .cc file) as it was before
-crrev.com/759360.
-
-Bug: 1077605
-Change-Id: I5c6f1e60ab694d60f7c20ce77a435a1b03e32e08
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2181364
-Commit-Queue: Hans Wennborg <hans@chromium.org>
-Commit-Queue: Nico Weber <thakis@chromium.org>
-Reviewed-by: Clark DuVall <cduvall@chromium.org>
-Reviewed-by: Nico Weber <thakis@chromium.org>
-Reviewed-by: Balazs Engedy <engedy@chromium.org>
-Auto-Submit: Hans Wennborg <hans@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#765660}
----
-
-diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc
-index ffb225a..4e24dc5 100644
---- a/components/content_settings/renderer/content_settings_agent_impl.cc
-+++ b/components/content_settings/renderer/content_settings_agent_impl.cc
-@@ -169,7 +169,7 @@
- }
- 
- template <typename URL>
--ContentSetting ContentSettingsAgentImpl::GetContentSettingFromRules(
-+ContentSetting GetContentSettingFromRulesImpl(
-     const ContentSettingsForOneType& rules,
-     const WebFrame* frame,
-     const URL& secondary_url) {
-@@ -192,6 +192,20 @@
-   return CONTENT_SETTING_DEFAULT;
- }
- 
-+ContentSetting ContentSettingsAgentImpl::GetContentSettingFromRules(
-+    const ContentSettingsForOneType& rules,
-+    const WebFrame* frame,
-+    const GURL& secondary_url) {
-+  return GetContentSettingFromRulesImpl(rules, frame, secondary_url);
-+}
-+
-+ContentSetting ContentSettingsAgentImpl::GetContentSettingFromRules(
-+    const ContentSettingsForOneType& rules,
-+    const WebFrame* frame,
-+    const blink::WebURL& secondary_url) {
-+  return GetContentSettingFromRulesImpl(rules, frame, secondary_url);
-+}
-+
- void ContentSettingsAgentImpl::BindContentSettingsManager(
-     mojo::Remote<mojom::ContentSettingsManager>* manager) {
-   DCHECK(!*manager);
-diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h
-index b14acfe..2522fdb 100644
---- a/components/content_settings/renderer/content_settings_agent_impl.h
-+++ b/components/content_settings/renderer/content_settings_agent_impl.h
-@@ -116,11 +116,14 @@
- 
-   // Allow passing both WebURL and GURL here, so that we can early return
-   // without allocating a new backing string if only the default rule matches.
--  template <typename URL>
-   ContentSetting GetContentSettingFromRules(
-       const ContentSettingsForOneType& rules,
-       const blink::WebFrame* frame,
--      const URL& secondary_url);
-+      const GURL& secondary_url);
-+  ContentSetting GetContentSettingFromRules(
-+      const ContentSettingsForOneType& rules,
-+      const blink::WebFrame* frame,
-+      const blink::WebURL& secondary_url);
- 
-  protected:
-   // Allow this to be overridden by tests.


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

commit:     48a53ce2524aae57be52a5aee2e4101370095fb8
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue May 12 17:39:35 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue May 12 19:08:15 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48a53ce2

www-client/chromium: dev channel bump to 84.0.4136.5

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 +
 www-client/chromium/chromium-84.0.4136.5.ebuild    | 820 +++++++++++++++++++++
 .../chromium/files/chromium-84-gcc-include.patch   | 145 ++++
 .../chromium/files/chromium-84-gcc-noexcept.patch  |  57 ++
 .../chromium/files/chromium-84-gcc-template.patch  | 146 ++++
 .../files/chromium-84-gcc-unique_ptr.patch         |  29 +
 .../chromium/files/chromium-84-template.patch      |  80 ++
 7 files changed, 1279 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 2b527f354c7..c4a4d7597a9 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,5 @@
 DIST chromium-81.0.4044.138.tar.xz 785960928 BLAKE2B fb8ea6aae55450e820f91fc8be7948ac0155beb0fc6a05988506a78b3306ffc52e69b10d3c91e4a29fe2171f339d5331e9524d3e4cd08de57e090ce16412a673 SHA512 9f686b27b2f8ea5c15f50b0ddcd24745aec41e28af8c38618e18771401bd5cfb26939b9ac49973ea804cda458a939c1a6ad59cb24fb1937b7687c3d908183437
 DIST chromium-83.0.4103.44.tar.xz 802603488 BLAKE2B 3f36c311519c85604d6b627b8ae56e60fc617f0290ca34ed05473482782b0db88f4171077531d3ec3efa4c633200a883b4e80fafb1bd37828476f1863d1cdcd5 SHA512 78664cfc37c898410d08b3cf71faf63e6980711b9ae69b020b93b2fab5bcd9c191c0fd91eed21b5ccaabc032ff530f3ae5b9845f7f23c72c3e492ef356da9c6f
+DIST chromium-84.0.4136.5.tar.xz 840308252 BLAKE2B 3f10ea5dbb48dd2a39cfb8d39289ad439d0257bea6e40ff130d427f96252890a6164a8dae3b5d30b7e74bcb87815055a6f27826add3ef5e9849e72c6a7dcc3b1 SHA512 9b6285ec2bb9790b8e1593473f8e1f2642a6fa851fb5645c282c48911dffabc2107aa99c90b6d6450eb8c0dc38daa089c514801921bc1ac782b25e34d9b8fd84
 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-84.0.4136.5.ebuild b/www-client/chromium/chromium-84.0.4136.5.ebuild
new file mode 100644
index 00000000000..bad255fd7a4
--- /dev/null
+++ b/www-client/chromium/chromium-84.0.4136.5.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/"
+XCB_PROTO_VERSION="1.14"
+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"
+
+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-template.patch"
+	"${FILESDIR}/chromium-83-gcc-serviceworker.patch"
+	"${FILESDIR}/chromium-83-gcc-10.patch"
+	"${FILESDIR}/chromium-84-gcc-noexcept.patch"
+	"${FILESDIR}/chromium-84-gcc-template.patch"
+	"${FILESDIR}/chromium-84-gcc-include.patch"
+	"${FILESDIR}/chromium-84-gcc-unique_ptr.patch"
+	"${FILESDIR}/chromium-84-template.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/angle/third_party/VulkanMemoryAllocator
+		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/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/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 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
+		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
+	# 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-gcc-include.patch b/www-client/chromium/files/chromium-84-gcc-include.patch
new file mode 100644
index 00000000000..1c6d96cb9c4
--- /dev/null
+++ b/www-client/chromium/files/chromium-84-gcc-include.patch
@@ -0,0 +1,145 @@
+From 60e856c553f4532c2035b087dbdbdde42dbb5f09 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 May 2020 11:33:04 +0000
+Subject: [PATCH] IWYU: memcpy is defined in cstring
+
+---
+ cc/base/list_container_helper.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cc/base/list_container_helper.cc b/cc/base/list_container_helper.cc
+index afd386e..7b594b4 100644
+--- a/cc/base/list_container_helper.cc
++++ b/cc/base/list_container_helper.cc
+@@ -7,6 +7,7 @@
+ #include <stddef.h>
+ 
+ #include <algorithm>
++#include <cstring>
+ #include <vector>
+ 
+ #include "base/check_op.h"
+-- 
+2.26.2
+
+From 5e20370e4bc1fd3beaa9af62fe27aaedb903bacf Mon Sep 17 00:00:00 2001
+From: Piotr Tworek <ptworek@vewd.com>
+Date: Tue, 05 May 2020 06:06:35 +0000
+Subject: [PATCH] Add missing bitset include in web_touch_event.cc.
+
+The code uses std::bitset, but does not include header declaring it. It
+works when using bundled copy of libcxx, but fails when using system
+libstdc++ on Linux.
+
+Change-Id: I8a88078e110b27623b3cdea38c94012ba4050ee7
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2179123
+Reviewed-by: Jeremy Roman <jbroman@chromium.org>
+Commit-Queue: Piotr Tworek <ptworek@vewd.com>
+Cr-Commit-Position: refs/heads/master@{#765415}
+---
+
+diff --git a/third_party/blink/common/input/web_touch_event.cc b/third_party/blink/common/input/web_touch_event.cc
+index 7ef37fec..aa054f9 100644
+--- a/third_party/blink/common/input/web_touch_event.cc
++++ b/third_party/blink/common/input/web_touch_event.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 <bitset>
++
+ #include "third_party/blink/public/common/input/web_touch_event.h"
+ 
+ namespace blink {
+
+From effd506ce070d58e731bd6086681b9cded8573ed Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sun, 10 May 2020 07:24:38 +0000
+Subject: [PATCH] IWYU: add a bunch of missing cstring includes
+
+---
+ .../crashpad/snapshot/minidump/minidump_context_converter.cc    | 2 ++
+ third_party/crashpad/crashpad/util/linux/ptrace_client.cc       | 1 +
+ .../crashpad/crashpad/util/net/http_multipart_builder.cc        | 1 +
+ third_party/crashpad/crashpad/util/net/http_transport_socket.cc | 2 ++
+ third_party/crashpad/crashpad/util/process/process_memory.cc    | 1 +
+ third_party/crashpad/crashpad/util/stream/log_output_stream.cc  | 1 +
+ 6 files changed, 8 insertions(+)
+
+diff --git a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc b/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
+index 0c840deac..1d163b42f 100644
+--- a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
++++ b/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
+@@ -14,6 +14,8 @@
+ 
+ #include "snapshot/minidump/minidump_context_converter.h"
+ 
++#include <cstring>
++
+ #include "base/stl_util.h"
+ #include "minidump/minidump_context.h"
+ 
+diff --git a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc b/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
+index f097ad985..e91ce2eca 100644
+--- a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
++++ b/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
+@@ -17,6 +17,7 @@
+ #include <errno.h>
+ #include <stdio.h>
+ 
++#include <cstring>
+ #include <string>
+ 
+ #include "base/logging.h"
+diff --git a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc b/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
+index 267960b27..8ed7edc2f 100644
+--- a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
++++ b/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
+@@ -16,6 +16,7 @@
+ 
+ #include <sys/types.h>
+ 
++#include <cstring>
+ #include <utility>
+ #include <vector>
+ 
+diff --git a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc b/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
+index 4dd01b6e7..60cd60c17 100644
+--- a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
++++ b/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
+@@ -19,6 +19,8 @@
+ #include <poll.h>
+ #include <sys/socket.h>
+ 
++#include <cstring>
++
+ #include "base/logging.h"
+ #include "base/macros.h"
+ #include "base/numerics/safe_conversions.h"
+diff --git a/third_party/crashpad/crashpad/util/process/process_memory.cc b/third_party/crashpad/crashpad/util/process/process_memory.cc
+index ab87b940f..e02bcea81 100644
+--- a/third_party/crashpad/crashpad/util/process/process_memory.cc
++++ b/third_party/crashpad/crashpad/util/process/process_memory.cc
+@@ -15,6 +15,7 @@
+ #include "util/process/process_memory.h"
+ 
+ #include <algorithm>
++#include <cstring>
+ 
+ #include "base/logging.h"
+ #include "util/numeric/safe_assignment.h"
+diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
+index 03c0a5a02..45d823aa4 100644
+--- a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
++++ b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
+@@ -15,6 +15,7 @@
+ #include "util/stream/log_output_stream.h"
+ 
+ #include <algorithm>
++#include <cstring>
+ 
+ #include "base/logging.h"
+ 
+-- 
+2.26.2
+

diff --git a/www-client/chromium/files/chromium-84-gcc-noexcept.patch b/www-client/chromium/files/chromium-84-gcc-noexcept.patch
new file mode 100644
index 00000000000..e3918ca28f5
--- /dev/null
+++ b/www-client/chromium/files/chromium-84-gcc-noexcept.patch
@@ -0,0 +1,57 @@
+diff --git a/third_party/blink/public/platform/cross_variant_mojo_util.h b/third_party/blink/public/platform/cross_variant_mojo_util.h
+index dee0b95..0c83580 100644
+--- a/third_party/blink/public/platform/cross_variant_mojo_util.h
++++ b/third_party/blink/public/platform/cross_variant_mojo_util.h
+@@ -124,7 +124,7 @@ class CrossVariantMojoAssociatedReceiver {
+   ~CrossVariantMojoAssociatedReceiver() = default;
+ 
+   CrossVariantMojoAssociatedReceiver(
+-      CrossVariantMojoAssociatedReceiver&&) noexcept = default;
++      CrossVariantMojoAssociatedReceiver&&) = default;
+   CrossVariantMojoAssociatedReceiver& operator=(
+       CrossVariantMojoAssociatedReceiver&&) noexcept = default;
+ 
+@@ -155,7 +155,7 @@ class CrossVariantMojoAssociatedRemote {
+   ~CrossVariantMojoAssociatedRemote() = default;
+ 
+   CrossVariantMojoAssociatedRemote(
+-      CrossVariantMojoAssociatedRemote&&) noexcept = default;
++      CrossVariantMojoAssociatedRemote&&) = default;
+   CrossVariantMojoAssociatedRemote& operator=(
+       CrossVariantMojoAssociatedRemote&&) noexcept = default;
+ 
+diff --git a/base/containers/flat_map.h b/base/containers/flat_map.h
+index ed82c5d..1af6b40 100644
+--- a/base/containers/flat_map.h
++++ b/base/containers/flat_map.h
+@@ -202,7 +202,7 @@ class flat_map : public ::base::internal::flat_tree<
+   ~flat_map() = default;
+ 
+   flat_map& operator=(const flat_map&) = default;
+-  flat_map& operator=(flat_map&&) = default;
++  flat_map& operator=(flat_map&&) noexcept = default;
+   // Takes the first if there are duplicates in the initializer list.
+   flat_map& operator=(std::initializer_list<value_type> ilist);
+ 
+diff --git a/base/containers/flat_tree.h b/base/containers/flat_tree.h
+index 9412ff6..8ecc1fa 100644
+--- a/base/containers/flat_tree.h
++++ b/base/containers/flat_tree.h
+@@ -125,7 +125,7 @@ class flat_tree {
+   // Assume that move assignment invalidates iterators and references.
+ 
+   flat_tree& operator=(const flat_tree&);
+-  flat_tree& operator=(flat_tree&&);
++  flat_tree& operator=(flat_tree&&) noexcept;
+   // Takes the first if there are duplicates in the initializer list.
+   flat_tree& operator=(std::initializer_list<value_type> ilist);
+ 
+@@ -519,7 +519,7 @@ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::operator=(
+ 
+ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
+ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::operator=(flat_tree &&)
+-    -> flat_tree& = default;
++    noexcept -> flat_tree& = default;
+ 
+ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
+ auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::operator=(

diff --git a/www-client/chromium/files/chromium-84-gcc-template.patch b/www-client/chromium/files/chromium-84-gcc-template.patch
new file mode 100644
index 00000000000..15875109d75
--- /dev/null
+++ b/www-client/chromium/files/chromium-84-gcc-template.patch
@@ -0,0 +1,146 @@
+From 2cd1ba11c364fc0f2f06c5fa3c15ff75ee860966 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 2 May 2020 16:42:38 +0000
+Subject: [PATCH] GCC: fix template specialization in WTF::VectorBuffer
+
+GCC complains that explicit specialization in non-namespace scope
+is happening for InitInlinedBuffer. However, specialization is
+not really necessary here with templates and can be moved
+into InitInlinedBuffer method without changing generated code.
+---
+ third_party/blink/renderer/platform/wtf/vector.h | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h
+index 81a4e7b..30ffa89 100644
+--- a/third_party/blink/renderer/platform/wtf/vector.h
++++ b/third_party/blink/renderer/platform/wtf/vector.h
+@@ -950,11 +950,10 @@ class VectorBuffer : protected VectorBufferBase<T, Allocator> {
+     return unsafe_reinterpret_cast_ptr<const T*>(inline_buffer_);
+   }
+ 
+-  template <bool = Allocator::kIsGarbageCollected>
+-  void InitInlinedBuffer() {}
+-  template <>
+-  void InitInlinedBuffer<true>() {
+-    memset(&inline_buffer_, 0, kInlineBufferSize);
++  void InitInlinedBuffer() {
++    if ( Allocator::kIsGarbageCollected ) {
++      memset(&inline_buffer_, 0, kInlineBufferSize);
++    }
+   }
+ 
+   alignas(T) char inline_buffer_[kInlineBufferSize];
+-- 
+2.26.2
+From 421aca221966c7d736c4bc5f268a730199f02fb9 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 May 2020 14:59:07 +0000
+Subject: [PATCH] GCC: fix template specialization in TraceInCollectionTrait
+
+GCC complains that explicit specialization in non-namespace scope
+is happening for TraceImpl. Move TraceImpl implementations into
+different nested classes and select implementation using
+std::conditional.
+---
+ .../heap_hash_table_backing.h                 | 80 ++++++++++---------
+ 1 file changed, 41 insertions(+), 39 deletions(-)
+
+diff --git a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
+index a6c73f5..068ab8e 100644
+--- a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
++++ b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
+@@ -241,50 +241,52 @@ struct TraceInCollectionTrait<kNoWeakHandling,
+ 
+   static void Trace(blink::Visitor* visitor,
+                     const KeyValuePair<Key, Value>& self) {
+-    TraceImpl(visitor, self);
++    TraceImpl::TraceImpl(visitor, self);
+   }
+ 
+  private:
+-  template <bool = EphemeronHelper::is_ephemeron>
+-  static void TraceImpl(blink::Visitor* visitor,
+-                        const KeyValuePair<Key, Value>& self);
+-
+-  // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
+-  template <>
+-  static void TraceImpl<true>(blink::Visitor* visitor,
+-                              const KeyValuePair<Key, Value>& self) {
++  struct TraceImplEphemerons {
+     // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
+-    // The helper ensures that helper.key always refers to the weak part and
+-    // helper.value always refers to the dependent part.
+-    // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow users
+-    // to override visitation behavior. An example is creating a heap snapshot,
+-    // where it is useful to annotate values as being kept alive from keys
+-    // rather than the table.
+-    EphemeronHelper helper(&self.key, &self.value);
+-    // Strongify the weak part.
+-    blink::TraceCollectionIfEnabled<
+-        kNoWeakHandling, typename EphemeronHelper::KeyType,
+-        typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key);
+-    // Strongify the dependent part.
+-    visitor->TraceEphemeron(
+-        *helper.key, helper.value,
+-        blink::TraceCollectionIfEnabled<
+-            kNoWeakHandling, typename EphemeronHelper::ValueType,
+-            typename EphemeronHelper::ValueTraits>::Trace);
+-  }
++    static void TraceImpl(blink::Visitor* visitor,
++                          const KeyValuePair<Key, Value>& self) {
++      // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
++      // The helper ensures that helper.key always refers to the weak part and
++      // helper.value always refers to the dependent part.
++      // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow users
++      // to override visitation behavior. An example is creating a heap snapshot,
++      // where it is useful to annotate values as being kept alive from keys
++      // rather than the table.
++      EphemeronHelper helper(&self.key, &self.value);
++      // Strongify the weak part.
++      blink::TraceCollectionIfEnabled<
++          kNoWeakHandling, typename EphemeronHelper::KeyType,
++          typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key);
++      // Strongify the dependent part.
++      visitor->TraceEphemeron(
++          *helper.key, helper.value,
++          blink::TraceCollectionIfEnabled<
++              kNoWeakHandling, typename EphemeronHelper::ValueType,
++              typename EphemeronHelper::ValueTraits>::Trace);
++    }
++  };
+ 
+-  template <>
+-  static void TraceImpl<false>(blink::Visitor* visitor,
+-                               const KeyValuePair<Key, Value>& self) {
+-    // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak.
+-    // Order does not matter here.
+-    blink::TraceCollectionIfEnabled<
+-        kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor,
+-                                                                 &self.key);
+-    blink::TraceCollectionIfEnabled<
+-        kNoWeakHandling, Value,
+-        typename Traits::ValueTraits>::Trace(visitor, &self.value);
+-  }
++  struct TraceImplDefault {
++    static void TraceImpl(blink::Visitor* visitor,
++                          const KeyValuePair<Key, Value>& self) {
++      // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak.
++      // Order does not matter here.
++      blink::TraceCollectionIfEnabled<
++          kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor,
++                                                                   &self.key);
++      blink::TraceCollectionIfEnabled<
++          kNoWeakHandling, Value,
++          typename Traits::ValueTraits>::Trace(visitor, &self.value);
++    }
++  };
++
++  using TraceImpl = typename std::conditional<EphemeronHelper::is_ephemeron,
++                                              TraceImplEphemerons,
++                                              TraceImplDefault>::type;
+ };
+ 
+ template <typename Key, typename Value, typename Traits>
+-- 
+2.26.2

diff --git a/www-client/chromium/files/chromium-84-gcc-unique_ptr.patch b/www-client/chromium/files/chromium-84-gcc-unique_ptr.patch
new file mode 100644
index 00000000000..4fa443bb66a
--- /dev/null
+++ b/www-client/chromium/files/chromium-84-gcc-unique_ptr.patch
@@ -0,0 +1,29 @@
+From 9b749dc5c7fdb0f4b1bd0df5901beb6af1b81ff1 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 May 2020 16:46:07 +0000
+Subject: [PATCH] GCC: fix DCHECK_EQ in NGInlineNode::SegmentScriptRuns
+
+data->segments is a std::unique_ptr, but underlying CheckOpValueStr
+has no overloaded function for std::unique_ptr.
+However, overloaded function with const void* exists and can be
+used with std::unique_ptr::get().
+---
+ .../blink/renderer/core/layout/ng/inline/ng_inline_node.cc      | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+index 55ca9e3..ee691df 100644
+--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
++++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+@@ -891,7 +891,7 @@ void NGInlineNode::SegmentText(NGInlineNodeData* data) {
+ 
+ // Segment NGInlineItem by script, Emoji, and orientation using RunSegmenter.
+ void NGInlineNode::SegmentScriptRuns(NGInlineNodeData* data) {
+-  DCHECK_EQ(data->segments, nullptr);
++  DCHECK_EQ(data->segments.get(), nullptr);
+ 
+   String& text_content = data->text_content;
+   if (text_content.IsEmpty()) {
+-- 
+2.26.2
+

diff --git a/www-client/chromium/files/chromium-84-template.patch b/www-client/chromium/files/chromium-84-template.patch
new file mode 100644
index 00000000000..73d277560b1
--- /dev/null
+++ b/www-client/chromium/files/chromium-84-template.patch
@@ -0,0 +1,80 @@
+From 7ea92bc4f0cbdf68bf8e04b18f560aece9666e9e Mon Sep 17 00:00:00 2001
+From: Hans Wennborg <hans@chromium.org>
+Date: Tue, 05 May 2020 18:23:40 +0000
+Subject: [PATCH] De-templatize ContentSettingsAgentImpl::GetContentSettingFromRules
+
+The template definition was not in the header, so callers from outside
+content_settings_agent_impl.cc could not instantiate the template,
+leading to link errors in some configs (see bug).
+
+Instead, provide overloads for the two types of URL parameter, and
+use a template internally (in the .cc file) as it was before
+crrev.com/759360.
+
+Bug: 1077605
+Change-Id: I5c6f1e60ab694d60f7c20ce77a435a1b03e32e08
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2181364
+Commit-Queue: Hans Wennborg <hans@chromium.org>
+Commit-Queue: Nico Weber <thakis@chromium.org>
+Reviewed-by: Clark DuVall <cduvall@chromium.org>
+Reviewed-by: Nico Weber <thakis@chromium.org>
+Reviewed-by: Balazs Engedy <engedy@chromium.org>
+Auto-Submit: Hans Wennborg <hans@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#765660}
+---
+
+diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc
+index ffb225a..4e24dc5 100644
+--- a/components/content_settings/renderer/content_settings_agent_impl.cc
++++ b/components/content_settings/renderer/content_settings_agent_impl.cc
+@@ -169,7 +169,7 @@
+ }
+ 
+ template <typename URL>
+-ContentSetting ContentSettingsAgentImpl::GetContentSettingFromRules(
++ContentSetting GetContentSettingFromRulesImpl(
+     const ContentSettingsForOneType& rules,
+     const WebFrame* frame,
+     const URL& secondary_url) {
+@@ -192,6 +192,20 @@
+   return CONTENT_SETTING_DEFAULT;
+ }
+ 
++ContentSetting ContentSettingsAgentImpl::GetContentSettingFromRules(
++    const ContentSettingsForOneType& rules,
++    const WebFrame* frame,
++    const GURL& secondary_url) {
++  return GetContentSettingFromRulesImpl(rules, frame, secondary_url);
++}
++
++ContentSetting ContentSettingsAgentImpl::GetContentSettingFromRules(
++    const ContentSettingsForOneType& rules,
++    const WebFrame* frame,
++    const blink::WebURL& secondary_url) {
++  return GetContentSettingFromRulesImpl(rules, frame, secondary_url);
++}
++
+ void ContentSettingsAgentImpl::BindContentSettingsManager(
+     mojo::Remote<mojom::ContentSettingsManager>* manager) {
+   DCHECK(!*manager);
+diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h
+index b14acfe..2522fdb 100644
+--- a/components/content_settings/renderer/content_settings_agent_impl.h
++++ b/components/content_settings/renderer/content_settings_agent_impl.h
+@@ -116,11 +116,14 @@
+ 
+   // Allow passing both WebURL and GURL here, so that we can early return
+   // without allocating a new backing string if only the default rule matches.
+-  template <typename URL>
+   ContentSetting GetContentSettingFromRules(
+       const ContentSettingsForOneType& rules,
+       const blink::WebFrame* frame,
+-      const URL& secondary_url);
++      const GURL& secondary_url);
++  ContentSetting GetContentSettingFromRules(
++      const ContentSettingsForOneType& rules,
++      const blink::WebFrame* frame,
++      const blink::WebURL& secondary_url);
+ 
+  protected:
+   // Allow this to be overridden by tests.


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

commit:     d2da708be8232c1fde4417584c056e519d015087
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri May  1 10:18:49 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri May  1 15:32:08 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2da708b

www-client/chromium: fix stable channel to build with icu-67.1

Closes: https://bugs.gentoo.org/720100
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/15595

 www-client/chromium/chromium-81.0.4044.129.ebuild |   1 +
 www-client/chromium/files/chromium-81-icu67.patch | 162 ++++++++++++++++++++++
 2 files changed, 163 insertions(+)

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

diff --git a/www-client/chromium/files/chromium-81-icu67.patch b/www-client/chromium/files/chromium-81-icu67.patch
new file mode 100644
index 00000000000..745bad28ee2
--- /dev/null
+++ b/www-client/chromium/files/chromium-81-icu67.patch
@@ -0,0 +1,162 @@
+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>());
+ 


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

commit:     24e0750a927f29bdfd935e68b17c3be31c92a932
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Apr 30 18:03:53 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri May  1 15:31:37 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24e0750a

www-client/chromium: beta channel bump to 83.0.4103.34

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 +-
 ...4103.23.ebuild => chromium-83.0.4103.34.ebuild} |   8 +-
 .../files/chromium-83-gcc-serviceworker.patch      | 130 ++++++++++++++++
 www-client/chromium/files/chromium-83-icu67.patch  | 170 +++++++++++++++++++++
 4 files changed, 306 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c9f5ef3ccd4..3dd02cf00c3 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-81.0.4044.129.tar.xz 785978416 BLAKE2B 5af9ab9e17bbc237f5a254b98cb27b998021d5c95b5da4d6de25c3fb234fea609f8a9173f3ac75eee208b8c88c5d39d9cf1ec39ebc8d436cf8aafee31e8f32c1 SHA512 93dfc5c1050bc226b836721d422a8d98a183fff81e91f55477dce0c650d35a95aeb89c810bea6e07ffb948ee62e8e150c8b8c5bad4658fcc215de05a681b064a
-DIST chromium-83.0.4103.23.tar.xz 802566932 BLAKE2B 00c9105a9b5e9cebc8adeb8a61b4491f0ca7cc95da9595506c77d556c0ee07074da0da506831bec1b390a39c7535220ab5c6d06ce784e6b20d2694f94d3b0a76 SHA512 08a50372570aa9da5fb9ccc6dfc3d949e84cb401d62d650132aa4edea2b1658fb56a81854fde11690d040e3b36b9d20da1ad7f83e47ffca77893ab57620c2a3e
+DIST chromium-83.0.4103.34.tar.xz 802525184 BLAKE2B d5e47c96642fb9344fe43a582d035f507b714565c01b6bacbf1cd4fdb3537db28ae0e54a47bbd7f47ad4d00960ee9e40d9a10522262cba4063f95501225fce75 SHA512 467006d3b3093b078569c0ead9203e66cfd83ad14ed95a07b5f83e49451a0e9f4506b3ce35c97106b4540b55484d6cd33afbacf92385ace261e78d5c1cc0188e
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-83.0.4103.23.ebuild b/www-client/chromium/chromium-83.0.4103.34.ebuild
similarity index 99%
rename from www-client/chromium/chromium-83.0.4103.23.ebuild
rename to www-client/chromium/chromium-83.0.4103.34.ebuild
index 2056dda0889..2cb862a2cb9 100644
--- a/www-client/chromium/chromium-83.0.4103.23.ebuild
+++ b/www-client/chromium/chromium-83.0.4103.34.ebuild
@@ -103,8 +103,8 @@ BDEPEND="
 	)
 "
 
-: ${CHROMIUM_FORCE_CLANG=yes}
-: ${CHROMIUM_FORCE_LIBCXX=yes}
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
 	BDEPEND+=" >=sys-devel/clang-9"
@@ -123,7 +123,7 @@ else
 		dev-libs/libxslt:=
 		>=dev-libs/re2-0.2019.08.01:=
 		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-65:= )
+		system-icu? ( >=dev-libs/icu-67.1:= )
 	"
 	RDEPEND+="${COMMON_DEPEND}"
 	DEPEND+="${COMMON_DEPEND}"
@@ -178,7 +178,9 @@ PATCHES=(
 	"${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-10.patch"
+	"${FILESDIR}/chromium-83-icu67.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-83-gcc-serviceworker.patch b/www-client/chromium/files/chromium-83-gcc-serviceworker.patch
new file mode 100644
index 00000000000..a836e7fc533
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-serviceworker.patch
@@ -0,0 +1,130 @@
+From 0914a38252f205fc04fa50e858b24fa5f535ab11 Mon Sep 17 00:00:00 2001
+From: Hiroki Nakagawa <nhiroki@chromium.org>
+Date: Wed, 29 Apr 2020 11:46:54 +0900
+Subject: [PATCH] ServiceWorker: Avoid double destruction of ServiceWorkerObjectHost on connection error
+
+This CL avoids the case where ServiceWorkerObjectHost is destroyed twice
+on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built
+with the GCC build toolchain.
+
+> How does the issue happen?
+
+ServiceWorkerObjectHost has a cyclic reference like this:
+
+ServiceWorkerObjectHost
+  --([1] scoped_refptr)--> ServiceWorkerVersion
+    --([2] std::unique_ptr)--> ServiceWorkerProviderHost
+      --([3] std::unique_ptr)--> ServiceWorkerContainerHost
+        --([4] std::unique_ptr)--> ServiceWorkerObjectHost
+
+Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in
+map<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>.
+
+When ServiceWorkerObjectHost::OnConnectionError() is called, the
+function removes the reference [4] from the map, and destroys
+ServiceWorkerObjectHost. If the object host has the last reference [1]
+to ServiceWorkerVersion, the destruction also cuts off the references
+[2] and [3], and destroys ServiceWorkerProviderHost and
+ServiceWorkerContainerHost.
+
+This seems to work well on the Chromium's default toolchain, but not
+work on the GCC toolchain. According to the report, destruction of
+ServiceWorkerContainerHost happens while the map owned by the container
+host is erasing the ServiceWorkerObjectHost, and this results in crash
+due to double destruction of the object host.
+
+I don't know the reason why this happens only on the GCC toolchain, but
+I suspect the order of object destruction on std::map::erase() could be
+different depending on the toolchains.
+
+> How does this CL fix this?
+
+The ideal fix is to redesign the ownership model of
+ServiceWorkerVersion, but it's not feasible in the short term.
+
+Instead, this CL avoids destruction of ServiceWorkerObjectHost on
+std::map::erase(). The new code takes the ownership of the object host
+from the map first, and then erases the entry from the map. This
+separates timings to erase the map entry and to destroy the object host,
+so the crash should no longer happen.
+
+Bug: 1056598
+Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613
+---
+
+diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
+index c631bcd..ff917f8 100644
+--- a/content/browser/service_worker/service_worker_container_host.cc
++++ b/content/browser/service_worker/service_worker_container_host.cc
+@@ -717,6 +717,16 @@
+     int64_t version_id) {
+   DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
+   DCHECK(base::Contains(service_worker_object_hosts_, version_id));
++
++  // ServiceWorkerObjectHost to be deleted may have the last reference to
++  // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost.
++  // If we erase the object host directly from the map, |this| could be deleted
++  // during the map operation and may crash. To avoid the case, we take the
++  // ownership of the object host from the map first, and then erase the entry
++  // from the map. See https://crbug.com/1056598 for details.
++  std::unique_ptr<ServiceWorkerObjectHost> to_be_deleted =
++      std::move(service_worker_object_hosts_[version_id]);
++  DCHECK(to_be_deleted);
+   service_worker_object_hosts_.erase(version_id);
+ }
+ 
+diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
+index 238cb8b..f60c7a2 100644
+--- a/content/browser/service_worker/service_worker_object_host_unittest.cc
++++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
+@@ -200,6 +200,19 @@
+     return registration_info;
+   }
+ 
++  void CallOnConnectionError(ServiceWorkerContainerHost* container_host,
++                             int64_t version_id) {
++    // ServiceWorkerObjectHost has the last reference to the version.
++    ServiceWorkerObjectHost* object_host =
++        GetServiceWorkerObjectHost(container_host, version_id);
++    EXPECT_TRUE(object_host->version_->HasOneRef());
++
++    // Make sure that OnConnectionError induces destruction of the version and
++    // the object host.
++    object_host->receivers_.Clear();
++    object_host->OnConnectionError();
++  }
++
+   BrowserTaskEnvironment task_environment_;
+   std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
+   scoped_refptr<ServiceWorkerRegistration> registration_;
+@@ -409,5 +422,30 @@
+             events[0]->source_info_for_client->client_type);
+ }
+ 
++// This is a regression test for https://crbug.com/1056598.
++TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) {
++  const GURL scope("https://www.example.com/");
++  const GURL script_url("https://www.example.com/service_worker.js");
++  Initialize(std::make_unique<EmbeddedWorkerTestHelper>(base::FilePath()));
++  SetUpRegistration(scope, script_url);
++
++  // Create the provider host.
++  ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
++            StartServiceWorker(version_.get()));
++
++  // Set up the case where the last reference to the version is owned by the
++  // service worker object host.
++  ServiceWorkerContainerHost* container_host =
++      version_->provider_host()->container_host();
++  ServiceWorkerVersion* version_rawptr = version_.get();
++  version_ = nullptr;
++  ASSERT_TRUE(version_rawptr->HasOneRef());
++
++  // Simulate the connection error that induces the object host destruction.
++  // This shouldn't crash.
++  CallOnConnectionError(container_host, version_rawptr->version_id());
++  base::RunLoop().RunUntilIdle();
++}
++
+ }  // namespace service_worker_object_host_unittest
+ }  // namespace content

diff --git a/www-client/chromium/files/chromium-83-icu67.patch b/www-client/chromium/files/chromium-83-icu67.patch
new file mode 100644
index 00000000000..d45d9e810a4
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-icu67.patch
@@ -0,0 +1,170 @@
+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}
+---
+
+diff --git a/v8/src/objects/js-number-format.cc b/v8/src/objects/js-number-format.cc
+index ad831c5..bcd4403 100644
+--- a/v8/src/objects/js-number-format.cc
++++ b/v8/src/objects/js-number-format.cc
+@@ -1241,44 +1241,33 @@
+ }
+ 
+ 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->IsNaN()
+                         ? std::numeric_limits<double>::quiet_NaN()
+                         : 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>());
++    THROW_NEW_ERROR_RETURN_VALUE(
++        isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
+   }
+-  if (fp_iter) {
+-    formatted.getAllFieldPositions(*fp_iter, status);
+-  }
+-  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
+@@ -1289,10 +1278,16 @@
+     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 {
+@@ -1405,12 +1400,18 @@
+ }
+ 
+ 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);
+ 
+@@ -1419,13 +1420,14 @@
+   // 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()));
+     }
+   }
+ 
+@@ -1447,7 +1449,7 @@
+     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;
+@@ -1467,20 +1469,19 @@
+       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>());
+-
+   UErrorCode status = U_ZERO_ERROR;
++
+   bool style_is_unit =
+       Style::UNIT == StyleFromSkeleton(fmt->toSkeleton(status));
+   CHECK(U_SUCCESS(status));
+ 
+   Handle<JSArray> result = factory->NewJSArray(0);
+-  Maybe<int> maybe_format_to_parts =
+-      ConstructParts(isolate, maybe_format.FromJust(), &fp_iter, result, 0,
+-                     numeric_obj, style_is_unit);
++  Maybe<int> maybe_format_to_parts = ConstructParts(
++      isolate, &formatted, result, 0, numeric_obj, style_is_unit);
+   MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());
+ 
+   return result;


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

commit:     8140a50786cd798506e58338acd07a669468fa2f
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri Apr  3 17:33:37 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Apr  4 03:15:43 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8140a507

www-client/chromium: dev channel bump to 83.0.4100.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/15217

 www-client/chromium/Manifest                       |  2 +-
 ...0.4093.3.ebuild => chromium-83.0.4100.3.ebuild} |  5 ++--
 .../chromium/files/chromium-82-clang-std.patch     | 28 ------------------
 .../chromium/files/chromium-83-clang-std.patch     | 33 ----------------------
 .../chromium/files/chromium-83-gcc-include.patch   | 25 ++++++++++++++++
 .../files/chromium-83-gcc-permissive.patch         | 32 +++++++++++++++++++++
 .../chromium/files/chromium-83-gcc-range.patch     | 28 ------------------
 7 files changed, 60 insertions(+), 93 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 07522a1b0fe..7b9ccc92785 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-80.0.3987.162.tar.xz 796961972 BLAKE2B 77357adb39f5e49a6c71ba695c9947fb6aad811fc58c5ac21355a30be8beecaa842d2de59028dec58b1805d314e13282c0f386d61ee2014c87ad50ea0dc61121 SHA512 95a6bbe291faccd1a085daec89a3cf27eb00bc62f0b3956c2668568c7cabd67ac4dc02a2aaa093bb2844d4972cd8a7978c4249b2f0ebead038a215f574f68180
 DIST chromium-81.0.4044.83.tar.xz 785906212 BLAKE2B b17bb2dabd52dc8ae5a9c99b6320ea48f278273e790c2869e2d93382bae3a8101d1bcad917b0997631831b95ce33398e0501de046edd23110107d010db70f140 SHA512 aeb8a4aeb2371a9ae2fbd0be1553569338c8e699abb3bb7d614c33254a7c6adfecb7b1becfa3f3595a2f4e04eed3c429137ad7a3816ccabf7b23388f206d1ccb
-DIST chromium-83.0.4093.3.tar.xz 793608324 BLAKE2B 014eff6deacfb308eecc76a2d9a13ddf13b2eefffe044df25e2c20c3695f2c908604751ed7e794e053280fc32449381e8dfd73300201e67a9d84854f9fd851e5 SHA512 d37ae4912d3a39e4b06c91601d941ffb8a77a4b7380a603455c2839f6b8940acb8803aa32e8ae14c5033c141681ee41716a54ac2f8632240e54367a3819e091a
+DIST chromium-83.0.4100.3.tar.xz 801342020 BLAKE2B 504c4d905f7ed91050f54e19e215fc2827c7299dff75e57282895f6f550ad323070ab49a2c597abfe0e88308d31fe613e8bd5bbcbfbc1b63bbc968148f939332 SHA512 d9037a7db5adad46d562f22e5ee53016170f257678d25acb124c432dc4ed4c0eb936ff9c4e0e39653a33621208e5037924ff94a9c98730da6ef68cb29a5a0f52

diff --git a/www-client/chromium/chromium-83.0.4093.3.ebuild b/www-client/chromium/chromium-83.0.4100.3.ebuild
similarity index 99%
rename from www-client/chromium/chromium-83.0.4093.3.ebuild
rename to www-client/chromium/chromium-83.0.4100.3.ebuild
index 928f8ae1afb..3170dfcdcbc 100644
--- a/www-client/chromium/chromium-83.0.4093.3.ebuild
+++ b/www-client/chromium/chromium-83.0.4100.3.ebuild
@@ -156,10 +156,9 @@ PATCHES=(
 	"${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"
 	"${FILESDIR}/chromium-83-gcc-template.patch"
-	"${FILESDIR}/chromium-83-gcc-range.patch"
-	"${FILESDIR}/chromium-83-clang-std.patch"
+	"${FILESDIR}/chromium-83-gcc-include.patch"
+	"${FILESDIR}/chromium-83-gcc-permissive.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-82-clang-std.patch b/www-client/chromium/files/chromium-82-clang-std.patch
deleted file mode 100644
index b965496a29a..00000000000
--- a/www-client/chromium/files/chromium-82-clang-std.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-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 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
-@@ -116,7 +116,7 @@
- 
- // 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-83-clang-std.patch b/www-client/chromium/files/chromium-83-clang-std.patch
deleted file mode 100644
index 023a073d87b..00000000000
--- a/www-client/chromium/files/chromium-83-clang-std.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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-include.patch b/www-client/chromium/files/chromium-83-gcc-include.patch
new file mode 100644
index 00000000000..466539007b0
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-include.patch
@@ -0,0 +1,25 @@
+From 3681c96f54b34f60493cbbf5ec830f158e469799 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 2 Apr 2020 14:35:44 +0000
+Subject: [PATCH] IWYU: std::find is defined in algorithm
+
+---
+ extensions/browser/install/crx_install_error.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/extensions/browser/install/crx_install_error.cc b/extensions/browser/install/crx_install_error.cc
+index a9765bb..bd0d3e3 100644
+--- a/extensions/browser/install/crx_install_error.cc
++++ b/extensions/browser/install/crx_install_error.cc
+@@ -4,6 +4,8 @@
+ 
+ #include "extensions/browser/install/crx_install_error.h"
+ 
++#include <algorithm>
++
+ #include "base/logging.h"
+ #include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"
+ 
+-- 
+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
new file mode 100644
index 00000000000..f7f19b44ba8
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-permissive.patch
@@ -0,0 +1,32 @@
+From fdf2767e8dc54727c9536a4d39d230a959e3698c Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 2 Apr 2020 16:16:14 +0000
+Subject: [PATCH] GCC: add missing apps namespace to BrowserAppLauncher
+
+GCC does not get namespace of BrowserAppLauncher right and
+fails like this:
+
+chrome/browser/apps/app_service/app_service_proxy.h:82:23: error:
+declaration of 'apps::BrowserAppLauncher&
+apps::AppServiceProxy::BrowserAppLauncher()' changes meaning of
+'BrowserAppLauncher' [-fpermissive]
+---
+ chrome/browser/apps/app_service/app_service_proxy.h | 2 +-
+ 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
+--- 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,
+   apps::InstanceRegistry& InstanceRegistry();
+ #endif
+ 
+-  BrowserAppLauncher& BrowserAppLauncher();
++  apps::BrowserAppLauncher& BrowserAppLauncher();
+ 
+   apps::PreferredApps& PreferredApps();
+ 
+-- 
+2.24.1
+

diff --git a/www-client/chromium/files/chromium-83-gcc-range.patch b/www-client/chromium/files/chromium-83-gcc-range.patch
deleted file mode 100644
index f8fb287894f..00000000000
--- a/www-client/chromium/files/chromium-83-gcc-range.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-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,
- };


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

commit:     74bedae1b414b74fe8db58cf4848a3683b41fa09
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri Mar 20 16:06:03 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Mar 24 13:48:03 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74bedae1

www-client/chromium: dev channel bump to 82.0.4085.12

Drop dependency on deprecated libgnome-keyring.

Closes: https://bugs.gentoo.org/713012
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/15085

 www-client/chromium/Manifest                       |  2 +-
 ....4083.0.ebuild => chromium-82.0.4085.12.ebuild} |  7 ++--
 .../chromium/files/chromium-82-gcc-noexcept.patch  | 22 ++++++++++++
 .../chromium/files/chromium-compiler-r12.patch     | 42 ++++++++++------------
 4 files changed, 45 insertions(+), 28 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 6d1cb4e7052..c3748fe76b8 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.69.tar.xz 785953544 BLAKE2B 1e9f0e0560c08ffa77568f16cf57a0de82c737e7517b27da1b925cfaa9a5797a189e2280891acba46373d3fc4e1798fae9d3367508fe5f1315b945a1aa3e5bac SHA512 77f8d922d9c84f72d562b37fe787ad1e92e64dc0b3755402c5024f94559f4731888dccdaa0fbe52a7b3f68692918dfa43a369b54f7b0ea71ead319261e89b5c4
-DIST chromium-82.0.4083.0.tar.xz 794521032 BLAKE2B 5437aaed6c81bab1bd6495db0665fe6c3fbd1058535272d19a6d6c9d34db0102ff3464e1f210461c0944dd84257bc036004aed412f91590a6ff951c1e3fb7925 SHA512 412757cd004ceb7946bd4b8f30afd9589f6b33595a9f231c4a43a7a6328547fec8bdf42d751ec4babc244c16d7b9bbd2448adeb155e4ac354d714180a69c0709
+DIST chromium-82.0.4085.12.tar.xz 795107540 BLAKE2B 419f6e927b340679cec069c7f274d86c2d66f26f32e3d9c95501b9433888dd16dbae4104afde1f3d285730a263a5837a7ef4e9a5e30fb4876dae56db5a1d955d SHA512 d371b6a941af877d2444591f3af9f6458e6beaee99af686a92c282b6ebcd3c560113941dedf215106af57eea201890fa95dee776d5a188ee2ac5686629336410

diff --git a/www-client/chromium/chromium-82.0.4083.0.ebuild b/www-client/chromium/chromium-82.0.4085.12.ebuild
similarity index 98%
rename from www-client/chromium/chromium-82.0.4083.0.ebuild
rename to www-client/chromium/chromium-82.0.4085.12.ebuild
index e93d8f46ddb..26b64de9437 100644
--- a/www-client/chromium/chromium-82.0.4083.0.ebuild
+++ b/www-client/chromium/chromium-82.0.4085.12.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 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"
+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 )"
 
@@ -34,7 +34,6 @@ COMMON_DEPEND="
 	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:=
@@ -498,12 +497,14 @@ src_configure() {
 	# 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_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-82-gcc-noexcept.patch b/www-client/chromium/files/chromium-82-gcc-noexcept.patch
index db66934d883..1c7de53d8ef 100644
--- a/www-client/chromium/files/chromium-82-gcc-noexcept.patch
+++ b/www-client/chromium/files/chromium-82-gcc-noexcept.patch
@@ -11,3 +11,25 @@ index 56564d7..2798a3c 100644
  
  ColorSet::~ColorSet() = default;
  
+diff --git a/third_party/blink/public/platform/cross_variant_mojo_util.h b/third_party/blink/public/platform/cross_variant_mojo_util.h
+index dee0b95..0c83580 100644
+--- a/third_party/blink/public/platform/cross_variant_mojo_util.h
++++ b/third_party/blink/public/platform/cross_variant_mojo_util.h
+@@ -124,7 +124,7 @@ class CrossVariantMojoAssociatedReceiver {
+   ~CrossVariantMojoAssociatedReceiver() = default;
+ 
+   CrossVariantMojoAssociatedReceiver(
+-      CrossVariantMojoAssociatedReceiver&&) noexcept = default;
++      CrossVariantMojoAssociatedReceiver&&) = default;
+   CrossVariantMojoAssociatedReceiver& operator=(
+       CrossVariantMojoAssociatedReceiver&&) noexcept = default;
+ 
+@@ -155,7 +155,7 @@ class CrossVariantMojoAssociatedRemote {
+   ~CrossVariantMojoAssociatedRemote() = default;
+ 
+   CrossVariantMojoAssociatedRemote(
+-      CrossVariantMojoAssociatedRemote&&) noexcept = default;
++      CrossVariantMojoAssociatedRemote&&) = default;
+   CrossVariantMojoAssociatedRemote& operator=(
+       CrossVariantMojoAssociatedRemote&&) noexcept = default;
+ 

diff --git a/www-client/chromium/files/chromium-compiler-r12.patch b/www-client/chromium/files/chromium-compiler-r12.patch
index 840059b4f57..a17cc4b52c8 100644
--- a/www-client/chromium/files/chromium-compiler-r12.patch
+++ b/www-client/chromium/files/chromium-compiler-r12.patch
@@ -1,14 +1,14 @@
-From c2a95e376474298b01cb04f1d5b2c6e3c76ba268 Mon Sep 17 00:00:00 2001
+From 907b74447f4a35d5a8e851c73c15cc951a2e446b Mon Sep 17 00:00:00 2001
 From: Mike Gilbert <floppym@gentoo.org>
-Date: Fri, 13 Mar 2020 20:20:06 +0000
+Date: Fri, 20 Mar 2020 09:14:25 +0000
 Subject: [PATCH] Disable various compiler configs
 
 ---
- build/config/compiler/BUILD.gn | 67 ++++++++++++----------------------
- 1 file changed, 23 insertions(+), 44 deletions(-)
+ build/config/compiler/BUILD.gn | 61 +++++++++++++---------------------
+ 1 file changed, 23 insertions(+), 38 deletions(-)
 
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 8f7fcc3..d27e71e 100644
+index 9573394..d35e736 100644
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
 @@ -261,8 +261,6 @@ config("compiler") {
@@ -20,7 +20,7 @@ index 8f7fcc3..d27e71e 100644
      ":compiler_codegen",
      ":compiler_deterministic",
    ]
-@@ -487,26 +485,6 @@ config("compiler") {
+@@ -487,20 +485,6 @@ config("compiler") {
      }
    }
  
@@ -36,18 +36,12 @@ index 8f7fcc3..d27e71e 100644
 -      "-Xclang",
 -      "-instcombine-lower-dbg-declare=0",
 -    ]
--
--    if (!is_chromeos && default_toolchain != "//build/toolchain/cros:target") {
--      # TODO(https://crbug.com/1049161): Remove '-DCLANG_SPAWN_CC1=ON' from build.py instead
--      # once this change has marinated a bit.
--      cflags += [ "-fintegrated-cc1" ]
--    }
 -  }
 -
    # C11/C++11 compiler flags setup.
    # ---------------------------
    if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-@@ -1437,6 +1415,12 @@ config("default_warnings") {
+@@ -1431,6 +1415,12 @@ config("default_warnings") {
          cflags_cc += [ "-Wno-class-memaccess" ]
        }
  
@@ -60,7 +54,7 @@ index 8f7fcc3..d27e71e 100644
        # -Wunused-local-typedefs is broken in gcc,
        # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
        cflags += [ "-Wno-unused-local-typedefs" ]
-@@ -1558,7 +1542,7 @@ config("chromium_code") {
+@@ -1559,7 +1549,7 @@ config("chromium_code") {
        defines = [ "_HAS_NODISCARD" ]
      }
    } else {
@@ -69,7 +63,7 @@ index 8f7fcc3..d27e71e 100644
      if (treat_warnings_as_errors) {
        cflags += [ "-Werror" ]
  
-@@ -1567,10 +1551,6 @@ config("chromium_code") {
+@@ -1568,10 +1558,6 @@ config("chromium_code") {
        # well.
        ldflags = [ "-Werror" ]
      }
@@ -80,7 +74,7 @@ index 8f7fcc3..d27e71e 100644
  
      # In Chromium code, we define __STDC_foo_MACROS in order to get the
      # C99 macros on Mac and Linux.
-@@ -1579,15 +1559,6 @@ config("chromium_code") {
+@@ -1580,15 +1566,6 @@ config("chromium_code") {
        "__STDC_FORMAT_MACROS",
      ]
  
@@ -96,7 +90,7 @@ index 8f7fcc3..d27e71e 100644
      if (is_mac) {
        cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
        cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -1979,7 +1950,8 @@ config("default_stack_frames") {
+@@ -1980,7 +1957,8 @@ config("default_stack_frames") {
  }
  
  # Default "optimization on" config.
@@ -106,7 +100,7 @@ index 8f7fcc3..d27e71e 100644
    if (is_win) {
      # Favor size over speed, /O1 must be before the common flags.
      # /O1 implies /Os and /GF.
-@@ -2000,7 +1972,8 @@ config("optimize") {
+@@ -2001,7 +1979,8 @@ config("optimize") {
  }
  
  # Turn off optimizations.
@@ -116,7 +110,7 @@ index 8f7fcc3..d27e71e 100644
    if (is_win) {
      cflags = [
        "/Od",  # Disable optimization.
-@@ -2034,7 +2007,8 @@ config("no_optimize") {
+@@ -2035,7 +2014,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 +120,7 @@ index 8f7fcc3..d27e71e 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2066,7 +2040,8 @@ config("optimize_max") {
+@@ -2067,7 +2047,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 +130,7 @@ index 8f7fcc3..d27e71e 100644
    if (is_nacl && is_nacl_irt) {
      # The NaCl IRT is a special case and always wants its own config.
      # Various components do:
-@@ -2091,7 +2066,8 @@ config("optimize_speed") {
+@@ -2092,7 +2073,8 @@ config("optimize_speed") {
    }
  }
  
@@ -146,7 +140,7 @@ index 8f7fcc3..d27e71e 100644
    cflags = [ "-O1" ] + common_optimize_on_cflags
    ldflags = common_optimize_on_ldflags
    visibility = [ ":default_optimization" ]
-@@ -2207,7 +2183,8 @@ config("win_pdbaltpath") {
+@@ -2208,7 +2190,8 @@ config("win_pdbaltpath") {
  }
  
  # Full symbols.
@@ -156,7 +150,7 @@ index 8f7fcc3..d27e71e 100644
    if (is_win) {
      if (is_clang) {
        cflags = [ "/Z7" ]  # Debug information in the .obj files.
-@@ -2313,7 +2290,8 @@ config("symbols") {
+@@ -2314,7 +2297,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 +160,7 @@ index 8f7fcc3..d27e71e 100644
    if (is_win) {
      # Functions, files, and line tables only.
      cflags = []
-@@ -2370,7 +2348,8 @@ config("minimal_symbols") {
+@@ -2371,7 +2355,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.


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

commit:     b6b6967abf2aad785a656cbf66c4660d35e0b0c6
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Feb 26 15:51:10 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Feb 27 16:22:23 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6b6967a

www-client/chromium: dev channel bump to 82.0.4068.4

Package-Manager: Portage-2.3.84, 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/14789

 www-client/chromium/Manifest                       |  2 +-
 ...0.4056.3.ebuild => chromium-82.0.4068.4.ebuild} |  7 ++--
 .../chromium/files/chromium-82-gcc-constexpr.patch | 34 ++++++++++++++++
 .../chromium/files/chromium-82-gcc-default.patch   | 35 ----------------
 .../files/chromium-82-gcc-has-feature.patch        | 35 ----------------
 .../chromium/files/chromium-82-gcc-noexcept.patch  | 13 ------
 .../chromium/files/chromium-82-gcc-private.patch   | 47 ++++++++++++++++++++++
 .../chromium/files/chromium-82-include.patch       | 28 +++++++++++++
 8 files changed, 113 insertions(+), 88 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e6fe4000476..57544bd002f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,4 @@
 DIST chromium-80.0.3987.100.tar.xz 801377116 BLAKE2B 0c99b78794a0c04bcc45fd423d0fabb7db4c9e37ae446b46c33a7b4a98ecc1af9302680e84118809f01dd3bee50b68a301ff0bdd72c5704c028c7984bac812f3 SHA512 b8612693158f9a497723391ed80dd06b152ed71b29e2722a751f94b297e184f09f786405d2c5b460aff6f62c9c6292c673b36019ff72f1fb662cc418cc26127d
 DIST chromium-80.0.3987.122.tar.xz 801340492 BLAKE2B 3f3015346120735c0d04268606fd61ddf57d63e042efe77d7e701fdc9609038a06cbc9380c6d90cb7324dc1679e62c86d971f36bd66f676bd2b16bc4c391bd0f SHA512 3a022c55f5745f2cfb7e28efb113f78ff686da638cd02f0585ef1ae8620f81ece864bc27b4e0a88daf3f409ff565a9b80b8859d1fd7d62c8b1d26cb8b311acc5
 DIST chromium-81.0.4044.26.tar.xz 791360936 BLAKE2B e7364ba1c3e1a586224fd2b15d5942f992d9b1a765a595225e985f273d33a784a1c67d613da842dd35021d3791bd34087073e50f122386c2d5ae23c4b320e0e8 SHA512 62884b6247d070e05e6e588d39b7a0f6027c3073d464fce9ca810df42f8c26d2d387479ab84d55ef6fd5c24e3311e299c3a0760497f48f528b7b288edc8878d4
-DIST chromium-82.0.4056.3.tar.xz 796919020 BLAKE2B 89d010fef567b3b3f76614f8097697f71b5b1222faaa9738c639001748d8fc103eef0c6b0c90154be36e2deeb5b7c2b1b5a61c9fe7c11836d8723819466c265e SHA512 83a160ffad9f9b10fb498b61e0f6427ee88fe73928d5956b60e7bd0690bb279c1fa749105c4996da67d1ade80d62e9ccad0b9a8bfb3691a17574ad22399ae55d
+DIST chromium-82.0.4068.4.tar.xz 803352676 BLAKE2B 64356b7c840d6ba955d2b7aced1faf85e05f19c9c0b39e8bf86529b86bba2e162404820f5710e9962c4d5e1325086becc3aebb0fdc2683b06231a2a0e8d7a6ae SHA512 ceb3b50ad4b38e969cf27c386d696665d773e73c000a1cd1ee158bbff86ae94b09a5fbe128547ed496e258ce8bfaf9bbf28b0d229254400c86afbe49fc7e8d8b

diff --git a/www-client/chromium/chromium-82.0.4056.3.ebuild b/www-client/chromium/chromium-82.0.4068.4.ebuild
similarity index 99%
rename from www-client/chromium/chromium-82.0.4056.3.ebuild
rename to www-client/chromium/chromium-82.0.4068.4.ebuild
index af1778f7e9b..a056ee3c4d4 100644
--- a/www-client/chromium/chromium-82.0.4056.3.ebuild
+++ b/www-client/chromium/chromium-82.0.4068.4.ebuild
@@ -145,10 +145,9 @@ PATCHES=(
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"
 	"${FILESDIR}/chromium-80-gcc-quiche.patch"
 	"${FILESDIR}/chromium-80-gcc-blink.patch"
-	"${FILESDIR}/chromium-81-gcc-constexpr.patch"
-	"${FILESDIR}/chromium-82-gcc-noexcept.patch"
-	"${FILESDIR}/chromium-82-gcc-has-feature.patch"
-	"${FILESDIR}/chromium-82-gcc-default.patch"
+	"${FILESDIR}/chromium-82-gcc-constexpr.patch"
+	"${FILESDIR}/chromium-82-gcc-private.patch"
+	"${FILESDIR}/chromium-82-include.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
new file mode 100644
index 00000000000..139b458c196
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-constexpr.patch
@@ -0,0 +1,34 @@
+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 77398f0..dda1f33 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 @@
+ 
+   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 std::min(y_, y_ + height_); }
+   double right() const { return std::max(x_, x_ + width_); }

diff --git a/www-client/chromium/files/chromium-82-gcc-default.patch b/www-client/chromium/files/chromium-82-gcc-default.patch
deleted file mode 100644
index 2195a1d2923..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-default.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a089aa8aafa2cabc331df6ea450fb75b77e75ff7 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Wed, 12 Feb 2020 22:03:05 +0000
-Subject: [PATCH] libstdc++: explicitly declare default constructor of WTF::DequeIterator
-
-Using std::minmax_element on a WTF::Deque iterator with libstdc++ from
-GCC 5+ fails to compile:
-/usr/include/c++/9/bits/stl_algo.h:3334:24: error: no matching function for call to ‘WTF::DequeIterator<int, 0, WTF::PartitionAllocator>::DequeIterator(<brace-enclosed initializer list>)’
- 3334 |       _ForwardIterator __min{}, __max{};
-
-This is because it will try to create an iterator of the DequeIterator
-type with no parameters (or with an empty list of initializers), but
-that constructor is not available. So this changeset adds it.
-
-Bug: 957519
-
-Change-Id: I95e54a2fd95b19c0d439e9067105b7e388bdea61
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2051932
-Reviewed-by: Kentaro Hara <haraken@chromium.org>
-Commit-Queue: José Dapena Paz <jdapena@igalia.com>
-Cr-Commit-Position: refs/heads/master@{#740842}
----
-
-diff --git a/third_party/blink/renderer/platform/wtf/deque.h b/third_party/blink/renderer/platform/wtf/deque.h
-index 29cce7c57..07233c4 100644
---- a/third_party/blink/renderer/platform/wtf/deque.h
-+++ b/third_party/blink/renderer/platform/wtf/deque.h
-@@ -236,6 +236,7 @@
-   typedef T& reference;
-   typedef std::bidirectional_iterator_tag iterator_category;
- 
-+  DequeIterator() = default;
-   DequeIterator(Deque<T, inlineCapacity, Allocator>* deque, wtf_size_t index)
-       : Base(deque, index) {}
- 

diff --git a/www-client/chromium/files/chromium-82-gcc-has-feature.patch b/www-client/chromium/files/chromium-82-gcc-has-feature.patch
deleted file mode 100644
index 592d0cdb3b9..00000000000
--- a/www-client/chromium/files/chromium-82-gcc-has-feature.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a148e5ed2151c6458f8c4cff44634146f803afe5 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena@igalia.com>
-Date: Wed, 12 Feb 2020 22:00:35 +0000
-Subject: [PATCH] GCC: do not use __has_feature in UnsanitizedAtomic
-
-GCC fails to build as unsanitized_atomic.cc is using a Clang only
-compiler macro: __has_feature:
-
-  ../../third_party/blink/renderer/platform/heap/unsanitized_atomic.cc:9:18: error: missing binary operator before token "("
-      9 | #if __has_feature(address_sanitizer)
-        |                  ^
-
-Bug: 819294
-Change-Id: Id1ef4972e61d82739b115398458fd238736de4a9
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2052106
-Reviewed-by: Anton Bikineev <bikineev@chromium.org>
-Commit-Queue: José Dapena Paz <jdapena@igalia.com>
-Cr-Commit-Position: refs/heads/master@{#740841}
----
-
-diff --git a/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc b/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc
-index 8481d63..5ed251d 100644
---- a/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc
-+++ b/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc
-@@ -6,7 +6,9 @@
- 
- #include "cstdint"
- 
--#if __has_feature(address_sanitizer)
-+#include "base/compiler_specific.h"
-+
-+#if HAS_FEATURE(address_sanitizer)
- #error "Must be built without asan."
- #endif
- 

diff --git a/www-client/chromium/files/chromium-82-gcc-noexcept.patch b/www-client/chromium/files/chromium-82-gcc-noexcept.patch
deleted file mode 100644
index ee7d65537fc..00000000000
--- a/www-client/chromium/files/chromium-82-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 a02605a..abe0e3a 100644
---- a/components/paint_preview/browser/paint_preview_client.cc
-+++ b/components/paint_preview/browser/paint_preview_client.cc
-@@ -98,7 +98,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-82-gcc-private.patch b/www-client/chromium/files/chromium-82-gcc-private.patch
new file mode 100644
index 00000000000..278f5b1d97a
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-private.patch
@@ -0,0 +1,47 @@
+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-include.patch b/www-client/chromium/files/chromium-82-include.patch
new file mode 100644
index 00000000000..9a39ae2e8d5
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-include.patch
@@ -0,0 +1,28 @@
+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"


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

commit:     749be40995a33c3c5d6cb0d703bbe80ba873d367
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Feb 16 09:02:52 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Feb 16 17:13:32 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=749be409

www-client/chromium: dev channel bump to 82.0.4056.3

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                       |   1 +
 www-client/chromium/chromium-82.0.4056.3.ebuild    | 745 +++++++++++++++++++++
 .../chromium/files/chromium-82-gcc-default.patch   |  35 +
 .../files/chromium-82-gcc-has-feature.patch        |  35 +
 .../chromium/files/chromium-82-gcc-noexcept.patch  |  13 +
 .../files/chromium-blink-style_format.patch        |  18 +
 .../chromium/files/chromium-compiler-r12.patch     | 191 ++++++
 7 files changed, 1038 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 2cab0370ddc..f0024e011c6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-80.0.3987.100.tar.xz 801377116 BLAKE2B 0c99b78794a0c04bcc45fd423d0fabb7db4c9e37ae446b46c33a7b4a98ecc1af9302680e84118809f01dd3bee50b68a301ff0bdd72c5704c028c7984bac812f3 SHA512 b8612693158f9a497723391ed80dd06b152ed71b29e2722a751f94b297e184f09f786405d2c5b460aff6f62c9c6292c673b36019ff72f1fb662cc418cc26127d
 DIST chromium-80.0.3987.106.tar.xz 801352584 BLAKE2B af61db268a5e49366d9a525424fd1ffffdf95ec7a7a8c61e8f8ed733907edb9f8efb067a5014169465965d72b78a46eda48d7c3b83e5525bb3c36014f49046dd SHA512 59eb974174a402d71d33ebda05710af7df57dbab39971833071c018ec3932bb1de7a95c5cd4ad9c6fbee63c23f1b30976fc900ced1febf4e6c6a4be2b3657caa
 DIST chromium-81.0.4044.17.tar.xz 791446724 BLAKE2B 08d8fc6c6c8788fde868270ca874571a4fff42154e340155d5f1eba3ef615202dabaec4d19250cccc5f7f9c665a0acb0df4f44fda6f1417289a84988e501e60a SHA512 bbcfddd5d44dfa940d40846dc66daaf394f079cd3d238ec57889c0b4cf137f7d4245873fba3e4fb9797f145084ca92d75b594f5d9653103b554d34154a1d3e61
+DIST chromium-82.0.4056.3.tar.xz 796919020 BLAKE2B 89d010fef567b3b3f76614f8097697f71b5b1222faaa9738c639001748d8fc103eef0c6b0c90154be36e2deeb5b7c2b1b5a61c9fe7c11836d8723819466c265e SHA512 83a160ffad9f9b10fb498b61e0f6427ee88fe73928d5956b60e7bd0690bb279c1fa749105c4996da67d1ade80d62e9ccad0b9a8bfb3691a17574ad22399ae55d

diff --git a/www-client/chromium/chromium-82.0.4056.3.ebuild b/www-client/chromium/chromium-82.0.4056.3.ebuild
new file mode 100644
index 00000000000..a09a33e75b6
--- /dev/null
+++ b/www-client/chromium/chromium-82.0.4056.3.ebuild
@@ -0,0 +1,745 @@
+# 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-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-80-gcc-blink.patch"
+	"${FILESDIR}/chromium-81-gcc-constexpr.patch"
+	"${FILESDIR}/chromium-82-gcc-noexcept.patch"
+	"${FILESDIR}/chromium-82-gcc-has-feature.patch"
+	"${FILESDIR}/chromium-82-gcc-default.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/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/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
+
+	# 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-82-gcc-default.patch b/www-client/chromium/files/chromium-82-gcc-default.patch
new file mode 100644
index 00000000000..2195a1d2923
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-default.patch
@@ -0,0 +1,35 @@
+From a089aa8aafa2cabc331df6ea450fb75b77e75ff7 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Wed, 12 Feb 2020 22:03:05 +0000
+Subject: [PATCH] libstdc++: explicitly declare default constructor of WTF::DequeIterator
+
+Using std::minmax_element on a WTF::Deque iterator with libstdc++ from
+GCC 5+ fails to compile:
+/usr/include/c++/9/bits/stl_algo.h:3334:24: error: no matching function for call to ‘WTF::DequeIterator<int, 0, WTF::PartitionAllocator>::DequeIterator(<brace-enclosed initializer list>)’
+ 3334 |       _ForwardIterator __min{}, __max{};
+
+This is because it will try to create an iterator of the DequeIterator
+type with no parameters (or with an empty list of initializers), but
+that constructor is not available. So this changeset adds it.
+
+Bug: 957519
+
+Change-Id: I95e54a2fd95b19c0d439e9067105b7e388bdea61
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2051932
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/master@{#740842}
+---
+
+diff --git a/third_party/blink/renderer/platform/wtf/deque.h b/third_party/blink/renderer/platform/wtf/deque.h
+index 29cce7c57..07233c4 100644
+--- a/third_party/blink/renderer/platform/wtf/deque.h
++++ b/third_party/blink/renderer/platform/wtf/deque.h
+@@ -236,6 +236,7 @@
+   typedef T& reference;
+   typedef std::bidirectional_iterator_tag iterator_category;
+ 
++  DequeIterator() = default;
+   DequeIterator(Deque<T, inlineCapacity, Allocator>* deque, wtf_size_t index)
+       : Base(deque, index) {}
+ 

diff --git a/www-client/chromium/files/chromium-82-gcc-has-feature.patch b/www-client/chromium/files/chromium-82-gcc-has-feature.patch
new file mode 100644
index 00000000000..592d0cdb3b9
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-gcc-has-feature.patch
@@ -0,0 +1,35 @@
+From a148e5ed2151c6458f8c4cff44634146f803afe5 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Wed, 12 Feb 2020 22:00:35 +0000
+Subject: [PATCH] GCC: do not use __has_feature in UnsanitizedAtomic
+
+GCC fails to build as unsanitized_atomic.cc is using a Clang only
+compiler macro: __has_feature:
+
+  ../../third_party/blink/renderer/platform/heap/unsanitized_atomic.cc:9:18: error: missing binary operator before token "("
+      9 | #if __has_feature(address_sanitizer)
+        |                  ^
+
+Bug: 819294
+Change-Id: Id1ef4972e61d82739b115398458fd238736de4a9
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2052106
+Reviewed-by: Anton Bikineev <bikineev@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/master@{#740841}
+---
+
+diff --git a/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc b/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc
+index 8481d63..5ed251d 100644
+--- a/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc
++++ b/third_party/blink/renderer/platform/heap/unsanitized_atomic.cc
+@@ -6,7 +6,9 @@
+ 
+ #include "cstdint"
+ 
+-#if __has_feature(address_sanitizer)
++#include "base/compiler_specific.h"
++
++#if HAS_FEATURE(address_sanitizer)
+ #error "Must be built without asan."
+ #endif
+ 

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..ee7d65537fc
--- /dev/null
+++ b/www-client/chromium/files/chromium-82-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 a02605a..abe0e3a 100644
+--- a/components/paint_preview/browser/paint_preview_client.cc
++++ b/components/paint_preview/browser/paint_preview_client.cc
+@@ -98,7 +98,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-blink-style_format.patch b/www-client/chromium/files/chromium-blink-style_format.patch
new file mode 100644
index 00000000000..7c9bc9e4604
--- /dev/null
+++ b/www-client/chromium/files/chromium-blink-style_format.patch
@@ -0,0 +1,18 @@
+diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+index d50a6c1..e0ff436 100644
+--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+@@ -149,12 +149,4 @@ def write_code_node_to_file(code_node, filepath):
+ 
+     rendered_text = render_code_node(code_node)
+ 
+-    format_result = style_format.auto_format(rendered_text, filename=filepath)
+-    if not format_result.did_succeed:
+-        raise RuntimeError("Style-formatting failed: filename = {filename}\n"
+-                           "---- stderr ----\n"
+-                           "{stderr}:".format(
+-                               filename=format_result.filename,
+-                               stderr=format_result.error_message))
+-
+-    web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)
++    web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)

diff --git a/www-client/chromium/files/chromium-compiler-r12.patch b/www-client/chromium/files/chromium-compiler-r12.patch
new file mode 100644
index 00000000000..18f597f7e34
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r12.patch
@@ -0,0 +1,191 @@
+From 4ee82d093d26ab2fcdb989fd62f55b0588afdde0 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 15 Feb 2020 12:11:49 +0000
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 70 ++++++++++++----------------------
+ 1 file changed, 25 insertions(+), 45 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index e40194e..f2bd02e 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,26 +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",
+-    ]
+-
+-    if (target_os != "chromeos") {
+-      # TODO(https://crbug.com/1049161): Remove '-DCLANG_SPAWN_CC1=ON' from build.py instead
+-      # once this change has marinated a bit.
+-      cflags += [ "-fintegrated-cc1" ]
+-    }
+-  }
+-
+   # C11/C++11 compiler flags setup.
+   # ---------------------------
+   if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1452,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" ]
+@@ -1577,7 +1561,7 @@ config("chromium_code") {
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1586,10 +1570,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.
+@@ -1598,15 +1578,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" ]
+@@ -2010,7 +1981,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) {
+@@ -2036,7 +2008,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.
+@@ -2059,7 +2032,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2093,7 +2067,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:
+@@ -2132,7 +2107,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:
+@@ -2162,7 +2138,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" ]
+@@ -2278,7 +2255,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.
+@@ -2388,7 +2366,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 = []
+@@ -2443,7 +2422,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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2020-01-23 20:58 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2020-01-23 20:58 UTC (permalink / raw
  To: gentoo-commits

commit:     702aafe060e585a5fe849266b25330ed7af7fc3d
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Jan 22 13:17:15 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Jan 23 20:56:35 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=702aafe0

www-client/chromium: dev channel bump to 81.0.4033.2

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>
Closes: https://github.com/gentoo/gentoo/pull/14422

 www-client/chromium/Manifest                       |  2 +-
 ...0.4029.3.ebuild => chromium-81.0.4033.2.ebuild} |  1 -
 .../chromium/files/chromium-compiler-r11.patch     | 44 ++++++++++++----------
 3 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index e15704d4c46..537776c3353 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +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
+DIST chromium-81.0.4033.2.tar.xz 819332884 BLAKE2B 4d12fef8959a5de2cde1430b3b0c927e6ecff13276db4490d99491a989310a44fa2df114603e09f5d0f3c3c362b31c02e04be0926ede627ceb075f92f1be76d1 SHA512 3e11cf4cdfa49e80926cfadf217fb7f0cec26b0fac9788b0d020b02be55419cb10ba9e483e4d3851beb55ddd78a80e8d695ed46da971520856f66f32b11d7388

diff --git a/www-client/chromium/chromium-81.0.4029.3.ebuild b/www-client/chromium/chromium-81.0.4033.2.ebuild
similarity index 99%
rename from www-client/chromium/chromium-81.0.4029.3.ebuild
rename to www-client/chromium/chromium-81.0.4033.2.ebuild
index cc849adeafa..2f1a68472d5 100644
--- a/www-client/chromium/chromium-81.0.4029.3.ebuild
+++ b/www-client/chromium/chromium-81.0.4033.2.ebuild
@@ -148,7 +148,6 @@ PATCHES=(
 	"${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"

diff --git a/www-client/chromium/files/chromium-compiler-r11.patch b/www-client/chromium/files/chromium-compiler-r11.patch
index 1d99927e5de..f910d6fe2d5 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: Mike Gilbert <floppym@gentoo.org>
-Date: Sat, 16 Jun 2019 15:43:27 +0100
+Date: Wed, 22 Jan 2020 09:05:36 +0000
 Subject: [PATCH] Disable various compiler configs
 
 ---
- build/config/compiler/BUILD.gn | 71 ++++++++++++----------------------
- 1 file changed, 25 insertions(+), 46 deletions(-)
+ build/config/compiler/BUILD.gn | 75 ++++++++++++----------------------
+ 1 file changed, 25 insertions(+), 50 deletions(-)
 
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 2ac6e8e..b3e760d 100644
+index 1455a9f..cf19679 100644
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
-@@ -269,8 +269,6 @@ config("compiler") {
+@@ -270,8 +270,6 @@ config("compiler") {
  
    configs += [
      # See the definitions below.
@@ -20,7 +20,7 @@ index 2ac6e8e..b3e760d 100644
      ":compiler_codegen",
      ":compiler_deterministic",
    ]
-@@ -495,27 +493,6 @@ config("compiler") {
+@@ -496,31 +494,6 @@ config("compiler") {
      }
    }
  
@@ -41,14 +41,18 @@ index 2ac6e8e..b3e760d 100644
 -      # 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" ]
+-      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") {
-@@ -1462,6 +1439,12 @@ config("default_warnings") {
+@@ -1467,6 +1440,12 @@ config("default_warnings") {
          cflags_cc += [ "-Wno-class-memaccess" ]
        }
  
@@ -61,7 +65,7 @@ index 2ac6e8e..b3e760d 100644
        # -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") {
+@@ -1592,7 +1571,7 @@ config("chromium_code") {
        defines = [ "_HAS_NODISCARD" ]
      }
    } else {
@@ -70,7 +74,7 @@ index 2ac6e8e..b3e760d 100644
      if (treat_warnings_as_errors) {
        cflags += [ "-Werror" ]
  
-@@ -1596,10 +1579,6 @@ config("chromium_code") {
+@@ -1601,10 +1580,6 @@ config("chromium_code") {
        # well.
        ldflags = [ "-Werror" ]
      }
@@ -81,7 +85,7 @@ index 2ac6e8e..b3e760d 100644
  
      # 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") {
+@@ -1613,15 +1588,6 @@ config("chromium_code") {
        "__STDC_FORMAT_MACROS",
      ]
  
@@ -97,7 +101,7 @@ index 2ac6e8e..b3e760d 100644
      if (is_mac) {
        cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
        cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
-@@ -2020,7 +1990,8 @@ config("default_stack_frames") {
+@@ -2025,7 +1991,8 @@ config("default_stack_frames") {
  }
  
  # Default "optimization on" config.
@@ -107,7 +111,7 @@ index 2ac6e8e..b3e760d 100644
    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") {
+@@ -2051,7 +2018,8 @@ config("optimize") {
  }
  
  # Same config as 'optimize' but without the WPO flag.
@@ -117,7 +121,7 @@ index 2ac6e8e..b3e760d 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.
-@@ -2069,7 +2041,8 @@ config("optimize_no_wpo") {
+@@ -2074,7 +2042,8 @@ config("optimize_no_wpo") {
  }
  
  # Turn off optimizations.
@@ -127,7 +131,7 @@ index 2ac6e8e..b3e760d 100644
    if (is_win) {
      cflags = [
        "/Od",  # Disable optimization.
-@@ -2103,7 +2076,8 @@ config("no_optimize") {
+@@ -2108,7 +2077,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.
@@ -137,7 +141,7 @@ index 2ac6e8e..b3e760d 100644
    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") {
+@@ -2147,7 +2117,8 @@ config("optimize_max") {
  #
  # TODO(crbug.com/621335) - rework how all of these configs are related
  # so that we don't need this disclaimer.
@@ -147,7 +151,7 @@ index 2ac6e8e..b3e760d 100644
    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") {
+@@ -2177,7 +2148,8 @@ config("optimize_speed") {
    }
  }
  
@@ -157,7 +161,7 @@ index 2ac6e8e..b3e760d 100644
    cflags = [ "-O1" ] + common_optimize_on_cflags
    ldflags = common_optimize_on_ldflags
    visibility = [ ":default_optimization" ]
-@@ -2288,7 +2264,8 @@ config("win_pdbaltpath") {
+@@ -2293,7 +2265,8 @@ config("win_pdbaltpath") {
  }
  
  # Full symbols.
@@ -167,7 +171,7 @@ index 2ac6e8e..b3e760d 100644
    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") {
+@@ -2403,7 +2376,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.
@@ -177,7 +181,7 @@ index 2ac6e8e..b3e760d 100644
    if (is_win) {
      # Functions, files, and line tables only.
      cflags = []
-@@ -2453,7 +2431,8 @@ config("minimal_symbols") {
+@@ -2458,7 +2432,8 @@ config("minimal_symbols") {
  }
  
  # No symbols.


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

commit:     63e5fbd254535ca8902ae4456b733f782e8cde73
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Nov 20 20:24:39 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Nov 22 20:08:50 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63e5fbd2

www-client/chromium: dev channel bump to 80.0.3970.5

Closes: https://bugs.gentoo.org/699776
Closes: https://bugs.gentoo.org/699978
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.3962.2.ebuild => chromium-80.0.3970.5.ebuild} |  4 +++
 .../chromium/files/chromium-80-gcc-blink.patch     | 27 +++++++++++++++++++
 .../chromium/files/chromium-80-gcc-quiche.patch    | 30 ++++++++++++++++++++++
 .../chromium/files/chromium-80-include.patch       | 13 ++++++++++
 5 files changed, 75 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4c29a4c54ac..551d7d72539 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,4 +2,4 @@ DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9a
 DIST chromium-78.0.3904.108.tar.xz 742906260 BLAKE2B 4ec325911d502d0832764a2a70a51c680e3c3828127ae06c2cbc6b5604f25d416b4ed2e070054145d6f63605ba0610e8cca7a4d64ee4674abfbc1e2090999740 SHA512 9801634358974dbe61484963599719b7c5571d32c70d7568287ab6b72054ed82afa146a0470c53129266a9fbc4a24dc50a43d552b8f1756776907c2760f15589
 DIST chromium-78.0.3904.97.tar.xz 742793812 BLAKE2B e7fada913f5831d805a50445da41ecbca7e27af52574ce242f427c0e4c83a74ae0283eb1667d74d39eb88f05e88e5a389945628666e24e26d635f74c43c8bc55 SHA512 e29312fe5c15eb6888a2e4d7e197c710d53feeecdf4e534c59f3db26973fee13f48880b46a7c3b132bb9989eb617db9c6138b809c3cb762332a9db25ad6d33dc
 DIST chromium-79.0.3945.36.tar.xz 778020676 BLAKE2B abf0a15f5bea2af0c2b42a6676f5bb3fb0025c1d2644dfc6c1e47e1d65c61607a46eb09877f36cba3936d5df0f993b8a801f10e3111898f93fd85b270c3a7d99 SHA512 9b534ea0bf39cb5dbf5a16e652fb6f06b3f0fa578ae18c06e947927c50d1e4fa663a8341f9ab6d1f914e4822bfec9ea98c05c376b465d61d49ef91186abcded0
-DIST chromium-80.0.3962.2.tar.xz 788407196 BLAKE2B f7ece5f654f7b479ac4aad42e18dc2454c46b39353bdf6057c30aeb30714f033af21228269510ddd4ebb15b570987cdbe0d0ae67824368f205fbdb9308cbed07 SHA512 29460df7e6b8f4b01fea06faad236690739e250170c190ee991090fc300a3cbea034ebee50731485ac578d5f8c83cfc86e9438bd6ba91c686f17bea78dbf1e86
+DIST chromium-80.0.3970.5.tar.xz 789810132 BLAKE2B 400fcefeb58cb784412eca7011267c9224786036494337ecb8dbc7f3f483ec05d6e26c424ef55286cbebdbc872e1c15acfb62413264bb8843334a11bbe73ab4d SHA512 398666d81beaeef3eeb3f00a9a512b2d4c4e74bd9f01f20fab06901eadcb6fdbd345c39c54f2af57c4e485f2cd35700cde6f6a3d6301df7ee920bf067bee31d6

diff --git a/www-client/chromium/chromium-80.0.3962.2.ebuild b/www-client/chromium/chromium-80.0.3970.5.ebuild
similarity index 99%
rename from www-client/chromium/chromium-80.0.3962.2.ebuild
rename to www-client/chromium/chromium-80.0.3970.5.ebuild
index 6f34c5068d5..c6af893cb11 100644
--- a/www-client/chromium/chromium-80.0.3962.2.ebuild
+++ b/www-client/chromium/chromium-80.0.3970.5.ebuild
@@ -147,7 +147,10 @@ PATCHES=(
 	"${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-noexcept.patch"
+	"${FILESDIR}/chromium-80-gcc-quiche.patch"
+	"${FILESDIR}/chromium-80-gcc-blink.patch"
 )
 
 pre_build_checks() {
@@ -369,6 +372,7 @@ src_prepare() {
 		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

diff --git a/www-client/chromium/files/chromium-80-gcc-blink.patch b/www-client/chromium/files/chromium-80-gcc-blink.patch
new file mode 100644
index 00000000000..fdc28f32435
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-blink.patch
@@ -0,0 +1,27 @@
+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-80-gcc-quiche.patch b/www-client/chromium/files/chromium-80-gcc-quiche.patch
new file mode 100644
index 00000000000..aa3d54126ca
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-gcc-quiche.patch
@@ -0,0 +1,30 @@
+From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
+From: vasilvv <vasilvv@google.com>
+Date: Wed, 03 Apr 2019 13:58:53 -0700
+Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer
+
+QuicStreamSendBuffer constructor is implicitely required in the
+initialization of the vector of substreams in QuicCryptoStream.
+Though clang apparently ignores that, GCC fails to build.
+
+BUG=chromium:819294
+
+Originally submitted by José Dapena Paz <jose.dapena@lge.com> at https://quiche-review.googlesource.com/c/quiche/+/2420
+
+PiperOrigin-RevId: 241800134
+Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
+---
+
+diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+index e34514b..74e9d0d 100644
+--- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
++++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+@@ -62,7 +62,7 @@
+  public:
+   explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
+   QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
+-  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
++  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
+   ~QuicStreamSendBuffer();
+ 
+   // Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.

diff --git a/www-client/chromium/files/chromium-80-include.patch b/www-client/chromium/files/chromium-80-include.patch
new file mode 100644
index 00000000000..a2a00a9d455
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-include.patch
@@ -0,0 +1,13 @@
+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"
+ 
++#include <memory>
++
+ namespace mojo {
+ class BinderMap;
+ }


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

commit:     112ec0703736e211689b6bca45d7f6ae702065d4
Author:     Stephan Hartmann <stephan.hartmann <AT> tu-dresden <DOT> de>
AuthorDate: Sat Oct 26 21:31:37 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Oct 27 14:38:48 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=112ec070

www-client/chromium: fix build with icu-65

Closes: https://bugs.gentoo.org/698564
Closes: https://github.com/gentoo/gentoo/pull/13455
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/chromium-79.0.3941.4.ebuild    |  1 +
 www-client/chromium/files/chromium-79-icu-65.patch | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/www-client/chromium/chromium-79.0.3941.4.ebuild b/www-client/chromium/chromium-79.0.3941.4.ebuild
index 1cb2a50a73e..9e2a2c46130 100644
--- a/www-client/chromium/chromium-79.0.3941.4.ebuild
+++ b/www-client/chromium/chromium-79.0.3941.4.ebuild
@@ -150,6 +150,7 @@ PATCHES=(
 	"${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-permissive.patch"
 	"${FILESDIR}/chromium-79-gcc-alignas.patch"

diff --git a/www-client/chromium/files/chromium-79-icu-65.patch b/www-client/chromium/files/chromium-79-icu-65.patch
new file mode 100644
index 00000000000..e0732b6ace2
--- /dev/null
+++ b/www-client/chromium/files/chromium-79-icu-65.patch
@@ -0,0 +1,13 @@
+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);


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

commit:     3aeae442d5b0419d9ab4d9742c042c3c63a60ee3
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri Oct 18 08:13:30 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Oct 20 16:26:15 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3aeae442

www-client/chromium: beta channel bump to 78.0.3904.63

Closes: https://github.com/gentoo/gentoo/pull/13333
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                       |  3 +-
 ...3904.50.ebuild => chromium-78.0.3904.63.ebuild} |  3 +-
 .../chromium/files/chromium-78-pm-crash.patch      | 43 ++++++++++++++++++++++
 3 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8b6fc91ab22..959fae471eb 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,4 @@
 DIST chromium-77.0.3865.120.tar.xz 729636120 BLAKE2B 7ff2467b5dd421c3962dd86503975fe042ced4a44e9d3705106ee9c9a7ceaa94c38fea2aefe4913bfe4af40775cb37b175d9a6c70b67d807c227f7e363ba5783 SHA512 4c72c9e9cd9a5d7f89e33c52d117018418ce0f5d23a57341b26ce47c8f90fa55f52a0c976b6959026dc273d5b37aa57306253a9b533172cd133a815edc7bccb4
 DIST chromium-77.0.3865.90.tar.xz 729551228 BLAKE2B 865a40a7fa7d6a0b2de137249f7f14dad32b30cb0099fccc0d21570a2488834c5ab6504ef7c63f334e5d798de5391d6e96beaa49009caecb178d898e27317d89 SHA512 8b343c6ccc798c74cca8d5d41285153ace917da28360192afb21925c103ba425a4045f75c589f73a8c5c75bd1bbca44bfae1a4b96e9b7a97636d9929c7961bbc
 DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9ab14fa80b042b4237cabdbcb06425e4d1c72200ec49c3c1383cfc95013cce4df411b0a2397b79030d41a0379ae80a0c60bae1fbb5ffa SHA512 dcb62b82b34d5d6982762cacfe3ab7d3538d908b3befe7666f5d70d98ba4f979b5bf056e5c5343ed76aa744a643318fc5a75ddedfcb1b7de3e7c28eb2587439f
-DIST chromium-78-revert-pm-observer.patch 22149 BLAKE2B d0169db31948a0a11930d23dbb1fd6573525218a795fe57702cdc6bfef87ce3ab856f8429f5bc9751bf6c96750ad3ed16ce22a4e8be1c57a183da30ca4b56d84 SHA512 68b4558226264aa04af265f7fd42c7319f1cd483d249ad53244efa9d640d99bfb97d39aa8a3e395e1ece4384092b21f7c27d635bc0f3a9f0ba6ddd2f38f4dbae
-DIST chromium-78.0.3904.50.tar.xz 741967532 BLAKE2B 01f544b61209ee4778642a8cd7b55f36425ec61b4a59751f10f93fafb898dde8c15a374c4ede4197974c7b382646277188507ecc04bc92e69f235a4846c78de6 SHA512 699d1880d81343fb81db407adc5b257b44761fe921f352c69d3c41dc4b21b1eb61875f49fdcc060d6a6133c7542609f93f03088609ed0f589f52b41dec72d484
+DIST chromium-78.0.3904.63.tar.xz 742770704 BLAKE2B 01e48d24dd12a7f923d7772dcda35ecf159cdaaaaba9adf8599443db4dc4dc69fed1b44aedddf3f8cadd9fb02621ecfdc7a47a12e732992e1090b197ad68a7ce SHA512 abda5c5108edbf9e3a67f1fda40f0a09fcc74600e3b746da60df34d4eeb1a5fcd52e09f894cf2f7a6cce42b8509a4e6f261bbbb9463c95c3170c92357f91b359

diff --git a/www-client/chromium/chromium-78.0.3904.50.ebuild b/www-client/chromium/chromium-78.0.3904.63.ebuild
similarity index 99%
rename from www-client/chromium/chromium-78.0.3904.50.ebuild
rename to www-client/chromium/chromium-78.0.3904.63.ebuild
index da61abdb047..db0c938d37b 100644
--- a/www-client/chromium/chromium-78.0.3904.50.ebuild
+++ b/www-client/chromium/chromium-78.0.3904.63.ebuild
@@ -14,7 +14,6 @@ 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
-	https://dev.gentoo.org/~floppym/dist/chromium-78-revert-pm-observer.patch
 "
 
 LICENSE="BSD"
@@ -153,8 +152,8 @@ PATCHES=(
 	"${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"
-	"${DISTDIR}/chromium-78-revert-pm-observer.patch"
 	"${FILESDIR}/chromium-78-gcc-enum-range.patch"
 	"${FILESDIR}/chromium-78-gcc-std-vector.patch"
 	"${FILESDIR}/chromium-78-gcc-noexcept.patch"

diff --git a/www-client/chromium/files/chromium-78-pm-crash.patch b/www-client/chromium/files/chromium-78-pm-crash.patch
new file mode 100644
index 00000000000..ada266120dc
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-pm-crash.patch
@@ -0,0 +1,43 @@
+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


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

commit:     4cec086c40b5228ffcd36a277ec8a869e2046e63
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Oct 15 20:17:58 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Oct 15 20:38:08 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4cec086c

www-client/chromium: beta channel bump to 78.0.3904.50

Closes: https://github.com/gentoo/gentoo/pull/13313
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                              |  4 ++--
 ...m-78.0.3904.34.ebuild => chromium-78.0.3904.50.ebuild} |  5 +++--
 www-client/chromium/files/chromium-78-icon.patch          | 12 ++++++++++++
 www-client/chromium/files/chromium-78-include.patch       | 15 +++++++++++++++
 4 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 6c9db417742..8b6fc91ab22 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-77.0.3865.120.tar.xz 729636120 BLAKE2B 7ff2467b5dd421c3962dd86503975fe042ced4a44e9d3705106ee9c9a7ceaa94c38fea2aefe4913bfe4af40775cb37b175d9a6c70b67d807c227f7e363ba5783 SHA512 4c72c9e9cd9a5d7f89e33c52d117018418ce0f5d23a57341b26ce47c8f90fa55f52a0c976b6959026dc273d5b37aa57306253a9b533172cd133a815edc7bccb4
 DIST chromium-77.0.3865.90.tar.xz 729551228 BLAKE2B 865a40a7fa7d6a0b2de137249f7f14dad32b30cb0099fccc0d21570a2488834c5ab6504ef7c63f334e5d798de5391d6e96beaa49009caecb178d898e27317d89 SHA512 8b343c6ccc798c74cca8d5d41285153ace917da28360192afb21925c103ba425a4045f75c589f73a8c5c75bd1bbca44bfae1a4b96e9b7a97636d9929c7961bbc
-DIST chromium-78-revert-noexcept.patch 69206 BLAKE2B c0cbcd9cf4ca1d22afb0deb90ca0e208abc4853ec0430ded105c76488af38df7fba696531a1b597efb8ffe3f8c9352bf47bfc364db3ffff0f6ccb726bb7e1f94 SHA512 13ab086b40f246fd7397c3f44663e69dd3c996beb657d7c06d1af0730be90135c1097ec555e384a76add4034f69e8bfe23de4d69900df4c67dc6b383d6c3708d
+DIST chromium-78-revert-noexcept-r1.patch.gz 12094 BLAKE2B 1fd0c939af773ed398c9ab14fa80b042b4237cabdbcb06425e4d1c72200ec49c3c1383cfc95013cce4df411b0a2397b79030d41a0379ae80a0c60bae1fbb5ffa SHA512 dcb62b82b34d5d6982762cacfe3ab7d3538d908b3befe7666f5d70d98ba4f979b5bf056e5c5343ed76aa744a643318fc5a75ddedfcb1b7de3e7c28eb2587439f
 DIST chromium-78-revert-pm-observer.patch 22149 BLAKE2B d0169db31948a0a11930d23dbb1fd6573525218a795fe57702cdc6bfef87ce3ab856f8429f5bc9751bf6c96750ad3ed16ce22a4e8be1c57a183da30ca4b56d84 SHA512 68b4558226264aa04af265f7fd42c7319f1cd483d249ad53244efa9d640d99bfb97d39aa8a3e395e1ece4384092b21f7c27d635bc0f3a9f0ba6ddd2f38f4dbae
-DIST chromium-78.0.3904.34.tar.xz 741873348 BLAKE2B 4cf6d35548a41c44dca3dbf9275ac1fe09e6ce3108b7b4bc3b90034e4780456ae399ea368ed67ef3cce9cd3b00265ddfd765da837214a51437d333c288ba1e7e SHA512 d1c7b75fc2b4e5acbb89f9044a87e678db4ad99e805448716daf0227d8760b02d08b090ff3dbbb2f3aad5f7a1c488a59345cf209cb609cca6781b8e3353e1f32
+DIST chromium-78.0.3904.50.tar.xz 741967532 BLAKE2B 01f544b61209ee4778642a8cd7b55f36425ec61b4a59751f10f93fafb898dde8c15a374c4ede4197974c7b382646277188507ecc04bc92e69f235a4846c78de6 SHA512 699d1880d81343fb81db407adc5b257b44761fe921f352c69d3c41dc4b21b1eb61875f49fdcc060d6a6133c7542609f93f03088609ed0f589f52b41dec72d484

diff --git a/www-client/chromium/chromium-78.0.3904.34.ebuild b/www-client/chromium/chromium-78.0.3904.50.ebuild
similarity index 99%
rename from www-client/chromium/chromium-78.0.3904.34.ebuild
rename to www-client/chromium/chromium-78.0.3904.50.ebuild
index 525ed7e65b6..da61abdb047 100644
--- a/www-client/chromium/chromium-78.0.3904.34.ebuild
+++ b/www-client/chromium/chromium-78.0.3904.50.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="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.patch
+	https://dev.gentoo.org/~floppym/dist/chromium-78-revert-noexcept-r1.patch.gz
 	https://dev.gentoo.org/~floppym/dist/chromium-78-revert-pm-observer.patch
 "
 
@@ -151,8 +151,9 @@ PATCHES=(
 	"${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"
-	"${DISTDIR}/chromium-78-revert-noexcept.patch"
+	"${WORKDIR}/chromium-78-revert-noexcept-r1.patch"
 	"${DISTDIR}/chromium-78-revert-pm-observer.patch"
 	"${FILESDIR}/chromium-78-gcc-enum-range.patch"
 	"${FILESDIR}/chromium-78-gcc-std-vector.patch"

diff --git a/www-client/chromium/files/chromium-78-icon.patch b/www-client/chromium/files/chromium-78-icon.patch
new file mode 100644
index 00000000000..2cca7f10d19
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-icon.patch
@@ -0,0 +1,12 @@
+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
index 224aa3b3519..3db38eac1c9 100644
--- a/www-client/chromium/files/chromium-78-include.patch
+++ b/www-client/chromium/files/chromium-78-include.patch
@@ -23,3 +23,18 @@ index 959440f..c3fd542 100644
  #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"


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

commit:     7ab2221b7ad1814586e7c991ad1df9258440558b
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Oct  2 17:09:22 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Oct  8 17:49:47 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7ab2221b

www-client/chromium: fix component-build for beta channel

Closes: https://github.com/gentoo/gentoo/pull/13131
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/chromium-78.0.3904.34.ebuild   |   6 +
 .../chromium/files/chromium-78-gcc-alignas.patch   | 142 +++++++++++++++++++++
 .../files/chromium-78-protobuf-export.patch        |  13 ++
 3 files changed, 161 insertions(+)

diff --git a/www-client/chromium/chromium-78.0.3904.34.ebuild b/www-client/chromium/chromium-78.0.3904.34.ebuild
index 2e268516462..525ed7e65b6 100644
--- a/www-client/chromium/chromium-78.0.3904.34.ebuild
+++ b/www-client/chromium/chromium-78.0.3904.34.ebuild
@@ -151,11 +151,13 @@ PATCHES=(
 	"${FILESDIR}/chromium-77-clang.patch"
 	"${FILESDIR}/chromium-77-pulseaudio-13.patch"
 	"${FILESDIR}/chromium-78-include.patch"
+	"${FILESDIR}/chromium-78-protobuf-export.patch"
 	"${DISTDIR}/chromium-78-revert-noexcept.patch"
 	"${DISTDIR}/chromium-78-revert-pm-observer.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"
 )
 
 pre_build_checks() {
@@ -164,6 +166,10 @@ pre_build_checks() {
 		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 .

diff --git a/www-client/chromium/files/chromium-78-gcc-alignas.patch b/www-client/chromium/files/chromium-78-gcc-alignas.patch
new file mode 100644
index 00000000000..4f6039c2f5a
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-alignas.patch
@@ -0,0 +1,142 @@
+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-protobuf-export.patch b/www-client/chromium/files/chromium-78-protobuf-export.patch
new file mode 100644
index 00000000000..ddb9e80eefe
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-protobuf-export.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
+index b5b193c..4434854 100644
+--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
++++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
+@@ -804,7 +804,7 @@ class StringTypeHandler {
+ // RepeatedPtrField is like RepeatedField, but used for repeated strings or
+ // Messages.
+ template <typename Element>
+-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
++class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+  public:
+   RepeatedPtrField();
+   explicit RepeatedPtrField(Arena* arena);


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

commit:     271d3c45ed4e2800eefc7c6d7a9031d235e7994a
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Oct  1 13:08:23 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Oct  1 20:19:06 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=271d3c45

www-client/chromium: fix component-build for stable channel

Closes: https://github.com/gentoo/gentoo/pull/13116
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/chromium-77.0.3865.90.ebuild   |  5 ++
 .../chromium/files/chromium-77-gcc-alignas.patch   | 72 ++++++++++++++++++++++
 2 files changed, 77 insertions(+)

diff --git a/www-client/chromium/chromium-77.0.3865.90.ebuild b/www-client/chromium/chromium-77.0.3865.90.ebuild
index 8e52aecdb55..0dbd8e2289d 100644
--- a/www-client/chromium/chromium-77.0.3865.90.ebuild
+++ b/www-client/chromium/chromium-77.0.3865.90.ebuild
@@ -154,6 +154,7 @@ PATCHES=(
 	"${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() {
@@ -162,6 +163,10 @@ pre_build_checks() {
 		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 .

diff --git a/www-client/chromium/files/chromium-77-gcc-alignas.patch b/www-client/chromium/files/chromium-77-gcc-alignas.patch
new file mode 100644
index 00000000000..3693ef50bed
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-gcc-alignas.patch
@@ -0,0 +1,72 @@
+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*,


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

commit:     6b89e0d09ed3f133a3ae77bf46a0fe7bcdbc092e
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sat Sep 28 18:08:47 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Sep 29 21:23:59 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b89e0d0

www-client/chromium: beta channel bump (78.0.3904.34)

Closes: https://bugs.gentoo.org/694896
Closes: https://github.com/gentoo/gentoo/pull/13077
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                       |  4 +-
 ....3887.7.ebuild => chromium-78.0.3904.34.ebuild} | 18 ++++-
 .../files/chromium-78-gcc-enum-range.patch         | 46 ++++++++++++
 .../chromium/files/chromium-78-gcc-noexcept.patch  | 32 ++++++++
 .../files/chromium-78-gcc-std-vector.patch         | 87 ++++++++++++++++++++++
 .../chromium/files/chromium-78-include.patch       | 32 +++++---
 .../chromium/files/chromium-unbundle-zlib-r1.patch | 13 ++++
 7 files changed, 217 insertions(+), 15 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8b478908b01..673fdc0d93b 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,4 @@
 DIST chromium-77.0.3865.90.tar.xz 729551228 BLAKE2B 865a40a7fa7d6a0b2de137249f7f14dad32b30cb0099fccc0d21570a2488834c5ab6504ef7c63f334e5d798de5391d6e96beaa49009caecb178d898e27317d89 SHA512 8b343c6ccc798c74cca8d5d41285153ace917da28360192afb21925c103ba425a4045f75c589f73a8c5c75bd1bbca44bfae1a4b96e9b7a97636d9929c7961bbc
-DIST chromium-78.0.3887.7.tar.xz 737057024 BLAKE2B b4754f1fa9a243c29e83d6136494c6db1726a6d3f23013115a4a576428f7ca3c0fcd3f81cf7fe4037f2c3e6901b3fce015aeed7b7b945b4a3e368f2e6fb9afa1 SHA512 9b8eb33c6f19e5b247372e19a61ec1ae6c804bd7b9731222430e2e1b585146fc543a686ccfc9553d6d137999570c544cdb45696db6ce50c38dfead1b0760c1a4
+DIST chromium-78-revert-noexcept.patch 69206 BLAKE2B c0cbcd9cf4ca1d22afb0deb90ca0e208abc4853ec0430ded105c76488af38df7fba696531a1b597efb8ffe3f8c9352bf47bfc364db3ffff0f6ccb726bb7e1f94 SHA512 13ab086b40f246fd7397c3f44663e69dd3c996beb657d7c06d1af0730be90135c1097ec555e384a76add4034f69e8bfe23de4d69900df4c67dc6b383d6c3708d
+DIST chromium-78-revert-pm-observer.patch 22149 BLAKE2B d0169db31948a0a11930d23dbb1fd6573525218a795fe57702cdc6bfef87ce3ab856f8429f5bc9751bf6c96750ad3ed16ce22a4e8be1c57a183da30ca4b56d84 SHA512 68b4558226264aa04af265f7fd42c7319f1cd483d249ad53244efa9d640d99bfb97d39aa8a3e395e1ece4384092b21f7c27d635bc0f3a9f0ba6ddd2f38f4dbae
+DIST chromium-78.0.3904.34.tar.xz 741873348 BLAKE2B 4cf6d35548a41c44dca3dbf9275ac1fe09e6ce3108b7b4bc3b90034e4780456ae399ea368ed67ef3cce9cd3b00265ddfd765da837214a51437d333c288ba1e7e SHA512 d1c7b75fc2b4e5acbb89f9044a87e678db4ad99e805448716daf0227d8760b02d08b090ff3dbbb2f3aad5f7a1c488a59345cf209cb609cca6781b8e3353e1f32

diff --git a/www-client/chromium/chromium-78.0.3887.7.ebuild b/www-client/chromium/chromium-78.0.3904.34.ebuild
similarity index 97%
rename from www-client/chromium/chromium-78.0.3887.7.ebuild
rename to www-client/chromium/chromium-78.0.3904.34.ebuild
index e8fb43a9ec7..2e268516462 100644
--- a/www-client/chromium/chromium-78.0.3887.7.ebuild
+++ b/www-client/chromium/chromium-78.0.3904.34.ebuild
@@ -12,7 +12,10 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 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"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+	https://dev.gentoo.org/~floppym/dist/chromium-78-revert-noexcept.patch
+	https://dev.gentoo.org/~floppym/dist/chromium-78-revert-pm-observer.patch
+"
 
 LICENSE="BSD"
 SLOT="0"
@@ -143,11 +146,16 @@ 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-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"
+	"${DISTDIR}/chromium-78-revert-noexcept.patch"
+	"${DISTDIR}/chromium-78-revert-pm-observer.patch"
+	"${FILESDIR}/chromium-78-gcc-enum-range.patch"
+	"${FILESDIR}/chromium-78-gcc-std-vector.patch"
+	"${FILESDIR}/chromium-78-gcc-noexcept.patch"
 )
 
 pre_build_checks() {
@@ -191,7 +199,7 @@ src_prepare() {
 
 	local keeplibs=(
 		base/third_party/cityhash
-		base/third_party/dmg_fp
+		base/third_party/double_conversion
 		base/third_party/dynamic_annotations
 		base/third_party/icu
 		base/third_party/nspr
@@ -259,6 +267,7 @@ src_prepare() {
 		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
@@ -414,6 +423,7 @@ src_configure() {
 		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

diff --git a/www-client/chromium/files/chromium-78-gcc-enum-range.patch b/www-client/chromium/files/chromium-78-gcc-enum-range.patch
new file mode 100644
index 00000000000..9c15e954b4e
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-enum-range.patch
@@ -0,0 +1,46 @@
+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
new file mode 100644
index 00000000000..8ddb53fe82d
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-noexcept.patch
@@ -0,0 +1,32 @@
+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
new file mode 100644
index 00000000000..cf1abf06b5a
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-gcc-std-vector.patch
@@ -0,0 +1,87 @@
+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-include.patch b/www-client/chromium/files/chromium-78-include.patch
index a0b77c4fb9d..224aa3b3519 100644
--- a/www-client/chromium/files/chromium-78-include.patch
+++ b/www-client/chromium/files/chromium-78-include.patch
@@ -1,13 +1,25 @@
-diff --git a/components/password_manager/core/browser/leak_detection/encryption_utils.cc b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
-index 31a7116..53eb464 100644
---- a/components/password_manager/core/browser/leak_detection/encryption_utils.cc
-+++ b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
-@@ -13,6 +13,8 @@
- #include "crypto/sha2.h"
- #include "third_party/boringssl/src/include/openssl/evp.h"
+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 <climits>
++#include <memory>
 +
- namespace password_manager {
+ #include "base/optional.h"
+ #include "third_party/blink/public/platform/web_common.h"
  
- namespace {

diff --git a/www-client/chromium/files/chromium-unbundle-zlib-r1.patch b/www-client/chromium/files/chromium-unbundle-zlib-r1.patch
new file mode 100644
index 00000000000..951a2adb196
--- /dev/null
+++ b/www-client/chromium/files/chromium-unbundle-zlib-r1.patch
@@ -0,0 +1,13 @@
+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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2019-09-25 16:20 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2019-09-25 16:20 UTC (permalink / raw
  To: gentoo-commits

commit:     cc11cb74daecc797998dac882fd4d32cb1ddf784
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Sep 25 10:20:14 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Sep 25 16:19:31 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc11cb74

www-client/chromium: fix building with pulseaudio-13

Bug: https://bugs.gentoo.org/694896
Closes: https://github.com/gentoo/gentoo/pull/13035
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/chromium-77.0.3865.90.ebuild   |  1 +
 .../chromium/files/chromium-77-pulseaudio-13.patch | 82 ++++++++++++++++++++++
 2 files changed, 83 insertions(+)

diff --git a/www-client/chromium/chromium-77.0.3865.90.ebuild b/www-client/chromium/chromium-77.0.3865.90.ebuild
index 7c8ae108507..a22e92ceac2 100644
--- a/www-client/chromium/chromium-77.0.3865.90.ebuild
+++ b/www-client/chromium/chromium-77.0.3865.90.ebuild
@@ -144,6 +144,7 @@ PATCHES=(
 	"${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"

diff --git a/www-client/chromium/files/chromium-77-pulseaudio-13.patch b/www-client/chromium/files/chromium-77-pulseaudio-13.patch
new file mode 100644
index 00000000000..892a3183c9d
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-pulseaudio-13.patch
@@ -0,0 +1,82 @@
+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
+ }


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

commit:     f4b625dd30a5feb33881ed004c951f31713b14a6
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 15 22:50:38 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Sep 15 22:50:38 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4b625dd

www-client/chromium: remove old

Bug: https://bugs.gentoo.org/694002
Package-Manager: Portage-2.3.75_p7, Repoman-2.3.17_p49
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-arm64-skia.patch    |  41 --
 .../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 ----
 .../chromium/files/chromium-76-no-cups.patch       |  41 --
 www-client/chromium/files/chromium-76-quiche.patch | 239 -------
 16 files changed, 1949 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index db4981117b9..233558cf3c7 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,2 @@
-DIST chromium-76.0.3809.132.tar.xz 728899912 BLAKE2B 725513b659f613c5827f5e847dde8c5ea448adb3a3d5561312ad05d54293c72150b010e6c804fb17be22882e4c87f2ebcdd40d08dbd601d78573678fd9d195c9 SHA512 e267d4a975fdcc33125d8fed1597e2dc8ec37a78ee2f9a4e03a1aaf6b83b594b444280b7f2ee68b41d227e7daf31b9de91ab2f998f9146613ebd50651c0d16e8
 DIST chromium-77.0.3865.75.tar.xz 733233852 BLAKE2B e39856418a4dc0bcc690e0748781fd6d2395b2908d06616d44c76f5923d08f9ccd0cb1793447970302a47da631244aa96c7cf4d3df8cbd89fb3271badf163873 SHA512 7ab5103d75ddaeded69b63110a4ce401f4773017981eb2abaa650cc8a0c013323f7cd4beb19b6bfb6b0542a0269d86f6274da302b3b25d662c7a945f6d17f5d6
 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
deleted file mode 100644
index 89e2260d169..00000000000
--- a/www-client/chromium/chromium-76.0.3809.132.ebuild
+++ /dev/null
@@ -1,720 +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.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-arm64-skia.patch b/www-client/chromium/files/chromium-76-arm64-skia.patch
deleted file mode 100644
index 8a44235c803..00000000000
--- a/www-client/chromium/files/chromium-76-arm64-skia.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-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)

diff --git a/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch b/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch
deleted file mode 100644
index 587abf31bb7..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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
deleted file mode 100644
index 26bba05aa92..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-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
deleted file mode 100644
index bae3edec89d..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-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
deleted file mode 100644
index 1d4b90febf6..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-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
deleted file mode 100644
index 3bf394f92d9..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-gl-init.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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
deleted file mode 100644
index adc7f3ab3ac..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-include.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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
deleted file mode 100644
index 2a7f4b35a72..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-noexcept.patch
+++ /dev/null
@@ -1,347 +0,0 @@
-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
deleted file mode 100644
index bc0ed980fd3..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-private.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index 3d34e436a28..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-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.

diff --git a/www-client/chromium/files/chromium-76-gcc-uint32.patch b/www-client/chromium/files/chromium-76-gcc-uint32.patch
deleted file mode 100644
index 5e392e6a6e5..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-uint32.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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
deleted file mode 100644
index cf93bce63e9..00000000000
--- a/www-client/chromium/files/chromium-76-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-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-no-cups.patch b/www-client/chromium/files/chromium-76-no-cups.patch
deleted file mode 100644
index 28732c2b431..00000000000
--- a/www-client/chromium/files/chromium-76-no-cups.patch
+++ /dev/null
@@ -1,41 +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-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
- }
-

diff --git a/www-client/chromium/files/chromium-76-quiche.patch b/www-client/chromium/files/chromium-76-quiche.patch
deleted file mode 100644
index f3aa42aa304..00000000000
--- a/www-client/chromium/files/chromium-76-quiche.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-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 {


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

commit:     32078ebc5c7fd360d342e3a974af95f4c25fcf40
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Fri Aug 23 07:59:48 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Aug 23 14:05:14 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=32078ebc

www-client/chromium: beta channel bump to 77.0.3865.42

Also add patch to fix a crash when cups is disabled.

Bug: https://bugs.gentoo.org/691354
Closes: https://github.com/gentoo/gentoo/pull/12770
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 +-
 ...3865.35.ebuild => chromium-77.0.3865.42.ebuild} |  1 +
 .../chromium/files/chromium-77-gcc-include.patch   | 30 ----------------
 .../chromium/files/chromium-77-no-cups.patch       | 42 ++++++++++++++++++++++
 4 files changed, 44 insertions(+), 31 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a9c13c52880..99a63a6b936 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-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-77.0.3865.35.ebuild b/www-client/chromium/chromium-77.0.3865.42.ebuild
similarity index 99%
rename from www-client/chromium/chromium-77.0.3865.35.ebuild
rename to www-client/chromium/chromium-77.0.3865.42.ebuild
index 8dafa2ccfc0..8e372c62324 100644
--- a/www-client/chromium/chromium-77.0.3865.35.ebuild
+++ b/www-client/chromium/chromium-77.0.3865.42.ebuild
@@ -151,6 +151,7 @@ PATCHES=(
 	"${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"
 )

diff --git a/www-client/chromium/files/chromium-77-gcc-include.patch b/www-client/chromium/files/chromium-77-gcc-include.patch
index f46403992c1..391f48fd2d9 100644
--- a/www-client/chromium/files/chromium-77-gcc-include.patch
+++ b/www-client/chromium/files/chromium-77-gcc-include.patch
@@ -24,33 +24,3 @@ index 7f8d15b..a8cd0ab 100644
  #include "low_pass_filter.h"
  
  namespace one_euro_filter {
-
-From 258f5f182f8dd72f727af26e614794c67a5996e6 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena@lge.com>
-Date: Fri, 26 Jul 2019 15:17:54 +0000
-Subject: [PATCH] IWYU: ScopedObserver of TabStripModel requires it to be included
-
-Build with GCC and libstdc++ is failing in files using tab_sharing_ui.h
-as it has a ScopedObserver of a TabStripModel without including it
-in advance.
-
-Bug: 819294
-Change-Id: I4b12073484f65ad2bb873119daa748245296d282
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713526
-Reviewed-by: Guido Urdaneta <guidou@chromium.org>
-Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
-Cr-Commit-Position: refs/heads/master@{#681290}
----
-
-diff --git a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
-index 6d931129..147868f 100644
---- a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
-+++ b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
-@@ -14,6 +14,7 @@
- #include "base/strings/string16.h"
- #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
- #include "chrome/browser/ui/browser_list_observer.h"
-+#include "chrome/browser/ui/tabs/tab_strip_model.h"
- #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
- #include "components/infobars/core/infobar_manager.h"
- #include "content/public/browser/desktop_media_id.h"

diff --git a/www-client/chromium/files/chromium-77-no-cups.patch b/www-client/chromium/files/chromium-77-no-cups.patch
new file mode 100644
index 00000000000..ac714178ed3
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-no-cups.patch
@@ -0,0 +1,42 @@
+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
+ }
+


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

commit:     ce201e2e6931f3499c5b05911681fbf994530832
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Aug 15 06:53:32 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Aug 15 14:50:08 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce201e2e

www-client/chromium: dev channel bump to 78.0.3880.4

Closes: https://bugs.gentoo.org/684550
Closes: https://github.com/gentoo/gentoo/pull/12712
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.3876.0.ebuild => chromium-78.0.3880.4.ebuild} | 13 ++++++++++-
 .../files/chromium-78-const-std-string.patch       | 26 ++++++++++++++++++++++
 .../chromium/files/chromium-78-include.patch       | 13 +++++++++++
 4 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1dbf913705b..0d8d5bc4929 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.19.tar.xz 733147416 BLAKE2B 6dc8827876c25ad43a97d1297a2a93681a5895c32f31605896eb7ca2cad22e1b192958330167a74243a61a4ce88dd21dfb21e820d717a8c44baaf084fe73f0a2 SHA512 7f4413c4a63351fc44efaae1a5803be3019dcf59541ef306bcc13b22436dc1dc7b968d4f2eb6906bc1ec5db8dd669fa5fd45da2d4240ee6029e337e63d3f25ed
-DIST chromium-78.0.3876.0.tar.xz 734181968 BLAKE2B 8f9d368718dec697f8e1d5fb850739395247c65fd1cfe9a420c46ea2254a97c54893a0fec9a3366b3b0a62720ea20d5f090f7edde3503cca1d2fd725aae6bbd1 SHA512 9b0b71a4084db3e5ceedea5eaa1173e168e73ace3215ca2cc37309b6cd7150ed6dc63d2ec43387d305a4340036988493f1644db354c620bc80a02b97ec3e0315
+DIST chromium-78.0.3880.4.tar.xz 734959036 BLAKE2B e93497cdc00c123f31b98be87c2b4c7e4e7ac18fdddf15e9c4ba6c08c89386c38f9451e432a8365cc6e1a47af244ba8d10da94acca3f108c0993f993b47a18b6 SHA512 4adf66caca7565c17571b2c9056acac3b1edbcf29ad9f8937cde241406242f4e30ac361047dddf2a60f4319245698d6872a24eae0374a142d13e3fea0c5b12ea

diff --git a/www-client/chromium/chromium-78.0.3876.0.ebuild b/www-client/chromium/chromium-78.0.3880.4.ebuild
similarity index 98%
rename from www-client/chromium/chromium-78.0.3876.0.ebuild
rename to www-client/chromium/chromium-78.0.3880.4.ebuild
index afcf4ae1816..72de8e0f371 100644
--- a/www-client/chromium/chromium-78.0.3876.0.ebuild
+++ b/www-client/chromium/chromium-78.0.3880.4.ebuild
@@ -148,8 +148,9 @@ PATCHES=(
 	"${FILESDIR}/chromium-77-fix-gn-gen.patch"
 	"${FILESDIR}/chromium-77-system-icu.patch"
 	"${FILESDIR}/chromium-77-clang.patch"
-	"${FILESDIR}/chromium-77-std-string.patch"
 	"${FILESDIR}/chromium-77-blink-include.patch"
+	"${FILESDIR}/chromium-78-const-std-string.patch"
+	"${FILESDIR}/chromium-78-include.patch"
 )
 
 pre_build_checks() {
@@ -322,6 +323,7 @@ src_prepare() {
 		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
@@ -622,6 +624,12 @@ src_compile() {
 	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() {
@@ -700,6 +708,9 @@ src_install() {
 	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
+
 	readme.gentoo_create_doc
 }
 

diff --git a/www-client/chromium/files/chromium-78-const-std-string.patch b/www-client/chromium/files/chromium-78-const-std-string.patch
new file mode 100644
index 00000000000..e16377aff41
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-const-std-string.patch
@@ -0,0 +1,26 @@
+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;

diff --git a/www-client/chromium/files/chromium-78-include.patch b/www-client/chromium/files/chromium-78-include.patch
new file mode 100644
index 00000000000..a0b77c4fb9d
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-include.patch
@@ -0,0 +1,13 @@
+diff --git a/components/password_manager/core/browser/leak_detection/encryption_utils.cc b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
+index 31a7116..53eb464 100644
+--- a/components/password_manager/core/browser/leak_detection/encryption_utils.cc
++++ b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
+@@ -13,6 +13,8 @@
+ #include "crypto/sha2.h"
+ #include "third_party/boringssl/src/include/openssl/evp.h"
+ 
++#include <climits>
++
+ namespace password_manager {
+ 
+ namespace {


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

commit:     2b2f3711e28dc00598ec485731b3c3f4886afb42
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Aug 13 07:19:33 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Aug 13 15:19:25 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b2f3711

www-client/chromium: beta channel bump to 77.0.3865.19

Closes: https://bugs.gentoo.org/691834
Closes: https://github.com/gentoo/gentoo/pull/12689
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 +-
 ...3865.10.ebuild => chromium-77.0.3865.19.ebuild} |  1 +
 .../chromium/files/chromium-77-blink-include.patch | 28 ++++++++++++++++++++
 .../chromium/files/chromium-77-gcc-include.patch   | 30 ++++++++++++++++++++++
 4 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index acf7b4a3c1c..c348c8120cb 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-76.0.3809.87.tar.xz 728890984 BLAKE2B d09b6b4dd84d6e2ad6a24602296bfab99294ca09c21553312fa55979eb308d1b3a42cc0e31b4e619cd19c0dfc38dda89bca3b5d2787a96b8836d720f0763f124 SHA512 f237cb794bff68cbc2ea3daadea2852df810543873ceaefa4be901702b3578ce7b23a0f083b76373de20e60ea2dc1245c58de0888fb6c72ca465bca0ee0e7c1a
-DIST chromium-77.0.3865.10.tar.xz 733122900 BLAKE2B 23b3cf4b8d4ab8e99d2a1ed0ef56c40faaea64f74c359d56e3140c33f1cff5954d73077c0c48851bc6da332b7131770ab2379c5229d674021b7a0596f7c5e8c5 SHA512 d1d76accae2b7877b2ef6b5544b8aee074d55c36e67ff5816a5ddd48a7b7af77d8467341d2a410e899ea0d7e29bcfffd3887460482a3fb6e77ed31888d31f293
+DIST chromium-77.0.3865.19.tar.xz 733147416 BLAKE2B 6dc8827876c25ad43a97d1297a2a93681a5895c32f31605896eb7ca2cad22e1b192958330167a74243a61a4ce88dd21dfb21e820d717a8c44baaf084fe73f0a2 SHA512 7f4413c4a63351fc44efaae1a5803be3019dcf59541ef306bcc13b22436dc1dc7b968d4f2eb6906bc1ec5db8dd669fa5fd45da2d4240ee6029e337e63d3f25ed

diff --git a/www-client/chromium/chromium-77.0.3865.10.ebuild b/www-client/chromium/chromium-77.0.3865.19.ebuild
similarity index 99%
rename from www-client/chromium/chromium-77.0.3865.10.ebuild
rename to www-client/chromium/chromium-77.0.3865.19.ebuild
index 3e45bdcca35..ad17799de88 100644
--- a/www-client/chromium/chromium-77.0.3865.10.ebuild
+++ b/www-client/chromium/chromium-77.0.3865.19.ebuild
@@ -149,6 +149,7 @@ PATCHES=(
 	"${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-gcc-abstract.patch"
 	"${FILESDIR}/chromium-77-gcc-include.patch"

diff --git a/www-client/chromium/files/chromium-77-blink-include.patch b/www-client/chromium/files/chromium-77-blink-include.patch
new file mode 100644
index 00000000000..3ac1770fb8e
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-blink-include.patch
@@ -0,0 +1,28 @@
+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-gcc-include.patch b/www-client/chromium/files/chromium-77-gcc-include.patch
index 391f48fd2d9..f46403992c1 100644
--- a/www-client/chromium/files/chromium-77-gcc-include.patch
+++ b/www-client/chromium/files/chromium-77-gcc-include.patch
@@ -24,3 +24,33 @@ index 7f8d15b..a8cd0ab 100644
  #include "low_pass_filter.h"
  
  namespace one_euro_filter {
+
+From 258f5f182f8dd72f727af26e614794c67a5996e6 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 26 Jul 2019 15:17:54 +0000
+Subject: [PATCH] IWYU: ScopedObserver of TabStripModel requires it to be included
+
+Build with GCC and libstdc++ is failing in files using tab_sharing_ui.h
+as it has a ScopedObserver of a TabStripModel without including it
+in advance.
+
+Bug: 819294
+Change-Id: I4b12073484f65ad2bb873119daa748245296d282
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713526
+Reviewed-by: Guido Urdaneta <guidou@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#681290}
+---
+
+diff --git a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
+index 6d931129..147868f 100644
+--- a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
++++ b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
+@@ -14,6 +14,7 @@
+ #include "base/strings/string16.h"
+ #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
+ #include "chrome/browser/ui/browser_list_observer.h"
++#include "chrome/browser/ui/tabs/tab_strip_model.h"
+ #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
+ #include "components/infobars/core/infobar_manager.h"
+ #include "content/public/browser/desktop_media_id.h"


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

commit:     7b0860b09b2c5c83f52b4308e389521706ec0c19
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Jul 17 10:45:21 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Jul 17 14:39:16 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b0860b0

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/689944
Closes: https://github.com/gentoo/gentoo/pull/12460
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-75.0.3770.90.ebuild | 706 -----------------------
 www-client/chromium/files/chromium-75-lss.patch  |  63 --
 3 files changed, 770 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 065ebc99a1b..e1365fa3d6e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,2 @@
 DIST chromium-75.0.3770.142.tar.xz 709968204 BLAKE2B 0e3456127796e7580c50edc0dc16c6989108837a380c96704c96bbd14b042f6d7059dc082a099a7f7752b3b3c6c072e9e9ecc89f3528b914f13a4a923a4488dd SHA512 89534fafe06281cf8ac328f7a17c192f4a03cbc8e6b410626ea2e7993231b4ba195b4190a3f183fad63a03602df7b763a776f10802b1330c737f0249bf17a792
-DIST chromium-75.0.3770.90.tar.xz 708212580 BLAKE2B e52149e8eea0734ec2704f176fed1911e6252cb0dab76894dcece7c826a0581e099b58e638324b115aecf61f26884ffdb8d5ea1c820bf0df2f49dbab1986d3f4 SHA512 5956ad1cf342f143c0587299bdd5497acfc958975e5b4878731c40e0e5db58280ea8b36ca077cafce7e812510356de57872f37753cb92de5258cb24578d2c327
 DIST chromium-76.0.3809.62.tar.xz 728909368 BLAKE2B 940817ccbc40ddde29123ecbcc3d3148a9df82a18a3f13470ed9d0964b147c859be7a1e79229b67fe9c7e5087f3fbd5048aac2f001a97e9040ce2346247a3af6 SHA512 603815fb93c1629421fc866cbf63e8c94bdbe582e0c4a9c9c2da76173f3d44b4dae1e81fac054d3268b20bfa057aed96eca1c5d4b7ef5b608b8c9ee60684e886

diff --git a/www-client/chromium/chromium-75.0.3770.90.ebuild b/www-client/chromium/chromium-75.0.3770.90.ebuild
deleted file mode 100644
index 9c3b42da6d7..00000000000
--- a/www-client/chromium/chromium-75.0.3770.90.ebuild
+++ /dev/null
@@ -1,706 +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(-)] )
-"
-# 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-r9.patch"
-	"${FILESDIR}/chromium-widevine-r4.patch"
-	"${FILESDIR}/chromium-fix-char_traits.patch"
-	"${FILESDIR}/chromium-75-fix-gn-gen.patch"
-	"${FILESDIR}/chromium-75-gcc-angle-fix.patch"
-	"${FILESDIR}/chromium-75-unique_ptr.patch"
-	"${FILESDIR}/chromium-75-lss.patch"
-	"${FILESDIR}/chromium-75-noexcept.patch"
-	"${FILESDIR}/chromium-75-llvm8.patch"
-	"${FILESDIR}/chromium-75-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="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/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-lss.patch b/www-client/chromium/files/chromium-75-lss.patch
deleted file mode 100644
index feeeaee8e83..00000000000
--- a/www-client/chromium/files/chromium-75-lss.patch
+++ /dev/null
@@ -1,63 +0,0 @@
---- a/third_party/lss/BUILD.gn
-+++ b/third_party/lss/BUILD.gn
-@@ -0,0 +1,31 @@
-+# Copyright 2019 The Crashpad Authors. All rights reserved.
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+#     http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+# See the License for the specific language governing permissions and
-+# limitations under the License.
-+
-+import("../../build/crashpad_buildconfig.gni")
-+
-+config("lss_config") {
-+  if (crashpad_is_in_chromium) {
-+    defines = [ "CRASHPAD_LSS_SOURCE_EXTERNAL" ]
-+  } else {
-+    defines = [ "CRASHPAD_LSS_SOURCE_EMBEDDED" ]
-+  }
-+}
-+
-+source_set("lss") {
-+  public_configs = [ ":lss_config" ]
-+
-+  sources = [
-+    "lss.h",
-+  ]
-+}
---- a/third_party/lss/lss.h
-+++ b/third_party/lss/lss.h
-@@ -0,0 +1,26 @@
-+// Copyright 2019 The Crashpad Authors. All rights reserved.
-+//
-+// Licensed under the Apache License, Version 2.0 (the "License");
-+// you may not use this file except in compliance with the License.
-+// You may obtain a copy of the License at
-+//
-+//     http://www.apache.org/licenses/LICENSE-2.0
-+//
-+// Unless required by applicable law or agreed to in writing, software
-+// distributed under the License is distributed on an "AS IS" BASIS,
-+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+// See the License for the specific language governing permissions and
-+// limitations under the License.
-+
-+#ifndef CRASHPAD_THIRD_PARTY_LSS_LSS_H_
-+#define CRASHPAD_THIRD_PARTY_LSS_LSS_H_
-+
-+#if defined(CRASHPAD_LSS_SOURCE_EXTERNAL)
-+#include "third_party/lss/linux_syscall_support.h"
-+#elif defined(CRASHPAD_LSS_SOURCE_EMBEDDED)
-+#include "third_party/lss/lss/linux_syscall_support.h"
-+#else
-+#error Unknown lss source
-+#endif
-+
-+#endif  // CRASHPAD_THIRD_PARTY_LSS_LSS_H_


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

commit:     b0a85d55fb29fb948a90be36282f089722ca4775
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Mon Jul  1 09:48:19 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Jul  3 17:43:44 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0a85d55

www-client/chromium: add patch to fix random crash in stable channel

See https://bugs.chromium.org/p/chromium/issues/detail?id=977786 for
more details.

Closes https://github.com/gentoo/gentoo/pull/12366
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>

 ...100.ebuild => chromium-75.0.3770.100-r1.ebuild} |  1 +
 .../files/chromium-75-post-task-crash.patch        | 52 ++++++++++++++++++++++
 2 files changed, 53 insertions(+)

diff --git a/www-client/chromium/chromium-75.0.3770.100.ebuild b/www-client/chromium/chromium-75.0.3770.100-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-75.0.3770.100.ebuild
rename to www-client/chromium/chromium-75.0.3770.100-r1.ebuild
index 20bf2709a39..7ed2919d5f8 100644
--- a/www-client/chromium/chromium-75.0.3770.100.ebuild
+++ b/www-client/chromium/chromium-75.0.3770.100-r1.ebuild
@@ -151,6 +151,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-75-noexcept.patch"
 	"${FILESDIR}/chromium-75-llvm8.patch"
 	"${FILESDIR}/chromium-75-pure-virtual.patch"
+	"${FILESDIR}/chromium-75-post-task-crash.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-75-post-task-crash.patch b/www-client/chromium/files/chromium-75-post-task-crash.patch
new file mode 100644
index 00000000000..5cc97559d30
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-post-task-crash.patch
@@ -0,0 +1,52 @@
+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


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

commit:     3eee04ec34c03a7fc6f374d9551d330262a65924
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Jun 25 06:24:52 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Jun 25 14:57:50 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3eee04ec

www-client/chromium: drop lss patch

Closes: https://github.com/gentoo/gentoo/pull/12324
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 |  2 +-
 www-client/chromium/chromium-76.0.3809.36.ebuild  |  2 +-
 www-client/chromium/files/chromium-76-lss.patch   | 39 -----------------------
 3 files changed, 2 insertions(+), 41 deletions(-)

diff --git a/www-client/chromium/chromium-75.0.3770.100.ebuild b/www-client/chromium/chromium-75.0.3770.100.ebuild
index 5d8ef6d0268..20bf2709a39 100644
--- a/www-client/chromium/chromium-75.0.3770.100.ebuild
+++ b/www-client/chromium/chromium-75.0.3770.100.ebuild
@@ -148,7 +148,6 @@ PATCHES=(
 	"${FILESDIR}/chromium-75-fix-gn-gen.patch"
 	"${FILESDIR}/chromium-75-gcc-angle-fix.patch"
 	"${FILESDIR}/chromium-75-unique_ptr.patch"
-	"${FILESDIR}/chromium-75-lss.patch"
 	"${FILESDIR}/chromium-75-noexcept.patch"
 	"${FILESDIR}/chromium-75-llvm8.patch"
 	"${FILESDIR}/chromium-75-pure-virtual.patch"
@@ -252,6 +251,7 @@ src_prepare() {
 		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

diff --git a/www-client/chromium/chromium-76.0.3809.36.ebuild b/www-client/chromium/chromium-76.0.3809.36.ebuild
index 2327e60f3ce..f785c3c3110 100644
--- a/www-client/chromium/chromium-76.0.3809.36.ebuild
+++ b/www-client/chromium/chromium-76.0.3809.36.ebuild
@@ -146,7 +146,6 @@ PATCHES=(
 	"${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"
 	"${FILESDIR}/chromium-76-gcc-private.patch"
 	"${FILESDIR}/chromium-76-gcc-noexcept.patch"
@@ -262,6 +261,7 @@ src_prepare() {
 		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

diff --git a/www-client/chromium/files/chromium-76-lss.patch b/www-client/chromium/files/chromium-76-lss.patch
deleted file mode 100644
index 4d475b53958..00000000000
--- a/www-client/chromium/files/chromium-76-lss.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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 {
- 


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

commit:     12f7137d8a7c20d00b6756d12cbd7b0ec1b36c28
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Jun 16 13:39:08 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jun 16 23:34:32 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12f7137d

www-client/chromium: security cleanup

Bug: https://bugs.gentoo.org/684272
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                       |   2 -
 www-client/chromium/chromium-73.0.3683.75.ebuild   | 717 --------------------
 www-client/chromium/chromium-73.0.3683.86.ebuild   | 718 ---------------------
 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 --
 www-client/chromium/files/chromium-73-gcc-6.patch  |  88 ---
 .../files/chromium-73-xdg-current-desktop.patch    | 124 ----
 .../chromium/files/chromium-compiler-r7.patch      | 176 -----
 12 files changed, 2276 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index cbfa38fd4fc..4d0c3af813a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,3 @@
-DIST chromium-73.0.3683.75.tar.xz 710439908 BLAKE2B 23ed7facf2f67e9bbfc2f1baf434892773d9d63dab10cebab350c3b0b2c75a07f84a4f677e01563a441cc3bae0d42212b3eb28b6d7c573b0137d25e478064a3b SHA512 52bd1dac782a2f7960eba48446d4dfc4c6c13c8e9de21bbee250fad2802beb222cff7bea9878c7338926030aa3aa7ffd2dd1238d35e261a0d766b2d9974fdaf6
-DIST chromium-73.0.3683.86.tar.xz 710449412 BLAKE2B 87b4d15440e88be506920813a52e7a503ac81458aa3f2818490c28f6bb5cfc0ca24b316072e5a0664a8bfe6444be23e565579bc232cdfcef42acf8eeca9f216f SHA512 5dd450640c1ea30f7941231e8c459aec0312c18e089b2c8b9104c4ee835a8fa389f5fb9b301b46d87ce260956eaf3e3bd6aff6ae54c279a303aa757537cace15
 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

diff --git a/www-client/chromium/chromium-73.0.3683.75.ebuild b/www-client/chromium/chromium-73.0.3683.75.ebuild
deleted file mode 100644
index 4584a772484..00000000000
--- a/www-client/chromium/chromium-73.0.3683.75.ebuild
+++ /dev/null
@@ -1,717 +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-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-r7.patch"
-	"${FILESDIR}/chromium-widevine-r4.patch"
-	"${FILESDIR}/chromium-fix-char_traits.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"
-	"${FILESDIR}/chromium-73-gcc-6.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/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-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"
-
-	# 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-73.0.3683.86.ebuild b/www-client/chromium/chromium-73.0.3683.86.ebuild
deleted file mode 100644
index 4d9ce8c95ae..00000000000
--- a/www-client/chromium/chromium-73.0.3683.86.ebuild
+++ /dev/null
@@ -1,718 +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-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-r7.patch"
-	"${FILESDIR}/chromium-widevine-r4.patch"
-	"${FILESDIR}/chromium-fix-char_traits.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"
-	"${FILESDIR}/chromium-73-gcc-6.patch"
-	"${FILESDIR}/chromium-73-xdg-current-desktop.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/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-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"
-
-	# 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
deleted file mode 100644
index 5a50700fd93..00000000000
--- a/www-client/chromium/files/chromium-73-gcc-0.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-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
deleted file mode 100644
index c3f8e42d061..00000000000
--- a/www-client/chromium/files/chromium-73-gcc-1.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-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
deleted file mode 100644
index 9d1f05a4d62..00000000000
--- a/www-client/chromium/files/chromium-73-gcc-2.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index 9cc6cf2fab6..00000000000
--- a/www-client/chromium/files/chromium-73-gcc-3.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-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
deleted file mode 100644
index df7d6301f7e..00000000000
--- a/www-client/chromium/files/chromium-73-gcc-4.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 033861e2bfb..00000000000
--- a/www-client/chromium/files/chromium-73-gcc-5.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-73-gcc-6.patch b/www-client/chromium/files/chromium-73-gcc-6.patch
deleted file mode 100644
index 3cd72ab318d..00000000000
--- a/www-client/chromium/files/chromium-73-gcc-6.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-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;

diff --git a/www-client/chromium/files/chromium-73-xdg-current-desktop.patch b/www-client/chromium/files/chromium-73-xdg-current-desktop.patch
deleted file mode 100644
index 09e3b1d2aec..00000000000
--- a/www-client/chromium/files/chromium-73-xdg-current-desktop.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-Correct the parsing of the XDG_CURRENT_DESKTOP
-
-The XDG_CURRENT_DESKTOP could contain multiple values in priority order
-separated by colon. Go through them in the loop and return on the first
-one that we recognize/support.
-
-The previous state was causing problems with Chrome on the GNOME Classic
-mode (used in Red Hat Enterprise Linux 7) where the users with multiple
-Google accounts set in Chrome couldn't switch between them - only one was
-shown in the account switcher in i.e. GMail. The reason for that was that
-the XDG_CURRENT_DESKTOP's value GNOME:GNOME-Classic was parsed as
-not as base::nix::DesktopEnvironment::DESKTOP_ENVIRONMENT_GNOME.
-
-base: :nix::DesktopEnvironment::DESKTOP_ENVIRONMENT_OTHER and
-Change-Id: I122f24fd1cf5a0f932c3fccd5220152a9944609d
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1541077
-Reviewed-by: Lei Zhang <thestig@chromium.org>
-Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
-Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
-Cr-Commit-Position: refs/heads/master@{#645224}
-diff --git a/base/nix/xdg_util.cc b/base/nix/xdg_util.cc
-index 9ff4d88..f051080 100644
---- a/base/nix/xdg_util.cc
-+++ b/base/nix/xdg_util.cc
-@@ -11,6 +11,7 @@
- #include "base/files/file_path.h"
- #include "base/files/file_util.h"
- #include "base/path_service.h"
-+#include "base/strings/string_split.h"
- #include "base/strings/string_util.h"
- #include "base/third_party/xdg_user_dirs/xdg_user_dir_lookup.h"
- 
-@@ -57,35 +58,37 @@
-   // XDG_CURRENT_DESKTOP is the newest standard circa 2012.
-   std::string xdg_current_desktop;
-   if (env->GetVar("XDG_CURRENT_DESKTOP", &xdg_current_desktop)) {
--    // Not all desktop environments set this env var as of this writing.
--    if (base::StartsWith(xdg_current_desktop, "Unity",
--                         base::CompareCase::SENSITIVE)) {
--      // gnome-fallback sessions set XDG_CURRENT_DESKTOP to Unity
--      // DESKTOP_SESSION can be gnome-fallback or gnome-fallback-compiz
--      std::string desktop_session;
--      if (env->GetVar("DESKTOP_SESSION", &desktop_session) &&
--          desktop_session.find("gnome-fallback") != std::string::npos) {
--        return DESKTOP_ENVIRONMENT_GNOME;
--      }
--      return DESKTOP_ENVIRONMENT_UNITY;
--    }
--    if (xdg_current_desktop == "GNOME")
--      return DESKTOP_ENVIRONMENT_GNOME;
--    if (xdg_current_desktop == "X-Cinnamon")
--      return DESKTOP_ENVIRONMENT_CINNAMON;
--    if (xdg_current_desktop == "KDE") {
--      std::string kde_session;
--      if (env->GetVar(kKDESessionEnvVar, &kde_session)) {
--        if (kde_session == "5") {
--          return DESKTOP_ENVIRONMENT_KDE5;
-+    // It could have multiple values separated by colon in priority order.
-+    for (const auto& value : SplitStringPiece(
-+             xdg_current_desktop, ":", TRIM_WHITESPACE, SPLIT_WANT_NONEMPTY)) {
-+      if (value == "Unity") {
-+        // gnome-fallback sessions set XDG_CURRENT_DESKTOP to Unity
-+        // DESKTOP_SESSION can be gnome-fallback or gnome-fallback-compiz
-+        std::string desktop_session;
-+        if (env->GetVar("DESKTOP_SESSION", &desktop_session) &&
-+            desktop_session.find("gnome-fallback") != std::string::npos) {
-+          return DESKTOP_ENVIRONMENT_GNOME;
-         }
-+        return DESKTOP_ENVIRONMENT_UNITY;
-       }
--      return DESKTOP_ENVIRONMENT_KDE4;
-+      if (value == "GNOME")
-+        return DESKTOP_ENVIRONMENT_GNOME;
-+      if (value == "X-Cinnamon")
-+        return DESKTOP_ENVIRONMENT_CINNAMON;
-+      if (value == "KDE") {
-+        std::string kde_session;
-+        if (env->GetVar(kKDESessionEnvVar, &kde_session)) {
-+          if (kde_session == "5") {
-+            return DESKTOP_ENVIRONMENT_KDE5;
-+          }
-+        }
-+        return DESKTOP_ENVIRONMENT_KDE4;
-+      }
-+      if (value == "Pantheon")
-+        return DESKTOP_ENVIRONMENT_PANTHEON;
-+      if (value == "XFCE")
-+        return DESKTOP_ENVIRONMENT_XFCE;
-     }
--    if (xdg_current_desktop == "Pantheon")
--      return DESKTOP_ENVIRONMENT_PANTHEON;
--    if (xdg_current_desktop == "XFCE")
--      return DESKTOP_ENVIRONMENT_XFCE;
-   }
- 
-   // DESKTOP_SESSION was what everyone used in 2010.
-diff --git a/base/nix/xdg_util_unittest.cc b/base/nix/xdg_util_unittest.cc
-index e195303..ad81836 100644
---- a/base/nix/xdg_util_unittest.cc
-+++ b/base/nix/xdg_util_unittest.cc
-@@ -34,6 +34,7 @@
- const char* const kDesktopXFCE = "xfce";
- const char* const kXdgDesktopCinnamon = "X-Cinnamon";
- const char* const kXdgDesktopGNOME = "GNOME";
-+const char* const kXdgDesktopGNOMEClassic = "GNOME:GNOME-Classic";
- const char* const kXdgDesktopKDE = "KDE";
- const char* const kXdgDesktopPantheon = "Pantheon";
- const char* const kXdgDesktopUnity = "Unity";
-@@ -110,6 +111,15 @@
-   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
- }
- 
-+TEST(XDGUtilTest, GetXdgDesktopGnomeClassic) {
-+  MockEnvironment getter;
-+  EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
-+  EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
-+      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopGNOMEClassic), Return(true)));
-+
-+  EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
-+}
-+
- TEST(XDGUtilTest, GetXdgDesktopGnomeFallback) {
-   MockEnvironment getter;
-   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));

diff --git a/www-client/chromium/files/chromium-compiler-r7.patch b/www-client/chromium/files/chromium-compiler-r7.patch
deleted file mode 100644
index dcf40a8be00..00000000000
--- a/www-client/chromium/files/chromium-compiler-r7.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From 6ba946c7116f4f1d0b35fc90716b6e940116b74b 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 | 62 +++++++++++-----------------------
- 1 file changed, 19 insertions(+), 43 deletions(-)
-
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 677003ac646c..f38bc908622a 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.
-@@ -1512,7 +1499,7 @@ config("chromium_code") {
-       defines = [ "_HAS_NODISCARD" ]
-     }
-   } else {
--    cflags = [ "-Wall" ]
-+    cflags = []
-     if (treat_warnings_as_errors) {
-       cflags += [ "-Werror" ]
- 
-@@ -1521,10 +1508,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.
-@@ -1533,22 +1516,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" ]
-@@ -1925,7 +1892,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) {
-@@ -1959,7 +1927,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.
-@@ -1982,7 +1951,8 @@ config("optimize_no_wpo") {
- }
- 
- # Turn off optimizations.
--config("no_optimize") {
-+config("no_optimize") { }
-+config("xno_optimize") {
-   if (is_win) {
-     cflags = [
-       "/Od",  # Disable optimization.
-@@ -2006,7 +1976,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:
-@@ -2053,7 +2024,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:
-@@ -2091,7 +2063,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" ]
-@@ -2193,7 +2166,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.
-@@ -2294,7 +2268,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 = []
-@@ -2337,7 +2312,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
-


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

commit:     6f888010c38c5e9cc25f66ada7681d443782c2c6
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Tue Jun 11 20:39:03 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Jun 15 17:48:06 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6f888010

www-client/chromium: version bump

Closes: https://bugs.gentoo.org/687732
Closes: https://github.com/gentoo/gentoo/pull/12242
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-75.0.3770.80.ebuild   | 718 +++++++++++++++++++++
 .../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 +
 www-client/chromium/files/chromium-75-lss.patch    |  63 ++
 .../chromium/files/chromium-75-noexcept.patch      | 101 +++
 .../chromium/files/chromium-75-pure-virtual.patch  |  50 ++
 .../chromium/files/chromium-75-unique_ptr.patch    |  31 +
 .../chromium/files/chromium-compiler-r9.patch      | 196 ++++++
 10 files changed, 1224 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 7d963e3ba36..a4d4755d99e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,3 +3,4 @@ DIST chromium-73.0.3683.86.tar.xz 710449412 BLAKE2B 87b4d15440e88be506920813a52e
 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.80.tar.xz 707985016 BLAKE2B ef206c6f04d7ee8423f45cfdcc24a9f2f1e9b5a315b954063a29449d25232e03138491eda9c59069fa443a80682f59644f977677fe9db14c9ae493ae792a21a9 SHA512 5837728d6cc5d062b3f605477747e844dcbdd9272cf313b739c0e471351d61a60ac6137a106d580f4e79ab69664e3976c6040c48e96565ef03ea4eb56c77dc3b

diff --git a/www-client/chromium/chromium-75.0.3770.80.ebuild b/www-client/chromium/chromium-75.0.3770.80.ebuild
new file mode 100644
index 00000000000..ebf3d3be40e
--- /dev/null
+++ b/www-client/chromium/chromium-75.0.3770.80.ebuild
@@ -0,0 +1,718 @@
+# 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.
+"
+
+PATCHES=(
+	"${FILESDIR}/chromium-compiler-r9.patch"
+	"${FILESDIR}/chromium-widevine-r4.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
+	"${FILESDIR}/chromium-75-fix-gn-gen.patch"
+	"${FILESDIR}/chromium-75-gcc-angle-fix.patch"
+	"${FILESDIR}/chromium-75-unique_ptr.patch"
+	"${FILESDIR}/chromium-75-lss.patch"
+	"${FILESDIR}/chromium-75-noexcept.patch"
+	"${FILESDIR}/chromium-75-llvm8.patch"
+	"${FILESDIR}/chromium-75-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="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/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"
+
+	# 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-75-fix-gn-gen.patch b/www-client/chromium/files/chromium-75-fix-gn-gen.patch
new file mode 100644
index 00000000000..a6a98b160d7
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-fix-gn-gen.patch
@@ -0,0 +1,27 @@
+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
new file mode 100644
index 00000000000..58447d73acb
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-gcc-angle-fix.patch
@@ -0,0 +1,20 @@
+--- 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
new file mode 100644
index 00000000000..f21445689bb
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-llvm8.patch
@@ -0,0 +1,17 @@
+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-lss.patch b/www-client/chromium/files/chromium-75-lss.patch
new file mode 100644
index 00000000000..feeeaee8e83
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-lss.patch
@@ -0,0 +1,63 @@
+--- a/third_party/lss/BUILD.gn
++++ b/third_party/lss/BUILD.gn
+@@ -0,0 +1,31 @@
++# Copyright 2019 The Crashpad Authors. All rights reserved.
++#
++# Licensed under the Apache License, Version 2.0 (the "License");
++# you may not use this file except in compliance with the License.
++# You may obtain a copy of the License at
++#
++#     http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++import("../../build/crashpad_buildconfig.gni")
++
++config("lss_config") {
++  if (crashpad_is_in_chromium) {
++    defines = [ "CRASHPAD_LSS_SOURCE_EXTERNAL" ]
++  } else {
++    defines = [ "CRASHPAD_LSS_SOURCE_EMBEDDED" ]
++  }
++}
++
++source_set("lss") {
++  public_configs = [ ":lss_config" ]
++
++  sources = [
++    "lss.h",
++  ]
++}
+--- a/third_party/lss/lss.h
++++ b/third_party/lss/lss.h
+@@ -0,0 +1,26 @@
++// Copyright 2019 The Crashpad Authors. All rights reserved.
++//
++// Licensed under the Apache License, Version 2.0 (the "License");
++// you may not use this file except in compliance with the License.
++// You may obtain a copy of the License at
++//
++//     http://www.apache.org/licenses/LICENSE-2.0
++//
++// Unless required by applicable law or agreed to in writing, software
++// distributed under the License is distributed on an "AS IS" BASIS,
++// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++// See the License for the specific language governing permissions and
++// limitations under the License.
++
++#ifndef CRASHPAD_THIRD_PARTY_LSS_LSS_H_
++#define CRASHPAD_THIRD_PARTY_LSS_LSS_H_
++
++#if defined(CRASHPAD_LSS_SOURCE_EXTERNAL)
++#include "third_party/lss/linux_syscall_support.h"
++#elif defined(CRASHPAD_LSS_SOURCE_EMBEDDED)
++#include "third_party/lss/lss/linux_syscall_support.h"
++#else
++#error Unknown lss source
++#endif
++
++#endif  // CRASHPAD_THIRD_PARTY_LSS_LSS_H_

diff --git a/www-client/chromium/files/chromium-75-noexcept.patch b/www-client/chromium/files/chromium-75-noexcept.patch
new file mode 100644
index 00000000000..bcac1c270d1
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-noexcept.patch
@@ -0,0 +1,101 @@
+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-pure-virtual.patch b/www-client/chromium/files/chromium-75-pure-virtual.patch
new file mode 100644
index 00000000000..3d34e436a28
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-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-75-unique_ptr.patch b/www-client/chromium/files/chromium-75-unique_ptr.patch
new file mode 100644
index 00000000000..08d2f243902
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-unique_ptr.patch
@@ -0,0 +1,31 @@
+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
new file mode 100644
index 00000000000..6b6c81b2c07
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r9.patch
@@ -0,0 +1,196 @@
+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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2019-05-28 20:45 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2019-05-28 20:45 UTC (permalink / raw
  To: gentoo-commits

commit:     9705ddaaa8b993425ddf53c4c7122f013a4af198
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue May 28 20:44:59 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue May 28 20:44:59 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9705ddaa

www-client/chromium: move large patches to DISTDIR

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

 www-client/chromium/Manifest                       |   2 +
 www-client/chromium/chromium-74.0.3729.169.ebuild  |   9 +-
 .../chromium/files/chromium-74-2f28731.patch       | 483 -----------------
 .../chromium/files/chromium-74-e1b1f3a.patch       | 587 ---------------------
 4 files changed, 8 insertions(+), 1073 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 891c6691a42..7d963e3ba36 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,5 @@
 DIST chromium-73.0.3683.75.tar.xz 710439908 BLAKE2B 23ed7facf2f67e9bbfc2f1baf434892773d9d63dab10cebab350c3b0b2c75a07f84a4f677e01563a441cc3bae0d42212b3eb28b6d7c573b0137d25e478064a3b SHA512 52bd1dac782a2f7960eba48446d4dfc4c6c13c8e9de21bbee250fad2802beb222cff7bea9878c7338926030aa3aa7ffd2dd1238d35e261a0d766b2d9974fdaf6
 DIST chromium-73.0.3683.86.tar.xz 710449412 BLAKE2B 87b4d15440e88be506920813a52e7a503ac81458aa3f2818490c28f6bb5cfc0ca24b316072e5a0664a8bfe6444be23e565579bc232cdfcef42acf8eeca9f216f SHA512 5dd450640c1ea30f7941231e8c459aec0312c18e089b2c8b9104c4ee835a8fa389f5fb9b301b46d87ce260956eaf3e3bd6aff6ae54c279a303aa757537cace15
+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

diff --git a/www-client/chromium/chromium-74.0.3729.169.ebuild b/www-client/chromium/chromium-74.0.3729.169.ebuild
index fd1b3c28994..74328f3a342 100644
--- a/www-client/chromium/chromium-74.0.3729.169.ebuild
+++ b/www-client/chromium/chromium-74.0.3729.169.ebuild
@@ -12,7 +12,10 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
 
 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"
+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"
@@ -142,9 +145,9 @@ PATCHES=(
 	"${FILESDIR}"/chromium-compiler-r8.patch
 	"${FILESDIR}"/chromium-widevine-r4.patch
 	"${FILESDIR}"/chromium-fix-char_traits.patch
-	"${FILESDIR}"/chromium-74-e1b1f3a.patch
+	"${DISTDIR}"/chromium-74-e1b1f3a.patch
 	"${FILESDIR}"/chromium-74-c2c467f.patch
-	"${FILESDIR}"/chromium-74-2f28731.patch
+	"${DISTDIR}"/chromium-74-2f28731.patch
 	"${FILESDIR}"/chromium-74-7685422.patch
 	"${FILESDIR}"/quiche-00f47df.patch
 )

diff --git a/www-client/chromium/files/chromium-74-2f28731.patch b/www-client/chromium/files/chromium-74-2f28731.patch
deleted file mode 100644
index 83452619fe0..00000000000
--- a/www-client/chromium/files/chromium-74-2f28731.patch
+++ /dev/null
@@ -1,483 +0,0 @@
-From 2f28731c17b246bd70075f828dcafcd23547da5d Mon Sep 17 00:00:00 2001
-From: David 'Digit' Turner <digit@google.com>
-Date: Wed, 3 Apr 2019 14:32:09 +0000
-Subject: [PATCH] base: Fix Value layout for GCC
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It turns out that the previous changes to the base::Value
-layout broke GCC compilation (see [1] for details).
-
-This CL fixes the situation by using a new DoubleStorage
-type that will store double values in a 4-byte aligned
-struct, with bit_cast<> being used to convert between
-double and DoubleStorage values in the implementation.
-
-This ensures that base::Value remains as small as possible
-in all cases. The small penalty is that loading/storing
-double values on 32-bit ARM is slightly slower due to
-the fact that the value is no longer 8-byte aligned.
-
-+ Fix the ValuesTest.SizeOfValue test to work correctly,
-  and disable it for debug builds, so it doesn't fail
-  because debug versions of the internal containers
-  are larger on certain systems.
-
-[1] https://chromium-review.googlesource.com/c/chromium/src/+/1472716
-
-BUG=646113
-R=dcheng@chromium.org, pasko@chromium.org, lizeb@chromium.org, jdoerrie@chromium.org, jose.dapena@lge.com
-
-Change-Id: I9a365407dc064ba1bdc19859706f4154a495921e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1550363
-Commit-Queue: David Turner <digit@chromium.org>
-Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#647271}
----
- base/values.cc          | 67 +++++++++++++---------------
- base/values.h           | 94 ++++++++++------------------------------
- base/values_unittest.cc | 96 ++++++++++++++++++++++++++++++-----------
- 3 files changed, 124 insertions(+), 133 deletions(-)
-
-diff --git a/base/values.cc b/base/values.cc
-index 9fed5b52d60e..16d686b0bee5 100644
---- a/base/values.cc
-+++ b/base/values.cc
-@@ -12,6 +12,7 @@
- #include <ostream>
- #include <utility>
- 
-+#include "base/bit_cast.h"
- #include "base/json/json_writer.h"
- #include "base/logging.h"
- #include "base/memory/ptr_util.h"
-@@ -36,6 +37,9 @@ static_assert(std::is_standard_layout<Value>::value,
-               "base::Value should be a standard-layout C++ class in order "
-               "to avoid undefined behaviour in its implementation!");
- 
-+static_assert(sizeof(Value::DoubleStorage) == sizeof(double),
-+              "The double and DoubleStorage types should have the same size");
-+
- namespace {
- 
- const char* const kTypeNames[] = {"null",   "boolean", "integer",    "double",
-@@ -110,8 +114,6 @@ Value::Value(Value&& that) noexcept {
-   InternalMoveConstructFrom(std::move(that));
- }
- 
--Value::Value() noexcept : type_(Type::NONE) {}
--
- Value::Value(Type type) : type_(type) {
-   // Initialize with the default value.
-   switch (type_) {
-@@ -125,7 +127,7 @@ Value::Value(Type type) : type_(type) {
-       int_value_ = 0;
-       return;
-     case Type::DOUBLE:
--      double_value_ = 0.0;
-+      double_value_ = bit_cast<DoubleStorage>(0.0);
-       return;
-     case Type::STRING:
-       new (&string_value_) std::string();
-@@ -149,21 +151,16 @@ Value::Value(Type type) : type_(type) {
-   CHECK(false);
- }
- 
--Value::Value(bool in_bool)
--    : bool_type_(Type::BOOLEAN),
--      bool_value_(in_bool) {}
-+Value::Value(bool in_bool) : type_(Type::BOOLEAN), bool_value_(in_bool) {}
- 
--Value::Value(int in_int)
--    : int_type_(Type::INTEGER),
--      int_value_(in_int) {}
-+Value::Value(int in_int) : type_(Type::INTEGER), int_value_(in_int) {}
- 
- Value::Value(double in_double)
--    : double_type_(Type::DOUBLE),
--      double_value_(in_double) {
--  if (!std::isfinite(double_value_)) {
-+    : type_(Type::DOUBLE), double_value_(bit_cast<DoubleStorage>(in_double)) {
-+  if (!std::isfinite(in_double)) {
-     NOTREACHED() << "Non-finite (i.e. NaN or positive/negative infinity) "
-                  << "values cannot be represented in JSON";
--    double_value_ = 0.0;
-+    double_value_ = bit_cast<DoubleStorage>(0.0);
-   }
- }
- 
-@@ -172,8 +169,7 @@ Value::Value(const char* in_string) : Value(std::string(in_string)) {}
- Value::Value(StringPiece in_string) : Value(std::string(in_string)) {}
- 
- Value::Value(std::string&& in_string) noexcept
--    : string_type_(Type::STRING),
--      string_value_(std::move(in_string)) {
-+    : type_(Type::STRING), string_value_(std::move(in_string)) {
-   DCHECK(IsStringUTF8(string_value_));
- }
- 
-@@ -182,19 +178,15 @@ Value::Value(const char16* in_string16) : Value(StringPiece16(in_string16)) {}
- Value::Value(StringPiece16 in_string16) : Value(UTF16ToUTF8(in_string16)) {}
- 
- Value::Value(const std::vector<char>& in_blob)
--    : binary_type_(Type::BINARY),
--      binary_value_(in_blob.begin(), in_blob.end()) {}
-+    : type_(Type::BINARY), binary_value_(in_blob.begin(), in_blob.end()) {}
- 
- Value::Value(base::span<const uint8_t> in_blob)
--    : binary_type_(Type::BINARY),
--      binary_value_(in_blob.begin(), in_blob.end()) {}
-+    : type_(Type::BINARY), binary_value_(in_blob.begin(), in_blob.end()) {}
- 
- Value::Value(BlobStorage&& in_blob) noexcept
--    : binary_type_(Type::BINARY),
--      binary_value_(std::move(in_blob)) {}
-+    : type_(Type::BINARY), binary_value_(std::move(in_blob)) {}
- 
--Value::Value(const DictStorage& in_dict)
--    : dict_type_(Type::DICTIONARY), dict_() {
-+Value::Value(const DictStorage& in_dict) : type_(Type::DICTIONARY), dict_() {
-   dict_.reserve(in_dict.size());
-   for (const auto& it : in_dict) {
-     dict_.try_emplace(dict_.end(), it.first,
-@@ -203,18 +195,16 @@ Value::Value(const DictStorage& in_dict)
- }
- 
- Value::Value(DictStorage&& in_dict) noexcept
--    : dict_type_(Type::DICTIONARY),
--      dict_(std::move(in_dict)) {}
-+    : type_(Type::DICTIONARY), dict_(std::move(in_dict)) {}
- 
--Value::Value(const ListStorage& in_list) : list_type_(Type::LIST), list_() {
-+Value::Value(const ListStorage& in_list) : type_(Type::LIST), list_() {
-   list_.reserve(in_list.size());
-   for (const auto& val : in_list)
-     list_.emplace_back(val.Clone());
- }
- 
- Value::Value(ListStorage&& in_list) noexcept
--    : list_type_(Type::LIST),
--      list_(std::move(in_list)) {}
-+    : type_(Type::LIST), list_(std::move(in_list)) {}
- 
- Value& Value::operator=(Value&& that) noexcept {
-   InternalCleanup();
-@@ -223,6 +213,10 @@ Value& Value::operator=(Value&& that) noexcept {
-   return *this;
- }
- 
-+double Value::AsDoubleInternal() const {
-+  return bit_cast<double>(double_value_);
-+}
-+
- Value Value::Clone() const {
-   switch (type_) {
-     case Type::NONE:
-@@ -232,7 +226,7 @@ Value Value::Clone() const {
-     case Type::INTEGER:
-       return Value(int_value_);
-     case Type::DOUBLE:
--      return Value(double_value_);
-+      return Value(AsDoubleInternal());
-     case Type::STRING:
-       return Value(string_value_);
-     case Type::BINARY:
-@@ -277,7 +271,7 @@ int Value::GetInt() const {
- 
- double Value::GetDouble() const {
-   if (is_double())
--    return double_value_;
-+    return AsDoubleInternal();
-   if (is_int())
-     return int_value_;
-   CHECK(false);
-@@ -342,9 +336,10 @@ base::Optional<double> Value::FindDoubleKey(StringPiece key) const {
-   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 static_cast<double>(result->int_value_);
-+    if (result->is_double()) {
-+      return result->AsDoubleInternal();
-+    }
-   }
-   return base::nullopt;
- }
-@@ -601,7 +596,7 @@ bool Value::GetAsInteger(int* out_value) const {
- 
- bool Value::GetAsDouble(double* out_value) const {
-   if (out_value && is_double()) {
--    *out_value = double_value_;
-+    *out_value = AsDoubleInternal();
-     return true;
-   }
-   if (out_value && is_int()) {
-@@ -696,7 +691,7 @@ bool operator==(const Value& lhs, const Value& rhs) {
-     case Value::Type::INTEGER:
-       return lhs.int_value_ == rhs.int_value_;
-     case Value::Type::DOUBLE:
--      return lhs.double_value_ == rhs.double_value_;
-+      return lhs.AsDoubleInternal() == rhs.AsDoubleInternal();
-     case Value::Type::STRING:
-       return lhs.string_value_ == rhs.string_value_;
-     case Value::Type::BINARY:
-@@ -741,7 +736,7 @@ bool operator<(const Value& lhs, const Value& rhs) {
-     case Value::Type::INTEGER:
-       return lhs.int_value_ < rhs.int_value_;
-     case Value::Type::DOUBLE:
--      return lhs.double_value_ < rhs.double_value_;
-+      return lhs.AsDoubleInternal() < rhs.AsDoubleInternal();
-     case Value::Type::STRING:
-       return lhs.string_value_ < rhs.string_value_;
-     case Value::Type::BINARY:
-diff --git a/base/values.h b/base/values.h
-index 486fe7ff3976..c455936d4961 100644
---- a/base/values.h
-+++ b/base/values.h
-@@ -83,6 +83,8 @@ class BASE_EXPORT Value {
-   using BlobStorage = std::vector<uint8_t>;
-   using DictStorage = flat_map<std::string, std::unique_ptr<Value>>;
-   using ListStorage = std::vector<Value>;
-+  // See technical note below explaining why this is used.
-+  using DoubleStorage = struct { alignas(4) char v[sizeof(double)]; };
- 
-   enum class Type {
-     NONE = 0,
-@@ -111,7 +113,10 @@ class BASE_EXPORT Value {
-   static std::unique_ptr<Value> ToUniquePtrValue(Value val);
- 
-   Value(Value&& that) noexcept;
--  Value() noexcept;  // A null value.
-+  Value() noexcept {}  // A null value
-+  // Fun fact: using '= default' above instead of '{}' does not work because
-+  // the compiler complains that the default constructor was deleted since
-+  // the inner union contains fields with non-default constructors.
- 
-   // Value's copy constructor and copy assignment operator are deleted. Use this
-   // to obtain a deep copy explicitly.
-@@ -405,82 +410,29 @@ class BASE_EXPORT Value {
-   size_t EstimateMemoryUsage() const;
- 
-  protected:
--  // Technical note:
--  // The naive way to implement a tagged union leads to wasted bytes
--  // in the object on CPUs like ARM ones, which impose an 8-byte alignment
--  // for double values. I.e. if one does something like:
-+  // Special case for doubles, which are aligned to 8 bytes on some
-+  // 32-bit architectures. In this case, a simple declaration as a
-+  // double member would make the whole union 8 byte-aligned, which
-+  // would also force 4 bytes of wasted padding space before it in
-+  // the Value layout.
-   //
--  //    struct TaggedValue {
--  //      int type_;                    // size = 1, align = 4
--  //      union {
--  //        bool bool_value_;           // size = 1, align = 1
--  //        int int_value_;             // size = 4, align = 4
--  //        double double_value_;       // size = 8, align = 8
--  //        std::string string_value_;  // size = 12, align = 4  (32-bit)
--  //      };
--  //    };
--  //
--  // The end result is that the union will have an alignment of 8, and a size
--  // of 16, due to 4 extra padding bytes following |string_value_| to respect
--  // the alignment requirement.
--  //
--  // As a consequence, the struct TaggedValue will have a size of 24 bytes,
--  // due to the size of the union (16), the size of |type_| (4) and 4 bytes
--  // of padding between |type_| and the union to respect its alignment.
--  //
--  // This means 8 bytes of unused memory per instance on 32-bit ARM!
--  //
--  // To reclaim these, a union of structs is used instead, in order to ensure
--  // that |double_value_| below is always located at an offset that is a
--  // multiple of 8, relative to the start of the overall data structure.
--  //
--  // Each struct must declare its own |type_| field, which must have a different
--  // name, to appease the C++ compiler.
--  //
--  // Using this technique sizeof(base::Value) == 16 on 32-bit ARM instead
--  // of 24, without losing any information. Results are unchanged for x86,
--  // x86_64 and arm64 (16, 32 and 32 bytes respectively).
-+  // To override this, store the value as an array of 32-bit integers, and
-+  // perform the appropriate bit casts when reading / writing to it.
-+  Type type_ = Type::NONE;
-+
-   union {
--    struct {
--      // TODO(crbug.com/646113): Make these private once DictionaryValue and
--      // ListValue are properly inlined.
--      Type type_ : 8;
--    };
--    struct {
--      Type bool_type_ : 8;
--      bool bool_value_;
--    };
--    struct {
--      Type int_type_ : 8;
--      int int_value_;
--    };
--    struct {
--      Type double_type_ : 8;
--      // Subtle: On architectures that require it, the compiler will ensure
--      // that |double_value_|'s offset is a multiple of 8 (e.g. 32-bit ARM).
--      // See technical note above to understand why it is important.
--      double double_value_;
--    };
--    struct {
--      Type string_type_ : 8;
--      std::string string_value_;
--    };
--    struct {
--      Type binary_type_ : 8;
--      BlobStorage binary_value_;
--    };
--    struct {
--      Type dict_type_ : 8;
--      DictStorage dict_;
--    };
--    struct {
--      Type list_type_ : 8;
--      ListStorage list_;
--    };
-+    bool bool_value_;
-+    int int_value_;
-+    DoubleStorage double_value_;
-+    std::string string_value_;
-+    BlobStorage binary_value_;
-+    DictStorage dict_;
-+    ListStorage list_;
-   };
- 
-  private:
-   friend class ValuesTest_SizeOfValue_Test;
-+  double AsDoubleInternal() const;
-   void InternalMoveConstructFrom(Value&& that);
-   void InternalCleanup();
- 
-diff --git a/base/values_unittest.cc b/base/values_unittest.cc
-index 2dd1c76afaa9..f3536a8612b1 100644
---- a/base/values_unittest.cc
-+++ b/base/values_unittest.cc
-@@ -26,45 +26,89 @@
- 
- namespace base {
- 
--// Test is currently incorrect on Windows x86.
--#if !defined(OS_WIN) || !defined(ARCH_CPU_X86)
-+// Ensure that base::Value is as small as possible, i.e. that there is
-+// no wasted space after the inner value due to alignment constraints.
-+// Distinguish between the 'header' that includes |type_| and and the inner
-+// value that follows it, which can be a bool, int, double, string, blob, list
-+// or dict.
-+//
-+// This test is only enabled when NDEBUG is defined. This way the test will not
-+// fail in debug builds that sometimes contain larger versions of the standard
-+// containers used inside base::Value.
-+#if defined(NDEBUG)
-+
-+static size_t AlignSizeTo(size_t size, size_t alignment) {
-+  EXPECT_TRUE((alignment & (alignment - 1)) == 0)
-+      << "Alignment " << alignment << " is not a power of 2!";
-+  return (size + (alignment - 1u)) & ~(alignment - 1u);
-+}
-+
- TEST(ValuesTest, SizeOfValue) {
--  // Ensure that base::Value is as small as possible, i.e. that there is
--  // no wasted space after the inner value due to alignment constraints.
--  // Distinguish between the 'header' that includes |type_| and and the inner
--  // value that follows it, which can be a bool, int, double, string, blob, list
--  // or dict.
--#define INNER_TYPES_LIST(X)            \
--  X(bool, bool_value_)                 \
--  X(int, int_value_)                   \
--  X(double, double_value_)             \
--  X(std::string, string_value_)        \
--  X(Value::BlobStorage, binary_value_) \
--  X(Value::ListStorage, list_)         \
-+#define INNER_TYPES_LIST(X)              \
-+  X(bool, bool_value_)                   \
-+  X(int, int_value_)                     \
-+  X(Value::DoubleStorage, double_value_) \
-+  X(std::string, string_value_)          \
-+  X(Value::BlobStorage, binary_value_)   \
-+  X(Value::ListStorage, list_)           \
-   X(Value::DictStorage, dict_)
- 
--#define INNER_STRUCT_LIMIT(type, value) offsetof(Value, value) + sizeof(type),
-+#define INNER_FIELD_ALIGNMENT(type, value) alignof(type),
-+
-+  // The maximum alignment of each inner struct value field inside base::Value
-+  size_t max_inner_value_alignment =
-+      std::max({INNER_TYPES_LIST(INNER_FIELD_ALIGNMENT)});
-+
-+  // Check that base::Value has the smallest alignment possible. This would
-+  // fail if the header would contain something that has a larger alignment
-+  // than necessary.
-+  EXPECT_EQ(max_inner_value_alignment, alignof(Value));
-+
-+  // Find the offset of each inner value. Which should normally not be
-+  // larger than 4. Note that we use std::max(4, ...) because bool_value_
-+  // could be stored just after the |bool_type_| field, with an offset of
-+  // 1, and that would be ok.
-+#define INNER_VALUE_START_OFFSET(type, value) offsetof(Value, value),
-+
-+  size_t min_inner_value_offset =
-+      std::min({INNER_TYPES_LIST(INNER_VALUE_START_OFFSET)});
- 
--  // Return the maximum size in bytes of each inner struct inside base::Value
--  size_t max_inner_struct_limit =
--      std::max({INNER_TYPES_LIST(INNER_STRUCT_LIMIT)});
-+  // Inner fields may contain pointers, which have an alignment of 8
-+  // on most 64-bit platforms.
-+  size_t expected_min_offset = alignof(void*);
-+
-+  EXPECT_EQ(expected_min_offset, min_inner_value_offset);
- 
-   // Ensure that base::Value is not larger than necessary, i.e. that there is
--  // no un-necessary padding afte the structs due to alignment constraints of
-+  // no un-necessary padding after the structs due to alignment constraints of
-   // one of the inner fields.
--  EXPECT_EQ(max_inner_struct_limit, sizeof(Value));
--  if (max_inner_struct_limit != sizeof(Value)) {
-+#define INNER_STRUCT_END_OFFSET(type, value) \
-+  offsetof(Value, value) + sizeof(type),
-+
-+  // The maximum size in bytes of each inner struct inside base::Value,
-+  size_t max_inner_struct_end_offset =
-+      std::max({INNER_TYPES_LIST(INNER_STRUCT_END_OFFSET)});
-+
-+  // The expected value size.
-+  size_t expected_value_size =
-+      AlignSizeTo(max_inner_struct_end_offset, alignof(Value));
-+
-+  EXPECT_EQ(expected_value_size, sizeof(Value));
-+  if (min_inner_value_offset != expected_min_offset ||
-+      expected_value_size != sizeof(Value)) {
-     // The following are useful to understand what's wrong when the EXPECT_EQ()
--    // above actually fails.
--#define PRINT_INNER_FIELD_INFO(x, y) \
--  LOG(INFO) << #y " type=" #x " size=" << sizeof(x) << " align=" << alignof(x);
-+    // above actually fail.
-+#define PRINT_INNER_FIELD_INFO(x, y)                           \
-+  LOG(INFO) << #y " type=" #x " offset=" << offsetof(Value, y) \
-+            << " size=" << sizeof(x) << " align=" << alignof(x);
- 
-     LOG(INFO) << "Value size=" << sizeof(Value) << " align=" << alignof(Value);
-     INNER_TYPES_LIST(PRINT_INNER_FIELD_INFO)
--    LOG(INFO) << "max_inner_struct_limit=" << max_inner_struct_limit;
-+    LOG(INFO) << "max_inner_struct_end_offset=" << max_inner_struct_end_offset;
-   }
- }
--#endif
-+
-+#endif  // NDEBUG
- 
- TEST(ValuesTest, TestNothrow) {
-   static_assert(std::is_nothrow_move_constructible<Value>::value,
--- 
-2.21.0
-

diff --git a/www-client/chromium/files/chromium-74-e1b1f3a.patch b/www-client/chromium/files/chromium-74-e1b1f3a.patch
deleted file mode 100644
index 344b0874b81..00000000000
--- a/www-client/chromium/files/chromium-74-e1b1f3a.patch
+++ /dev/null
@@ -1,587 +0,0 @@
-From e1b1f3a5f273c8da533fad495b9de316e2c83c9b Mon Sep 17 00:00:00 2001
-From: jdoerrie <jdoerrie@chromium.org>
-Date: Sat, 16 Mar 2019 04:08:01 +0000
-Subject: [PATCH] [base] Add Dead Type to base::Value
-
-This change adds a temporary DEAD type to base::Value which should help
-to track down use-after-free bugs. Furthermore, this change also removes
-the now unneeded is_alive_ flag.
-
-Bug: 859477, 941404
-Change-Id: I9b7a2f3cbb0b22d7e3ed35b2453537419f3f7e55
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1478897
-Reviewed-by: Pavol Marko <pmarko@chromium.org>
-Reviewed-by: Tao Bai <michaelbai@chromium.org>
-Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
-Reviewed-by: Mike Pinkerton <pinkerton@chromium.org>
-Reviewed-by: Bill Budge <bbudge@chromium.org>
-Reviewed-by: Ken Rockot <rockot@google.com>
-Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
-Reviewed-by: Daniel Cheng <dcheng@chromium.org>
-Reviewed-by: David Turner <digit@chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#641404}
----
- base/json/json_writer.cc                      |  5 ++
- base/values.cc                                | 68 ++++++++++++-------
- base/values.h                                 | 23 ++-----
- base/values_unittest.cc                       | 10 ++-
- .../ui/cocoa/applescript/apple_event_util.mm  | 10 +++
- chromeos/network/onc/variable_expander.cc     |  6 ++
- .../core/browser/android/policy_converter.cc  | 11 ++-
- .../core/common/policy_loader_win_unittest.cc |  8 ++-
- .../policy/core/common/policy_test_utils.cc   |  5 ++
- .../policy/core/common/registry_dict.cc       |  4 ++
- .../gin_java_script_to_java_types_coercion.cc |  8 ++-
- ipc/ipc_message_utils.cc                      | 11 ++-
- mojo/public/cpp/base/values_mojom_traits.h    |  7 +-
- .../ppb_x509_certificate_private_shared.cc    |  2 +
- 14 files changed, 127 insertions(+), 51 deletions(-)
-
-diff --git a/base/json/json_writer.cc b/base/json/json_writer.cc
-index 376a459f9a46..cd020e7fa0c0 100644
---- a/base/json/json_writer.cc
-+++ b/base/json/json_writer.cc
-@@ -179,6 +179,11 @@ bool JSONWriter::BuildJSONString(const Value& node, size_t depth) {
-       // Successful only if we're allowed to omit it.
-       DLOG_IF(ERROR, !omit_binary_values_) << "Cannot serialize binary value.";
-       return omit_binary_values_;
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case Value::Type::DEAD:
-+      CHECK(false);
-+      return false;
-   }
- 
-   // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-diff --git a/base/values.cc b/base/values.cc
-index 0c002551b317..035aa2350cde 100644
---- a/base/values.cc
-+++ b/base/values.cc
-@@ -90,8 +90,6 @@ std::unique_ptr<Value> CopyWithoutEmptyChildren(const Value& node) {
- 
- }  // namespace
- 
--constexpr uint16_t Value::kMagicIsAlive;
--
- // static
- std::unique_ptr<Value> Value::CreateWithCopiedBuffer(const char* buffer,
-                                                      size_t size) {
-@@ -112,9 +110,9 @@ Value::Value(Value&& that) noexcept {
-   InternalMoveConstructFrom(std::move(that));
- }
- 
--Value::Value() noexcept : type_(Type::NONE), is_alive_(kMagicIsAlive) {}
-+Value::Value() noexcept : type_(Type::NONE) {}
- 
--Value::Value(Type type) : type_(type), is_alive_(kMagicIsAlive) {
-+Value::Value(Type type) : type_(type) {
-   // Initialize with the default value.
-   switch (type_) {
-     case Type::NONE:
-@@ -141,22 +139,26 @@ Value::Value(Type type) : type_(type), is_alive_(kMagicIsAlive) {
-     case Type::LIST:
-       new (&list_) ListStorage();
-       return;
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case Type::DEAD:
-+      CHECK(false);
-+      return;
-   }
-+
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
- }
- 
- Value::Value(bool in_bool)
-     : bool_type_(Type::BOOLEAN),
--      bool_is_alive_(kMagicIsAlive),
-       bool_value_(in_bool) {}
- 
- Value::Value(int in_int)
-     : int_type_(Type::INTEGER),
--      int_is_alive_(kMagicIsAlive),
-       int_value_(in_int) {}
- 
- Value::Value(double in_double)
-     : double_type_(Type::DOUBLE),
--      double_is_alive_(kMagicIsAlive),
-       double_value_(in_double) {
-   if (!std::isfinite(double_value_)) {
-     NOTREACHED() << "Non-finite (i.e. NaN or positive/negative infinity) "
-@@ -171,7 +173,6 @@ Value::Value(StringPiece in_string) : Value(std::string(in_string)) {}
- 
- Value::Value(std::string&& in_string) noexcept
-     : string_type_(Type::STRING),
--      string_is_alive_(kMagicIsAlive),
-       string_value_(std::move(in_string)) {
-   DCHECK(IsStringUTF8(string_value_));
- }
-@@ -182,21 +183,18 @@ Value::Value(StringPiece16 in_string16) : Value(UTF16ToUTF8(in_string16)) {}
- 
- Value::Value(const std::vector<char>& in_blob)
-     : binary_type_(Type::BINARY),
--      binary_is_alive_(kMagicIsAlive),
-       binary_value_(in_blob.begin(), in_blob.end()) {}
- 
- Value::Value(base::span<const uint8_t> in_blob)
-     : binary_type_(Type::BINARY),
--      binary_is_alive_(kMagicIsAlive),
-       binary_value_(in_blob.begin(), in_blob.end()) {}
- 
- Value::Value(BlobStorage&& in_blob) noexcept
-     : binary_type_(Type::BINARY),
--      binary_is_alive_(kMagicIsAlive),
-       binary_value_(std::move(in_blob)) {}
- 
- Value::Value(const DictStorage& in_dict)
--    : dict_type_(Type::DICTIONARY), dict_is_alive_(kMagicIsAlive), dict_() {
-+    : dict_type_(Type::DICTIONARY), dict_() {
-   dict_.reserve(in_dict.size());
-   for (const auto& it : in_dict) {
-     dict_.try_emplace(dict_.end(), it.first,
-@@ -206,11 +204,9 @@ Value::Value(const DictStorage& in_dict)
- 
- Value::Value(DictStorage&& in_dict) noexcept
-     : dict_type_(Type::DICTIONARY),
--      dict_is_alive_(kMagicIsAlive),
-       dict_(std::move(in_dict)) {}
- 
--Value::Value(const ListStorage& in_list)
--    : list_type_(Type::LIST), list_is_alive_(kMagicIsAlive), list_() {
-+Value::Value(const ListStorage& in_list) : list_type_(Type::LIST), list_() {
-   list_.reserve(in_list.size());
-   for (const auto& val : in_list)
-     list_.emplace_back(val.Clone());
-@@ -218,7 +214,6 @@ Value::Value(const ListStorage& in_list)
- 
- Value::Value(ListStorage&& in_list) noexcept
-     : list_type_(Type::LIST),
--      list_is_alive_(kMagicIsAlive),
-       list_(std::move(in_list)) {}
- 
- Value& Value::operator=(Value&& that) noexcept {
-@@ -246,15 +241,21 @@ Value Value::Clone() const {
-       return Value(dict_);
-     case Type::LIST:
-       return Value(list_);
-+      // TODO(crbug.com/859477): Remove after root cause is found.
-+    case Type::DEAD:
-+      CHECK(false);
-+      return Value();
-   }
- 
--  NOTREACHED();
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
-   return Value();
- }
- 
- Value::~Value() {
-   InternalCleanup();
--  is_alive_ = 0;
-+  // TODO(crbug.com/859477): Remove after root cause is found.
-+  type_ = Type::DEAD;
- }
- 
- // static
-@@ -654,9 +655,14 @@ bool operator==(const Value& lhs, const Value& rhs) {
-                         });
-     case Value::Type::LIST:
-       return lhs.list_ == rhs.list_;
-+      // TODO(crbug.com/859477): Remove after root cause is found.
-+    case Value::Type::DEAD:
-+      CHECK(false);
-+      return false;
-   }
- 
--  NOTREACHED();
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
-   return false;
- }
- 
-@@ -693,9 +699,14 @@ bool operator<(const Value& lhs, const Value& rhs) {
-           });
-     case Value::Type::LIST:
-       return lhs.list_ < rhs.list_;
-+      // TODO(crbug.com/859477): Remove after root cause is found.
-+    case Value::Type::DEAD:
-+      CHECK(false);
-+      return false;
-   }
- 
--  NOTREACHED();
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
-   return false;
- }
- 
-@@ -733,7 +744,6 @@ size_t Value::EstimateMemoryUsage() const {
- 
- void Value::InternalMoveConstructFrom(Value&& that) {
-   type_ = that.type_;
--  is_alive_ = that.is_alive_;
- 
-   switch (type_) {
-     case Type::NONE:
-@@ -759,12 +769,17 @@ void Value::InternalMoveConstructFrom(Value&& that) {
-     case Type::LIST:
-       new (&list_) ListStorage(std::move(that.list_));
-       return;
-+      // TODO(crbug.com/859477): Remove after root cause is found.
-+    case Type::DEAD:
-+      CHECK(false);
-+      return;
-   }
-+
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
- }
- 
- void Value::InternalCleanup() {
--  CHECK_EQ(is_alive_, kMagicIsAlive);
--
-   switch (type_) {
-     case Type::NONE:
-     case Type::BOOLEAN:
-@@ -785,7 +800,14 @@ void Value::InternalCleanup() {
-     case Type::LIST:
-       list_.~ListStorage();
-       return;
-+      // TODO(crbug.com/859477): Remove after root cause is found.
-+    case Type::DEAD:
-+      CHECK(false);
-+      return;
-   }
-+
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
- }
- 
- ///////////////////// DictionaryValue ////////////////////
-diff --git a/base/values.h b/base/values.h
-index 429ef1dfdebd..e31cadd83102 100644
---- a/base/values.h
-+++ b/base/values.h
-@@ -92,7 +92,9 @@ class BASE_EXPORT Value {
-     STRING,
-     BINARY,
-     DICTIONARY,
--    LIST
-+    LIST,
-+    // TODO(crbug.com/859477): Remove once root cause is found.
-+    DEAD
-     // Note: Do not add more types. See the file-level comment above for why.
-   };
- 
-@@ -375,10 +377,6 @@ class BASE_EXPORT Value {
-   size_t EstimateMemoryUsage() const;
- 
-  protected:
--  // Magic IsAlive signature to debug double frees.
--  // TODO(crbug.com/859477): Remove once root cause is found.
--  static constexpr uint16_t kMagicIsAlive = 0x2f19;
--
-   // Technical note:
-   // The naive way to implement a tagged union leads to wasted bytes
-   // in the object on CPUs like ARM ones, which impose an 8-byte alignment
-@@ -408,8 +406,8 @@ class BASE_EXPORT Value {
-   // that |double_value_| below is always located at an offset that is a
-   // multiple of 8, relative to the start of the overall data structure.
-   //
--  // Each struct must declare its own |type_| and |is_alive_| field, which
--  // must have a different name, to appease the C++ compiler.
-+  // Each struct must declare its own |type_| field, which must have a different
-+  // name, to appease the C++ compiler.
-   //
-   // Using this technique sizeof(base::Value) == 16 on 32-bit ARM instead
-   // of 24, without losing any information. Results are unchanged for x86,
-@@ -419,24 +417,17 @@ class BASE_EXPORT Value {
-       // TODO(crbug.com/646113): Make these private once DictionaryValue and
-       // ListValue are properly inlined.
-       Type type_ : 8;
--
--      // IsAlive member to debug double frees.
--      // TODO(crbug.com/859477): Remove once root cause is found.
--      uint16_t is_alive_ = kMagicIsAlive;
-     };
-     struct {
-       Type bool_type_ : 8;
--      uint16_t bool_is_alive_;
-       bool bool_value_;
-     };
-     struct {
-       Type int_type_ : 8;
--      uint16_t int_is_alive_;
-       int int_value_;
-     };
-     struct {
-       Type double_type_ : 8;
--      uint16_t double_is_alive_;
-       // Subtle: On architectures that require it, the compiler will ensure
-       // that |double_value_|'s offset is a multiple of 8 (e.g. 32-bit ARM).
-       // See technical note above to understand why it is important.
-@@ -444,22 +435,18 @@ class BASE_EXPORT Value {
-     };
-     struct {
-       Type string_type_ : 8;
--      uint16_t string_is_alive_;
-       std::string string_value_;
-     };
-     struct {
-       Type binary_type_ : 8;
--      uint16_t binary_is_alive_;
-       BlobStorage binary_value_;
-     };
-     struct {
-       Type dict_type_ : 8;
--      uint16_t dict_is_alive_;
-       DictStorage dict_;
-     };
-     struct {
-       Type list_type_ : 8;
--      uint16_t list_is_alive_;
-       ListStorage list_;
-     };
-   };
-diff --git a/base/values_unittest.cc b/base/values_unittest.cc
-index 0a641bcc7ef4..b23fd8332491 100644
---- a/base/values_unittest.cc
-+++ b/base/values_unittest.cc
-@@ -20,17 +20,20 @@
- #include "base/strings/string16.h"
- #include "base/strings/string_piece.h"
- #include "base/strings/utf_string_conversions.h"
-+#include "build/build_config.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
- 
- namespace base {
- 
-+// Test is currently incorrect on Windows x86.
-+#if !defined(OS_WIN) || !defined(ARCH_CPU_X86)
- TEST(ValuesTest, SizeOfValue) {
-   // Ensure that base::Value is as small as possible, i.e. that there is
-   // no wasted space after the inner value due to alignment constraints.
--  // Distinguish between the 'header' that includes |type_| and |is_alive_|
--  // and the inner value that follows it, which can be a bool, int, double,
--  // string, blob, list or dict.
-+  // Distinguish between the 'header' that includes |type_| and and the inner
-+  // value that follows it, which can be a bool, int, double, string, blob, list
-+  // or dict.
- #define INNER_TYPES_LIST(X)            \
-   X(bool, bool_value_)                 \
-   X(int, int_value_)                   \
-@@ -61,6 +64,7 @@ TEST(ValuesTest, SizeOfValue) {
-     LOG(INFO) << "max_inner_struct_limit=" << max_inner_struct_limit;
-   }
- }
-+#endif
- 
- TEST(ValuesTest, TestNothrow) {
-   static_assert(std::is_nothrow_move_constructible<Value>::value,
-diff --git a/chrome/browser/ui/cocoa/applescript/apple_event_util.mm b/chrome/browser/ui/cocoa/applescript/apple_event_util.mm
-index 16d685607ced..25a59338ee73 100644
---- a/chrome/browser/ui/cocoa/applescript/apple_event_util.mm
-+++ b/chrome/browser/ui/cocoa/applescript/apple_event_util.mm
-@@ -96,6 +96,16 @@ NSAppleEventDescriptor* ValueToAppleEventDescriptor(const base::Value* value) {
-       }
-       break;
-     }
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD:
-+      CHECK(false);
-+      break;
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    default:
-+      CHECK(false);
-+      break;
-   }
- 
-   return descriptor;
-diff --git a/chromeos/network/onc/variable_expander.cc b/chromeos/network/onc/variable_expander.cc
-index fd72752c2aa6..cd5bbb238eb3 100644
---- a/chromeos/network/onc/variable_expander.cc
-+++ b/chromeos/network/onc/variable_expander.cc
-@@ -145,6 +145,12 @@ bool VariableExpander::ExpandValue(base::Value* value) const {
-       // Nothing to do here.
-       break;
-     }
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD: {
-+      CHECK(false);
-+      break;
-+    }
-   }
-   return no_error;
- }
-diff --git a/components/policy/core/browser/android/policy_converter.cc b/components/policy/core/browser/android/policy_converter.cc
-index b711a64febc9..9d41ad0d1507 100644
---- a/components/policy/core/browser/android/policy_converter.cc
-+++ b/components/policy/core/browser/android/policy_converter.cc
-@@ -175,10 +175,17 @@ std::unique_ptr<base::Value> PolicyConverter::ConvertValueToSchema(
-       }
-       return value;
-     }
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD: {
-+      CHECK(false);
-+      return nullptr;
-+    }
-   }
- 
--  NOTREACHED();
--  return std::unique_ptr<base::Value>();
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
-+  return nullptr;
- }
- 
- void PolicyConverter::SetPolicyValue(const std::string& key,
-diff --git a/components/policy/core/common/policy_loader_win_unittest.cc b/components/policy/core/common/policy_loader_win_unittest.cc
-index 311e7fb122fc..0377307c5e28 100644
---- a/components/policy/core/common/policy_loader_win_unittest.cc
-+++ b/components/policy/core/common/policy_loader_win_unittest.cc
-@@ -133,8 +133,14 @@ bool InstallValue(const base::Value& value,
- 
-     case base::Value::Type::BINARY:
-       return false;
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD:
-+      CHECK(false);
-+      return false;
-   }
--  NOTREACHED();
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
-   return false;
- }
- 
-diff --git a/components/policy/core/common/policy_test_utils.cc b/components/policy/core/common/policy_test_utils.cc
-index 5af98b47275c..919f004153ec 100644
---- a/components/policy/core/common/policy_test_utils.cc
-+++ b/components/policy/core/common/policy_test_utils.cc
-@@ -137,6 +137,11 @@ CFPropertyListRef ValueToProperty(const base::Value& value) {
-       // because there's no equivalent JSON type, and policy values can only
-       // take valid JSON values.
-       break;
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD:
-+      CHECK(false);
-+      break;
-   }
- 
-   return NULL;
-diff --git a/components/policy/core/common/registry_dict.cc b/components/policy/core/common/registry_dict.cc
-index f3ed372bdcb3..696ba7e04abe 100644
---- a/components/policy/core/common/registry_dict.cc
-+++ b/components/policy/core/common/registry_dict.cc
-@@ -135,6 +135,10 @@ std::unique_ptr<base::Value> ConvertRegistryValue(const base::Value& value,
-     case base::Value::Type::BINARY:
-       // No conversion possible.
-       break;
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD:
-+      CHECK(false);
-+      return nullptr;
-   }
- 
-   LOG(WARNING) << "Failed to convert " << value.type() << " to "
-diff --git a/content/browser/android/java/gin_java_script_to_java_types_coercion.cc b/content/browser/android/java/gin_java_script_to_java_types_coercion.cc
-index dabd66ba8c72..84fd5489a414 100644
---- a/content/browser/android/java/gin_java_script_to_java_types_coercion.cc
-+++ b/content/browser/android/java/gin_java_script_to_java_types_coercion.cc
-@@ -722,8 +722,14 @@ jvalue CoerceJavaScriptValueToJavaValue(JNIEnv* env,
-     case base::Value::Type::BINARY:
-       return CoerceGinJavaBridgeValueToJavaValue(
-           env, value, target_type, coerce_to_string, object_refs, error);
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD:
-+      CHECK(false);
-+      return jvalue();
-   }
--  NOTREACHED();
-+
-+  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+  CHECK(false);
-   return jvalue();
- }
- 
-diff --git a/ipc/ipc_message_utils.cc b/ipc/ipc_message_utils.cc
-index ec04c77c6c18..df6ec39bd663 100644
---- a/ipc/ipc_message_utils.cc
-+++ b/ipc/ipc_message_utils.cc
-@@ -92,7 +92,7 @@ void WriteValue(base::Pickle* m, const base::Value* value, int recursion) {
- 
-   switch (value->type()) {
-     case base::Value::Type::NONE:
--    break;
-+      break;
-     case base::Value::Type::BOOLEAN: {
-       bool val;
-       result = value->GetAsBoolean(&val);
-@@ -147,6 +147,11 @@ void WriteValue(base::Pickle* m, const base::Value* value, int recursion) {
-       }
-       break;
-     }
-+
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    default:
-+      CHECK(false);
-+      break;
-   }
- }
- 
-@@ -260,7 +265,9 @@ bool ReadValue(const base::Pickle* m,
-       break;
-     }
-     default:
--    return false;
-+      // TODO(crbug.com/859477): Remove after root cause is found.
-+      CHECK(false);
-+      return false;
-   }
- 
-   return true;
-diff --git a/mojo/public/cpp/base/values_mojom_traits.h b/mojo/public/cpp/base/values_mojom_traits.h
-index cdb9bbbd94df..66752b7c90d8 100644
---- a/mojo/public/cpp/base/values_mojom_traits.h
-+++ b/mojo/public/cpp/base/values_mojom_traits.h
-@@ -86,8 +86,13 @@ struct COMPONENT_EXPORT(MOJO_BASE_SHARED_TRAITS)
-         return mojo_base::mojom::ValueDataView::Tag::DICTIONARY_VALUE;
-       case base::Value::Type::LIST:
-         return mojo_base::mojom::ValueDataView::Tag::LIST_VALUE;
-+      // TODO(crbug.com/859477): Remove after root cause is found.
-+      case base::Value::Type::DEAD:
-+        CHECK(false);
-+        return mojo_base::mojom::ValueDataView::Tag::NULL_VALUE;
-     }
--    NOTREACHED();
-+    // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
-+    CHECK(false);
-     return mojo_base::mojom::ValueDataView::Tag::NULL_VALUE;
-   }
- 
-diff --git a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
-index 6ffff36337e0..7f392d50f718 100644
---- a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
-+++ b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
-@@ -73,6 +73,8 @@ PP_Var PPB_X509Certificate_Fields::GetFieldAsPPVar(
-     }
-     case base::Value::Type::DICTIONARY:
-     case base::Value::Type::LIST:
-+    // TODO(crbug.com/859477): Remove after root cause is found.
-+    case base::Value::Type::DEAD:
-       // Not handled.
-       break;
-   }
--- 
-2.21.0
-


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

commit:     f142549e0ec9bb068bbf9160fbeb116eff93770f
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue May 28 03:59:55 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue May 28 04:01:28 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f142549e

www-client/chromium: bump to 74.0.3729.169

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

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-74.0.3729.169.ebuild  | 706 +++++++++++++++++++++
 .../chromium/files/chromium-74-2f28731.patch       | 483 ++++++++++++++
 .../chromium/files/chromium-74-7685422.patch       |  42 ++
 .../chromium/files/chromium-74-c2c467f.patch       |  75 +++
 .../chromium/files/chromium-74-e1b1f3a.patch       | 587 +++++++++++++++++
 .../chromium/files/chromium-compiler-r8.patch      | 169 +++++
 www-client/chromium/files/quiche-00f47df.patch     |  38 ++
 8 files changed, 2101 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8788374049e..891c6691a42 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,2 +1,3 @@
 DIST chromium-73.0.3683.75.tar.xz 710439908 BLAKE2B 23ed7facf2f67e9bbfc2f1baf434892773d9d63dab10cebab350c3b0b2c75a07f84a4f677e01563a441cc3bae0d42212b3eb28b6d7c573b0137d25e478064a3b SHA512 52bd1dac782a2f7960eba48446d4dfc4c6c13c8e9de21bbee250fad2802beb222cff7bea9878c7338926030aa3aa7ffd2dd1238d35e261a0d766b2d9974fdaf6
 DIST chromium-73.0.3683.86.tar.xz 710449412 BLAKE2B 87b4d15440e88be506920813a52e7a503ac81458aa3f2818490c28f6bb5cfc0ca24b316072e5a0664a8bfe6444be23e565579bc232cdfcef42acf8eeca9f216f SHA512 5dd450640c1ea30f7941231e8c459aec0312c18e089b2c8b9104c4ee835a8fa389f5fb9b301b46d87ce260956eaf3e3bd6aff6ae54c279a303aa757537cace15
+DIST chromium-74.0.3729.169.tar.xz 749495820 BLAKE2B bfe485220239aad146eab0cd7bf158a20bccf03abe74457ea3933094c9fb200ff7a2e9db4a62fa1a736341ce8ee987520e20bd32e13e213435fd6724d15a7d85 SHA512 783558bbae43a928b7d9fe18717b63be432409c81aba0a38ccb14f38398d8681122bdd763db6d22b01363108253432ed203a86f8c9ba627247219bf1519f839b

diff --git a/www-client/chromium/chromium-74.0.3729.169.ebuild b/www-client/chromium/chromium-74.0.3729.169.ebuild
new file mode 100644
index 00000000000..a280c02724c
--- /dev/null
+++ b/www-client/chromium/chromium-74.0.3729.169.ebuild
@@ -0,0 +1,706 @@
+# 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-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
+	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-r8.patch
+	"${FILESDIR}"/chromium-widevine-r4.patch
+	"${FILESDIR}"/chromium-fix-char_traits.patch
+	"${FILESDIR}"/chromium-74-e1b1f3a.patch
+	"${FILESDIR}"/chromium-74-c2c467f.patch
+	"${FILESDIR}"/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-2f28731.patch b/www-client/chromium/files/chromium-74-2f28731.patch
new file mode 100644
index 00000000000..83452619fe0
--- /dev/null
+++ b/www-client/chromium/files/chromium-74-2f28731.patch
@@ -0,0 +1,483 @@
+From 2f28731c17b246bd70075f828dcafcd23547da5d Mon Sep 17 00:00:00 2001
+From: David 'Digit' Turner <digit@google.com>
+Date: Wed, 3 Apr 2019 14:32:09 +0000
+Subject: [PATCH] base: Fix Value layout for GCC
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It turns out that the previous changes to the base::Value
+layout broke GCC compilation (see [1] for details).
+
+This CL fixes the situation by using a new DoubleStorage
+type that will store double values in a 4-byte aligned
+struct, with bit_cast<> being used to convert between
+double and DoubleStorage values in the implementation.
+
+This ensures that base::Value remains as small as possible
+in all cases. The small penalty is that loading/storing
+double values on 32-bit ARM is slightly slower due to
+the fact that the value is no longer 8-byte aligned.
+
++ Fix the ValuesTest.SizeOfValue test to work correctly,
+  and disable it for debug builds, so it doesn't fail
+  because debug versions of the internal containers
+  are larger on certain systems.
+
+[1] https://chromium-review.googlesource.com/c/chromium/src/+/1472716
+
+BUG=646113
+R=dcheng@chromium.org, pasko@chromium.org, lizeb@chromium.org, jdoerrie@chromium.org, jose.dapena@lge.com
+
+Change-Id: I9a365407dc064ba1bdc19859706f4154a495921e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1550363
+Commit-Queue: David Turner <digit@chromium.org>
+Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#647271}
+---
+ base/values.cc          | 67 +++++++++++++---------------
+ base/values.h           | 94 ++++++++++------------------------------
+ base/values_unittest.cc | 96 ++++++++++++++++++++++++++++++-----------
+ 3 files changed, 124 insertions(+), 133 deletions(-)
+
+diff --git a/base/values.cc b/base/values.cc
+index 9fed5b52d60e..16d686b0bee5 100644
+--- a/base/values.cc
++++ b/base/values.cc
+@@ -12,6 +12,7 @@
+ #include <ostream>
+ #include <utility>
+ 
++#include "base/bit_cast.h"
+ #include "base/json/json_writer.h"
+ #include "base/logging.h"
+ #include "base/memory/ptr_util.h"
+@@ -36,6 +37,9 @@ static_assert(std::is_standard_layout<Value>::value,
+               "base::Value should be a standard-layout C++ class in order "
+               "to avoid undefined behaviour in its implementation!");
+ 
++static_assert(sizeof(Value::DoubleStorage) == sizeof(double),
++              "The double and DoubleStorage types should have the same size");
++
+ namespace {
+ 
+ const char* const kTypeNames[] = {"null",   "boolean", "integer",    "double",
+@@ -110,8 +114,6 @@ Value::Value(Value&& that) noexcept {
+   InternalMoveConstructFrom(std::move(that));
+ }
+ 
+-Value::Value() noexcept : type_(Type::NONE) {}
+-
+ Value::Value(Type type) : type_(type) {
+   // Initialize with the default value.
+   switch (type_) {
+@@ -125,7 +127,7 @@ Value::Value(Type type) : type_(type) {
+       int_value_ = 0;
+       return;
+     case Type::DOUBLE:
+-      double_value_ = 0.0;
++      double_value_ = bit_cast<DoubleStorage>(0.0);
+       return;
+     case Type::STRING:
+       new (&string_value_) std::string();
+@@ -149,21 +151,16 @@ Value::Value(Type type) : type_(type) {
+   CHECK(false);
+ }
+ 
+-Value::Value(bool in_bool)
+-    : bool_type_(Type::BOOLEAN),
+-      bool_value_(in_bool) {}
++Value::Value(bool in_bool) : type_(Type::BOOLEAN), bool_value_(in_bool) {}
+ 
+-Value::Value(int in_int)
+-    : int_type_(Type::INTEGER),
+-      int_value_(in_int) {}
++Value::Value(int in_int) : type_(Type::INTEGER), int_value_(in_int) {}
+ 
+ Value::Value(double in_double)
+-    : double_type_(Type::DOUBLE),
+-      double_value_(in_double) {
+-  if (!std::isfinite(double_value_)) {
++    : type_(Type::DOUBLE), double_value_(bit_cast<DoubleStorage>(in_double)) {
++  if (!std::isfinite(in_double)) {
+     NOTREACHED() << "Non-finite (i.e. NaN or positive/negative infinity) "
+                  << "values cannot be represented in JSON";
+-    double_value_ = 0.0;
++    double_value_ = bit_cast<DoubleStorage>(0.0);
+   }
+ }
+ 
+@@ -172,8 +169,7 @@ Value::Value(const char* in_string) : Value(std::string(in_string)) {}
+ Value::Value(StringPiece in_string) : Value(std::string(in_string)) {}
+ 
+ Value::Value(std::string&& in_string) noexcept
+-    : string_type_(Type::STRING),
+-      string_value_(std::move(in_string)) {
++    : type_(Type::STRING), string_value_(std::move(in_string)) {
+   DCHECK(IsStringUTF8(string_value_));
+ }
+ 
+@@ -182,19 +178,15 @@ Value::Value(const char16* in_string16) : Value(StringPiece16(in_string16)) {}
+ Value::Value(StringPiece16 in_string16) : Value(UTF16ToUTF8(in_string16)) {}
+ 
+ Value::Value(const std::vector<char>& in_blob)
+-    : binary_type_(Type::BINARY),
+-      binary_value_(in_blob.begin(), in_blob.end()) {}
++    : type_(Type::BINARY), binary_value_(in_blob.begin(), in_blob.end()) {}
+ 
+ Value::Value(base::span<const uint8_t> in_blob)
+-    : binary_type_(Type::BINARY),
+-      binary_value_(in_blob.begin(), in_blob.end()) {}
++    : type_(Type::BINARY), binary_value_(in_blob.begin(), in_blob.end()) {}
+ 
+ Value::Value(BlobStorage&& in_blob) noexcept
+-    : binary_type_(Type::BINARY),
+-      binary_value_(std::move(in_blob)) {}
++    : type_(Type::BINARY), binary_value_(std::move(in_blob)) {}
+ 
+-Value::Value(const DictStorage& in_dict)
+-    : dict_type_(Type::DICTIONARY), dict_() {
++Value::Value(const DictStorage& in_dict) : type_(Type::DICTIONARY), dict_() {
+   dict_.reserve(in_dict.size());
+   for (const auto& it : in_dict) {
+     dict_.try_emplace(dict_.end(), it.first,
+@@ -203,18 +195,16 @@ Value::Value(const DictStorage& in_dict)
+ }
+ 
+ Value::Value(DictStorage&& in_dict) noexcept
+-    : dict_type_(Type::DICTIONARY),
+-      dict_(std::move(in_dict)) {}
++    : type_(Type::DICTIONARY), dict_(std::move(in_dict)) {}
+ 
+-Value::Value(const ListStorage& in_list) : list_type_(Type::LIST), list_() {
++Value::Value(const ListStorage& in_list) : type_(Type::LIST), list_() {
+   list_.reserve(in_list.size());
+   for (const auto& val : in_list)
+     list_.emplace_back(val.Clone());
+ }
+ 
+ Value::Value(ListStorage&& in_list) noexcept
+-    : list_type_(Type::LIST),
+-      list_(std::move(in_list)) {}
++    : type_(Type::LIST), list_(std::move(in_list)) {}
+ 
+ Value& Value::operator=(Value&& that) noexcept {
+   InternalCleanup();
+@@ -223,6 +213,10 @@ Value& Value::operator=(Value&& that) noexcept {
+   return *this;
+ }
+ 
++double Value::AsDoubleInternal() const {
++  return bit_cast<double>(double_value_);
++}
++
+ Value Value::Clone() const {
+   switch (type_) {
+     case Type::NONE:
+@@ -232,7 +226,7 @@ Value Value::Clone() const {
+     case Type::INTEGER:
+       return Value(int_value_);
+     case Type::DOUBLE:
+-      return Value(double_value_);
++      return Value(AsDoubleInternal());
+     case Type::STRING:
+       return Value(string_value_);
+     case Type::BINARY:
+@@ -277,7 +271,7 @@ int Value::GetInt() const {
+ 
+ double Value::GetDouble() const {
+   if (is_double())
+-    return double_value_;
++    return AsDoubleInternal();
+   if (is_int())
+     return int_value_;
+   CHECK(false);
+@@ -342,9 +336,10 @@ base::Optional<double> Value::FindDoubleKey(StringPiece key) const {
+   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 static_cast<double>(result->int_value_);
++    if (result->is_double()) {
++      return result->AsDoubleInternal();
++    }
+   }
+   return base::nullopt;
+ }
+@@ -601,7 +596,7 @@ bool Value::GetAsInteger(int* out_value) const {
+ 
+ bool Value::GetAsDouble(double* out_value) const {
+   if (out_value && is_double()) {
+-    *out_value = double_value_;
++    *out_value = AsDoubleInternal();
+     return true;
+   }
+   if (out_value && is_int()) {
+@@ -696,7 +691,7 @@ bool operator==(const Value& lhs, const Value& rhs) {
+     case Value::Type::INTEGER:
+       return lhs.int_value_ == rhs.int_value_;
+     case Value::Type::DOUBLE:
+-      return lhs.double_value_ == rhs.double_value_;
++      return lhs.AsDoubleInternal() == rhs.AsDoubleInternal();
+     case Value::Type::STRING:
+       return lhs.string_value_ == rhs.string_value_;
+     case Value::Type::BINARY:
+@@ -741,7 +736,7 @@ bool operator<(const Value& lhs, const Value& rhs) {
+     case Value::Type::INTEGER:
+       return lhs.int_value_ < rhs.int_value_;
+     case Value::Type::DOUBLE:
+-      return lhs.double_value_ < rhs.double_value_;
++      return lhs.AsDoubleInternal() < rhs.AsDoubleInternal();
+     case Value::Type::STRING:
+       return lhs.string_value_ < rhs.string_value_;
+     case Value::Type::BINARY:
+diff --git a/base/values.h b/base/values.h
+index 486fe7ff3976..c455936d4961 100644
+--- a/base/values.h
++++ b/base/values.h
+@@ -83,6 +83,8 @@ class BASE_EXPORT Value {
+   using BlobStorage = std::vector<uint8_t>;
+   using DictStorage = flat_map<std::string, std::unique_ptr<Value>>;
+   using ListStorage = std::vector<Value>;
++  // See technical note below explaining why this is used.
++  using DoubleStorage = struct { alignas(4) char v[sizeof(double)]; };
+ 
+   enum class Type {
+     NONE = 0,
+@@ -111,7 +113,10 @@ class BASE_EXPORT Value {
+   static std::unique_ptr<Value> ToUniquePtrValue(Value val);
+ 
+   Value(Value&& that) noexcept;
+-  Value() noexcept;  // A null value.
++  Value() noexcept {}  // A null value
++  // Fun fact: using '= default' above instead of '{}' does not work because
++  // the compiler complains that the default constructor was deleted since
++  // the inner union contains fields with non-default constructors.
+ 
+   // Value's copy constructor and copy assignment operator are deleted. Use this
+   // to obtain a deep copy explicitly.
+@@ -405,82 +410,29 @@ class BASE_EXPORT Value {
+   size_t EstimateMemoryUsage() const;
+ 
+  protected:
+-  // Technical note:
+-  // The naive way to implement a tagged union leads to wasted bytes
+-  // in the object on CPUs like ARM ones, which impose an 8-byte alignment
+-  // for double values. I.e. if one does something like:
++  // Special case for doubles, which are aligned to 8 bytes on some
++  // 32-bit architectures. In this case, a simple declaration as a
++  // double member would make the whole union 8 byte-aligned, which
++  // would also force 4 bytes of wasted padding space before it in
++  // the Value layout.
+   //
+-  //    struct TaggedValue {
+-  //      int type_;                    // size = 1, align = 4
+-  //      union {
+-  //        bool bool_value_;           // size = 1, align = 1
+-  //        int int_value_;             // size = 4, align = 4
+-  //        double double_value_;       // size = 8, align = 8
+-  //        std::string string_value_;  // size = 12, align = 4  (32-bit)
+-  //      };
+-  //    };
+-  //
+-  // The end result is that the union will have an alignment of 8, and a size
+-  // of 16, due to 4 extra padding bytes following |string_value_| to respect
+-  // the alignment requirement.
+-  //
+-  // As a consequence, the struct TaggedValue will have a size of 24 bytes,
+-  // due to the size of the union (16), the size of |type_| (4) and 4 bytes
+-  // of padding between |type_| and the union to respect its alignment.
+-  //
+-  // This means 8 bytes of unused memory per instance on 32-bit ARM!
+-  //
+-  // To reclaim these, a union of structs is used instead, in order to ensure
+-  // that |double_value_| below is always located at an offset that is a
+-  // multiple of 8, relative to the start of the overall data structure.
+-  //
+-  // Each struct must declare its own |type_| field, which must have a different
+-  // name, to appease the C++ compiler.
+-  //
+-  // Using this technique sizeof(base::Value) == 16 on 32-bit ARM instead
+-  // of 24, without losing any information. Results are unchanged for x86,
+-  // x86_64 and arm64 (16, 32 and 32 bytes respectively).
++  // To override this, store the value as an array of 32-bit integers, and
++  // perform the appropriate bit casts when reading / writing to it.
++  Type type_ = Type::NONE;
++
+   union {
+-    struct {
+-      // TODO(crbug.com/646113): Make these private once DictionaryValue and
+-      // ListValue are properly inlined.
+-      Type type_ : 8;
+-    };
+-    struct {
+-      Type bool_type_ : 8;
+-      bool bool_value_;
+-    };
+-    struct {
+-      Type int_type_ : 8;
+-      int int_value_;
+-    };
+-    struct {
+-      Type double_type_ : 8;
+-      // Subtle: On architectures that require it, the compiler will ensure
+-      // that |double_value_|'s offset is a multiple of 8 (e.g. 32-bit ARM).
+-      // See technical note above to understand why it is important.
+-      double double_value_;
+-    };
+-    struct {
+-      Type string_type_ : 8;
+-      std::string string_value_;
+-    };
+-    struct {
+-      Type binary_type_ : 8;
+-      BlobStorage binary_value_;
+-    };
+-    struct {
+-      Type dict_type_ : 8;
+-      DictStorage dict_;
+-    };
+-    struct {
+-      Type list_type_ : 8;
+-      ListStorage list_;
+-    };
++    bool bool_value_;
++    int int_value_;
++    DoubleStorage double_value_;
++    std::string string_value_;
++    BlobStorage binary_value_;
++    DictStorage dict_;
++    ListStorage list_;
+   };
+ 
+  private:
+   friend class ValuesTest_SizeOfValue_Test;
++  double AsDoubleInternal() const;
+   void InternalMoveConstructFrom(Value&& that);
+   void InternalCleanup();
+ 
+diff --git a/base/values_unittest.cc b/base/values_unittest.cc
+index 2dd1c76afaa9..f3536a8612b1 100644
+--- a/base/values_unittest.cc
++++ b/base/values_unittest.cc
+@@ -26,45 +26,89 @@
+ 
+ namespace base {
+ 
+-// Test is currently incorrect on Windows x86.
+-#if !defined(OS_WIN) || !defined(ARCH_CPU_X86)
++// Ensure that base::Value is as small as possible, i.e. that there is
++// no wasted space after the inner value due to alignment constraints.
++// Distinguish between the 'header' that includes |type_| and and the inner
++// value that follows it, which can be a bool, int, double, string, blob, list
++// or dict.
++//
++// This test is only enabled when NDEBUG is defined. This way the test will not
++// fail in debug builds that sometimes contain larger versions of the standard
++// containers used inside base::Value.
++#if defined(NDEBUG)
++
++static size_t AlignSizeTo(size_t size, size_t alignment) {
++  EXPECT_TRUE((alignment & (alignment - 1)) == 0)
++      << "Alignment " << alignment << " is not a power of 2!";
++  return (size + (alignment - 1u)) & ~(alignment - 1u);
++}
++
+ TEST(ValuesTest, SizeOfValue) {
+-  // Ensure that base::Value is as small as possible, i.e. that there is
+-  // no wasted space after the inner value due to alignment constraints.
+-  // Distinguish between the 'header' that includes |type_| and and the inner
+-  // value that follows it, which can be a bool, int, double, string, blob, list
+-  // or dict.
+-#define INNER_TYPES_LIST(X)            \
+-  X(bool, bool_value_)                 \
+-  X(int, int_value_)                   \
+-  X(double, double_value_)             \
+-  X(std::string, string_value_)        \
+-  X(Value::BlobStorage, binary_value_) \
+-  X(Value::ListStorage, list_)         \
++#define INNER_TYPES_LIST(X)              \
++  X(bool, bool_value_)                   \
++  X(int, int_value_)                     \
++  X(Value::DoubleStorage, double_value_) \
++  X(std::string, string_value_)          \
++  X(Value::BlobStorage, binary_value_)   \
++  X(Value::ListStorage, list_)           \
+   X(Value::DictStorage, dict_)
+ 
+-#define INNER_STRUCT_LIMIT(type, value) offsetof(Value, value) + sizeof(type),
++#define INNER_FIELD_ALIGNMENT(type, value) alignof(type),
++
++  // The maximum alignment of each inner struct value field inside base::Value
++  size_t max_inner_value_alignment =
++      std::max({INNER_TYPES_LIST(INNER_FIELD_ALIGNMENT)});
++
++  // Check that base::Value has the smallest alignment possible. This would
++  // fail if the header would contain something that has a larger alignment
++  // than necessary.
++  EXPECT_EQ(max_inner_value_alignment, alignof(Value));
++
++  // Find the offset of each inner value. Which should normally not be
++  // larger than 4. Note that we use std::max(4, ...) because bool_value_
++  // could be stored just after the |bool_type_| field, with an offset of
++  // 1, and that would be ok.
++#define INNER_VALUE_START_OFFSET(type, value) offsetof(Value, value),
++
++  size_t min_inner_value_offset =
++      std::min({INNER_TYPES_LIST(INNER_VALUE_START_OFFSET)});
+ 
+-  // Return the maximum size in bytes of each inner struct inside base::Value
+-  size_t max_inner_struct_limit =
+-      std::max({INNER_TYPES_LIST(INNER_STRUCT_LIMIT)});
++  // Inner fields may contain pointers, which have an alignment of 8
++  // on most 64-bit platforms.
++  size_t expected_min_offset = alignof(void*);
++
++  EXPECT_EQ(expected_min_offset, min_inner_value_offset);
+ 
+   // Ensure that base::Value is not larger than necessary, i.e. that there is
+-  // no un-necessary padding afte the structs due to alignment constraints of
++  // no un-necessary padding after the structs due to alignment constraints of
+   // one of the inner fields.
+-  EXPECT_EQ(max_inner_struct_limit, sizeof(Value));
+-  if (max_inner_struct_limit != sizeof(Value)) {
++#define INNER_STRUCT_END_OFFSET(type, value) \
++  offsetof(Value, value) + sizeof(type),
++
++  // The maximum size in bytes of each inner struct inside base::Value,
++  size_t max_inner_struct_end_offset =
++      std::max({INNER_TYPES_LIST(INNER_STRUCT_END_OFFSET)});
++
++  // The expected value size.
++  size_t expected_value_size =
++      AlignSizeTo(max_inner_struct_end_offset, alignof(Value));
++
++  EXPECT_EQ(expected_value_size, sizeof(Value));
++  if (min_inner_value_offset != expected_min_offset ||
++      expected_value_size != sizeof(Value)) {
+     // The following are useful to understand what's wrong when the EXPECT_EQ()
+-    // above actually fails.
+-#define PRINT_INNER_FIELD_INFO(x, y) \
+-  LOG(INFO) << #y " type=" #x " size=" << sizeof(x) << " align=" << alignof(x);
++    // above actually fail.
++#define PRINT_INNER_FIELD_INFO(x, y)                           \
++  LOG(INFO) << #y " type=" #x " offset=" << offsetof(Value, y) \
++            << " size=" << sizeof(x) << " align=" << alignof(x);
+ 
+     LOG(INFO) << "Value size=" << sizeof(Value) << " align=" << alignof(Value);
+     INNER_TYPES_LIST(PRINT_INNER_FIELD_INFO)
+-    LOG(INFO) << "max_inner_struct_limit=" << max_inner_struct_limit;
++    LOG(INFO) << "max_inner_struct_end_offset=" << max_inner_struct_end_offset;
+   }
+ }
+-#endif
++
++#endif  // NDEBUG
+ 
+ TEST(ValuesTest, TestNothrow) {
+   static_assert(std::is_nothrow_move_constructible<Value>::value,
+-- 
+2.21.0
+

diff --git a/www-client/chromium/files/chromium-74-7685422.patch b/www-client/chromium/files/chromium-74-7685422.patch
new file mode 100644
index 00000000000..19747245bd7
--- /dev/null
+++ b/www-client/chromium/files/chromium-74-7685422.patch
@@ -0,0 +1,42 @@
+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
new file mode 100644
index 00000000000..e9e5d22e4a8
--- /dev/null
+++ b/www-client/chromium/files/chromium-74-c2c467f.patch
@@ -0,0 +1,75 @@
+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
+

diff --git a/www-client/chromium/files/chromium-74-e1b1f3a.patch b/www-client/chromium/files/chromium-74-e1b1f3a.patch
new file mode 100644
index 00000000000..344b0874b81
--- /dev/null
+++ b/www-client/chromium/files/chromium-74-e1b1f3a.patch
@@ -0,0 +1,587 @@
+From e1b1f3a5f273c8da533fad495b9de316e2c83c9b Mon Sep 17 00:00:00 2001
+From: jdoerrie <jdoerrie@chromium.org>
+Date: Sat, 16 Mar 2019 04:08:01 +0000
+Subject: [PATCH] [base] Add Dead Type to base::Value
+
+This change adds a temporary DEAD type to base::Value which should help
+to track down use-after-free bugs. Furthermore, this change also removes
+the now unneeded is_alive_ flag.
+
+Bug: 859477, 941404
+Change-Id: I9b7a2f3cbb0b22d7e3ed35b2453537419f3f7e55
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1478897
+Reviewed-by: Pavol Marko <pmarko@chromium.org>
+Reviewed-by: Tao Bai <michaelbai@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Mike Pinkerton <pinkerton@chromium.org>
+Reviewed-by: Bill Budge <bbudge@chromium.org>
+Reviewed-by: Ken Rockot <rockot@google.com>
+Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
+Reviewed-by: Daniel Cheng <dcheng@chromium.org>
+Reviewed-by: David Turner <digit@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#641404}
+---
+ base/json/json_writer.cc                      |  5 ++
+ base/values.cc                                | 68 ++++++++++++-------
+ base/values.h                                 | 23 ++-----
+ base/values_unittest.cc                       | 10 ++-
+ .../ui/cocoa/applescript/apple_event_util.mm  | 10 +++
+ chromeos/network/onc/variable_expander.cc     |  6 ++
+ .../core/browser/android/policy_converter.cc  | 11 ++-
+ .../core/common/policy_loader_win_unittest.cc |  8 ++-
+ .../policy/core/common/policy_test_utils.cc   |  5 ++
+ .../policy/core/common/registry_dict.cc       |  4 ++
+ .../gin_java_script_to_java_types_coercion.cc |  8 ++-
+ ipc/ipc_message_utils.cc                      | 11 ++-
+ mojo/public/cpp/base/values_mojom_traits.h    |  7 +-
+ .../ppb_x509_certificate_private_shared.cc    |  2 +
+ 14 files changed, 127 insertions(+), 51 deletions(-)
+
+diff --git a/base/json/json_writer.cc b/base/json/json_writer.cc
+index 376a459f9a46..cd020e7fa0c0 100644
+--- a/base/json/json_writer.cc
++++ b/base/json/json_writer.cc
+@@ -179,6 +179,11 @@ bool JSONWriter::BuildJSONString(const Value& node, size_t depth) {
+       // Successful only if we're allowed to omit it.
+       DLOG_IF(ERROR, !omit_binary_values_) << "Cannot serialize binary value.";
+       return omit_binary_values_;
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case Value::Type::DEAD:
++      CHECK(false);
++      return false;
+   }
+ 
+   // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
+diff --git a/base/values.cc b/base/values.cc
+index 0c002551b317..035aa2350cde 100644
+--- a/base/values.cc
++++ b/base/values.cc
+@@ -90,8 +90,6 @@ std::unique_ptr<Value> CopyWithoutEmptyChildren(const Value& node) {
+ 
+ }  // namespace
+ 
+-constexpr uint16_t Value::kMagicIsAlive;
+-
+ // static
+ std::unique_ptr<Value> Value::CreateWithCopiedBuffer(const char* buffer,
+                                                      size_t size) {
+@@ -112,9 +110,9 @@ Value::Value(Value&& that) noexcept {
+   InternalMoveConstructFrom(std::move(that));
+ }
+ 
+-Value::Value() noexcept : type_(Type::NONE), is_alive_(kMagicIsAlive) {}
++Value::Value() noexcept : type_(Type::NONE) {}
+ 
+-Value::Value(Type type) : type_(type), is_alive_(kMagicIsAlive) {
++Value::Value(Type type) : type_(type) {
+   // Initialize with the default value.
+   switch (type_) {
+     case Type::NONE:
+@@ -141,22 +139,26 @@ Value::Value(Type type) : type_(type), is_alive_(kMagicIsAlive) {
+     case Type::LIST:
+       new (&list_) ListStorage();
+       return;
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case Type::DEAD:
++      CHECK(false);
++      return;
+   }
++
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+ }
+ 
+ Value::Value(bool in_bool)
+     : bool_type_(Type::BOOLEAN),
+-      bool_is_alive_(kMagicIsAlive),
+       bool_value_(in_bool) {}
+ 
+ Value::Value(int in_int)
+     : int_type_(Type::INTEGER),
+-      int_is_alive_(kMagicIsAlive),
+       int_value_(in_int) {}
+ 
+ Value::Value(double in_double)
+     : double_type_(Type::DOUBLE),
+-      double_is_alive_(kMagicIsAlive),
+       double_value_(in_double) {
+   if (!std::isfinite(double_value_)) {
+     NOTREACHED() << "Non-finite (i.e. NaN or positive/negative infinity) "
+@@ -171,7 +173,6 @@ Value::Value(StringPiece in_string) : Value(std::string(in_string)) {}
+ 
+ Value::Value(std::string&& in_string) noexcept
+     : string_type_(Type::STRING),
+-      string_is_alive_(kMagicIsAlive),
+       string_value_(std::move(in_string)) {
+   DCHECK(IsStringUTF8(string_value_));
+ }
+@@ -182,21 +183,18 @@ Value::Value(StringPiece16 in_string16) : Value(UTF16ToUTF8(in_string16)) {}
+ 
+ Value::Value(const std::vector<char>& in_blob)
+     : binary_type_(Type::BINARY),
+-      binary_is_alive_(kMagicIsAlive),
+       binary_value_(in_blob.begin(), in_blob.end()) {}
+ 
+ Value::Value(base::span<const uint8_t> in_blob)
+     : binary_type_(Type::BINARY),
+-      binary_is_alive_(kMagicIsAlive),
+       binary_value_(in_blob.begin(), in_blob.end()) {}
+ 
+ Value::Value(BlobStorage&& in_blob) noexcept
+     : binary_type_(Type::BINARY),
+-      binary_is_alive_(kMagicIsAlive),
+       binary_value_(std::move(in_blob)) {}
+ 
+ Value::Value(const DictStorage& in_dict)
+-    : dict_type_(Type::DICTIONARY), dict_is_alive_(kMagicIsAlive), dict_() {
++    : dict_type_(Type::DICTIONARY), dict_() {
+   dict_.reserve(in_dict.size());
+   for (const auto& it : in_dict) {
+     dict_.try_emplace(dict_.end(), it.first,
+@@ -206,11 +204,9 @@ Value::Value(const DictStorage& in_dict)
+ 
+ Value::Value(DictStorage&& in_dict) noexcept
+     : dict_type_(Type::DICTIONARY),
+-      dict_is_alive_(kMagicIsAlive),
+       dict_(std::move(in_dict)) {}
+ 
+-Value::Value(const ListStorage& in_list)
+-    : list_type_(Type::LIST), list_is_alive_(kMagicIsAlive), list_() {
++Value::Value(const ListStorage& in_list) : list_type_(Type::LIST), list_() {
+   list_.reserve(in_list.size());
+   for (const auto& val : in_list)
+     list_.emplace_back(val.Clone());
+@@ -218,7 +214,6 @@ Value::Value(const ListStorage& in_list)
+ 
+ Value::Value(ListStorage&& in_list) noexcept
+     : list_type_(Type::LIST),
+-      list_is_alive_(kMagicIsAlive),
+       list_(std::move(in_list)) {}
+ 
+ Value& Value::operator=(Value&& that) noexcept {
+@@ -246,15 +241,21 @@ Value Value::Clone() const {
+       return Value(dict_);
+     case Type::LIST:
+       return Value(list_);
++      // TODO(crbug.com/859477): Remove after root cause is found.
++    case Type::DEAD:
++      CHECK(false);
++      return Value();
+   }
+ 
+-  NOTREACHED();
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+   return Value();
+ }
+ 
+ Value::~Value() {
+   InternalCleanup();
+-  is_alive_ = 0;
++  // TODO(crbug.com/859477): Remove after root cause is found.
++  type_ = Type::DEAD;
+ }
+ 
+ // static
+@@ -654,9 +655,14 @@ bool operator==(const Value& lhs, const Value& rhs) {
+                         });
+     case Value::Type::LIST:
+       return lhs.list_ == rhs.list_;
++      // TODO(crbug.com/859477): Remove after root cause is found.
++    case Value::Type::DEAD:
++      CHECK(false);
++      return false;
+   }
+ 
+-  NOTREACHED();
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+   return false;
+ }
+ 
+@@ -693,9 +699,14 @@ bool operator<(const Value& lhs, const Value& rhs) {
+           });
+     case Value::Type::LIST:
+       return lhs.list_ < rhs.list_;
++      // TODO(crbug.com/859477): Remove after root cause is found.
++    case Value::Type::DEAD:
++      CHECK(false);
++      return false;
+   }
+ 
+-  NOTREACHED();
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+   return false;
+ }
+ 
+@@ -733,7 +744,6 @@ size_t Value::EstimateMemoryUsage() const {
+ 
+ void Value::InternalMoveConstructFrom(Value&& that) {
+   type_ = that.type_;
+-  is_alive_ = that.is_alive_;
+ 
+   switch (type_) {
+     case Type::NONE:
+@@ -759,12 +769,17 @@ void Value::InternalMoveConstructFrom(Value&& that) {
+     case Type::LIST:
+       new (&list_) ListStorage(std::move(that.list_));
+       return;
++      // TODO(crbug.com/859477): Remove after root cause is found.
++    case Type::DEAD:
++      CHECK(false);
++      return;
+   }
++
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+ }
+ 
+ void Value::InternalCleanup() {
+-  CHECK_EQ(is_alive_, kMagicIsAlive);
+-
+   switch (type_) {
+     case Type::NONE:
+     case Type::BOOLEAN:
+@@ -785,7 +800,14 @@ void Value::InternalCleanup() {
+     case Type::LIST:
+       list_.~ListStorage();
+       return;
++      // TODO(crbug.com/859477): Remove after root cause is found.
++    case Type::DEAD:
++      CHECK(false);
++      return;
+   }
++
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+ }
+ 
+ ///////////////////// DictionaryValue ////////////////////
+diff --git a/base/values.h b/base/values.h
+index 429ef1dfdebd..e31cadd83102 100644
+--- a/base/values.h
++++ b/base/values.h
+@@ -92,7 +92,9 @@ class BASE_EXPORT Value {
+     STRING,
+     BINARY,
+     DICTIONARY,
+-    LIST
++    LIST,
++    // TODO(crbug.com/859477): Remove once root cause is found.
++    DEAD
+     // Note: Do not add more types. See the file-level comment above for why.
+   };
+ 
+@@ -375,10 +377,6 @@ class BASE_EXPORT Value {
+   size_t EstimateMemoryUsage() const;
+ 
+  protected:
+-  // Magic IsAlive signature to debug double frees.
+-  // TODO(crbug.com/859477): Remove once root cause is found.
+-  static constexpr uint16_t kMagicIsAlive = 0x2f19;
+-
+   // Technical note:
+   // The naive way to implement a tagged union leads to wasted bytes
+   // in the object on CPUs like ARM ones, which impose an 8-byte alignment
+@@ -408,8 +406,8 @@ class BASE_EXPORT Value {
+   // that |double_value_| below is always located at an offset that is a
+   // multiple of 8, relative to the start of the overall data structure.
+   //
+-  // Each struct must declare its own |type_| and |is_alive_| field, which
+-  // must have a different name, to appease the C++ compiler.
++  // Each struct must declare its own |type_| field, which must have a different
++  // name, to appease the C++ compiler.
+   //
+   // Using this technique sizeof(base::Value) == 16 on 32-bit ARM instead
+   // of 24, without losing any information. Results are unchanged for x86,
+@@ -419,24 +417,17 @@ class BASE_EXPORT Value {
+       // TODO(crbug.com/646113): Make these private once DictionaryValue and
+       // ListValue are properly inlined.
+       Type type_ : 8;
+-
+-      // IsAlive member to debug double frees.
+-      // TODO(crbug.com/859477): Remove once root cause is found.
+-      uint16_t is_alive_ = kMagicIsAlive;
+     };
+     struct {
+       Type bool_type_ : 8;
+-      uint16_t bool_is_alive_;
+       bool bool_value_;
+     };
+     struct {
+       Type int_type_ : 8;
+-      uint16_t int_is_alive_;
+       int int_value_;
+     };
+     struct {
+       Type double_type_ : 8;
+-      uint16_t double_is_alive_;
+       // Subtle: On architectures that require it, the compiler will ensure
+       // that |double_value_|'s offset is a multiple of 8 (e.g. 32-bit ARM).
+       // See technical note above to understand why it is important.
+@@ -444,22 +435,18 @@ class BASE_EXPORT Value {
+     };
+     struct {
+       Type string_type_ : 8;
+-      uint16_t string_is_alive_;
+       std::string string_value_;
+     };
+     struct {
+       Type binary_type_ : 8;
+-      uint16_t binary_is_alive_;
+       BlobStorage binary_value_;
+     };
+     struct {
+       Type dict_type_ : 8;
+-      uint16_t dict_is_alive_;
+       DictStorage dict_;
+     };
+     struct {
+       Type list_type_ : 8;
+-      uint16_t list_is_alive_;
+       ListStorage list_;
+     };
+   };
+diff --git a/base/values_unittest.cc b/base/values_unittest.cc
+index 0a641bcc7ef4..b23fd8332491 100644
+--- a/base/values_unittest.cc
++++ b/base/values_unittest.cc
+@@ -20,17 +20,20 @@
+ #include "base/strings/string16.h"
+ #include "base/strings/string_piece.h"
+ #include "base/strings/utf_string_conversions.h"
++#include "build/build_config.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+ 
+ namespace base {
+ 
++// Test is currently incorrect on Windows x86.
++#if !defined(OS_WIN) || !defined(ARCH_CPU_X86)
+ TEST(ValuesTest, SizeOfValue) {
+   // Ensure that base::Value is as small as possible, i.e. that there is
+   // no wasted space after the inner value due to alignment constraints.
+-  // Distinguish between the 'header' that includes |type_| and |is_alive_|
+-  // and the inner value that follows it, which can be a bool, int, double,
+-  // string, blob, list or dict.
++  // Distinguish between the 'header' that includes |type_| and and the inner
++  // value that follows it, which can be a bool, int, double, string, blob, list
++  // or dict.
+ #define INNER_TYPES_LIST(X)            \
+   X(bool, bool_value_)                 \
+   X(int, int_value_)                   \
+@@ -61,6 +64,7 @@ TEST(ValuesTest, SizeOfValue) {
+     LOG(INFO) << "max_inner_struct_limit=" << max_inner_struct_limit;
+   }
+ }
++#endif
+ 
+ TEST(ValuesTest, TestNothrow) {
+   static_assert(std::is_nothrow_move_constructible<Value>::value,
+diff --git a/chrome/browser/ui/cocoa/applescript/apple_event_util.mm b/chrome/browser/ui/cocoa/applescript/apple_event_util.mm
+index 16d685607ced..25a59338ee73 100644
+--- a/chrome/browser/ui/cocoa/applescript/apple_event_util.mm
++++ b/chrome/browser/ui/cocoa/applescript/apple_event_util.mm
+@@ -96,6 +96,16 @@ NSAppleEventDescriptor* ValueToAppleEventDescriptor(const base::Value* value) {
+       }
+       break;
+     }
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD:
++      CHECK(false);
++      break;
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    default:
++      CHECK(false);
++      break;
+   }
+ 
+   return descriptor;
+diff --git a/chromeos/network/onc/variable_expander.cc b/chromeos/network/onc/variable_expander.cc
+index fd72752c2aa6..cd5bbb238eb3 100644
+--- a/chromeos/network/onc/variable_expander.cc
++++ b/chromeos/network/onc/variable_expander.cc
+@@ -145,6 +145,12 @@ bool VariableExpander::ExpandValue(base::Value* value) const {
+       // Nothing to do here.
+       break;
+     }
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD: {
++      CHECK(false);
++      break;
++    }
+   }
+   return no_error;
+ }
+diff --git a/components/policy/core/browser/android/policy_converter.cc b/components/policy/core/browser/android/policy_converter.cc
+index b711a64febc9..9d41ad0d1507 100644
+--- a/components/policy/core/browser/android/policy_converter.cc
++++ b/components/policy/core/browser/android/policy_converter.cc
+@@ -175,10 +175,17 @@ std::unique_ptr<base::Value> PolicyConverter::ConvertValueToSchema(
+       }
+       return value;
+     }
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD: {
++      CHECK(false);
++      return nullptr;
++    }
+   }
+ 
+-  NOTREACHED();
+-  return std::unique_ptr<base::Value>();
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
++  return nullptr;
+ }
+ 
+ void PolicyConverter::SetPolicyValue(const std::string& key,
+diff --git a/components/policy/core/common/policy_loader_win_unittest.cc b/components/policy/core/common/policy_loader_win_unittest.cc
+index 311e7fb122fc..0377307c5e28 100644
+--- a/components/policy/core/common/policy_loader_win_unittest.cc
++++ b/components/policy/core/common/policy_loader_win_unittest.cc
+@@ -133,8 +133,14 @@ bool InstallValue(const base::Value& value,
+ 
+     case base::Value::Type::BINARY:
+       return false;
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD:
++      CHECK(false);
++      return false;
+   }
+-  NOTREACHED();
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+   return false;
+ }
+ 
+diff --git a/components/policy/core/common/policy_test_utils.cc b/components/policy/core/common/policy_test_utils.cc
+index 5af98b47275c..919f004153ec 100644
+--- a/components/policy/core/common/policy_test_utils.cc
++++ b/components/policy/core/common/policy_test_utils.cc
+@@ -137,6 +137,11 @@ CFPropertyListRef ValueToProperty(const base::Value& value) {
+       // because there's no equivalent JSON type, and policy values can only
+       // take valid JSON values.
+       break;
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD:
++      CHECK(false);
++      break;
+   }
+ 
+   return NULL;
+diff --git a/components/policy/core/common/registry_dict.cc b/components/policy/core/common/registry_dict.cc
+index f3ed372bdcb3..696ba7e04abe 100644
+--- a/components/policy/core/common/registry_dict.cc
++++ b/components/policy/core/common/registry_dict.cc
+@@ -135,6 +135,10 @@ std::unique_ptr<base::Value> ConvertRegistryValue(const base::Value& value,
+     case base::Value::Type::BINARY:
+       // No conversion possible.
+       break;
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD:
++      CHECK(false);
++      return nullptr;
+   }
+ 
+   LOG(WARNING) << "Failed to convert " << value.type() << " to "
+diff --git a/content/browser/android/java/gin_java_script_to_java_types_coercion.cc b/content/browser/android/java/gin_java_script_to_java_types_coercion.cc
+index dabd66ba8c72..84fd5489a414 100644
+--- a/content/browser/android/java/gin_java_script_to_java_types_coercion.cc
++++ b/content/browser/android/java/gin_java_script_to_java_types_coercion.cc
+@@ -722,8 +722,14 @@ jvalue CoerceJavaScriptValueToJavaValue(JNIEnv* env,
+     case base::Value::Type::BINARY:
+       return CoerceGinJavaBridgeValueToJavaValue(
+           env, value, target_type, coerce_to_string, object_refs, error);
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD:
++      CHECK(false);
++      return jvalue();
+   }
+-  NOTREACHED();
++
++  // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++  CHECK(false);
+   return jvalue();
+ }
+ 
+diff --git a/ipc/ipc_message_utils.cc b/ipc/ipc_message_utils.cc
+index ec04c77c6c18..df6ec39bd663 100644
+--- a/ipc/ipc_message_utils.cc
++++ b/ipc/ipc_message_utils.cc
+@@ -92,7 +92,7 @@ void WriteValue(base::Pickle* m, const base::Value* value, int recursion) {
+ 
+   switch (value->type()) {
+     case base::Value::Type::NONE:
+-    break;
++      break;
+     case base::Value::Type::BOOLEAN: {
+       bool val;
+       result = value->GetAsBoolean(&val);
+@@ -147,6 +147,11 @@ void WriteValue(base::Pickle* m, const base::Value* value, int recursion) {
+       }
+       break;
+     }
++
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    default:
++      CHECK(false);
++      break;
+   }
+ }
+ 
+@@ -260,7 +265,9 @@ bool ReadValue(const base::Pickle* m,
+       break;
+     }
+     default:
+-    return false;
++      // TODO(crbug.com/859477): Remove after root cause is found.
++      CHECK(false);
++      return false;
+   }
+ 
+   return true;
+diff --git a/mojo/public/cpp/base/values_mojom_traits.h b/mojo/public/cpp/base/values_mojom_traits.h
+index cdb9bbbd94df..66752b7c90d8 100644
+--- a/mojo/public/cpp/base/values_mojom_traits.h
++++ b/mojo/public/cpp/base/values_mojom_traits.h
+@@ -86,8 +86,13 @@ struct COMPONENT_EXPORT(MOJO_BASE_SHARED_TRAITS)
+         return mojo_base::mojom::ValueDataView::Tag::DICTIONARY_VALUE;
+       case base::Value::Type::LIST:
+         return mojo_base::mojom::ValueDataView::Tag::LIST_VALUE;
++      // TODO(crbug.com/859477): Remove after root cause is found.
++      case base::Value::Type::DEAD:
++        CHECK(false);
++        return mojo_base::mojom::ValueDataView::Tag::NULL_VALUE;
+     }
+-    NOTREACHED();
++    // TODO(crbug.com/859477): Revert to NOTREACHED() after root cause is found.
++    CHECK(false);
+     return mojo_base::mojom::ValueDataView::Tag::NULL_VALUE;
+   }
+ 
+diff --git a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
+index 6ffff36337e0..7f392d50f718 100644
+--- a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
++++ b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
+@@ -73,6 +73,8 @@ PP_Var PPB_X509Certificate_Fields::GetFieldAsPPVar(
+     }
+     case base::Value::Type::DICTIONARY:
+     case base::Value::Type::LIST:
++    // TODO(crbug.com/859477): Remove after root cause is found.
++    case base::Value::Type::DEAD:
+       // Not handled.
+       break;
+   }
+-- 
+2.21.0
+

diff --git a/www-client/chromium/files/chromium-compiler-r8.patch b/www-client/chromium/files/chromium-compiler-r8.patch
new file mode 100644
index 00000000000..5d8bd0efecd
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r8.patch
@@ -0,0 +1,169 @@
+From aff4a3a1c35dc37141a61d2c6b7e703a55f9b371 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 23 Mar 2019 12:12:37 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 55 ++++++++++++----------------------
+ 1 file changed, 19 insertions(+), 36 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index ca6ff2b13809..b614709cd1db 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -240,8 +240,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+     ":compiler_deterministic",
+   ]
+@@ -489,17 +487,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.
+@@ -1540,7 +1527,7 @@ config("chromium_code") {
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1549,10 +1536,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.
+@@ -1561,15 +1544,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" ]
+@@ -1949,7 +1923,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) {
+@@ -1983,7 +1958,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.
+@@ -2006,7 +1982,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2034,7 +2011,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:
+@@ -2081,7 +2059,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:
+@@ -2119,7 +2098,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" ]
+@@ -2221,7 +2201,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.
+@@ -2328,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 = []
+@@ -2380,7 +2362,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/quiche-00f47df.patch b/www-client/chromium/files/quiche-00f47df.patch
new file mode 100644
index 00000000000..720edf934d3
--- /dev/null
+++ b/www-client/chromium/files/quiche-00f47df.patch
@@ -0,0 +1,38 @@
+From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
+From: vasilvv <vasilvv@google.com>
+Date: Wed, 3 Apr 2019 13:58:53 -0700
+Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+QuicStreamSendBuffer constructor is implicitely required in the
+initialization of the vector of substreams in QuicCryptoStream.
+Though clang apparently ignores that, GCC fails to build.
+
+BUG=chromium:819294
+
+Originally submitted by José Dapena Paz <jose.dapena@lge.com> at https://quiche-review.googlesource.com/c/quiche/+/2420
+
+PiperOrigin-RevId: 241800134
+Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
+---
+ quic/core/quic_stream_send_buffer.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/quic/core/quic_stream_send_buffer.h b/quic/core/quic_stream_send_buffer.h
+index e34514b..74e9d0d 100644
+--- a/net/third_party/quic/core/quic_stream_send_buffer.h
++++ b/net/third_party/quic/core/quic_stream_send_buffer.h
+@@ -62,7 +62,7 @@ class QUIC_EXPORT_PRIVATE QuicStreamSendBuffer {
+  public:
+   explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
+   QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
+-  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
++  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
+   ~QuicStreamSendBuffer();
+ 
+   // Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.
+-- 
+2.21.0
+


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

commit:     a307a6b20508519da3a6f038a301334191f62b36
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 18 21:34:56 2019 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Thu Apr 18 21:35:10 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a307a6b2

www-client/chromium: Backport XDG_CURRENT_DESKTOP parsing fix

Closes: https://bugs.gentoo.org/683792
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 www-client/chromium/chromium-73.0.3683.86.ebuild   |   1 +
 .../files/chromium-73-xdg-current-desktop.patch    | 124 +++++++++++++++++++++
 2 files changed, 125 insertions(+)

diff --git a/www-client/chromium/chromium-73.0.3683.86.ebuild b/www-client/chromium/chromium-73.0.3683.86.ebuild
index e02966e7154..9131002b447 100644
--- a/www-client/chromium/chromium-73.0.3683.86.ebuild
+++ b/www-client/chromium/chromium-73.0.3683.86.ebuild
@@ -149,6 +149,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-73-gcc-4.patch"
 	"${FILESDIR}/chromium-73-gcc-5.patch"
 	"${FILESDIR}/chromium-73-gcc-6.patch"
+	"${FILESDIR}/chromium-73-xdg-current-desktop.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-73-xdg-current-desktop.patch b/www-client/chromium/files/chromium-73-xdg-current-desktop.patch
new file mode 100644
index 00000000000..09e3b1d2aec
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-xdg-current-desktop.patch
@@ -0,0 +1,124 @@
+Correct the parsing of the XDG_CURRENT_DESKTOP
+
+The XDG_CURRENT_DESKTOP could contain multiple values in priority order
+separated by colon. Go through them in the loop and return on the first
+one that we recognize/support.
+
+The previous state was causing problems with Chrome on the GNOME Classic
+mode (used in Red Hat Enterprise Linux 7) where the users with multiple
+Google accounts set in Chrome couldn't switch between them - only one was
+shown in the account switcher in i.e. GMail. The reason for that was that
+the XDG_CURRENT_DESKTOP's value GNOME:GNOME-Classic was parsed as
+not as base::nix::DesktopEnvironment::DESKTOP_ENVIRONMENT_GNOME.
+
+base: :nix::DesktopEnvironment::DESKTOP_ENVIRONMENT_OTHER and
+Change-Id: I122f24fd1cf5a0f932c3fccd5220152a9944609d
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1541077
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
+Cr-Commit-Position: refs/heads/master@{#645224}
+diff --git a/base/nix/xdg_util.cc b/base/nix/xdg_util.cc
+index 9ff4d88..f051080 100644
+--- a/base/nix/xdg_util.cc
++++ b/base/nix/xdg_util.cc
+@@ -11,6 +11,7 @@
+ #include "base/files/file_path.h"
+ #include "base/files/file_util.h"
+ #include "base/path_service.h"
++#include "base/strings/string_split.h"
+ #include "base/strings/string_util.h"
+ #include "base/third_party/xdg_user_dirs/xdg_user_dir_lookup.h"
+ 
+@@ -57,35 +58,37 @@
+   // XDG_CURRENT_DESKTOP is the newest standard circa 2012.
+   std::string xdg_current_desktop;
+   if (env->GetVar("XDG_CURRENT_DESKTOP", &xdg_current_desktop)) {
+-    // Not all desktop environments set this env var as of this writing.
+-    if (base::StartsWith(xdg_current_desktop, "Unity",
+-                         base::CompareCase::SENSITIVE)) {
+-      // gnome-fallback sessions set XDG_CURRENT_DESKTOP to Unity
+-      // DESKTOP_SESSION can be gnome-fallback or gnome-fallback-compiz
+-      std::string desktop_session;
+-      if (env->GetVar("DESKTOP_SESSION", &desktop_session) &&
+-          desktop_session.find("gnome-fallback") != std::string::npos) {
+-        return DESKTOP_ENVIRONMENT_GNOME;
+-      }
+-      return DESKTOP_ENVIRONMENT_UNITY;
+-    }
+-    if (xdg_current_desktop == "GNOME")
+-      return DESKTOP_ENVIRONMENT_GNOME;
+-    if (xdg_current_desktop == "X-Cinnamon")
+-      return DESKTOP_ENVIRONMENT_CINNAMON;
+-    if (xdg_current_desktop == "KDE") {
+-      std::string kde_session;
+-      if (env->GetVar(kKDESessionEnvVar, &kde_session)) {
+-        if (kde_session == "5") {
+-          return DESKTOP_ENVIRONMENT_KDE5;
++    // It could have multiple values separated by colon in priority order.
++    for (const auto& value : SplitStringPiece(
++             xdg_current_desktop, ":", TRIM_WHITESPACE, SPLIT_WANT_NONEMPTY)) {
++      if (value == "Unity") {
++        // gnome-fallback sessions set XDG_CURRENT_DESKTOP to Unity
++        // DESKTOP_SESSION can be gnome-fallback or gnome-fallback-compiz
++        std::string desktop_session;
++        if (env->GetVar("DESKTOP_SESSION", &desktop_session) &&
++            desktop_session.find("gnome-fallback") != std::string::npos) {
++          return DESKTOP_ENVIRONMENT_GNOME;
+         }
++        return DESKTOP_ENVIRONMENT_UNITY;
+       }
+-      return DESKTOP_ENVIRONMENT_KDE4;
++      if (value == "GNOME")
++        return DESKTOP_ENVIRONMENT_GNOME;
++      if (value == "X-Cinnamon")
++        return DESKTOP_ENVIRONMENT_CINNAMON;
++      if (value == "KDE") {
++        std::string kde_session;
++        if (env->GetVar(kKDESessionEnvVar, &kde_session)) {
++          if (kde_session == "5") {
++            return DESKTOP_ENVIRONMENT_KDE5;
++          }
++        }
++        return DESKTOP_ENVIRONMENT_KDE4;
++      }
++      if (value == "Pantheon")
++        return DESKTOP_ENVIRONMENT_PANTHEON;
++      if (value == "XFCE")
++        return DESKTOP_ENVIRONMENT_XFCE;
+     }
+-    if (xdg_current_desktop == "Pantheon")
+-      return DESKTOP_ENVIRONMENT_PANTHEON;
+-    if (xdg_current_desktop == "XFCE")
+-      return DESKTOP_ENVIRONMENT_XFCE;
+   }
+ 
+   // DESKTOP_SESSION was what everyone used in 2010.
+diff --git a/base/nix/xdg_util_unittest.cc b/base/nix/xdg_util_unittest.cc
+index e195303..ad81836 100644
+--- a/base/nix/xdg_util_unittest.cc
++++ b/base/nix/xdg_util_unittest.cc
+@@ -34,6 +34,7 @@
+ const char* const kDesktopXFCE = "xfce";
+ const char* const kXdgDesktopCinnamon = "X-Cinnamon";
+ const char* const kXdgDesktopGNOME = "GNOME";
++const char* const kXdgDesktopGNOMEClassic = "GNOME:GNOME-Classic";
+ const char* const kXdgDesktopKDE = "KDE";
+ const char* const kXdgDesktopPantheon = "Pantheon";
+ const char* const kXdgDesktopUnity = "Unity";
+@@ -110,6 +111,15 @@
+   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
+ }
+ 
++TEST(XDGUtilTest, GetXdgDesktopGnomeClassic) {
++  MockEnvironment getter;
++  EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
++  EXPECT_CALL(getter, GetVar(Eq(kXdgDesktop), _))
++      .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopGNOMEClassic), Return(true)));
++
++  EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
++}
++
+ TEST(XDGUtilTest, GetXdgDesktopGnomeFallback) {
+   MockEnvironment getter;
+   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));


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

commit:     3689dcb0330fdf694a3655b05732c0b14527ad42
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 17 20:50:47 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Mar 17 20:51:21 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3689dcb0

www-client/chromium: apply fix for SafeBrowsing

Thanks to Maciej S. Szmigiero for the patch.

Closes: https://bugs.gentoo.org/674504
Package-Manager: Portage-2.3.62, Repoman-2.3.12_p83
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/chromium-73.0.3683.75.ebuild         |  1 +
 www-client/chromium/files/chromium-fix-char_traits.patch | 14 ++++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/www-client/chromium/chromium-73.0.3683.75.ebuild b/www-client/chromium/chromium-73.0.3683.75.ebuild
index d43a6036c46..e02966e7154 100644
--- a/www-client/chromium/chromium-73.0.3683.75.ebuild
+++ b/www-client/chromium/chromium-73.0.3683.75.ebuild
@@ -141,6 +141,7 @@ GTK+ icon theme.
 PATCHES=(
 	"${FILESDIR}/chromium-compiler-r7.patch"
 	"${FILESDIR}/chromium-widevine-r4.patch"
+	"${FILESDIR}/chromium-fix-char_traits.patch"
 	"${FILESDIR}/chromium-73-gcc-0.patch"
 	"${FILESDIR}/chromium-73-gcc-1.patch"
 	"${FILESDIR}/chromium-73-gcc-2.patch"

diff --git a/www-client/chromium/files/chromium-fix-char_traits.patch b/www-client/chromium/files/chromium-fix-char_traits.patch
new file mode 100644
index 00000000000..4cb9503a93f
--- /dev/null
+++ b/www-client/chromium/files/chromium-fix-char_traits.patch
@@ -0,0 +1,14 @@
+--- a/base/strings/char_traits.h
++++ b/base/strings/char_traits.h
+@@ -67,9 +67,9 @@
+   return __builtin_memcmp(s1, s2, n);
+ #else
+   for (; n; --n, ++s1, ++s2) {
+-    if (*s1 < *s2)
++    if ((unsigned char)*s1 < (unsigned char)*s2)
+       return -1;
+-    if (*s1 > *s2)
++    if ((unsigned char)*s1 > (unsigned char)*s2)
+       return 1;
+   }
+   return 0;


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

commit:     82d04f6fd11ef6601e17364aaee1c77995a16adc
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 15 20:56:11 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Feb 15 20:56:11 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=82d04f6f

www-client/chromium: drop obsolete patches

Closes: https://bugs.gentoo.org/673456
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-72.0.3626.96.ebuild   |  4 ---
 www-client/chromium/files/chromium-math.h-r0.patch | 29 ------------------
 www-client/chromium/files/chromium-memcpy-r0.patch | 35 ----------------------
 www-client/chromium/files/chromium-stdint.patch    | 21 -------------
 www-client/chromium/files/chromium-webrtc-r0.patch | 34 ---------------------
 5 files changed, 123 deletions(-)

diff --git a/www-client/chromium/chromium-72.0.3626.96.ebuild b/www-client/chromium/chromium-72.0.3626.96.ebuild
index b34fe2996fc..fd355e67ee9 100644
--- a/www-client/chromium/chromium-72.0.3626.96.ebuild
+++ b/www-client/chromium/chromium-72.0.3626.96.ebuild
@@ -141,10 +141,6 @@ 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() {

diff --git a/www-client/chromium/files/chromium-math.h-r0.patch b/www-client/chromium/files/chromium-math.h-r0.patch
deleted file mode 100644
index 6c7c747053a..00000000000
--- a/www-client/chromium/files/chromium-math.h-r0.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-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-memcpy-r0.patch b/www-client/chromium/files/chromium-memcpy-r0.patch
deleted file mode 100644
index dd2fd57d26a..00000000000
--- a/www-client/chromium/files/chromium-memcpy-r0.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 4942f56ceb6d60d6f54ebca8e6eba8ba01c278e8 Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela@gmail.com>
-Date: Thu, 7 Dec 2017 22:33:34 +0000
-Subject: [PATCH] memcpy used without including string.h
-
-Compiling Chromium with Clang 4.0.1 and using libstdc++ will fail on using
-memcpy without including string.h.
-
-Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
-Change-Id: Idced1d5de3baf6b520d4a2d61774120642ead1a8
-Reviewed-on: https://chromium-review.googlesource.com/813737
-Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
-Reviewed-by: vmpstr <vmpstr@chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#522579}
----
- cc/paint/raw_memory_transfer_cache_entry.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/cc/paint/raw_memory_transfer_cache_entry.cc b/cc/paint/raw_memory_transfer_cache_entry.cc
-index 9e4660c685ee..95ad50b1a338 100644
---- 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 <string.h>
-+
- namespace cc {
- 
- ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry(
--- 
-2.15.1
-

diff --git a/www-client/chromium/files/chromium-stdint.patch b/www-client/chromium/files/chromium-stdint.patch
deleted file mode 100644
index 877443954fa..00000000000
--- a/www-client/chromium/files/chromium-stdint.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-webrtc-r0.patch b/www-client/chromium/files/chromium-webrtc-r0.patch
deleted file mode 100644
index e14b185acb9..00000000000
--- a/www-client/chromium/files/chromium-webrtc-r0.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2019-02-10  6:29 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2019-02-10  6:29 UTC (permalink / raw
  To: gentoo-commits

commit:     f22f0bf9d1674811ed99d19334245e6288b00086
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 10 06:28:01 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Feb 10 06:29:26 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f22f0bf9

www-client/chromium: stable channel bump (72.0.3626.96)

Package-Manager: Portage-2.3.58, Repoman-2.3.12_p63
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   4 +-
 www-client/chromium/chromium-71.0.3578.98.ebuild   | 714 --------------------
 www-client/chromium/chromium-72.0.3595.2.ebuild    | 715 ---------------------
 ...3626.28.ebuild => chromium-72.0.3626.96.ebuild} |  41 +-
 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 --
 .../chromium/files/chromium-compiler-r4.patch      | 168 -----
 .../chromium/files/chromium-pdfium-stdlib-r0.patch |  30 -
 9 files changed, 23 insertions(+), 1854 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 1b44e81cd23..86cd01aa831 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-71.0.3578.80.tar.xz 633878288 BLAKE2B be6dcb4c1123830f8f0413e52e46c6e3356356cbfadcaa77c3960f22a6f1f2f5a7a2e7da415b7c19b75d6cd4b881d45a8aeaa7c311547ac58fc34c87fdf23891 SHA512 79b0f5ebe71a34d9f5215df1b4e47071f2337bb480fbec591011653acdfe524419bd10efdeab334ac34c07bc4eb2c485d60a9c3b2f053a721271130ff98af516
-DIST chromium-71.0.3578.98.tar.xz 633860888 BLAKE2B f232fa3ecef45b3e7d0c9876c2d9133ed0a51f2241c3b354592ea62817b7660e7a91869f0d7f1aee60384e9b87644b837af36ff5d802cee986346778946ce0be SHA512 dbeb90e16c6c05422c1f43e8fe747d60dab49c1fffdd0f33824ca24429f3871bda649eb1e6402470d3d9bb701e47d55d2fff4f46530e3f43e72f516d1837aad6
-DIST chromium-72.0.3595.2.tar.xz 658797888 BLAKE2B 7f0274693e8fac283d75c7e7ff6f672a10937454d989e9aa728b4a9646fe92bd8aaa8c154913d71dd86fd7ced595c1b2475248a9fb521984049af04f289f3f43 SHA512 7d5130e45e28ccf7389c64ca24a12ffc84922ca40d2c0e9a2d9caf27eb40a08cfdda8a902c6d747f864071b6eec752287fe2654f62e7e6c5c42c1334c5f35766
 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.98.ebuild b/www-client/chromium/chromium-71.0.3578.98.ebuild
deleted file mode 100644
index 88e3484e883..00000000000
--- a/www-client/chromium/chromium-71.0.3578.98.ebuild
+++ /dev/null
@@ -1,714 +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="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)"
-
-	# 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/chromium-72.0.3595.2.ebuild b/www-client/chromium/chromium-72.0.3595.2.ebuild
deleted file mode 100644
index 7005f32011c..00000000000
--- a/www-client/chromium/chromium-72.0.3595.2.ebuild
+++ /dev/null
@@ -1,715 +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-r7.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"
-)
-
-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/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/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
-
-if false; then
-	# 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
-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
-}
-
-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.28.ebuild b/www-client/chromium/chromium-72.0.3626.96.ebuild
similarity index 99%
rename from www-client/chromium/chromium-72.0.3626.28.ebuild
rename to www-client/chromium/chromium-72.0.3626.96.ebuild
index 6943618d3e1..e5b46a12319 100644
--- a/www-client/chromium/chromium-72.0.3626.28.ebuild
+++ b/www-client/chromium/chromium-72.0.3626.96.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -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="http://chromium.org/"
 SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
-	https://dev.gentoo.org/~floppym/dist/chromium-webrtc-includes.patch.xz"
+	https://dev.gentoo.org/~floppym/dist/chromium-webrtc-includes-r1.patch.xz"
 
 LICENSE="BSD"
 SLOT="0"
@@ -140,7 +140,7 @@ GTK+ icon theme.
 
 PATCHES=(
 	"${FILESDIR}/chromium-compiler-r7.patch"
-	"${FILESDIR}/chromium-widevine-r3.patch"
+	"${FILESDIR}/chromium-widevine-r4.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-math.h-r0.patch"
@@ -189,7 +189,7 @@ src_prepare() {
 	default
 
 	pushd third_party/webrtc >/dev/null || die
-	eapply "${WORKDIR}"/chromium-webrtc-includes.patch
+	eapply "${WORKDIR}"/chromium-webrtc-includes-r1.patch
 	popd >/dev/null || die
 
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die
@@ -507,6 +507,23 @@ src_configure() {
 	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
@@ -535,22 +552,6 @@ src_configure() {
 	# 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)
 

diff --git a/www-client/chromium/files/chromium-70-gcc-0.patch b/www-client/chromium/files/chromium-70-gcc-0.patch
deleted file mode 100644
index 7005d373254..00000000000
--- a/www-client/chromium/files/chromium-70-gcc-0.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index bca2a1f8e80..00000000000
--- a/www-client/chromium/files/chromium-70-gcc-1.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-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
deleted file mode 100644
index 33041454c52..00000000000
--- a/www-client/chromium/files/chromium-70-gcc-2.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-compiler-r4.patch b/www-client/chromium/files/chromium-compiler-r4.patch
deleted file mode 100644
index 3fe73ef7fec..00000000000
--- a/www-client/chromium/files/chromium-compiler-r4.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch b/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch
deleted file mode 100644
index 1cfa4c55c29..00000000000
--- a/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2018-12-28  2:40 Jason A. Donenfeld
  0 siblings, 0 replies; 135+ messages in thread
From: Jason A. Donenfeld @ 2018-12-28  2:40 UTC (permalink / raw
  To: gentoo-commits

commit:     666ce8363b1335c0b8472d7e650e12240c52f4ea
Author:     Jason A. Donenfeld <zx2c4 <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 27 21:18:03 2018 +0000
Commit:     Jason A. Donenfeld <zx2c4 <AT> gentoo <DOT> org>
CommitDate: Fri Dec 28 02:39:54 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=666ce836

www-client/chromium: fix widevine and cleanup unused patch

Fixes: 670928
Package-Manager: Portage-2.3.51, Repoman-2.3.12
Signed-off-by: Jason A. Donenfeld <zx2c4 <AT> gentoo.org>

 .../chromium/chromium-72.0.3626.28-r1.ebuild       | 715 +++++++++++++++++++++
 .../chromium/files/chromium-widevine-r2.patch      |  39 --
 .../chromium/files/chromium-widevine-r4.patch      |  24 +
 3 files changed, 739 insertions(+), 39 deletions(-)

diff --git a/www-client/chromium/chromium-72.0.3626.28-r1.ebuild b/www-client/chromium/chromium-72.0.3626.28-r1.ebuild
new file mode 100644
index 00000000000..814e42f8bfc
--- /dev/null
+++ b/www-client/chromium/chromium-72.0.3626.28-r1.ebuild
@@ -0,0 +1,715 @@
+# 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
+	https://dev.gentoo.org/~floppym/dist/chromium-webrtc-includes.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.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)"
+	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/files/chromium-widevine-r2.patch b/www-client/chromium/files/chromium-widevine-r2.patch
deleted file mode 100644
index 5527f7f293c..00000000000
--- a/www-client/chromium/files/chromium-widevine-r2.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Minimal patch to get chromium to compile with widevine support.
-
-Exactly the same as -r1, but we now need to patch
-ninja to pretty please not terminate our build.
-
-caveat emptor: it's in no way clear that building chromium this
-way is safer, from a security perspective, than whatever Google
-Chrome does.
-
-Upstream appears to be cooking up a code-signing trust-chain
-which may protect users against malicious cdm blobs; I doubt
-we benefit from these using this kludge.  Ideally, someone
-would look into this more carefully than I have ... tbh as
-soon as I got my "stories" back, I pretty much lost interest :)
-
--gmt
-
---
---- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
-+++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
-@@ -10,6 +10,7 @@
-
- #include "third_party/widevine/cdm/widevine_cdm_common.h"
-
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- #define WIDEVINE_CDM_AVAILABLE
-
- #endif  // WIDEVINE_CDM_VERSION_H_
---- a/third_party/widevine/cdm/BUILD.gn
-+++ b/third_party/widevine/cdm/BUILD.gn
-@@ -11,7 +11,7 @@ import("//third_party/widevine/cdm/widev
- # Internal Cast builds set enable_widevine=true to bring in Widevine support.
- # TODO(xhwang): Support component updated CDM on other platforms and remove this
- # assert.
--assert(!enable_widevine || is_win || is_mac || is_chromecast,
-+assert(!enable_widevine || is_win || is_mac || is_chromecast || is_linux,
-        "Component updated CDM only supported on Windows and Mac for now.")
-
- widevine_arch = current_cpu

diff --git a/www-client/chromium/files/chromium-widevine-r4.patch b/www-client/chromium/files/chromium-widevine-r4.patch
new file mode 100644
index 00000000000..5f912a675a2
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r4.patch
@@ -0,0 +1,24 @@
+Define WIDEVINE_CDM_VERSION_STRING && re-re-re-patch for latest ninja
+--
+diff -urpN a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
+--- a/chrome/common/chrome_content_client.cc	2018-12-19 13:48:52.000000000 -0800
++++ b/chrome/common/chrome_content_client.cc	2018-12-25 20:24:51.062139147 -0800
+@@ -99,7 +99,7 @@
+ // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
+ // bundled and not a component. When the Widevine CDM is a component, it is
+ // registered in widevine_cdm_component_installer.cc.
+-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
++#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+ #define REGISTER_BUNDLED_WIDEVINE_CDM
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"  // nogncheck
+ // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
+diff -urpN a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h
+--- a/third_party/widevine/cdm/widevine_cdm_version.h	2018-12-19 13:49:55.000000000 -0800
++++ b/third_party/widevine/cdm/widevine_cdm_version.h	2018-12-25 20:30:09.290141783 -0800
+@@ -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_


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

commit:     7f378bdb0d0f7dc68f0abc6a71774cb0815e9b10
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  5 03:29:33 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Nov  5 03:29:33 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f378bdb

www-client/chromium: dev channel bump (72.0.3595.2)

Package-Manager: Portage-2.3.51_p9, Repoman-2.3.12
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-72.0.3595.2.ebuild    | 711 +++++++++++++++++++++
 .../chromium/files/chromium-compiler-r7.patch      | 176 +++++
 3 files changed, 888 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0192285a2ef..fbe4e2aa6b6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-70.0.3538.67.tar.xz 623057648 BLAKE2B fd6667d8ca82721ca4cb70b39f66c88f1e10f82a5f9b8beadabd56882f9e4e32e249b25f4484a323f8efc9d940f2afb1c73b76cea0803ce18c138adfc8bdc3c0 SHA512 923dd574dce15627678d1601d34e37285ac438bb61ee252ecd15bdec3e5f76066897848addeedd3c61f2c5e550a284d14e0af3d02ae5666c9f6eb047c9d4441f
 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
+DIST chromium-72.0.3595.2.tar.xz 658797888 BLAKE2B 7f0274693e8fac283d75c7e7ff6f672a10937454d989e9aa728b4a9646fe92bd8aaa8c154913d71dd86fd7ced595c1b2475248a9fb521984049af04f289f3f43 SHA512 7d5130e45e28ccf7389c64ca24a12ffc84922ca40d2c0e9a2d9caf27eb40a08cfdda8a902c6d747f864071b6eec752287fe2654f62e7e6c5c42c1334c5f35766

diff --git a/www-client/chromium/chromium-72.0.3595.2.ebuild b/www-client/chromium/chromium-72.0.3595.2.ebuild
new file mode 100644
index 00000000000..50e9aa7b82d
--- /dev/null
+++ b/www-client/chromium/chromium-72.0.3595.2.ebuild
@@ -0,0 +1,711 @@
+# 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-r7.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"
+)
+
+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/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/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
+	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
+
+if false; then
+	# 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
+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
+}
+
+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-compiler-r7.patch b/www-client/chromium/files/chromium-compiler-r7.patch
new file mode 100644
index 00000000000..dcf40a8be00
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r7.patch
@@ -0,0 +1,176 @@
+From 6ba946c7116f4f1d0b35fc90716b6e940116b74b 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 | 62 +++++++++++-----------------------
+ 1 file changed, 19 insertions(+), 43 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 677003ac646c..f38bc908622a 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.
+@@ -1512,7 +1499,7 @@ config("chromium_code") {
+       defines = [ "_HAS_NODISCARD" ]
+     }
+   } else {
+-    cflags = [ "-Wall" ]
++    cflags = []
+     if (treat_warnings_as_errors) {
+       cflags += [ "-Werror" ]
+ 
+@@ -1521,10 +1508,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.
+@@ -1533,22 +1516,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" ]
+@@ -1925,7 +1892,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) {
+@@ -1959,7 +1927,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.
+@@ -1982,7 +1951,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2006,7 +1976,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:
+@@ -2053,7 +2024,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:
+@@ -2091,7 +2063,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" ]
+@@ -2193,7 +2166,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.
+@@ -2294,7 +2268,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 = []
+@@ -2337,7 +2312,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
+


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

commit:     b04680338806ed8c7c345da7f65af6673d35d59b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 15 04:58:03 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Oct 15 04:59:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0468033

www-client/chromium: dev channel bump (71.0.3573.0)

Package-Manager: Portage-2.3.50_p14, Repoman-2.3.11_p21
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +-
 ...0.3554.4.ebuild => chromium-71.0.3573.0.ebuild} |  41 +++--
 www-client/chromium/files/chromium-ceil-r0.patch   |  59 +++++++
 .../chromium/files/chromium-compiler-r6.patch      | 170 +++++++++++++++++++++
 .../chromium/files/chromium-widevine-r3.patch      |  23 +++
 5 files changed, 279 insertions(+), 16 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0dc8a80d14f..f9246fe25f2 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-69.0.3497.100.tar.xz 617374764 BLAKE2B 45805e7a743982c167974cbe223b126dad83cca2eca6c78b6fe707431b2df45cb30271c0ee5002839c84f661260063852a1e1a913d26a073a87fb20e7b4d964e SHA512 bc9dd4a63eb9a8c369bd360f7fd0fb9b72addfa553e9a9d8adbfafe7ec4af39ec1fb3dd6523af1f17cb141aaf017ca4b6abc357c4a595ff627e88c58e87e8f6f
 DIST chromium-70.0.3538.45.tar.xz 622986816 BLAKE2B f21d7755251e62c52dd8ea7a7e3300b77c8ca361671632e778becd68ff205c4d84386b7feab12aeb1f18082a79dca4d69a414294c2055bbb29ef448a27c783e0 SHA512 a5f87fd765e7cb9b07ffa3b04aed2d5a7f94c213de6b9d0abcb3e1e8e640e3b70e44d233c2865b418a021285fd1e797db49e3e9dd1cc9ac24f815419d57132a1
 DIST chromium-70.0.3538.54.tar.xz 623081708 BLAKE2B 795bb43b3f36f9caedd72959446398b3129de7428fa055427aca8df962cb10f450ebaa32ae9bb538fd2d6842c198cab6e8eb9a4f7d2f7c74c5d6abfd75740669 SHA512 c20ee15f6f0856940ac6696de6fe258c528719101c10ef8f04773355e9c60a41eba5c3ace75f5be368c9b8107a3c5053bf56727aa3626ad012f8cd5371eb7d0e
-DIST chromium-71.0.3554.4.tar.xz 626667348 BLAKE2B 4cdbd7041fd087c860bfc5c731073713ac01059fa388de10684058a81178d007e6fe2ad2bf6ce58a44b5489b24ded1a29862f98dd8f9ec8484e5e0d9d7a2e38e SHA512 ad4c6bc8ab857bf1a928b959129f5b64c1333f109cc7a5482f3bea3cab070faee85e41128acc4d9e479a312dd66ec201cf115e2dd8e35587f1bdd95ff78dfd18
 DIST chromium-71.0.3559.6.tar.xz 626881656 BLAKE2B 4712e7bb9c7018ed4ace7f8d7d7c313e26c6a156c937084f5553e18bd38edd98536b09e867718ed1e9e561c3f39ddc6de4802b780e33d72f1329f636fa356250 SHA512 12ba43ee94aa185d13035c01755b0166082fe4831f1787e755de11a9b6121c0384eb04352f0582659a23908acc4544db359a30e0f22715d69f357c8a1baa3aac
+DIST chromium-71.0.3573.0.tar.xz 626729588 BLAKE2B 5fc5b030f8bfef2721234026ba5411896795132592db2c4732f98b08d74b31ed2fe9b59efc78754b5f72d5908f1d5ccb1054abdead51c53235c1118fa91b2cbf SHA512 27a8dd60dc319b33d954440b1e8aac382a4fe6afaca88e63175b72c6040c5bb5653d01ecabd8e8ebd99d954781299fa3bf44518c0fc396d9d56a97bdb1291503

diff --git a/www-client/chromium/chromium-71.0.3554.4.ebuild b/www-client/chromium/chromium-71.0.3573.0.ebuild
similarity index 95%
rename from www-client/chromium/chromium-71.0.3554.4.ebuild
rename to www-client/chromium/chromium-71.0.3573.0.ebuild
index d01d061f6ab..4b58a52df69 100644
--- a/www-client/chromium/chromium-71.0.3554.4.ebuild
+++ b/www-client/chromium/chromium-71.0.3573.0.ebuild
@@ -1,14 +1,14 @@
 # Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI="6"
+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 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+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/"
@@ -89,6 +89,8 @@ RDEPEND="${COMMON_DEPEND}
 # 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
@@ -101,11 +103,16 @@ 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
 "
 
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+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
@@ -130,12 +137,13 @@ GTK+ icon theme.
 "
 
 PATCHES=(
-	"${FILESDIR}/chromium-compiler-r4.patch"
-	"${FILESDIR}/chromium-widevine-r2.patch"
+	"${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-ceil-r0.patch"
 )
 
 pre_build_checks() {
@@ -154,14 +162,12 @@ pre_build_checks() {
 	# 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
+	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
-	eshopts_pop
 	check-reqs_pkg_setup
 }
 
@@ -317,6 +323,7 @@ src_prepare() {
 		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
@@ -380,7 +387,7 @@ src_configure() {
 	# Make sure the build system will use the right tools, bug #340795.
 	tc-export AR CC CXX NM
 
-	if ! tc-is-clang; then
+	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++
@@ -677,17 +684,21 @@ src_install() {
 	readme.gentoo_create_doc
 }
 
-pkg_preinst() {
-	gnome2_icon_savelist
-}
-
 pkg_postrm() {
-	gnome2_icon_cache_update
+	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() {
-	gnome2_icon_cache_update
+	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-ceil-r0.patch b/www-client/chromium/files/chromium-ceil-r0.patch
new file mode 100644
index 00000000000..9e7f2a7392e
--- /dev/null
+++ b/www-client/chromium/files/chromium-ceil-r0.patch
@@ -0,0 +1,59 @@
+From cc843eb64f6599d9ede176f711fe6355015c30b1 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Mon, 8 Oct 2018 22:33:38 +0000
+Subject: [PATCH] PictureLayerImpl: Use ceil() instead of ceilf()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ceilf() is only formally mentioned in C++17, even though previous versions
+of the standard say <cmath> should have the same contents as C's math.h.
+
+libstdc++ does not ship ceilf() in its cmath, but the ceil(float) overload
+that _is_ in the standard is available everywhere, so use that instead.
+
+This fixes the build with libstdc++ after 77b67445ba ("Elements with fixed
+bottom and top stick to top"):
+
+    ../../cc/layers/picture_layer_impl.cc: In member function ‘void cc::PictureLayerImpl::UpdateViewportRectForTilePriorityInContentSpace()’:
+    ../../cc/layers/picture_layer_impl.cc:738:16: error: ‘ceilf’ is not a member of ‘std’
+               std::ceilf(-total_controls_height * hidden_ratio));  // bottom
+                    ^~~~~
+    ../../cc/layers/picture_layer_impl.cc:738:16: note: suggested alternative: ‘ceil’
+               std::ceilf(-total_controls_height * hidden_ratio));  // bottom
+                    ^~~~~
+                    ceil
+
+Bug: 819294
+Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
+Change-Id: Ida69eb3127ca132e7090c9aad0dd17dc314b6992
+Reviewed-on: https://chromium-review.googlesource.com/c/1264537
+Commit-Queue: David Bokan <bokan@chromium.org>
+Reviewed-by: David Bokan <bokan@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#597709}
+---
+ cc/layers/picture_layer_impl.cc | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
+index 937255884a6e..020bcee55201 100644
+--- a/cc/layers/picture_layer_impl.cc
++++ b/cc/layers/picture_layer_impl.cc
+@@ -727,10 +727,10 @@ void PictureLayerImpl::UpdateViewportRectForTilePriorityInContentSpace() {
+           1.f - layer_tree_impl()->CurrentBrowserControlsShownRatio();
+ 
+       viewport_rect_for_tile_priority_in_content_space_.Inset(
+-          0,                                                   // left
+-          0,                                                   // top,
+-          0,                                                   // right,
+-          std::ceilf(-total_controls_height * hidden_ratio));  // bottom
++          0,                                                  // left
++          0,                                                  // top,
++          0,                                                  // right,
++          std::ceil(-total_controls_height * hidden_ratio));  // bottom
+     }
+   }
+ }
+-- 
+2.19.1
+

diff --git a/www-client/chromium/files/chromium-compiler-r6.patch b/www-client/chromium/files/chromium-compiler-r6.patch
new file mode 100644
index 00000000000..db8d04649fd
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r6.patch
@@ -0,0 +1,170 @@
+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-widevine-r3.patch b/www-client/chromium/files/chromium-widevine-r3.patch
new file mode 100644
index 00000000000..a126084563c
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r3.patch
@@ -0,0 +1,23 @@
+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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2018-09-30 21:28 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2018-09-30 21:28 UTC (permalink / raw
  To: gentoo-commits

commit:     f74d5c2bf0a8b39abb9de39588e45a6dc1e2dbb2
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 30 21:26:36 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Sep 30 21:28:20 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f74d5c2b

www-client/chromium: dev channel bump (71.0.3559.6)

Package-Manager: Portage-2.3.50_p10, Repoman-2.3.11_p17
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-71.0.3559.6.ebuild    | 693 +++++++++++++++++++++
 .../chromium/files/chromium-compiler-r5.patch      | 167 +++++
 3 files changed, 861 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 323194c86e8..0fe4a3695cf 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-69.0.3497.100.tar.xz 617374764 BLAKE2B 45805e7a743982c167974cbe223
 DIST chromium-70.0.3538.22.tar.xz 622935696 BLAKE2B d2eb7f72aa9967d2620a705549c13d081aa5b011d47536ca3e1aa77989a9723a6187dab0d0c31c6f4e50469b05960411c8635c24cc9e58a5ed2651c5affb13d9 SHA512 5af260a217734965e4475211646a992b0c568e81610f552c13773082055ee7cc3356f9d60b85abc118e7d7866c903ddc6f4e64d1f0c4126cba19d886dc79b189
 DIST chromium-70.0.3538.35.tar.xz 622959384 BLAKE2B 1b32897a08a63e6e1a4bcabef97d5b92a568632014b1c197ae76da6f1a6fb76f0ef93b50d41556d27943c72e8b7cefd36249cdd08204992abb54742c63b4c00f SHA512 e4539ab964d95cc56c5c7d963787207b5e2c50a8aa12ac5e6d1e71f35be3adf60881b63f4c189c53f3f80bc69779556d61365afa2d8db43dba4a7bbd781591d9
 DIST chromium-71.0.3554.4.tar.xz 626667348 BLAKE2B 4cdbd7041fd087c860bfc5c731073713ac01059fa388de10684058a81178d007e6fe2ad2bf6ce58a44b5489b24ded1a29862f98dd8f9ec8484e5e0d9d7a2e38e SHA512 ad4c6bc8ab857bf1a928b959129f5b64c1333f109cc7a5482f3bea3cab070faee85e41128acc4d9e479a312dd66ec201cf115e2dd8e35587f1bdd95ff78dfd18
+DIST chromium-71.0.3559.6.tar.xz 626881656 BLAKE2B 4712e7bb9c7018ed4ace7f8d7d7c313e26c6a156c937084f5553e18bd38edd98536b09e867718ed1e9e561c3f39ddc6de4802b780e33d72f1329f636fa356250 SHA512 12ba43ee94aa185d13035c01755b0166082fe4831f1787e755de11a9b6121c0384eb04352f0582659a23908acc4544db359a30e0f22715d69f357c8a1baa3aac

diff --git a/www-client/chromium/chromium-71.0.3559.6.ebuild b/www-client/chromium/chromium-71.0.3559.6.ebuild
new file mode 100644
index 00000000000..c458dff8774
--- /dev/null
+++ b/www-client/chromium/chromium-71.0.3559.6.ebuild
@@ -0,0 +1,693 @@
+# Copyright 1999-2018 Gentoo Authors
+# 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 ~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.8.8:=[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}
+	>=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
+	>=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-compiler-r5.patch"
+	"${FILESDIR}/chromium-widevine-r2.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"
+	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
+		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/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-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 ! 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
+
+	einfo "Configuring Chromium..."
+	set -- 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
+
+	# 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_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-r5.patch b/www-client/chromium/files/chromium-compiler-r5.patch
new file mode 100644
index 00000000000..6d6b980b168
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r5.patch
@@ -0,0 +1,167 @@
+From 07fa6b9176dfd1acd4eb6706323ab4823f530432 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 | 60 ++++++++++------------------------
+ 1 file changed, 18 insertions(+), 42 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 0e796978d479..fa77c2476e4e 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -235,8 +235,6 @@ config("compiler") {
+ 
+   configs += [
+     # See the definitions below.
+-    ":clang_revision",
+-    ":compiler_cpu_abi",
+     ":compiler_codegen",
+   ]
+ 
+@@ -501,17 +499,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.
+@@ -1510,10 +1497,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",
+         ]
+       }
+     }
+@@ -1555,22 +1538,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" ]
+@@ -1940,7 +1907,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) {
+@@ -1974,7 +1942,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.
+@@ -1997,7 +1966,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -2021,7 +1991,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:
+@@ -2068,7 +2039,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:
+@@ -2106,7 +2078,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" ]
+@@ -2192,7 +2165,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.
+@@ -2290,7 +2264,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 = []
+@@ -2330,7 +2305,8 @@ config("minimal_symbols") {
+ }
+ 
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+   if (!is_win) {
+     cflags = [ "-g0" ]
+     asmflags = cflags
+-- 
+2.19.0
+


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

commit:     4df468253f85ead4ce444e2d4945d2457181606b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 22 04:44:12 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jul 22 04:44:54 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4df46825

www-client/chromium: disable EBP usage in ffmpeg on x86

Closes: https://bugs.gentoo.org/656902
Package-Manager: Portage-2.3.40_p15, Repoman-2.3.9_p247

 www-client/chromium/chromium-67.0.3396.99.ebuild       |  1 +
 www-client/chromium/chromium-68.0.3440.68.ebuild       |  1 +
 www-client/chromium/chromium-69.0.3493.3.ebuild        |  1 +
 www-client/chromium/files/chromium-ffmpeg-ebp-r0.patch | 18 ++++++++++++++++++
 www-client/chromium/files/chromium-ffmpeg-ebp-r1.patch | 18 ++++++++++++++++++
 5 files changed, 39 insertions(+)

diff --git a/www-client/chromium/chromium-67.0.3396.99.ebuild b/www-client/chromium/chromium-67.0.3396.99.ebuild
index 48fa2fe9d54..15b156c8058 100644
--- a/www-client/chromium/chromium-67.0.3396.99.ebuild
+++ b/www-client/chromium/chromium-67.0.3396.99.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-stdint.patch"
 	"${FILESDIR}/chromium-ffmpeg-r1.patch"
 	"${FILESDIR}/chromium-ffmpeg-clang.patch"
+	"${FILESDIR}/chromium-ffmpeg-ebp-r0.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/chromium-68.0.3440.68.ebuild b/www-client/chromium/chromium-68.0.3440.68.ebuild
index 13d9aa7c022..09d01b49d5a 100644
--- a/www-client/chromium/chromium-68.0.3440.68.ebuild
+++ b/www-client/chromium/chromium-68.0.3440.68.ebuild
@@ -140,6 +140,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-libjpeg-r0.patch"
 	"${FILESDIR}/chromium-cors-string-r0.patch"
 	"${FILESDIR}/chromium-libwebp-shim-r0.patch"
+	"${FILESDIR}/chromium-ffmpeg-ebp-r1.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/chromium-69.0.3493.3.ebuild b/www-client/chromium/chromium-69.0.3493.3.ebuild
index 42156a1df10..8846a001bb7 100644
--- a/www-client/chromium/chromium-69.0.3493.3.ebuild
+++ b/www-client/chromium/chromium-69.0.3493.3.ebuild
@@ -137,6 +137,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-math.h-r0.patch"
 	"${FILESDIR}/chromium-stdint.patch"
+	"${FILESDIR}/chromium-ffmpeg-ebp-r0.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-ffmpeg-ebp-r0.patch b/www-client/chromium/files/chromium-ffmpeg-ebp-r0.patch
new file mode 100644
index 00000000000..e7161c6d110
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-ebp-r0.patch
@@ -0,0 +1,18 @@
+https://bugs.chromium.org/p/chromium/issues/detail?id=796379
+https://bugs.gentoo.org/656902
+
+--- a/third_party/ffmpeg/BUILD.gn
+--- b/third_party/ffmpeg/BUILD.gn
+@@ -247,11 +247,7 @@
+     # On POSIX x86, sanitizers will fail to compiler the H264 CABAC code due to
+     # insufficient registers unless we disable EBP usage. crbug.com/786760
+     if (target_cpu == "x86") {
+-      if (using_sanitizer) {
+-        defines += [ "HAVE_EBP_AVAILABLE=0" ]
+-      } else {
+-        defines += [ "HAVE_EBP_AVAILABLE=1" ]
+-      }
++      defines += [ "HAVE_EBP_AVAILABLE=0" ]
+     }
+ 
+     if (!is_clang) {

diff --git a/www-client/chromium/files/chromium-ffmpeg-ebp-r1.patch b/www-client/chromium/files/chromium-ffmpeg-ebp-r1.patch
new file mode 100644
index 00000000000..5e0f151514f
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-ebp-r1.patch
@@ -0,0 +1,18 @@
+https://bugs.chromium.org/p/chromium/issues/detail?id=796379
+https://bugs.gentoo.org/656902
+
+--- a/third_party/ffmpeg/BUILD.gn
+--- b/third_party/ffmpeg/BUILD.gn
+@@ -239,11 +239,7 @@
+   # Windows builds can't compile without EBP because we can't omit frame
+   # pointers like we do on posix.
+   if (target_cpu == "x86") {
+-    if (using_sanitizer || is_win) {
+-      defines += [ "HAVE_EBP_AVAILABLE=0" ]
+-    } else {
+-      defines += [ "HAVE_EBP_AVAILABLE=1" ]
+-    }
++    defines += [ "HAVE_EBP_AVAILABLE=0" ]
+   }
+ 
+   if (is_posix || is_fuchsia) {


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

commit:     638b26902c073f9213b12525dd0c4b75bb71ceef
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 15 17:36:45 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Jun 15 17:39:06 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=638b2690

www-client/chromium: beta channel bump (68.0.3440.25)

Package-Manager: Portage-2.3.40_p14, Repoman-2.3.9_p246

 www-client/chromium/Manifest                       |   2 +-
 ....3438.3.ebuild => chromium-68.0.3440.25.ebuild} |   6 +-
 .../chromium/files/chromium-compiler-r1.patch      | 174 ----------------
 .../chromium/files/chromium-ffmpeg-build-r0.patch  | 218 ---------------------
 .../chromium/files/chromium-gn-bootstrap-r23.patch |  56 ------
 .../chromium/files/chromium-gn-bootstrap-r24.patch |  31 ---
 6 files changed, 4 insertions(+), 483 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c08b9f6d600..dbffd378cc4 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-67.0.3396.62.tar.xz 591452000 BLAKE2B 01d63d21548fcfc707e3ab1d293f24f34237784ec87949e2886a364d7e8f517f82e98803f45b690111a31304d269917442305d04fa13c34180f852007280a78c SHA512 c768701a04600f6dd981ea036a28973df104281dcdadda20d0ae515a0b80112b94840cee36823676c4b4cd71e0e6ef069af801f746fea29d65f978a3666f6cb0
 DIST chromium-67.0.3396.79.tar.xz 591459156 BLAKE2B c62a54ceaf240a06ce54ff2e13ea1c22bb89c7d88628ab005230ded307b44836c96f12fc85cef85fe088fbed66e203bc359d2b516347969d733e99b0e6d143b6 SHA512 4b7cd2cdc5a2b784e61498e945dbac0a086f2ff9224e0c050f85ab86183602860b34dc305c99730c31478820e48a1da4570284359f13275ab2b10592190cbca8
 DIST chromium-67.0.3396.87.tar.xz 591491608 BLAKE2B 9069c4b2e000e180a9b21bbdbb67428817073cd662830f7e736073833f2e6ab2f94f3127d15ed521e34c82de727f137e0065fd3aa7fa7312c4940b1bd8959ccc SHA512 6f9c108b70b63cd45e8238c1962ec11d4f2d01e4f2a6b6483bfafc7986ed6001d5f09f9b0b893c864a08bade9d93346395bb2d045dcafb2ef94b0f4e00f2fe0d
-DIST chromium-68.0.3438.3.tar.xz 624448788 BLAKE2B 25e8f6bfc9171f17a634caa8974a01dba8e0b40dba78534f8b04cbced98566ce8addba65907165599587d0120563073f051af2af19601e4556182b9ec5442113 SHA512 2ff17270acee971bf9a2770b826f919979f24ab7be12a00504ad0b16e72f21fd70f7dc543e8823f8c1737ff785ae900e999d2e82153ff84d0b33cf68ad82a2a2
 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

diff --git a/www-client/chromium/chromium-68.0.3438.3.ebuild b/www-client/chromium/chromium-68.0.3440.25.ebuild
similarity index 99%
rename from www-client/chromium/chromium-68.0.3438.3.ebuild
rename to www-client/chromium/chromium-68.0.3440.25.ebuild
index 804f17a0e7d..13d9aa7c022 100644
--- a/www-client/chromium/chromium-68.0.3438.3.ebuild
+++ b/www-client/chromium/chromium-68.0.3440.25.ebuild
@@ -132,13 +132,14 @@ 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"
+	"${FILESDIR}/chromium-libjpeg-r0.patch"
+	"${FILESDIR}/chromium-cors-string-r0.patch"
+	"${FILESDIR}/chromium-libwebp-shim-r0.patch"
 )
 
 pre_build_checks() {
@@ -266,7 +267,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

diff --git a/www-client/chromium/files/chromium-compiler-r1.patch b/www-client/chromium/files/chromium-compiler-r1.patch
deleted file mode 100644
index 3c75c1d96df..00000000000
--- a/www-client/chromium/files/chromium-compiler-r1.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-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-ffmpeg-build-r0.patch b/www-client/chromium/files/chromium-ffmpeg-build-r0.patch
deleted file mode 100644
index 5d9d0d26ecd..00000000000
--- a/www-client/chromium/files/chromium-ffmpeg-build-r0.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From 92b5903a360931a7ba335fc10ae2e0802652326b Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Sun, 6 May 2018 13:13:37 -0400
-Subject: [PATCH] Remove arch-specic code from build_ffmpeg.py
-
----
- chromium/scripts/build_ffmpeg.py | 185 -------------------------------
- 1 file changed, 185 deletions(-)
-
-diff --git a/chromium/scripts/build_ffmpeg.py b/chromium/scripts/build_ffmpeg.py
-index aa1fc54755..d7d8878db6 100755
---- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
-+++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
-@@ -534,201 +534,16 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch, parallel_jobs,
-     configure_flags['Common'].extend(SetupAndroidToolchain(target_arch))
-   else:
-     configure_flags['Common'].extend([
--        # --optflags doesn't append multiple entries, so set all at once.
--        '--optflags="-O2"',
-         '--enable-decoder=theora,vp8',
-         '--enable-parser=vp3,vp8',
-     ])
- 
--  if target_os in ('linux', 'linux-noasm', 'android'):
--    if target_arch == 'x64':
--      if target_os == 'android':
--        configure_flags['Common'].extend([
--            '--arch=x86_64',
--        ])
--      if target_os != 'android':
--        configure_flags['Common'].extend(['--enable-lto'])
--      pass
--    elif target_arch == 'ia32':
--      configure_flags['Common'].extend([
--          '--arch=i686',
--          '--extra-cflags="-m32"',
--          '--extra-ldflags="-m32"',
--      ])
--      # Android ia32 can't handle textrels and ffmpeg can't compile without
--      # them.  http://crbug.com/559379
--      if target_os == 'android':
--        configure_flags['Common'].extend([
--            '--disable-x86asm',
--        ])
--    elif target_arch == 'arm' or target_arch == 'arm-neon':
--      # TODO(ihf): ARM compile flags are tricky. The final options
--      # overriding everything live in chroot /build/*/etc/make.conf
--      # (some of them coming from src/overlays/overlay-<BOARD>/make.conf).
--      # We try to follow these here closely. In particular we need to
--      # set ffmpeg internal #defines to conform to make.conf.
--      # TODO(ihf): For now it is not clear if thumb or arm settings would be
--      # faster. I ran experiments in other contexts and performance seemed
--      # to be close and compiler version dependent. In practice thumb builds are
--      # much smaller than optimized arm builds, hence we go with the global
--      # CrOS settings.
--      configure_flags['Common'].extend([
--          '--arch=arm',
--          '--enable-armv6',
--          '--enable-armv6t2',
--          '--enable-vfp',
--          '--enable-thumb',
--          '--extra-cflags=-march=armv7-a',
--      ])
--
--      if target_os == 'android':
--        configure_flags['Common'].extend([
--            # Runtime neon detection requires /proc/cpuinfo access, so ensure
--            # av_get_cpu_flags() is run outside of the sandbox when enabled.
--            '--enable-neon',
--            '--extra-cflags=-mtune=generic-armv7-a',
--            # Enabling softfp lets us choose either softfp or hardfp when doing
--            # the chrome build.
--            '--extra-cflags=-mfloat-abi=softfp',
--        ])
--        if target_arch == 'arm':
--          print('arm-neon is the only supported arm arch for Android.\n')
--          return 1
--
--        if target_arch == 'arm-neon':
--          configure_flags['Common'].extend([
--              '--extra-cflags=-mfpu=neon',
--          ])
--        else:
--          configure_flags['Common'].extend([
--              '--extra-cflags=-mfpu=vfpv3-d16',
--          ])
--      else:
--        if host_arch != 'arm':
--          configure_flags['Common'].extend([
--              '--enable-cross-compile',
--              '--target-os=linux',
--              '--extra-cflags=--target=arm-linux-gnueabihf',
--              '--extra-ldflags=--target=arm-linux-gnueabihf',
--              '--sysroot=' + os.path.join(CHROMIUM_ROOT_DIR,
--                                          'build/linux/debian_sid_arm-sysroot'),
--              '--extra-cflags=-mtune=cortex-a8',
--              # NOTE: we don't need softfp for this hardware.
--              '--extra-cflags=-mfloat-abi=hard',
--              # For some reason configure drops this...
--              '--extra-cflags=-O2',
--          ])
--
--        if target_arch == 'arm-neon':
--          configure_flags['Common'].extend([
--              '--enable-neon',
--              '--extra-cflags=-mfpu=neon',
--          ])
--        else:
--          configure_flags['Common'].extend([
--              '--disable-neon',
--              '--extra-cflags=-mfpu=vfpv3-d16',
--          ])
--    elif target_arch == 'arm64':
--      if target_os != 'android':
--        configure_flags['Common'].extend([
--            '--enable-cross-compile',
--            '--cross-prefix=/usr/bin/aarch64-linux-gnu-',
--            '--target-os=linux',
--            '--extra-cflags=--target=aarch64-linux-gnu',
--            '--extra-ldflags=--target=aarch64-linux-gnu',
--            '--sysroot=' + os.path.join(CHROMIUM_ROOT_DIR,
--                                        'build/linux/debian_sid_arm64-sysroot'),
--        ])
--      configure_flags['Common'].extend([
--          '--arch=aarch64',
--          '--enable-armv8',
--          '--extra-cflags=-march=armv8-a',
--      ])
--    elif target_arch == 'mipsel':
--      # These flags taken from android chrome build with target_cpu='mipsel'
--      configure_flags['Common'].extend([
--          '--arch=mipsel',
--          '--disable-mips32r6',
--          '--disable-mips32r5',
--          '--disable-mips32r2',
--          '--disable-mipsdsp',
--          '--disable-mipsdspr2',
--          '--disable-msa',
--          '--enable-mipsfpu',
--          '--extra-cflags=-march=mipsel',
--          '--extra-cflags=-mcpu=mips32',
--          # Required to avoid errors about dynamic relocation w/o -fPIC.
--          '--extra-ldflags=-z notext',
--      ])
--      if target_os == 'linux':
--        configure_flags['Common'].extend([
--            '--enable-cross-compile',
--            '--target-os=linux',
--            '--sysroot=' + os.path.join(CHROMIUM_ROOT_DIR,
--                                        'build/linux/debian_sid_mips-sysroot'),
--            '--extra-cflags=--target=mipsel-linux-gnu',
--            '--extra-ldflags=--target=mipsel-linux-gnu',
--        ])
--    elif target_arch == 'mips64el':
--      # These flags taken from android chrome build with target_cpu='mips64el'
--      configure_flags['Common'].extend([
--          '--arch=mips64el',
--          '--enable-mipsfpu',
--          '--disable-mipsdsp',
--          '--disable-mipsdspr2',
--          '--extra-cflags=-march=mips64el',
--          # Required to avoid errors about dynamic relocation w/o -fPIC.
--          '--extra-ldflags=-z notext',
--      ])
--      if target_os == 'android':
--        configure_flags['Common'].extend([
--            '--enable-mips64r6',
--            '--extra-cflags=-mcpu=mips64r6',
--            '--disable-mips64r2',
--            '--enable-msa',
--        ])
--      if target_os == 'linux':
--        configure_flags['Common'].extend([
--            '--enable-cross-compile',
--            '--target-os=linux',
--            '--sysroot=' + os.path.join(
--                CHROMIUM_ROOT_DIR, 'build/linux/debian_sid_mips64el-sysroot'),
--            '--enable-mips64r2',
--            '--disable-mips64r6',
--            '--disable-msa',
--            '--extra-cflags=-mcpu=mips64r2',
--            '--extra-cflags=--target=mips64el-linux-gnuabi64',
--            '--extra-ldflags=--target=mips64el-linux-gnuabi64',
--        ])
--    else:
--      print(
--          'Error: Unknown target arch %r for target OS %r!' % (target_arch,
--                                                               target_os),
--          file=sys.stderr)
--      return 1
--
-   if target_os == 'linux-noasm':
-     configure_flags['Common'].extend([
-         '--disable-asm',
-         '--disable-inline-asm',
-     ])
- 
--  if 'win' not in target_os:
--    configure_flags['Common'].extend([
--        '--enable-pic',
--        '--cc=clang',
--        '--cxx=clang++',
--        '--ld=clang',
--    ])
--
--    # Clang Linux will use the first 'ld' it finds on the path, which will
--    # typically be the system one, so explicitly configure use of Clang's
--    # ld.lld, to ensure that things like cross-compilation and LTO work.
--    # This does not work for arm64, ia32 and is always used on mac.
--    if target_arch not in ['arm64', 'ia32', 'mipsel'] and target_os != 'mac':
--      configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
--
-   # Should be run on Mac.
-   if target_os == 'mac':
-     if host_os != 'mac':
--- 
-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
deleted file mode 100644
index e826a4dfc37..00000000000
--- a/www-client/chromium/files/chromium-gn-bootstrap-r23.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r24.patch b/www-client/chromium/files/chromium-gn-bootstrap-r24.patch
deleted file mode 100644
index 0577dd4cf73..00000000000
--- a/www-client/chromium/files/chromium-gn-bootstrap-r24.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2018-06-10  2:48 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2018-06-10  2:48 UTC (permalink / raw
  To: gentoo-commits

commit:     79f11419507ebc46b3fe2bd48ec962df27b31d30
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 10 02:47:55 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jun 10 02:48:15 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79f11419

www-client/chromium: beta channel bump (68.0.3440.17)

Package-Manager: Portage-2.3.40_p14, Repoman-2.3.9_p246

 www-client/chromium/Manifest                       |  2 +-
 ....3409.2.ebuild => chromium-68.0.3440.17.ebuild} | 48 ++++++-----------
 .../chromium/files/chromium-cors-string-r0.patch   | 51 ++++++++++++++++++
 .../chromium/files/chromium-libjpeg-r0.patch       | 62 ++++++++++++++++++++++
 .../chromium/files/chromium-libwebp-shim-r0.patch  | 43 +++++++++++++++
 5 files changed, 173 insertions(+), 33 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 13945ede85e..aef8717a345 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,4 @@
 DIST chromium-67.0.3396.62.tar.xz 591452000 BLAKE2B 01d63d21548fcfc707e3ab1d293f24f34237784ec87949e2886a364d7e8f517f82e98803f45b690111a31304d269917442305d04fa13c34180f852007280a78c SHA512 c768701a04600f6dd981ea036a28973df104281dcdadda20d0ae515a0b80112b94840cee36823676c4b4cd71e0e6ef069af801f746fea29d65f978a3666f6cb0
 DIST chromium-67.0.3396.79.tar.xz 591459156 BLAKE2B c62a54ceaf240a06ce54ff2e13ea1c22bb89c7d88628ab005230ded307b44836c96f12fc85cef85fe088fbed66e203bc359d2b516347969d733e99b0e6d143b6 SHA512 4b7cd2cdc5a2b784e61498e945dbac0a086f2ff9224e0c050f85ab86183602860b34dc305c99730c31478820e48a1da4570284359f13275ab2b10592190cbca8
-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
+DIST chromium-68.0.3440.17.tar.xz 624240248 BLAKE2B 9322f731efbc218dbefec351984f93bac5deedee3cc5ce426a619262d885097f28d8532a3d5b55e8daacd2c28dee2dd85dd4063687cbc7ed7d125d2a2a48f885 SHA512 1a6af7c5f3bfe87b37844c9d863f512aa464de75252487877d7796fa0dc246a533357086c64701f624809493eef97fced23d3eaa449819b38ce6038227015d35

diff --git a/www-client/chromium/chromium-68.0.3409.2.ebuild b/www-client/chromium/chromium-68.0.3440.17.ebuild
similarity index 94%
rename from www-client/chromium/chromium-68.0.3409.2.ebuild
rename to www-client/chromium/chromium-68.0.3440.17.ebuild
index 11a9cd104a2..13d9aa7c022 100644
--- a/www-client/chromium/chromium-68.0.3409.2.ebuild
+++ b/www-client/chromium/chromium-68.0.3440.17.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 ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator 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 xdg-utils
 
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="http://chromium.org/"
@@ -104,22 +104,8 @@ DEPEND="${COMMON_DEPEND}
 	>=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
@@ -145,14 +131,15 @@ GTK+ icon theme.
 
 PATCHES=(
 	"${FILESDIR}/chromium-widevine-r2.patch"
-	"${FILESDIR}/chromium-compiler-r1.patch"
-	"${FILESDIR}/chromium-ffmpeg-build-r0.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-gn-bootstrap-r23.patch"
+	"${FILESDIR}/chromium-libjpeg-r0.patch"
+	"${FILESDIR}/chromium-cors-string-r0.patch"
+	"${FILESDIR}/chromium-libwebp-shim-r0.patch"
 )
 
 pre_build_checks() {
@@ -218,6 +205,8 @@ src_prepare() {
 		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
@@ -241,7 +230,10 @@ src_prepare() {
 		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
@@ -275,11 +267,11 @@ 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
 		third_party/libsrtp
+		third_party/libsync
 		third_party/libudev
 		third_party/libwebm
 		third_party/libxml/chromium
@@ -310,9 +302,12 @@ src_prepare() {
 		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
@@ -557,7 +552,8 @@ src_configure() {
 	# https://bugs.gentoo.org/654216
 	addpredict /dev/dri/ #nowarn
 
-	if ! use system-ffmpeg; then
+	#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"
@@ -587,18 +583,6 @@ src_compile() {
 
 	#"${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

diff --git a/www-client/chromium/files/chromium-cors-string-r0.patch b/www-client/chromium/files/chromium-cors-string-r0.patch
new file mode 100644
index 00000000000..b724cd44df7
--- /dev/null
+++ b/www-client/chromium/files/chromium-cors-string-r0.patch
@@ -0,0 +1,51 @@
+From 01d891fa0790950549c7bedb34edf869827a372e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Thu, 31 May 2018 17:03:37 +0000
+Subject: [PATCH] CORS legacy: add missing string include
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The cors_legacy.h file includes declarations using std::string, but
+it is not declared due to missing #include <string>.
+
+Also drop unneeded declarations in .cpp file.
+
+Change-Id: I00df799f84a6c3530c2f12f1e52d24c7d9bd6bfd
+Reviewed-on: https://chromium-review.googlesource.com/1080707
+Reviewed-by: Tom Sepez <tsepez@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#563282}
+---
+ services/network/public/cpp/cors/cors_legacy.cc | 2 --
+ services/network/public/cpp/cors/cors_legacy.h  | 1 +
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/services/network/public/cpp/cors/cors_legacy.cc b/services/network/public/cpp/cors/cors_legacy.cc
+index 8f32ac3be64e..f01af63619b5 100644
+--- a/services/network/public/cpp/cors/cors_legacy.cc
++++ b/services/network/public/cpp/cors/cors_legacy.cc
+@@ -5,8 +5,6 @@
+ #include "services/network/public/cpp/cors/cors_legacy.h"
+ 
+ #include <algorithm>
+-#include <string>
+-#include <vector>
+ 
+ #include "url/gurl.h"
+ #include "url/url_util.h"
+diff --git a/services/network/public/cpp/cors/cors_legacy.h b/services/network/public/cpp/cors/cors_legacy.h
+index d2cdf026ca3a..dc9295a92c47 100644
+--- a/services/network/public/cpp/cors/cors_legacy.h
++++ b/services/network/public/cpp/cors/cors_legacy.h
+@@ -5,6 +5,7 @@
+ #ifndef SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
+ #define SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
+ 
++#include <string>
+ #include <vector>
+ 
+ #include "base/component_export.h"
+-- 
+2.17.1
+

diff --git a/www-client/chromium/files/chromium-libjpeg-r0.patch b/www-client/chromium/files/chromium-libjpeg-r0.patch
new file mode 100644
index 00000000000..5354281cace
--- /dev/null
+++ b/www-client/chromium/files/chromium-libjpeg-r0.patch
@@ -0,0 +1,62 @@
+From c6b0194f7a4d9f494b2d51f46d2c332e2e5f4050 Mon Sep 17 00:00:00 2001
+From: Daniel Bratell <bratell@opera.com>
+Date: Mon, 28 May 2018 13:13:01 +0000
+Subject: [PATCH] Use the same libjpeg in all of blink/platform
+
+The normal libjpeg renames some symbols with macros so if its
+headers are included together with libjpeg-turbo's headers
+in the same translation unit, there will be an inconsistent
+renaming of libjpeg symbols. This happened in some extreme
+jumbo configuration and resulted in confising linker errors.
+
+This patch changes an include so that jpeglib.h becomes included
+the same way everywhere.
+
+Change-Id: I7f122d0919d58371bb40dc0097a766b857b9815e
+Reviewed-on: https://chromium-review.googlesource.com/1073423
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Commit-Queue: Daniel Bratell <bratell@opera.com>
+Cr-Commit-Position: refs/heads/master@{#562243}
+---
+ .../renderer/platform/image-encoders/image_encoder.cc | 11 +++++++++++
+ .../renderer/platform/image-encoders/image_encoder.h  |  2 --
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
+index 0c7f14c7c0e4..4c450f5d6783 100644
+--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
++++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
+@@ -4,6 +4,17 @@
+ 
+ #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
+ 
++#include "build/build_config.h"
++
++#if defined(OS_WIN)
++#include <basetsd.h>  // Included before jpeglib.h because of INT32 clash
++#endif                // OS_WIN
++#include <stdio.h>    // Needed by jpeglib.h
++
++#include "jpeglib.h"  // for JPEG_MAX_DIMENSION
++
++#include "third_party/libwebp/src/webp/encode.h"  // for WEBP_MAX_DIMENSION
++
+ namespace blink {
+ 
+ bool ImageEncoder::Encode(Vector<unsigned char>* dst,
+diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.h b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
+index 0d1460f34827..40306097d507 100644
+--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.h
++++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
+@@ -7,8 +7,6 @@
+ 
+ #include "third_party/blink/renderer/platform/platform_export.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+-#include "third_party/libjpeg/jpeglib.h"          // for JPEG_MAX_DIMENSION
+-#include "third_party/libwebp/src/webp/encode.h"  // for WEBP_MAX_DIMENSION
+ #include "third_party/skia/include/core/SkStream.h"
+ #include "third_party/skia/include/encode/SkJpegEncoder.h"
+ #include "third_party/skia/include/encode/SkPngEncoder.h"
+-- 
+2.17.1
+

diff --git a/www-client/chromium/files/chromium-libwebp-shim-r0.patch b/www-client/chromium/files/chromium-libwebp-shim-r0.patch
new file mode 100644
index 00000000000..cb387a4a003
--- /dev/null
+++ b/www-client/chromium/files/chromium-libwebp-shim-r0.patch
@@ -0,0 +1,43 @@
+diff --git a/build/linux/unbundle/libwebp.gn b/build/linux/unbundle/libwebp.gn
+index ab92adecf400..12574d87be58 100644
+--- a/build/linux/unbundle/libwebp.gn
++++ b/build/linux/unbundle/libwebp.gn
+@@ -2,12 +2,34 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_libwebp") {
++  packages = [
++    "libwebp",
++    "libwebpdemux",
++    "libwebpmux",
++  ]
++}
++
++shim_headers("libwebp_shim") {
++  root_path = "src"
++  headers = [
++    "webp/decode.h",
++    "webp/demux.h",
++    "webp/encode.h",
++    "webp/mux.h",
++    "webp/mux_types.h",
++    "webp/types.h",
++  ]
++}
++
+ source_set("libwebp_webp") {
+-  libs = [
+-    "webp",
+-    "webpdemux",
+-    "webpmux",
++  deps = [
++    ":libwebp_shim",
+   ]
++  public_configs = [ ":system_libwebp" ]
+ }
+ 
+ group("libwebp") {


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

commit:     8fb54a71f9b06a06175b182c4dda2df588d9c22a
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  9 18:17:06 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Jun  9 18:21:25 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8fb54a71

www-client/chromium: remove old

Package-Manager: Portage-2.3.40_p14, Repoman-2.3.9_p246

 www-client/chromium/Manifest                       |   3 -
 www-client/chromium/chromium-66.0.3359.170.ebuild  | 701 ---------------------
 www-client/chromium/chromium-66.0.3359.181.ebuild  | 701 ---------------------
 www-client/chromium/chromium-67.0.3396.56.ebuild   | 697 --------------------
 .../files/chromium-FORTIFY_SOURCE-r2.patch         |  30 -
 www-client/chromium/files/chromium-clang-r2.patch  |  21 -
 www-client/chromium/files/chromium-clang-r4.patch  |  11 -
 .../chromium/files/chromium-widevine-r1.patch      |  14 -
 8 files changed, 2178 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 209fe3b6fe8..3b133f4c77c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,3 @@
-DIST chromium-66.0.3359.170.tar.xz 583956312 BLAKE2B 313ac8c785147e940ead222aeb30181af3c5848bdc7e706bf83a42078c63ce71431a7d17ad4937a6a37cc72beb67725ead790f489a1d31c70a9a94a2e73a9c45 SHA512 69c78975c517d6d59225c92968c1be879e3a2ca2a3671f38a5f8b6303719f6bc441b1d1fe0b19818ab7f9a06cd15bf8631d03ad4931da6fdc641ba2894eecad2
-DIST chromium-66.0.3359.181.tar.xz 583985908 BLAKE2B 22794b379591da9e4bfb1ea38aec2f53e88584079ef8d0e56434d65b2f86bddf37ac41a82b9e94ae41700f10ce8b7a8bfe2c794ffe63ce9d04b2704bfe2a209d SHA512 3549cae27ce33a19bab857c91da1ed96c1ae36123b71bdf41a8bbacdc9554d15b4902e835dc4a8ef8016e69344b809aab4e1e3b1b26bd54d5ca651048bcb9886
-DIST chromium-67.0.3396.56.tar.xz 589901992 BLAKE2B e5207de67db589d65dbaf7af493308a60e3951993f439218c025d10fecd331052a3dfd0f196f3c7e078cda79af3d248a94550a6ffb8c0da7842592e48de20313 SHA512 a7397ebcff54e184ad510fcc7d7958a4adafcf53c88a7ad951fc361366439b01c4e1a77dfcfadbf1f96d92e9ea503287862e7cd2521be696919cf3ee0f1d0816
 DIST chromium-67.0.3396.62.tar.xz 591452000 BLAKE2B 01d63d21548fcfc707e3ab1d293f24f34237784ec87949e2886a364d7e8f517f82e98803f45b690111a31304d269917442305d04fa13c34180f852007280a78c SHA512 c768701a04600f6dd981ea036a28973df104281dcdadda20d0ae515a0b80112b94840cee36823676c4b4cd71e0e6ef069af801f746fea29d65f978a3666f6cb0
 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-66.0.3359.170.ebuild b/www-client/chromium/chromium-66.0.3359.170.ebuild
deleted file mode 100644
index 068e87e1f02..00000000000
--- a/www-client/chromium/chromium-66.0.3359.170.ebuild
+++ /dev/null
@@ -1,701 +0,0 @@
-# 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 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/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"
-	"${FILESDIR}/chromium-ffmpeg-clang.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/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=${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
-		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/chromium-66.0.3359.181.ebuild b/www-client/chromium/chromium-66.0.3359.181.ebuild
deleted file mode 100644
index dc900e5faf6..00000000000
--- a/www-client/chromium/chromium-66.0.3359.181.ebuild
+++ /dev/null
@@ -1,701 +0,0 @@
-# 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 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/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"
-	"${FILESDIR}/chromium-ffmpeg-clang.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/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=${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
-		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/chromium-67.0.3396.56.ebuild b/www-client/chromium/chromium-67.0.3396.56.ebuild
deleted file mode 100644
index 773792ab8f9..00000000000
--- a/www-client/chromium/chromium-67.0.3396.56.ebuild
+++ /dev/null
@@ -1,697 +0,0 @@
-# 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 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-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-ffmpeg-clang.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/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/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=${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
-		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-FORTIFY_SOURCE-r2.patch b/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch
deleted file mode 100644
index 8ebf42a46a8..00000000000
--- a/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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
-@@ -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-clang-r2.patch b/www-client/chromium/files/chromium-clang-r2.patch
deleted file mode 100644
index aaee1671764..00000000000
--- a/www-client/chromium/files/chromium-clang-r2.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/build/config/compiler/BUILD.gn
-+++ b/build/config/compiler/BUILD.gn
-@@ -422,18 +422,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=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.

diff --git a/www-client/chromium/files/chromium-clang-r4.patch b/www-client/chromium/files/chromium-clang-r4.patch
deleted file mode 100644
index 8d5122f70c3..00000000000
--- a/www-client/chromium/files/chromium-clang-r4.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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-widevine-r1.patch b/www-client/chromium/files/chromium-widevine-r1.patch
deleted file mode 100644
index f206878cf07..00000000000
--- a/www-client/chromium/files/chromium-widevine-r1.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Minimal patch to get chromium to compile with widevine support
-
-https://bugs.gentoo.org/show_bug.cgi?id=547630
-
---- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
-+++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
-@@ -10,6 +10,7 @@
- 
- #include "third_party/widevine/cdm/widevine_cdm_common.h"
- 
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- #define WIDEVINE_CDM_AVAILABLE
- 
- #endif  // WIDEVINE_CDM_VERSION_H_


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

commit:     09b804516320eee06930303870cd68008aac8a8a
Author:     Gregory M. Turner <gmt <AT> be-evil <DOT> net>
AuthorDate: Tue May  8 19:27:31 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed May  9 16:56:57 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09b80451

www-client/chromium: widevine rehabilitation

>chromium-66 ebuilds dropped the widevine useflag because upstream
decided (again! but only "for now") to add code to induce build
failure when linux builds request widevine.

However, it seems that if we just add linux to the whitelist,
everything works as before (but buckle up, there may be
turbulent skies ahead).

nb: ninja no longer copies the widevine .so to out/ (so we needn't
remove it anymore in src_install).

Signed-off-by: Gregory M. Turner <gmt <AT> be-evil.net>
Closes: https://github.com/gentoo/gentoo/pull/8323

 www-client/chromium/chromium-67.0.3396.18.ebuild   |  5 ++-
 www-client/chromium/chromium-67.0.3396.30.ebuild   |  5 ++-
 www-client/chromium/chromium-68.0.3409.2.ebuild    |  5 ++-
 .../chromium/files/chromium-widevine-r2.patch      | 39 ++++++++++++++++++++++
 4 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/chromium-67.0.3396.18.ebuild b/www-client/chromium/chromium-67.0.3396.18.ebuild
index ececa654c8c..fe48e8dc8ec 100644
--- a/www-client/chromium/chromium-67.0.3396.18.ebuild
+++ b/www-client/chromium/chromium-67.0.3396.18.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 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"
+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="
@@ -85,6 +85,7 @@ RDEPEND="${COMMON_DEPEND}
 	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
@@ -144,6 +145,7 @@ GTK+ icon theme.
 "
 
 PATCHES=(
+	"${FILESDIR}/chromium-widevine-r2.patch"
 	"${FILESDIR}/chromium-compiler-r0.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
@@ -467,6 +469,7 @@ src_configure() {
 
 	# 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)"

diff --git a/www-client/chromium/chromium-67.0.3396.30.ebuild b/www-client/chromium/chromium-67.0.3396.30.ebuild
index ececa654c8c..fe48e8dc8ec 100644
--- a/www-client/chromium/chromium-67.0.3396.30.ebuild
+++ b/www-client/chromium/chromium-67.0.3396.30.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 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"
+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="
@@ -85,6 +85,7 @@ RDEPEND="${COMMON_DEPEND}
 	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
@@ -144,6 +145,7 @@ GTK+ icon theme.
 "
 
 PATCHES=(
+	"${FILESDIR}/chromium-widevine-r2.patch"
 	"${FILESDIR}/chromium-compiler-r0.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
@@ -467,6 +469,7 @@ src_configure() {
 
 	# 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)"

diff --git a/www-client/chromium/chromium-68.0.3409.2.ebuild b/www-client/chromium/chromium-68.0.3409.2.ebuild
index 86da01dec68..956659ce7cf 100644
--- a/www-client/chromium/chromium-68.0.3409.2.ebuild
+++ b/www-client/chromium/chromium-68.0.3409.2.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 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"
+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="
@@ -85,6 +85,7 @@ RDEPEND="${COMMON_DEPEND}
 	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
@@ -144,6 +145,7 @@ GTK+ icon theme.
 "
 
 PATCHES=(
+	"${FILESDIR}/chromium-widevine-r2.patch"
 	"${FILESDIR}/chromium-compiler-r1.patch"
 	"${FILESDIR}/chromium-ffmpeg-build-r0.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
@@ -472,6 +474,7 @@ src_configure() {
 
 	# 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)"

diff --git a/www-client/chromium/files/chromium-widevine-r2.patch b/www-client/chromium/files/chromium-widevine-r2.patch
new file mode 100644
index 00000000000..5527f7f293c
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r2.patch
@@ -0,0 +1,39 @@
+Minimal patch to get chromium to compile with widevine support.
+
+Exactly the same as -r1, but we now need to patch
+ninja to pretty please not terminate our build.
+
+caveat emptor: it's in no way clear that building chromium this
+way is safer, from a security perspective, than whatever Google
+Chrome does.
+
+Upstream appears to be cooking up a code-signing trust-chain
+which may protect users against malicious cdm blobs; I doubt
+we benefit from these using this kludge.  Ideally, someone
+would look into this more carefully than I have ... tbh as
+soon as I got my "stories" back, I pretty much lost interest :)
+
+-gmt
+
+--
+--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
+@@ -10,6 +10,7 @@
+
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+ #define WIDEVINE_CDM_AVAILABLE
+
+ #endif  // WIDEVINE_CDM_VERSION_H_
+--- a/third_party/widevine/cdm/BUILD.gn
++++ b/third_party/widevine/cdm/BUILD.gn
+@@ -11,7 +11,7 @@ import("//third_party/widevine/cdm/widev
+ # Internal Cast builds set enable_widevine=true to bring in Widevine support.
+ # TODO(xhwang): Support component updated CDM on other platforms and remove this
+ # assert.
+-assert(!enable_widevine || is_win || is_mac || is_chromecast,
++assert(!enable_widevine || is_win || is_mac || is_chromecast || is_linux,
+        "Component updated CDM only supported on Windows and Mac for now.")
+
+ widevine_arch = current_cpu


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

commit:     6c397b9187d660d61dfbfd4fab1fdf60e5227faa
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun May  6 17:29:22 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun May  6 17:29:40 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c397b91

www-client/chromium: remove arch-specic code from build_ffmpeg.py

Closes: https://bugs.gentoo.org/655088
Package-Manager: Portage-2.3.36, Repoman-2.3.9_p193

 www-client/chromium/chromium-68.0.3409.2.ebuild    |   2 +-
 .../chromium/files/chromium-ffmpeg-build-r0.patch  | 218 +++++++++++++++++++++
 2 files changed, 219 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/chromium-68.0.3409.2.ebuild b/www-client/chromium/chromium-68.0.3409.2.ebuild
index bc37e0d7109..86da01dec68 100644
--- a/www-client/chromium/chromium-68.0.3409.2.ebuild
+++ b/www-client/chromium/chromium-68.0.3409.2.ebuild
@@ -145,12 +145,12 @@ GTK+ icon theme.
 
 PATCHES=(
 	"${FILESDIR}/chromium-compiler-r1.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-ffmpeg-clang.patch"
 	"${FILESDIR}/chromium-gn-bootstrap-r23.patch"
 )
 

diff --git a/www-client/chromium/files/chromium-ffmpeg-build-r0.patch b/www-client/chromium/files/chromium-ffmpeg-build-r0.patch
new file mode 100644
index 00000000000..5d9d0d26ecd
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-build-r0.patch
@@ -0,0 +1,218 @@
+From 92b5903a360931a7ba335fc10ae2e0802652326b Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sun, 6 May 2018 13:13:37 -0400
+Subject: [PATCH] Remove arch-specic code from build_ffmpeg.py
+
+---
+ chromium/scripts/build_ffmpeg.py | 185 -------------------------------
+ 1 file changed, 185 deletions(-)
+
+diff --git a/chromium/scripts/build_ffmpeg.py b/chromium/scripts/build_ffmpeg.py
+index aa1fc54755..d7d8878db6 100755
+--- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
++++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
+@@ -534,201 +534,16 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch, parallel_jobs,
+     configure_flags['Common'].extend(SetupAndroidToolchain(target_arch))
+   else:
+     configure_flags['Common'].extend([
+-        # --optflags doesn't append multiple entries, so set all at once.
+-        '--optflags="-O2"',
+         '--enable-decoder=theora,vp8',
+         '--enable-parser=vp3,vp8',
+     ])
+ 
+-  if target_os in ('linux', 'linux-noasm', 'android'):
+-    if target_arch == 'x64':
+-      if target_os == 'android':
+-        configure_flags['Common'].extend([
+-            '--arch=x86_64',
+-        ])
+-      if target_os != 'android':
+-        configure_flags['Common'].extend(['--enable-lto'])
+-      pass
+-    elif target_arch == 'ia32':
+-      configure_flags['Common'].extend([
+-          '--arch=i686',
+-          '--extra-cflags="-m32"',
+-          '--extra-ldflags="-m32"',
+-      ])
+-      # Android ia32 can't handle textrels and ffmpeg can't compile without
+-      # them.  http://crbug.com/559379
+-      if target_os == 'android':
+-        configure_flags['Common'].extend([
+-            '--disable-x86asm',
+-        ])
+-    elif target_arch == 'arm' or target_arch == 'arm-neon':
+-      # TODO(ihf): ARM compile flags are tricky. The final options
+-      # overriding everything live in chroot /build/*/etc/make.conf
+-      # (some of them coming from src/overlays/overlay-<BOARD>/make.conf).
+-      # We try to follow these here closely. In particular we need to
+-      # set ffmpeg internal #defines to conform to make.conf.
+-      # TODO(ihf): For now it is not clear if thumb or arm settings would be
+-      # faster. I ran experiments in other contexts and performance seemed
+-      # to be close and compiler version dependent. In practice thumb builds are
+-      # much smaller than optimized arm builds, hence we go with the global
+-      # CrOS settings.
+-      configure_flags['Common'].extend([
+-          '--arch=arm',
+-          '--enable-armv6',
+-          '--enable-armv6t2',
+-          '--enable-vfp',
+-          '--enable-thumb',
+-          '--extra-cflags=-march=armv7-a',
+-      ])
+-
+-      if target_os == 'android':
+-        configure_flags['Common'].extend([
+-            # Runtime neon detection requires /proc/cpuinfo access, so ensure
+-            # av_get_cpu_flags() is run outside of the sandbox when enabled.
+-            '--enable-neon',
+-            '--extra-cflags=-mtune=generic-armv7-a',
+-            # Enabling softfp lets us choose either softfp or hardfp when doing
+-            # the chrome build.
+-            '--extra-cflags=-mfloat-abi=softfp',
+-        ])
+-        if target_arch == 'arm':
+-          print('arm-neon is the only supported arm arch for Android.\n')
+-          return 1
+-
+-        if target_arch == 'arm-neon':
+-          configure_flags['Common'].extend([
+-              '--extra-cflags=-mfpu=neon',
+-          ])
+-        else:
+-          configure_flags['Common'].extend([
+-              '--extra-cflags=-mfpu=vfpv3-d16',
+-          ])
+-      else:
+-        if host_arch != 'arm':
+-          configure_flags['Common'].extend([
+-              '--enable-cross-compile',
+-              '--target-os=linux',
+-              '--extra-cflags=--target=arm-linux-gnueabihf',
+-              '--extra-ldflags=--target=arm-linux-gnueabihf',
+-              '--sysroot=' + os.path.join(CHROMIUM_ROOT_DIR,
+-                                          'build/linux/debian_sid_arm-sysroot'),
+-              '--extra-cflags=-mtune=cortex-a8',
+-              # NOTE: we don't need softfp for this hardware.
+-              '--extra-cflags=-mfloat-abi=hard',
+-              # For some reason configure drops this...
+-              '--extra-cflags=-O2',
+-          ])
+-
+-        if target_arch == 'arm-neon':
+-          configure_flags['Common'].extend([
+-              '--enable-neon',
+-              '--extra-cflags=-mfpu=neon',
+-          ])
+-        else:
+-          configure_flags['Common'].extend([
+-              '--disable-neon',
+-              '--extra-cflags=-mfpu=vfpv3-d16',
+-          ])
+-    elif target_arch == 'arm64':
+-      if target_os != 'android':
+-        configure_flags['Common'].extend([
+-            '--enable-cross-compile',
+-            '--cross-prefix=/usr/bin/aarch64-linux-gnu-',
+-            '--target-os=linux',
+-            '--extra-cflags=--target=aarch64-linux-gnu',
+-            '--extra-ldflags=--target=aarch64-linux-gnu',
+-            '--sysroot=' + os.path.join(CHROMIUM_ROOT_DIR,
+-                                        'build/linux/debian_sid_arm64-sysroot'),
+-        ])
+-      configure_flags['Common'].extend([
+-          '--arch=aarch64',
+-          '--enable-armv8',
+-          '--extra-cflags=-march=armv8-a',
+-      ])
+-    elif target_arch == 'mipsel':
+-      # These flags taken from android chrome build with target_cpu='mipsel'
+-      configure_flags['Common'].extend([
+-          '--arch=mipsel',
+-          '--disable-mips32r6',
+-          '--disable-mips32r5',
+-          '--disable-mips32r2',
+-          '--disable-mipsdsp',
+-          '--disable-mipsdspr2',
+-          '--disable-msa',
+-          '--enable-mipsfpu',
+-          '--extra-cflags=-march=mipsel',
+-          '--extra-cflags=-mcpu=mips32',
+-          # Required to avoid errors about dynamic relocation w/o -fPIC.
+-          '--extra-ldflags=-z notext',
+-      ])
+-      if target_os == 'linux':
+-        configure_flags['Common'].extend([
+-            '--enable-cross-compile',
+-            '--target-os=linux',
+-            '--sysroot=' + os.path.join(CHROMIUM_ROOT_DIR,
+-                                        'build/linux/debian_sid_mips-sysroot'),
+-            '--extra-cflags=--target=mipsel-linux-gnu',
+-            '--extra-ldflags=--target=mipsel-linux-gnu',
+-        ])
+-    elif target_arch == 'mips64el':
+-      # These flags taken from android chrome build with target_cpu='mips64el'
+-      configure_flags['Common'].extend([
+-          '--arch=mips64el',
+-          '--enable-mipsfpu',
+-          '--disable-mipsdsp',
+-          '--disable-mipsdspr2',
+-          '--extra-cflags=-march=mips64el',
+-          # Required to avoid errors about dynamic relocation w/o -fPIC.
+-          '--extra-ldflags=-z notext',
+-      ])
+-      if target_os == 'android':
+-        configure_flags['Common'].extend([
+-            '--enable-mips64r6',
+-            '--extra-cflags=-mcpu=mips64r6',
+-            '--disable-mips64r2',
+-            '--enable-msa',
+-        ])
+-      if target_os == 'linux':
+-        configure_flags['Common'].extend([
+-            '--enable-cross-compile',
+-            '--target-os=linux',
+-            '--sysroot=' + os.path.join(
+-                CHROMIUM_ROOT_DIR, 'build/linux/debian_sid_mips64el-sysroot'),
+-            '--enable-mips64r2',
+-            '--disable-mips64r6',
+-            '--disable-msa',
+-            '--extra-cflags=-mcpu=mips64r2',
+-            '--extra-cflags=--target=mips64el-linux-gnuabi64',
+-            '--extra-ldflags=--target=mips64el-linux-gnuabi64',
+-        ])
+-    else:
+-      print(
+-          'Error: Unknown target arch %r for target OS %r!' % (target_arch,
+-                                                               target_os),
+-          file=sys.stderr)
+-      return 1
+-
+   if target_os == 'linux-noasm':
+     configure_flags['Common'].extend([
+         '--disable-asm',
+         '--disable-inline-asm',
+     ])
+ 
+-  if 'win' not in target_os:
+-    configure_flags['Common'].extend([
+-        '--enable-pic',
+-        '--cc=clang',
+-        '--cxx=clang++',
+-        '--ld=clang',
+-    ])
+-
+-    # Clang Linux will use the first 'ld' it finds on the path, which will
+-    # typically be the system one, so explicitly configure use of Clang's
+-    # ld.lld, to ensure that things like cross-compilation and LTO work.
+-    # This does not work for arm64, ia32 and is always used on mac.
+-    if target_arch not in ['arm64', 'ia32', 'mipsel'] and target_os != 'mac':
+-      configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
+-
+   # Should be run on Mac.
+   if target_os == 'mac':
+     if host_os != 'mac':
+-- 
+2.17.0
+


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

commit:     3800f8726b23842d9dc0c578ac4503dfeae298a8
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 25 21:02:17 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Apr 25 21:02:17 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3800f872

www-client/chromium: dev channel bump (67.0.3396.18)

Package-Manager: Portage-2.3.31_p12, Repoman-2.3.9_p68

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-67.0.3396.18.ebuild   | 692 +++++++++++++++++++++
 .../chromium/files/chromium-compiler-r0.patch      | 168 +++++
 3 files changed, 861 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index dfab9b968c4..8cf49124d9d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-66.0.3359.117-blink.tar.xz 10604 BLAKE2B f458afe8ca21dbae62037cf9b962726a0b48177bcd209ca15eb2a717ca33307ab631e85422fce8bc5990e8f78ee30dd5b58d972eae4cc511f593ee82227ec2b3 SHA512 846ed1ecaa51d945057d0a9f6a72e1dd871a9556fd1a8ff79a5b9e342363d6a2d60378dbc0e84046e7274f9d09dd2d9b444a76af7fc25e7a2869c15c858606d3
 DIST chromium-66.0.3359.117.tar.xz 583947452 BLAKE2B b9e860f0f966ec9aaa2ab5627bbc12486a67b658866763f82d1687cb6cd5ae0cf8b2ccfa3bf045417688a771d7662ba2f8ba149b88802ab3f54015e14ceb7fec SHA512 93fba91783a2109a74fcf7fb0a70a1e1eb062d9277a78783832230638a3371e35fa725494989236c5e5be5494548c4869e1b2e645c65f794a7296efeef8eb27c
 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

diff --git a/www-client/chromium/chromium-67.0.3396.18.ebuild b/www-client/chromium/chromium-67.0.3396.18.ebuild
new file mode 100644
index 00000000000..b8a5259bc65
--- /dev/null
+++ b/www-client/chromium/chromium-67.0.3396.18.ebuild
@@ -0,0 +1,692 @@
+# 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-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-ffmpeg-clang.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/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/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=${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-r0.patch b/www-client/chromium/files/chromium-compiler-r0.patch
new file mode 100644
index 00000000000..3c528e5e71a
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r0.patch
@@ -0,0 +1,168 @@
+From 71924291b586feaa7045fe0ad7874116e3d1de80 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 461e62da2d50..964d41e9c971 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",
+   ]
+ 
+@@ -464,18 +462,6 @@ config("compiler") {
+     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=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.
+@@ -1387,10 +1373,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",
+       ]
+       if (llvm_force_head_revision) {
+         cflags += [
+@@ -1440,22 +1422,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" ]
+@@ -1786,7 +1752,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) {
+@@ -1820,7 +1787,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.
+@@ -1843,7 +1811,8 @@ config("optimize_no_wpo") {
+ }
+ 
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+   if (is_win) {
+     cflags = [
+       "/Od",  # Disable optimization.
+@@ -1867,7 +1836,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:
+@@ -1914,7 +1884,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:
+@@ -1952,7 +1923,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" ]
+@@ -2034,7 +2006,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.
+@@ -2126,7 +2099,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 = []
+@@ -2157,7 +2131,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
+


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

commit:     8531e5c6942487ab2e73e3ece6329ee31c664101
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 23 16:13:55 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Apr 23 16:13:55 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8531e5c6

www-client/chromium: remove old

Package-Manager: Portage-2.3.31_p12, Repoman-2.3.9_p68

 www-client/chromium/Manifest                      |   4 -
 www-client/chromium/chromium-65.0.3325.146.ebuild | 696 ---------------------
 www-client/chromium/chromium-65.0.3325.181.ebuild | 696 ---------------------
 www-client/chromium/chromium-66.0.3359.45.ebuild  | 699 ----------------------
 www-client/chromium/chromium-66.0.3359.66.ebuild  | 699 ----------------------
 www-client/chromium/files/chromium-clang-r3.patch |  11 -
 www-client/chromium/files/chromium-gn-r0.patch    |  33 -
 7 files changed, 2838 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4aaac1e734e..dfab9b968c4 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,7 +1,3 @@
-DIST chromium-65.0.3325.146.tar.xz 570305180 BLAKE2B b4ac28ea267a673e0c8d22abb41b607ea7f1bca12b43f80f3fffd562bb85af5b298725beca2ac3e3a31297537c2d485912eda3996ab56c45bf8e113cc7ebf764 SHA512 e8227325c0128e6c476006aaba97db24b7458de56fb47a26c5880564b730d6e3c130945bfa1e8f664a270b8f22dc25869633d42860c2a9ac684e37325802fbf5
-DIST chromium-65.0.3325.181.tar.xz 570386836 BLAKE2B e170c80dc59ccf84c08430d9685f2d491f609d6217cfea4e0618622dbf53722e9803a41df4e922446be90d8ae70229b3b8bb9a86e9a5fd21a7986aee4665866c SHA512 52472127b46da48699f401ab9c64f80975398bc3e97d032c517736babc327bfa0a0ce6415831ff3f585cd309e2e05e48d5252b15d0873fee118adf70f54d1a05
 DIST chromium-66.0.3359.117-blink.tar.xz 10604 BLAKE2B f458afe8ca21dbae62037cf9b962726a0b48177bcd209ca15eb2a717ca33307ab631e85422fce8bc5990e8f78ee30dd5b58d972eae4cc511f593ee82227ec2b3 SHA512 846ed1ecaa51d945057d0a9f6a72e1dd871a9556fd1a8ff79a5b9e342363d6a2d60378dbc0e84046e7274f9d09dd2d9b444a76af7fc25e7a2869c15c858606d3
 DIST chromium-66.0.3359.117.tar.xz 583947452 BLAKE2B b9e860f0f966ec9aaa2ab5627bbc12486a67b658866763f82d1687cb6cd5ae0cf8b2ccfa3bf045417688a771d7662ba2f8ba149b88802ab3f54015e14ceb7fec SHA512 93fba91783a2109a74fcf7fb0a70a1e1eb062d9277a78783832230638a3371e35fa725494989236c5e5be5494548c4869e1b2e645c65f794a7296efeef8eb27c
-DIST chromium-66.0.3359.45.tar.xz 583703472 BLAKE2B 6ebbc83c870889319b99ba33f0416e2ce5988955890c579b1df38da3bd6938aa0d158c65a574ea48d3a34a2f87f7982f35a9280b017f8471c6ac837e2689303a SHA512 be32c4ab8db1e8d1e2581f015fdbe12ee4c734b77611511c53a5279114ba4d5d4d1dfe9fb1385bea587b530d6551491db70b275615a96fe86e5a525512fc6d73
-DIST chromium-66.0.3359.66.tar.xz 583883464 BLAKE2B af59a0e7296c5d3db02187da79b99cd2eabf4c2cdc04223bca40590529c5dbad3332b1896ebae4a3e99b8e451786adf8300570c074c28126251212bf880c588a SHA512 25f9e897f5fdc2f7dbc3cf3e9f4f135199f1c68ea41f167f94be1018fd337707dfe281ca7774a45d1f03f6a6c9a148bb51be4491b006331dd4f99a4836ce69d1
 DIST chromium-67.0.3377.1.tar.xz 585310180 BLAKE2B 9e543ad2796c617e9c6237a938600ddd4fd7f7245f78e7aec25e2160ed8ab128e70c97d5a7d70021fd7b79707ceaf1e5e0a836e25474ad5e2999bc1f6b7e43b1 SHA512 e0e5c092895d676551ad75cf18595a641676cde0a6a414180a7e23046cb47fe61256634ac50fa6b3f05153a75125e88417bada12f662ee3fa71aad3ba7cf7684

diff --git a/www-client/chromium/chromium-65.0.3325.146.ebuild b/www-client/chromium/chromium-65.0.3325.146.ebuild
deleted file mode 100644
index 9d542e96ad4..00000000000
--- a/www-client/chromium/chromium-65.0.3325.146.ebuild
+++ /dev/null
@@ -1,696 +0,0 @@
-# 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 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-gn-r0.patch"
-	"${FILESDIR}/chromium-math.h-r0.patch"
-	"${FILESDIR}/chromium-clang-r3.patch"
-	"${FILESDIR}/chromium-stdint.patch"
-	"${FILESDIR}/chromium-ffmpeg-clang.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
-		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/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/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/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/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/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=${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
-
-	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
-
-	# Work around circular dep issue
-	# https://chromium-review.googlesource.com/c/chromium/src/+/617768
-	eninja -C out/Release gen/ui/accessibility/ax_enums.h
-
-	# 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/chromium-65.0.3325.181.ebuild b/www-client/chromium/chromium-65.0.3325.181.ebuild
deleted file mode 100644
index 3ca4d45a0ba..00000000000
--- a/www-client/chromium/chromium-65.0.3325.181.ebuild
+++ /dev/null
@@ -1,696 +0,0 @@
-# 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 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-gn-r0.patch"
-	"${FILESDIR}/chromium-math.h-r0.patch"
-	"${FILESDIR}/chromium-clang-r3.patch"
-	"${FILESDIR}/chromium-stdint.patch"
-	"${FILESDIR}/chromium-ffmpeg-clang.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
-		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/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/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/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/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/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=${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
-
-	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
-
-	# Work around circular dep issue
-	# https://chromium-review.googlesource.com/c/chromium/src/+/617768
-	eninja -C out/Release gen/ui/accessibility/ax_enums.h
-
-	# 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/chromium-66.0.3359.45.ebuild b/www-client/chromium/chromium-66.0.3359.45.ebuild
deleted file mode 100644
index cf52ce6305d..00000000000
--- a/www-client/chromium/chromium-66.0.3359.45.ebuild
+++ /dev/null
@@ -1,699 +0,0 @@
-# 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 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"
-	"${FILESDIR}/chromium-ffmpeg-clang.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/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=${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
-
-	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/chromium-66.0.3359.66.ebuild b/www-client/chromium/chromium-66.0.3359.66.ebuild
deleted file mode 100644
index cf52ce6305d..00000000000
--- a/www-client/chromium/chromium-66.0.3359.66.ebuild
+++ /dev/null
@@ -1,699 +0,0 @@
-# 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 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"
-	"${FILESDIR}/chromium-ffmpeg-clang.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/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=${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
-
-	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-r3.patch b/www-client/chromium/files/chromium-clang-r3.patch
deleted file mode 100644
index 3905a5f03ff..00000000000
--- a/www-client/chromium/files/chromium-clang-r3.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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-gn-r0.patch b/www-client/chromium/files/chromium-gn-r0.patch
deleted file mode 100644
index 8f01e864ce5..00000000000
--- a/www-client/chromium/files/chromium-gn-r0.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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'})
- 


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

commit:     7df5c72df25e3c79e487df9ba464709702847f21
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  9 21:03:03 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Mar  9 21:03:03 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7df5c72d

www-client/chromium: fix bundled ffmpeg to not force lld

Package-Manager: Portage-2.3.24, Repoman-2.3.6_p81

 www-client/chromium/chromium-65.0.3325.146.ebuild   |  1 +
 www-client/chromium/chromium-66.0.3355.0.ebuild     |  1 +
 .../chromium/files/chromium-ffmpeg-clang.patch      | 21 +++++++++++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/www-client/chromium/chromium-65.0.3325.146.ebuild b/www-client/chromium/chromium-65.0.3325.146.ebuild
index 11bbb4b7780..3ca4d45a0ba 100644
--- a/www-client/chromium/chromium-65.0.3325.146.ebuild
+++ b/www-client/chromium/chromium-65.0.3325.146.ebuild
@@ -154,6 +154,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-math.h-r0.patch"
 	"${FILESDIR}/chromium-clang-r3.patch"
 	"${FILESDIR}/chromium-stdint.patch"
+	"${FILESDIR}/chromium-ffmpeg-clang.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/chromium-66.0.3355.0.ebuild b/www-client/chromium/chromium-66.0.3355.0.ebuild
index 4c8e080b09e..72c8738a74f 100644
--- a/www-client/chromium/chromium-66.0.3355.0.ebuild
+++ b/www-client/chromium/chromium-66.0.3355.0.ebuild
@@ -154,6 +154,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-stdint.patch"
 	"${FILESDIR}/chromium-clang-r4.patch"
 	"${FILESDIR}/chromium-ffmpeg-r1.patch"
+	"${FILESDIR}/chromium-ffmpeg-clang.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-ffmpeg-clang.patch b/www-client/chromium/files/chromium-ffmpeg-clang.patch
new file mode 100644
index 00000000000..6c5ac71323b
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-clang.patch
@@ -0,0 +1,21 @@
+--- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
++++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
+@@ -639,18 +639,8 @@
+   if 'win' not in target_os:
+     configure_flags['Common'].extend([
+         '--enable-pic',
+-        '--cc=clang',
+-        '--cxx=clang++',
+-        '--ld=clang',
+     ])
+ 
+-    # Clang Linux will use the first 'ld' it finds on the path, which will
+-    # typically be the system one, so explicitly configure use of Clang's
+-    # ld.lld, to ensure that things like cross-compilation and LTO work.
+-    # This does not work for arm64, ia32 and is always used on mac.
+-    if target_arch not in ['arm64', 'ia32', 'mipsel'] and target_os != 'mac':
+-      configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
+-
+   # Should be run on Mac.
+   if target_os == 'mac':
+     if host_os != 'mac':


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

commit:     c5ef3a4ebbd0f313b937288691447992bf842147
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  9 17:06:28 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Feb  9 17:06:43 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c5ef3a4e

www-client/chromium: fix bundled ffmpeg configure script

Closes: https://bugs.gentoo.org/646658
Package-Manager: Portage-2.3.24_p18, Repoman-2.3.6_p99

 www-client/chromium/chromium-64.0.3282.140.ebuild  |  1 +
 www-client/chromium/chromium-65.0.3315.3.ebuild    |  1 +
 www-client/chromium/files/chromium-ffmpeg-r0.patch | 21 +++++++++++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/www-client/chromium/chromium-64.0.3282.140.ebuild b/www-client/chromium/chromium-64.0.3282.140.ebuild
index f9d0c892ec1..1f79ba7bd6f 100644
--- a/www-client/chromium/chromium-64.0.3282.140.ebuild
+++ b/www-client/chromium/chromium-64.0.3282.140.ebuild
@@ -151,6 +151,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-cups-r0.patch"
 	"${FILESDIR}/chromium-clang-r2.patch"
 	"${FILESDIR}/chromium-angle-r0.patch"
+	"${FILESDIR}/chromium-ffmpeg-r0.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/chromium-65.0.3315.3.ebuild b/www-client/chromium/chromium-65.0.3315.3.ebuild
index b8011501a83..c2d2f2fcaf7 100644
--- a/www-client/chromium/chromium-65.0.3315.3.ebuild
+++ b/www-client/chromium/chromium-65.0.3315.3.ebuild
@@ -152,6 +152,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-gn-r0.patch"
 	"${FILESDIR}/chromium-vulkan-r0.patch"
 	"${FILESDIR}/chromium-gcc-r0.patch"
+	"${FILESDIR}/chromium-ffmpeg-r0.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-ffmpeg-r0.patch b/www-client/chromium/files/chromium-ffmpeg-r0.patch
new file mode 100644
index 00000000000..40632235bab
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-r0.patch
@@ -0,0 +1,21 @@
+--- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
++++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
+@@ -632,18 +632,8 @@
+   if 'win' not in target_os:
+     configure_flags['Common'].extend([
+         '--enable-pic',
+-        '--cc=clang',
+-        '--cxx=clang++',
+-        '--ld=clang',
+     ])
+ 
+-    # Clang Linux will use the first 'ld' it finds on the path, which will
+-    # typically be the system one, so explicitly configure use of Clang's
+-    # ld.lld, to ensure that things like cross-compilation and LTO work.
+-    # This does not work for arm64, ia32 and is always used on mac.
+-    if target_arch not in ['arm64', 'ia32'] and target_os != 'mac':
+-      configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
+-
+   # Should be run on Mac.
+   if target_os == 'mac':
+     if host_os != 'mac':


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

commit:     56f657041a8316f81d9b73c87763eb4aea0a5199
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 24 22:10:52 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Dec 24 22:11:23 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56f65704

www-client/chromium: dev channel bump (65.0.3298.3)

Package-Manager: Portage-2.3.19_p2, Repoman-2.3.6_p36

 www-client/chromium/Manifest                     |   1 +
 www-client/chromium/chromium-65.0.3298.3.ebuild  | 676 +++++++++++++++++++++++
 www-client/chromium/files/chromium-gcc-u2f.patch |  45 ++
 3 files changed, 722 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 8371c646e17..b3f2105ad70 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-63.0.3239.108.tar.xz 534294640 BLAKE2B f0f87115e91d7a2aa331cbab054
 DIST chromium-64.0.3282.24.tar.xz 482195676 BLAKE2B fdbe03cd5ee936913300beba18faf2a14b07a28a3904642bb4aef076c69914e1d058bde076e8f093836c4b5c548b7aa33c292b283f2807104ee5f5ebf87d6c91 SHA512 84bf757cf7a5ce08f81c4d2ef7b628b4bc393f457b81df8d86a4420a5cf68b61e01d5add6c6b221cbaf19f85b411228770d2c821e81cd8b0c16e27a455a96dff
 DIST chromium-64.0.3282.39.tar.xz 482357636 BLAKE2B 7e7209aa1c4584210b552e82b29c57af549492c85e96204b15c3d27d9ed3c89b7109c9bc539709ecc7221147c2cd4957b6dacf18bfa358c2568175e39eeb4a84 SHA512 16d7c16b218fb42a1371fe105b87a04fce0397df0912824fd443667a1b93ee65b1b9f7c8c3007bea8fc241e6a1b6cb4fa29a4f37c83b3fdfdd8ed6a6523e6906
 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

diff --git a/www-client/chromium/chromium-65.0.3298.3.ebuild b/www-client/chromium/chromium-65.0.3298.3.ebuild
new file mode 100644
index 00000000000..04bbef975cf
--- /dev/null
+++ b/www-client/chromium/chromium-65.0.3298.3.ebuild
@@ -0,0 +1,676 @@
+# 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-6.9.4
+	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-memcpy-r0.patch"
+	"${FILESDIR}/chromium-clang-r2.patch"
+	"${FILESDIR}/chromium-gcc-u2f.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
+		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/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/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/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/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=""
+
+	# 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+=" 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"
+
+	# 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
+
+	# 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} ${EXTRA_GN}" out/Release
+	echo "$@"
+	"$@" || die
+}
+
+src_compile() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	# 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
+
+	# Work around circular dep issue
+	# https://chromium-review.googlesource.com/c/chromium/src/+/617768
+	eninja -C out/Release gen/ui/accessibility/ax_enums.h
+
+	# 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
+
+	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-gcc-u2f.patch b/www-client/chromium/files/chromium-gcc-u2f.patch
new file mode 100644
index 00000000000..20608da58d0
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc-u2f.patch
@@ -0,0 +1,45 @@
+From ee7f5ecc3b869660ded9882a9904cc7c6db7dc0d Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Tue, 19 Dec 2017 19:25:00 +0000
+Subject: [PATCH] GCC build: workaround GCC bad "this" handling on lambda by
+ not using lambda.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is a workaround for the bug in GCC "Inconsistent `this->`
+required when calling member function in a lambda
+capturing `this` through another function"
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67274
+
+This fix just replaces the foreach call using lambda with a
+regular C++ for-each-like for (:) construct in u2f discovery.
+
+Change-Id: I9ddf212a7687e02cd7d2d2b43cf76e21dd5dada2
+Reviewed-on: https://chromium-review.googlesource.com/833886
+Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#525104}
+---
+ device/u2f/u2f_hid_discovery.cc | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/device/u2f/u2f_hid_discovery.cc b/device/u2f/u2f_hid_discovery.cc
+index 0695778d2aab..6c4e71179ce7 100644
+--- a/device/u2f/u2f_hid_discovery.cc
++++ b/device/u2f/u2f_hid_discovery.cc
+@@ -55,9 +55,8 @@ void U2fHidDiscovery::DeviceRemoved(
+ 
+ void U2fHidDiscovery::OnGetDevices(
+     std::vector<device::mojom::HidDeviceInfoPtr> device_infos) {
+-  std::for_each(
+-      device_infos.begin(), device_infos.end(),
+-      [this](auto& device_info) { DeviceAdded(std::move(device_info)); });
++  for (auto& device_info : device_infos)
++    DeviceAdded(std::move(device_info));
+   NotifyDiscoveryStarted(true);
+ }
+ 
+-- 
+2.15.1
+


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

commit:     1a8dd9f3dbd7a5bbf087c3bbeecfd5be593e470f
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 23 17:44:18 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Dec 23 17:44:18 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a8dd9f3

www-client/chromium: beta channel bump (64.0.3282.39)

Package-Manager: Portage-2.3.19_p1, Repoman-2.3.6_p35

 www-client/chromium/Manifest                       |  2 +-
 ...3282.14.ebuild => chromium-64.0.3282.39.ebuild} |  6 ++
 www-client/chromium/files/chromium-angle-r0.patch  | 89 ++++++++++++++++++++++
 3 files changed, 96 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 07b8f0951ea..e484359a8cb 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-63.0.3239.108.tar.xz 534294640 BLAKE2B f0f87115e91d7a2aa331cbab05475cac098f6ec37b8ca82b6a84911edcf0104a89557304467704911a3f3b3232d8a83d575bd545df1c31518e50c2563d83c095 SHA512 3cb7c8569d2d061f5abf4ad68d9ea1716a1b07bdf8dfa7b600d558d308374ff5dbda9f947e67e21186e3e716fe9524fc63e8eabd9eac1fa805f0eb7d994c32c8
 DIST chromium-63.0.3239.84.tar.xz 534280828 BLAKE2B 08437f625a97ea49f274140a0444dc5531e7a178a99d04592194158817169f4b9c42769dd76b5df624b5189705b17b9b049f61c2474b411ee520439213f12513 SHA512 049a09a821606ff7f52fa8f41d34f0e67c02a20a346841dfcbb06c4138c60a62240f33d9255662260251e5be913a14b004cb2a12873d2ed34751be2b1efb3f34
-DIST chromium-64.0.3282.14.tar.xz 482211216 BLAKE2B 0ffc69478719903e39998fd6f908883dadcb32580a64b1e8a93b270dfb221cb89b674c7e288649de24e468a56da78cdbf35af9693cd24f5cba158789db609d30 SHA512 75b851be4bf4814e91a4e7a036b7aa78d0c76e138605a42ebe9ce8d2017a1f95eb2dc67bd73f4fa911ce2a28cec769a699f52c98c2b1b3a037321af517692c28
 DIST chromium-64.0.3282.24.tar.xz 482195676 BLAKE2B fdbe03cd5ee936913300beba18faf2a14b07a28a3904642bb4aef076c69914e1d058bde076e8f093836c4b5c548b7aa33c292b283f2807104ee5f5ebf87d6c91 SHA512 84bf757cf7a5ce08f81c4d2ef7b628b4bc393f457b81df8d86a4420a5cf68b61e01d5add6c6b221cbaf19f85b411228770d2c821e81cd8b0c16e27a455a96dff
+DIST chromium-64.0.3282.39.tar.xz 482357636 BLAKE2B 7e7209aa1c4584210b552e82b29c57af549492c85e96204b15c3d27d9ed3c89b7109c9bc539709ecc7221147c2cd4957b6dacf18bfa358c2568175e39eeb4a84 SHA512 16d7c16b218fb42a1371fe105b87a04fce0397df0912824fd443667a1b93ee65b1b9f7c8c3007bea8fc241e6a1b6cb4fa29a4f37c83b3fdfdd8ed6a6523e6906
 DIST chromium-65.0.3294.5.tar.xz 484687920 BLAKE2B 2d4d30ea83bfa0d5753eecd4ea735ec5d81097867b7c32c190853adee372c5032dac549c064fb22688555ef6231a3e2e43b274735883285f91a0a2d9c7a151ec SHA512 089bcc7eba7d5a2a964b5b6e94c7735653582cd6925325b9bdb2788bd4abb4b3cbc8c71f5c77004600864106a18da3fddda0adaa53ad54a96efe21498e45f23a

diff --git a/www-client/chromium/chromium-64.0.3282.14.ebuild b/www-client/chromium/chromium-64.0.3282.39.ebuild
similarity index 99%
rename from www-client/chromium/chromium-64.0.3282.14.ebuild
rename to www-client/chromium/chromium-64.0.3282.39.ebuild
index c0f32ba37a4..d5457f45e29 100644
--- a/www-client/chromium/chromium-64.0.3282.14.ebuild
+++ b/www-client/chromium/chromium-64.0.3282.39.ebuild
@@ -146,6 +146,9 @@ PATCHES=(
 	"${FILESDIR}/chromium-FORTIFY_SOURCE-r2.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
+	"${FILESDIR}/chromium-cups-r0.patch"
+	"${FILESDIR}/chromium-clang-r2.patch"
+	"${FILESDIR}/chromium-angle-r0.patch"
 )
 
 pre_build_checks() {
@@ -438,6 +441,9 @@ src_configure() {
 	# 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}\""

diff --git a/www-client/chromium/files/chromium-angle-r0.patch b/www-client/chromium/files/chromium-angle-r0.patch
new file mode 100644
index 00000000000..462b8ae4443
--- /dev/null
+++ b/www-client/chromium/files/chromium-angle-r0.patch
@@ -0,0 +1,89 @@
+From 030017a4855c7b6e7f2ff8d9566c146f31eb301b Mon Sep 17 00:00:00 2001
+From: Kai Ninomiya <kainino@chromium.org>
+Date: Wed, 06 Dec 2017 14:06:53 -0800
+Subject: [PATCH] Mark StaticType related functions as constexpr
+
+Fixes compilation on some versions of GCC and probably Clang.
+
+Follow-up to http://crrev.com/c/786317
+
+Bug: angleproject:1432
+Change-Id: I3fc3ad0f65492f9543eb27fcdce6ca29a9ad06e5
+Reviewed-on: https://chromium-review.googlesource.com/812220
+Reviewed-by: Jamie Madill <jmadill@chromium.org>
+Commit-Queue: Kai Ninomiya <kainino@chromium.org>
+---
+
+diff --git a/third_party/angle/src/compiler/translator/StaticType.h b/third_party/angle/src/compiler/translator/StaticType.h
+index e26e5ff..30b391a 100644
+--- a/third_party/angle/src/compiler/translator/StaticType.h
++++ b/third_party/angle/src/compiler/translator/StaticType.h
+@@ -160,7 +160,7 @@
+           TPrecision precision,
+           TQualifier qualifier,
+           unsigned char secondarySize>
+-const TType *GetForVecMatHelper(unsigned char primarySize)
++constexpr const TType *GetForVecMatHelper(unsigned char primarySize)
+ {
+     static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
+                       basicType == EbtBool,
+@@ -186,7 +186,7 @@
+ template <TBasicType basicType,
+           TPrecision precision = EbpUndefined,
+           TQualifier qualifier = EvqGlobal>
+-const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
++constexpr const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
+ {
+     static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
+                       basicType == EbtBool,
+@@ -208,7 +208,7 @@
+ }
+ 
+ template <TBasicType basicType, TPrecision precision = EbpUndefined>
+-const TType *GetForVec(TQualifier qualifier, unsigned char size)
++constexpr const TType *GetForVec(TQualifier qualifier, unsigned char size)
+ {
+     switch (qualifier)
+     {
+diff --git a/third_party/angle/src/compiler/translator/SymbolTable.cpp b/third_party/angle/src/compiler/translator/SymbolTable.cpp
+index adf1e4e..90d4c15 100644
+--- a/third_party/angle/src/compiler/translator/SymbolTable.cpp
++++ b/third_party/angle/src/compiler/translator/SymbolTable.cpp
+@@ -236,7 +236,7 @@
+         pop();
+ }
+ 
+-bool IsGenType(const TType *type)
++constexpr bool IsGenType(const TType *type)
+ {
+     if (type)
+     {
+@@ -248,7 +248,7 @@
+     return false;
+ }
+ 
+-bool IsVecType(const TType *type)
++constexpr bool IsVecType(const TType *type)
+ {
+     if (type)
+     {
+diff --git a/third_party/angle/src/compiler/translator/Types.h b/third_party/angle/src/compiler/translator/Types.h
+index 04f46f1..a54d447 100644
+--- a/third_party/angle/src/compiler/translator/Types.h
++++ b/third_party/angle/src/compiler/translator/Types.h
+@@ -142,13 +142,13 @@
+     {
+     }
+ 
+-    TBasicType getBasicType() const { return type; }
++    constexpr TBasicType getBasicType() const { return type; }
+     void setBasicType(TBasicType t);
+ 
+     TPrecision getPrecision() const { return precision; }
+     void setPrecision(TPrecision p) { precision = p; }
+ 
+-    TQualifier getQualifier() const { return qualifier; }
++    constexpr TQualifier getQualifier() const { return qualifier; }
+     void setQualifier(TQualifier q) { qualifier = q; }
+ 
+     bool isInvariant() const { return invariant; }


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

commit:     7803280172901a7f2b13d7886fe60a0eb69925c4
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 16 23:24:04 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Dec 16 23:24:18 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78032801

www-client/chromium: fix build with clang

Closes: https://bugs.gentoo.org/637654
Package-Manager: Portage-2.3.19_p1, Repoman-2.3.6_p35

 www-client/chromium/chromium-64.0.3282.24.ebuild  |  1 +
 www-client/chromium/files/chromium-clang-r2.patch | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/www-client/chromium/chromium-64.0.3282.24.ebuild b/www-client/chromium/chromium-64.0.3282.24.ebuild
index bf7155220b0..7737358b339 100644
--- a/www-client/chromium/chromium-64.0.3282.24.ebuild
+++ b/www-client/chromium/chromium-64.0.3282.24.ebuild
@@ -147,6 +147,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
 	"${FILESDIR}/chromium-cups-r0.patch"
+	"${FILESDIR}/chromium-clang-r2.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-clang-r2.patch b/www-client/chromium/files/chromium-clang-r2.patch
new file mode 100644
index 00000000000..aaee1671764
--- /dev/null
+++ b/www-client/chromium/files/chromium-clang-r2.patch
@@ -0,0 +1,21 @@
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -422,18 +422,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=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.


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

commit:     c44287847c83dc1d9f163b141ff1656fd736ba50
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 16 14:06:55 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Dec 16 14:07:11 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c4428784

www-client/chromium: fix build with cups disabled

Closes: https://bugs.gentoo.org/640642
Package-Manager: Portage-2.3.19_p1, Repoman-2.3.6_p35

 www-client/chromium/chromium-64.0.3282.24.ebuild |  1 +
 www-client/chromium/files/chromium-cups-r0.patch | 45 ++++++++++++++++++++++++
 2 files changed, 46 insertions(+)

diff --git a/www-client/chromium/chromium-64.0.3282.24.ebuild b/www-client/chromium/chromium-64.0.3282.24.ebuild
index c0f32ba37a4..bf7155220b0 100644
--- a/www-client/chromium/chromium-64.0.3282.24.ebuild
+++ b/www-client/chromium/chromium-64.0.3282.24.ebuild
@@ -146,6 +146,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-FORTIFY_SOURCE-r2.patch"
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-memcpy-r0.patch"
+	"${FILESDIR}/chromium-cups-r0.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-cups-r0.patch b/www-client/chromium/files/chromium-cups-r0.patch
new file mode 100644
index 00000000000..88ea78a81eb
--- /dev/null
+++ b/www-client/chromium/files/chromium-cups-r0.patch
@@ -0,0 +1,45 @@
+From 3cf91d8d674a496d533aa106723a632b68ab26ba Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Tue, 12 Dec 2017 23:31:56 +0000
+Subject: [PATCH] Fix use_cups=false build
+
+BUG=793801
+R=thestig@chromium.org
+
+Change-Id: I60ee6ec48d2686d0b42ca25311a9b76009ce9768
+Reviewed-on: https://chromium-review.googlesource.com/823245
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#523602}
+---
+ chrome/service/cloud_print/print_system.cc | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/chrome/service/cloud_print/print_system.cc b/chrome/service/cloud_print/print_system.cc
+index ac94c804f9..4ceba96919 100644
+--- a/chrome/service/cloud_print/print_system.cc
++++ b/chrome/service/cloud_print/print_system.cc
+@@ -5,6 +5,7 @@
+ #include "chrome/service/cloud_print/print_system.h"
+ 
+ #include "base/guid.h"
++#include "build/build_config.h"
+ 
+ namespace cloud_print {
+ 
+@@ -35,5 +36,11 @@ std::string PrintSystem::GenerateProxyId() {
+   return base::GenerateGUID();
+ }
+ 
+-}  // namespace cloud_print
++#if defined(OS_LINUX) && !defined(USE_CUPS)
++scoped_refptr<PrintSystem> PrintSystem::CreateInstance(
++    const base::DictionaryValue*) {
++  return nullptr;
++}
++#endif
+ 
++}  // namespace cloud_print
+-- 
+2.15.1
+


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

commit:     d41c39bc3e8521813a8f83b85fc8d9b4dbe27c0b
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 13 18:18:45 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Nov 13 18:19:20 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d41c39bc

www-client/chromium: dev channel bump (64.0.3260.2)

Package-Manager: Portage-2.3.13_p7, Repoman-2.3.3_p87

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-64.0.3260.2.ebuild    | 661 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r22.patch |  10 +
 3 files changed, 672 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 977faca5494..fe7811af081 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-62.0.3202.89.tar.xz 517100784 SHA256 9f79760dc22f7183602a07af3d37d
 DIST chromium-63.0.3239.30.tar.xz 561111084 SHA256 ab210326029213eda0290db71f6ddbdf5c42e2d94c3461dee094637a34571219 SHA512 b6b89e3464b4dbef54cfe5971255bf4cf96b8c984a2a82d7f4f66e3aecaf5a0a3c72ad827127223b3448c2c2ffad3fe1b1546266ec9544838b758ac3d9b454c8 WHIRLPOOL 1a673b4060cc757e190ea376bb0cff2e8222c91f30a3627ba39b3fed0c534bced213fa3bba06614aacf2814996fb949bb55bd06d549e74f70af7002aa5796ee7
 DIST chromium-63.0.3239.40.tar.xz 561115132 SHA256 d1063027ff1d2e17f3076fe00abebad4a3e43d5fd3291a8c9bace298b7d666de SHA512 a6a2db0d472df0cbe54ead3f3da2b3fd0608ee3099f46772561146a5ac19ef2702800ac4a601228ae90431dce1e1021707ad397339f6cad99c0f38d667816de7 WHIRLPOOL de5cd4ebaaaa509a370ffb4967bc74c616ea5f195277c5079b6d1e22f1252679c417d6f52959a745b4c3881d6dff1fd44079eda1bc04580a3696445f99e128aa
 DIST chromium-64.0.3253.3.tar.xz 567976356 SHA256 6abe5b8ea147953c9d8bae72e52b4984f1a0f718e97bc578f0250055815ec4cd SHA512 fd0307337eec5513d73c14a0d8bf494d87e1a658c48585afbf7d0c08314297bf28825ee99bbeab95ccaae8a0e5b1536794c3b4c94f996ba0a4a217cdbc224267 WHIRLPOOL 78a44979475fda90087a164a5fa7e082576d344a103536c4c62cc4f1e4d3b6a4681005b9165ff020aff179bd3b58195c518c1fa32fb5f1e7b95548c5ae28e9cb
+DIST chromium-64.0.3260.2.tar.xz 568772508 SHA256 1d54669f1ff0ea37d1095e8934d307f1dc5e93119f1ea621ee93ca8d032ff64e SHA512 f7003976c8c5449569e0017fae5e1f2f7150a297a4bb4ad2a9bafe69e9fb4e931c76efeecbe07cc11a00af5a49591655734f21892e69e3ac523fc4d3faa2795f WHIRLPOOL b6c3538d06d8df9b97eed57b11e1c6129d4663e607ccc82e17270a1bcd249a73ecc2436c1e0728f1fc90579b30b5946f8b88a98566e231761b90f2c4c9c751c5

diff --git a/www-client/chromium/chromium-64.0.3260.2.ebuild b/www-client/chromium/chromium-64.0.3260.2.ebuild
new file mode 100644
index 00000000000..21dc2c0ff22
--- /dev/null
+++ b/www-client/chromium/chromium-64.0.3260.2.ebuild
@@ -0,0 +1,661 @@
+# 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-6.9.4
+	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-gcc5-r5.patch"
+	"${FILESDIR}/chromium-gn-bootstrap-r22.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() {
+	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() {
+	# 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.
+	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() {
+	# Calling this here supports resumption via FEATURES=keepwork
+	python_setup
+
+	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-gn-bootstrap-r22.patch b/www-client/chromium/files/chromium-gn-bootstrap-r22.patch
new file mode 100644
index 00000000000..5723281cc7d
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r22.patch
@@ -0,0 +1,10 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -481,6 +481,7 @@
+       'base/metrics/sample_vector.cc',
+       'base/metrics/sparse_histogram.cc',
+       'base/metrics/statistics_recorder.cc',
++      'base/observer_list_threadsafe.cc',
+       'base/path_service.cc',
+       'base/pending_task.cc',
+       'base/pickle.cc',


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

commit:     86b59bfc2ab0a53a9b3cc59704bccb1e92964c4e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 12 17:48:17 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Nov 12 17:48:17 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86b59bfc

www-client/chromium: fix build failure with gcc5

Closes: https://bugs.gentoo.org/637186
Package-Manager: Portage-2.3.13_p7, Repoman-2.3.3_p87

 www-client/chromium/chromium-63.0.3239.30.ebuild |  1 +
 www-client/chromium/chromium-64.0.3253.3.ebuild  |  1 +
 www-client/chromium/files/chromium-gcc5-r5.patch | 11 +++++++++++
 3 files changed, 13 insertions(+)

diff --git a/www-client/chromium/chromium-63.0.3239.30.ebuild b/www-client/chromium/chromium-63.0.3239.30.ebuild
index 7cfd3eaf32b..82207820db5 100644
--- a/www-client/chromium/chromium-63.0.3239.30.ebuild
+++ b/www-client/chromium/chromium-63.0.3239.30.ebuild
@@ -147,6 +147,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-gcc5-r4.patch"
 	"${FILESDIR}/${PN}-clang-r1.patch"
 	"${FILESDIR}/${PN}-webrtc-r0.patch"
+	"${FILESDIR}/${PN}-gcc5-r5.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/chromium-64.0.3253.3.ebuild b/www-client/chromium/chromium-64.0.3253.3.ebuild
index 2018f07b04e..3961a106c12 100644
--- a/www-client/chromium/chromium-64.0.3253.3.ebuild
+++ b/www-client/chromium/chromium-64.0.3253.3.ebuild
@@ -147,6 +147,7 @@ PATCHES=(
 	"${FILESDIR}/chromium-webrtc-r0.patch"
 	"${FILESDIR}/chromium-math-includes-r0.patch"
 	"${FILESDIR}/chromium-${PV}-gpu_lists_version.h.patch"
+	"${FILESDIR}/chromium-gcc5-r5.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-gcc5-r5.patch b/www-client/chromium/files/chromium-gcc5-r5.patch
new file mode 100644
index 00000000000..a07b973d8c0
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc5-r5.patch
@@ -0,0 +1,11 @@
+--- a/third_party/WebKit/public/web/WebFrameClient.h
++++ b/third_party/WebKit/public/web/WebFrameClient.h
+@@ -507,7 +507,7 @@
+   // Returns string to be used as a frame id in the devtools protocol.
+   // It is derived from the content's devtools_frame_token, is
+   // defined by the browser and passed into Blink upon frame creation.
+-  virtual WebString GetInstrumentationToken() { return ""; }
++  virtual WebString GetInstrumentationToken() { return WebString(); }
+ 
+   // PlzNavigate
+   // Called to abort a navigation that is being handled by the browser process.


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-09-30 16:26 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-09-30 16:26 UTC (permalink / raw
  To: gentoo-commits

commit:     7843d29ab07411a9c70962fb90b4cd1546910242
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 30 16:26:21 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sat Sep 30 16:26:21 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7843d29a

www-client/chromium: fix remaining gcc-5 issues

Bug: https://bugs.gentoo.org/show_bug.cgi?id=628284

Package-Manager: Portage-2.3.8, Repoman-2.3.1

 www-client/chromium/chromium-62.0.3202.18.ebuild |  2 +-
 www-client/chromium/chromium-63.0.3223.8.ebuild  |  2 +-
 www-client/chromium/files/chromium-gcc5-r3.patch | 98 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gcc5-r4.patch | 98 ++++++++++++++++++++++++
 4 files changed, 198 insertions(+), 2 deletions(-)

diff --git a/www-client/chromium/chromium-62.0.3202.18.ebuild b/www-client/chromium/chromium-62.0.3202.18.ebuild
index 2d08ef65db0..72bfe6ed14d 100644
--- a/www-client/chromium/chromium-62.0.3202.18.ebuild
+++ b/www-client/chromium/chromium-62.0.3202.18.ebuild
@@ -144,7 +144,7 @@ GTK+ icon theme.
 PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-	"${FILESDIR}/${PN}-gcc5-r2.patch"
+	"${FILESDIR}/${PN}-gcc5-r3.patch"
 	"${FILESDIR}/${PN}-gn-bootstrap-r17.patch"
 	"${FILESDIR}/${PN}-glibc2.26-r1.patch"
 )

diff --git a/www-client/chromium/chromium-63.0.3223.8.ebuild b/www-client/chromium/chromium-63.0.3223.8.ebuild
index 222538cbccb..809c36dc7ab 100644
--- a/www-client/chromium/chromium-63.0.3223.8.ebuild
+++ b/www-client/chromium/chromium-63.0.3223.8.ebuild
@@ -144,7 +144,7 @@ GTK+ icon theme.
 PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-	"${FILESDIR}/${PN}-gcc5-r2.patch"
+	"${FILESDIR}/${PN}-gcc5-r4.patch"
 	"${FILESDIR}/${PN}-gn-bootstrap-r20.patch"
 )
 

diff --git a/www-client/chromium/files/chromium-gcc5-r3.patch b/www-client/chromium/files/chromium-gcc5-r3.patch
new file mode 100644
index 00000000000..7605df6b145
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc5-r3.patch
@@ -0,0 +1,98 @@
+--- 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>
+ 
+--- a/gpu/ipc/common/mailbox_struct_traits.h
++++ b/gpu/ipc/common/mailbox_struct_traits.h
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+   static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+-    return mailbox.name;
++    return base::make_span(mailbox.name);
+   }
+   static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+--- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
++++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
+@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOperationDataView, cc::FilterOperation> {
+   static base::span<const float> matrix(const cc::FilterOperation& operation) {
+     if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
+       return base::span<const float>();
+-    return operation.matrix();
++    return base::make_span(operation.matrix());
+   }
+ 
+   static base::span<const gfx::Rect> shape(
+--- a/services/viz/public/cpp/compositing/quads_struct_traits.h
++++ b/services/viz/public/cpp/compositing/quads_struct_traits.h
+@@ -284,7 +284,7 @@
+ 
+   static base::span<const float> vertex_opacity(const cc::DrawQuad& input) {
+     const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
+-    return quad->vertex_opacity;
++    return base::make_span(quad->vertex_opacity);
+   }
+ 
+   static bool y_flipped(const cc::DrawQuad& input) {
+--- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp
++++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp
+@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
+     }
+     default:
+       NOTREACHED();
+-      return "";
++      return WebString();
+   }
+ }
+ 
+@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status,
+     }
+     default:
+       NOTREACHED();
+-      return "";
++      return WebString();
+   }
+ }
+ 
+@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status,
+     }
+     default:
+       NOTREACHED();
+-      return "";
++      return WebString();
+   }
+ }
+ 

diff --git a/www-client/chromium/files/chromium-gcc5-r4.patch b/www-client/chromium/files/chromium-gcc5-r4.patch
new file mode 100644
index 00000000000..cb978d58a06
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc5-r4.patch
@@ -0,0 +1,98 @@
+--- 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>
+ 
+--- a/gpu/ipc/common/mailbox_struct_traits.h
++++ b/gpu/ipc/common/mailbox_struct_traits.h
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+   static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+-    return mailbox.name;
++    return base::make_span(mailbox.name);
+   }
+   static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+--- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
++++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
+@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOperationDataView, cc::FilterOperation> {
+   static base::span<const float> matrix(const cc::FilterOperation& operation) {
+     if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
+       return base::span<const float>();
+-    return operation.matrix();
++    return base::make_span(operation.matrix());
+   }
+ 
+   static base::span<const gfx::Rect> shape(
+--- a/services/viz/public/cpp/compositing/quads_struct_traits.h
++++ b/services/viz/public/cpp/compositing/quads_struct_traits.h
+@@ -303,7 +303,7 @@ struct StructTraits<viz::mojom::TextureQuadStateDataView, viz::DrawQuad> {
+   static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+     const viz::TextureDrawQuad* quad =
+         viz::TextureDrawQuad::MaterialCast(&input);
+-    return quad->vertex_opacity;
++    return base::make_span(quad->vertex_opacity);
+   }
+
+   static bool y_flipped(const viz::DrawQuad& input) {
+--- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp
++++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp
+@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
+     }
+     default:
+       NOTREACHED();
+-      return "";
++      return WebString();
+   }
+ }
+ 
+@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status,
+     }
+     default:
+       NOTREACHED();
+-      return "";
++      return WebString();
+   }
+ }
+ 
+@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status,
+     }
+     default:
+       NOTREACHED();
+-      return "";
++      return WebString();
+   }
+ }
+ 


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-09-20  9:38 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-09-20  9:38 UTC (permalink / raw
  To: gentoo-commits

commit:     94e5e319f9303b4f1884e5587bee44b9a4d74bec
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 20 09:38:04 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Sep 20 09:38:04 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94e5e319

www-client/chromium: dev channel bump (63.0.3218.0)

Package-Manager: Portage-2.3.8, Repoman-2.3.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-63.0.3218.0.ebuild    | 656 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r19.patch |  10 +
 .../chromium/files/chromium-sysroot-r1.patch       |  14 +
 4 files changed, 681 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index f8bb5a28204..c58ede0096f 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-61.0.3163.79.tar.xz 556218140 SHA256 bdbc139ed86f3b5d1ec3c3b00caea
 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

diff --git a/www-client/chromium/chromium-63.0.3218.0.ebuild b/www-client/chromium/chromium-63.0.3218.0.ebuild
new file mode 100644
index 00000000000..40ec39d6e67
--- /dev/null
+++ b/www-client/chromium/chromium-63.0.3218.0.ebuild
@@ -0,0 +1,656 @@
+# 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.5:=[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:=
+	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(+)]
+	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.
+"
+
+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"
+)
+
+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
+		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/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/trace_event
+		third_party/blink
+		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/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/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
+		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
+
+	# 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
+
+	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-r19.patch b/www-client/chromium/files/chromium-gn-bootstrap-r19.patch
new file mode 100644
index 00000000000..999fdb7eda7
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r19.patch
@@ -0,0 +1,10 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -576,7 +576,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/trace_event/trace_log.cc',
+       'base/trace_event/trace_log_constants.cc',
+       'base/trace_event/tracing_agent.cc',
+-      'base/tracked_objects.cc',
+       'base/unguessable_token.cc',
+       'base/value_iterators.cc',
+       'base/values.cc',

diff --git a/www-client/chromium/files/chromium-sysroot-r1.patch b/www-client/chromium/files/chromium-sysroot-r1.patch
new file mode 100644
index 00000000000..b5ff0d8cba1
--- /dev/null
+++ b/www-client/chromium/files/chromium-sysroot-r1.patch
@@ -0,0 +1,14 @@
+--- a/chrome/installer/BUILD.gn
++++ b/chrome/installer/BUILD.gn
+@@ -3,9 +3,10 @@
+ # found in the LICENSE file.
+ 
+ import("//build/config/chrome_build.gni")
++import("//build/config/sysroot.gni")
+ 
+ declare_args() {
+-  enable_linux_installer = is_linux && !is_component_build
++  enable_linux_installer = is_linux && !is_component_build && use_sysroot
+ }
+ 
+ # Meta-target that forwards to the installer of the correct type (if any).


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-09-18 15:33 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-09-18 15:33 UTC (permalink / raw
  To: gentoo-commits

commit:     7d8410b91a6c55a0fca838b1997b7e058b840306
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 18 15:33:43 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Mon Sep 18 15:33:43 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d8410b9

www-client/chromium: dev channel bump (63.0.3213.3)

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-63.0.3213.3.ebuild    | 655 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r18.patch |  19 +
 3 files changed, 675 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 87332a02d4b..f8bb5a28204 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-61.0.3163.79.tar.xz 556218140 SHA256 bdbc139ed86f3b5d1ec3c3b00caeaef4f9ac2c363438f03dded56e217ad10727 SHA512 3729c4888737824937386b73e17ffce0c8c902582e0395da20d2ea86eb179bf0edc2be0d2ea780a6fc76accdeb8967a66392bea5069c7ebb71322c750f614d61 WHIRLPOOL 5024a89372f974b62e09c89ce4786efa87a6f52712faf211508c1ccad7edb0120cebd98540b928094893877517abc1243a9bfabcf74e057a4e5fc2cacac8480d
 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

diff --git a/www-client/chromium/chromium-63.0.3213.3.ebuild b/www-client/chromium/chromium-63.0.3213.3.ebuild
new file mode 100644
index 00000000000..1016d25f626
--- /dev/null
+++ b/www-client/chromium/chromium-63.0.3213.3.ebuild
@@ -0,0 +1,655 @@
+# 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.5:=[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:=
+	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(+)]
+	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.
+"
+
+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"
+)
+
+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
+		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/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/trace_event
+		third_party/blink
+		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/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/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
+		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
+
+	# 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
+
+	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-r18.patch b/www-client/chromium/files/chromium-gn-bootstrap-r18.patch
new file mode 100644
index 00000000000..8c9c27121cd
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r18.patch
@@ -0,0 +1,19 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -481,8 +481,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/process/process_handle.cc',
+       'base/process/process_iterator.cc',
+       'base/process/process_metrics.cc',
+-      'base/profiler/scoped_profile.cc',
+-      'base/profiler/scoped_tracker.cc',
+       'base/rand_util.cc',
+       'base/run_loop.cc',
+       'base/sequence_token.cc',
+@@ -579,7 +577,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/trace_event/trace_log_constants.cc',
+       'base/trace_event/tracing_agent.cc',
+       'base/tracked_objects.cc',
+-      'base/tracking_info.cc',
+       'base/unguessable_token.cc',
+       'base/value_iterators.cc',
+       'base/values.cc',


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-09-07 12:44 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-09-07 12:44 UTC (permalink / raw
  To: gentoo-commits

commit:     2901239ea2039344c5302d8812db0f5530a3b766
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Sep  7 12:44:30 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Sep  7 12:44:30 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2901239e

www-client/chromium: dev channel bump (62.0.3202.9)

Build with system libxml. Fix build with glibc-2.26.

Bug: https://bugs.gentoo.org/show_bug.cgi?id=616818
Bug: https://bugs.gentoo.org/show_bug.cgi?id=628782

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/Manifest                       |   2 +-
 www-client/chromium/chromium-62.0.3192.0.ebuild    | 644 ---------------------
 ...192.0-r1.ebuild => chromium-62.0.3202.9.ebuild} |  11 +-
 .../chromium/files/chromium-glibc2.26-r1.patch     | 220 +++++++
 4 files changed, 227 insertions(+), 650 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 09793c1ef47..0992e121d0a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,4 @@
 DIST chromium-60.0.3112.78.tar.xz 537669428 SHA256 a82db2aa1b9348b619c01894db565eba686780de0e6fa9e83a8f406d06ce03ea SHA512 d6cccf2537233c12d7b0254b45adbf0abdf9ca43688ceed28b3d915290478563be30d30879018fd4d6f2acc9654d9911c0c6bbebba0cdeacd16d748e18296c41 WHIRLPOOL b7acf6a57bced89f1e81e389f72ef80cb4a24f9beed45c737bd511d8e5f64236c5b9888910ee58b746a6cdbbcc58cc1d665e8730e33471ee50782ef4ce883e8c
 DIST chromium-61.0.3163.79.tar.xz 556218140 SHA256 bdbc139ed86f3b5d1ec3c3b00caeaef4f9ac2c363438f03dded56e217ad10727 SHA512 3729c4888737824937386b73e17ffce0c8c902582e0395da20d2ea86eb179bf0edc2be0d2ea780a6fc76accdeb8967a66392bea5069c7ebb71322c750f614d61 WHIRLPOOL 5024a89372f974b62e09c89ce4786efa87a6f52712faf211508c1ccad7edb0120cebd98540b928094893877517abc1243a9bfabcf74e057a4e5fc2cacac8480d
-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
+DIST chromium-62.0.3202.9.tar.xz 516991748 SHA256 d801d431417736098ee4bf4ecaea642f5fe6101ea88a4cf7b06a04da58331199 SHA512 26e253dc0b779408116e4fbcc41e306afbd34687a9cb9f748d49381cec4ace4a094630aec5be14878584051696c261052ce7b07fd75b9680217165afd3909fe9 WHIRLPOOL 82645f14dd1a19faecc8b8af3fcfef03b2e14cb04c0ad8653bf9e11ef84169ecae7d8fdcbed1a84da0433f621dbbb331319670bb9cb0723759df617dd46e4617

diff --git a/www-client/chromium/chromium-62.0.3192.0.ebuild b/www-client/chromium/chromium-62.0.3192.0.ebuild
deleted file mode 100644
index ea6f19b3df2..00000000000
--- a/www-client/chromium/chromium-62.0.3192.0.ebuild
+++ /dev/null
@@ -1,644 +0,0 @@
-# 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/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:=
-	pulseaudio? ( media-sound/pulseaudio:= )
-	system-ffmpeg? ( >=media-video/ffmpeg-3:= 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(+)]
-	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.
-"
-
-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"
-)
-
-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
-		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/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/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/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: 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
-		libdrm
-		libjpeg
-		libpng
-		libwebp
-		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
-
-	# 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
-
-	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/chromium-62.0.3192.0-r1.ebuild b/www-client/chromium/chromium-62.0.3202.9.ebuild
similarity index 99%
rename from www-client/chromium/chromium-62.0.3192.0-r1.ebuild
rename to www-client/chromium/chromium-62.0.3202.9.ebuild
index 2d10be500d5..4e429f77671 100644
--- a/www-client/chromium/chromium-62.0.3192.0-r1.ebuild
+++ b/www-client/chromium/chromium-62.0.3202.9.ebuild
@@ -26,6 +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/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.14.3:=
@@ -145,9 +146,8 @@ 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}-mojo-dep.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-r17.patch"
+	"${FILESDIR}/${PN}-glibc2.26-r1.patch"
 )
 
 pre_build_checks() {
@@ -235,6 +235,7 @@ src_prepare() {
 		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
@@ -262,7 +263,7 @@ src_prepare() {
 		third_party/libsrtp
 		third_party/libudev
 		third_party/libwebm
-		third_party/libxml
+		third_party/libxml/chromium
 		third_party/libyuv
 		third_party/lss
 		third_party/lzma_sdk
@@ -374,7 +375,6 @@ src_configure() {
 	# 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).
@@ -387,6 +387,7 @@ src_configure() {
 		libjpeg
 		libpng
 		libwebp
+		libxml
 		libxslt
 		openh264
 		re2

diff --git a/www-client/chromium/files/chromium-glibc2.26-r1.patch b/www-client/chromium/files/chromium-glibc2.26-r1.patch
new file mode 100644
index 00000000000..ec37a2816d5
--- /dev/null
+++ b/www-client/chromium/files/chromium-glibc2.26-r1.patch
@@ -0,0 +1,220 @@
+diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+index c80724d..052ce37 100644
+--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -36,19 +36,19 @@ namespace google_breakpad {
+ 
+ // Minidump defines register structures which are different from the raw
+ // structures which we get from the kernel. These are platform specific
+-// functions to juggle the ucontext and user structures into minidump format.
++// functions to juggle the ucontext_t and user structures into minidump format.
+ 
+ #if defined(__i386__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_ESP];
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_EIP];
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                                     const struct _libc_fpstate* fp) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+ 
+ #elif defined(__x86_64)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_RSP];
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_RIP];
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                                     const struct _libc_fpstate* fpregs) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+ 
+ #elif defined(__ARM_EABI__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.arm_sp;
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.arm_pc;
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
+   out->context_flags = MD_CONTEXT_ARM_FULL;
+ 
+   out->iregs[0] = uc->uc_mcontext.arm_r0;
+@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
+ 
+ #elif defined(__aarch64__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.sp;
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.pc;
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                                     const struct fpsimd_context* fpregs) {
+   out->context_flags = MD_CONTEXT_ARM64_FULL;
+ 
+@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+ 
+ #elif defined(__mips__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.pc;
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
+ #if _MIPS_SIM == _ABI64
+   out->context_flags = MD_CONTEXT_MIPS64_FULL;
+ #elif _MIPS_SIM == _ABIO32
+diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+index b6e77b4..2de80b7 100644
+--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
++++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -39,23 +39,23 @@
+ 
+ namespace google_breakpad {
+ 
+-// Wraps platform-dependent implementations of accessors to ucontext structs.
++// Wraps platform-dependent implementations of accessors to ucontext_t structs.
+ struct UContextReader {
+-  static uintptr_t GetStackPointer(const struct ucontext* uc);
++  static uintptr_t GetStackPointer(const ucontext_t* uc);
+ 
+-  static uintptr_t GetInstructionPointer(const struct ucontext* uc);
++  static uintptr_t GetInstructionPointer(const ucontext_t* uc);
+ 
+-  // Juggle a arch-specific ucontext into a minidump format
++  // Juggle a arch-specific ucontext_t into a minidump format
+   //   out: the minidump structure
+   //   info: the collection of register structures.
+ #if defined(__i386__) || defined(__x86_64)
+-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                              const struct _libc_fpstate* fp);
+ #elif defined(__aarch64__)
+-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                              const struct fpsimd_context* fpregs);
+ #else
+-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
+ #endif
+ };
+ 
+diff --git a/breakpad/src/client/linux/handler/exception_handler.cc b/breakpad/src/client/linux/handler/exception_handler.cc
+index 586d84e..05936d2 100644
+--- a/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -457,9 +457,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+   // Fill in all the holes in the struct to make Valgrind happy.
+   memset(&g_crash_context_, 0, sizeof(g_crash_context_));
+   memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
+-  memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
++  memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
+ #if defined(__aarch64__)
+-  struct ucontext* uc_ptr = (struct ucontext*)uc;
++  ucontext_t* uc_ptr = (ucontext_t*)uc;
+   struct fpsimd_context* fp_ptr =
+       (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
+   if (fp_ptr->head.magic == FPSIMD_MAGIC) {
+@@ -468,9 +468,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+   }
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+   // FP state is not part of user ABI on ARM Linux.
+-  // In case of MIPS Linux FP state is already part of struct ucontext
++  // In case of MIPS Linux FP state is already part of ucontext_t
+   // and 'float_state' is not a member of CrashContext.
+-  struct ucontext* uc_ptr = (struct ucontext*)uc;
++  ucontext_t* uc_ptr = (ucontext_t*)uc;
+   if (uc_ptr->uc_mcontext.fpregs) {
+     memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
+            sizeof(g_crash_context_.float_state));
+@@ -494,7 +494,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
+   // ExceptionHandler::HandleSignal().
+   siginfo.si_code = SI_USER;
+   siginfo.si_pid = getpid();
+-  struct ucontext context;
++  ucontext_t context;
+   getcontext(&context);
+   return HandleSignal(sig, &siginfo, &context);
+ }
+diff --git a/breakpad/src/client/linux/handler/exception_handler.h b/breakpad/src/client/linux/handler/exception_handler.h
+index daba57e..25598a2 100644
+--- a/breakpad/src/client/linux/handler/exception_handler.h
++++ b/breakpad/src/client/linux/handler/exception_handler.h
+@@ -191,11 +191,11 @@ class ExceptionHandler {
+   struct CrashContext {
+     siginfo_t siginfo;
+     pid_t tid;  // the crashing thread.
+-    struct ucontext context;
++    ucontext_t context;
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+     // #ifdef this out because FP state is not part of user ABI for Linux ARM.
+     // In case of MIPS Linux FP state is already part of struct
+-    // ucontext so 'float_state' is not required.
++    // ucontext_t so 'float_state' is not required.
+     fpstate_t float_state;
+ #endif
+   };
+diff --git a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+index 3764eec..80ad5c4 100644
+--- a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
++++ b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+@@ -593,7 +593,7 @@ class MicrodumpWriter {
+ 
+   void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
+ 
+-  const struct ucontext* const ucontext_;
++  const ucontext_t* const ucontext_;
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;
+ #endif
+diff --git a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+index d11ba6e..c716143 100644
+--- a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
++++ b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+@@ -1323,7 +1323,7 @@ class MinidumpWriter {
+   const int fd_;  // File descriptor where the minidum should be written.
+   const char* path_;  // Path to the file where the minidum should be written.
+ 
+-  const struct ucontext* const ucontext_;  // also from the signal handler
++  const ucontext_t* const ucontext_;  // also from the signal handler
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;  // ditto
+ #endif


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-08-22 22:08 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-08-22 22:08 UTC (permalink / raw
  To: gentoo-commits

commit:     fab429984552c440fd527eb0c059f54ce269e28e
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 22 22:08:30 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Tue Aug 22 22:08:30 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fab42998

www-client/chromium: fix build with system ICU 59

Bug: https://bugs.gentoo.org/627382

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/chromium-62.0.3188.2.ebuild        |  3 ++-
 www-client/chromium/files/chromium-system-icu-r2.patch | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/chromium-62.0.3188.2.ebuild b/www-client/chromium/chromium-62.0.3188.2.ebuild
index 02da775ef7e..baa5f1920f7 100644
--- a/www-client/chromium/chromium-62.0.3188.2.ebuild
+++ b/www-client/chromium/chromium-62.0.3188.2.ebuild
@@ -25,7 +25,7 @@ COMMON_DEPEND="
 	cups? ( >=net-print/cups-1.3.11:= )
 	dev-libs/expat:=
 	dev-libs/glib:2
-	system-icu? ( <dev-libs/icu-59:= )
+	system-icu? ( >=dev-libs/icu-59:= )
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.14.3:=
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
 	"${FILESDIR}/${PN}-gcc5-r2.patch"
 	"${FILESDIR}/${PN}-gn-bootstrap-r16.patch"
+	"${FILESDIR}/${PN}-system-icu-r2.patch"
 )
 
 pre_build_checks() {

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..5c12bbb7cf6
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-icu-r2.patch
@@ -0,0 +1,10 @@
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -16,6 +16,7 @@ config("icu_config") {
+   defines = [
+     "USING_SYSTEM_ICU=1",
+     "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
++    "UCHAR_TYPE=uint16_t",
+   ]
+ }
+ 


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-08-19 11:17 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-08-19 11:17 UTC (permalink / raw
  To: gentoo-commits

commit:     7a54b955211fafee3bdab7d1d8970f390fab384d
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 19 11:17:02 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sat Aug 19 11:17:02 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a54b955

www-client/chromium: dev channel bump (62.0.3188.2)

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ...0.3175.4.ebuild => chromium-62.0.3188.2.ebuild} |  4 ++-
 www-client/chromium/files/chromium-gcc5-r2.patch   | 36 ++++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r16.patch | 11 +++++++
 4 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 6350eed2dd9..107e0a27967 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,5 +3,5 @@ DIST chromium-60.0.3112.40.tar.xz 537575476 SHA256 4fdc590fc6ef4af16cc72d790b9ea
 DIST chromium-60.0.3112.78.tar.xz 537669428 SHA256 a82db2aa1b9348b619c01894db565eba686780de0e6fa9e83a8f406d06ce03ea SHA512 d6cccf2537233c12d7b0254b45adbf0abdf9ca43688ceed28b3d915290478563be30d30879018fd4d6f2acc9654d9911c0c6bbebba0cdeacd16d748e18296c41 WHIRLPOOL b7acf6a57bced89f1e81e389f72ef80cb4a24f9beed45c737bd511d8e5f64236c5b9888910ee58b746a6cdbbcc58cc1d665e8730e33471ee50782ef4ce883e8c
 DIST chromium-61.0.3163.31.tar.xz 552755500 SHA256 1425debb3702d3386c0e2f465af593dd630302b7af869b050a0bc6240ee21bfb SHA512 54413996a22b722ebd8191657ff9f5ef59d3d1d590fb47a83fd9783e7e868061ce77e4dbe30f0d80c3560b45fc2932b1fdcd3a55de4d78c329fb58586d808b16 WHIRLPOOL 972d7609a500f8ffd7ddb158e8d87013b44df9ffba206446490f8b6b076f1f700bb7f7ce589b85ecaaa931605419b174262b0d3dac3dc6a0a48d43cd3871d031
 DIST chromium-61.0.3163.39.tar.xz 552890136 SHA256 8ba1af007c09d465d0a77f2a9e3479c4f46791fdea932dba9736144b267e125d SHA512 99e410d8678ee30de9b167fd40ad1ecd617ade34a3862b100157d6a923115e5608d155d5efc42235e411512fea0bac4d3c1d6ccf88bf1bed462242ec3d69af4f WHIRLPOOL b4463b8bfd72ce862aaeb47a2a4c43f2462469bd63110aed8b59120e033604f6562139acf73b12139ddbea1f5564da8662bb44c1ca3e0ccd1febf651aa25a4b4
-DIST chromium-62.0.3175.4.tar.xz 552651752 SHA256 d5199dcf3f40e511cdf99f3a7f99dc0ddd69416b197c64e71806a8cbc813e369 SHA512 8f3c0f9e8f9a96bf63189678ecb66665672a4bc2d4670e5587c8736023f255e59ad4b14ed6b738b885bf8548675ad6457246e23541a9e8fc48d00141f82ac28d WHIRLPOOL 5ba59e73d4e381d7e58e5f3f041f11efaf49bf30f46e9baa370b766e4d61940ef82539c7573c7b86f10ca694e248095abe2780e148afb279191fab9591756f00
 DIST chromium-62.0.3178.0.tar.xz 553128768 SHA256 86abba3a2bf996de642b4141c69b13ffd3c92443bc271d1be07d3f9de669cf50 SHA512 aec904bf4f879921d655390520a68adcff1f835eb3a4b89609155a7865f02481379a49052be8950145ee62c5301493a60a510611bc266fea967675851fdf1a7b WHIRLPOOL 106ddacf8c88ae22aebd4409d2210d1c593b09743768355bc1ec6076204ce166ca3e0169a07007e079797695f484cf5c206f442c85dddf5b875f87b90f5070f0
+DIST chromium-62.0.3188.2.tar.xz 515878612 SHA256 37d3c3aaf77f40ef51e71cc9b1752e6c4149a2e4e05a277cf1dd372d6d361b81 SHA512 318b34d670f65cf50eb24bd54c752e116847b5f53e97e2896f1bb8d33d1209046e4a248fa1703bb1e6dfa990233d64353a0d233c3a7cc1aeee6147aad59fedb3 WHIRLPOOL 27c906a755dc4877cdd081572300d4fd001c38bb870be35cdb667931ee79f8bbe015744168861043c5bfb44f970e9263774b91d5cf77bb4d91ef808066ef5e32

diff --git a/www-client/chromium/chromium-62.0.3175.4.ebuild b/www-client/chromium/chromium-62.0.3188.2.ebuild
similarity index 99%
rename from www-client/chromium/chromium-62.0.3175.4.ebuild
rename to www-client/chromium/chromium-62.0.3188.2.ebuild
index d4307de5d7a..02da775ef7e 100644
--- a/www-client/chromium/chromium-62.0.3175.4.ebuild
+++ b/www-client/chromium/chromium-62.0.3188.2.ebuild
@@ -136,6 +136,8 @@ GTK+ icon theme.
 PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
+	"${FILESDIR}/${PN}-gcc5-r2.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-r16.patch"
 )
 
 pre_build_checks() {
@@ -268,7 +270,7 @@ src_prepare() {
 		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/lcms
 		third_party/pdfium/third_party/libopenjpeg20
 		third_party/pdfium/third_party/libpng16
 		third_party/pdfium/third_party/libtiff

diff --git a/www-client/chromium/files/chromium-gcc5-r2.patch b/www-client/chromium/files/chromium-gcc5-r2.patch
new file mode 100644
index 00000000000..f2be2d5b8ae
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc5-r2.patch
@@ -0,0 +1,36 @@
+--- 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>
+ 

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r16.patch b/www-client/chromium/files/chromium-gn-bootstrap-r16.patch
new file mode 100644
index 00000000000..a2b4394d251
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r16.patch
@@ -0,0 +1,11 @@
+--- a/tools/gn/bootstrap/bootstrap.py.orig	2017-08-19 09:47:46.919341766 +0000
++++ b/tools/gn/bootstrap/bootstrap.py	2017-08-19 09:48:07.307745292 +0000
+@@ -348,7 +348,7 @@
+         '-pipe',
+         '-fno-exceptions'
+     ])
+-    cflags_cc.extend(['-std=c++11', '-Wno-c++11-narrowing'])
++    cflags_cc.extend(['-std=c++14', '-Wno-c++11-narrowing'])
+     if is_aix:
+      cflags.extend(['-maix64'])
+      ldflags.extend([ '-maix64 -Wl,-bbigtoc' ])


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-08-09 16:19 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-08-09 16:19 UTC (permalink / raw
  To: gentoo-commits

commit:     cf850a99f3338b701743094973e6b734b5bab9bd
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  9 16:19:14 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Aug  9 16:19:14 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cf850a99

www-client/chromium: dev channel bump (62.0.3178.0)

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-62.0.3178.0.ebuild    | 642 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r15.patch |  11 +
 .../chromium/files/chromium-system-zlib-r1.patch   |  22 +
 4 files changed, 676 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index fb1a29bd622..8973074bba4 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -4,3 +4,4 @@ DIST chromium-60.0.3112.78.tar.xz 537669428 SHA256 a82db2aa1b9348b619c01894db565
 DIST chromium-61.0.3163.25.tar.xz 552570440 SHA256 58060965c4dd155dbe08b26f13695002ad990532c545aafb70a4a0d07f135679 SHA512 771017c495bcf675e0fa55e42578b0c9d16147c6cc8a25138104be7aeb9af49c7877d6dd74b62577a655b185831b788036085820b3a813acb70f58cd27f77703 WHIRLPOOL c8b9ed8ce368cd6f7a227dc0c09a76d15b9efa5cf590cd1ee95d55ac389734992ccd319de56ae514991c5e4841d5ea61fdaba2dd14f514195ea3e6e7e7bd3260
 DIST chromium-61.0.3163.31.tar.xz 552755500 SHA256 1425debb3702d3386c0e2f465af593dd630302b7af869b050a0bc6240ee21bfb SHA512 54413996a22b722ebd8191657ff9f5ef59d3d1d590fb47a83fd9783e7e868061ce77e4dbe30f0d80c3560b45fc2932b1fdcd3a55de4d78c329fb58586d808b16 WHIRLPOOL 972d7609a500f8ffd7ddb158e8d87013b44df9ffba206446490f8b6b076f1f700bb7f7ce589b85ecaaa931605419b174262b0d3dac3dc6a0a48d43cd3871d031
 DIST chromium-62.0.3175.4.tar.xz 552651752 SHA256 d5199dcf3f40e511cdf99f3a7f99dc0ddd69416b197c64e71806a8cbc813e369 SHA512 8f3c0f9e8f9a96bf63189678ecb66665672a4bc2d4670e5587c8736023f255e59ad4b14ed6b738b885bf8548675ad6457246e23541a9e8fc48d00141f82ac28d WHIRLPOOL 5ba59e73d4e381d7e58e5f3f041f11efaf49bf30f46e9baa370b766e4d61940ef82539c7573c7b86f10ca694e248095abe2780e148afb279191fab9591756f00
+DIST chromium-62.0.3178.0.tar.xz 553128768 SHA256 86abba3a2bf996de642b4141c69b13ffd3c92443bc271d1be07d3f9de669cf50 SHA512 aec904bf4f879921d655390520a68adcff1f835eb3a4b89609155a7865f02481379a49052be8950145ee62c5301493a60a510611bc266fea967675851fdf1a7b WHIRLPOOL 106ddacf8c88ae22aebd4409d2210d1c593b09743768355bc1ec6076204ce166ca3e0169a07007e079797695f484cf5c206f442c85dddf5b875f87b90f5070f0

diff --git a/www-client/chromium/chromium-62.0.3178.0.ebuild b/www-client/chromium/chromium-62.0.3178.0.ebuild
new file mode 100644
index 00000000000..626f09a5b82
--- /dev/null
+++ b/www-client/chromium/chromium-62.0.3178.0.ebuild
@@ -0,0 +1,642 @@
+# 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/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:=
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-3:= 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/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(+)]
+	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.
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-widevine-r1.patch"
+	"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
+	"${FILESDIR}/${PN}-gn-bootstrap-r15.patch"
+	"${FILESDIR}/${PN}-system-zlib-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
+
+	# 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
+		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/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/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/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/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/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: 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
+		libdrm
+		libjpeg
+		libpng
+		libwebp
+		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
+
+	# 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
+
+	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-r15.patch b/www-client/chromium/files/chromium-gn-bootstrap-r15.patch
new file mode 100644
index 00000000000..726dca2e903
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r15.patch
@@ -0,0 +1,11 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -550,8 +550,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/trace_event/memory_peak_detector.cc',
+       'base/trace_event/memory_usage_estimator.cc',
+       'base/trace_event/process_memory_dump.cc',
+-      'base/trace_event/process_memory_maps.cc',
+-      'base/trace_event/process_memory_totals.cc',
+       'base/trace_event/sharded_allocation_register.cc',
+       'base/trace_event/trace_buffer.cc',
+       'base/trace_event/trace_config.cc',

diff --git a/www-client/chromium/files/chromium-system-zlib-r1.patch b/www-client/chromium/files/chromium-system-zlib-r1.patch
new file mode 100644
index 00000000000..23ee934b522
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-zlib-r1.patch
@@ -0,0 +1,22 @@
+--- a/gpu/command_buffer/service/memory_program_cache.cc
++++ b/gpu/command_buffer/service/memory_program_cache.cc
+@@ -226,7 +226,7 @@ bool ProgramBinaryExtensionsAvailable() {
+ // Returns an empty vector if compression fails.
+ std::vector<uint8_t> CompressData(const std::vector<uint8_t>& data) {
+   auto start_time = base::TimeTicks::Now();
+-  Cr_z_uLongf compressed_size = compressBound(data.size());
++  uLongf compressed_size = compressBound(data.size());
+   std::vector<uint8_t> compressed_data(compressed_size);
+   // Level indicates a trade-off between compression and speed. Level 1
+   // indicates fastest speed (with worst compression).
+@@ -256,8 +256,8 @@ std::vector<uint8_t> DecompressData(const std::vector<uint8_t>& data,
+                                     size_t max_size_bytes) {
+   auto start_time = base::TimeTicks::Now();
+   std::vector<uint8_t> decompressed_data(decompressed_size);
+-  Cr_z_uLongf decompressed_size_out =
+-      static_cast<Cr_z_uLongf>(decompressed_size);
++  uLongf decompressed_size_out =
++      static_cast<uLongf>(decompressed_size);
+   auto result = uncompress(decompressed_data.data(), &decompressed_size_out,
+                            data.data(), data.size());
+ 


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

commit:     689090f1ec53b7b958a903f6ed01f38b71e1b819
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  9 14:04:25 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Aug  9 14:04:25 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=689090f1

www-client/chromium: backport build fix

Bug: https://bugs.gentoo.org/626684
Package-Manager: Portage-2.3.6_p23, Repoman-2.3.3_p1

 www-client/chromium/chromium-61.0.3163.31.ebuild  |  1 +
 www-client/chromium/files/chromium-mojo-dep.patch | 54 +++++++++++++++++++++++
 2 files changed, 55 insertions(+)

diff --git a/www-client/chromium/chromium-61.0.3163.31.ebuild b/www-client/chromium/chromium-61.0.3163.31.ebuild
index 600995b990b..c55fd86c15d 100644
--- a/www-client/chromium/chromium-61.0.3163.31.ebuild
+++ b/www-client/chromium/chromium-61.0.3163.31.ebuild
@@ -146,6 +146,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-gcc-r1.patch"
 	"${FILESDIR}/${PN}-gn-bootstrap-r14.patch"
 	"${FILESDIR}/${PN}-atk-r1.patch"
+	"${FILESDIR}/${PN}-mojo-dep.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-mojo-dep.patch b/www-client/chromium/files/chromium-mojo-dep.patch
new file mode 100644
index 00000000000..bf618540d17
--- /dev/null
+++ b/www-client/chromium/files/chromium-mojo-dep.patch
@@ -0,0 +1,54 @@
+From f8e2c057ec6123b0a1d08294f41e78c427636b49 Mon Sep 17 00:00:00 2001
+From: Mike Bjorge <mbjorge@chromium.org>
+Date: Mon, 7 Aug 2017 18:41:58 +0000
+Subject: [PATCH] Add mojo_blink dep from WebKit loader/.
+
+Now that loader has a direct dependency on the generated mojom-blink
+headers (https://chromium-review.googlesource.com/c/577488), the loader/
+target should have a dep on the mojo target that generates the headers,
+otherwise the build may fail depending on build order.
+
+All the other platform/ targets that depend on the mojom-blink headers
+are directly included in the platform target, which has the necessary
+dependency already.
+
+Bug: 746197
+Bug: 750883
+Change-Id: Ife1429ec649605aae3f7920560cec37f3a218154
+Reviewed-on: https://chromium-review.googlesource.com/602869
+Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
+Reviewed-by: Matt Falkenhagen <falken@chromium.org>
+Commit-Queue: Mike Bjorge <mbjorge@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#492369}
+---
+ third_party/WebKit/Source/platform/loader/BUILD.gn | 1 +
+ third_party/WebKit/public/BUILD.gn                 | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/third_party/WebKit/Source/platform/loader/BUILD.gn b/third_party/WebKit/Source/platform/loader/BUILD.gn
+index d483734b21cf..409befe884a8 100644
+--- a/third_party/WebKit/Source/platform/loader/BUILD.gn
++++ b/third_party/WebKit/Source/platform/loader/BUILD.gn
+@@ -99,6 +99,7 @@ source_set("loader") {
+     "//components/link_header_util:link_header_util",
+     "//mojo/public/cpp/system:system",
+     "//storage/public/interfaces:interfaces_blink__generator",
++    "//third_party/WebKit/public:mojo_bindings_blink",
+   ]
+ 
+   public_deps = [
+diff --git a/third_party/WebKit/public/BUILD.gn b/third_party/WebKit/public/BUILD.gn
+index 84ee3ca9136d..cc847663efc6 100644
+--- a/third_party/WebKit/public/BUILD.gn
++++ b/third_party/WebKit/public/BUILD.gn
+@@ -755,6 +755,7 @@ mojom("mojo_bindings") {
+   visibility_blink = [
+     "//content/common:mojo_bindings_blink",
+     "//third_party/WebKit/Source/platform",
++    "//third_party/WebKit/Source/platform/loader",
+   ]
+   sources = [
+     "platform/display_mode.mojom",
+-- 
+2.14.0
+


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

commit:     c38ed01caecf5bccbf40c542dc4a4816e1b3119b
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 19 19:03:00 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Jul 19 19:03:00 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c38ed01c

www-client/chromium: dev channel bump (61.0.3159.5)

Add system-icu USE flag (enabled by default). This will
help users with icu-59, which chromium does not work with yet.

Bug: https://bugs.gentoo.org/619796

 www-client/chromium/Manifest                        |  2 +-
 ....0.3141.7.ebuild => chromium-61.0.3159.5.ebuild} | 21 ++++++++++++++-------
 www-client/chromium/files/chromium-gcc-r1.patch     | 14 ++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r13.patch  | 18 ++++++++++++++++++
 www-client/chromium/metadata.xml                    |  1 +
 5 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 41100ffa649..aea984c4045 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.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
+DIST chromium-61.0.3159.5.tar.xz 546362372 SHA256 34e0e62f5c30df110bd8d5f872021a8a0ee21fc4b6c2d4efcb8a2232612f6e0a SHA512 325312223a1486fef1ca9d19c215147bdb37d7ab83437a6e38a076099bf450b79fbfba4060234307cba6385f9d82bf9d66c7a178f3ca33eeb0be1acee71e03f0 WHIRLPOOL cecab851eb6b247e7e381cfcac94d43d2b30d38631160ba1393920e241803e3b54402f719677b608ac15734c21ad6e762925e18f92b1b3e40f3aea93886aa721

diff --git a/www-client/chromium/chromium-61.0.3141.7.ebuild b/www-client/chromium/chromium-61.0.3159.5.ebuild
similarity index 98%
rename from www-client/chromium/chromium-61.0.3141.7.ebuild
rename to www-client/chromium/chromium-61.0.3159.5.ebuild
index 5573566a78f..0543445d68c 100644
--- a/www-client/chromium/chromium-61.0.3141.7.ebuild
+++ b/www-client/chromium/chromium-61.0.3159.5.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:= )
 	dev-libs/libxslt:=
 	dev-libs/nspr:=
 	>=dev-libs/nss-3.14.3:=
@@ -186,7 +186,8 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r11.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r13.patch"
+		"${FILESDIR}/${PN}-gcc-r1.patch"
 	)
 
 	default
@@ -321,6 +322,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 +381,6 @@ src_configure() {
 	local gn_system_libraries=(
 		flac
 		harfbuzz-ng
-		icu
 		libdrm
 		libjpeg
 		libpng
@@ -393,6 +396,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
@@ -421,7 +427,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)"
@@ -599,8 +605,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-gcc-r1.patch b/www-client/chromium/files/chromium-gcc-r1.patch
new file mode 100644
index 00000000000..2acd11ed5b0
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc-r1.patch
@@ -0,0 +1,14 @@
+diff --git a/base/numerics/safe_math_shared_impl.h b/base/numerics/safe_math_shared_impl.h
+index 99f230ce7e9a..de2415d402f5 100644
+--- a/base/numerics/safe_math_shared_impl.h
++++ b/base/numerics/safe_math_shared_impl.h
+@@ -21,8 +21,7 @@
+ #if !defined(__native_client__) &&                         \
+     ((defined(__clang__) &&                                \
+       ((__clang_major__ > 3) ||                            \
+-       (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+-     (defined(__GNUC__) && __GNUC__ >= 5))
++       (__clang_major__ == 3 && __clang_minor__ >= 4))))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r13.patch b/www-client/chromium/files/chromium-gn-bootstrap-r13.patch
new file mode 100644
index 00000000000..abb67a80621
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r13.patch
@@ -0,0 +1,18 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -467,7 +467,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       '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',
+@@ -567,6 +566,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/tracked_objects.cc',
+       'base/tracking_info.cc',
+       'base/unguessable_token.cc',
++      'base/value_iterators.cc',
+       'base/values.cc',
+       'base/vlog.cc',
+   ])

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index e468d5e9c6e..5102e4b0a7b 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -15,6 +15,7 @@
 		<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>
 		<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="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-05-24  7:07 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-05-24  7:07 UTC (permalink / raw
  To: gentoo-commits

commit:     3269bfcc48d35843d03e06ff5cbbce00d8f7b30c
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed May 24 07:05:48 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed May 24 07:06:53 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3269bfcc

www-client/chromium: dev channel bump (60.0.3107.4)

Package-Manager: Portage-2.3.5, Repoman-2.3.1

 www-client/chromium/Manifest                       |  2 +-
 ...0.3095.5.ebuild => chromium-60.0.3107.4.ebuild} | 14 ++++++------
 .../chromium/files/chromium-gn-bootstrap-r7.patch  | 16 ++++++++++++++
 .../files/chromium-system-harfbuzz-r1.patch        | 25 ++++++++++++++++++++++
 4 files changed, 49 insertions(+), 8 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 2a817e7ff3d..31e8a2a0f35 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.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
+DIST chromium-60.0.3107.4.tar.xz 533329508 SHA256 d49fd97a882eea329168a7d036e1ffee031fe62f42379c821138b8e6c204c091 SHA512 0c2e6a2496105f026f8d4cf42c5eabfac1f513385c8ace9070f1c9a7ebbcd62190d30857a7f9cc8aed3e590a57816029e04813a7876d47f00ea0e1302f5a8556 WHIRLPOOL c01f9763df6a0a4a5f61f4acb7d67b040901b24d0c26a02dd8ff5e6b110d51833927f19824f347e3adbbf6b27f476ca35949fd50d5bc7779a9646db9bd30dc74

diff --git a/www-client/chromium/chromium-60.0.3095.5.ebuild b/www-client/chromium/chromium-60.0.3107.4.ebuild
similarity index 97%
rename from www-client/chromium/chromium-60.0.3095.5.ebuild
rename to www-client/chromium/chromium-60.0.3107.4.ebuild
index 210fb31567b..3e3c1b945b4 100644
--- a/www-client/chromium/chromium-60.0.3095.5.ebuild
+++ b/www-client/chromium/chromium-60.0.3107.4.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 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.
@@ -37,12 +37,11 @@ COMMON_DEPEND="
 	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.4.2:=
+	>=media-libs/harfbuzz-1.4.2:=[icu(-)]
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
 	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
@@ -185,10 +184,10 @@ 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}-system-opus-r1.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r7.patch"
+		"${FILESDIR}/${PN}-system-harfbuzz-r1.patch"
 	)
 
 	default
@@ -351,6 +350,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).
@@ -386,7 +386,7 @@ 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=$(usex gconf 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)"

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r7.patch b/www-client/chromium/files/chromium-gn-bootstrap-r7.patch
new file mode 100644
index 00000000000..4fa1d9d4956
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r7.patch
@@ -0,0 +1,16 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 5e624eab4fc4294f054bece4fcbd179cd4ce996f..c52779ef4327df3e6adb76b77bc7735e2724bedc 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -600,7 +601,9 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/threading/platform_thread_posix.cc',
+         'base/threading/thread_local_storage_posix.cc',
+         'base/threading/worker_pool_posix.cc',
+-        'base/time/time_posix.cc',
++        'base/time/time_conversion_posix.cc',
++        'base/time/time_exploded_posix.cc',
++        'base/time/time_now_posix.cc',
+         'base/trace_event/heap_profiler_allocation_register_posix.cc',
+     ])
+     static_libraries['libevent'] = {

diff --git a/www-client/chromium/files/chromium-system-harfbuzz-r1.patch b/www-client/chromium/files/chromium-system-harfbuzz-r1.patch
new file mode 100644
index 00000000000..616dae026c6
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-harfbuzz-r1.patch
@@ -0,0 +1,25 @@
+--- a/build/linux/unbundle/harfbuzz-ng.gn.orig	2017-05-23 20:53:36.592001223 +0000
++++ b/build/linux/unbundle/harfbuzz-ng.gn	2017-05-23 20:56:18.595309433 +0000
+@@ -17,7 +17,21 @@
+   headers = [ "hb.h" ]
+ }
+ 
+-source_set("harfbuzz-ng") {
++group("harfbuzz-ng") {
++  public_deps = [
++    ":harfbuzz-ng-ft",
++    ":harfbuzz-ng-without-freetype",
++  ]
++}
++
++source_set("harfbuzz-ng-ft") {
++  deps = [
++    ":harfbuzz_shim",
++  ]
++  public_configs = [ ":system_harfbuzz" ]
++}
++
++source_set("harfbuzz-ng-without-freetype") {
+   deps = [
+     ":harfbuzz_shim",
+   ]


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-05-05 18:27 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-05-05 18:27 UTC (permalink / raw
  To: gentoo-commits

commit:     631dd7a209d994a2f1a57823e0da3b572d12da25
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Fri May  5 18:26:59 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Fri May  5 18:26:59 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=631dd7a2

www-client/chromium: dev channel bump (60.0.3088.3)

Package-Manager: Portage-2.3.5, Repoman-2.3.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-60.0.3088.3.ebuild    | 649 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r6.patch  |  18 +
 .../chromium/files/chromium-system-opus-r1.patch   |  20 +
 4 files changed, 688 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 90025ec9a1a..03f78db33ed 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-58.0.3029.81.tar.xz 509252204 SHA256 5ab61b7025a5143fa1b21713479b3
 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
 DIST chromium-60.0.3080.5.tar.xz 529799584 SHA256 7d6cc16eba14b4417b02f8533707b6ea910574402b2f92463f831eb7c19eb536 SHA512 da4ad6820d080549c694d5ef2cdaf380004f19630c4caf3c5cdb73863685751cc278c81f846d30c3ebee1be4608dad3cfe1598af31f10b4e6c47bffab4c91431 WHIRLPOOL b9f48d1fccf7914463572d857cb0e552d3178114a20d4f83d486037d9b55c3277a2f93c6fea245d136ae5b59a14a8bf0c1bc923e4395e5619a043ef0655601ec
+DIST chromium-60.0.3088.3.tar.xz 530979712 SHA256 f47aa0f8a3a1280f1df548a31a0560f32f205716bbd4b72866c101a78842fc1f SHA512 a80684d8b941fe6c91cd3b9d558f1a8b6a61ee1292424d5c2ca67d8e8b46df2291d4f95f40d02e393a83ea0f3e3f99274e8a86473e8c1c7702ace50ad26e79f9 WHIRLPOOL 227045a6c130ddd12b0bef00e7886e8435cb58e988e02a6320f0ba32f8c78203de88ad31df0fc2ef80e9c5f88449513e5fd6fd6279dd360070c94830038a6859

diff --git a/www-client/chromium/chromium-60.0.3088.3.ebuild b/www-client/chromium/chromium-60.0.3088.3.ebuild
new file mode 100644
index 00000000000..2d8e4832028
--- /dev/null
+++ b/www-client/chromium/chromium-60.0.3088.3.ebuild
@@ -0,0 +1,649 @@
+# 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/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:=
+	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.4.2:=
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	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.patch"
+		"${FILESDIR}/skia-avx2.patch"
+		"${FILESDIR}/${PN}-system-ffmpeg-r6.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r6.patch"
+		"${FILESDIR}/${PN}-system-opus-r1.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/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
+		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/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/pnacl-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: 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).
+	# 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
+		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=$(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_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
+}
+
+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-r6.patch b/www-client/chromium/files/chromium-gn-bootstrap-r6.patch
new file mode 100644
index 00000000000..ef450ae7c0d
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r6.patch
@@ -0,0 +1,18 @@
+--- a/tools/gn/bootstrap/bootstrap.py.orig	2017-05-05 10:28:25.450118804 +0000
++++ b/tools/gn/bootstrap/bootstrap.py	2017-05-05 10:29:39.339673530 +0000
+@@ -546,6 +546,7 @@
+       'base/trace_event/memory_infra_background_whitelist.cc',
+       'base/trace_event/memory_peak_detector.cc',
+       'base/trace_event/memory_tracing_observer.cc',
++      'base/trace_event/memory_usage_estimator.cc',
+       'base/trace_event/process_memory_dump.cc',
+       'base/trace_event/process_memory_maps.cc',
+       'base/trace_event/process_memory_totals.cc',
+@@ -629,6 +630,7 @@
+         'tool': 'cxx',
+     }
+     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',

diff --git a/www-client/chromium/files/chromium-system-opus-r1.patch b/www-client/chromium/files/chromium-system-opus-r1.patch
new file mode 100644
index 00000000000..d1a9a131a32
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-opus-r1.patch
@@ -0,0 +1,20 @@
+--- a/build/linux/unbundle/opus.gn.orig	2017-05-05 13:40:51.267582823 +0000
++++ b/build/linux/unbundle/opus.gn	2017-05-05 13:41:38.156561667 +0000
+@@ -5,7 +5,7 @@
+ import("//build/config/linux/pkg_config.gni")
+ import("//build/shim_headers.gni")
+ 
+-pkg_config("system_opus") {
++pkg_config("opus_config") {
+   packages = [ "opus" ]
+ }
+ 
+@@ -23,7 +23,7 @@
+   deps = [
+     ":opus_shim",
+   ]
+-  public_configs = [ ":system_opus" ]
++  public_configs = [ ":opus_config" ]
+ }
+ 
+ source_set("opus_compare") {


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-04-28 15:45 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-04-28 15:45 UTC (permalink / raw
  To: gentoo-commits

commit:     db98d9c90fca877536fd1c77f81eed5841fae5dc
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 28 15:44:10 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Fri Apr 28 15:44:46 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db98d9c9

www-client/chromium: dev channel bump (60.0.3080.5)

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-60.0.3080.5.ebuild    | 648 +++++++++++++++++++++
 www-client/chromium/files/chromium-clang-r1.patch  |  11 +
 .../chromium/files/chromium-dma-buf-r2.patch       |  20 +
 .../chromium/files/chromium-gn-bootstrap-r5.patch  |  11 +
 5 files changed, 691 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a2fcdb90d75..90025ec9a1a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-58.0.3029.81.tar.xz 509252204 SHA256 5ab61b7025a5143fa1b21713479b316ec7a98e262e79e84f9c9a9656179217cb SHA512 49e8a641e6fe839880ac4cc17aa4b79875dbd0e14adcf7ad0138730334555fd57c93c1e7ebdf6f03c61528c351a5a489f56fb7d7809aef268627b186c547a4f3 WHIRLPOOL eed9d97cd4cb4d9a56864e65e797f6d126327d6e9371bdfe416fd57f0f4c9c83f37e125798a1753b5d8bc5921036bdfe064b3d7e94c3ba315a710241a6c5b179
 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
+DIST chromium-60.0.3080.5.tar.xz 529799584 SHA256 7d6cc16eba14b4417b02f8533707b6ea910574402b2f92463f831eb7c19eb536 SHA512 da4ad6820d080549c694d5ef2cdaf380004f19630c4caf3c5cdb73863685751cc278c81f846d30c3ebee1be4608dad3cfe1598af31f10b4e6c47bffab4c91431 WHIRLPOOL b9f48d1fccf7914463572d857cb0e552d3178114a20d4f83d486037d9b55c3277a2f93c6fea245d136ae5b59a14a8bf0c1bc923e4395e5619a043ef0655601ec

diff --git a/www-client/chromium/chromium-60.0.3080.5.ebuild b/www-client/chromium/chromium-60.0.3080.5.ebuild
new file mode 100644
index 00000000000..6081cb18f33
--- /dev/null
+++ b/www-client/chromium/chromium-60.0.3080.5.ebuild
@@ -0,0 +1,648 @@
+# 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/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:=
+	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.4.2:=
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+	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-gcc; then
+			# https://bugs.chromium.org/p/chromium/issues/detail?id=714412
+			die "GCC build is currently broken; please use clang instead (CC=clang CXX=clang++)"
+		fi
+		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}/skia-avx2.patch"
+		"${FILESDIR}/${PN}-dma-buf-r2.patch"
+		"${FILESDIR}/${PN}-system-ffmpeg-r6.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r5.patch"
+		"${FILESDIR}/${PN}-clang-r1.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/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
+		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/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/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
+		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: 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).
+	# 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
+		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_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
+}
+
+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-clang-r1.patch b/www-client/chromium/files/chromium-clang-r1.patch
new file mode 100644
index 00000000000..ea593200cf7
--- /dev/null
+++ b/www-client/chromium/files/chromium-clang-r1.patch
@@ -0,0 +1,11 @@
+--- a/base/containers/flat_set.h.orig	2017-04-28 14:39:24.143751606 +0000
++++ b/base/containers/flat_set.h	2017-04-28 14:39:33.815953089 +0000
+@@ -5,6 +5,8 @@
+ #ifndef BASE_CONTAINERS_FLAT_SET_H_
+ #define BASE_CONTAINERS_FLAT_SET_H_
+ 
++#include <functional>
++
+ #include "base/containers/flat_tree.h"
+ 
+ namespace base {

diff --git a/www-client/chromium/files/chromium-dma-buf-r2.patch b/www-client/chromium/files/chromium-dma-buf-r2.patch
new file mode 100644
index 00000000000..2de680cf031
--- /dev/null
+++ b/www-client/chromium/files/chromium-dma-buf-r2.patch
@@ -0,0 +1,20 @@
+--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc.orig	2017-04-28 10:27:57.890505336 +0000
++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc	2017-04-28 10:28:17.726916569 +0000
+@@ -19,9 +19,6 @@
+ #include "base/strings/stringprintf.h"
+ #include "base/trace_event/trace_event.h"
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
+-#include <linux/dma-buf.h>
+-#else
+ #include <linux/types.h>
+ 
+ struct dma_buf_sync {
+@@ -36,7 +33,6 @@
+ 
+ #define DMA_BUF_BASE 'b'
+ #define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
+-#endif
+ 
+ namespace gfx {
+ 

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r5.patch b/www-client/chromium/files/chromium-gn-bootstrap-r5.patch
new file mode 100644
index 00000000000..5e95036086e
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r5.patch
@@ -0,0 +1,11 @@
+--- a/tools/gn/bootstrap/bootstrap.py.orig	2017-04-28 11:27:52.844988762 +0000
++++ b/tools/gn/bootstrap/bootstrap.py	2017-04-28 11:29:12.698642585 +0000
+@@ -503,6 +503,8 @@
+       'base/threading/thread_restrictions.cc',
+       'base/threading/thread_task_runner_handle.cc',
+       'base/threading/worker_pool.cc',
++      'base/time/default_tick_clock.cc',
++      'base/time/tick_clock.cc',
+       'base/time/time.cc',
+       'base/timer/elapsed_timer.cc',
+       'base/timer/timer.cc',


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-04-08 17:22 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-04-08 17:22 UTC (permalink / raw
  To: gentoo-commits

commit:     d6f5e46dd704331624ee41bd85cfe8f8bfb871e3
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  8 16:58:29 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sat Apr  8 17:21:51 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6f5e46d

www-client/chromium: dev channel bump (59.0.3063.4)

 www-client/chromium/Manifest                       |  2 +-
 ...0.3047.0.ebuild => chromium-59.0.3063.4.ebuild} |  8 ++-
 .../chromium/files/chromium-system-ffmpeg-r5.patch | 66 ++++++++++++++++++++++
 .../files/chromium-system-libjpeg-r1.patch         |  9 +++
 4 files changed, 81 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 7c54b5d3a98..62ce4fb1584 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.3047.0.tar.xz 517288828 SHA256 721fab5df661df892880c63b6b3b8a89978f6874afe3de4506e3e762d7cf3ba3 SHA512 0259aeecd25e734d5d8fcbc51bf976b71ef1a9332852a836c233a413856f319746d7181e3b8315729f08ca7a0959a2a67966ea6ac14442697ab73f27af0067c7 WHIRLPOOL 6a93d595ec023b2d4d008e163fec660a54d9d1013d36b2a466f5a35b81e37f6313e961bac49780f0a90eb3f6173da99a2acb09a6976e0ba3c43a9a8bd4937aa4
 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

diff --git a/www-client/chromium/chromium-59.0.3047.0.ebuild b/www-client/chromium/chromium-59.0.3063.4.ebuild
similarity index 99%
rename from www-client/chromium/chromium-59.0.3047.0.ebuild
rename to www-client/chromium/chromium-59.0.3063.4.ebuild
index 06da96ed51c..9055ebfaf73 100644
--- a/www-client/chromium/chromium-59.0.3047.0.ebuild
+++ b/www-client/chromium/chromium-59.0.3063.4.ebuild
@@ -200,10 +200,11 @@ src_prepare() {
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${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"
 	)
 
-	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )
-
 	default
 
 	mkdir -p third_party/node/linux/node-linux-x64/bin || die
@@ -253,6 +254,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
@@ -297,7 +299,6 @@ src_prepare() {
 		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
@@ -367,6 +368,7 @@ src_configure() {
 		flac
 		harfbuzz-ng
 		icu
+		libdrm
 		libjpeg
 		libpng
 		libwebp

diff --git a/www-client/chromium/files/chromium-system-ffmpeg-r5.patch b/www-client/chromium/files/chromium-system-ffmpeg-r5.patch
new file mode 100644
index 00000000000..cf82dd1bb40
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r5.patch
@@ -0,0 +1,66 @@
+--- 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());
+ 
+--- a/build/linux/unbundle/ffmpeg.gn.orig	2017-04-07 18:18:55.793461226 +0000
++++ b/build/linux/unbundle/ffmpeg.gn	2017-04-07 18:20:13.883072465 +0000
+@@ -13,6 +13,10 @@
+   ]
+ }
+ 
++config("using_system_ffmpeg") {
++  defines = [ "USE_SYSTEM_FFMPEG=1" ]
++}
++
+ shim_headers("ffmpeg_shim") {
+   root_path = "."
+   headers = [
+@@ -26,5 +30,8 @@
+   deps = [
+     ":ffmpeg_shim",
+   ]
+-  public_configs = [ ":system_ffmpeg" ]
++  public_configs = [
++    ":system_ffmpeg",
++    ":using_system_ffmpeg",
++  ]
+ }

diff --git a/www-client/chromium/files/chromium-system-libjpeg-r1.patch b/www-client/chromium/files/chromium-system-libjpeg-r1.patch
new file mode 100644
index 00000000000..3c5d0f7d151
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-libjpeg-r1.patch
@@ -0,0 +1,9 @@
+--- a/build/linux/unbundle/libjpeg.gn.orig	2017-04-07 18:43:28.687843142 +0000
++++ b/build/linux/unbundle/libjpeg.gn	2017-04-07 18:43:47.156224137 +0000
+@@ -21,3 +21,6 @@
+ 
+ source_set("simd_asm") {
+ }
++
++config("libjpeg_config") {
++}


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-03-29 16:27 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-03-29 16:27 UTC (permalink / raw
  To: gentoo-commits

commit:     f3d721fbb4127f17e836a1842cfdd2bf76f0d398
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 29 16:22:54 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Mar 29 16:26:29 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3d721fb

www-client/chromium: dev channel bump (59.0.3053.3)

 www-client/chromium/Manifest                        |  2 +-
 ....0.3043.0.ebuild => chromium-59.0.3053.3.ebuild} |  7 +++++--
 www-client/chromium/files/chromium-dma-buf-r1.patch | 21 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r4.patch   | 21 +++++++++++++++++++++
 4 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 587a93c6c2f..882c46b6ff2 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 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
 DIST chromium-59.0.3047.0.tar.xz 517288828 SHA256 721fab5df661df892880c63b6b3b8a89978f6874afe3de4506e3e762d7cf3ba3 SHA512 0259aeecd25e734d5d8fcbc51bf976b71ef1a9332852a836c233a413856f319746d7181e3b8315729f08ca7a0959a2a67966ea6ac14442697ab73f27af0067c7 WHIRLPOOL 6a93d595ec023b2d4d008e163fec660a54d9d1013d36b2a466f5a35b81e37f6313e961bac49780f0a90eb3f6173da99a2acb09a6976e0ba3c43a9a8bd4937aa4
+DIST chromium-59.0.3053.3.tar.xz 516942144 SHA256 55126fa8954093d513a77191ff32b194647f119a0dfbf101c636e5d557c28252 SHA512 5a5d0f6d06ffbaf13e6e1e7442a86418f07ed00654926fad9ba1ae3458f0a67374da3a43d8235abd5a6db0827f57c25a631d537e6475c23488ffc272a65fbfee WHIRLPOOL 1df35cffa2160fdd95f834df10b6f6e07703b9070bd46b7d5631dca66ab0ec4b2d6d947ad9e0c80f0a8f6380b1bf9afd23df6842f827005638b6e710eda8aa3c

diff --git a/www-client/chromium/chromium-59.0.3043.0.ebuild b/www-client/chromium/chromium-59.0.3053.3.ebuild
similarity index 99%
rename from www-client/chromium/chromium-59.0.3043.0.ebuild
rename to www-client/chromium/chromium-59.0.3053.3.ebuild
index 8c0d3caf2ee..6ca1bccd1a2 100644
--- a/www-client/chromium/chromium-59.0.3043.0.ebuild
+++ b/www-client/chromium/chromium-59.0.3053.3.ebuild
@@ -49,7 +49,7 @@ COMMON_DEPEND="
 	media-libs/libexif:=
 	media-libs/libjpeg-turbo:=
 	media-libs/libpng:=
-	system-libvpx? ( media-libs/libvpx:=[svc] )
+	system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
 	media-libs/speex:=
 	pulseaudio? ( media-sound/pulseaudio:= )
 	system-ffmpeg? ( >=media-video/ffmpeg-3:= )
@@ -199,8 +199,9 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r3.patch"
 		"${FILESDIR}/skia-avx2.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r4.patch"
+		"${FILESDIR}/${PN}-dma-buf-r1.patch"
 	)
 
 	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )
@@ -266,6 +267,7 @@ src_prepare() {
 		third_party/leveldatabase
 		third_party/libXNVCtrl
 		third_party/libaddressinput
+		third_party/libdrm
 		third_party/libjingle
 		third_party/libphonenumber
 		third_party/libsecret
@@ -290,6 +292,7 @@ src_prepare() {
 		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

diff --git a/www-client/chromium/files/chromium-dma-buf-r1.patch b/www-client/chromium/files/chromium-dma-buf-r1.patch
new file mode 100644
index 00000000000..6cc8d087d3f
--- /dev/null
+++ b/www-client/chromium/files/chromium-dma-buf-r1.patch
@@ -0,0 +1,21 @@
+--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc.orig	2017-03-29 15:08:58.079790070 +0000
++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc	2017-03-29 15:09:10.068039324 +0000
+@@ -17,7 +17,6 @@
+ #include "base/strings/stringprintf.h"
+ #include "base/trace_event/trace_event.h"
+ 
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
+ #include <linux/types.h>
+ 
+ struct local_dma_buf_sync {
+@@ -35,10 +34,6 @@
+ #define LOCAL_DMA_BUF_IOCTL_SYNC \
+   _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync)
+ 
+-#else
+-#include <linux/dma-buf.h>
+-#endif
+-
+ namespace gfx {
+ 
+ namespace {

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r4.patch b/www-client/chromium/files/chromium-gn-bootstrap-r4.patch
new file mode 100644
index 00000000000..5849154b393
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r4.patch
@@ -0,0 +1,21 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 9bad2b4e6eed9a0208c300079dfff34b1f8f31f2..0bc2e4fb8701f08e6f2d5306f03c17a2f63dbd4e 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -526,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/trace_event/process_memory_totals.cc',
+       'base/trace_event/trace_buffer.cc',
+       'base/trace_event/trace_config.cc',
++      'base/trace_event/trace_config_category_filter.cc',
+       'base/trace_event/trace_event_argument.cc',
+       'base/trace_event/trace_event_filter.cc',
+       'base/trace_event/trace_event_impl.cc',
+@@ -612,6 +613,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/process/internal_linux.cc',
+         'base/process/memory_linux.cc',
+         'base/process/process_handle_linux.cc',
++        'base/process/process_info_linux.cc',
+         'base/process/process_iterator_linux.cc',
+         'base/process/process_linux.cc',
+         'base/process/process_metrics_linux.cc',


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

commit:     75bcee6374e78a3dccfd5bd61739a7829b425d42
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 14 22:31:55 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Mar 14 22:34:24 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75bcee63

www-client/chromium: remove old

Package-Manager: Portage-2.3.3_p79, Repoman-2.3.1_p72

 www-client/chromium/Manifest                       |   3 -
 .../chromium/chromium-56.0.2924.76-r1.ebuild       | 639 --------------------
 www-client/chromium/chromium-57.0.2987.54.ebuild   | 644 ---------------------
 www-client/chromium/chromium-57.0.2987.74.ebuild   | 644 ---------------------
 .../chromium/files/chromium-54-ffmpeg2compat.patch |  27 -
 www-client/chromium/files/chromium-56-gcc4.patch   |  48 --
 .../chromium/files/chromium-glibc-2.24.patch       |  15 -
 .../chromium/files/chromium-gn-bootstrap-ld.patch  |  29 -
 .../chromium/files/chromium-gn-bootstrap-r1.patch  |  90 ---
 www-client/chromium/files/chromium-icu-58.patch    | 136 -----
 .../chromium/files/chromium-system-jinja-r14.patch |  31 -
 11 files changed, 2306 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 76a6fba7624..6ef2d5d8581 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,3 @@
-DIST chromium-56.0.2924.76.tar.xz 513487700 SHA256 cfb08e226b9c16ad887eb96d715a9cc4ab097d1a79e2e68c8749a7a4164b3c38 SHA512 ddcb2f0c76bdad3b87dc9219367764cb9adb900d7581dc5a371184ebfe2581f6ecbfc9aae02115e87291a5b90587fc145dada2b0940ae60fc19d25f5c505022d WHIRLPOOL db244681d9b1e325179328a64fb46ffb7a2492b48bafc327500ef491a676d3783cdf4ba400283c0c7a505958d376f784c35d28f4418557d6ba4cdd6bcf2cd5e9
-DIST chromium-57.0.2987.54.tar.xz 525225120 SHA256 7d9ffddf497184e209e16175f952e1ad3783b277189f34e650ee2eba20475be1 SHA512 6c4ff6f228a910fbc73d7781fcc4fddd41bd758e57030efeb3fabbe660e5f4fa33aed2a899ce8f6c345bf4417bb8f65ca95fc882cd907c31cd4cc9f5034c2c8b WHIRLPOOL 2649c3f9018e3479008f2ca6e83285b0036194c8671e2feb62a9643efec9a38803709ab09982be39ab4fea89a53b5168651dfa1083b74bc93b95a2bc49f49055
-DIST chromium-57.0.2987.74.tar.xz 525264968 SHA256 5ff17f10372f11107c6ceabcf1e1382cb8e2e9a345537d1c9d1935f1b7c27dd4 SHA512 e5ae6e65cb6dadae72ee56c16951f62482a34582d1482e47f8c211b2f95e4554d8550080c48133119506ce29b35b0b59ca2ad7c4ce96e5ad734614cba73bb8c7 WHIRLPOOL 521c11fb8d5c764abd49c832ad95bc3d04e94ff17d9ae6472949f6b136c3a2c1280edecce2e1c398970c1918da4afe28eba868bd65308dc24d44ae2502429dd4
 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

diff --git a/www-client/chromium/chromium-56.0.2924.76-r1.ebuild b/www-client/chromium/chromium-56.0.2924.76-r1.ebuild
deleted file mode 100644
index 54cc5a2dce7..00000000000
--- a/www-client/chromium/chromium-56.0.2924.76-r1.ebuild
+++ /dev/null
@@ -1,639 +0,0 @@
-# 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="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:2
-	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-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:=
-	dev-libs/libxml2:=[icu]
-	dev-libs/libxslt:=
-	media-libs/flac:=
-	>=media-libs/harfbuzz-1.3.1:=[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
-	!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
-	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.9 "$(gcc-version)"; then
-			# bugs: #535730, #525374, #518668, #600288
-			die "At least gcc 4.9 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"
-		CHECKREQS_MEMORY="16G"
-	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}-glibc-2.24.patch"
-		"${FILESDIR}/${PN}-56-gcc4.patch"
-	)
-
-	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )
-
-	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/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/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
-
-	# 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
-
-	# 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${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/chromium-57.0.2987.54.ebuild b/www-client/chromium/chromium-57.0.2987.54.ebuild
deleted file mode 100644
index aa5f20b4328..00000000000
--- a/www-client/chromium/chromium-57.0.2987.54.ebuild
+++ /dev/null
@@ -1,644 +0,0 @@
-# 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-37
-	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
-	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 5 "$(gcc-major-version)"; then
-			# bugs: #535730, #525374, #518668, #600288
-			die "At least gcc 5 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"
-	)
-
-	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )
-
-	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/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/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/chromium-57.0.2987.74.ebuild b/www-client/chromium/chromium-57.0.2987.74.ebuild
deleted file mode 100644
index aa5f20b4328..00000000000
--- a/www-client/chromium/chromium-57.0.2987.74.ebuild
+++ /dev/null
@@ -1,644 +0,0 @@
-# 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-37
-	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
-	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 5 "$(gcc-major-version)"; then
-			# bugs: #535730, #525374, #518668, #600288
-			die "At least gcc 5 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"
-	)
-
-	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )
-
-	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/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/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-54-ffmpeg2compat.patch b/www-client/chromium/files/chromium-54-ffmpeg2compat.patch
deleted file mode 100644
index efe70fc001e..00000000000
--- a/www-client/chromium/files/chromium-54-ffmpeg2compat.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-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);

diff --git a/www-client/chromium/files/chromium-56-gcc4.patch b/www-client/chromium/files/chromium-56-gcc4.patch
deleted file mode 100644
index e3188668ce5..00000000000
--- a/www-client/chromium/files/chromium-56-gcc4.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-glibc-2.24.patch b/www-client/chromium/files/chromium-glibc-2.24.patch
deleted file mode 100644
index f7bfd816433..00000000000
--- a/www-client/chromium/files/chromium-glibc-2.24.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- 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);

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-ld.patch b/www-client/chromium/files/chromium-gn-bootstrap-ld.patch
deleted file mode 100644
index 7916a7b05d8..00000000000
--- a/www-client/chromium/files/chromium-gn-bootstrap-ld.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-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
-

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r1.patch b/www-client/chromium/files/chromium-gn-bootstrap-r1.patch
deleted file mode 100644
index 9019650888a..00000000000
--- a/www-client/chromium/files/chromium-gn-bootstrap-r1.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-Index: tools/gn/bootstrap/bootstrap.py
-diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
-index c3642e8f487cab9ee9d22ef6a4e5c20871593802..12806cb3a9033b4d532f97e87061d8eecf3bd202 100755
---- a/tools/gn/bootstrap/bootstrap.py
-+++ b/tools/gn/bootstrap/bootstrap.py
-@@ -154,6 +154,13 @@ def write_buildflag_header_manually(root_gen_dir, header, flags):
- 
-   os.remove(temp_path)
- 
-+def write_build_date_header(root_gen_dir):
-+  check_call([
-+       os.path.join(SRC_ROOT, 'build', 'write_build_date_header.py'),
-+       os.path.join(root_gen_dir, 'base/generated_build_date.h'),
-+       'default',
-+  ])
-+
- def build_gn_with_ninja_manually(tempdir, options):
-   root_gen_dir = os.path.join(tempdir, 'gen')
-   mkdir_p(root_gen_dir)
-@@ -167,6 +174,8 @@ def build_gn_with_ninja_manually(tempdir, options):
-           'ENABLE_MEMORY_TASK_PROFILER': 'false'
-       })
- 
-+  write_build_date_header(root_gen_dir)
-+
-   if is_mac:
-     # //base/build_time.cc needs base/generated_build_date.h,
-     # and this file is only included for Mac builds.
-@@ -374,6 +383,7 @@ def write_gn_ninja(path, root_gen_dir, options):
-       'base/at_exit.cc',
-       'base/base_paths.cc',
-       'base/base_switches.cc',
-+      'base/build_time.cc',
-       'base/callback_internal.cc',
-       'base/command_line.cc',
-       'base/debug/activity_tracker.cc',
-@@ -382,6 +392,7 @@ def write_gn_ninja(path, root_gen_dir, options):
-       'base/debug/stack_trace.cc',
-       'base/debug/task_annotator.cc',
-       'base/environment.cc',
-+      'base/feature_list.cc',
-       'base/files/file.cc',
-       'base/files/file_descriptor_watcher_posix.cc',
-       'base/files/file_enumerator.cc',
-@@ -413,6 +424,8 @@ def write_gn_ninja(path, root_gen_dir, options):
-       'base/message_loop/message_pump.cc',
-       'base/message_loop/message_pump_default.cc',
-       'base/metrics/bucket_ranges.cc',
-+      'base/metrics/field_trial.cc',
-+      'base/metrics/field_trial_param_associator.cc',
-       'base/metrics/histogram.cc',
-       'base/metrics/histogram_base.cc',
-       'base/metrics/histogram_samples.cc',
-@@ -428,12 +441,14 @@ def write_gn_ninja(path, root_gen_dir, options):
-       'base/pending_task.cc',
-       'base/pickle.cc',
-       'base/process/kill.cc',
-+      'base/process/memory.cc',
-       'base/process/process_handle.cc',
-       'base/process/process_iterator.cc',
-       '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',
-       'base/sequence_checker_impl.cc',
-@@ -533,11 +548,13 @@ def write_gn_ninja(path, root_gen_dir, options):
-         'base/files/memory_mapped_file_posix.cc',
-         'base/message_loop/message_pump_libevent.cc',
-         'base/posix/file_descriptor_shuffle.cc',
-+        'base/posix/global_descriptors.cc',
-         'base/posix/safe_strerror.cc',
-         'base/process/kill_posix.cc',
-         'base/process/process_handle_posix.cc',
-         'base/process/process_metrics_posix.cc',
-         'base/process/process_posix.cc',
-+        'base/rand_util_posix.cc',
-         'base/strings/string16.cc',
-         'base/synchronization/condition_variable_posix.cc',
-         'base/synchronization/lock_impl_posix.cc',
-@@ -589,6 +606,7 @@ def write_gn_ninja(path, root_gen_dir, options):
-         'base/memory/shared_memory_posix.cc',
-         'base/nix/xdg_util.cc',
-         'base/process/internal_linux.cc',
-+        'base/process/memory_linux.cc',
-         'base/process/process_handle_linux.cc',
-         'base/process/process_iterator_linux.cc',
-         'base/process/process_linux.cc',

diff --git a/www-client/chromium/files/chromium-icu-58.patch b/www-client/chromium/files/chromium-icu-58.patch
deleted file mode 100644
index 2718f1f3d80..00000000000
--- a/www-client/chromium/files/chromium-icu-58.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 424584b4984bde7c831f42e9fb47f1ad583a1c46 Mon Sep 17 00:00:00 2001
-From: jshin <jshin@chromium.org>
-Date: Fri, 21 Oct 2016 01:15:50 -0700
-Subject: [PATCH] Update aspirational_scripts per Unicode 9
-
-This is a preparation to update ICU to 58.1.
-Without this change, ICU update CL cannot be tested on
-trybots because a compile will fail due to '#error' checking
-if ICU version is less than 58.
-
-BUG=637001
-TEST=None
-TBR=pkasting@chromium.org
-
-Review-Url: https://chromiumcodereview.appspot.com/2436113003
-Cr-Commit-Position: refs/heads/master@{#426749}
----
- components/url_formatter/url_formatter.cc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
-index 4455db3..2b82c0c 100644
---- a/components/url_formatter/url_formatter.cc
-+++ b/components/url_formatter/url_formatter.cc
-@@ -428,9 +428,9 @@ void IDNSpoofChecker::SetAllowedUnicodeSet(UErrorCode* status) {
-   // section at
-   // http://www.unicode.org/Public/security/latest/xidmodifications.txt) are
-   // are added to the allowed set. The list has to be updated when a new
--  // version of Unicode is released. The current version is 8.0.0 and ICU 58
--  // will have Unicode 9.0 data.
--#if U_ICU_VERSION_MAJOR_NUM < 58
-+  // version of Unicode is released. The current version is 9.0.0 and ICU 60
-+  // will have Unicode 10.0 data.
-+#if U_ICU_VERSION_MAJOR_NUM < 60
-   const icu::UnicodeSet aspirational_scripts(
-       icu::UnicodeString(
-           // Unified Canadian Syllabics
-@@ -444,13 +444,13 @@ void IDNSpoofChecker::SetAllowedUnicodeSet(UErrorCode* status) {
-           // Yi
-           "\\uA000-\\uA48C"
-           // Miao
--          "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7F"
-+          "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7E"
-           "\\U00016F8F-\\U00016F9F]",
-           -1, US_INV),
-       *status);
-   allowed_set.addAll(aspirational_scripts);
- #else
--#error "Update aspirational_scripts per Unicode 9.0"
-+#error "Update aspirational_scripts per Unicode 10.0"
- #endif
- 
-   // U+0338 is included in the recommended set, while U+05F4 and U+2027 are in
--- 
-2.10.2
-
-From e60b571faa3f14dd9119a6792dccf12f8bf80192 Mon Sep 17 00:00:00 2001
-From: jshin <jshin@chromium.org>
-Date: Fri, 21 Oct 2016 12:20:05 -0700
-Subject: [PATCH] Prepare to upgrade ICU to 58 part 2
-
-U_LB_COUNT is assumed to be 40 in Blink line breaking code, but it's
-43 in ICU 58/Unicode 9.
-
-Three new classes (Emoji Base, Emoji Modifier, and ZWJ) should behave
-identically whether or not 'word-break: break-all' is in effect.
-
-BUG=637001
-TEST=TextBreakIterator.cpp is compiled without an error with ICU 58.
-R=kojii@chromium.org
-CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
-
-Review-Url: https://chromiumcodereview.appspot.com/2440923002
-Cr-Commit-Position: refs/heads/master@{#426860}
----
- .../WebKit/Source/platform/text/TextBreakIterator.cpp    | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp b/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
-index 568dc0a..36121eb 100644
---- a/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
-+++ b/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
-@@ -28,6 +28,9 @@
- #include "wtf/StdLibExtras.h"
- #include "wtf/text/CharacterNames.h"
- 
-+#include <unicode/uchar.h>
-+#include <unicode/uvernum.h>
-+
- namespace blink {
- 
- unsigned numGraphemeClusters(const String& string) {
-@@ -129,6 +132,11 @@ static const unsigned char asciiLineBreakTable[][(asciiLineBreakTableLastChar -
- };
- // clang-format on
- 
-+#if U_ICU_VERSION_MAJOR_NUM >= 58
-+#define BA_LB_COUNT (U_LB_COUNT - 3)
-+#else
-+#define BA_LB_COUNT U_LB_COUNT
-+#endif
- // Line breaking table for CSS word-break: break-all. This table differs from
- // asciiLineBreakTable in:
- // - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking
-@@ -136,7 +144,7 @@ static const unsigned char asciiLineBreakTable[][(asciiLineBreakTableLastChar -
- // - 1 indicates additional break opportunities. 0 indicates to fallback to
- //   normal line break, not "prohibit break."
- // clang-format off
--static const unsigned char breakAllLineBreakClassTable[][U_LB_COUNT / 8 + 1] = {
-+static const unsigned char breakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = {
-     // XX AI AL B2 BA BB BK CB    CL CM CR EX GL HY ID IN    IS LF NS NU OP PO PR QU    SA SG SP SY ZW NL WJ H2    H3 JL JT JV CP CJ HL RI
-     { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX
-     { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI
-@@ -190,7 +198,7 @@ static_assert(WTF_ARRAY_LENGTH(asciiLineBreakTable) ==
-                   asciiLineBreakTableLastChar - asciiLineBreakTableFirstChar +
-                       1,
-               "asciiLineBreakTable should be consistent");
--static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == U_LB_COUNT,
-+static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == BA_LB_COUNT,
-               "breakAllLineBreakClassTable should be consistent");
- 
- static inline bool shouldBreakAfter(UChar lastCh, UChar ch, UChar nextCh) {
-@@ -226,8 +234,8 @@ static inline ULineBreak lineBreakPropertyValue(UChar lastCh, UChar ch) {
- 
- static inline bool shouldBreakAfterBreakAll(ULineBreak lastLineBreak,
-                                             ULineBreak lineBreak) {
--  if (lineBreak >= 0 && lineBreak < U_LB_COUNT && lastLineBreak >= 0 &&
--      lastLineBreak < U_LB_COUNT) {
-+  if (lineBreak >= 0 && lineBreak < BA_LB_COUNT && lastLineBreak >= 0 &&
-+      lastLineBreak < BA_LB_COUNT) {
-     const unsigned char* tableRow = breakAllLineBreakClassTable[lastLineBreak];
-     return tableRow[lineBreak / 8] & (1 << (lineBreak % 8));
-   }
--- 
-2.10.2
-

diff --git a/www-client/chromium/files/chromium-system-jinja-r14.patch b/www-client/chromium/files/chromium-system-jinja-r14.patch
deleted file mode 100644
index 4dba04433eb..00000000000
--- a/www-client/chromium/files/chromium-system-jinja-r14.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- 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/scripts.gni.orig	2016-09-09 13:40:51.971660406 +0000
-+++ b/third_party/WebKit/Source/bindings/scripts/scripts.gni	2016-09-09 13:41:15.472141236 +0000
-@@ -9,15 +9,9 @@
- bindings_scripts_output_dir = "$root_gen_dir/blink/bindings/scripts"
- 
- jinja_module_files = [
--  "//third_party/jinja2/__init__.py",
--  "//third_party/markupsafe/__init__.py",  # jinja2 dep
- ]
- 
- idl_lexer_parser_files = get_path_info([
--                                         # PLY (Python Lex-Yacc)
--                                         "//third_party/ply/lex.py",
--                                         "//third_party/ply/yacc.py",
--
-                                          # Web IDL lexer/parser (base parser)
-                                          "//tools/idl_parser/idl_lexer.py",
-                                          "//tools/idl_parser/idl_node.py",


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-03-08 15:33 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-03-08 15:33 UTC (permalink / raw
  To: gentoo-commits

commit:     cdbb5d1deb4e11368157f09d5589d752741a8aff
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  8 13:38:13 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Mar  8 15:30:21 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdbb5d1d

www-client/chromium: dev channel bump (58.0.3029.6)

 www-client/chromium/Manifest                                |  2 +-
 ...omium-58.0.3018.3.ebuild => chromium-58.0.3029.6.ebuild} |  2 +-
 www-client/chromium/files/chromium-gn-bootstrap-r2.patch    | 13 +++++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 77a601b3d8c..ed8ad0393b9 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-56.0.2924.76.tar.xz 513487700 SHA256 cfb08e226b9c16ad887eb96d715a9cc4ab097d1a79e2e68c8749a7a4164b3c38 SHA512 ddcb2f0c76bdad3b87dc9219367764cb9adb900d7581dc5a371184ebfe2581f6ecbfc9aae02115e87291a5b90587fc145dada2b0940ae60fc19d25f5c505022d WHIRLPOOL db244681d9b1e325179328a64fb46ffb7a2492b48bafc327500ef491a676d3783cdf4ba400283c0c7a505958d376f784c35d28f4418557d6ba4cdd6bcf2cd5e9
 DIST chromium-57.0.2987.54.tar.xz 525225120 SHA256 7d9ffddf497184e209e16175f952e1ad3783b277189f34e650ee2eba20475be1 SHA512 6c4ff6f228a910fbc73d7781fcc4fddd41bd758e57030efeb3fabbe660e5f4fa33aed2a899ce8f6c345bf4417bb8f65ca95fc882cd907c31cd4cc9f5034c2c8b WHIRLPOOL 2649c3f9018e3479008f2ca6e83285b0036194c8671e2feb62a9643efec9a38803709ab09982be39ab4fea89a53b5168651dfa1083b74bc93b95a2bc49f49055
 DIST chromium-57.0.2987.74.tar.xz 525264968 SHA256 5ff17f10372f11107c6ceabcf1e1382cb8e2e9a345537d1c9d1935f1b7c27dd4 SHA512 e5ae6e65cb6dadae72ee56c16951f62482a34582d1482e47f8c211b2f95e4554d8550080c48133119506ce29b35b0b59ca2ad7c4ce96e5ad734614cba73bb8c7 WHIRLPOOL 521c11fb8d5c764abd49c832ad95bc3d04e94ff17d9ae6472949f6b136c3a2c1280edecce2e1c398970c1918da4afe28eba868bd65308dc24d44ae2502429dd4
-DIST chromium-58.0.3018.3.tar.xz 507548452 SHA256 9f8365f29b0e647a39c7749cc36184eda86e12114c8f444ccf941224294a8c7d SHA512 49ee4c89d6ae537f947ceb460b4e87c7333f7c26d306fd463da09b1ce98398aaa65e37701794cdbb3c29bbfbc0f68b93bf66492c1f86cb462e948f3d0e8d2742 WHIRLPOOL 8722948c473e23430d9ea5960ca3383e2bd1170bf9fd1f47d15062d634872c77d9f10b684c19f2d55e1312d80c291c24bfe175785f248adb8579bfcd959b1a72
 DIST chromium-58.0.3026.3.tar.xz 509622680 SHA256 ce869eaf4e706291a3e4ea732517408900c9beab5ad9ea2b6d91024d148a8039 SHA512 08b87980a8527a5a2d441cde683c9ebe71f428eda86dbc6aa13e4e1b3abd499a06c11fb5956aad32342129af7419ebac24684206c38f143a068508704a1fc22a WHIRLPOOL 0fbe865f9184a29831ea918d3233d59405c53d6cd00ab90554e95394732d466f2cb5f801301546078f9badb08baab58b85040fc731c347349c3303d8bc4e347f
+DIST chromium-58.0.3029.6.tar.xz 508956560 SHA256 b23136b976a83e0c6948bd2088be6b83969fc5cbe06f68f575012f924537c35b SHA512 496ec27500b0757dffe4aaaa3692bab1e7464ccf5f1f0f57d3e50567aa6e47734e722a94e67dbe199aea3fa718ac12d735ff02400355d2e9abeaad558b8de412 WHIRLPOOL d41087a152168dae88a6544fd4fd636e0a906f99d1378b233a8bb0aba0441a24074f75cebf95aa49da02bfe3e059f3538b97c960a2595a7d61ebe0145fc44baa

diff --git a/www-client/chromium/chromium-58.0.3018.3.ebuild b/www-client/chromium/chromium-58.0.3029.6.ebuild
similarity index 99%
rename from www-client/chromium/chromium-58.0.3018.3.ebuild
rename to www-client/chromium/chromium-58.0.3029.6.ebuild
index 144adc43bc9..aa3374cffe6 100644
--- a/www-client/chromium/chromium-58.0.3018.3.ebuild
+++ b/www-client/chromium/chromium-58.0.3029.6.ebuild
@@ -199,7 +199,7 @@ src_prepare() {
 	local PATCHES=(
 		"${FILESDIR}/${PN}-widevine-r1.patch"
 		"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
-		"${FILESDIR}/${PN}-gn-bootstrap-r1.patch"
+		"${FILESDIR}/${PN}-gn-bootstrap-r2.patch"
 	)
 
 	use system-ffmpeg && PATCHES+=( "${FILESDIR}/${PN}-system-ffmpeg-r4.patch" )

diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r2.patch b/www-client/chromium/files/chromium-gn-bootstrap-r2.patch
new file mode 100644
index 00000000000..76287e1a56e
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r2.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 38cfb117d29c3895291379f00d8dc8c8b0727474..679170e610f8292bcbeb76508fd247d322a69c79 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -385,6 +385,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/base_switches.cc',
+       'base/build_time.cc',
+       'base/callback_internal.cc',
++      'base/callback_helpers.cc',
+       'base/command_line.cc',
+       'base/debug/activity_tracker.cc',
+       'base/debug/alias.cc',


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2017-02-18 14:35 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2017-02-18 14:35 UTC (permalink / raw
  To: gentoo-commits

commit:     da391c01e789c58980d606a5111caed18b5ec7d1
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 18 10:03:10 2017 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sat Feb 18 14:35:01 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da391c01

www-client/chromium: dev channel bump (58.0.3013.3)

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-58.0.3013.3.ebuild    | 652 +++++++++++++++++++++
 .../chromium/files/chromium-gn-bootstrap-r1.patch  |  90 +++
 3 files changed, 743 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 713e317961..cfebdd1ca2 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-56.0.2924.76.tar.xz 513487700 SHA256 cfb08e226b9c16ad887eb96d715a9
 DIST chromium-57.0.2987.21.tar.xz 522738052 SHA256 632189c16d56fc23e6c3ef8174fd59ee3bae9b1c6a6740bf9a41dfb83cd39c57 SHA512 c968a7ef00e136e67f827370c7489195ec173e56cc37cba105f7558bd56ec918f5beb8f74b54f3c5224067f513e69a5c6cf497d1d5bb7f9dec1fde9fff88710b WHIRLPOOL b99b2f4d731a9c0772424ac50603905d7db76f8705533cb3fa4e13403083316020ea29b47aa8e817364cc6e4cc071768cac950b34bd29206fc6d744ec0e77337
 DIST chromium-57.0.2987.54.tar.xz 525225120 SHA256 7d9ffddf497184e209e16175f952e1ad3783b277189f34e650ee2eba20475be1 SHA512 6c4ff6f228a910fbc73d7781fcc4fddd41bd758e57030efeb3fabbe660e5f4fa33aed2a899ce8f6c345bf4417bb8f65ca95fc882cd907c31cd4cc9f5034c2c8b WHIRLPOOL 2649c3f9018e3479008f2ca6e83285b0036194c8671e2feb62a9643efec9a38803709ab09982be39ab4fea89a53b5168651dfa1083b74bc93b95a2bc49f49055
 DIST chromium-58.0.3004.3.tar.xz 505630076 SHA256 4110ce13c1655b1ff9dc67adafb8f8d1861e0df27b4e143cb80800f4967d24d9 SHA512 628c0c623be8674d32961f51b30a32cb13f06a83869a527addb1d28445e4bf92b93019be5a2179909780af80741da475f960ce62cae05fb2f7eb539f3ca28345 WHIRLPOOL a73e8878a1e8ba8a5f568f29061bf3524b800f0fdbe2e532f9299f8e3d4967576d22f0aa6dbe716914b1de8d6be7e43e79d97b85c63d5834e2d0d03ca9840909
+DIST chromium-58.0.3013.3.tar.xz 507290404 SHA256 0e67d8d0493a52a00114d22cf2c73014688a56ac5cc110573d1019e4bbc66e4f SHA512 fa4725c1ac766050df639603ab1295b4190217b97f6eb27bc4791be5cbee197022c9e128926e8a6e5565cba001e6d2f15400acb2d139689c3dd1773ab0c2def0 WHIRLPOOL 078a20d856c01cf2bd650afb6261507a8195eccb8f87663716d736af289230c98629ef5d756c25b7053f685e8afc2b21a96ccc71507ebe04ce686defaf9bc608

diff --git a/www-client/chromium/chromium-58.0.3013.3.ebuild b/www-client/chromium/chromium-58.0.3013.3.ebuild
new file mode 100644
index 0000000000..ac57b73d7e
--- /dev/null
+++ b/www-client/chromium/chromium-58.0.3013.3.ebuild
@@ -0,0 +1,652 @@
+# Copyright 1999-2017 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="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-37
+	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 5 "$(gcc-major-version)"; then
+			# bugs: #535730, #525374, #518668, #600288
+			die "At least gcc 5 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-r1.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-r1.patch b/www-client/chromium/files/chromium-gn-bootstrap-r1.patch
new file mode 100644
index 0000000000..9019650888
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-bootstrap-r1.patch
@@ -0,0 +1,90 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index c3642e8f487cab9ee9d22ef6a4e5c20871593802..12806cb3a9033b4d532f97e87061d8eecf3bd202 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -154,6 +154,13 @@ def write_buildflag_header_manually(root_gen_dir, header, flags):
+ 
+   os.remove(temp_path)
+ 
++def write_build_date_header(root_gen_dir):
++  check_call([
++       os.path.join(SRC_ROOT, 'build', 'write_build_date_header.py'),
++       os.path.join(root_gen_dir, 'base/generated_build_date.h'),
++       'default',
++  ])
++
+ def build_gn_with_ninja_manually(tempdir, options):
+   root_gen_dir = os.path.join(tempdir, 'gen')
+   mkdir_p(root_gen_dir)
+@@ -167,6 +174,8 @@ def build_gn_with_ninja_manually(tempdir, options):
+           'ENABLE_MEMORY_TASK_PROFILER': 'false'
+       })
+ 
++  write_build_date_header(root_gen_dir)
++
+   if is_mac:
+     # //base/build_time.cc needs base/generated_build_date.h,
+     # and this file is only included for Mac builds.
+@@ -374,6 +383,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/at_exit.cc',
+       'base/base_paths.cc',
+       'base/base_switches.cc',
++      'base/build_time.cc',
+       'base/callback_internal.cc',
+       'base/command_line.cc',
+       'base/debug/activity_tracker.cc',
+@@ -382,6 +392,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/debug/stack_trace.cc',
+       'base/debug/task_annotator.cc',
+       'base/environment.cc',
++      'base/feature_list.cc',
+       'base/files/file.cc',
+       'base/files/file_descriptor_watcher_posix.cc',
+       'base/files/file_enumerator.cc',
+@@ -413,6 +424,8 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/message_loop/message_pump.cc',
+       'base/message_loop/message_pump_default.cc',
+       'base/metrics/bucket_ranges.cc',
++      'base/metrics/field_trial.cc',
++      'base/metrics/field_trial_param_associator.cc',
+       'base/metrics/histogram.cc',
+       'base/metrics/histogram_base.cc',
+       'base/metrics/histogram_samples.cc',
+@@ -428,12 +441,14 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/pending_task.cc',
+       'base/pickle.cc',
+       'base/process/kill.cc',
++      'base/process/memory.cc',
+       'base/process/process_handle.cc',
+       'base/process/process_iterator.cc',
+       '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',
+       'base/sequence_checker_impl.cc',
+@@ -533,11 +548,13 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/files/memory_mapped_file_posix.cc',
+         'base/message_loop/message_pump_libevent.cc',
+         'base/posix/file_descriptor_shuffle.cc',
++        'base/posix/global_descriptors.cc',
+         'base/posix/safe_strerror.cc',
+         'base/process/kill_posix.cc',
+         'base/process/process_handle_posix.cc',
+         'base/process/process_metrics_posix.cc',
+         'base/process/process_posix.cc',
++        'base/rand_util_posix.cc',
+         'base/strings/string16.cc',
+         'base/synchronization/condition_variable_posix.cc',
+         'base/synchronization/lock_impl_posix.cc',
+@@ -589,6 +606,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/memory/shared_memory_posix.cc',
+         'base/nix/xdg_util.cc',
+         'base/process/internal_linux.cc',
++        'base/process/memory_linux.cc',
+         'base/process/process_handle_linux.cc',
+         'base/process/process_iterator_linux.cc',
+         'base/process/process_linux.cc',


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

commit:     408c8fde8025efb9ac2df6b9e8f7bf8a2facf919
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 23 21:22:22 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Dec 23 21:23:59 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=408c8fde

www-client/chromium: dev channel bump (57.0.2950.4)

Package-Manager: Portage-2.3.3_p9, Repoman-2.3.1_p2

 www-client/chromium/Manifest                    |   1 +
 www-client/chromium/chromium-57.0.2950.4.ebuild | 632 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r11.patch |  50 ++
 3 files changed, 683 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a04d090..c53cfa8 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-55.0.2883.75.tar.xz 511256096 SHA256 5bcf7180935bebc7648f7e2577f61
 DIST chromium-56.0.2924.18.tar.xz 513374276 SHA256 c68089d563348f41f40a606f583489853994adcd6b3329f24a10bf7a3ff292bc SHA512 fac070b0874f334cd874cea4b631f6701766c1bc30b5455daee9284f233fde1ed4f17f0666dc30c7dd6b4116a740a4e146dfdb15708a335a7701dc453c1df392 WHIRLPOOL a707a503daef0b43431ad11944597daabace44f3237ce22342b5f4b2d80c1a0724cbdf8e2fcbef3d7f2d111c4f4130189a423c2764071a7d4cba039225d8f712
 DIST chromium-56.0.2924.21.tar.xz 513324284 SHA256 08330d147a9340c593ac0255adac30e189e1e9ed99c43d148891058365b4182a SHA512 acfc81177e5fdacc954cdc94b705079b8fdf19a7d90573b38b9a297eeb2d169325f460ce1ec14ea52cfa57782f818d733ece62c8ff313610730881efeba5afb7 WHIRLPOOL cc2ed9362aa5f88d05e884e46897b919020044d7556c5c4217ddd527cf198d84c87d9d48281aa4d4dae94dc06490657fdcf2d9c5653f9eea3a33767e5383eac6
 DIST chromium-57.0.2946.0.tar.xz 521168352 SHA256 4dc48ad4cd580ab25af4b73d8dff2e9dc1c628f76e4a7c02eb9566829e6289b5 SHA512 846cbba0b7185f9ed766f36922e146bb152173c4d647e87b267074c518974201e158e5dc14c9651ac50189e6fc91653fff08e37bad76c6185cd9c1bd622d2fdc WHIRLPOOL 48ec2028454cf762adfb1d2f44d183772d6267897f3140fbff971c96b5db3dd3722b889d57c28524b335b8e02bae22e7d4d8f945f3cd48caa37c6f0af5b1be5c
+DIST chromium-57.0.2950.4.tar.xz 521653320 SHA256 41a56ce7a89bfa0ee47039d18be1889781b78dfde88ad93ef19cabde20c5d8b6 SHA512 333848375a8fbeee0bb9249a1f978caea9800f40a84c149a20263a668a3921eb74ced2d2563bc67ba902838e8865a3b552f9c03e88ff2ce87e6d88807d3fcbaf WHIRLPOOL b9b9e06f766315d17c7414813312fd54fd223a4ab5a0d0ba21604a4e808cb5ad8d63d445fdf879d0f7ab82ebaa83fda0bf6f46433ed5055b999d09ae287d9044

diff --git a/www-client/chromium/chromium-57.0.2950.4.ebuild b/www-client/chromium/chromium-57.0.2950.4.ebuild
new file mode 100644
index 00000000..6d58d5c
--- /dev/null
+++ b/www-client/chromium/chromium-57.0.2950.4.ebuild
@@ -0,0 +1,632 @@
+# 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"
+
+# Bundled:
+#	dev-libs/icu:=
+#	dev-libs/libxml2:=[icu]
+#	dev-libs/libxslt:=
+#	>=media-libs/harfbuzz-1.3.1:=[icu(+)]
+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/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-3:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	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-37
+	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
+	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/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}-gn-r11.patch"
+)
+
+pre_build_checks() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		if tc-is-gcc && ! version_is_at_least 5 "$(gcc-major-version)"; then
+			# bugs: #535730, #525374, #518668
+			die "At least gcc 5 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"
+	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
+
+	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
+
+		# M57 bundled
+		third_party/harfbuzz-ng
+		third_party/icu
+		third_party/libxslt
+		third_party/libxml
+	)
+	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
+
+	# 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
+	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" )
+	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
+
+	# 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).
+	if use gnome; then
+		insinto /usr/share/gnome-control-center/default-apps
+		newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+	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-r11.patch b/www-client/chromium/files/chromium-gn-r11.patch
new file mode 100644
index 00000000..af1216e
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r11.patch
@@ -0,0 +1,50 @@
+From 615f852746f6a8c1331eec32e8352d7cfcd63f76 Mon Sep 17 00:00:00 2001
+From: saiarcot895 <saiarcot895@gmail.com>
+Date: Mon, 19 Dec 2016 10:35:14 -0800
+Subject: [PATCH] Fix GN bootstrap.
+
+Update list of required files and compile flags.
+
+BUG=None
+
+Review-Url: https://codereview.chromium.org/2588003002
+Cr-Commit-Position: refs/heads/master@{#439509}
+---
+ tools/gn/bootstrap/bootstrap.py | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index bfdf0fc1ce64..c3642e8f487c 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -162,7 +162,10 @@ def build_gn_with_ninja_manually(tempdir, options):
+       {'USE_EXPERIMENTAL_ALLOCATOR_SHIM': 'true' if is_linux else 'false'})
+ 
+   write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
+-      {'ENABLE_PROFILING': 'false'})
++      {
++          'ENABLE_PROFILING': 'false',
++          'ENABLE_MEMORY_TASK_PROFILER': 'false'
++      })
+ 
+   if is_mac:
+     # //base/build_time.cc needs base/generated_build_date.h,
+@@ -402,6 +405,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/memory/ref_counted.cc',
+       'base/memory/ref_counted_memory.cc',
+       'base/memory/singleton.cc',
++      'base/memory/shared_memory_helper.cc',
+       'base/memory/weak_ptr.cc',
+       'base/message_loop/incoming_task_queue.cc',
+       'base/message_loop/message_loop.cc',
+@@ -456,6 +460,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/task_scheduler/scheduler_worker_pool_impl.cc',
+       'base/task_scheduler/scheduler_worker_pool_params.cc',
+       'base/task_scheduler/scheduler_worker_stack.cc',
++      'base/task_scheduler/scoped_set_task_priority_for_current_thread.cc',
+       'base/task_scheduler/sequence.cc',
+       'base/task_scheduler/sequence_sort_key.cc',
+       'base/task_scheduler/task.cc',
+-- 
+2.11.0
+


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

commit:     bcb01f3eafc09da83bbfd557b434349ab2e9cc9e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 11 17:52:31 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Dec 11 18:01:23 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bcb01f3e

www-client/chromium: dev channel bump (57.0.2946.0)

Package-Manager: portage-2.3.2_p13

 www-client/chromium/Manifest                    |   1 +
 www-client/chromium/chromium-57.0.2946.0.ebuild | 638 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r10.patch |  22 +
 3 files changed, 661 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4fcaa84..a04d090 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-55.0.2883.75.tar.xz 511256096 SHA256 5bcf7180935bebc7648f7e2577f612da681f7846127f79dac22630ded9984e55 SHA512 9830b02e05ebaf120b02b11114c67196ba5c7f2d5aa917b9e5f8516b1f0cce1abd8e752c379e8ac1f16c7b7e451341486d9356d47a1b77b72ab5117390ce16b9 WHIRLPOOL ab752b9e9a6c7a536424ac1384d9f0ad0f23dd40bbf6784e4185554602628e8e1f45acbb264fff33f7f00c8ee14f293bfaf23259d2db4f785c9c9c49e72b28eb
 DIST chromium-56.0.2924.18.tar.xz 513374276 SHA256 c68089d563348f41f40a606f583489853994adcd6b3329f24a10bf7a3ff292bc SHA512 fac070b0874f334cd874cea4b631f6701766c1bc30b5455daee9284f233fde1ed4f17f0666dc30c7dd6b4116a740a4e146dfdb15708a335a7701dc453c1df392 WHIRLPOOL a707a503daef0b43431ad11944597daabace44f3237ce22342b5f4b2d80c1a0724cbdf8e2fcbef3d7f2d111c4f4130189a423c2764071a7d4cba039225d8f712
 DIST chromium-56.0.2924.21.tar.xz 513324284 SHA256 08330d147a9340c593ac0255adac30e189e1e9ed99c43d148891058365b4182a SHA512 acfc81177e5fdacc954cdc94b705079b8fdf19a7d90573b38b9a297eeb2d169325f460ce1ec14ea52cfa57782f818d733ece62c8ff313610730881efeba5afb7 WHIRLPOOL cc2ed9362aa5f88d05e884e46897b919020044d7556c5c4217ddd527cf198d84c87d9d48281aa4d4dae94dc06490657fdcf2d9c5653f9eea3a33767e5383eac6
+DIST chromium-57.0.2946.0.tar.xz 521168352 SHA256 4dc48ad4cd580ab25af4b73d8dff2e9dc1c628f76e4a7c02eb9566829e6289b5 SHA512 846cbba0b7185f9ed766f36922e146bb152173c4d647e87b267074c518974201e158e5dc14c9651ac50189e6fc91653fff08e37bad76c6185cd9c1bd622d2fdc WHIRLPOOL 48ec2028454cf762adfb1d2f44d183772d6267897f3140fbff971c96b5db3dd3722b889d57c28524b335b8e02bae22e7d4d8f945f3cd48caa37c6f0af5b1be5c

diff --git a/www-client/chromium/chromium-57.0.2946.0.ebuild b/www-client/chromium/chromium-57.0.2946.0.ebuild
new file mode 100644
index 00000000..0e4ecb8
--- /dev/null
+++ b/www-client/chromium/chromium-57.0.2946.0.ebuild
@@ -0,0 +1,638 @@
+# 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"
+
+# Bundled:
+#	dev-libs/icu:=
+#	dev-libs/libxml2:=[icu]
+#	dev-libs/libxslt:=
+#	>=media-libs/harfbuzz-1.3.1:=[icu(+)]
+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/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-3:= )
+	sys-apps/dbus:=
+	sys-apps/pciutils:=
+	>=sys-libs/libcap-2.22:=
+	virtual/udev
+	x11-libs/cairo:=
+	x11-libs/gdk-pixbuf:=
+	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-37
+	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
+	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/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}-gn-r10.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
+
+		# M57 bundled
+		third_party/harfbuzz-ng
+		third_party/icu
+		third_party/libxslt
+		third_party/libxml
+	)
+	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
+
+	# 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${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
+
+	# Needed by bundled icu
+	doins out/Release/icudtl.dat
+
+	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-r10.patch b/www-client/chromium/files/chromium-gn-r10.patch
new file mode 100644
index 00000000..bf3e2b1
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r10.patch
@@ -0,0 +1,22 @@
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -162,7 +162,7 @@ def build_gn_with_ninja_manually(tempdir, options):
+       {'USE_EXPERIMENTAL_ALLOCATOR_SHIM': 'true' if is_linux else 'false'})
+ 
+   write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
+-      {'ENABLE_PROFILING': 'false'})
++      {'ENABLE_PROFILING': 'false', 'ENABLE_MEMORY_TASK_PROFILER': 'false'})
+ 
+   if is_mac:
+     # //base/build_time.cc needs base/generated_build_date.h,
+@@ -456,6 +456,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/task_scheduler/scheduler_worker_pool_impl.cc',
+       'base/task_scheduler/scheduler_worker_pool_params.cc',
+       'base/task_scheduler/scheduler_worker_stack.cc',
++      'base/task_scheduler/scoped_set_task_priority_for_current_thread.cc',
+       'base/task_scheduler/sequence.cc',
+       'base/task_scheduler/sequence_sort_key.cc',
+       'base/task_scheduler/task.cc',
+-- 
+2.11.0
+


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

commit:     c72212ddb52e6125bf1ab29fb3571dbe888cef9c
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Nov  8 05:46:11 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Nov  8 05:47:23 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c72212dd

www-client/chromium: beta channel bump (55.0.2883.35)

Also fix build failure with ICU 58.

Bug: https://bugs.gentoo.org/599158
Package-Manager: portage-2.3.2_p5

 www-client/chromium/Manifest                       |   2 +-
 ...2883.21.ebuild => chromium-55.0.2883.35.ebuild} |   1 +
 www-client/chromium/chromium-56.0.2897.0.ebuild    |   1 +
 www-client/chromium/files/chromium-icu-58.patch    | 136 +++++++++++++++++++++
 4 files changed, 139 insertions(+), 1 deletion(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c0848e1..9f5704e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,4 +1,4 @@
 DIST chromium-54.0.2840.59.tar.xz 479763932 SHA256 df89c284b0109566acc6a5a1a84d94a5ab0509cc3a86a31299a50328991edcde SHA512 f0b615a2e7dd667c8959f8ce501035a69e7ce852f04ae3023677d933025a56cbc7e1c5f4e85f6e790236ac61cfbd5df7290ed5da74292ee40ebbd89e75fb159f WHIRLPOOL a719ddf51cce89bb445bed1cfa694bf5c49a67455b1ed495363920303ba4337ae81d660c7fa613653f84e1cefb934d54640ea6727b95e0ab4451517d3db83299
-DIST chromium-55.0.2883.21.tar.xz 510946676 SHA256 32edbf5b425ed866128204465be13d65cb18edb3b5f5e21e68fb528498b7b2ad SHA512 e2d852e8bbadd3060367397844972b38f55913e676dfa7fd80e256e7e4edc05e16670c9645b2e250ef4be3507b9e146d8f373932bd6e62e991be079e4f7fdf67 WHIRLPOOL 98b307b83c196e111598875b7716065cc9c27c3e1b612bf6c3f7e49c7a44a9caab650b72d7c2bf9bd8bcf961666ae49b42979a9cf8ec151f6d3345303d8d190b
 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

diff --git a/www-client/chromium/chromium-55.0.2883.21.ebuild b/www-client/chromium/chromium-55.0.2883.35.ebuild
similarity index 99%
rename from www-client/chromium/chromium-55.0.2883.21.ebuild
rename to www-client/chromium/chromium-55.0.2883.35.ebuild
index b925178..2673812 100644
--- a/www-client/chromium/chromium-55.0.2883.21.ebuild
+++ b/www-client/chromium/chromium-55.0.2883.35.ebuild
@@ -167,6 +167,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-54-ffmpeg2compat.patch"
 	"${FILESDIR}/${PN}-gn-bootstrap-ld.patch"
+	"${FILESDIR}/${PN}-icu-58.patch"
 )
 
 pkg_pretend() {

diff --git a/www-client/chromium/chromium-56.0.2897.0.ebuild b/www-client/chromium/chromium-56.0.2897.0.ebuild
index 9548dbb..b55b907 100644
--- a/www-client/chromium/chromium-56.0.2897.0.ebuild
+++ b/www-client/chromium/chromium-56.0.2897.0.ebuild
@@ -163,6 +163,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-widevine-r1.patch"
 	"${FILESDIR}/${PN}-54-ffmpeg2compat.patch"
 	"${FILESDIR}/${PN}-gn-r8.patch"
+	"${FILESDIR}/${PN}-icu-58.patch"
 )
 
 pkg_pretend() {

diff --git a/www-client/chromium/files/chromium-icu-58.patch b/www-client/chromium/files/chromium-icu-58.patch
new file mode 100644
index 00000000..2718f1f
--- /dev/null
+++ b/www-client/chromium/files/chromium-icu-58.patch
@@ -0,0 +1,136 @@
+From 424584b4984bde7c831f42e9fb47f1ad583a1c46 Mon Sep 17 00:00:00 2001
+From: jshin <jshin@chromium.org>
+Date: Fri, 21 Oct 2016 01:15:50 -0700
+Subject: [PATCH] Update aspirational_scripts per Unicode 9
+
+This is a preparation to update ICU to 58.1.
+Without this change, ICU update CL cannot be tested on
+trybots because a compile will fail due to '#error' checking
+if ICU version is less than 58.
+
+BUG=637001
+TEST=None
+TBR=pkasting@chromium.org
+
+Review-Url: https://chromiumcodereview.appspot.com/2436113003
+Cr-Commit-Position: refs/heads/master@{#426749}
+---
+ components/url_formatter/url_formatter.cc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
+index 4455db3..2b82c0c 100644
+--- a/components/url_formatter/url_formatter.cc
++++ b/components/url_formatter/url_formatter.cc
+@@ -428,9 +428,9 @@ void IDNSpoofChecker::SetAllowedUnicodeSet(UErrorCode* status) {
+   // section at
+   // http://www.unicode.org/Public/security/latest/xidmodifications.txt) are
+   // are added to the allowed set. The list has to be updated when a new
+-  // version of Unicode is released. The current version is 8.0.0 and ICU 58
+-  // will have Unicode 9.0 data.
+-#if U_ICU_VERSION_MAJOR_NUM < 58
++  // version of Unicode is released. The current version is 9.0.0 and ICU 60
++  // will have Unicode 10.0 data.
++#if U_ICU_VERSION_MAJOR_NUM < 60
+   const icu::UnicodeSet aspirational_scripts(
+       icu::UnicodeString(
+           // Unified Canadian Syllabics
+@@ -444,13 +444,13 @@ void IDNSpoofChecker::SetAllowedUnicodeSet(UErrorCode* status) {
+           // Yi
+           "\\uA000-\\uA48C"
+           // Miao
+-          "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7F"
++          "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7E"
+           "\\U00016F8F-\\U00016F9F]",
+           -1, US_INV),
+       *status);
+   allowed_set.addAll(aspirational_scripts);
+ #else
+-#error "Update aspirational_scripts per Unicode 9.0"
++#error "Update aspirational_scripts per Unicode 10.0"
+ #endif
+ 
+   // U+0338 is included in the recommended set, while U+05F4 and U+2027 are in
+-- 
+2.10.2
+
+From e60b571faa3f14dd9119a6792dccf12f8bf80192 Mon Sep 17 00:00:00 2001
+From: jshin <jshin@chromium.org>
+Date: Fri, 21 Oct 2016 12:20:05 -0700
+Subject: [PATCH] Prepare to upgrade ICU to 58 part 2
+
+U_LB_COUNT is assumed to be 40 in Blink line breaking code, but it's
+43 in ICU 58/Unicode 9.
+
+Three new classes (Emoji Base, Emoji Modifier, and ZWJ) should behave
+identically whether or not 'word-break: break-all' is in effect.
+
+BUG=637001
+TEST=TextBreakIterator.cpp is compiled without an error with ICU 58.
+R=kojii@chromium.org
+CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
+
+Review-Url: https://chromiumcodereview.appspot.com/2440923002
+Cr-Commit-Position: refs/heads/master@{#426860}
+---
+ .../WebKit/Source/platform/text/TextBreakIterator.cpp    | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp b/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
+index 568dc0a..36121eb 100644
+--- a/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
++++ b/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
+@@ -28,6 +28,9 @@
+ #include "wtf/StdLibExtras.h"
+ #include "wtf/text/CharacterNames.h"
+ 
++#include <unicode/uchar.h>
++#include <unicode/uvernum.h>
++
+ namespace blink {
+ 
+ unsigned numGraphemeClusters(const String& string) {
+@@ -129,6 +132,11 @@ static const unsigned char asciiLineBreakTable[][(asciiLineBreakTableLastChar -
+ };
+ // clang-format on
+ 
++#if U_ICU_VERSION_MAJOR_NUM >= 58
++#define BA_LB_COUNT (U_LB_COUNT - 3)
++#else
++#define BA_LB_COUNT U_LB_COUNT
++#endif
+ // Line breaking table for CSS word-break: break-all. This table differs from
+ // asciiLineBreakTable in:
+ // - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking
+@@ -136,7 +144,7 @@ static const unsigned char asciiLineBreakTable[][(asciiLineBreakTableLastChar -
+ // - 1 indicates additional break opportunities. 0 indicates to fallback to
+ //   normal line break, not "prohibit break."
+ // clang-format off
+-static const unsigned char breakAllLineBreakClassTable[][U_LB_COUNT / 8 + 1] = {
++static const unsigned char breakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = {
+     // XX AI AL B2 BA BB BK CB    CL CM CR EX GL HY ID IN    IS LF NS NU OP PO PR QU    SA SG SP SY ZW NL WJ H2    H3 JL JT JV CP CJ HL RI
+     { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX
+     { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI
+@@ -190,7 +198,7 @@ static_assert(WTF_ARRAY_LENGTH(asciiLineBreakTable) ==
+                   asciiLineBreakTableLastChar - asciiLineBreakTableFirstChar +
+                       1,
+               "asciiLineBreakTable should be consistent");
+-static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == U_LB_COUNT,
++static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == BA_LB_COUNT,
+               "breakAllLineBreakClassTable should be consistent");
+ 
+ static inline bool shouldBreakAfter(UChar lastCh, UChar ch, UChar nextCh) {
+@@ -226,8 +234,8 @@ static inline ULineBreak lineBreakPropertyValue(UChar lastCh, UChar ch) {
+ 
+ static inline bool shouldBreakAfterBreakAll(ULineBreak lastLineBreak,
+                                             ULineBreak lineBreak) {
+-  if (lineBreak >= 0 && lineBreak < U_LB_COUNT && lastLineBreak >= 0 &&
+-      lastLineBreak < U_LB_COUNT) {
++  if (lineBreak >= 0 && lineBreak < BA_LB_COUNT && lastLineBreak >= 0 &&
++      lastLineBreak < BA_LB_COUNT) {
+     const unsigned char* tableRow = breakAllLineBreakClassTable[lastLineBreak];
+     return tableRow[lineBreak / 8] & (1 << (lineBreak % 8));
+   }
+-- 
+2.10.2
+


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

commit:     301dfd5283c73d93dc207d81335d104efd455bf1
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 24 17:16:23 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Oct 24 17:16:43 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=301dfd52

www-client/chromium: dev channel bump (56.0.2897.0)

Removes all gyp support.

Package-Manager: portage-2.3.2

 www-client/chromium/Manifest                    |   1 +
 www-client/chromium/chromium-56.0.2897.0.ebuild | 621 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r8.patch  |  24 +
 3 files changed, 646 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 60fcebe..6d12b97 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,4 @@
 DIST chromium-54.0.2840.59.tar.xz 479763932 SHA256 df89c284b0109566acc6a5a1a84d94a5ab0509cc3a86a31299a50328991edcde SHA512 f0b615a2e7dd667c8959f8ce501035a69e7ce852f04ae3023677d933025a56cbc7e1c5f4e85f6e790236ac61cfbd5df7290ed5da74292ee40ebbd89e75fb159f WHIRLPOOL a719ddf51cce89bb445bed1cfa694bf5c49a67455b1ed495363920303ba4337ae81d660c7fa613653f84e1cefb934d54640ea6727b95e0ab4451517d3db83299
 DIST chromium-55.0.2873.0.tar.xz 505121804 SHA256 7f0a502e18951215693567ab668c2a0b4031bd8a1b3d10f8c9d1711079f56c1a SHA512 352349314b6f7565dbef9425152efee1546c116346b6ec2094b9c7ccf30d7caa2b2b2a4b8aa97deb66e25e692741bd63675d3c1f95ee99e1e7345406509c0ad3 WHIRLPOOL de4c5f31ecbe072c5cf5718a889f383ec49d5100fb4dfbeda456e78c6665d80e3f85044efc6d56c6d575579992d90bfddbe23c16530b1cf5c570c5ce2cd3d0ac
 DIST chromium-55.0.2883.21.tar.xz 510946676 SHA256 32edbf5b425ed866128204465be13d65cb18edb3b5f5e21e68fb528498b7b2ad SHA512 e2d852e8bbadd3060367397844972b38f55913e676dfa7fd80e256e7e4edc05e16670c9645b2e250ef4be3507b9e146d8f373932bd6e62e991be079e4f7fdf67 WHIRLPOOL 98b307b83c196e111598875b7716065cc9c27c3e1b612bf6c3f7e49c7a44a9caab650b72d7c2bf9bd8bcf961666ae49b42979a9cf8ec151f6d3345303d8d190b
+DIST chromium-56.0.2897.0.tar.xz 512048692 SHA256 a91e43b3747d22192b4712bb59db64cc90d3dbb75716fe1d3ca5dd9c16f9f40b SHA512 101b803ded07767c92e938a7b31444ca984208ea28a6005ebd9895f1255cd98ffa999ba9b0ce2ab159a7708a739b62a4ebbdcd3d4bac22ccb345433c0abad9e7 WHIRLPOOL 0fd43cb2a8ef5604c22971f24f1aed9cfa61f0e562f2fb15b2a42e8d03fefda3b14f728bb7eda27d8f44f5595f58f0739091a80067cfe652ad13d4fdf8bde63c

diff --git a/www-client/chromium/chromium-56.0.2897.0.ebuild b/www-client/chromium/chromium-56.0.2897.0.ebuild
new file mode 100644
index 00000000..9548dbb
--- /dev/null
+++ b/www-client/chromium/chromium-56.0.2897.0.ebuild
@@ -0,0 +1,621 @@
+# 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-r8.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/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
+
+		# 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-r8.patch b/www-client/chromium/files/chromium-gn-r8.patch
new file mode 100644
index 00000000..acbe500
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r8.patch
@@ -0,0 +1,24 @@
+From 034d808c4d4042cf9944450bc45efc23aa868fdd Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppymaster@gmail.com>
+Date: Mon, 24 Oct 2016 10:43:11 -0400
+Subject: [PATCH] gn: fix bootstrap script
+
+---
+ 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 d66da12..6059741 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -450,7 +450,6 @@ 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_service_thread.cc',
+       'base/task_scheduler/scheduler_worker.cc',
+       'base/task_scheduler/scheduler_worker_pool_impl.cc',
+       'base/task_scheduler/scheduler_worker_stack.cc',
+-- 
+2.10.1
+


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

commit:     45e379c06c77991961b561e5506f2295e796dbb4
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 29 01:48:51 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Sep 29 01:50:03 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45e379c0

www-client/chromium: dev channel bump (55.0.2873.0)

Package-Manager: portage-2.3.1_p4_p413991

 www-client/chromium/Manifest                       |  2 +-
 ...0.2859.0.ebuild => chromium-55.0.2873.0.ebuild} | 14 ++++-------
 www-client/chromium/files/chromium-gn-r7.patch     | 29 ++++++++++++++++++++++
 3 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 00f8bc3..295f59c 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-53.0.2785.116.tar.xz 460903264 SHA256 7a87629504346f64122ca7754574d187a4c1bf5736dea672ff3e247a0af16062 SHA512 3a88b5b61642c4b947ae9cd9faa6d9d75fecfd6058982e705d36f1da2e94b902fb6d0af5289e00bbd0e5e7d096d5f5a788132c6e4374978620d6f7a1e2fb00da WHIRLPOOL fa067c68b217d494e16dfc78d63482a31006234ebae1c686426f011afde41a58d6939e3c5ee3a340ee099d5d88016f425b97e9f68957bb60d9b846d471702ac3
 DIST chromium-54.0.2840.27.tar.xz 479647448 SHA256 75e195afbb9f0c3e69b637ef4fa34ba7e5b3e62e871ba1b60638d9e9c5eee088 SHA512 3ba86ec5418aa0d338e8cfd935e8e6664679721ee208dd560d00ff011610094bed03ed0d76e1bc478d6bb92db5074e71f3e4bbeb1a41bb0ae21927b4dd74865c WHIRLPOOL 383de90421b1d23eee7bc7030e9e9bfeeeccf2639681b5219a3b3d865ef1568a65d8fae41a0864ddbe7c7980cd90df11a5d2bb8e93f705f906ec8a742b158fa6
 DIST chromium-54.0.2840.34.tar.xz 479636320 SHA256 b46c26a9e773b2c620acd2f96d69408f14a279aefaedfefed002ecf898a1ecf2 SHA512 23732e02ed30eaf36a4a4ee7bbb1af72c4202e061444004b515f0c49a578907719de3588f6d1e8dbb756cffa0220b677c920dc2f5ad6e8ec70a82168c094c99d WHIRLPOOL 822b41231a41aaeb8fc45ddc927c731535640a844ad25256a3f3daa86916c7cd9a5b79b30324c22efff03ef16a033b77d93df24f1ebf64df9373f77a8669fb41
-DIST chromium-55.0.2859.0.tar.xz 501623820 SHA256 43c343096377195500b31ff97979883a2e6d34e30f3f76e7d6af45679696aa38 SHA512 11bee1761c4e27576ada7e6aae65a021001f1873091acc4f8f8c38e97fbd2fc303ce37788a166736008dba761c7dcbd105f0be9df1b0513dc5ff67af24a8188f WHIRLPOOL efcb483c81175a942cfcc5edcbcf335b63e06de233ad731d60a85201b76123d23ab23930a926a4929958ef02ae935a9bd0ef625fce665831acc98047724e9488
 DIST chromium-55.0.2868.3.tar.xz 505338268 SHA256 bec801332cdfb784d06a08da3936f5b9719e5b6a3bbaee88c3829651799077d1 SHA512 918c53f7380f889450b0e97e085f8d28af0ef4c25a5dd7b1ae0b2467ccc564747915c64d3bc6f64d31798ea4ef76f7a5cd7f64c06830ed9775756a495d9bb319 WHIRLPOOL df1fc03ebbc0ce4697e5aae6199c970d55b3cfdf78a00e18e47206dfc4f1995b3bae34216ea1d1023f7619febc87e9bfe738d015cee24123be386d6d41bec572
+DIST chromium-55.0.2873.0.tar.xz 505121804 SHA256 7f0a502e18951215693567ab668c2a0b4031bd8a1b3d10f8c9d1711079f56c1a SHA512 352349314b6f7565dbef9425152efee1546c116346b6ec2094b9c7ccf30d7caa2b2b2a4b8aa97deb66e25e692741bd63675d3c1f95ee99e1e7345406509c0ad3 WHIRLPOOL de4c5f31ecbe072c5cf5718a889f383ec49d5100fb4dfbeda456e78c6665d80e3f85044efc6d56c6d575579992d90bfddbe23c16530b1cf5c570c5ce2cd3d0ac

diff --git a/www-client/chromium/chromium-55.0.2859.0.ebuild b/www-client/chromium/chromium-55.0.2873.0.ebuild
similarity index 98%
rename from www-client/chromium/chromium-55.0.2859.0.ebuild
rename to www-client/chromium/chromium-55.0.2873.0.ebuild
index 8997a37..53bd939 100644
--- a/www-client/chromium/chromium-55.0.2859.0.ebuild
+++ b/www-client/chromium/chromium-55.0.2873.0.ebuild
@@ -34,6 +34,7 @@ COMMON_DEPEND="
 	>=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:=
@@ -164,8 +165,9 @@ PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r4.patch"
 	"${FILESDIR}/${PN}-system-jinja-r14.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
-	"${FILESDIR}/chromium-54-ffmpeg2compat.patch"
-	"${FILESDIR}/chromium-ffmpeg-generate_gn.patch"
+	"${FILESDIR}/${PN}-54-ffmpeg2compat.patch"
+	"${FILESDIR}/${PN}-gn-r7.patch"
+	"${FILESDIR}/${PN}-system-zlib-r1.patch"
 )
 
 pkg_pretend() {
@@ -245,7 +247,6 @@ src_prepare() {
 		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
@@ -339,7 +340,6 @@ src_configure() {
 
 	# Use system-provided libraries.
 	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_icu (bug #576370).
 	# 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).
@@ -369,6 +369,7 @@ src_configure() {
 	local gn_system_libraries="
 		flac
 		harfbuzz-ng
+		icu
 		libjpeg
 		libpng
 		libvpx
@@ -384,9 +385,6 @@ src_configure() {
 	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+="
@@ -670,8 +668,6 @@ src_install() {
 	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
 

diff --git a/www-client/chromium/files/chromium-gn-r7.patch b/www-client/chromium/files/chromium-gn-r7.patch
new file mode 100644
index 00000000..dc57ccc
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r7.patch
@@ -0,0 +1,29 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index e8304549335350915380731713643cd57ec70407..b6a113d390d61db32736333c312f90124a44086c 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -379,6 +379,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/debug/task_annotator.cc',
+       'base/environment.cc',
+       'base/files/file.cc',
++      'base/files/file_descriptor_watcher_posix.cc',
+       'base/files/file_enumerator.cc',
+       'base/files/file_path.cc',
+       'base/files/file_path_constants.cc',
+@@ -397,6 +398,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/location.cc',
+       'base/logging.cc',
+       'base/md5.cc',
++      'base/memory/ref_counted.cc',
+       'base/memory/ref_counted_memory.cc',
+       'base/memory/singleton.cc',
+       'base/memory/weak_ptr.cc',
+@@ -685,7 +687,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+         'base/timer/hi_res_timer_manager_win.cc',
+         'base/trace_event/heap_profiler_allocation_register_win.cc',
+         'base/trace_event/trace_event_etw_export_win.cc',
+-        'base/trace_event/winheap_dump_provider_win.cc',
+         'base/win/enum_variant.cc',
+         'base/win/event_trace_controller.cc',
+         'base/win/event_trace_provider.cc',


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

commit:     866c9234b87d1cf0e5e8794fa3aa9fc31d332711
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 26 01:10:43 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Sep 26 01:10:43 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=866c9234

www-client/chromium: dev channel bump (55.0.2868.3)

Package-Manager: portage-2.3.1_p4_p152503

 www-client/chromium/Manifest                       |  2 +-
 ...0.2853.0.ebuild => chromium-55.0.2868.3.ebuild} | 26 +++++++++++-----------
 www-client/chromium/files/chromium-gn-r6.patch     | 13 +++++++++++
 .../chromium/files/chromium-system-zlib-r1.patch   |  9 ++++++++
 4 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 6638750..00f8bc3 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-53.0.2785.116.tar.xz 460903264 SHA256 7a87629504346f64122ca7754574d187a4c1bf5736dea672ff3e247a0af16062 SHA512 3a88b5b61642c4b947ae9cd9faa6d9d75fecfd6058982e705d36f1da2e94b902fb6d0af5289e00bbd0e5e7d096d5f5a788132c6e4374978620d6f7a1e2fb00da WHIRLPOOL fa067c68b217d494e16dfc78d63482a31006234ebae1c686426f011afde41a58d6939e3c5ee3a340ee099d5d88016f425b97e9f68957bb60d9b846d471702ac3
 DIST chromium-54.0.2840.27.tar.xz 479647448 SHA256 75e195afbb9f0c3e69b637ef4fa34ba7e5b3e62e871ba1b60638d9e9c5eee088 SHA512 3ba86ec5418aa0d338e8cfd935e8e6664679721ee208dd560d00ff011610094bed03ed0d76e1bc478d6bb92db5074e71f3e4bbeb1a41bb0ae21927b4dd74865c WHIRLPOOL 383de90421b1d23eee7bc7030e9e9bfeeeccf2639681b5219a3b3d865ef1568a65d8fae41a0864ddbe7c7980cd90df11a5d2bb8e93f705f906ec8a742b158fa6
 DIST chromium-54.0.2840.34.tar.xz 479636320 SHA256 b46c26a9e773b2c620acd2f96d69408f14a279aefaedfefed002ecf898a1ecf2 SHA512 23732e02ed30eaf36a4a4ee7bbb1af72c4202e061444004b515f0c49a578907719de3588f6d1e8dbb756cffa0220b677c920dc2f5ad6e8ec70a82168c094c99d WHIRLPOOL 822b41231a41aaeb8fc45ddc927c731535640a844ad25256a3f3daa86916c7cd9a5b79b30324c22efff03ef16a033b77d93df24f1ebf64df9373f77a8669fb41
-DIST chromium-55.0.2853.0.tar.xz 501960780 SHA256 f6cff02888c5a781f29ece91df38c874a2245f3e12495cbdb49c141db211835a SHA512 4963f9aa3b965845c518b6565f8b1494ef59ec090c3d9b559cb01ddbb883dbc421d72dac6f6a652fea484821096a0ce2ccc4370818a74803d29aebdfbf956efd WHIRLPOOL 0b8469540a0a952483629ee87f90368d4597fbb82ba532edc1b6d7f5670e3155bb822b5f30a1764d9c547ac71260ee0cb44328c9d6320b2ab331f1661dd948c6
 DIST chromium-55.0.2859.0.tar.xz 501623820 SHA256 43c343096377195500b31ff97979883a2e6d34e30f3f76e7d6af45679696aa38 SHA512 11bee1761c4e27576ada7e6aae65a021001f1873091acc4f8f8c38e97fbd2fc303ce37788a166736008dba761c7dcbd105f0be9df1b0513dc5ff67af24a8188f WHIRLPOOL efcb483c81175a942cfcc5edcbcf335b63e06de233ad731d60a85201b76123d23ab23930a926a4929958ef02ae935a9bd0ef625fce665831acc98047724e9488
+DIST chromium-55.0.2868.3.tar.xz 505338268 SHA256 bec801332cdfb784d06a08da3936f5b9719e5b6a3bbaee88c3829651799077d1 SHA512 918c53f7380f889450b0e97e085f8d28af0ef4c25a5dd7b1ae0b2467ccc564747915c64d3bc6f64d31798ea4ef76f7a5cd7f64c06830ed9775756a495d9bb319 WHIRLPOOL df1fc03ebbc0ce4697e5aae6199c970d55b3cfdf78a00e18e47206dfc4f1995b3bae34216ea1d1023f7619febc87e9bfe738d015cee24123be386d6d41bec572

diff --git a/www-client/chromium/chromium-55.0.2853.0.ebuild b/www-client/chromium/chromium-55.0.2868.3.ebuild
similarity index 97%
rename from www-client/chromium/chromium-55.0.2853.0.ebuild
rename to www-client/chromium/chromium-55.0.2868.3.ebuild
index e025a39..d8eaa0b 100644
--- a/www-client/chromium/chromium-55.0.2853.0.ebuild
+++ b/www-client/chromium/chromium-55.0.2868.3.ebuild
@@ -34,6 +34,7 @@ COMMON_DEPEND="
 	>=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:=
@@ -73,7 +74,6 @@ COMMON_DEPEND="
 	x11-libs/libXtst:=
 	x11-libs/pango:=
 	app-arch/snappy:=
-	>=dev-libs/libevent-1.4.13:=
 	dev-libs/libxml2:=[icu]
 	dev-libs/libxslt:=
 	media-libs/flac:=
@@ -83,6 +83,7 @@ COMMON_DEPEND="
 	kerberos? ( virtual/krb5 )
 	!gn? (
 		>=app-accessibility/speech-dispatcher-0.8:=
+		>=dev-libs/libevent-1.4.13:=
 	)
 "
 # For nvidia-drivers blocker, see bug #413637 .
@@ -164,7 +165,9 @@ PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r4.patch"
 	"${FILESDIR}/${PN}-system-jinja-r14.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
-	"${FILESDIR}/chromium-54-ffmpeg2compat.patch"
+	"${FILESDIR}/${PN}-54-ffmpeg2compat.patch"
+	"${FILESDIR}/${PN}-gn-r6.patch"
+	"${FILESDIR}/${PN}-system-zlib-r1.patch"
 )
 
 pkg_pretend() {
@@ -234,7 +237,6 @@ src_prepare() {
 		third_party/cld_2
 		third_party/cld_3
 		third_party/cros_system_api
-		third_party/cython/python_flags.py
 		third_party/devscripts
 		third_party/dom_distiller_js
 		third_party/fips181
@@ -245,7 +247,6 @@ src_prepare() {
 		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
@@ -339,7 +340,6 @@ src_configure() {
 
 	# Use system-provided libraries.
 	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_icu (bug #576370).
 	# 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).
@@ -365,10 +365,11 @@ src_configure() {
 		-Duse_system_xdg_utils=1
 		-Duse_system_zlib=1"
 
+	# libevent: https://bugs.gentoo.org/593458
 	local gn_system_libraries="
 		flac
 		harfbuzz-ng
-		libevent
+		icu
 		libjpeg
 		libpng
 		libvpx
@@ -384,9 +385,6 @@ src_configure() {
 	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+="
@@ -451,11 +449,12 @@ src_configure() {
 		-Dlinux_use_gold_flags=0
 		-Dsysroot="
 	# Trying to use gold results in linker crash.
-	myconf_gn+=" use_gold=false use_sysroot=false"
+	myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=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}\""
+	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,
@@ -536,6 +535,9 @@ src_configure() {
 	# 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)
@@ -666,8 +668,6 @@ src_install() {
 	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
 

diff --git a/www-client/chromium/files/chromium-gn-r6.patch b/www-client/chromium/files/chromium-gn-r6.patch
new file mode 100644
index 00000000..0273f4e
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r6.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 b07fd0a8eaf139e4d09e1641ce265353a3cd3ee5..e8304549335350915380731713643cd57ec70407 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -397,7 +397,6 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/location.cc',
+       'base/logging.cc',
+       'base/md5.cc',
+-      'base/memory/ref_counted.cc',
+       'base/memory/ref_counted_memory.cc',
+       'base/memory/singleton.cc',
+       'base/memory/weak_ptr.cc',

diff --git a/www-client/chromium/files/chromium-system-zlib-r1.patch b/www-client/chromium/files/chromium-system-zlib-r1.patch
new file mode 100644
index 00000000..c6a6c40
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-zlib-r1.patch
@@ -0,0 +1,9 @@
+--- a/extensions/browser/api/cast_channel/BUILD.gn.orig	2016-09-23 21:35:47.685867065 +0000
++++ b/extensions/browser/api/cast_channel/BUILD.gn	2016-09-23 21:36:29.986723126 +0000
+@@ -27,5 +27,6 @@
+   deps = [
+     "//extensions/common/api",
+     "//extensions/common/api/cast_channel:cast_channel_proto",
++    "//third_party/zlib",
+   ]
+ }


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

commit:     8b73be2f476415489fb10d7d6c05f7ceea834f75
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 15 03:43:38 2016 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Sep 15 03:44:31 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b73be2f

www-client/chromium: dev channel bump (55.0.2859.0)

Use bundled libevent to resolve segfaults and instability.
Thanks to Matthias Dahl for troubleshooting this.

Bug: https://bugs.gentoo.org/591938
Bug: https://bugs.gentoo.org/593458

Package-Manager: portage-2.3.0_p31

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-55.0.2859.0.ebuild    | 727 +++++++++++++++++++++
 .../files/chromium-ffmpeg-generate_gn.patch        |  27 +
 3 files changed, 755 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c483c9f..aac46de 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -5,3 +5,4 @@ DIST chromium-53.0.2785.92.tar.xz 460758172 SHA256 6130483e86c0b22c02c75ec453cf0
 DIST chromium-54.0.2840.14.tar.xz 479445432 SHA256 b606d9ce2f94b4e30dbbb1a3eb21b32a438681ff68d57c7a540fb6384f3624d0 SHA512 b41dcf934e2240c2cd948120017293a86857d9a698259b7bad022c21e7f06998717eb95ffb9495dc854d40bd7935b88ce7e5720f27c60fdab4b57e9e838c5b3f WHIRLPOOL 6377a19aff47ed841de3071f8bc3a1a80a8aa1f336576b058ce6afa78500112aecea34adb9ceb3fd31c68d111dc1b89e1665a4c2b6daf5b399be3065802a249e
 DIST chromium-54.0.2840.16.tar.xz 479459252 SHA256 ba869ffc64ccd4cc16d844e76da71ae62f1c3fb32f55cd1d153ee386b59940af SHA512 b11e10b409d48d0e7edf6ddefc080c6776feb0cd238afe08fad8b06dcbc87c88ae5fcb369760fdcf35805060a42dfd13eaabec5c5f3b6ec95df51da34913a391 WHIRLPOOL 88a27dc0545fa14ac88f8d157c0cc3ec6739d348df6055435d369706fa2d62c60dd34941c49c6489ce279298501757f9a3a9981f92740cd6c58b938f58291438
 DIST chromium-55.0.2853.0.tar.xz 501960780 SHA256 f6cff02888c5a781f29ece91df38c874a2245f3e12495cbdb49c141db211835a SHA512 4963f9aa3b965845c518b6565f8b1494ef59ec090c3d9b559cb01ddbb883dbc421d72dac6f6a652fea484821096a0ce2ccc4370818a74803d29aebdfbf956efd WHIRLPOOL 0b8469540a0a952483629ee87f90368d4597fbb82ba532edc1b6d7f5670e3155bb822b5f30a1764d9c547ac71260ee0cb44328c9d6320b2ab331f1661dd948c6
+DIST chromium-55.0.2859.0.tar.xz 501623820 SHA256 43c343096377195500b31ff97979883a2e6d34e30f3f76e7d6af45679696aa38 SHA512 11bee1761c4e27576ada7e6aae65a021001f1873091acc4f8f8c38e97fbd2fc303ce37788a166736008dba761c7dcbd105f0be9df1b0513dc5ff67af24a8188f WHIRLPOOL efcb483c81175a942cfcc5edcbcf335b63e06de233ad731d60a85201b76123d23ab23930a926a4929958ef02ae935a9bd0ef625fce665831acc98047724e9488

diff --git a/www-client/chromium/chromium-55.0.2859.0.ebuild b/www-client/chromium/chromium-55.0.2859.0.ebuild
new file mode 100644
index 00000000..f243234
--- /dev/null
+++ b/www-client/chromium/chromium-55.0.2859.0.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 +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/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 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+		>=dev-libs/libevent-1.4.13:=
+	)
+"
+# 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}/chromium-54-ffmpeg2compat.patch"
+	"${FILESDIR}/chromium-ffmpeg-generate_gn.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/icu
+		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
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg )
+	fi
+	if use gn; then
+		keeplibs+=(
+			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 "${keeplibs[@]}" --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_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).
+	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"
+
+	# libevent: https://bugs.gentoo.org/593458
+	local gn_system_libraries="
+		flac
+		harfbuzz-ng
+		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
+
+	# 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)"
+
+	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)"
+
+	# 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-is-clang; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
+	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_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..."
+	if use gn; then
+		# 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
+	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 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 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-ffmpeg-generate_gn.patch b/www-client/chromium/files/chromium-ffmpeg-generate_gn.patch
new file mode 100644
index 00000000..799e3b2
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-generate_gn.patch
@@ -0,0 +1,27 @@
+https://bugs.gentoo.org/593836
+
+--- a/third_party/ffmpeg/chromium/scripts/generate_gn.py
++++ b/third_party/ffmpeg/chromium/scripts/generate_gn.py
+@@ -662,8 +662,8 @@ RENAME_REGEX = re.compile('.*' + RENAME_PREFIX + '_.+');
+ 
+ # Content for the rename file. #includes the original file to ensure the two
+ # files stay in sync.
+-RENAME_CONTENT = """// File automatically generated. See crbug.com/495833.
+-{0}include "{1}"
++RENAME_CONTENT = """{0} File automatically generated. See crbug.com/495833.
++{1}include "{2}"
+ """
+ 
+ def GetIncludedSources(file_path, source_dir, include_set):
+@@ -827,9 +827,10 @@ def FixObjectBasenameCollisions(disjoint_sets, all_sources, do_rename_cb,
+       _, old_filename = os.path.split(rename.old_path)
+       _, file_extension = os.path.splitext(old_filename)
+       include_prefix = '%' if (file_extension == '.asm') else '#'
++      comment_prefix = ';' if (file_extension == '.asm') else '//'
+ 
+       do_rename_cb(rename.old_path, rename.new_path,
+-                   RENAME_CONTENT.format(include_prefix, old_filename))
++                   RENAME_CONTENT.format(comment_prefix, include_prefix, old_filename))
+ 
+       source_set.sources.remove(rename.old_path)
+       source_set.sources.add(rename.new_path)


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-09-09 22:40 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-09-09 22:40 UTC (permalink / raw
  To: gentoo-commits

commit:     6c0c212e131585bb38acf37eeb287430fe55c238
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  9 22:40:25 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Fri Sep  9 22:40:34 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c0c212e

www-client/chromium: dev channel bump (55.0.2853.0)

Package-Manager: portage-2.2.28

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-55.0.2853.0.ebuild    | 727 +++++++++++++++++++++
 .../chromium/files/chromium-system-ffmpeg-r4.patch |  48 ++
 .../chromium/files/chromium-system-jinja-r14.patch |  31 +
 4 files changed, 807 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 4ce9e5f..455c388 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,3 +3,4 @@ DIST chromium-53.0.2785.89.tar.xz 460845036 SHA256 2e3c5f7b12b5b4f150b93004a718f
 DIST chromium-53.0.2785.92.tar.xz 460758172 SHA256 6130483e86c0b22c02c75ec453cf0d54f1079abe2c5c151379fb2eba2411f0f0 SHA512 134413c3d2a21efcf6f241d5343f5c9a4ff315aa425f53c7d68d54ed4baf52dc9d669269910c955fb9a8fd32cb9720b9318f735a5800a1a839beb733f0521124 WHIRLPOOL 53170d162304872d14533409cb794b51f453145d24193213ab967115cd40fa0e32e2ad146d69a938a7a91201d569dec56b120a16c3da15011c550d60978f9ae4
 DIST chromium-54.0.2840.14.tar.xz 479445432 SHA256 b606d9ce2f94b4e30dbbb1a3eb21b32a438681ff68d57c7a540fb6384f3624d0 SHA512 b41dcf934e2240c2cd948120017293a86857d9a698259b7bad022c21e7f06998717eb95ffb9495dc854d40bd7935b88ce7e5720f27c60fdab4b57e9e838c5b3f WHIRLPOOL 6377a19aff47ed841de3071f8bc3a1a80a8aa1f336576b058ce6afa78500112aecea34adb9ceb3fd31c68d111dc1b89e1665a4c2b6daf5b399be3065802a249e
 DIST chromium-54.0.2840.16.tar.xz 479459252 SHA256 ba869ffc64ccd4cc16d844e76da71ae62f1c3fb32f55cd1d153ee386b59940af SHA512 b11e10b409d48d0e7edf6ddefc080c6776feb0cd238afe08fad8b06dcbc87c88ae5fcb369760fdcf35805060a42dfd13eaabec5c5f3b6ec95df51da34913a391 WHIRLPOOL 88a27dc0545fa14ac88f8d157c0cc3ec6739d348df6055435d369706fa2d62c60dd34941c49c6489ce279298501757f9a3a9981f92740cd6c58b938f58291438
+DIST chromium-55.0.2853.0.tar.xz 501960780 SHA256 f6cff02888c5a781f29ece91df38c874a2245f3e12495cbdb49c141db211835a SHA512 4963f9aa3b965845c518b6565f8b1494ef59ec090c3d9b559cb01ddbb883dbc421d72dac6f6a652fea484821096a0ce2ccc4370818a74803d29aebdfbf956efd WHIRLPOOL 0b8469540a0a952483629ee87f90368d4597fbb82ba532edc1b6d7f5670e3155bb822b5f30a1764d9c547ac71260ee0cb44328c9d6320b2ab331f1661dd948c6

diff --git a/www-client/chromium/chromium-55.0.2853.0.ebuild b/www-client/chromium/chromium-55.0.2853.0.ebuild
new file mode 100644
index 00000000..18bce18
--- /dev/null
+++ b/www-client/chromium/chromium-55.0.2853.0.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 +suid +system-ffmpeg +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+REQUIRED_USE="gn? ( gnome gnome-keyring )"
+
+# 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/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/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]
+	kerberos? ( virtual/krb5 )
+	!gn? (
+		>=app-accessibility/speech-dispatcher-0.8:=
+	)
+"
+# 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(-)] )
+"
+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
+	$(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}/chromium-54-ffmpeg2compat.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/cython/python_flags.py
+		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/icu
+		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
+	)
+	if ! use system-ffmpeg; then
+		keeplibs+=( third_party/ffmpeg )
+	fi
+	if use gn; then
+		keeplibs+=(
+			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 "${keeplibs[@]}" --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_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).
+	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
+		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
+
+	# 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_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-is-clang; then
+		myconf_gyp+=" -Dclang=1"
+		myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
+	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
+		# 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
+	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 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 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-system-ffmpeg-r4.patch b/www-client/chromium/files/chromium-system-ffmpeg-r4.patch
new file mode 100644
index 00000000..3abfc16
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r4.patch
@@ -0,0 +1,48 @@
+--- a/media/ffmpeg/ffmpeg_common.h.orig	2016-09-09 13:16:07.757294768 +0000
++++ b/media/ffmpeg/ffmpeg_common.h	2016-09-09 13:16:41.705989273 +0000
+@@ -22,10 +22,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 FFmpeg's
+-// BUILD.gn 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,
+@@ -35,7 +35,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>
+--- a/media/filters/ffmpeg_demuxer.cc.orig	2016-09-09 14:21:40.185828912 +0000
++++ b/media/filters/ffmpeg_demuxer.cc	2016-09-09 14:21:52.894089352 +0000
+@@ -1185,24 +1185,6 @@
+   // 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_t>(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_t>(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;
+-    }
+-  }
+ 
+   std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
+ 

diff --git a/www-client/chromium/files/chromium-system-jinja-r14.patch b/www-client/chromium/files/chromium-system-jinja-r14.patch
new file mode 100644
index 00000000..4dba044
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-jinja-r14.patch
@@ -0,0 +1,31 @@
+--- 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/scripts.gni.orig	2016-09-09 13:40:51.971660406 +0000
++++ b/third_party/WebKit/Source/bindings/scripts/scripts.gni	2016-09-09 13:41:15.472141236 +0000
+@@ -9,15 +9,9 @@
+ bindings_scripts_output_dir = "$root_gen_dir/blink/bindings/scripts"
+ 
+ jinja_module_files = [
+-  "//third_party/jinja2/__init__.py",
+-  "//third_party/markupsafe/__init__.py",  # jinja2 dep
+ ]
+ 
+ idl_lexer_parser_files = get_path_info([
+-                                         # PLY (Python Lex-Yacc)
+-                                         "//third_party/ply/lex.py",
+-                                         "//third_party/ply/yacc.py",
+-
+                                          # Web IDL lexer/parser (base parser)
+                                          "//tools/idl_parser/idl_lexer.py",
+                                          "//tools/idl_parser/idl_node.py",


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-08-24 10:23 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-08-24 10:23 UTC (permalink / raw
  To: gentoo-commits

commit:     fd5fb1553ba548e3b5553c46170ea3b91a71fed2
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 24 10:23:02 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Aug 24 10:23:02 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd5fb155

www-client/chromium: dev channel bump (54.0.2837.0)

Fix build with system libjpeg (bug #584518).

Package-Manager: portage-2.2.28

 www-client/chromium/Manifest                       |   2 +-
 ...0.2824.0.ebuild => chromium-54.0.2837.0.ebuild} | 302 ++++++++++-----------
 www-client/chromium/files/chromium-gn-r5.patch     |  27 ++
 3 files changed, 176 insertions(+), 155 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 7d9a41e..43da9dc 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-52.0.2743.116.tar.xz 458156660 SHA256 a194ae1edb041024b3d4b6ba438f32fefdb6f1ecb24a96c50248a486b237a101 SHA512 c9a8b6d7a22d3b086f1761678f1fa047191a8e44bc6ebe8745e76ea92420b1330fc6e4134ca7bc22c0367e7a25df04900156d0ebb44eae3ef7f98d1deb5362e5 WHIRLPOOL 90cc620e9dab964690a24606ae456e20f1a9dc556301fef33f3599a395ec247cb03712c94522a681f20332b54163896e118463b1b402aff6153b513deb25c5cc
 DIST chromium-53.0.2785.34.tar.xz 460739532 SHA256 261ba008c96b335a55feff18785b01484af2d678f85b58206008b31c9e9c372f SHA512 99e0b7a30e34f70ec844ef50f02eadadead2b83f2a47ca7d5779cf0a90bf49e7d3efc1bbc98eb4d1294ed283edd04a993a639003a365e06ae8b2adf26cc1c865 WHIRLPOOL dec533670c1664f88ea32fe253644e479b81fb93bd93f1bc5dbfe41c56979a7642afdfcd041ddf05ca3f0da8e1bedc7ddf48779be3b965038026f65ab199f344
 DIST chromium-53.0.2785.70.tar.xz 460838212 SHA256 edd660ea30eeb1a3fccb1c18c725c96bf464b6ea34134c8210ef9dfa8cd35179 SHA512 7029915f983f854ceb2e43b1bc896b2954eb2ca4f704a81070a837e2435ffd0f5a4e4128456826fc70e439997febb1eb715ed33b3336734f137952632f61dd7e WHIRLPOOL d6e51313b37c6408e6f41900b984f1cc835fb247dfb0371eaca9554425df5df2ae1d56e4efd31093c2ffcd0359b457338558ee8e66cd1a67f69528f5461cd5b2
-DIST chromium-54.0.2824.0.tar.xz 459683224 SHA256 7aae8ea2ae681b6971624c1dbcbf9cb56353456a20b91f369381488c8f2e0e94 SHA512 4867661f78fe72c32e8cea5a476cedd5fee9586fe8df8a7bd79f793542caa15fe52596996f8615f66376e75d9bdd92aeaa8aa6241472503ae015ef761f6435a3 WHIRLPOOL 88baed0d7fb13b815df82ffcd5e511ac9ef6ee92d98dff571f5ba5115300859345490c27fa45dab7c3dc99e5cd44310bcaa502ae37808b8694ce1276293d3549
 DIST chromium-54.0.2832.2.tar.xz 479876132 SHA256 105145178e6995b57821966b77512918b873e180bfaf6a4991f55c769df04b12 SHA512 e4d4f813df9036d9769003cc115d89139365a898e0ad98faa503bcd066133fa27f653861df1e09d36156f05e30b27ade15e9be2e0c205748feb1ab7913ee2989 WHIRLPOOL 0772494f4956b9e75f09f5ba1ed955178102917c5a59f45f9f34f44d23d334647a6090406c8bc8f9f6dada54758118ed8d1dbdd961f9c3ec30e122a81acc1ad4
+DIST chromium-54.0.2837.0.tar.xz 479983852 SHA256 4813772a104aefc630bd80f81c663f702659fe8a7d592839bf04a1d252e20d75 SHA512 f052afd0b32a1de30df55792c91fbc595489eb347b775e05db7f272e5d88ffc2ff8d498d35c811f2c4e4c14b6cd57d18549dddbbf6b085f5bbe533723dfc2dde WHIRLPOOL d37ec6920ce4922ff2dfd3b4c59691d735301b6124d49f6a854b7eca6975e0588ff975d8337d293a242014d2a5a747695a0dad4216e3c53b552d4a43a6c3a3dc

diff --git a/www-client/chromium/chromium-54.0.2824.0.ebuild b/www-client/chromium/chromium-54.0.2837.0.ebuild
similarity index 77%
rename from www-client/chromium/chromium-54.0.2824.0.ebuild
rename to www-client/chromium/chromium-54.0.2837.0.ebuild
index fd8faba..7164ae1 100644
--- a/www-client/chromium/chromium-54.0.2824.0.ebuild
+++ b/www-client/chromium/chromium-54.0.2837.0.ebuild
@@ -31,7 +31,7 @@ QA_FLAGS_IGNORED=".*\.nexe"
 # right tools for it, bug #469144 .
 QA_PRESTRIPPED=".*\.nexe"
 
-RDEPEND="
+COMMON_DEPEND="
 	app-arch/bzip2:=
 	cups? ( >=net-print/cups-1.3.11:= )
 	>=dev-libs/elfutils-0.149
@@ -40,17 +40,19 @@ RDEPEND="
 	>=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:= )
+	system-ffmpeg? ( >=media-video/ffmpeg-3.0.1:= )
 	sys-apps/dbus:=
 	sys-apps/pciutils:=
 	>=sys-libs/libcap-2.22:=
@@ -84,8 +86,20 @@ RDEPEND="
 	kerberos? ( virtual/krb5 )
 	!gn? (
 		>=app-accessibility/speech-dispatcher-0.8:=
-	)"
-DEPEND="${RDEPEND}
+	)
+"
+# 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(-)] )
+"
+DEPEND="${COMMON_DEPEND}
 	>=app-arch/gzip-1.7
 	!arm? (
 		dev-lang/yasm
@@ -97,29 +111,18 @@ DEPEND="${RDEPEND}
 	sys-apps/hwids[usb(+)]
 	>=sys-devel/bison-2.4.3
 	sys-devel/flex
-	virtual/pkgconfig"
+	virtual/pkgconfig
+	$(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}]
+	')
+"
 
-# 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}]
-')"
+# 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}]" &&
@@ -159,16 +162,16 @@ For other desktop environments, try one of the following:
 
 PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r3.patch"
-	"${FILESDIR}/${PN}-system-jinja-r12.patch"
+	"${FILESDIR}/${PN}-system-jinja-r13.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
-	"${FILESDIR}/${PN}-last-commit-position-r1.patch"
-	"${FILESDIR}/${PN}-gn-r4.patch"
+	"${FILESDIR}/${PN}-gn-r5.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.'
+	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 .
@@ -183,13 +186,6 @@ 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
 
@@ -199,130 +195,127 @@ pkg_setup() {
 src_prepare() {
 	default
 
-	local conditional_bundled_libraries=""
+	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/cython/python_flags.py
+		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/icu
+		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
+	)
 	if ! use system-ffmpeg; then
-		conditional_bundled_libraries+=" third_party/ffmpeg"
+		keeplibs+=( third_party/ffmpeg )
 	fi
 	if use gn; then
-		conditional_bundled_libraries+="
+		keeplibs+=(
 			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
+	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
 }
 
 src_configure() {
@@ -347,12 +340,10 @@ 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_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+="
@@ -378,11 +369,13 @@ src_configure() {
 		flac
 		harfbuzz-ng
 		libevent
+		libjpeg
 		libpng
 		libvpx
 		libwebp
 		libxml
 		libxslt
+		re2
 		snappy
 		yasm
 		zlib"
@@ -441,7 +434,7 @@ src_configure() {
 	myconf_gyp+=" -Dfieldtrial_testing_like_official_build=1"
 	myconf_gn+=" fieldtrial_testing_like_official_build=true"
 
-	if [[ $(tc-getCC) == *clang* ]]; then
+	if tc-is-clang; then
 		myconf_gyp+=" -Dclang=1"
 		myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
 	else
@@ -621,6 +614,7 @@ src_compile() {
 }
 
 src_install() {
+	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
 	exeinto "${CHROMIUM_HOME}"
 	doexe out/Release/chrome || die
 

diff --git a/www-client/chromium/files/chromium-gn-r5.patch b/www-client/chromium/files/chromium-gn-r5.patch
new file mode 100644
index 00000000..beb844f
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r5.patch
@@ -0,0 +1,27 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index aab92c243167769cb7ccbb2bd50672800ab43e3e..b07fd0a8eaf139e4d09e1641ce265353a3cd3ee5 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -445,6 +445,21 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/synchronization/lock.cc',
+       'base/sys_info.cc',
+       'base/task_runner.cc',
++      'base/task_scheduler/delayed_task_manager.cc',
++      'base/task_scheduler/post_task.cc',
++      'base/task_scheduler/priority_queue.cc',
++      'base/task_scheduler/scheduler_lock_impl.cc',
++      'base/task_scheduler/scheduler_service_thread.cc',
++      'base/task_scheduler/scheduler_worker.cc',
++      'base/task_scheduler/scheduler_worker_pool_impl.cc',
++      'base/task_scheduler/scheduler_worker_stack.cc',
++      'base/task_scheduler/sequence.cc',
++      'base/task_scheduler/sequence_sort_key.cc',
++      'base/task_scheduler/task.cc',
++      'base/task_scheduler/task_scheduler.cc',
++      'base/task_scheduler/task_scheduler_impl.cc',
++      'base/task_scheduler/task_tracker.cc',
++      'base/task_scheduler/task_traits.cc',
+       'base/third_party/dmg_fp/dtoa_wrapper.cc',
+       'base/third_party/dmg_fp/g_fmt.cc',
+       'base/third_party/icu/icu_utf.cc',


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-08-20 11:50 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-08-20 11:50 UTC (permalink / raw
  To: gentoo-commits

commit:     6f31892ec6a08b6cb47b4cfcf6096ead36ba20be
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 20 11:49:30 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Sat Aug 20 11:49:30 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6f31892e

www-client/chromium: dev channel bump (54.0.2832.2)

Package-Manager: portage-2.2.28

 www-client/chromium/Manifest                       |  2 +-
 ...0.2810.2.ebuild => chromium-54.0.2832.2.ebuild} | 35 +++++++------
 .../chromium/files/chromium-system-jinja-r13.patch | 59 ++++++++++++++++++++++
 3 files changed, 79 insertions(+), 17 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index a61aced..7d9a41e 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,5 +1,5 @@
 DIST chromium-52.0.2743.116.tar.xz 458156660 SHA256 a194ae1edb041024b3d4b6ba438f32fefdb6f1ecb24a96c50248a486b237a101 SHA512 c9a8b6d7a22d3b086f1761678f1fa047191a8e44bc6ebe8745e76ea92420b1330fc6e4134ca7bc22c0367e7a25df04900156d0ebb44eae3ef7f98d1deb5362e5 WHIRLPOOL 90cc620e9dab964690a24606ae456e20f1a9dc556301fef33f3599a395ec247cb03712c94522a681f20332b54163896e118463b1b402aff6153b513deb25c5cc
 DIST chromium-53.0.2785.34.tar.xz 460739532 SHA256 261ba008c96b335a55feff18785b01484af2d678f85b58206008b31c9e9c372f SHA512 99e0b7a30e34f70ec844ef50f02eadadead2b83f2a47ca7d5779cf0a90bf49e7d3efc1bbc98eb4d1294ed283edd04a993a639003a365e06ae8b2adf26cc1c865 WHIRLPOOL dec533670c1664f88ea32fe253644e479b81fb93bd93f1bc5dbfe41c56979a7642afdfcd041ddf05ca3f0da8e1bedc7ddf48779be3b965038026f65ab199f344
 DIST chromium-53.0.2785.70.tar.xz 460838212 SHA256 edd660ea30eeb1a3fccb1c18c725c96bf464b6ea34134c8210ef9dfa8cd35179 SHA512 7029915f983f854ceb2e43b1bc896b2954eb2ca4f704a81070a837e2435ffd0f5a4e4128456826fc70e439997febb1eb715ed33b3336734f137952632f61dd7e WHIRLPOOL d6e51313b37c6408e6f41900b984f1cc835fb247dfb0371eaca9554425df5df2ae1d56e4efd31093c2ffcd0359b457338558ee8e66cd1a67f69528f5461cd5b2
-DIST chromium-54.0.2810.2.tar.xz 460923284 SHA256 f038e72cbd8b7383d13c286329623fda8d6d48f45fa2d964e554b5565283ad71 SHA512 069edcc27427dc7e3c6c3af1932b7d88d2070f8280c9e1881bcba3cbf13bd2d74fe13b79d1e89194c51b9edf71b8ff0f5e45a0a9727798cc723cb8237b95df8c WHIRLPOOL 64b32d5b5c06f9a4d3e774d340da935b92c46bb1573923dfd4f5748af310214ff7295f1b1e101dd6cb50de383e36fd2813087af801bed47df889e69441a6a375
 DIST chromium-54.0.2824.0.tar.xz 459683224 SHA256 7aae8ea2ae681b6971624c1dbcbf9cb56353456a20b91f369381488c8f2e0e94 SHA512 4867661f78fe72c32e8cea5a476cedd5fee9586fe8df8a7bd79f793542caa15fe52596996f8615f66376e75d9bdd92aeaa8aa6241472503ae015ef761f6435a3 WHIRLPOOL 88baed0d7fb13b815df82ffcd5e511ac9ef6ee92d98dff571f5ba5115300859345490c27fa45dab7c3dc99e5cd44310bcaa502ae37808b8694ce1276293d3549
+DIST chromium-54.0.2832.2.tar.xz 479876132 SHA256 105145178e6995b57821966b77512918b873e180bfaf6a4991f55c769df04b12 SHA512 e4d4f813df9036d9769003cc115d89139365a898e0ad98faa503bcd066133fa27f653861df1e09d36156f05e30b27ade15e9be2e0c205748feb1ab7913ee2989 WHIRLPOOL 0772494f4956b9e75f09f5ba1ed955178102917c5a59f45f9f34f44d23d334647a6090406c8bc8f9f6dada54758118ed8d1dbdd961f9c3ec30e122a81acc1ad4

diff --git a/www-client/chromium/chromium-54.0.2810.2.ebuild b/www-client/chromium/chromium-54.0.2832.2.ebuild
similarity index 96%
rename from www-client/chromium/chromium-54.0.2810.2.ebuild
rename to www-client/chromium/chromium-54.0.2832.2.ebuild
index 50e6674..9b68f52 100644
--- a/www-client/chromium/chromium-54.0.2810.2.ebuild
+++ b/www-client/chromium/chromium-54.0.2832.2.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 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"
+IUSE="cups +gn gnome gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg tcmalloc widevine"
 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
 
 # TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
@@ -73,17 +73,17 @@ RDEPEND="
 	x11-libs/libXScrnSaver:=
 	x11-libs/libXtst:=
 	x11-libs/pango:=
+	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]
 	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
@@ -159,10 +159,8 @@ For other desktop environments, try one of the following:
 
 PATCHES=(
 	"${FILESDIR}/${PN}-system-ffmpeg-r3.patch"
-	"${FILESDIR}/${PN}-system-jinja-r12.patch"
+	"${FILESDIR}/${PN}-system-jinja-r13.patch"
 	"${FILESDIR}/${PN}-widevine-r1.patch"
-	"${FILESDIR}/${PN}-last-commit-position-r1.patch"
-	"${FILESDIR}/${PN}-gn-r3.patch"
 )
 
 pkg_pretend() {
@@ -253,11 +251,11 @@ src_prepare() {
 		'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/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' \
@@ -604,7 +602,10 @@ eninja() {
 }
 
 src_compile() {
-	local ninja_targets="chrome chrome_sandbox chromedriver"
+	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
@@ -621,8 +622,10 @@ src_install() {
 	exeinto "${CHROMIUM_HOME}"
 	doexe out/Release/chrome || die
 
-	newexe out/Release/chrome_sandbox chrome-sandbox || die
-	fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+	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

diff --git a/www-client/chromium/files/chromium-system-jinja-r13.patch b/www-client/chromium/files/chromium-system-jinja-r13.patch
new file mode 100644
index 0000000..845ac94
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-jinja-r13.patch
@@ -0,0 +1,59 @@
+--- 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.


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-08-10 20:33 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-08-10 20:33 UTC (permalink / raw
  To: gentoo-commits

commit:     58f3fd3b9db9ce046e50a5a82b1d2499ebcaaf47
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 10 22:29:45 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Aug 10 22:29:45 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=58f3fd3b

www-client/chromium: dev channel bump (54.0.2824.0)

Make SUID sandbox optional - fixes bug #550290 by Karol Herbst.

Package-Manager: portage-2.2.28

 www-client/chromium/Manifest                    |   1 +
 www-client/chromium/chromium-54.0.2824.0.ebuild | 732 ++++++++++++++++++++++++
 www-client/chromium/files/chromium-gn-r4.patch  |  12 +
 3 files changed, 745 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 453c21c..657788a 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -2,3 +2,4 @@ DIST chromium-52.0.2743.116.tar.xz 458156660 SHA256 a194ae1edb041024b3d4b6ba438f
 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
+DIST chromium-54.0.2824.0.tar.xz 459683224 SHA256 7aae8ea2ae681b6971624c1dbcbf9cb56353456a20b91f369381488c8f2e0e94 SHA512 4867661f78fe72c32e8cea5a476cedd5fee9586fe8df8a7bd79f793542caa15fe52596996f8615f66376e75d9bdd92aeaa8aa6241472503ae015ef761f6435a3 WHIRLPOOL 88baed0d7fb13b815df82ffcd5e511ac9ef6ee92d98dff571f5ba5115300859345490c27fa45dab7c3dc99e5cd44310bcaa502ae37808b8694ce1276293d3549

diff --git a/www-client/chromium/chromium-54.0.2824.0.ebuild b/www-client/chromium/chromium-54.0.2824.0.ebuild
new file mode 100644
index 0000000..64ea7a2
--- /dev/null
+++ b/www-client/chromium/chromium-54.0.2824.0.ebuild
@@ -0,0 +1,732 @@
+# 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 +suid +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-r4.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 clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
+	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 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() {
+	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 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-r4.patch b/www-client/chromium/files/chromium-gn-r4.patch
new file mode 100644
index 0000000..53f208b
--- /dev/null
+++ b/www-client/chromium/files/chromium-gn-r4.patch
@@ -0,0 +1,12 @@
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index fa81d10..aab92c2 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -373,6 +373,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/base_switches.cc',
+       'base/callback_internal.cc',
+       'base/command_line.cc',
++      'base/debug/activity_tracker.cc',
+       'base/debug/alias.cc',
+       'base/debug/stack_trace.cc',
+       'base/debug/task_annotator.cc',


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-06-29 20:19 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-06-29 20:19 UTC (permalink / raw
  To: gentoo-commits

commit:     7d6a77bc7c1a786abd4659f920990b1a9df22671
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 29 22:18:24 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Jun 29 22:18:24 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d6a77bc

www-client/chromium: fix build with bundled ffmpeg

This fixes bug #586544 reported by DJ Dunn

Backported upstream patch found by Kamil Kamiński

Package-Manager: portage-2.2.28

 www-client/chromium/chromium-52.0.2743.49.ebuild   |  1 +
 www-client/chromium/chromium-53.0.2774.3.ebuild    |  1 +
 .../files/chromium-ffmpeg-license-r0.patch         | 44 ++++++++++++++++++++++
 3 files changed, 46 insertions(+)

diff --git a/www-client/chromium/chromium-52.0.2743.49.ebuild b/www-client/chromium/chromium-52.0.2743.49.ebuild
index 1ac904b..695a89a 100644
--- a/www-client/chromium/chromium-52.0.2743.49.ebuild
+++ b/www-client/chromium/chromium-52.0.2743.49.ebuild
@@ -195,6 +195,7 @@ src_prepare() {
 	epatch "${FILESDIR}/${PN}-pdfium-r0.patch"
 	epatch "${FILESDIR}/${PN}-system-zlib-r0.patch"
 	epatch "${FILESDIR}/${PN}-linker-warnings-r0.patch"
+	epatch "${FILESDIR}/${PN}-ffmpeg-license-r0.patch"
 
 	epatch_user
 

diff --git a/www-client/chromium/chromium-53.0.2774.3.ebuild b/www-client/chromium/chromium-53.0.2774.3.ebuild
index ac42054..4c367ef 100644
--- a/www-client/chromium/chromium-53.0.2774.3.ebuild
+++ b/www-client/chromium/chromium-53.0.2774.3.ebuild
@@ -192,6 +192,7 @@ src_prepare() {
 	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}-ffmpeg-license-r0.patch"
 
 	epatch_user
 

diff --git a/www-client/chromium/files/chromium-ffmpeg-license-r0.patch b/www-client/chromium/files/chromium-ffmpeg-license-r0.patch
new file mode 100644
index 0000000..8e44cbd
--- /dev/null
+++ b/www-client/chromium/files/chromium-ffmpeg-license-r0.patch
@@ -0,0 +1,44 @@
+From 3c9d5afe45bf1c4656b8f630525433f29017cd08 Mon Sep 17 00:00:00 2001
+From: Chris Cunningham <chcunningham@chromium.org>
+Date: Tue, 21 Jun 2016 10:52:45 -0700
+Subject: [PATCH] Avoid ffmpeg licences/credits checking generated autorename_ files.
+
+We generated these renames as a fix for http://crbug.com/495833. The
+generated rename contains no license or credits info and should be
+skipped to avoid confusing license/credits scripts. Care must be
+taken to not also skip the underlying include file from upstream ffmpeg.
+
+Found by: Zoltan Kuscsik
+
+BUG=495833
+
+Change-Id: I3359f4de0281b5f057d4b109ab2a4f31895b5cb1
+---
+
+diff --git a/chromium/scripts/generate_gyp.py b/chromium/scripts/generate_gyp.py
+index c3fd3c0..94c2aad 100755
+--- a/third_party/ffmpeg/chromium/scripts/generate_gyp.py
++++ b/third_party/ffmpeg/chromium/scripts/generate_gyp.py
+@@ -790,6 +790,9 @@
+ # Prefix added to renamed files as part of
+ RENAME_PREFIX = 'autorename'
+ 
++# Match an absolute path to a generated auotorename_ file.
++RENAME_REGEX = re.compile('.*' + RENAME_PREFIX + '_.+');
++
+ # Content for the rename file. #includes the original file to ensure the two
+ # files stay in sync.
+ RENAME_CONTENT = """// File automatically generated. See crbug.com/495833.
+@@ -1020,6 +1023,12 @@
+     for source in source_set.sources:
+       GetIncludedSources(source, source_dir, sources_to_check)
+ 
++  # Remove autorename_ files now that we've grabbed their underlying includes.
++  # We generated autorename_ files above and should not consider them for
++  # licensing or credits.
++  sources_to_check = filter(lambda s: not RENAME_REGEX.search(s),
++                            sources_to_check)
++
+   if not CheckLicensesForStaticLinking(sources_to_check, source_dir,
+                                        options.print_licenses):
+     exit('GENERATE FAILED: invalid licenses detected.')


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-06-02 20:14 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-06-02 20:14 UTC (permalink / raw
  To: gentoo-commits

commit:     07791dc9cfbb9d792bed87e4e7b75f2c13ea8d40
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  2 20:11:46 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Jun  2 20:11:46 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=07791dc9

www-client/chromium: dev channel bump (52.0.2743.19)

Package-Manager: portage-2.2.26

 www-client/chromium/Manifest                       |  2 +-
 ....2723.2.ebuild => chromium-52.0.2743.19.ebuild} | 49 ++++++++-------
 .../chromium/files/chromium-system-jinja-r9.patch  | 71 ++++++++++++++++++++++
 3 files changed, 100 insertions(+), 22 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index cbf4841..0213d4a 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.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
+DIST chromium-52.0.2743.19.tar.xz 457854724 SHA256 e4149f479bea32142214b07b14912a011278917077e97819fb17fa83540eac16 SHA512 d29638959b8f36e70ce60bffc65b58878e5d607959062847b625d9d6acccfba14e96fbc0cd757b28283dd90bbc1ab336f8da65d4564df26bd86e260aa92cfd7c WHIRLPOOL f48864c796f6a98731de5253daf3d281d6613ada18528358dba9c1de9e86cc14a42f6bd60a5c05c3ddfb826a6eb371c1e5353b9b8e206b24d379225bb439fdbd

diff --git a/www-client/chromium/chromium-52.0.2723.2.ebuild b/www-client/chromium/chromium-52.0.2743.19.ebuild
similarity index 96%
rename from www-client/chromium/chromium-52.0.2723.2.ebuild
rename to www-client/chromium/chromium-52.0.2743.19.ebuild
index f390988..1ac904b 100644
--- a/www-client/chromium/chromium-52.0.2723.2.ebuild
+++ b/www-client/chromium/chromium-52.0.2743.19.ebuild
@@ -23,7 +23,7 @@ IUSE="cups gn gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon
 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 )"
+REQUIRED_USE="gn? ( !tcmalloc )"
 
 # Native Client binaries are compiled with different set of flags, bug #452066.
 QA_FLAGS_IGNORED=".*\.nexe"
@@ -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]
 	)"
@@ -189,11 +188,13 @@ pkg_setup() {
 
 src_prepare() {
 	epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
-	epatch "${FILESDIR}/${PN}-system-jinja-r8.patch"
+	epatch "${FILESDIR}/${PN}-system-jinja-r9.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 "${FILESDIR}/${PN}-pdfium-r0.patch"
+	epatch "${FILESDIR}/${PN}-system-zlib-r0.patch"
+	epatch "${FILESDIR}/${PN}-linker-warnings-r0.patch"
 
 	epatch_user
 
@@ -205,23 +206,10 @@ 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
 
@@ -280,6 +268,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 +277,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,6 +297,8 @@ 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' \
@@ -355,6 +346,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).
@@ -371,7 +363,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
@@ -382,6 +373,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"
 
@@ -407,8 +413,9 @@ src_configure() {
 		$(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\")"
+	myconf_gn+=" use_cups=$(usex cups true false)"
+	myconf_gn+=" use_kerberos=$(usex kerberos true false)"
 
 	# Use explicit library dependencies instead of dlopen.
 	# This makes breakages easier to detect by revdep-rebuild.

diff --git a/www-client/chromium/files/chromium-system-jinja-r9.patch b/www-client/chromium/files/chromium-system-jinja-r9.patch
new file mode 100644
index 0000000..1de9083
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-jinja-r9.patch
@@ -0,0 +1,71 @@
+--- 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.


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-04-20 20:06 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-04-20 20:06 UTC (permalink / raw
  To: gentoo-commits

commit:     9a0ccf7a1680ab65b17c87baf6ff3826edf47825
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 20 20:05:33 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Apr 20 20:05:33 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a0ccf7a

www-client/chromium: dev channel bump (51.0.2704.19); fix build with system ffmpeg (bug #576372)

Package-Manager: portage-2.2.26

 www-client/chromium/Manifest                       |  2 +-
 ....2700.0.ebuild => chromium-51.0.2704.19.ebuild} |  3 +-
 .../chromium/files/chromium-system-ffmpeg-r3.patch | 73 ++++++++++++++++++++++
 3 files changed, 75 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 81dc68d..4455712 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-50.0.2661.75.tar.xz 531558012 SHA256 c12d644e711ec85c800ab61a749d1f03ba7999e0c3cd20f8495a674d39a643da SHA512 cc44a052a858d9f43052d825bac891bb44bb5ec4261f4c7a560d9f0798edd9c0ec2c174dd3a61f6adcf01976838e97c49d93973b8c926c6ef5cd8c92ee1672f3 WHIRLPOOL 8ec8164fd305f0a67bf433f46294d06e16ac3d0c2b2e5d5531c213f1c471aedc51f2b61215f507677ad3cd40c529cb72547facdeba3ce3c4cc081c3727ef97aa
-DIST chromium-51.0.2700.0.tar.xz 460037268 SHA256 5942ee28ae24196654fb107f6b98ccca7014aa891cb572b54f261394ce99baf0 SHA512 a17772a46639f963d6fc7179e17704b7eccd09ed49aaff24f0fe26e799ec521f4c26880c581a87c7cbf893a0c6c81a1eb2a6b75c51ff6971c9b97e7d52908bad WHIRLPOOL 0404236abcfe7fdde71f00dc003281e3dc001448e56fe09a42b6dce579b08cb265d7bfe71795e08f0944bd84a85b4c85b059cc018944645371667f661df0d43c
+DIST chromium-51.0.2704.19.tar.xz 459662212 SHA256 515846fadd3fb4a539c5b368854ba918aeeff910f83e346e2f2515e9251f2ef3 SHA512 86aca654f4ba1c6704748cb41c53273513f6de80a0482e1ae95d02306cc967b7d9d87cba8e9b4984287a4f38b821611fe42c3870c2c9f79997d6a5f8a00004ca WHIRLPOOL 5bf091f52335f7ba29f1acf78e0666673c5c4304e83d7537781691fdd483c45b6466333d64f756ce99ef47578b31fd2828f4124fda492cb62bc6974e71de67d9
 DIST chromium-51.0.2704.7.tar.xz 459684340 SHA256 1597514c47ff7c09c2a6002adb60b9a4aba6b1eab3dd53fea7438a0cdbe3d8e1 SHA512 dd2a177e8309a6ddee92edecac866d6a1bcecb476df42d4b8823921b8457563238bae76ddfb360a536787b81547f063f054d0582ddc2ac5545b0d4d3b62bc10e WHIRLPOOL 39b703f60dea0a2c33ad4c1da68b5340782a845f2f25496d5829f2a2ba9733cf3b689907de33024d3f8dc3582153e7f9f969bfd2591ae845948c012ac207f1f4

diff --git a/www-client/chromium/chromium-51.0.2700.0.ebuild b/www-client/chromium/chromium-51.0.2704.19.ebuild
similarity index 99%
rename from www-client/chromium/chromium-51.0.2700.0.ebuild
rename to www-client/chromium/chromium-51.0.2704.19.ebuild
index 1816372..565ab68 100644
--- a/www-client/chromium/chromium-51.0.2700.0.ebuild
+++ b/www-client/chromium/chromium-51.0.2704.19.ebuild
@@ -188,7 +188,7 @@ pkg_setup() {
 }
 
 src_prepare() {
-	epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
+	epatch "${FILESDIR}/${PN}-system-ffmpeg-r3.patch"
 	epatch "${FILESDIR}/${PN}-system-jinja-r8.patch"
 	epatch "${FILESDIR}/${PN}-widevine-r1.patch"
 	epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
@@ -296,7 +296,6 @@ src_prepare() {
 		'third_party/mesa' \
 		'third_party/modp_b64' \
 		'third_party/mt19937ar' \
-		'third_party/npapi' \
 		'third_party/openh264' \
 		'third_party/openmax_dl' \
 		'third_party/opus' \

diff --git a/www-client/chromium/files/chromium-system-ffmpeg-r3.patch b/www-client/chromium/files/chromium-system-ffmpeg-r3.patch
new file mode 100644
index 0000000..8be1735
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r3.patch
@@ -0,0 +1,73 @@
+--- 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
+@@ -1034,24 +1034,6 @@
+   // 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_t>(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_t>(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;
+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)',


^ permalink raw reply related	[flat|nested] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2016-01-07 20:39 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2016-01-07 20:39 UTC (permalink / raw
  To: gentoo-commits

commit:     6b98ce9c54b443b18bd00f797deb512f361fd4d1
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  7 20:39:08 2016 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Thu Jan  7 20:39:46 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b98ce9c

www-client/chromium: dev channel bump (49.0.2612.0); use bundled re2 (bug #571156)

Package-Manager: portage-2.2.20.1

 www-client/chromium/Manifest                       |   1 +
 www-client/chromium/chromium-49.0.2612.0.ebuild    | 691 +++++++++++++++++++++
 .../files/chromium-snapshot-toolchain-r1.patch     |  23 +
 .../chromium/files/chromium-system-ffmpeg-r2.patch |  50 ++
 4 files changed, 765 insertions(+)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index d134ab0..2ecf8be 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,3 +3,4 @@ DIST chromium-48.0.2564.10.tar.xz 432060420 SHA256 1902d75d49d46c32a8c33f6de53c9
 DIST chromium-48.0.2564.23.tar.xz 1099898120 SHA256 e9a5eeaedb1975a93d37bc865d3122cf28b7e3a246c06ba19204edaefbce1266 SHA512 72b253f39b561e53c0ef2220402ae15e8d2cdd1af8eab4d5fa8480316919df9059dddf4f4c0d027f78fd0db924b7cbd23d29d406808d18fa047ccddffb6701b3 WHIRLPOOL c133e8e389b560efcc239e2f24bb3befd3fe8731bb2529aeee3f2ae04bf09e5d815ef805750c48dd549fb0b94c1ab77d94b03a0b8245cd537bdb204c79393761
 DIST chromium-48.0.2564.41.tar.xz 1470877528 SHA256 b265ecb945fcf27dd9d856e18632ea6fa4f88aed7ed32cb5eefb6515b6dc651a SHA512 5d91c603a99ac092c9cc1d1300c826d0eab62092a961dde8dd2c6bcbb342120ff97aa76231407227563fb65c0791c69274d044ab81e261b66cfce76811b428d5 WHIRLPOOL 584638131774053511974722973f28b75f99ceb8241948af91e3de247ccee631c8dbbedac9bfd66b4f5f505bcef194970c361f60a0c9cae7179ad6af0ea55c35
 DIST chromium-49.0.2587.3.tar.xz 1487544844 SHA256 425292b10e645f5b6812bb901e0905300969405d197d7936c9818f81be69b016 SHA512 5fb793385665256c9dddce1766cbce2335baf2744591f532baf720a7097a21451ff0d22c1734100874e984debd05a5e061a46b0d0571ac3804a9ad4a763cdb5c WHIRLPOOL a2f33b75239fa6748d82082ad86bb7e16971d3b01c36cb3f5f5a3e5087c2ef93bc7c1b4665215401ef05f5403adabf33dde3c5d3921626211c01b7e0607ae920
+DIST chromium-49.0.2612.0.tar.xz 1488847440 SHA256 3859c3b931de3fc5089c9f011624503bd864e24cea07fe630c346192c780de67 SHA512 655a12de47a0515e33fdcfe011df91727fb1b331d3d381663976172a72f22a736a1632aa08f24b6501415ea5b964948b79bc6fec6c3378c5f3f5d56549c11a0b WHIRLPOOL 024f9ae374cca711eee4331523fbec97fc66bda59e76595380ef4b32b0c9add34ba52a620389446892f1911f494e9cc437ea3bd9b1d0e3f89b36aca56d1c856c

diff --git a/www-client/chromium/chromium-49.0.2612.0.ebuild b/www-client/chromium/chromium-49.0.2612.0.ebuild
new file mode 100644
index 0000000..456785a
--- /dev/null
+++ b/www-client/chromium/chromium-49.0.2612.0.ebuild
@@ -0,0 +1,691 @@
+# 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 ~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:=
+		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="10G"
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		CHECKREQS_DISK_BUILD="30G"
+	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_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/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 = 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-snapshot-toolchain-r1.patch b/www-client/chromium/files/chromium-snapshot-toolchain-r1.patch
new file mode 100644
index 0000000..56f35b3
--- /dev/null
+++ b/www-client/chromium/files/chromium-snapshot-toolchain-r1.patch
@@ -0,0 +1,23 @@
+--- v8/snapshot_toolchain.gni.orig	2016-01-07 15:47:46.772435180 +0000
++++ v8/snapshot_toolchain.gni	2016-01-07 15:48:06.144841801 +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" || target_cpu == "arm64" || target_cpu == "mips64el") {
+-    snapshot_toolchain = "//build/toolchain/linux:clang_x64"
+-  } else {
+-    assert(false, "Need environment for this arch: $target_cpu")
+-  }
+-} else {
+-  snapshot_toolchain = default_toolchain
+-}
+-
+-
++snapshot_toolchain = default_toolchain

diff --git a/www-client/chromium/files/chromium-system-ffmpeg-r2.patch b/www-client/chromium/files/chromium-system-ffmpeg-r2.patch
new file mode 100644
index 0000000..8d67ef3
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r2.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
+@@ -1034,24 +1034,6 @@
+   // 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_t>(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_t>(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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2015-09-30 20:29 Paweł Hajdan
  0 siblings, 0 replies; 135+ messages in thread
From: Paweł Hajdan @ 2015-09-30 20:29 UTC (permalink / raw
  To: gentoo-commits

commit:     de743f65ee5c615cb4aa9b6118c2a9fe414eb484
Author:     Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 30 20:29:16 2015 +0000
Commit:     Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
CommitDate: Wed Sep 30 20:29:16 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de743f65

www-client/chromium: use system ffmpeg

This is based on patch by Andreas Cadhalpun
from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763632#29

Also dropping ~arm.

Package-Manager: portage-2.2.20.1

 www-client/chromium/chromium-47.0.2522.1-r1.ebuild | 627 +++++++++++++++++++++
 .../chromium/files/chromium-system-ffmpeg-r0.patch |  54 ++
 2 files changed, 681 insertions(+)

diff --git a/www-client/chromium/chromium-47.0.2522.1-r1.ebuild b/www-client/chromium/chromium-47.0.2522.1-r1.ebuild
new file mode 100644
index 0000000..c525ab0
--- /dev/null
+++ b/www-client/chromium/chromium-47.0.2522.1-r1.ebuild
@@ -0,0 +1,627 @@
+# 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 ~x86"
+IUSE="cups gnome gnome-keyring gtk3 hidpi hotwording kerberos neon pic pulseaudio selinux +tcmalloc widevine"
+
+# 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:= )
+	>=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-apps/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
+
+	# Remove most bundled libraries. Some are still needed.
+	build/linux/unbundle/remove_bundled_libraries.py \
+		'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/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/catapult/tracing/third_party/tvcm' \
+		'third_party/catapult/tracing/third_party/tvcm/third_party/rcssmin' \
+		'third_party/catapult/tracing/third_party/tvcm/third_party/rjsmin' \
+		'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/readability' \
+		'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=1
+		-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 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"
+
+	myconf+=" -Dproprietary_codecs=1"
+
+	# 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
+	elif [[ $myarch = x86 ]] ; then
+		target_arch=ia32
+	elif [[ $myarch = arm ]] ; then
+		target_arch=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
+
+	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/files/chromium-system-ffmpeg-r0.patch b/www-client/chromium/files/chromium-system-ffmpeg-r0.patch
new file mode 100644
index 0000000..667e0ec
--- /dev/null
+++ b/www-client/chromium/files/chromium-system-ffmpeg-r0.patch
@@ -0,0 +1,54 @@
+diff --git a/media/ffmpeg/ffmpeg_common.h b/media/ffmpeg/ffmpeg_common.h
+index 677bd76..23a21f8 100644
+--- a/media/ffmpeg/ffmpeg_common.h
++++ b/media/ffmpeg/ffmpeg_common.h
+@@ -19,20 +19,12 @@
+ 
+ // 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 the ffmpeg.gyp
+-// file or the headers below will generate different structures.
+-#define FF_API_PIX_FMT_DESC 0
+-#define FF_API_OLD_DECODE_AUDIO 0
+-#define FF_API_DESTRUCT_PACKET 0
+-#define FF_API_GET_BUFFER 0
+ 
+ // Temporarily disable possible loss of data warning.
+ // TODO(scherkus): fix and upstream the compiler warnings.
+ 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] 135+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
@ 2015-09-11 16:31 Mike Gilbert
  0 siblings, 0 replies; 135+ messages in thread
From: Mike Gilbert @ 2015-09-11 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     bc7b92e875db316b8b81055c21334dcd0dcbd16c
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 11 16:22:48 2015 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Sep 11 16:30:29 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc7b92e8

www-client/chromium: Restore widevine support in the dev channel (47)

This includes a minimal patch to get chromium to compile. The widevine
version is reported as "unknown" in chrome://plugins. A more robust
solution should really be implemented upstream.

Tested by viewing a video on Netflix.

Based on work by Greg Turner and Ari Entlich.

Closes #37.

Bug: https://bugs.gentoo.org/547630
Bug: https://crbug.com/473866

Package-Manager: portage-2.2.20

 www-client/chromium/chromium-47.0.2503.0.ebuild      | 10 +++++++---
 www-client/chromium/files/chromium-widevine-r1.patch | 14 ++++++++++++++
 www-client/chromium/metadata.xml                     |  1 +
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/chromium-47.0.2503.0.ebuild b/www-client/chromium/chromium-47.0.2503.0.ebuild
index a29ad86..346ae3a 100644
--- a/www-client/chromium/chromium-47.0.2503.0.ebuild
+++ b/www-client/chromium/chromium-47.0.2503.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD hotwording? ( no-source-code )"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~x86"
-IUSE="cups gnome gnome-keyring hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +tcmalloc"
+IUSE="cups gnome gnome-keyring hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +tcmalloc widevine"
 RESTRICT="proprietary-codecs? ( bindist )"
 
 # Native Client binaries are compiled with different set of flags, bug #452066.
@@ -100,7 +100,8 @@ RDEPEND+="
 	virtual/opengl
 	virtual/ttf-fonts
 	selinux? ( sec-policy/selinux-chromium )
-	tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )"
+	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.
@@ -190,6 +191,7 @@ src_prepare() {
 	# fi
 
 	epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
+	epatch "${FILESDIR}/chromium-widevine-r1.patch"
 
 	epatch_user
 
@@ -370,7 +372,8 @@ src_configure() {
 		$(gyp_use hotwording enable_hotwording)
 		$(gyp_use kerberos)
 		$(gyp_use pulseaudio)
-		$(gyp_use tcmalloc use_allocator tcmalloc none)"
+		$(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.
@@ -546,6 +549,7 @@ src_install() {
 	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

diff --git a/www-client/chromium/files/chromium-widevine-r1.patch b/www-client/chromium/files/chromium-widevine-r1.patch
new file mode 100644
index 0000000..f206878
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r1.patch
@@ -0,0 +1,14 @@
+Minimal patch to get chromium to compile with widevine support
+
+https://bugs.gentoo.org/show_bug.cgi?id=547630
+
+--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
+@@ -10,6 +10,7 @@
+ 
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+ 
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+ #define WIDEVINE_CDM_AVAILABLE
+ 
+ #endif  // WIDEVINE_CDM_VERSION_H_

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 1022e5d..86d5ae4 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -9,5 +9,6 @@
 		<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="tcmalloc">Use bundled tcmalloc instead of system malloc</flag>
+		<flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>
 	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 135+ messages in thread

end of thread, other threads:[~2024-08-08  2:14 UTC | newest]

Thread overview: 135+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-24 23:36 [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/ Paweł Hajdan
  -- strict thread matches above, loose matches on Subject: below --
2024-08-08  2:14 Matt Jolly
2024-08-01  8:40 Matt Jolly
2024-07-29 22:43 Matt Jolly
2024-04-11  9:27 Matt Jolly
2023-06-10  5:31 Sam James
2023-05-05 23:27 Mike Gilbert
2023-04-20 17:43 Mike Gilbert
2023-04-13 21:23 Mike Gilbert
2023-01-25 11:17 Stephan Hartmann
2023-01-18 17:29 Stephan Hartmann
2022-12-17 22:05 Stephan Hartmann
2022-10-09 11:48 Stephan Hartmann
2022-10-06  9:12 Stephan Hartmann
2022-09-22 18:17 Stephan Hartmann
2022-08-21 13:04 Stephan Hartmann
2022-06-28  6:53 Stephan Hartmann
2022-06-14 17:01 Stephan Hartmann
2022-06-05 13:13 Stephan Hartmann
2022-06-01 21:06 Stephan Hartmann
2022-04-13 12:42 Stephan Hartmann
2022-04-08 12:28 Stephan Hartmann
2022-04-05  8:15 Stephan Hartmann
2022-03-06  8:29 Stephan Hartmann
2022-03-06  7:59 Stephan Hartmann
2022-02-15 18:45 Stephan Hartmann
2022-01-15  8:48 Stephan Hartmann
2022-01-12 19:56 Stephan Hartmann
2021-12-07 21:20 Stephan Hartmann
2021-11-24  8:06 Stephan Hartmann
2021-10-10 11:16 Stephan Hartmann
2021-09-25  7:47 Stephan Hartmann
2021-09-18 11:15 Stephan Hartmann
2021-08-03 21:08 Stephan Hartmann
2021-06-26 15:45 Stephan Hartmann
2021-04-17 12:38 Stephan Hartmann
2021-03-05 21:34 Stephan Hartmann
2021-02-20 11:43 Stephan Hartmann
2021-02-10 12:13 Stephan Hartmann
2021-01-22  8:59 Stephan Hartmann
2021-01-21 11:28 Stephan Hartmann
2021-01-10 21:36 Stephan Hartmann
2020-12-03 19:26 Stephan Hartmann
2020-11-08 12:34 Stephan Hartmann
2020-10-08  6:21 Stephan Hartmann
2020-09-24 16:38 Stephan Hartmann
2020-07-18 13:37 Mike Gilbert
2020-06-29 20:55 Mike Gilbert
2020-06-28  2:21 Mike Gilbert
2020-06-01 17:34 Mike Gilbert
2020-05-12 19:08 Mike Gilbert
2020-05-01 15:32 Mike Gilbert
2020-05-01 15:31 Mike Gilbert
2020-04-04  3:15 Mike Gilbert
2020-03-24 13:48 Mike Gilbert
2020-02-27 16:22 Mike Gilbert
2020-02-16 17:16 Mike Gilbert
2020-01-23 20:58 Mike Gilbert
2019-11-22 20:09 Mike Gilbert
2019-10-27 14:40 Mike Gilbert
2019-10-20 16:26 Mike Gilbert
2019-10-15 20:38 Mike Gilbert
2019-10-08 17:50 Mike Gilbert
2019-10-01 20:19 Mike Gilbert
2019-09-29 21:24 Mike Gilbert
2019-09-25 16:20 Mike Gilbert
2019-09-15 22:51 Mike Gilbert
2019-08-23 14:08 Mike Gilbert
2019-08-15 15:02 Mike Gilbert
2019-08-13 15:19 Mike Gilbert
2019-07-17 14:39 Mike Gilbert
2019-07-03 17:44 Mike Gilbert
2019-06-25 14:58 Mike Gilbert
2019-06-16 23:35 Mike Gilbert
2019-06-15 17:48 Mike Gilbert
2019-05-28 20:45 Mike Gilbert
2019-05-28  4:01 Mike Gilbert
2019-04-18 21:35 Pacho Ramos
2019-03-17 20:51 Mike Gilbert
2019-02-15 20:57 Mike Gilbert
2019-02-10  6:29 Mike Gilbert
2018-12-28  2:40 Jason A. Donenfeld
2018-11-05  3:30 Mike Gilbert
2018-10-15  4:59 Mike Gilbert
2018-09-30 21:28 Mike Gilbert
2018-07-22  4:46 Mike Gilbert
2018-06-15 17:39 Mike Gilbert
2018-06-10  2:48 Mike Gilbert
2018-06-09 18:21 Mike Gilbert
2018-05-09 17:12 Mike Gilbert
2018-05-06 17:29 Mike Gilbert
2018-04-25 21:02 Mike Gilbert
2018-04-23 16:14 Mike Gilbert
2018-03-09 21:03 Mike Gilbert
2018-02-09 17:06 Mike Gilbert
2017-12-24 22:11 Mike Gilbert
2017-12-23 17:45 Mike Gilbert
2017-12-16 23:24 Mike Gilbert
2017-12-16 14:07 Mike Gilbert
2017-11-13 18:19 Mike Gilbert
2017-11-12 17:49 Mike Gilbert
2017-09-30 16:26 Paweł Hajdan
2017-09-20  9:38 Paweł Hajdan
2017-09-18 15:33 Paweł Hajdan
2017-09-07 12:44 Paweł Hajdan
2017-08-22 22:08 Paweł Hajdan
2017-08-19 11:17 Paweł Hajdan
2017-08-09 16:19 Paweł Hajdan
2017-08-09 14:04 Mike Gilbert
2017-07-19 19:04 Paweł Hajdan
2017-05-24  7:07 Paweł Hajdan
2017-05-05 18:27 Paweł Hajdan
2017-04-28 15:45 Paweł Hajdan
2017-04-08 17:22 Paweł Hajdan
2017-03-29 16:27 Paweł Hajdan
2017-03-14 22:34 Mike Gilbert
2017-03-08 15:33 Paweł Hajdan
2017-02-18 14:35 Paweł Hajdan
2016-12-23 21:24 Mike Gilbert
2016-12-11 18:01 Mike Gilbert
2016-11-08  5:47 Mike Gilbert
2016-10-24 17:18 Mike Gilbert
2016-09-29  1:50 Mike Gilbert
2016-09-26  1:13 Mike Gilbert
2016-09-15  3:44 Mike Gilbert
2016-09-09 22:40 Paweł Hajdan
2016-08-24 10:23 Paweł Hajdan
2016-08-20 11:50 Paweł Hajdan
2016-08-10 20:33 Paweł Hajdan
2016-06-29 20:19 Paweł Hajdan
2016-06-02 20:14 Paweł Hajdan
2016-04-20 20:06 Paweł Hajdan
2016-01-07 20:39 Paweł Hajdan
2015-09-30 20:29 Paweł Hajdan
2015-09-11 16:31 Mike Gilbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox