www-client/chromium: sync with upstream

This commit is contained in:
github-actions[bot] 2024-07-08 00:03:02 +00:00 committed by GitHub
parent be139f37b6
commit 0813e7439e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 303 additions and 1684 deletions

View file

@ -1,11 +1,12 @@
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.114.tar.xz 4167281776 BLAKE2B 4ca720b0280dc6f0aafb5da5d31f97d8d55faec9ac187fc7f3e16e447d147a6912b2b8f26247503390755146e42b32458e4c71a80e6a132cc456f414454ecf53 SHA512 49ca506eb7ac52cdfb5b491bff10deec46d62686feeb3392803eecd61a570ce6c9e6c97d61c79907aaaee39b6d32a4da399c92b8078dbdf2df097f37c757d286
DIST chromium-126.0.6478.126.tar.xz 4166142564 BLAKE2B 4c709c3a02a01f6bef46309b4a2f3d8cd688007e6b69152a5119a098c98aa272e10ea1ebf418c75387d08e1b9dde75ad53eabc12cf860b288e732c9b974e6066 SHA512 4a86edb82ec530299f8298b7604a18efb5ccf6a6cde37950d7821a73b005b9e83805a0b7f36f2fa5b4f71e237bf70ec628c1864e4f81caa4333a5dc904fb3aab
DIST chromium-126.0.6478.57.tar.xz 4162722444 BLAKE2B cc41d74916a81a1162aad8ae785e08423ca1c4a49b7b8cdfe0873efab3b67e90da4e240c8c564c77cb67466af6d7c6a61ca3acfa8aae227838060565c0fbb3a5 SHA512 e350cf34ddc7c010e6f2d87c3f8dbaa17f5dd448b10f07b6dd319e494f7d70c6caf3ef7e676de33ee1e05d602edfbae9bcf3807887ae74c32bc49a6db7aa79a7
DIST chromium-127-clang.tar.xz 50869256 BLAKE2B a25c78c28e1a19bb251ce78831ff8aeea51f0ff0a3fcba4f57e14e676aadba38f248554a52d9f67da8c0ccf533ef9f60b4bbb26f8935914efa2b871444e61d8f SHA512 9033c2dd7dd217917caf3dbed52f72ded18fe81b431edd4ef82fe7c592f7b9fbf6d5d2c8f7ba4ebffb4994bef20579d30aea9dd1ad36db86bec5d0adb6eca062
DIST chromium-127-rust.tar.xz 151082700 BLAKE2B 53b5e72724425ae97bbb22e128ca5e826a2db5fb49f615c5331cdf6d790c253d58061223ff9fbd7f4deecaa19668e7b905b0a661380f48ce74d7f66a9605be18 SHA512 a47fc0bdbf48da9c8c17c91d9dc1a4a3f09578e82199c0d5843dfb6188803161cdb98d065ee3f85ceaf78efd2c233397c325c4c9f2d19255f38734a81599404b
DIST chromium-127.0.6533.26.tar.xz 6590894364 BLAKE2B 1806ba0d75aca8c9a6d491ff14401364d5429ad5fb2c3c605d2c7694492782007e5b584bf543f59fdc7732589871bf307503c9928b2da57121b54269cd0f6c30 SHA512 4a3a08ed6b3a0ba40597c99bf520112a92d2c92171ac8f3c13356b5ce7bfd6ba91473b69d4216b23757ac2ffc267aa34d18e77d21a6bbaabfe10c674ec791ace
DIST chromium-patches-126.tar.bz2 4538 BLAKE2B c1f224015618ec908ef09d0c04a2243923371e2caeccd60d93747599fd1434b284291a5b4326008db21749cf78827d5a4b50d22fc805dcd3c1fd86303dc82729 SHA512 6692075adac0379b5f27d1023de1a051cf7f7f7138efd32dfc3af0d501b714142a16daf18022bb46d92218587f364f4dafe9f4aea24f6826e88b0e7cc2be7d0b
DIST chromium-patches-127.tar.bz2 4545 BLAKE2B cd0221e74a886ad3fc598e92876021b847a92a587ddc66774357ccf06bdd14e23f8bfede9bbe6fd154af8cea570bfa6ee27a2ff393883bd314a7d1326c7260f5 SHA512 938926ecd406d96662a6ed6e9fab9efab156f5691e98c044c75c4d335075f61e80eae2cf3be9b626c01d3542c1785dd0fc63ac31e5cbf1555a8eca3c6aed8c56
DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
DIST chromium_124.0.6367.207-1raptor0~deb12u1.debian.tar.xz 587248 BLAKE2B 4c5a12b3e70be85b31d60d35d160281cbf8b93422169243f743fff25805bc7006ffeed5f95b415fb49e9cf4c3bf2c0a2d5ed10642d8f772df24cab1fe738125a SHA512 025ac185f27c66438a5eaf482120fded42d37403706fd012fbde1b6acf5c2e360bb2fb7723183d4883f66f36afe10167a2d919cde11735186a1a87b28ffaf9c6
DIST chromium_126.0.6478.114-1raptor0~deb12u1.debian.tar.xz 613488 BLAKE2B ecdf33e0ced01d540b7f1e599df6655055afd8f72b22a92c600205d1b02176be76140a5bfa550e62e4a0e4f03c68992eb480d9ba4a256b3f8b48b525a8ce7400 SHA512 53ea7f89dac5c42ca991f40f2a5515393cb74334a27df72b944552d5a557f6c53b0dac9c89cfb99918fd502396bc80a677a87533f48552af9f7fd440b7b8b2cc
DIST chromium_126.0.6478.56-1raptor0~deb12u2.debian.tar.xz 613448 BLAKE2B 35af65461a5132ac7a28e004f3b8a5e1afc10924726154dd47a23371ebe5508765e0bfd3c1b1d56ff5671039b522536fa21ec22dcb9f14426929a5905976e8a0 SHA512 870b864620e48e6aefa2b36026553b06dde0afc8e8de6cbaf0e4db2333d02164a95fa5f243066e026aa3dff4b3a7366853f49c02f607dec36cec77e4b4683736

File diff suppressed because it is too large Load diff

View file

@ -3,9 +3,6 @@
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
@ -14,14 +11,6 @@ PYTHON_REQ_USE="xml(+)"
# 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.
@ -34,26 +23,11 @@ PYTHON_REQ_USE="xml(+)"
# 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
RUST_MIN_VER=1.78.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}
GOOGLE_CLANG_VER=llvmorg-19-init-10646-g084e2b53-57
GOOGLE_RUST_VER=32dd3795bce8b347fda786529cf5e42a813e0b7d-2
: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
@ -63,7 +37,13 @@ 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"
inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils
# 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"
@ -77,7 +57,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? (
@ -87,19 +67,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/stable"
KEYWORDS="arm64"
SLOT="0/beta"
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 libcxx +lto +official pax-kernel pgo +proprietary-codecs pulseaudio"
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 )
!system-toolchain? ( libcxx )
ffmpeg-chromium? ( bindist proprietary-codecs )
"
@ -200,34 +180,6 @@ 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}
@ -240,14 +192,18 @@ BDEPEND="
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}) )
$(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
$(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT})
)
>=virtual/rust-${RUST_MIN_VER}[profiler(-)]
dev-util/bindgen
)
>=dev-build/gn-${GN_MIN_VER}
dev-build/ninja
@ -260,17 +216,6 @@ 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
@ -308,30 +253,6 @@ 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,
@ -374,34 +295,31 @@ 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
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
# 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
@ -412,6 +330,30 @@ 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
@ -422,13 +364,20 @@ 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-cross-compile.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 widevine; then
PATCHES+=("${FILESDIR}/chromium-001-widevine-support-for-arm.patch")
fi
@ -464,7 +413,7 @@ src_prepare() {
default
mkdir -p third_party/node/linux/node-linux-x64/bin || die
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
@ -477,7 +426,6 @@ 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
@ -496,8 +444,8 @@ src_prepare() {
third_party/anonymous_tokens
third_party/apple_apsl
third_party/axe-core
third_party/blink
third_party/bidimapper
third_party/blink
third_party/boringssl
third_party/boringssl/src/third_party/fiat
third_party/breakpad
@ -522,6 +470,7 @@ 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
@ -553,6 +502,7 @@ 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
@ -567,15 +517,12 @@ 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
@ -593,6 +540,7 @@ 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
@ -601,6 +549,7 @@ 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
@ -609,13 +558,12 @@ 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
@ -642,11 +590,12 @@ 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-join-and-compute
third_party/private_membership
third_party/private-join-and-compute
third_party/protobuf
third_party/pthreadpool
third_party/puffin
@ -656,6 +605,7 @@ src_prepare() {
third_party/re2
third_party/rnnoise
third_party/rust
third_party/ruy
third_party/s2cellid
third_party/securemessage
third_party/selenium-atoms
@ -663,19 +613,22 @@ 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
@ -683,8 +636,6 @@ 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
@ -706,12 +657,12 @@ src_prepare() {
third_party/x11proto
third_party/xcbproto
third_party/xnnpack
third_party/zxcvbn-cpp
third_party/zlib/google
third_party/zxcvbn-cpp
url/third_party/mozilla
v8/src/third_party/siphash
v8/src/third_party/valgrind
v8/src/third_party/utf8-decoder
v8/src/third_party/valgrind
v8/third_party/glibc
v8/third_party/inspector_protocol
v8/third_party/v8
@ -739,10 +690,6 @@ 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
@ -797,54 +744,27 @@ chromium_configure() {
local myconf_gn=""
if use system-toolchain && [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == no ]]; then
# 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
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
@ -867,6 +787,17 @@ 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
@ -965,20 +896,13 @@ 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"
# 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
# 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"
@ -1026,13 +950,6 @@ 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
@ -1048,11 +965,7 @@ 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"
@ -1074,13 +987,12 @@ chromium_configure() {
# 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
# 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
fi
# Explicitly disable ICU data file support for system-icu/headless builds.
@ -1149,7 +1061,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
# Disable CFI: unsupported for GCC, requires clang+lto+lld
# 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"
@ -1165,12 +1077,6 @@ 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"

View file

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

View file

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