www-client/chromium: sync with upstream

This commit is contained in:
github-actions[bot] 2024-07-19 02:18:05 +00:00 committed by GitHub
parent 13a1291ea6
commit 98dfb681ef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 227 additions and 132 deletions

View file

@ -1,9 +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.26.tar.xz 6590894364 BLAKE2B 1806ba0d75aca8c9a6d491ff14401364d5429ad5fb2c3c605d2c7694492782007e5b584bf543f59fdc7732589871bf307503c9928b2da57121b54269cd0f6c30 SHA512 4a3a08ed6b3a0ba40597c99bf520112a92d2c92171ac8f3c13356b5ce7bfd6ba91473b69d4216b23757ac2ffc267aa34d18e77d21a6bbaabfe10c674ec791ace
DIST chromium-127.0.6533.43.tar.xz 6598802356 BLAKE2B eab679025fd4764e7e3eb6ed0b32e0e3c106848626d7477c02a9a1201eb5add64614864366bdecf9d7b0a9fe62b9df621d4d6cb8762f7f7e85d7725ae2eed5bf SHA512 138e709105f6b7328c5029e6c5e5d9f0cf9611561bb6631605eb79051f3ef8be6dd0c2fb50ab2a89c7b1b5a869dcfb69bbc37ec56f4239039e32a8ada72be172
DIST chromium-patches-126.tar.bz2 4538 BLAKE2B c1f224015618ec908ef09d0c04a2243923371e2caeccd60d93747599fd1434b284291a5b4326008db21749cf78827d5a4b50d22fc805dcd3c1fd86303dc82729 SHA512 6692075adac0379b5f27d1023de1a051cf7f7f7138efd32dfc3af0d501b714142a16daf18022bb46d92218587f364f4dafe9f4aea24f6826e88b0e7cc2be7d0b
DIST chromium-patches-127.tar.bz2 4545 BLAKE2B cd0221e74a886ad3fc598e92876021b847a92a587ddc66774357ccf06bdd14e23f8bfede9bbe6fd154af8cea570bfa6ee27a2ff393883bd314a7d1326c7260f5 SHA512 938926ecd406d96662a6ed6e9fab9efab156f5691e98c044c75c4d335075f61e80eae2cf3be9b626c01d3542c1785dd0fc63ac31e5cbf1555a8eca3c6aed8c56
@ -11,3 +11,4 @@ DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b2
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

View file

@ -3,6 +3,9 @@
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
@ -11,6 +14,14 @@ EAPI=8
# 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.
@ -23,11 +34,26 @@ EAPI=8
# 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
RUST_MIN_VER=1.78.0
# 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-10646-g084e2b53-57
GOOGLE_RUST_VER=32dd3795bce8b347fda786529cf5e42a813e0b7d-2
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}
@ -37,18 +63,12 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
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 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="124.0.6367.207-1raptor0~deb12u1"
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? (
@ -57,7 +77,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
!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
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? (
@ -67,19 +87,19 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
LICENSE="BSD"
SLOT="0/beta"
SLOT="0/stable"
KEYWORDS="~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="+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 ) )
official? ( lto )
pgo? ( X !wayland )
qt6? ( qt5 )
screencast? ( wayland )
!system-toolchain? ( libcxx )
ffmpeg-chromium? ( bindist proprietary-codecs )
"
@ -180,6 +200,34 @@ DEPEND="${COMMON_DEPEND}
)
"
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}
@ -192,18 +240,14 @@ BDEPEND="
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] )
')
libcxx? ( >=sys-devel/clang-${LLVM_MIN_SLOT} )
lto? ( $(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT}) )
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
$(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT})
)
dev-util/bindgen
>=virtual/rust-${RUST_MIN_VER}[profiler(-)]
)
>=dev-build/gn-${GN_MIN_VER}
dev-build/ninja
@ -216,6 +260,17 @@ BDEPEND="
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
@ -253,6 +308,30 @@ 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,
@ -295,31 +374,34 @@ pkg_pretend() {
}
pkg_setup() {
ewarn "PATH = ${PATH}"
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
pre_build_checks
if use system-toolchain; then
# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
# We'll set these to clang here then let llvm-r1_pkg_setup reconfigure them to be
# specific to the selected slot.
# 935689 - call llvm-r1_pkg_setup once to make sure that PATH is set then again
# to make sure that CC and friends get updated appropriately.
llvm-r1_pkg_setup
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
CC=${CHOST}-clang
CXX=${CHOST}-clang++
if tc-is-cross-compiler; then
use pgo && die "The pgo USE flag cannot be used when cross-compiling"
CPP="${CBUILD}-clang++ -E"
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
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
@ -330,30 +412,6 @@ pkg_setup() {
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
@ -364,20 +422,13 @@ src_prepare() {
"chrome/browser/media/router/media_router_feature.cc" || die
local PATCHES=(
"${FILESDIR}/chromium-cross-compile.patch"
"${FILESDIR}/chromium-109-system-zlib.patch"
"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
"${FILESDIR}/chromium-125-system-zstd.patch"
"${FILESDIR}/chromium-126-oauth2-client-switches.patch"
"${FILESDIR}/chromium-127-browser-ui-deps.patch"
"${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch"
"${FILESDIR}/chromium-cross-compile.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 widevine; then
PATCHES+=("${FILESDIR}/chromium-001-widevine-support-for-arm.patch")
fi
@ -413,7 +464,7 @@ src_prepare() {
default
rm third_party/node/linux/node-linux-x64/bin/node || 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
# adjust python interpreter version
@ -426,6 +477,7 @@ src_prepare() {
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
@ -444,8 +496,8 @@ src_prepare() {
third_party/anonymous_tokens
third_party/apple_apsl
third_party/axe-core
third_party/bidimapper
third_party/blink
third_party/bidimapper
third_party/boringssl
third_party/boringssl/src/third_party/fiat
third_party/breakpad
@ -470,7 +522,6 @@ src_prepare() {
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
@ -502,7 +553,6 @@ src_prepare() {
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
@ -517,12 +567,15 @@ src_prepare() {
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/highway
third_party/hunspell
third_party/iccjpeg
third_party/inspector_protocol
@ -540,7 +593,6 @@ src_prepare() {
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
@ -549,7 +601,6 @@ src_prepare() {
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
@ -558,12 +609,13 @@ src_prepare() {
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/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
@ -590,12 +642,11 @@ src_prepare() {
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/private_membership
third_party/protobuf
third_party/pthreadpool
third_party/puffin
@ -605,7 +656,6 @@ src_prepare() {
third_party/re2
third_party/rnnoise
third_party/rust
third_party/ruy
third_party/s2cellid
third_party/securemessage
third_party/selenium-atoms
@ -613,22 +663,19 @@ src_prepare() {
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/subzero
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
@ -636,6 +683,8 @@ src_prepare() {
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
@ -657,12 +706,12 @@ src_prepare() {
third_party/x11proto
third_party/xcbproto
third_party/xnnpack
third_party/zlib/google
third_party/zxcvbn-cpp
third_party/zlib/google
url/third_party/mozilla
v8/src/third_party/siphash
v8/src/third_party/utf8-decoder
v8/src/third_party/valgrind
v8/src/third_party/utf8-decoder
v8/third_party/glibc
v8/third_party/inspector_protocol
v8/third_party/v8
@ -690,6 +739,10 @@ src_prepare() {
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
@ -744,27 +797,54 @@ chromium_configure() {
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"
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
@ -787,17 +867,6 @@ chromium_configure() {
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
@ -896,13 +965,20 @@ chromium_configure() {
# 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"
# 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"
# 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"
@ -950,6 +1026,13 @@ chromium_configure() {
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
@ -965,7 +1048,11 @@ chromium_configure() {
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"
@ -987,12 +1074,13 @@ chromium_configure() {
# 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
# 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.
@ -1061,7 +1149,7 @@ chromium_configure() {
# 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
# 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"
@ -1077,6 +1165,12 @@ chromium_configure() {
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"