www-client/chromium: sync with upstream
This commit is contained in:
parent
0bb8216073
commit
86326f64ae
7 changed files with 218 additions and 1509 deletions
|
@ -4,14 +4,16 @@ DIST chromium-128.0.6613.137.tar.xz 6724182764 BLAKE2B 9f4d77b058af1619a4a13beac
|
|||
DIST chromium-129-clang.tar.xz 52250752 BLAKE2B c7223a1f4a9f52eb631b968ecaea528d19aa14ded23e03e530ad6c46e7e1579a7a010cb347489f1b963013b4f26358be94aeff0f98b5eceb7b1f1e49e8acdfd3 SHA512 43681d64d4480e3f69afd3021037af6910e9c64052edefdb72e99b0a85cd94c4a8eb4095188784d7fa7f52fae10a9bd9db53f2bb80e89f709f92af7ce6403976
|
||||
DIST chromium-129-rust.tar.xz 152042272 BLAKE2B acde4dc9c0fe232d16f07f3e4b719ea762627e234970866e0de56ec3959c4cd0a7b1b09cf5ccecd50efd1cc35dcf224be3b398c1ea19a79731d6db13c94fa7a9 SHA512 bef8e56cf73de5cefd5fe0bb9836ef65012406ff3d364d36624d30e7b5cdb2634d17ac9e49a60ccb0ac5dd57cf4311b587c5ff0cec26b2fc6e15274abe0dc85b
|
||||
DIST chromium-129.0.6668.100.tar.xz 6677334468 BLAKE2B b68896322673762ce49ac18dcd731011516f3eff3e98561bcfc2404fea7e5bf8c39fa8c5b19e0dc26f188ec8787ba2b729580024a0ca205c891eaf48a4a0e134 SHA512 366be6dbde59e979186174525431d4823449e0c031bb4dc290f747c7525de44f3e2c821a0c4cd1bbb47ae3bee9fa24efdaa465d8d883791f6c63f20760a4fb48
|
||||
DIST chromium-129.0.6668.70.tar.xz 6668765016 BLAKE2B a5abb239390d63aa234f4fc046fe7aea38dffd0ef61ae7b3ab61e82e804c1421e0668a7e76faad4461f04a97f00998eea077a552a9a729556ca70d41625f769c SHA512 b0014f9d0021238bc76d9dff92e9f10f04ba0521805ce82291ee2fb1680e4cdbbcfd74df56411b57f0efd46e0fba397a92c9ea95e2b60ec3450c495184743268
|
||||
DIST chromium-129.0.6668.89.tar.xz 6673929928 BLAKE2B eea776a58c8fa4a9cd43f308e710055a925acaa55a76a6d89af6673cbac07113544f1affe219767f53be1f23a8d88b864fde1885e42ac9e8b4751439aef0ce47 SHA512 d49a00e2d76236e591af5db6ad4f0e1a8e13bc6f5001f5837b1c2f158f9c7f5814ca713ed3ad8fdc1edc10f9e156593b0974aa14002964a5ab337b0791d0ef3c
|
||||
DIST chromium-130-clang.tar.xz 52892060 BLAKE2B 7d2619ab3762569fb77bce8ff19056caa07b430e3ed830fdc4a6445611771ee30fd5e7c8bf90c994d5cacc57f516974b0c1c6d973cba52aae0d7fc6de0bde26c SHA512 3c1c4c771e6aa3a15395c16e899729b751cb9cecb27b77a11ccaf079b6a913ac2d5176a3c628d2270653f3d6c66f3d136304d9957dbf18b6632b787c6102e784
|
||||
DIST chromium-130-rust.tar.xz 115068636 BLAKE2B 7d2ed89372fce24de7432e62100767e3559c53733446bab003c80cc97d5a38168df0ff662f7e896548fecc9bc919b85b63001eb40e4fa1fbb63fb34545513d67 SHA512 9a310a65f61ea455cbcabf58fc4104b8c2a89f1c40f6b45b2105b701255d7f786ec950d76c99f3b8b77d3dd07262cc22cd30a78497a460aad689971129b9970d
|
||||
DIST chromium-130.0.6723.31.tar.xz 6603542588 BLAKE2B 1ae06108070a8aa389260903f864eaba19825ab8a7ba13c74e9a3e3dbbc634b81996b1f8253900fa59e666d5c2dc93496ce82d73a95471518afdf2c5f8020c66 SHA512 dead20ba072de356e0f838920e85f4f22fc7d3b872d748c865d11f6a43ce9b4c9650cda5535232c63ffbe27716adcb971447ff55d1d4d39e8cd01589b4e4ac53
|
||||
DIST chromium-130.0.6723.44.tar.xz 6606219548 BLAKE2B 26abfc352c11519f70537ddc1a395dfe0e51e6838e3f6c078fcffe8e6cdb638bea588a3eaf7666c115507c59d59d176704afaa4a3ea9d64f5116308e3c4b3bfc SHA512 a32575aa4166a8b5750724b60180f1b0a96ca0a0963766db7268d34516d4919438d5302f36d9d8221685579df8df7c989f94821d714fb9a6596c61c3c264db77
|
||||
DIST chromium-131-clang.tar.xz 52892060 BLAKE2B 7d2619ab3762569fb77bce8ff19056caa07b430e3ed830fdc4a6445611771ee30fd5e7c8bf90c994d5cacc57f516974b0c1c6d973cba52aae0d7fc6de0bde26c SHA512 3c1c4c771e6aa3a15395c16e899729b751cb9cecb27b77a11ccaf079b6a913ac2d5176a3c628d2270653f3d6c66f3d136304d9957dbf18b6632b787c6102e784
|
||||
DIST chromium-131-rust.tar.xz 115068636 BLAKE2B 7d2ed89372fce24de7432e62100767e3559c53733446bab003c80cc97d5a38168df0ff662f7e896548fecc9bc919b85b63001eb40e4fa1fbb63fb34545513d67 SHA512 9a310a65f61ea455cbcabf58fc4104b8c2a89f1c40f6b45b2105b701255d7f786ec950d76c99f3b8b77d3dd07262cc22cd30a78497a460aad689971129b9970d
|
||||
DIST chromium-131.0.6753.0.tar.xz 6639635464 BLAKE2B a87035be45d530e8b84eb19fc90d0f6aab95920a95b8e5bac88fa6558a2e1b8cc15691ba868b5345168ea0480f2b4f1a08ae1dd9c8b88ab3035d721897f21e2e SHA512 20fcdaa63e57b59575c858e51fad87ef21a0d76fcb7261e46c506329e4847e9fdb935e9b9d93d3d1d67f784a894f2bc817465a730a8483dfba02f142787018f3
|
||||
DIST chromium-patches-128.tar.bz2 5087 BLAKE2B b0321fb45390a282afeeeb8fb4d6014d6e6b708e6851235e0897ac77d524160b4d33476aa70532df45d0ccf233fee3b4028cd4d845667dc6a2a46ecebfeb6752 SHA512 978908d27dc6fc620209486a9ad7f73babde8710728960f44f2680445276516e59a85c08656af2663d9e197df45874f24a1f19f14a21798fbcf7c5a10bb19371
|
||||
DIST chromium-patches-129.tar.bz2 5071 BLAKE2B 080e1af8b0560a3c5365674e7c8d592310bbd2e273311b775b8112e410d91ccd48f170adbcf77cff566ad32de196217410663ac7b9e7e65544b6730fb1890aca SHA512 0a5bbc07dc9085b07332d5c6dd74940a9d55c4d0677f5603e75763ba54156f43664839d438f350bc86f3efc85aae452476e7f7040e06e60727847b156d1f0ab9
|
||||
DIST chromium-patches-130.tar.bz2 5658 BLAKE2B a940ee50634beee965bea45f6604b59e8d20a6c99b8e374be3debbd35ae08b34e035649367d171d56ca951a54102648c91d2189ca88a4495b16b1c96534fea46 SHA512 9f77eefdc7a65ce5e20a322cd5b17d6bb5ffc2d66fd83d73d5191f8c932f723cb905df8f3d04ed3d5fbab726b7bca38c7b5645cac37f7454eb9a3a2f4ef9a53b
|
||||
DIST chromium-patches-131-1.tar.bz2 4932 BLAKE2B 72006a6d751ae1207352547cdeef87f8cc9f9639283238da201d879c6fcd0f8bc499669cb030d8b4c2216fcd2730de46b0a071007b3d69a2bbdd22ba38bcd279 SHA512 11d7f861c007e9e28e5192fb354940180aea0e01e6e8ae77547e2dffd7b541b11f1acfe0fd0c8b6b4cbfc6c39ddfa79c8c08db42c1292ad329d49027d1406fc3
|
||||
DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
|
||||
DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
|
||||
DIST chromium_128.0.6613.119-1raptor0~deb12u1.debian.tar.xz 8673272 BLAKE2B 0ae1ead2b8d0ce196d5d16e132194da12d3dde3b43c270f794630c3427d38aaac6c6a289ac64b4748354e9d4d20ae8597076b64a4b7a7e1225c66a9f86e9f7ff SHA512 c896f8f07aa44cd6950375b36fe89fc2780ff9867e01feab71100c8551b22d3c89c5ba9e80cffbad22ff8575d20fc782b70969a51c68384fd8de62a09c4ffdcf
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -70,7 +70,13 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
|
|||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/beta"
|
||||
# Dev exists mostly to give devs some breathing room for beta/stable releases; it shouldn't be keyworded but adventurous users can select it.
|
||||
if [[ ${SLOT} == "0/dev" ]]; then
|
||||
KEYWORDS="~arm64"
|
||||
else
|
||||
KEYWORDS="~arm64"
|
||||
fi
|
||||
|
||||
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
|
||||
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
|
||||
IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine"
|
||||
|
@ -827,8 +833,34 @@ src_prepare() {
|
|||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
einfo "Unbundling third-party libraries ..."
|
||||
# Sanity check keeplibs, on major version bumps it is often necessary to update this list
|
||||
# and this enables us to hit them all at once.
|
||||
# there are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
|
||||
whitelist_libs=(
|
||||
net/third_party/quic
|
||||
third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
|
||||
third_party/libjingle
|
||||
third_party/mesa
|
||||
third_party/skia/third_party/vulkan
|
||||
third_party/vulkan
|
||||
)
|
||||
local not_found_libs=()
|
||||
for lib in "${keeplibs[@]}"; do
|
||||
if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
|
||||
not_found_libs+=( "${lib}" )
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#not_found_libs[@]} -gt 0 ]]; then
|
||||
eerror "The following \`keeplibs\` directories were not found in the source tree:"
|
||||
for lib in "${not_found_libs[@]}"; do
|
||||
eerror " ${lib}"
|
||||
done
|
||||
die "Please update the ebuild."
|
||||
fi
|
||||
|
||||
# Remove most bundled libraries. Some are still needed.
|
||||
einfo "Unbundling third-party libraries ..."
|
||||
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
|
||||
|
||||
# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
|
|
@ -24,11 +24,12 @@ 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.
|
||||
|
||||
GN_MIN_VER=0.2165
|
||||
GN_MIN_VER=0.2200
|
||||
RUST_MIN_VER=1.78.0
|
||||
# chromium-tools/get-chromium-toolchain-strings.sh
|
||||
GOOGLE_CLANG_VER=llvmorg-20-init-1009-g7088a5ed-10
|
||||
GOOGLE_RUST_VER=595316b4006932405a63862d8fe65f71a6356293-5
|
||||
GOOGLE_CLANG_VER=llvmorg-20-init-3847-g69c43468-28
|
||||
# Upstream this is -3 but google haven't published the chromium-dev rust toolchain.
|
||||
GOOGLE_RUST_VER=009e73825af0e59ad4fc603562e038b3dbd6593a-2
|
||||
|
||||
: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
|
||||
|
||||
|
@ -41,7 +42,7 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
|
|||
# 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} )
|
||||
LLVM_COMPAT=( 17 18 )
|
||||
PYTHON_COMPAT=( python3_{11..13} )
|
||||
PYTHON_REQ_USE="xml(+)"
|
||||
|
||||
|
@ -51,7 +52,7 @@ inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtu
|
|||
DESCRIPTION="Open-source version of Google Chrome web browser"
|
||||
HOMEPAGE="https://www.chromium.org/"
|
||||
PATCHSET_PPC64="128.0.6613.84-1raptor0~deb12u1"
|
||||
PATCH_V="${PV%%\.*}"
|
||||
PATCH_V="${PV%%\.*}-1"
|
||||
SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
|
||||
system-toolchain? (
|
||||
https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
|
||||
|
@ -69,8 +70,14 @@ 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/dev"
|
||||
# Dev exists mostly to give devs some breathing room for beta/stable releases; it shouldn't be keyworded but adventurous users can select it.
|
||||
if [[ ${SLOT} == "0/dev" ]]; then
|
||||
KEYWORDS="~arm64"
|
||||
else
|
||||
KEYWORDS="~arm64"
|
||||
fi
|
||||
|
||||
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
|
||||
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
|
||||
IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine"
|
||||
|
@ -367,10 +374,21 @@ pkg_setup() {
|
|||
# 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 "It is _highly_ recommended that LTO be enabled for performance and security reasons,"
|
||||
einfo "and to be consistent with the upstream \"official\" build optimisations."
|
||||
fi
|
||||
|
||||
use_lto="false"
|
||||
if tc-is-lto; then
|
||||
use_lto="true"
|
||||
# We can rely on GN to do this for us; anecdotally without this builds
|
||||
# take significantly longer with LTO enabled and it doesn't hurt anything.
|
||||
# TODO: compare build time, memory and disk usage on several builds.
|
||||
filter-lto
|
||||
fi
|
||||
|
||||
export use_lto
|
||||
|
||||
# 936858
|
||||
if tc-ld-is-mold; then
|
||||
eerror "Your toolchain is using the mold linker."
|
||||
|
@ -409,19 +427,24 @@ pkg_setup() {
|
|||
|
||||
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"
|
||||
eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
|
||||
eerror "The currently selected version is ${rustc_ver}"
|
||||
eerror "Please run \`eselect rust\` and select an appropriate Rust."
|
||||
die "Selected Rust version is too old"
|
||||
else
|
||||
einfo "Using rust ${rustc_ver} to build"
|
||||
einfo "Using Rust ${rustc_ver} to build"
|
||||
fi
|
||||
|
||||
# I hate doing this but upstream Rust have yet to come up with a better solution for
|
||||
# us poor packagers. Required for Split LTO units, which are required for CFI.
|
||||
export RUSTC_BOOTSTRAP=1
|
||||
|
||||
# Chromium requires the Rust profiler library while setting up its build environment.
|
||||
# Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
|
||||
# we'll just do a sanity check on the selected slot.
|
||||
# The -bin always contains profiler support, so we only need to check for the non-bin version.
|
||||
if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
|
||||
local arch=$(uname -m)
|
||||
local rust_lib_path="${EPREFIX}/usr/lib/rust/${rustc_ver}/lib/rustlib/${arch}-unknown-linux-gnu/lib"
|
||||
local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
|
||||
local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
|
||||
if [[ -z "${profiler_lib}" ]]; then
|
||||
eerror "Rust ${rustc_ver} is missing the profiler library."
|
||||
|
@ -477,8 +500,10 @@ src_prepare() {
|
|||
"${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-bindgen-custom-toolchain.patch"
|
||||
"${FILESDIR}/chromium-131-unbundle-icu-target.patch"
|
||||
"${FILESDIR}/chromium-131-oauth2-client-switches.patch"
|
||||
"${FILESDIR}/chromium-131-const-atomicstring-conversion.patch"
|
||||
)
|
||||
|
||||
if use widevine; then
|
||||
|
@ -535,7 +560,6 @@ src_prepare() {
|
|||
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
|
||||
|
@ -600,12 +624,12 @@ src_prepare() {
|
|||
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/parsel-js
|
||||
third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
|
||||
third_party/devtools-frontend/src/front_end/third_party/third-party-web
|
||||
third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
|
||||
third_party/devtools-frontend/src/front_end/third_party/wasmparser
|
||||
third_party/devtools-frontend/src/front_end/third_party/web-vitals
|
||||
|
@ -615,6 +639,7 @@ src_prepare() {
|
|||
third_party/eigen3
|
||||
third_party/emoji-segmenter
|
||||
third_party/farmhash
|
||||
third_party/fast_float
|
||||
third_party/fdlibm
|
||||
third_party/ffmpeg
|
||||
third_party/fft2d
|
||||
|
@ -631,6 +656,16 @@ src_prepare() {
|
|||
third_party/highway
|
||||
third_party/hunspell
|
||||
third_party/iccjpeg
|
||||
third_party/ink_stroke_modeler/src/ink_stroke_modeler
|
||||
third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal
|
||||
third_party/ink/src/ink/brush
|
||||
third_party/ink/src/ink/color
|
||||
third_party/ink/src/ink/geometry
|
||||
third_party/ink/src/ink/rendering/skia/common_internal
|
||||
third_party/ink/src/ink/rendering/skia/native
|
||||
third_party/ink/src/ink/rendering/skia/native/internal
|
||||
third_party/ink/src/ink/strokes
|
||||
third_party/ink/src/ink/types
|
||||
third_party/inspector_protocol
|
||||
third_party/ipcz
|
||||
third_party/jinja2
|
||||
|
@ -741,8 +776,8 @@ src_prepare() {
|
|||
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/tflite/src/third_party/xla/xla/tsl/framework
|
||||
third_party/tflite/src/third_party/xla/xla/tsl/util
|
||||
third_party/ukey2
|
||||
third_party/unrar
|
||||
third_party/utf
|
||||
|
@ -825,8 +860,34 @@ src_prepare() {
|
|||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
einfo "Unbundling third-party libraries ..."
|
||||
# Sanity check keeplibs, on major version bumps it is often necessary to update this list
|
||||
# and this enables us to hit them all at once.
|
||||
# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
|
||||
whitelist_libs=(
|
||||
net/third_party/quic
|
||||
third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
|
||||
third_party/libjingle
|
||||
third_party/mesa
|
||||
third_party/skia/third_party/vulkan
|
||||
third_party/vulkan
|
||||
)
|
||||
local not_found_libs=()
|
||||
for lib in "${keeplibs[@]}"; do
|
||||
if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
|
||||
not_found_libs+=( "${lib}" )
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#not_found_libs[@]} -gt 0 ]]; then
|
||||
eerror "The following \`keeplibs\` directories were not found in the source tree:"
|
||||
for lib in "${not_found_libs[@]}"; do
|
||||
eerror " ${lib}"
|
||||
done
|
||||
die "Please update the ebuild."
|
||||
fi
|
||||
|
||||
# Remove most bundled libraries. Some are still needed.
|
||||
einfo "Unbundling third-party libraries ..."
|
||||
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
|
||||
|
||||
# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
|
||||
|
@ -1141,20 +1202,6 @@ chromium_configure() {
|
|||
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}"
|
||||
|
||||
|
@ -1164,10 +1211,10 @@ 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; TODO: not compatible with -fno-split-lto-unit
|
||||
# split-lto-unit can be enabled with RUSTC_BOOTSTRAP=1 (and an updated compiler patch),
|
||||
# however I still got weird linking errors with CFI _and_ the split unit LTO OOMed after using 100G.
|
||||
myconf_gn+=" is_cfi=false"
|
||||
# This may need to be filtered on non-amd64 arches
|
||||
# Also these options are listed in upstream docs: use_cfi_icall=true use_cfi_cast=true (This may be for testing only?)
|
||||
# https://www.chromium.org/developers/testing/control-flow-integrity/
|
||||
myconf_gn+=" is_cfi=${use_lto}"
|
||||
# Don't add symbols to build
|
||||
myconf_gn+=" symbol_level=0"
|
||||
fi
|
|
@ -0,0 +1,35 @@
|
|||
From 403ee5b14df12c8ee3b3583177bbd30d930e9aaf Mon Sep 17 00:00:00 2001
|
||||
From: Matt Jolly <kangie@gentoo.org>
|
||||
Date: Sat, 12 Oct 2024 13:45:37 +1000
|
||||
Subject: [PATCH] Convert 'Const AtomicString' to 'const char *'.
|
||||
|
||||
I don't know why this is suddenly required?
|
||||
--- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
|
||||
+++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
|
||||
@@ -323,7 +323,10 @@ void TextCodecICU::CreateICUConverter() const {
|
||||
DCHECK(!converter_icu_);
|
||||
|
||||
#if defined(USING_SYSTEM_ICU)
|
||||
- const char* name = encoding_.GetName();
|
||||
+ //convert to WTF::String to use existing `const char *` dependent functions
|
||||
+ WTF::String nameString = encoding_.GetName();
|
||||
+ std::string nameUtf8 = nameString.Utf8();
|
||||
+ const char* name = nameUtf8.c_str();
|
||||
needs_gbk_fallbacks_ =
|
||||
name[0] == 'G' && name[1] == 'B' && name[2] == 'K' && !name[3];
|
||||
#endif
|
||||
@@ -448,7 +451,10 @@ String TextCodecICU::Decode(base::span<const uint8_t> data,
|
||||
// <http://bugs.webkit.org/show_bug.cgi?id=17014>
|
||||
// Simplified Chinese pages use the code A3A0 to mean "full-width space", but
|
||||
// ICU decodes it as U+E5E5.
|
||||
- if (!strcmp(encoding_.GetName(), "GBK")) {
|
||||
+ // Convert AtomicString to String
|
||||
+ WTF::String nameString = encoding_.GetName();
|
||||
+ std::string nameUtf8 = nameString.Utf8();
|
||||
+ if (!strcmp(nameUtf8.c_str(), "GBK")) {
|
||||
if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030"))
|
||||
resultString.Replace(0xE5E5, kIdeographicSpaceCharacter);
|
||||
// Make GBK compliant to the encoding spec and align with GB18030
|
||||
--
|
||||
2.46.2
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From 54951636d20fa798e148228118863b89a4580479 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Jolly <kangie@gentoo.org>
|
||||
Date: Sat, 12 Oct 2024 12:40:16 +1000
|
||||
Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials -
|
||||
131 update
|
||||
|
||||
131 moved a ton of things around; this is now in api_key_cache.cc
|
||||
|
||||
Google doesn't let us bake in OAuth2 credentials, and for some time,
|
||||
Google sign-in has been broken. Arch dealt with this in March, and so
|
||||
did we to some degree, but in the last few months, our sign-in
|
||||
credentials have been broken. It appears that we actually did remove API
|
||||
credentials in March around Chrome 89, but they got added back, perhaps
|
||||
when rotating newer versions to replace older versions. Work around this
|
||||
by following Arch's lead: we remove the predefined credentials, as
|
||||
before, but also we patch Chromium so that people can use their own
|
||||
easily, using Arch's patch for that.
|
||||
--- a/google_apis/api_key_cache.cc
|
||||
+++ b/google_apis/api_key_cache.cc
|
||||
@@ -214,14 +214,14 @@ ApiKeyCache::ApiKeyCache(const DefaultApiKeys& default_api_keys) {
|
||||
|
||||
std::string default_client_id = CalculateKeyValue(
|
||||
default_api_keys.google_default_client_id,
|
||||
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), nullptr,
|
||||
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), ::switches::kOAuth2ClientID,
|
||||
std::string(), environment.get(), command_line, gaia_config,
|
||||
default_api_keys.allow_override_via_environment,
|
||||
default_api_keys.allow_unset_values);
|
||||
std::string default_client_secret = CalculateKeyValue(
|
||||
default_api_keys.google_default_client_secret,
|
||||
STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(),
|
||||
- nullptr, std::string(), environment.get(), command_line, gaia_config,
|
||||
+ ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config,
|
||||
default_api_keys.allow_override_via_environment,
|
||||
default_api_keys.allow_unset_values);
|
||||
|
||||
--
|
||||
2.46.2
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
From a665875b4013eed997bd042326a038e24f3296e7 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Jolly <kangie@gentoo.org>
|
||||
Date: Thu, 10 Oct 2024 14:36:51 +1000
|
||||
Subject: [PATCH] unbundle: add missing icu target
|
||||
|
||||
--- a/build/linux/unbundle/icu.gn
|
||||
+++ b/build/linux/unbundle/icu.gn
|
||||
@@ -65,6 +65,10 @@ group("icuuc_public") {
|
||||
public_deps = [ ":icuuc" ]
|
||||
}
|
||||
|
||||
+group("icui18n_hidden_visibility") {
|
||||
+ public_deps = [ ":icuuc" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("icui18n_shim") {
|
||||
root_path = "source/i18n"
|
||||
headers = [
|
||||
--
|
||||
2.46.2
|
||||
|
Loading…
Add table
Reference in a new issue