repo/gentoo:master commit in: www-client/chromium/

"Matt Jolly" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1786203064.d3860b3da34579249b0f97987ce35858935f3f90.kangie@gentoo>
commit:     d3860b3da34579249b0f97987ce35858935f3f90
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  8 15:21:49 2026 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sat Aug  8 15:31:04 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3860b3d

www-client/chromium: drop versions

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

 www-client/chromium/Manifest                       |   18 -
 www-client/chromium/chromium-146.0.7680.177.ebuild | 1740 -------------------
 www-client/chromium/chromium-148.0.7778.215.ebuild | 1747 -------------------
 www-client/chromium/chromium-149.0.7827.114.ebuild | 1753 -------------------
 www-client/chromium/chromium-149.0.7827.155.ebuild | 1753 -------------------
 www-client/chromium/chromium-149.0.7827.200.ebuild | 1754 --------------------
 www-client/chromium/chromium-149.0.7827.53.ebuild  | 1749 -------------------
 7 files changed, 10514 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index b44c8c1c5139..15bbb495ce4b 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,9 +1,3 @@
-DIST chromium-146.0.7680.177-linux.tar.xz 1476867376 BLAKE2B e446db0f0921f5c1dd05fa6250dd15af950b83ad1e86a930f11839eced6581080b21105f66184a08620c3fa7e9bac53a422195c054b026b4315801482e1ebd75 SHA512 1859630a05a004d69e27a024e2f8a8c3e5ac16a0c889cf2f1571e1960dfebf0a53a3e49564568c87d1d335342bb9a09f1481d303d3e53cdd77349aff0a551c0c
-DIST chromium-148.0.7778.215-linux.tar.xz 1593166200 BLAKE2B da7ba3258bd15cdd02ce8c30571e8dcca25d9093e7daefc64ef662b445384b93c6acd548f12561cad9f0fc06b249fdda9e9cfab887cd708d63cef97e6436a961 SHA512 09f381d2b69c5a377ab421727e084857680210754051e922a9d96ba486323f877130f4ae289c408ca0af15f3ba1d4cbcdb02877016c085c81ad35254787e9fbd
-DIST chromium-149.0.7827.114-linux.tar.xz 1610404720 BLAKE2B 999db7c1bfda7903295db07edb8a779dc0355005cf983ff9057b35d29ec704898ceb0f8f0c2a52c505394d20aee4691ee7eff1bca8123fd1763140f4fbf43008 SHA512 e3dd18406d7ceabdfa3c4cc75407d74a8340077ddf37fd44152582e36fdcd4be590cb57b093672704b59d4b66a21b170600ea1fef4bfa486802e8fe5b5cb65c0
-DIST chromium-149.0.7827.155-linux.tar.xz 1609965640 BLAKE2B bc9ccfe757adb043f55d308b8d47b2b701449f926d5bdc98a82df831d3253f1a477d89a3e3574be0f90ef7626f8be5b1400c54760dbedaf66852843e135e799f SHA512 137921f93b3af2a69f0d135dcb31aea3cc9ad80951a4f664bf51893bd9204c1f6b313825a749aae2838539b061a63190dcc71e54dbe47d7430c18f085d3a4c85
-DIST chromium-149.0.7827.200-linux.tar.xz 1609868392 BLAKE2B 4ced9d2d5f3d273ce0049033c094e3401faf6d8bd4877fda60e6da79cafb96af876a0d92440b8b70067319f6881bda1d27ac696c4a9b9a971c4934ac49586305 SHA512 40d198bd9210fca8570787d7338a3ad0472deaaded00d1983b27bdbb7f98379cbbaecf4a6d99171d0a83ab8edf86f5ab5d015f73bb8c403c1c5c0c0d3ae1a02a
-DIST chromium-149.0.7827.53-linux.tar.xz 1611305116 BLAKE2B 72018ef444c4769234e13dab7cbe0d2abd03d140631d7ba3cf0dcd4b6fa87f777cb8bbfa6b8100de2166f991f4557197545cac090a9935ddf6ec0f988610ad11 SHA512 36aa5854152d0c0ce338331be28c077aa2cf9edc45c608096368fbbdd84700df4d428daf67b7c76c36a3ff423ccd5b5f6518814bc87facce3d2da529e9dafafd
 DIST chromium-150.0.7871.128-linux.tar.xz 1670297068 BLAKE2B c99df5e0961adddfcd754f1b80732beefce5d58c7e57accba0ae9d9e8216c641fad794c4d6c8fbe7d3c42430a4f8ae41a389d59f0f8eac9275bd329ba1b75577 SHA512 543f66d3164c27f138d44630fedf4e769bf9577282130ec1083430aa698c9967eb63be35d297100dd842acb6e3cf330bbe94d194ef02a8d932f0f2a78d83a9f9
 DIST chromium-150.0.7871.13-linux.tar.xz 1667467376 BLAKE2B 3f508559f329592e18ea45d2476d7197a7fbf2e36659362bb02e2d47a71dfff7ecc4979d96982b41d86058cd4a833c09075ded4492a4c60cb28fe786cfd18153 SHA512 c939a6cdd2abf10dbe32b1fe85091939876285a7ae7d68e48630f209acdd92e4a2471d7613e2c83fd712ccd0f6a9087cf48b4ad043764745e015d675c4aaf747
 DIST chromium-150.0.7871.181-linux.tar.xz 1668476496 BLAKE2B 9d6fb2cc9a12c935f16b1b7e28b0fa82cc8bc891deda1896c31d9b1a67a342d1cc16101ec750f663a06e4e1246d558d8ec01c1b7199d594971a3db938257455c SHA512 e45213d626456f72b2994e44a7026ebcc92262066c436f51c7922b9d161d1a4900ca042dfe2c617eba04c488e76de0728acad43bd542fdce68098144d25c7d30
@@ -11,28 +5,16 @@ DIST chromium-150.0.7871.186-linux.tar.xz 1668494832 BLAKE2B 8edda676c99dab33bab
 DIST chromium-151.0.7872.0-linux.tar.xz 1673299600 BLAKE2B 6a2b0da9238c03fba9360b2575def84c0efd90a110ce5d08b9f86eeb1027acf96902ba76e30329b4a871ad4dc9897159bc1920d615147253b7558af12dd2d4a7 SHA512 0afe87ad10b28b01974b8154edd50b735a96e692811fd7af66ca62cd5e74292f22bbbdcc5e7ff5310c6c1ab31d62a18dd4421ee9b0366c6a9c5170307e80acbc
 DIST chromium-151.0.7922.108-linux.tar.xz 1711846220 BLAKE2B c3cfc831e42469d3e8aa42c1d8709f34353d2964c94d06247418fd246bb4b5d6b68cb9266860f14947d1673ea922cd0868018b722a79a82538ad476004a45142 SHA512 b5e63e6ebd554a4f38889450bc42e2ff9bb60a5c85c98840b871e8efa498a4d0e96db18c8240d425d8883c00f3219346736a98c655fe3f3609cace079cc765d9
 DIST chromium-clang-llvmorg-23-init-10931-g20b6ec66-11.tar.xz 69635068 BLAKE2B 5250889dac7ca048030266b9e5eb9b08a1288acb1023fff3513555ca361f787fdb273b04d5cb5cc9960d7d13e804604ca63e65b056d1873a8f5e1d56e8f59db8 SHA512 4a1f06bacfb5894e277f3957df3adcc937f262ec91927d6fd97a2e4b88b795e2559a8498be633d6b191dd4d52a5df52669f76c59c2939689f5f88fc7457cabae
-DIST chromium-clang-llvmorg-23-init-10931-g20b6ec66-8.tar.xz 69605340 BLAKE2B 5ab6a03bfa76a8523d35c9f9541bc8aff2c33331208ffd2c729e6cd7e6d58e225d236ca8233893df57a52d4cefb0c62d79d61c8f902fbd909cdac8f148822fb8 SHA512 6e013faba35b624144535207c5c884d4675e4166f4eb212d2494c43dbb430b35030734d6f28fc087f5da79a8318531560529a0d0754a96d13e628eb5090de6b5
 DIST chromium-clang-llvmorg-23-init-19482-g53d18800-1.tar.xz 59093892 BLAKE2B faf8c5011b0271903a9a09a4539002088030eac34ac01c4b84581a556f761f89eac035feda5b97be350679325968db99face036c201972b01dd081ced3468edc SHA512 5d88f1ed4901c80963b6740c9b15a28c33db397f8bf31503502b00caff172e17d37f7b946da31162e04794fee763e0b7456a9fc476827c8a19cdd1e737b9b68a
-DIST chromium-clang-llvmorg-23-init-2224-g5bd8dadb-3.tar.xz 57583584 BLAKE2B 7fdfe36655b5fd1f865fb0d74d238c539431fc4abfa403646def47b8076d4d9642a7bc50c9a188bca117939164d46acadbcb6c2c762a39eb11826dc24fc47d70 SHA512 d6bc64fdd9d2f31f317a65d0e355d79b804267811e2026c0ed41699c049c5d90a90d56b15a2039a5c345eb1f11c2d6eef0e84f4665aee938ed36c7a0002ed5af
-DIST chromium-clang-llvmorg-23-init-5669-g8a0be0bc-4.tar.xz 68803796 BLAKE2B 334d273c85a8e22dd7f6eec0f0591d54c5acdf85d01925511d0e912c611f5f07c448b3ff35925b4329307a601439dbabf54f5ee186f3b11d1229dc531e2a26af SHA512 570f00c716dd9d6f8ecc1d6364f735884e0485fba5d003bb45e8095cc60215107d11272702c387ce7273400a8c1679180ac5b51ec639e81fc73657aa55043903
 DIST chromium-openpower-7aae8a84e3.tar.bz2 441026 BLAKE2B efceb75ba53899388398a4564ef29c9fe66427e160a3e7f3375fd3eec8d1ffef335ca14865c11510e9c3719daab11dfb0954ed4a7b847dee602773d51f5e1e0f SHA512 cbe75ae78226b784904a263f7eb01e44faab71efb4a35ca46ff551ff17c0c5f1cdd8f839313ad3bb678b6ca56e4d95899f7802a548ffe7bb90582d9df5614c21
 DIST chromium-openpower-a85b64f07b.tar.bz2 440915 BLAKE2B 50164a35bae4ddd2316bc38d1f9533dc2cc8172e306683163c0ed39a1db2476e425a233e9ab3e2c44aa1cd349a49bebc87963d4c1f7c7682f58150f2dbcd4bc9 SHA512 09914581fbe8bdea84fe0564f14bdddc91b5fc9deab214b9d58001f45056b6d9ea520a2a3ff0f5e2721dfbc3c75c5d897dcee660a5dc684c2efae94fade72117
-DIST chromium-openpower-eeff222874.tar.bz2 438398 BLAKE2B 86ba3cf4fec44dab06a1d70369b859c25a8845056b3056ade4708cc274ff4892ba4abdda8164614d707e03118a6b86e953d55a1889c3efe08d7767b09bb3ae1a SHA512 4ae590a9db639971c691a52cf123c17c9ca06351112e5f50aa68e77c2a8affce4c596e22469c2d552b3b3b98861af08e24854f8165ee9069854d62054aec7f24
-DIST chromium-patches-146-2.tar.bz2 18621 BLAKE2B d4c9ae6a2cfee50ea2d62cafeb19d8295a26fc7986ae11d5ed916736275720a066367bd3f4c381912aa43d219567ae83c4dbcc90c1cb6f096bd61b8283a3a4e2 SHA512 add724a848eb138a2f849b66528b3d2e4d5514b1171916cc8f4681a197eed3df5e4b45e9e1acd1e136f203d0f7d740f0badf6c5f72db7c56bbe39775f356b8d4
-DIST chromium-patches-148-3.tar.bz2 20088 BLAKE2B 063146caf3fae4c4522e00c0abcbbd32652e4f401a81a6cfece043c36189a4177507ef9f44fc733e470d654e079e51e1ee3cd31604f55fd7625567406a228345 SHA512 769ada4905ad216ee1d6595d15dd88a9e2af432f820fc277d9483a5cb19357b15b5e9a94078a54b5c002afc6a7e7b1739f8d7d41893ea6d15f32e3df23555009
-DIST chromium-patches-149-2.tar.bz2 21452 BLAKE2B b9f9ce66998eaa3ff7d23b1d1296ad4a7a984bed08b2031a6e9398e2f724280ca2b4bdd48ddb415cdb5e79f952545c8d322ef3d007f1e5f8303307e45704dd7a SHA512 a318ab70ee226519f02bc114343c4f9794569252f1a2857a71adefdcdd66c6de9ac1ef48ac25e71cef4cbea2c2a56aa537fde7f7142d48e9aedbf1b81c78d027
 DIST chromium-patches-150-1.tar.bz2 23403 BLAKE2B d8fee8a13aa6cddc3a465663bb1ec23384560e9fa5de5bd40fc606087570d484b8a4c208eae3da17f46a82b4ba64b8b5e21cda0336ea8729dfca36b67fd9935a SHA512 847ad4ae0d3d0090d2bbb28444bb91361f0bcc05aafa239b3a8900b0ec5934f2080fe21a783f6caf1bd8e222f2bdbb2a43ee991f1ad0cabcc9f9a6583441c1d2
 DIST chromium-patches-151-3.tar.bz2 23198 BLAKE2B 5227fb7f6e1c80297b6b7d8b4efaa31ead935ffb63e5ad47e45c70d2e7c6692cc4d015ae1dc9234c7ea3365a67db8ec2912890af2508a5132062a9b1f395b94c SHA512 3839400b31b58965d1340b26112c6c4b4ce613fd54290d141bb875aa7163107d02a10edbfdc18fb8b92c7d6e2e1b1f07b545ba5379fe070adb3040ea2ae3458b
 DIST chromium-patches-151.tar.bz2 23398 BLAKE2B 42606d6123bca47afe573df8f44b77511c1aa48c3e26cf7a9ac45af0f887ba88e71dff08ac4b1c2a2f277d337c577c19b903baf817280f29a499cbd3e7b86560 SHA512 5b81fefc84a395f7401e15db19a056140bd414bcb547beab697b54c7063db1df6c2109cc1e581601b7ac89b49c9df555ae7ba0d8fff9bed5bf554d5393cbc272
 DIST chromium-patches-copium-3c7e56fb45.tar.gz 13304 BLAKE2B 782f3b24d817aaa03cbf45dcfe679c580e62a2f7f8493ecd8398bd936c5cc635c5999f8c3b487b1b7ce1e86496eeef73e55a750424c42252b3e8c4363ccc5e19 SHA512 b8af6b95bbb7c8ea47db00912372bfbabd60d56f060a41707a94d14e37acebe693a853cfed74b8d557f8ef15491807f3121226ca7db86823dfcade85e3b2e5a1
 DIST chromium-patches-copium-b00f26bb5e.tar.gz 15099 BLAKE2B 886897afba6cb4495ab74298d8ae72643294dba1996a5a7d2939f83fb4af1cb599f7e4cd263b852fe595cf52e0a3689305d6a3c028014f9c4172df7deaf3e2dd SHA512 c337bcb6487252fa679b5910672230677aba87fa7572ecbfea32b369785326e12f06fd3d44c65f16fe32c1e83b5b8e710e81c970cdf03f24f25a68577f6984b9
-DIST chromium-patches-copium-fe1caafa06.tar.gz 15572 BLAKE2B 4baa36a4536f9199caa89553fc10deac79ae7effa336fc4bd92fac59eb81a57749eead426e6f01ffecd9954b417eb34c29c899cc49a9d726fe65bf2e303712a0 SHA512 5310e48743a32f2f998b34138b1ed9667feed873ad16c18d3e495383f44a0d5df0f9634c7c4275cf1839002ae887ef58f6c3ec5fd9c5d46ad5114ffab439a664
 DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
-DIST chromium-rust-toolchain-4c4205163a-2-llvmorg-23-init-10931-g20b6ec66.tar.xz 274625900 BLAKE2B dc3851eb65570795fd789abe5135291cbfeb1fbf9df2c9c9fa3d61b6e3fb0daeb90b43f18c733e28e60bc138391fa9bb028ad3e5b5a4d5acad6addaeef8abdd4 SHA512 6894b2abc7d0e56784485d600d87a1adb373fdf25001c3be2a05d455584b7648ac458938fa84c9f5db4e8bac4c320e8e162b15e05dd8252c1749962a7f5c5e6e
 DIST chromium-rust-toolchain-4c4205163a-5-llvmorg-23-init-10931-g20b6ec66.tar.xz 274476304 BLAKE2B 007d4f955a915f000ace0d4473601c4602c9b47b80a60e1c60b8b1872cf6d19ff18b5d21bd0e5db52f82c839c9957882da291cbc6b619ec20b5dfdcde1298778 SHA512 0366b292a26d47de85eb28a7a085f6a670ca4e0e274d1e8090dc472deacd12fcbe3abc0f2a9401c6a9857405d87c38de9c7e3af55413bbbdb677b41fc5d3732a
-DIST chromium-rust-toolchain-6f54d591c3-7-llvmorg-23-init-5669-g8a0be0bc.tar.xz 271641712 BLAKE2B 7436b7243fbdd2c46b6dd0d9e16a6727718bfdc1870df86395229f3f6420e6109d5e5b881b21c48e2e1434844e4d7a6080bf36c2877a60e0f61f3baa9b803389 SHA512 420122a3b4fd984a848d47aed7cd04c3fb9bbdc5e0413c94165a6dc091713ca5f2dfd78dc238357ce05ea547bdd8a36d116f106bd4d94a54e358f0e93c7a6028
-DIST chromium-rust-toolchain-7d8ebe3128-3-llvmorg-23-init-2224-g5bd8dadb.tar.xz 266591660 BLAKE2B 1a95ed8da4070f4b69f7b166e4d2fbce9eb938eddfa5b74bd47a68e0ac3990d6925a4b4a18f18e3e3e990e698489104112583bc20eb86b9a6ca089541b0df01f SHA512 40193a790129c6158fa565a447580c8d1bd8147519a8573b47cfb7efc16f51ba8355a2322e6009648ae35b732139b6bc244a775f1990e14db012710994a78dcf
 DIST chromium-rust-toolchain-b998449636-2-llvmorg-23-init-19482-g53d18800.tar.xz 274790504 BLAKE2B ff04e59cbb3272790bd80e0e79a547c1439c7f12861fc92da39c4b1b5daeecf012d1cfe1b6b3896051e33aca8b379c33b7b2c4810067c8cb55ffef7c92c2d293 SHA512 0ca4419d701664c25859bfc60e7d9fe5e8e1b52552536e6db46acaf79a6ea53a00e3a10607d8c8c5f6226b674be7d96515f4a3ce8ff148db9672d826156fa6a6
 DIST chromium-testfonts-9c07d19d9c.tar.gz 33413117 BLAKE2B 95cb79288de5697b6de2a6f503f81bcfb7687ea1af0bd0e6db8cfc09af7cdaedd9a83f36dd9d0a3ac19dfca8ac7a6c3a891922a192db012688565c06da8a9cf8 SHA512 2d3602b7a924d2bb8d538882f13a05428e23bf16ea3a9cf07eb13801fe7f33261ce61f2e5dc12e5c6f61f21b392526024d1969e8a967cf1f5138c647b84025b6
-DIST chromium-testfonts-a28b222b79.tar.gz 33233004 BLAKE2B 2329d6a6069a19058c6fd58b61ae2d66cff3b4971984a5d2449be708ead2ef169bd4401ba3b5e9d3aedeeb910b6bb8e7c81b6e338808df327b3102420d6ab2d0 SHA512 ca4f98300f2037a40e02f6c2ffa04427fdf08cdce8de34cc944a5ccb69d4279090d2b8476d5e77bd610db6542696eb3ed4d135c3462fc0375cbf9277bf2fa670
 DIST rollup-wasm-node-4.57.1.tgz 792515 BLAKE2B 52fa9c4b65f3e20149c66fdd44b3c2a8b47e836d87de85535dbbf8b7243acef3d65c5be9f794eebb1533af2f16888a1cb42a75ed392ba65251cf60b73b41d559 SHA512 6f4adc247f329046a77e04de0ed94fb9b86984850ec74a1a01e93ede18b34da164a02d450524ec6341a2c700780f91d9e6bdc6b76c88f5cf0cd7739c5bf916e4

diff --git a/www-client/chromium/chromium-146.0.7680.177.ebuild b/www-client/chromium/chromium-146.0.7680.177.ebuild
deleted file mode 100644
index 4f2d21316d05..000000000000
--- a/www-client/chromium/chromium-146.0.7680.177.ebuild
+++ /dev/null
@@ -1,1740 +0,0 @@
-# Copyright 2009-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# PACKAGING NOTES
-
-# Upstream 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 may eventually hit the point where we need to use
-# the bundled Clang due to the use of prerelease features.
-
-# USE=bundled-toolchain is intended for users who want to use the same toolchain
-# as the upstream releases. It's also a good fallback in case we fall behind
-# and need to get a release out quickly (less likely with `dev` in-tree).
-# We can't rely on it as a default since the toolchain is only shipped for x86-64;
-# other architectures will need to use system toolchain.
-
-# Since m133 we are using CI-generated tarballs from
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/
-
-# These are bit-for-bit identical to the official releases, but are built
-# using an external CI system that we have some control over, in case
-# issues pop up again with official tarball generation.
-
-GN_MIN_VER=0.2318
-# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
-# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
-TEST_FONT="a28b222b79851716f8358d2800157d9ffe117b3545031ae51f69b7e1e1b9a969"
-BUNDLED_CLANG_VER="llvmorg-23-init-2224-g5bd8dadb-3"
-BUNDLED_RUST_VER="7d8ebe3128fc87f3da1ad64240e63ccf07b8f0bd-3"
-RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.12.0"
-ESBUILD_VER="0.25.1"
-ROLLUP_VER="4.57.1" # currently manual.
-VIRTUALX_REQUIRED="pgo"
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-LLVM_COMPAT=( 21 )
-PYTHON_COMPAT=( python3_{11..13} )
-PYTHON_REQ_USE="xml(+)"
-RUST_MIN_VER=1.91.0
-RUST_NEEDS_LLVM="yes please"
-RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
-RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
-inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PPC64_HASH="eeff222874ccb0a1e67d0de18bcc9215eecd2105"
-PATCH_V="${PV%%\.*}-2"
-COPIUM_COMMIT="fe1caafa06f27542c18a881348f78e984e2d9fe2"
-SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV}/chromium-${PV}-linux.tar.xz
-	https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
-	https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
-	!bundled-toolchain? (
-		https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
-			-> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	)
-	bundled-toolchain? (
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
-			-> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
-			-> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
-	)
-	test? (
-		https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
-	)
-	ppc64? (
-		https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
-LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
-LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
-LICENSE+=" rar? ( unRAR )"
-
-SLOT="stable"
-# Unstable in gentoo exists mostly to give devs some breathing room for beta/stable releases.
-# It shouldn't be keyworded but adventurous users are encouraged to select it;
-# there's official dev channel Google Chrome after all.
-KEYWORDS="~ppc64"
-
-IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-zstd"
-IUSE="+X ${IUSE_SYSTEM_LIBS} bindist bundled-toolchain cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo"
-IUSE+=" +proprietary-codecs pulseaudio qt6 +rar +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
-RESTRICT="
-	!bindist? ( bindist )
-	!test? ( test )
-	arm64? ( test )" # Tests require CFI, which requires LTO, which is broken on arm64 with LLVM 21.
-
-REQUIRED_USE="
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-	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:=
-"
-
-# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
-# We _could_ use the bundled minizip, but that's against policy.
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-73.0:= )
-	>=dev-libs/libxml2-2.12.4:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-zstd? ( >=app-arch/zstd-1.5.5:= )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-2.6.0:=
-	sys-libs/zlib:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-libs/libpulse:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-base/xorg-proto:=
-			x11-libs/libX11:=
-			x11-libs/libxcb:=
-			x11-libs/libXext:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		cups? ( >=net-print/cups-1.3.11:= )
-		qt6? ( dev-qt/qtbase:6[gui,widgets] )
-		X? ( ${COMMON_X_DEPEND} )
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!www-client/chromium:0
-	>=www-client/chromium-common-2
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[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? (
-		qt6? ( dev-qt/qtbase:6 )
-	)
-	!bundled-toolchain? ( $(llvm_gen_dep '
-		llvm-core/clang:${LLVM_SLOT}
-		llvm-core/llvm:${LLVM_SLOT}
-		llvm-core/lld:${LLVM_SLOT}
-		official? (
-			!ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
-		) ')
-		${RUST_DEPEND}
-	)
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-	)
-	>=dev-util/bindgen-0.72.1
-	>=dev-build/gn-${GN_MIN_VER}
-	app-alternatives/ninja
-	dev-lang/perl
-	>=dev-util/gperf-3.2
-	dev-util/esbuild:${ESBUILD_VER}
-	dev-vcs/git
-	>=net-libs/nodejs-${NODE_VER}[inspector]
-	sys-apps/hwdata
-	>=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.
-	# xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
-	local base_disk=9 # Round up
-	use test && base_disk=$((base_disk + 5))
-	local extra_disk=1 # Always include a little extra space
-	local memory=4
-	tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
-	if tc-is-lto || use pgo; then
-		memory=$((memory * 2 + 1))
-		tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
-		use pgo && extra_disk=$((extra_disk + 4))
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags; then
-			extra_disk=$((extra_disk + 5))
-		fi
-		memory=$((memory * 2))
-	fi
-	local CHECKREQS_MEMORY="${memory}G"
-	local 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" "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
-
-		# We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
-		local want_lto="false"
-		tc-is-lto && want_lto="true"
-
-		# 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.
-		if use !bundled-toolchain; then
-			llvm-r1_pkg_setup
-			rust_pkg_setup
-
-			# Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
-			AR=llvm-ar
-			CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
-			NM=llvm-nm
-			CC="${CHOST}-clang-${LLVM_SLOT}"
-			CXX="${CHOST}-clang++-${LLVM_SLOT}"
-		fi
-
-		use_lto="false"
-		local lto_usable="true"
-		if [[ "$want_lto" == "true" ]]; then
-			if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
-				einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
-				lto_usable="false"
-			else
-				use_lto="true"
-			fi
-			# We can rely on GN to do this for us; without this builds
-			# take significantly longer with LTO enabled.
-			filter-lto
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
-			einfo "USE=official selected and LTO not detected."
-			einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
-			einfo "and to be consistent with the upstream \"official\" build optimisations."
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use test; then
-			die "Tests require CFI which requires LTO"
-		fi
-
-		export use_lto
-
-		# 936858
-		if tc-ld-is-mold; then
-			eerror "Your toolchain is using the mold linker."
-			eerror "This is not supported by Chromium."
-			die "Please switch to a different linker."
-		fi
-
-		if tc-is-cross-compiler; then
-			use pgo && die "The pgo USE flag cannot be used when cross-compiling"
-			CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
-		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
-
-		# Sanity checks for 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
-
-		# Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
-		local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
-		if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
-			die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
-		fi
-	fi
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_unpack() {
-	unpack ${P}-linux.tar.xz
-	unpack chromium-patches-${PATCH_V}.tar.bz2
-	# These should only be required when we're not using the official toolchain
-	if use !bundled-toolchain; then
-		unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	fi
-
-	use pgo && unpack chromium-profiler-0.2.tar
-
-	if use test; then
-		# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
-		local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts/test_fonts"
-		local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
-		einfo "Unpacking test fonts ..."
-		tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
-	fi
-
-	# We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
-	# Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
-	if use bundled-toolchain; then
-		einfo "Unpacking bundled Clang ..."
-		mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
-		tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
-		einfo "Unpacking bundled Rust ..."
-		local rust_dir="${WORKDIR}/rust-toolchain"
-		mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
-		tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
-			die "Failed to unpack Rust"
-	fi
-
-	if use ppc64; then
-		unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	fi
-
-	# This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
-	# to build locally due to deps
-	unpack rollup-wasm-node-${ROLLUP_VER}.tgz
-}
-
-remove_compiler_builtins() {
-	# We can't use the bundled compiler builtins with the system toolchain
-	# We used to `grep` then `sed`, but it was indirect. Combining the two into a single
-	# `awk` command is more efficient and lets us document the logic more clearly.
-
-	local pattern='    configs += [ "//build/config/clang:compiler_builtins" ]'
-	local target='build/config/compiler/BUILD.gn'
-
-	local tmpfile
-	tmpfile=$(mktemp) || die "Failed to create temporary file."
-
-	if awk -v pat="${pattern}" '
-	BEGIN {
-		match_found = 0
-	}
-
-	# If the delete countdown is active, decrement it and skip to the next line.
-	d > 0 { d--; next }
-
-	# If the current line matches the pattern...
-	$0 == pat {
-		match_found = 1   # ...set our flag to true.
-		d = 2             # Set delete counter for this line and the next two.
-		prev = ""         # Clear the buffered previous line so it is not printed.
-		next
-	}
-
-	# For any other line, print the buffered previous line.
-	NR > 1 { print prev }
-
-	# Buffer the current line to be printed on the next cycle.
-	{ prev = $0 }
-
-	END {
-		# Print the last line if it was not part of a deleted block.
-		if (d == 0) { print prev }
-
-		# If the pattern was never found, exit with a failure code.
-		if (match_found == 0) {
-		exit 1
-		}
-	}
-	' "${target}" > "${tmpfile}"; then
-		# AWK SUCCEEDED (exit code 0): The pattern was found and edited.
-		# This is to avoid gawk's `-i inplace` option which users complain about.
-		mv "${tmpfile}" "${target}"
-	else
-		# AWK FAILED (exit code 1): The pattern was not found.
-		rm -f "${tmpfile}"
-		die "Awk patch failed: Pattern not found in ${target}."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# We'll fill this in as we go. Patches go in chromium-patches.
-	local PATCHES=()
-
-	PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
-
-	# https://issues.chromium.org/issues/442698344
-	# Unreleased fontconfig changed magic numbers and google have rolled to this version
-	if has_version "<=media-libs/fontconfig-2.17.1"; then
-		PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
-	fi
-
-	if use bundled-toolchain; then
-		# We need to symlink the toolchain into the expected location
-		einfo "Symlinking Clang toolchain to expected location ..."
-		mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
-		# the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
-		# upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
-		# llvm-build, but we'll rm Release+Asserts and symlink directly.
-		if [[ -d third_party/llvm-build/Release+Asserts ]]; then
-			rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
-		fi
-		ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
-		einfo "Symlinking Rust toolchain to expected location ..."
-		# As above, so below
-		if [[ -d third_party/rust-toolchain ]]; then
-			rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
-		fi
-		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"
-	else
-		# We don't need our toolchain patches if we're using the official toolchain
-
-		# Copium patches go here.
-		PATCHES+=(
-			"${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
-		)
-
-		# Automate conditional application of chromium-patches
-		# The directory structure is expected to be something like:
-		# chromium-patches-145/
-		# ├── toolchain/
-		# │   ├── cr123-foo.patch
-		# │   └── cr135-bar.patch
-		# ├── llvm/
-		# │   ├── cr144-baz.patch
-		# │   └── lt-23/
-		# │       └── cr145-bleeding-edge-llvm-feature.patch
-		# Where `lt-23` means "apply this patch if the LLVM version is less than 23".
-		# Only categories in `slot_map` will be checked for version constraints.
-		shopt -s nullglob
-		local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
-
-		for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
-			local category_name="${category%/}"
-			category_name="${category_name##*/}"
-
-			# Skip arch-specific categories
-			if [[ "${category_name}" == "ppc64le" ]]; then
-				use ppc64 || continue
-			fi
-
-			# We applied common patches above, no need to apply them again here
-			[[ "${category_name}" == "common" ]] && continue
-
-			# Unconditional patches for this category
-			PATCHES+=( "${category}"*.patch )
-
-			# Version-constrained subdirectories (e.g., llvm/lt-23/)
-			for constraint_dir in "${category}"*/; do
-				local dir_name="${constraint_dir%/}"
-				dir_name="${dir_name##*/}"
-				if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
-					ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
-						PATCHES+=( "${constraint_dir}"*.patch )
-				fi
-			done
-		done
-
-		shopt -u nullglob
-
-		# Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
-		if use ppc64; then
-			local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
-			# patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
-			local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
-			openpower_patches=(
-				$(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${isa_3_patch}" |
-					grep -v "upstream" || die) # M146 `upstream` dir dropped but still referenced in series file.
-			)
-			for patch in "${openpower_patches[@]}"; do
-				PATCHES+=( "${patchset_dir}/${patch}" )
-			done
-			# We use vsx3 as a proxy for 'want isa3.0' (POWER9)
-			if use cpu_flags_ppc_vsx3 ; then
-				PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
-			fi
-		fi
-
-		remove_compiler_builtins
-
-		# We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
-		local suffix=""
-		if [[ "${RUST_TYPE}" == "binary" ]]; then
-			suffix="-bin-${RUST_SLOT}"
-		else
-			suffix="-${RUST_SLOT}"
-		fi
-		sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
-			die "Failed to update rustfmt path"
-
-	fi
-
-	# Do this before we apply patches so that ppc64 can be applied without faffing around.
-	einfo "Moving rollup wasm-node package into place ..."
-	mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to create node_modules/@rollup/wasm-node"
-	mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to move rollup package"
-
-	default
-
-	# Sanity check esbuild version before we start removing files.
-	# We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
-	# arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
-	# but this is fine too and exactly matches what upstream are expecting.
-	# https://github.com/evanw/esbuild/issues/2894
-	local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
-	local found
-	found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
-	if [[ "${found}" != "${ESBUILD_VER}" ]]; then
-		die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
-	fi
-
-	elog "Removing bundled binaries from source tree ..."
-	# Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
-	# Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
-	${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
-		die "Failed to remove bundled binaries"
-
-	# And now we restore any that we actually need, from the host system
-	local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
-	local -A restore_list=(
-		["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
-		["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
-	)
-
-	for src in "${!restore_list[@]}"; do
-		dst="${restore_list[${src}]}"
-		if [[ -f "${src}" ]]; then
-			einfo "Symlinking ${src} ..."
-			# Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
-			mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
-			ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
-		else
-			die "Expected to find ${src} to restore ${dst}, but it does not exist."
-		fi
-	done
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	# Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
-	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-		-i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
-
-	# remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
-	# whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		net/third_party/mozilla_security_manager
-		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/third_party/typ
-		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/compiler-rt # Since M137 atomic is required; we could probably unbundle this as a target of opportunity.
-		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/dawn/third_party/renderdoc
-		third_party/dawn/third_party/webgpu-headers
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/json5
-		third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
-		third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
-		third_party/devtools-frontend/src/front_end/third_party/third-party-web
-		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/front_end/third_party/web-vitals
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/dragonbox
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fast_float
-		third_party/fdlibm
-		third_party/federated_compute/chromium/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/base
-		third_party/federated_compute/src/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/federatedcompute
-		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/ink_stroke_modeler/src/ink_stroke_modeler
-		third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal
-		third_party/ink/src/ink/brush
-		third_party/ink/src/ink/color
-		third_party/ink/src/ink/geometry
-		third_party/ink/src/ink/rendering
-		third_party/ink/src/ink/rendering/skia/common_internal
-		third_party/ink/src/ink/rendering/skia/native
-		third_party/ink/src/ink/rendering/skia/native/internal
-		third_party/ink/src/ink/strokes
-		third_party/ink/src/ink/types
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/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/libc++
-		third_party/libdrm
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libpfm4
-		third_party/libphonenumber
-		third_party/libpng
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libtess2/libtess2
-		third_party/libtess2/src/Include
-		third_party/libtess2/src/Source
-		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/llvm-libc
-		third_party/llvm-libc/src/shared/
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/ml_dtypes
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/oak/chromium/proto
-		third_party/oak/chromium/proto/attestation
-		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/pprof
-		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/protobuf/third_party/utf8_range
-		third_party/pthreadpool
-		third_party/puffin
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/rapidhash
-		third_party/re2
-		third_party/readability
-		third_party/rnnoise
-		third_party/rust
-		third_party/ruy
-		third_party/s2cellid
-		third_party/search_engines_data
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		third_party/shell-encryption
-		third_party/simdutf
-		third_party/simplejson
-		third_party/six
-		third_party/skia
-		third_party/skia/include/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/fft2d
-		third_party/tflite/src/third_party/xla/third_party/tsl
-		third_party/tflite/src/third_party/xla/xla/tsl/framework
-		third_party/tflite/src/third_party/xla/xla/tsl/lib/random
-		third_party/tflite/src/third_party/xla/xla/tsl/platform
-		third_party/tflite/src/third_party/xla/xla/tsl/protobuf
-		third_party/tflite/src/third_party/xla/xla/tsl/util
-		third_party/ukey2
-		third_party/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/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/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/rapidhash-v8
-		v8/third_party/siphash
-		v8/third_party/utf8-decoder
-		v8/third_party/v8
-		v8/third_party/valgrind
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-		third_party/xdg-utils
-	)
-
-	if use rar; then
-		keeplibs+=( third_party/unrar )
-	fi
-
-	if use test; then
-		keeplibs+=(
-			third_party/breakpad/breakpad/src/processor
-			third_party/fuzztest
-			third_party/google_benchmark/src/include/benchmark
-			third_party/google_benchmark/src/src
-			third_party/test_fonts
-			third_party/test_fonts/fontconfig
-			third_party/test_fonts/test_fonts
-		)
-	fi
-
-	# USE=system-*
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz-ng )
-	fi
-
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-
-	if ! use system-zstd; then
-		keeplibs+=( third_party/zstd )
-	fi
-
-	# Arch-specific
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
-		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
-		# since we're not in a git repo
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
-	# and this enables us to hit them all at once.
-	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
-	whitelist_libs=(
-		net/third_party/quic
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/libjingle
-		third_party/mesa
-		third_party/skia/third_party/vulkan
-		third_party/vulkan
-	)
-	local not_found_libs=()
-	for lib in "${keeplibs[@]}"; do
-		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
-			not_found_libs+=( "${lib}" )
-		fi
-	done
-
-	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
-		eerror "The following \`keeplibs\` directories were not found in the source tree:"
-		for lib in "${not_found_libs[@]}"; do
-			eerror "  ${lib}"
-		done
-		die "Please update the ebuild."
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	einfo "Unbundling third-party libraries ..."
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	# Interferes with our bundled clang path; we don't want stripped binaries anyway.
-	sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
-		-e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
-		build/linux/strip_binary.gni || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-
-	if use system-zstd; then
-		gn_system_libraries+=( zstd )
-	fi
-
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
-		die "Failed to replace GN files for system libraries"
-
-	# TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
-	# drop the last line, then append the freetype line and a new curly brace to end the block
-	local freetype_gni="build/config/freetype/freetype.gni"
-	sed -i -e '$d' ${freetype_gni} || die
-	echo "  enable_freetype = true" >> ${freetype_gni} || die
-	echo "}" >> ${freetype_gni} || die
-
-	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*"
-		# 949123: Several multimedia components explicitly build with specific CFLAGS and
-		# use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
-		# to the end of the command line, which causes build failures.
-		use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*"
-	fi
-
-	# 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 # can you cross-compile with the bundled toolchain?
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-	fi
-
-	# Start building our GN options
-	local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
-
-	if use !bundled-toolchain; then
-		# We already forced the "correct" clang via pkg_setup
-
-		if tc-is-cross-compiler; then
-			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_AR=${AR}
-			BUILD_CC=${CC}
-			BUILD_CXX=${CXX}
-			BUILD_NM=${NM}
-		fi
-
-		# Make sure the build system will use the right tools, bug #340795.
-		tc-export AR CC CXX NM
-
-		strip-unsupported-flags
-		append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
-
-		myconf_gn+=(
-			"is_clang=true"
-			"clang_use_chrome_plugins=false"
-			"use_clang_modules=false" # M141 enables this for the linux platform by default.
-			"use_lld=true"
-			'custom_toolchain="//build/toolchain/linux/unbundle:default"'
-			# From M127 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.
-			# We don't need to set 'clang_base_path' for anything in our build
-			# and it defaults to the google toolchain location. Instead provide a location
-			# to where system clang lives so that bindgen can find system headers (e.g. stddef.h)
-			"bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
-			"clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-			"rust_bindgen_root=\"${EPREFIX}/usr/\""
-			"rust_sysroot_absolute=\"$(get_rust_prefix)\""
-			"rustc_version=\"${RUST_SLOT}\""
-		)
-
-		if ! tc-is-cross-compiler; then
-			myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
-		else
-			tc-export BUILD_{AR,CC,CXX,NM}
-			myconf_gn+=(
-				'host_toolchain="//build/toolchain/linux/unbundle:host"'
-				'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
-				"host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-				"pkg_config=\"$(tc-getPKG_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=
-		fi
-
-	fi # !bundled-toolchain
-
-	local myarch
-	myarch="$(tc-arch)"
-	case ${myarch} in
-		amd64)
-			# Bug 530248, 544702, 546984, 853646.
-			use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
-										-mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-			myconf_gn+=( 'target_cpu="x64"' )
-			;;
-		arm64)
-			myconf_gn+=( 'target_cpu="arm64"' )
-			;;
-		ppc64)
-			myconf_gn+=( 'target_cpu="ppc64"' )
-			;;
-		*)
-			die "Failed to determine target arch, got '${myarch}'."
-			;;
-	esac
-
-	# Common options
-
-	myconf_gn+=(
-		# Disable code formating of generated files
-		"blink_enable_generated_code_formatting=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.
-		"dcheck_always_on=$(usex debug true false)"
-		"dcheck_is_configurable=$(usex debug true false)"
-		# Chromium builds provided by Linux distros should disable the testing config
-		"disable_fieldtrial_testing_config=true"
-		# Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
-		# use different profile directories, desktop entries, etc. This enables slotting the ebuild.
-		"enable_channel_branding=true"
-		# 131 began laying the groundwork for replacing freetype with
-		# "Rust-based Fontations set of libraries plus Skia path rendering"
-		# We now need to opt-in
-		"enable_freetype=true"
-		"enable_hangout_services_extension=$(usex hangouts true false)"
-		# Don't need nocompile checks and GN crashes with our config (verify with modern GN)
-		"enable_nocompile_tests=false"
-		# pseudolocales are only used for testing
-		"enable_pseudolocales=false"
-		"enable_widevine=$(usex widevine true false)"
-		# Disable fatal linker warnings, bug 506268.
-		"fatal_linker_warnings=false"
-		# 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 [email protected] for more info.
-		# note: OAuth2 is patched in; check patchset for details.
-		'google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"'
-		# Component build isn't generally intended for use by end users. It's mostly useful
-		# for development and debugging.
-		"is_component_build=false"
-		# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-		"is_debug=false"
-		"is_official_build=$(usex official true false)"
-		# Enable ozone wayland and/or headless support
-		"ozone_auto_platforms=false"
-		"ozone_platform_headless=true"
-		# Enables building without non-free unRAR licence
-		"safe_browsing_use_unrar=$(usex rar true false)"
-		"thin_lto_enable_optimizations=${use_lto}"
-		"treat_warnings_as_errors=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).
-		"use_custom_libcxx=true"
-		# Enable ozone wayland and/or headless support
-		"use_ozone=true"
-		# The sysroot is the oldest debian image that chromium supports, we don't need it
-		"use_sysroot=false"
-		# See dependency logic in third_party/BUILD.gn
-		"use_system_harfbuzz=$(usex system-harfbuzz true false)"
-		"use_thin_lto=${use_lto}"
-		# Only enabled for clang, but gcc has endian macros too
-		"v8_use_libm_trig_functions=true"
-	)
-
-	if use bindist ; then
-		myconf_gn+=(
-			# If this is set to false Chromium won't be able to load any proprietary codecs
-			# even if provided with an ffmpeg capable of h264/aac decoding
-			"proprietary_codecs=true"
-			'ffmpeg_branding="Chrome"'
-			# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
-			"is_component_ffmpeg=true"
-		)
-	else
-		myconf_gn+=(
-			"proprietary_codecs=$(usex proprietary-codecs true false)"
-			"ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
-		)
-	fi
-
-	if use headless; then
-		myconf_gn+=(
-			"enable_print_preview=false"
-			"enable_remoting=false"
-			'ozone_platform="headless"'
-			"rtc_use_pipewire=false"
-			"use_alsa=false"
-			"use_cups=false"
-			"use_gio=false"
-			"use_glib=false"
-			"use_gtk=false"
-			"use_kerberos=false"
-			"use_libpci=false"
-			"use_pangocairo=false"
-			"use_pulseaudio=false"
-			"use_qt5=false"
-			"use_qt6=false"
-			"use_udev=false"
-			"use_vaapi=false"
-			"use_xkbcommon=false"
-		)
-	else
-		myconf_gn+=(
-			"gtk_version=$(usex gtk4 4 3)"
-			# link pulseaudio directly (DT_NEEDED) instead of using dlopen.
-			# helps with automated detection of ABI mismatches and prevents silent errors.
-			"link_pulseaudio=$(usex pulseaudio true false)"
-			"ozone_platform_wayland=$(usex wayland true false)"
-			"ozone_platform_x11=$(usex X true false)"
-			"ozone_platform=\"$(usex wayland wayland x11)\""
-			"rtc_use_pipewire=$(usex screencast true false)"
-			"use_cups=$(usex cups true false)"
-			"use_kerberos=$(usex kerberos true false)"
-			"use_pulseaudio=$(usex pulseaudio true false)"
-			"use_qt5=false"
-			"use_system_libffi=$(usex wayland true false)"
-			"use_system_minigbm=true"
-			"use_vaapi=$(usex vaapi true false)"
-			"use_xkbcommon=true"
-		)
-		if use qt6; then
-			local cbuild_libdir
-			cbuild_libdir="$(get_libdir)"
-			if tc-is-cross-compiler; then
-			# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
-				cbuild_libdir="${cbuild_libdir:2}"
-				cbuild_libdir="${cbuild_libdir/% }"
-			fi
-			myconf_gn+=(
-				"use_qt6=true"
-				"moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
-			)
-		else
-			myconf_gn+=( "use_qt6=false" )
-		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
-
-	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
-		if use !ppc64; then
-			myconf_gn+=( "is_cfi=${use_lto}" )
-		else
-			myconf_gn+=( "is_cfi=false" ) # requires llvm-runtimes/compiler-rt-sanitizers[cfi]
-		fi
-		# 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
-		myconf_gn+=( "chrome_pgo_phase=0" )
-	fi
-
-	# Odds and ends
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=( "devtools_skip_typecheck=false" )
-	fi
-
-	# 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 && use ppc64; then
-		myconf_gn+=( "v8_enable_external_code_space=false" )
-	fi
-
-	# Since we build from tarballs, we need to set the channel here so that it can be used in the build.
-	export CHROME_VERSION_EXTRA="${SLOT}"
-
-	einfo "Configuring Chromium ..."
-	set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
-	echo "$@"
-	"$@" || die "Failed to configure Chromium"
-}
-
-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 code_cache_generator; do
-			if tc-is-cross-compiler; then
-				eninja -C out/Release "host/${x}"
-				pax-mark m "out/Release/host/${x}"
-			else
-				eninja -C out/Release "${x}"
-				pax-mark m "out/Release/${x}"
-			fi
-		done
-	fi
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests")
-
-	pax-mark m out/Release/chrome
-
-	# This codepath does minimal patching, so we're at the mercy of upstream
-	# CFLAGS. This is fine - we're not intending to force this on users
-	# and we do a lot of flag 'management' anyway.
-	if use bundled-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/libqt6_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
-
-	# Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
-	${EPYTHON} "${FILESDIR}/generate-support-files.py" \
-		--installdir "/usr/$(get_libdir)/chromium-browser" \
-		--channel "${SLOT}" ||
-			die "Failed to generate support files"
-}
-
-src_test() {
-	# Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
-	# If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
-	# run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
-	# chromium gods are not smiling upon you today. Do some runtime testing, obvs.
-	local skip_tests=(
-		# Wildcard exclusions (if all tests in a test suite are broken)
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
-		'CheckExitCodeAfterSignalHandlerDeathTest.*'
-		'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
-		'PostJobTest.*' # M145 - fixed in 146?
-		'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
-		'LazyThreadPoolTaskRunnerTest.*'
-		'SequenceManager*' # Crashes test runner
-		'ToolsSanityTest.BadVirtualCall*'
-		# requires en-us locale
-		SysStrings.SysNativeMBAndWide
-		SysStrings.SysNativeMBToWide
-		SysStrings.SysWideToNativeMB
-		# Specific test cases
-		CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
-		FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
-		HistogramTesterTest.PumaTestUniqueSample
-		PathServiceTest.CheckedGetFailure
-		PlatformThreadTest.CanChangeThreadType
-		RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
-		RustLogIntegrationTest.CheckAllSeverity
-		StackCanary.ChangingStackCanaryCrashesOnReturn
-		StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
-		TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
-		ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
-	)
-	local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
-	# test-launcher-bot-mode enables parallelism and plain output
-	# Check individual tests with --gtest_filter=<test you want> --single-process-tests
-	./out/Release/base_unittests --test-launcher-bot-mode \
-		--test-launcher-jobs="$(makeopts_jobs)" \
-		--gtest_filter="${test_filter}" || die "Tests failed!"
-}
-
-src_install() {
-	local browser_suffix
-	if [[ "${SLOT}" != "stable" ]]; then
-		browser_suffix="-${SLOT}"
-	else
-		browser_suffix=""
-	fi
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${browser_suffix}"
-	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
-	}
-
-	cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-		#!/bin/bash
-		# Wrapper to launch slotted Chromium via the chromium-common launcher script.
-		export CHROME_DESKTOP="chromium-browser${browser_suffix}.desktop"
-		export CHROME_EXEC_NAME="chromium-browser${browser_suffix}"
-		export CHROME_VERSION_EXTRA="${SLOT}"
-		export CHROME_WRAPPER="\$(readlink -f "\$0")"
-		export OZONE_AUTO_SESSION=$(ozone_auto_session)
-
-		exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
-	EOF
-
-	chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-
-	# 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${browser_suffix}
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${browser_suffix}
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${browser_suffix}
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd > /dev/null || die
-
-	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${browser_suffix}.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser${browser_suffix}.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	doins out/Release/chromium-browser${browser_suffix}.xml
-
-	# Install AppStream metadata
-	insinto /usr/share/appdata
-	doins out/Release/chromium-browser${browser_suffix}.appdata.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser${browser_suffix}.1
-	dosym chromium-browser${browser_suffix}.1 /usr/share/man/man1/chromium${browser_suffix}.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 && [[ -z "${REPLACING_VERSIONS}" ]]; then
-		if use vaapi; then
-			elog "Hardware-accelerated video decoding configuration:"
-			elog
-			elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
-			elog "   Add to CHROMIUM_FLAGS in /etc/chromium/default:"
-			elog
-			elog "1. VA-API with OpenGL (recommended for most users):"
-			elog "   --enable-features=AcceleratedVideoDecodeLinuxGL"
-			elog "   VaapiVideoDecoder may need to be added as well, but try without first."
-			elog
-			if use wayland; then
-				elog "2. Enhanced Wayland/EGL performance:"
-				elog "   --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
-				elog
-			fi
-			if use X; then
-				elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
-				elog "   --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
-				elog
-				if use wayland; then
-					elog "   NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
-					elog "   Use OpenGL-based acceleration instead when running under Wayland."
-					elog
-				fi
-			fi
-			elog "Additional options:"
-			elog "  To enable hardware-accelerated encoding (if supported)"
-			elog "  add 'AcceleratedVideoEncoder' to your feature list"
-			elog "  VaapiIgnoreDriverChecks bypasses driver compatibility checks"
-			elog "  (may be needed for newer/unsupported hardware)"
-			elog
-		else
-			elog "This Chromium build was compiled without VA-API support, which provides"
-			elog "hardware-accelerated video decoding."
-		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
-
-	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
-
-	if [[ -n "${REPLACING_VERSIONS}" ]]; then
-		local replacing_non_slotted=false
-		# there could be more than one PVR
-		for version in ${REPLACING_VERSIONS}; do
-			if ver_test "${version}" -le "145.0.7632.116"; then
-				replacing_non_slotted=true
-				break
-			fi
-		done
-		if ${replacing_non_slotted}; then
-			ewarn "This version of Chromium has replaced a non-slotted ebuild."
-			if [[ ${SLOT} != "stable" ]]; then
-				ewarn "This channel has its own profile directory, so your existing profile will not be used."
-				ewarn "To use your existing profile, either copy or move it to the new location."
-				ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
-				ewarn ""
-			fi
-			ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
-			ewarn "or have the path in the desktop files updated to point to the new wrapper script."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-148.0.7778.215.ebuild b/www-client/chromium/chromium-148.0.7778.215.ebuild
deleted file mode 100644
index 55eee0eca898..000000000000
--- a/www-client/chromium/chromium-148.0.7778.215.ebuild
+++ /dev/null
@@ -1,1747 +0,0 @@
-# Copyright 2009-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# PACKAGING NOTES
-
-# Upstream 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 may eventually hit the point where we need to use
-# the bundled Clang due to the use of prerelease features.
-
-# USE=bundled-toolchain is intended for users who want to use the same toolchain
-# as the upstream releases. It's also a good fallback in case we fall behind
-# and need to get a release out quickly (less likely with `dev` in-tree).
-# We can't rely on it as a default since the toolchain is only shipped for x86-64;
-# other architectures will need to use system toolchain.
-
-# Since m133 we are using CI-generated tarballs from
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/
-
-# These are bit-for-bit identical to the official releases, but are built
-# using an external CI system that we have some control over, in case
-# issues pop up again with official tarball generation.
-
-GN_MIN_VER=0.2354
-# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
-TEST_FONT="a28b222b79851716f8358d2800157d9ffe117b3545031ae51f69b7e1e1b9a969"
-BUNDLED_CLANG_VER="llvmorg-23-init-5669-g8a0be0bc-4"
-BUNDLED_RUST_VER="6f54d591c3116ee7f8ce9321ddeca286810cc142-7"
-RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.12.0"
-ESBUILD_VER="0.25.1"
-ROLLUP_VER="4.57.1" # currently manual.
-VIRTUALX_REQUIRED="pgo"
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-LLVM_COMPAT=( 21 )
-PYTHON_COMPAT=( python3_{11..14} )
-PYTHON_REQ_USE="xml(+)"
-RUST_MIN_VER=1.91.0
-RUST_NEEDS_LLVM="yes please"
-RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
-RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
-inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
-PATCH_V="${PV%%\.*}-3"
-COPIUM_COMMIT="fe1caafa06f27542c18a881348f78e984e2d9fe2"
-SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV}/chromium-${PV}-linux.tar.xz
-	https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
-	https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
-	!bundled-toolchain? (
-		https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
-			-> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	)
-	bundled-toolchain? (
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
-			-> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
-			-> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
-	)
-	test? (
-		https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
-	)
-	ppc64? (
-		https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
-LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
-LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
-LICENSE+=" rar? ( unRAR )"
-
-SLOT="stable"
-# Unstable in gentoo exists mostly to give devs some breathing room for beta/stable releases.
-# It shouldn't be keyworded but adventurous users are encouraged to select it;
-# there's official dev channel Google Chrome after all.
-KEYWORDS="amd64 arm64"
-
-IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-zstd"
-IUSE="+X ${IUSE_SYSTEM_LIBS} bindist bundled-toolchain cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo"
-IUSE+=" +proprietary-codecs pulseaudio qt6 +rar +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
-RESTRICT="
-	!bindist? ( bindist )
-	!test? ( test )
-	arm64? ( test )" # Tests require CFI, which requires LTO, which is broken on arm64 with LLVM 21.
-
-REQUIRED_USE="
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-	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:=
-"
-
-# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
-# We _could_ use the bundled minizip, but that's against policy.
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-73.0:= )
-	>=dev-libs/libxml2-2.12.4:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-zstd? ( >=app-arch/zstd-1.5.5:= )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-2.6.0:=
-	sys-libs/zlib:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-libs/libpulse:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-base/xorg-proto:=
-			x11-libs/libX11:=
-			x11-libs/libxcb:=
-			x11-libs/libXext:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		cups? ( >=net-print/cups-1.3.11:= )
-		qt6? ( dev-qt/qtbase:6[gui,widgets] )
-		X? ( ${COMMON_X_DEPEND} )
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!www-client/chromium:0
-	>=www-client/chromium-common-2
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[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? (
-		qt6? ( dev-qt/qtbase:6 )
-	)
-	!bundled-toolchain? ( $(llvm_gen_dep '
-		llvm-core/clang:${LLVM_SLOT}
-		llvm-core/llvm:${LLVM_SLOT}
-		llvm-core/lld:${LLVM_SLOT}
-		official? (
-			!ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
-		) ')
-		${RUST_DEPEND}
-	)
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-	)
-	>=dev-util/bindgen-0.72.1
-	>=dev-build/gn-${GN_MIN_VER}
-	app-alternatives/ninja
-	dev-lang/perl
-	>=dev-util/gperf-3.2
-	dev-util/esbuild:${ESBUILD_VER}
-	dev-vcs/git
-	>=net-libs/nodejs-${NODE_VER}[inspector]
-	sys-apps/hwdata
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	x11-misc/xdg-utils
-"
-
-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.
-	# xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
-	local base_disk=9 # Round up
-	use test && base_disk=$((base_disk + 5))
-	local extra_disk=1 # Always include a little extra space
-	local memory=4
-	tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
-	if tc-is-lto || use pgo; then
-		memory=$((memory * 2 + 1))
-		tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
-		use pgo && extra_disk=$((extra_disk + 4))
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags; then
-			extra_disk=$((extra_disk + 5))
-		fi
-		memory=$((memory * 2))
-	fi
-	local CHECKREQS_MEMORY="${memory}G"
-	local 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" "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
-
-		# We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
-		local want_lto="false"
-		tc-is-lto && want_lto="true"
-
-		# 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.
-		if use !bundled-toolchain; then
-			llvm-r1_pkg_setup
-			rust_pkg_setup
-
-			# Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
-			AR=llvm-ar
-			CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
-			NM=llvm-nm
-			CC="${CHOST}-clang-${LLVM_SLOT}"
-			CXX="${CHOST}-clang++-${LLVM_SLOT}"
-		fi
-
-		use_lto="false"
-		local lto_usable="true"
-		if [[ "$want_lto" == "true" ]]; then
-			if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
-				einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
-				lto_usable="false"
-			else
-				use_lto="true"
-			fi
-			# We can rely on GN to do this for us; without this builds
-			# take significantly longer with LTO enabled.
-			filter-lto
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
-			einfo "USE=official selected and LTO not detected."
-			einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
-			einfo "and to be consistent with the upstream \"official\" build optimisations."
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use test; then
-			die "Tests require CFI which requires LTO"
-		fi
-
-		export use_lto
-
-		# 936858
-		if tc-ld-is-mold; then
-			eerror "Your toolchain is using the mold linker."
-			eerror "This is not supported by Chromium."
-			die "Please switch to a different linker."
-		fi
-
-		if tc-is-cross-compiler; then
-			use pgo && die "The pgo USE flag cannot be used when cross-compiling"
-			CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
-		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
-
-		# Sanity checks for 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
-
-		# Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
-		local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
-		if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
-			die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
-		fi
-	fi
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_unpack() {
-	unpack ${P}-linux.tar.xz
-	unpack chromium-patches-${PATCH_V}.tar.bz2
-	# These should only be required when we're not using the official toolchain
-	if use !bundled-toolchain; then
-		unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	fi
-
-	use pgo && unpack chromium-profiler-0.2.tar
-
-	if use test; then
-		# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
-		local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts/test_fonts"
-		local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
-		einfo "Unpacking test fonts ..."
-		tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
-	fi
-
-	# We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
-	# Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
-	if use bundled-toolchain; then
-		einfo "Unpacking bundled Clang ..."
-		mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
-		tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
-		einfo "Unpacking bundled Rust ..."
-		local rust_dir="${WORKDIR}/rust-toolchain"
-		mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
-		tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
-			die "Failed to unpack Rust"
-	fi
-
-	if use ppc64; then
-		unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	fi
-
-	# This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
-	# to build locally due to deps
-	unpack rollup-wasm-node-${ROLLUP_VER}.tgz
-}
-
-remove_compiler_builtins() {
-	# We can't use the bundled compiler builtins with the system toolchain
-	# We used to `grep` then `sed`, but it was indirect. Combining the two into a single
-	# `awk` command is more efficient and lets us document the logic more clearly.
-
-	local pattern='    configs += [ "//build/config/clang:compiler_builtins" ]'
-	local target='build/config/compiler/BUILD.gn'
-
-	local tmpfile
-	tmpfile=$(mktemp) || die "Failed to create temporary file."
-
-	if awk -v pat="${pattern}" '
-	BEGIN {
-		match_found = 0
-	}
-
-	# If the delete countdown is active, decrement it and skip to the next line.
-	d > 0 { d--; next }
-
-	# If the current line matches the pattern...
-	$0 == pat {
-		match_found = 1   # ...set our flag to true.
-		d = 2             # Set delete counter for this line and the next two.
-		prev = ""         # Clear the buffered previous line so it is not printed.
-		next
-	}
-
-	# For any other line, print the buffered previous line.
-	NR > 1 { print prev }
-
-	# Buffer the current line to be printed on the next cycle.
-	{ prev = $0 }
-
-	END {
-		# Print the last line if it was not part of a deleted block.
-		if (d == 0) { print prev }
-
-		# If the pattern was never found, exit with a failure code.
-		if (match_found == 0) {
-		exit 1
-		}
-	}
-	' "${target}" > "${tmpfile}"; then
-		# AWK SUCCEEDED (exit code 0): The pattern was found and edited.
-		# This is to avoid gawk's `-i inplace` option which users complain about.
-		mv "${tmpfile}" "${target}"
-	else
-		# AWK FAILED (exit code 1): The pattern was not found.
-		rm -f "${tmpfile}"
-		die "Awk patch failed: Pattern not found in ${target}."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# We'll fill this in as we go. Patches go in chromium-patches.
-	local PATCHES=()
-
-	PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
-
-	# https://issues.chromium.org/issues/442698344
-	# Unreleased fontconfig changed magic numbers and google have rolled to this version
-	if has_version "<=media-libs/fontconfig-2.17.1"; then
-		PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
-	fi
-
-	if use bundled-toolchain; then
-		# We need to symlink the toolchain into the expected location
-		einfo "Symlinking Clang toolchain to expected location ..."
-		mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
-		# the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
-		# upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
-		# llvm-build, but we'll rm Release+Asserts and symlink directly.
-		if [[ -d third_party/llvm-build/Release+Asserts ]]; then
-			rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
-		fi
-		ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
-		einfo "Symlinking Rust toolchain to expected location ..."
-		# As above, so below
-		if [[ -d third_party/rust-toolchain ]]; then
-			rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
-		fi
-		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"
-	else
-		# We don't need our toolchain patches if we're using the official toolchain
-
-		# Copium patches go here.
-		PATCHES+=(
-			"${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
-		)
-
-		# Automate conditional application of chromium-patches
-		# The directory structure is expected to be something like:
-		# chromium-patches-145/
-		# ├── toolchain/
-		# │   ├── cr123-foo.patch
-		# │   └── cr135-bar.patch
-		# ├── llvm/
-		# │   ├── cr144-baz.patch
-		# │   └── lt-23/
-		# │       └── cr145-bleeding-edge-llvm-feature.patch
-		# Where `lt-23` means "apply this patch if the LLVM version is less than 23".
-		# Only categories in `slot_map` will be checked for version constraints.
-		shopt -s nullglob
-		local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
-
-		for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
-			local category_name="${category%/}"
-			category_name="${category_name##*/}"
-
-			# Skip arch-specific categories
-			if [[ "${category_name}" == "ppc64le" ]]; then
-				use ppc64 || continue
-			fi
-
-			# We applied common patches above, no need to apply them again here
-			[[ "${category_name}" == "common" ]] && continue
-
-			# Unconditional patches for this category
-			PATCHES+=( "${category}"*.patch )
-
-			# Version-constrained subdirectories (e.g., llvm/lt-23/)
-			for constraint_dir in "${category}"*/; do
-				local dir_name="${constraint_dir%/}"
-				dir_name="${dir_name##*/}"
-				if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
-					ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
-						PATCHES+=( "${constraint_dir}"*.patch )
-				fi
-			done
-		done
-
-		shopt -u nullglob
-
-		# Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
-		if use ppc64; then
-			local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
-			# patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
-			local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
-			local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
-			# Apply the OpenPOWER patches (check for page size and isa 3.0)
-			openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
-				grep -v "${isa_3_patch}" || die) )
-			for patch in "${openpower_patches[@]}"; do
-				PATCHES+=( "${patchset_dir}/${patch}" )
-			done
-			if [[ $(getconf PAGESIZE) == 65536 ]]; then
-				PATCHES+=( "${patchset_dir}/${page_size_patch}" )
-			fi
-			# We use vsx3 as a proxy for 'want isa3.0' (POWER9)
-			if use cpu_flags_ppc_vsx3 ; then
-				PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
-			fi
-		fi
-
-		remove_compiler_builtins
-
-		# We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
-		local suffix=""
-		if [[ "${RUST_TYPE}" == "binary" ]]; then
-			suffix="-bin-${RUST_SLOT}"
-		else
-			suffix="-${RUST_SLOT}"
-		fi
-		sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
-			die "Failed to update rustfmt path"
-
-	fi
-
-	# Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
-	einfo "Moving rollup wasm-node package into place ..."
-	mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to create node_modules/@rollup/wasm-node"
-	mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to move rollup package"
-
-	default
-
-	# Sanity check esbuild version before we start removing files.
-	# We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
-	# arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
-	# but this is fine too and exactly matches what upstream are expecting.
-	# https://github.com/evanw/esbuild/issues/2894
-	local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
-	local found
-	found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
-	if [[ "${found}" != "${ESBUILD_VER}" ]]; then
-		die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
-	fi
-
-	elog "Removing bundled binaries from source tree ..."
-	# Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
-	# Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
-	${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
-		die "Failed to remove bundled binaries"
-
-	# And now we restore any that we actually need, from the host system
-	local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
-	local -A restore_list=(
-		["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
-		["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
-		["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
-	)
-
-	for src in "${!restore_list[@]}"; do
-		dst="${restore_list[${src}]}"
-		if [[ -f "${src}" ]]; then
-			einfo "Symlinking ${src} ..."
-			# Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
-			mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
-			ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
-			if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
-				die "Symlink verification failed for ${dst} -> ${src}"
-			fi
-		else
-			die "Expected to find ${src} to restore ${dst}, but it does not exist."
-		fi
-	done
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	# Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
-	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-		-i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
-
-	# remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
-	# whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		net/third_party/mozilla_security_manager
-		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/third_party/typ
-		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/compiler-rt # Since M137 atomic is required; we could probably unbundle this as a target of opportunity.
-		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/OpenGL-Registry
-		third_party/dawn/third_party/renderdoc
-		third_party/dawn/third_party/webgpu-headers
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/json5
-		third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
-		third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
-		third_party/devtools-frontend/src/front_end/third_party/third-party-web
-		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/front_end/third_party/web-vitals
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/dragonbox
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fast_float
-		third_party/fdlibm
-		third_party/federated_compute/chromium/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/base
-		third_party/federated_compute/src/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/federatedcompute
-		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/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
-		third_party/highway
-		third_party/hunspell
-		third_party/ink_stroke_modeler/src/ink_stroke_modeler
-		third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal
-		third_party/ink/src/ink/brush
-		third_party/ink/src/ink/color
-		third_party/ink/src/ink/geometry
-		third_party/ink/src/ink/rendering
-		third_party/ink/src/ink/rendering/skia/common_internal
-		third_party/ink/src/ink/rendering/skia/native
-		third_party/ink/src/ink/rendering/skia/native/internal
-		third_party/ink/src/ink/strokes
-		third_party/ink/src/ink/types
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/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/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libc++
-		third_party/libdrm
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libpfm4
-		third_party/libphonenumber
-		third_party/libpng
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libtess2/libtess2
-		third_party/libtess2/src/Include
-		third_party/libtess2/src/Source
-		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/llvm-libc
-		third_party/llvm-libc/src/shared/
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/ml_dtypes
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/oak/chromium/proto
-		third_party/oak/chromium/proto/attestation
-		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/pprof
-		third_party/perfetto/protos/third_party/primes
-		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/protobuf/third_party/utf8_range
-		third_party/pthreadpool
-		third_party/puffin
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/rapidhash
-		third_party/re2
-		third_party/readability
-		third_party/rnnoise
-		third_party/rust
-		third_party/ruy
-		third_party/s2cellid
-		third_party/search_engines_data
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		third_party/shell-encryption
-		third_party/simdutf
-		third_party/simplejson
-		third_party/six
-		third_party/skia
-		third_party/skia/include/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/fft2d
-		third_party/tflite/src/third_party/xla/third_party/tsl
-		third_party/tflite/src/third_party/xla/xla/tsl/framework
-		third_party/tflite/src/third_party/xla/xla/tsl/lib/random
-		third_party/tflite/src/third_party/xla/xla/tsl/platform
-		third_party/tflite/src/third_party/xla/xla/tsl/protobuf
-		third_party/tflite/src/third_party/xla/xla/tsl/util
-		third_party/ukey2
-		third_party/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/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/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/rapidhash-v8
-		v8/third_party/siphash
-		v8/third_party/utf8-decoder
-		v8/third_party/v8
-		v8/third_party/valgrind
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-	)
-
-	if use rar; then
-		keeplibs+=( third_party/unrar )
-	fi
-
-	if use test; then
-		keeplibs+=(
-			third_party/breakpad/breakpad/src/processor
-			third_party/fuzztest
-			third_party/google_benchmark/src/include/benchmark
-			third_party/google_benchmark/src/src
-			third_party/test_fonts
-			third_party/test_fonts/fontconfig
-			third_party/test_fonts/test_fonts
-		)
-	fi
-
-	# USE=system-*
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz )
-	fi
-
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-
-	if ! use system-zstd; then
-		keeplibs+=( third_party/zstd )
-	fi
-
-	# Arch-specific
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
-		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
-		# since we're not in a git repo
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
-	# and this enables us to hit them all at once.
-	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
-	whitelist_libs=(
-		net/third_party/quic
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/libjingle
-		third_party/mesa
-		third_party/skia/third_party/vulkan
-		third_party/vulkan
-	)
-	local not_found_libs=()
-	for lib in "${keeplibs[@]}"; do
-		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
-			not_found_libs+=( "${lib}" )
-		fi
-	done
-
-	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
-		eerror "The following \`keeplibs\` directories were not found in the source tree:"
-		for lib in "${not_found_libs[@]}"; do
-			eerror "  ${lib}"
-		done
-		die "Please update the ebuild."
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	einfo "Unbundling third-party libraries ..."
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	# Interferes with our bundled clang path; we don't want stripped binaries anyway.
-	sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
-		-e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
-		build/linux/strip_binary.gni || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# 974899: sometimes people try to build with a non-Unicode locale and python gets very upset
-	python_export_utf8_locale || die "Chromium builds require a UTF-8 locale."
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-
-	if use system-zstd; then
-		gn_system_libraries+=( zstd )
-	fi
-
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
-		die "Failed to replace GN files for system libraries"
-
-	# TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
-	# drop the last line, then append the freetype line and a new curly brace to end the block
-	local freetype_gni="build/config/freetype/freetype.gni"
-	sed -i -e '$d' ${freetype_gni} || die
-	echo "  enable_freetype = true" >> ${freetype_gni} || die
-	echo "}" >> ${freetype_gni} || die
-
-	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*"
-		# 949123: Several multimedia components explicitly build with specific CFLAGS and
-		# use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
-		# to the end of the command line, which causes build failures.
-		use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*"
-	fi
-
-	# 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 # can you cross-compile with the bundled toolchain?
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-	fi
-
-	# Start building our GN options
-	local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
-
-	if use !bundled-toolchain; then
-		# We already forced the "correct" clang via pkg_setup
-
-		if tc-is-cross-compiler; then
-			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_AR=${AR}
-			BUILD_CC=${CC}
-			BUILD_CXX=${CXX}
-			BUILD_NM=${NM}
-		fi
-
-		# Make sure the build system will use the right tools, bug #340795.
-		tc-export AR CC CXX NM
-
-		strip-unsupported-flags
-		append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
-
-		myconf_gn+=(
-			"is_clang=true"
-			"clang_use_chrome_plugins=false"
-			"use_clang_modules=false" # M141 enables this for the linux platform by default.
-			"use_lld=true"
-			'custom_toolchain="//build/toolchain/linux/unbundle:default"'
-			# From M127 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.
-			# We don't need to set 'clang_base_path' for anything in our build
-			# and it defaults to the google toolchain location. Instead provide a location
-			# to where system clang lives so that bindgen can find system headers (e.g. stddef.h)
-			"bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
-			"clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-			"rust_bindgen_root=\"${EPREFIX}/usr/\""
-			"rust_sysroot_absolute=\"$(get_rust_prefix)\""
-			"rustc_version=\"${RUST_SLOT}\""
-		)
-
-		if ! tc-is-cross-compiler; then
-			myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
-		else
-			tc-export BUILD_{AR,CC,CXX,NM}
-			myconf_gn+=(
-				'host_toolchain="//build/toolchain/linux/unbundle:host"'
-				'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
-				"host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-				"pkg_config=\"$(tc-getPKG_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=
-		fi
-
-	fi # !bundled-toolchain
-
-	local myarch
-	myarch="$(tc-arch)"
-	case ${myarch} in
-		amd64)
-			# Bug 530248, 544702, 546984, 853646.
-			use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
-										-mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-			myconf_gn+=( 'target_cpu="x64"' )
-			;;
-		arm64)
-			myconf_gn+=( 'target_cpu="arm64"' )
-			;;
-		ppc64)
-			myconf_gn+=( 'target_cpu="ppc64"' )
-			;;
-		*)
-			die "Failed to determine target arch, got '${myarch}'."
-			;;
-	esac
-
-	# Common options
-
-	myconf_gn+=(
-		# Disable code formating of generated files
-		"blink_enable_generated_code_formatting=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.
-		"dcheck_always_on=$(usex debug true false)"
-		"dcheck_is_configurable=$(usex debug true false)"
-		# Chromium builds provided by Linux distros should disable the testing config
-		"disable_fieldtrial_testing_config=true"
-		# Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
-		# use different profile directories, desktop entries, etc. This enables slotting the ebuild.
-		"enable_channel_branding=true"
-		# 131 began laying the groundwork for replacing freetype with
-		# "Rust-based Fontations set of libraries plus Skia path rendering"
-		# We now need to opt-in
-		"enable_freetype=true"
-		"enable_hangout_services_extension=$(usex hangouts true false)"
-		# Don't need nocompile checks and GN crashes with our config (verify with modern GN)
-		"enable_nocompile_tests=false"
-		# pseudolocales are only used for testing
-		"enable_pseudolocales=false"
-		"enable_widevine=$(usex widevine true false)"
-		# Disable fatal linker warnings, bug 506268.
-		"fatal_linker_warnings=false"
-		# 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 [email protected] for more info.
-		# note: OAuth2 is patched in; check patchset for details.
-		'google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"'
-		# Component build isn't generally intended for use by end users. It's mostly useful
-		# for development and debugging.
-		"is_component_build=false"
-		# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-		"is_debug=false"
-		"is_official_build=$(usex official true false)"
-		# Enable ozone wayland and/or headless support
-		"ozone_auto_platforms=false"
-		"ozone_platform_headless=true"
-		# Enables building without non-free unRAR licence
-		"safe_browsing_use_unrar=$(usex rar true false)"
-		"thin_lto_enable_optimizations=${use_lto}"
-		"treat_warnings_as_errors=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).
-		"use_custom_libcxx=true"
-		# Enable ozone wayland and/or headless support
-		"use_ozone=true"
-		# The sysroot is the oldest debian image that chromium supports, we don't need it
-		"use_sysroot=false"
-		# See dependency logic in third_party/BUILD.gn
-		"use_system_harfbuzz=$(usex system-harfbuzz true false)"
-		"use_thin_lto=${use_lto}"
-		# Only enabled for clang, but gcc has endian macros too
-		"v8_use_libm_trig_functions=true"
-	)
-
-	if use bindist ; then
-		myconf_gn+=(
-			# If this is set to false Chromium won't be able to load any proprietary codecs
-			# even if provided with an ffmpeg capable of h264/aac decoding
-			"proprietary_codecs=true"
-			'ffmpeg_branding="Chrome"'
-			# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
-			"is_component_ffmpeg=true"
-		)
-	else
-		myconf_gn+=(
-			"proprietary_codecs=$(usex proprietary-codecs true false)"
-			"ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
-		)
-	fi
-
-	if use headless; then
-		myconf_gn+=(
-			"enable_print_preview=false"
-			"enable_remoting=false"
-			'ozone_platform="headless"'
-			"rtc_use_pipewire=false"
-			"use_alsa=false"
-			"use_cups=false"
-			"use_gio=false"
-			"use_glib=false"
-			"use_gtk=false"
-			"use_kerberos=false"
-			"use_libpci=false"
-			"use_pangocairo=false"
-			"use_pulseaudio=false"
-			"use_qt5=false"
-			"use_qt6=false"
-			"use_udev=false"
-			"use_vaapi=false"
-			"use_xkbcommon=false"
-		)
-	else
-		myconf_gn+=(
-			"gtk_version=$(usex gtk4 4 3)"
-			# link pulseaudio directly (DT_NEEDED) instead of using dlopen.
-			# helps with automated detection of ABI mismatches and prevents silent errors.
-			"link_pulseaudio=$(usex pulseaudio true false)"
-			"ozone_platform_wayland=$(usex wayland true false)"
-			"ozone_platform_x11=$(usex X true false)"
-			"ozone_platform=\"$(usex wayland wayland x11)\""
-			"rtc_use_pipewire=$(usex screencast true false)"
-			"use_cups=$(usex cups true false)"
-			"use_kerberos=$(usex kerberos true false)"
-			"use_pulseaudio=$(usex pulseaudio true false)"
-			"use_qt5=false"
-			"use_system_libffi=$(usex wayland true false)"
-			"use_system_minigbm=true"
-			"use_vaapi=$(usex vaapi true false)"
-			"use_xkbcommon=true"
-		)
-		if use qt6; then
-			local cbuild_libdir
-			cbuild_libdir="$(get_libdir)"
-			if tc-is-cross-compiler; then
-			# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
-				cbuild_libdir="${cbuild_libdir:2}"
-				cbuild_libdir="${cbuild_libdir/% }"
-			fi
-			myconf_gn+=(
-				"use_qt6=true"
-				"moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
-			)
-		else
-			myconf_gn+=( "use_qt6=false" )
-		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
-
-	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
-		if use !ppc64; then
-			myconf_gn+=( "is_cfi=${use_lto}" )
-		else
-			myconf_gn+=( "is_cfi=false" ) # requires llvm-runtimes/compiler-rt-sanitizers[cfi]
-		fi
-		# 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
-		myconf_gn+=( "chrome_pgo_phase=0" )
-	fi
-
-	# Odds and ends
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=( "devtools_skip_typecheck=false" )
-	fi
-
-	# 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 && use ppc64; then
-		myconf_gn+=( "v8_enable_external_code_space=false" )
-	fi
-
-	# Since we build from tarballs, we need to set the channel here so that it can be used in the build.
-	export CHROME_VERSION_EXTRA="${SLOT}"
-
-	einfo "Configuring Chromium ..."
-	set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
-	echo "$@"
-	"$@" || die "Failed to configure Chromium"
-}
-
-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 code_cache_generator; do
-			if tc-is-cross-compiler; then
-				eninja -C out/Release "host/${x}"
-				pax-mark m "out/Release/host/${x}"
-			else
-				eninja -C out/Release "${x}"
-				pax-mark m "out/Release/${x}"
-			fi
-		done
-	fi
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests")
-
-	pax-mark m out/Release/chrome
-
-	# This codepath does minimal patching, so we're at the mercy of upstream
-	# CFLAGS. This is fine - we're not intending to force this on users
-	# and we do a lot of flag 'management' anyway.
-	if use bundled-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/libqt6_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
-
-	# Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
-	${EPYTHON} "${FILESDIR}/generate-support-files.py" \
-		--installdir "/usr/$(get_libdir)/chromium-browser" \
-		--channel "${SLOT}" ||
-			die "Failed to generate support files"
-}
-
-src_test() {
-	# Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
-	# If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
-	# run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
-	# chromium gods are not smiling upon you today. Do some runtime testing, obvs.
-	local skip_tests=(
-		# Wildcard exclusions (if all tests in a test suite are broken)
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
-		'CheckExitCodeAfterSignalHandlerDeathTest.*'
-		'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
-		'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
-		'ToolsSanityTest.BadVirtualCall*'
-		# requires en-us locale
-		SysStrings.SysNativeMBAndWide
-		SysStrings.SysNativeMBToWide
-		SysStrings.SysWideToNativeMB
-		# Specific test cases
-		CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
-		FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
-		HistogramTesterTest.PumaTestUniqueSample
-		PathServiceTest.CheckedGetFailure
-		PlatformThreadTest.CanChangeThreadType
-		RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
-		RustLogIntegrationTest.CheckAllSeverity
-		StackCanary.ChangingStackCanaryCrashesOnReturn
-		StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
-		TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
-		ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
-		# M148 Beta
-		RunUntilTestWithMockTime.ConditionOnlyObservedIfWorkIsDone
-	)
-	local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
-	# test-launcher-bot-mode enables parallelism and plain output
-	# Check individual tests with --gtest_filter=<test you want> --single-process-tests
-	./out/Release/base_unittests --test-launcher-bot-mode \
-		--test-launcher-jobs="$(get_makeopts_jobs)" \
-		--gtest_filter="${test_filter}" || die "Tests failed!"
-}
-
-src_install() {
-	local browser_suffix
-	if [[ "${SLOT}" != "stable" ]]; then
-		browser_suffix="-${SLOT}"
-	else
-		browser_suffix=""
-	fi
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${browser_suffix}"
-	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
-	}
-
-	cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-		#!/bin/bash
-		# Wrapper to launch slotted Chromium via the chromium-common launcher script.
-		export CHROME_DESKTOP="chromium-browser${browser_suffix}.desktop"
-		export CHROME_EXEC_NAME="chromium-browser${browser_suffix}"
-		export CHROME_VERSION_EXTRA="${SLOT}"
-		export CHROME_WRAPPER="\$(readlink -f "\$0")"
-		export OZONE_AUTO_SESSION=$(ozone_auto_session)
-
-		exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
-	EOF
-
-	chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-
-	# 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${browser_suffix}
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${browser_suffix}
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${browser_suffix}
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd > /dev/null || die
-
-	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[@]}"
-	)
-
-	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${browser_suffix}.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser${browser_suffix}.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	doins out/Release/chromium-browser${browser_suffix}.xml
-
-	# Install AppStream metadata
-	insinto /usr/share/appdata
-	doins out/Release/chromium-browser${browser_suffix}.appdata.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser${browser_suffix}.1
-	dosym chromium-browser${browser_suffix}.1 /usr/share/man/man1/chromium${browser_suffix}.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 && [[ -z "${REPLACING_VERSIONS}" ]]; then
-		if use vaapi; then
-			elog "Hardware-accelerated video decoding configuration:"
-			elog
-			elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
-			elog "   Add to CHROMIUM_FLAGS in /etc/chromium/default:"
-			elog
-			elog "1. VA-API with OpenGL (recommended for most users):"
-			elog "   --enable-features=AcceleratedVideoDecodeLinuxGL"
-			elog "   VaapiVideoDecoder may need to be added as well, but try without first."
-			elog
-			if use wayland; then
-				elog "2. Enhanced Wayland/EGL performance:"
-				elog "   --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
-				elog
-			fi
-			if use X; then
-				elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
-				elog "   --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
-				elog
-				if use wayland; then
-					elog "   NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
-					elog "   Use OpenGL-based acceleration instead when running under Wayland."
-					elog
-				fi
-			fi
-			elog "Additional options:"
-			elog "  To enable hardware-accelerated encoding (if supported)"
-			elog "  add 'AcceleratedVideoEncoder' to your feature list"
-			elog "  VaapiIgnoreDriverChecks bypasses driver compatibility checks"
-			elog "  (may be needed for newer/unsupported hardware)"
-			elog
-		else
-			elog "This Chromium build was compiled without VA-API support, which provides"
-			elog "hardware-accelerated video decoding."
-		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
-
-	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
-
-	# Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
-	if [[ -n "${REPLACING_VERSIONS}" ]]; then
-		local replacing_non_slotted=false
-		# there could be more than one PVR
-		for version in ${REPLACING_VERSIONS}; do
-			if ver_test "${version}" -le "145.0.7632.116"; then
-				replacing_non_slotted=true
-				break
-			fi
-		done
-		if ${replacing_non_slotted}; then
-			ewarn "This version of Chromium has replaced a non-slotted ebuild."
-			if [[ ${SLOT} != "stable" ]]; then
-				ewarn "This channel has its own profile directory, so your existing profile will not be used."
-				ewarn "To use your existing profile, either copy or move it to the new location."
-				ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
-				ewarn ""
-			fi
-			ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
-			ewarn "or have the path in the desktop files updated to point to the new wrapper script."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-149.0.7827.114.ebuild b/www-client/chromium/chromium-149.0.7827.114.ebuild
deleted file mode 100644
index 01ea2baa2ca2..000000000000
--- a/www-client/chromium/chromium-149.0.7827.114.ebuild
+++ /dev/null
@@ -1,1753 +0,0 @@
-# Copyright 2009-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# PACKAGING NOTES
-
-# Upstream 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 may eventually hit the point where we need to use
-# the bundled Clang due to the use of prerelease features.
-
-# USE=bundled-toolchain is intended for users who want to use the same toolchain
-# as the upstream releases. It's also a good fallback in case we fall behind
-# and need to get a release out quickly (less likely with `dev` in-tree).
-# We can't rely on it as a default since the toolchain is only shipped for x86-64;
-# other architectures will need to use system toolchain.
-
-# Since m133 we are using CI-generated tarballs from
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/
-
-# These are bit-for-bit identical to the official releases, but are built
-# using an external CI system that we have some control over, in case
-# issues pop up again with official tarball generation.
-
-GN_MIN_VER=0.2374
-# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
-# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
-TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9"
-BUNDLED_CLANG_VER="llvmorg-23-init-10931-g20b6ec66-8"
-BUNDLED_RUST_VER="4c4205163abcbd08948b3efab796c543ba1ea687-2"
-RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.12.0"
-ESBUILD_VER="0.25.1"
-ROLLUP_VER="4.57.1" # currently manual.
-VIRTUALX_REQUIRED="pgo"
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-LLVM_COMPAT=( 21 )
-PYTHON_COMPAT=( python3_{11..14} )
-PYTHON_REQ_USE="xml(+)"
-RUST_MIN_VER=1.91.0
-RUST_NEEDS_LLVM="yes please"
-RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
-RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
-inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
-PATCH_V="${PV%%\.*}-2"
-COPIUM_COMMIT="b00f26bb5e0781020da5f830981472a142c6baf1"
-SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV}/chromium-${PV}-linux.tar.xz
-	https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
-	https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
-	!bundled-toolchain? (
-		https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
-			-> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	)
-	bundled-toolchain? (
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
-			-> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
-			-> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
-	)
-	test? (
-		https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
-	)
-	ppc64? (
-		https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
-LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
-LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
-LICENSE+=" rar? ( unRAR )"
-
-SLOT="stable"
-# Unstable in gentoo exists mostly to give devs some breathing room for beta/stable releases.
-# It shouldn't be keyworded but adventurous users are encouraged to select it;
-# there's official dev channel Google Chrome after all.
-KEYWORDS="amd64 arm64"
-
-IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-zstd"
-IUSE="+X ${IUSE_SYSTEM_LIBS} bindist bundled-toolchain cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo"
-IUSE+=" +proprietary-codecs pulseaudio qt6 +rar +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
-RESTRICT="
-	!bindist? ( bindist )
-	!test? ( test )
-	arm64? ( test )" # Tests require CFI, which requires LTO, which is broken on arm64 with LLVM 21.
-
-REQUIRED_USE="
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-	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:=
-"
-
-# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
-# We _could_ use the bundled minizip, but that's against policy.
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-73.0:= )
-	>=dev-libs/libxml2-2.12.4:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-zstd? ( >=app-arch/zstd-1.5.5:= )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-2.6.0:=
-	sys-libs/zlib:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-libs/libpulse:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-base/xorg-proto:=
-			x11-libs/libX11:=
-			x11-libs/libxcb:=
-			x11-libs/libXext:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			dev-libs/wayland:=
-		)
-	)
-"
-
-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? (
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		cups? ( >=net-print/cups-1.3.11:= )
-		qt6? ( dev-qt/qtbase:6[gui,widgets] )
-		X? ( ${COMMON_X_DEPEND} )
-		wayland? ( screencast? ( media-video/pipewire:= ) )
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!www-client/chromium:0
-	>=www-client/chromium-common-2
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[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%%\.*} )
-	)
-"
-# For M149+ pipewire is a mandatory build-time dependency, but it's optional at runtime for most configurations.
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		media-video/pipewire
-		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? (
-		qt6? ( dev-qt/qtbase:6 )
-	)
-	!bundled-toolchain? ( $(llvm_gen_dep '
-		llvm-core/clang:${LLVM_SLOT}
-		llvm-core/llvm:${LLVM_SLOT}
-		llvm-core/lld:${LLVM_SLOT}
-		official? (
-			!ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
-		) ')
-		${RUST_DEPEND}
-	)
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-	)
-	>=dev-util/bindgen-0.72.1
-	>=dev-build/gn-${GN_MIN_VER}
-	app-alternatives/ninja
-	dev-lang/perl
-	>=dev-util/gperf-3.2
-	dev-util/esbuild:${ESBUILD_VER}
-	dev-vcs/git
-	>=net-libs/nodejs-${NODE_VER}[inspector]
-	sys-apps/hwdata
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	x11-misc/xdg-utils
-"
-
-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.
-	# xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
-	local base_disk=9 # Round up
-	use test && base_disk=$((base_disk + 5))
-	local extra_disk=1 # Always include a little extra space
-	local memory=4
-	tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
-	if tc-is-lto || use pgo; then
-		memory=$((memory * 2 + 1))
-		tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
-		use pgo && extra_disk=$((extra_disk + 4))
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags; then
-			extra_disk=$((extra_disk + 5))
-		fi
-		memory=$((memory * 2))
-	fi
-	local CHECKREQS_MEMORY="${memory}G"
-	local 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" "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
-
-		# We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
-		local want_lto="false"
-		tc-is-lto && want_lto="true"
-
-		# 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.
-		if use !bundled-toolchain; then
-			llvm-r1_pkg_setup
-			rust_pkg_setup
-
-			# Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
-			AR=llvm-ar
-			CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
-			NM=llvm-nm
-			CC="${CHOST}-clang-${LLVM_SLOT}"
-			CXX="${CHOST}-clang++-${LLVM_SLOT}"
-		fi
-
-		use_lto="false"
-		local lto_usable="true"
-		if [[ "$want_lto" == "true" ]]; then
-			if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
-				einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
-				lto_usable="false"
-			else
-				use_lto="true"
-			fi
-			# We can rely on GN to do this for us; without this builds
-			# take significantly longer with LTO enabled.
-			filter-lto
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
-			einfo "USE=official selected and LTO not detected."
-			einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
-			einfo "and to be consistent with the upstream \"official\" build optimisations."
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use test; then
-			die "Tests require CFI which requires LTO"
-		fi
-
-		export use_lto
-
-		# 936858
-		if tc-ld-is-mold; then
-			eerror "Your toolchain is using the mold linker."
-			eerror "This is not supported by Chromium."
-			die "Please switch to a different linker."
-		fi
-
-		if tc-is-cross-compiler; then
-			use pgo && die "The pgo USE flag cannot be used when cross-compiling"
-			CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
-		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
-
-		# Sanity checks for 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
-
-		# Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
-		local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
-		if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
-			die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
-		fi
-	fi
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_unpack() {
-	unpack ${P}-linux.tar.xz
-	unpack chromium-patches-${PATCH_V}.tar.bz2
-	# These should only be required when we're not using the official toolchain
-	if use !bundled-toolchain; then
-		unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	fi
-
-	use pgo && unpack chromium-profiler-0.2.tar
-
-	if use test; then
-		# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
-		local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts/test_fonts"
-		local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
-		einfo "Unpacking test fonts ..."
-		tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
-	fi
-
-	# We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
-	# Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
-	if use bundled-toolchain; then
-		einfo "Unpacking bundled Clang ..."
-		mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
-		tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
-		einfo "Unpacking bundled Rust ..."
-		local rust_dir="${WORKDIR}/rust-toolchain"
-		mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
-		tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
-			die "Failed to unpack Rust"
-	fi
-
-	if use ppc64; then
-		unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	fi
-
-	# This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
-	# to build locally due to deps
-	unpack rollup-wasm-node-${ROLLUP_VER}.tgz
-}
-
-remove_compiler_builtins() {
-	# We can't use the bundled compiler builtins with the system toolchain
-	# We used to `grep` then `sed`, but it was indirect. Combining the two into a single
-	# `awk` command is more efficient and lets us document the logic more clearly.
-
-	local pattern='    configs += [ "//build/config/clang:compiler_builtins" ]'
-	local target='build/config/compiler/BUILD.gn'
-
-	local tmpfile
-	tmpfile=$(mktemp) || die "Failed to create temporary file."
-
-	if awk -v pat="${pattern}" '
-	BEGIN {
-		match_found = 0
-	}
-
-	# If the delete countdown is active, decrement it and skip to the next line.
-	d > 0 { d--; next }
-
-	# If the current line matches the pattern...
-	$0 == pat {
-		match_found = 1   # ...set our flag to true.
-		d = 2             # Set delete counter for this line and the next two.
-		prev = ""         # Clear the buffered previous line so it is not printed.
-		next
-	}
-
-	# For any other line, print the buffered previous line.
-	NR > 1 { print prev }
-
-	# Buffer the current line to be printed on the next cycle.
-	{ prev = $0 }
-
-	END {
-		# Print the last line if it was not part of a deleted block.
-		if (d == 0) { print prev }
-
-		# If the pattern was never found, exit with a failure code.
-		if (match_found == 0) {
-		exit 1
-		}
-	}
-	' "${target}" > "${tmpfile}"; then
-		# AWK SUCCEEDED (exit code 0): The pattern was found and edited.
-		# This is to avoid gawk's `-i inplace` option which users complain about.
-		mv "${tmpfile}" "${target}"
-	else
-		# AWK FAILED (exit code 1): The pattern was not found.
-		rm -f "${tmpfile}"
-		die "Awk patch failed: Pattern not found in ${target}."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# We'll fill this in as we go. Patches go in chromium-patches.
-	local PATCHES=()
-
-	PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
-
-	# https://issues.chromium.org/issues/442698344
-	# Unreleased fontconfig changed magic numbers and google have rolled to this version
-	if has_version "<=media-libs/fontconfig-2.17.1"; then
-		PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
-	fi
-
-	if use bundled-toolchain; then
-		# We need to symlink the toolchain into the expected location
-		einfo "Symlinking Clang toolchain to expected location ..."
-		mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
-		# the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
-		# upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
-		# llvm-build, but we'll rm Release+Asserts and symlink directly.
-		if [[ -d third_party/llvm-build/Release+Asserts ]]; then
-			rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
-		fi
-		ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
-		einfo "Symlinking Rust toolchain to expected location ..."
-		# As above, so below
-		if [[ -d third_party/rust-toolchain ]]; then
-			rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
-		fi
-		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"
-	else
-		# We don't need our toolchain patches if we're using the official toolchain
-
-		# Copium patches go here.
-		PATCHES+=(
-			"${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
-			"${WORKDIR}/copium/cr149-unbundle-minizip-undo-unicode.patch"
-		)
-
-		# Automate conditional application of chromium-patches
-		# The directory structure is expected to be something like:
-		# chromium-patches-145/
-		# ├── toolchain/
-		# │   ├── cr123-foo.patch
-		# │   └── cr135-bar.patch
-		# ├── llvm/
-		# │   ├── cr144-baz.patch
-		# │   └── lt-23/
-		# │       └── cr145-bleeding-edge-llvm-feature.patch
-		# Where `lt-23` means "apply this patch if the LLVM version is less than 23".
-		# Only categories in `slot_map` will be checked for version constraints.
-		shopt -s nullglob
-		local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
-
-		for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
-			local category_name="${category%/}"
-			category_name="${category_name##*/}"
-
-			# Skip arch-specific categories
-			if [[ "${category_name}" == "ppc64le" ]]; then
-				use ppc64 || continue
-			fi
-
-			# We applied common patches above, no need to apply them again here
-			[[ "${category_name}" == "common" ]] && continue
-
-			# Unconditional patches for this category
-			local category_patches=( "${category}"*.patch )
-			[[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" )
-
-			# Version-constrained subdirectories (e.g., llvm/lt-23/)
-			for constraint_dir in "${category}"*/; do
-				local dir_name="${constraint_dir%/}"
-				dir_name="${dir_name##*/}"
-				if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
-					ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
-						PATCHES+=( "${constraint_dir}" )
-				fi
-			done
-		done
-
-		shopt -u nullglob
-
-		# Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
-		if use ppc64; then
-			local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
-			# patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
-			local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
-			local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
-			# Apply the OpenPOWER patches (check for page size and isa 3.0)
-			openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
-				grep -v "${isa_3_patch}" || die) )
-			for patch in "${openpower_patches[@]}"; do
-				PATCHES+=( "${patchset_dir}/${patch}" )
-			done
-			if [[ $(getconf PAGESIZE) == 65536 ]]; then
-				PATCHES+=( "${patchset_dir}/${page_size_patch}" )
-			fi
-			# We use vsx3 as a proxy for 'want isa3.0' (POWER9)
-			if use cpu_flags_ppc_vsx3 ; then
-				PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
-			fi
-		fi
-
-		remove_compiler_builtins
-
-		# We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
-		local suffix=""
-		if [[ "${RUST_TYPE}" == "binary" ]]; then
-			suffix="-bin-${RUST_SLOT}"
-		else
-			suffix="-${RUST_SLOT}"
-		fi
-		sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
-			die "Failed to update rustfmt path"
-
-	fi
-
-	# Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
-	einfo "Moving rollup wasm-node package into place ..."
-	mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to create node_modules/@rollup/wasm-node"
-	mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to move rollup package"
-
-	default
-
-	# Sanity check esbuild version before we start removing files.
-	# We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
-	# arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
-	# but this is fine too and exactly matches what upstream are expecting.
-	# https://github.com/evanw/esbuild/issues/2894
-	local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
-	local found
-	found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
-	if [[ "${found}" != "${ESBUILD_VER}" ]]; then
-		die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
-	fi
-
-	elog "Removing bundled binaries from source tree ..."
-	# Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
-	# Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
-	${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
-		die "Failed to remove bundled binaries"
-
-	# And now we restore any that we actually need, from the host system
-	local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
-	local -A restore_list=(
-		["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
-		["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
-		["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
-	)
-
-	for src in "${!restore_list[@]}"; do
-		dst="${restore_list[${src}]}"
-		if [[ -f "${src}" ]]; then
-			einfo "Symlinking ${src} ..."
-			# Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
-			mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
-			ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
-			if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
-				die "Symlink verification failed for ${dst} -> ${src}"
-			fi
-		else
-			die "Expected to find ${src} to restore ${dst}, but it does not exist."
-		fi
-	done
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	# Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
-	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-		-i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
-
-	# remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
-	# whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		net/third_party/mozilla_security_manager
-		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/third_party/typ
-		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/compiler-rt # Since M137 atomic is required; we could probably unbundle this as a target of opportunity.
-		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/OpenGL-Registry
-		third_party/dawn/third_party/renderdoc
-		third_party/dawn/third_party/webgpu-headers
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/json5
-		third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/urlpattern-polyfill
-		third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
-		third_party/devtools-frontend/src/front_end/third_party/third-party-web
-		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/front_end/third_party/web-vitals
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/dragonbox
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fast_float
-		third_party/fdlibm
-		third_party/federated_compute/chromium/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/base
-		third_party/federated_compute/src/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/federatedcompute
-		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/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
-		third_party/highway
-		third_party/hunspell
-		third_party/ink/src/ink/brush
-		third_party/ink/src/ink/color
-		third_party/ink/src/ink/geometry
-		third_party/ink/src/ink/rendering
-		third_party/ink/src/ink/rendering/skia/common_internal
-		third_party/ink/src/ink/rendering/skia/native
-		third_party/ink/src/ink/rendering/skia/native/internal
-		third_party/ink/src/ink/strokes
-		third_party/ink/src/ink/types
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/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/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libc++
-		third_party/libdrm
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libpfm4
-		third_party/libphonenumber
-		third_party/libpng
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libtess2/libtess2
-		third_party/libtess2/src/Include
-		third_party/libtess2/src/Source
-		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/llvm-libc
-		third_party/llvm-libc/src/shared/
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/ml_dtypes
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/oak/chromium/proto
-		third_party/oak/chromium/proto/attestation
-		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/pprof
-		third_party/perfetto/protos/third_party/primes
-		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/protobuf/third_party/utf8_range
-		third_party/pthreadpool
-		third_party/puffin
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/rapidhash
-		third_party/re2
-		third_party/readability
-		third_party/rnnoise
-		third_party/rust
-		third_party/ruy
-		third_party/s2cellid
-		third_party/search_engines_data
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		third_party/shell-encryption
-		third_party/simdutf
-		third_party/simplejson
-		third_party/six
-		third_party/skia
-		third_party/skia/include/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/fft2d
-		third_party/tflite/src/third_party/xla/third_party/tsl
-		third_party/tflite/src/third_party/xla/xla/tsl/framework
-		third_party/tflite/src/third_party/xla/xla/tsl/lib/random
-		third_party/tflite/src/third_party/xla/xla/tsl/platform
-		third_party/tflite/src/third_party/xla/xla/tsl/protobuf
-		third_party/tflite/src/third_party/xla/xla/tsl/util
-		third_party/ukey2
-		third_party/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/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/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/rapidhash-v8
-		v8/third_party/siphash
-		v8/third_party/utf8-decoder
-		v8/third_party/v8
-		v8/third_party/valgrind
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-	)
-
-	if use rar; then
-		keeplibs+=( third_party/unrar )
-	fi
-
-	if use test; then
-		keeplibs+=(
-			third_party/breakpad/breakpad/src/processor
-			third_party/fuzztest
-			third_party/google_benchmark/src/include/benchmark
-			third_party/google_benchmark/src/src
-			third_party/test_fonts
-			third_party/test_fonts/fontconfig
-			third_party/test_fonts/test_fonts
-		)
-	fi
-
-	# USE=system-*
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz )
-	fi
-
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-
-	if ! use system-zstd; then
-		keeplibs+=( third_party/zstd )
-	fi
-
-	# Arch-specific
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
-		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
-		# since we're not in a git repo
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
-	# and this enables us to hit them all at once.
-	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
-	whitelist_libs=(
-		net/third_party/quic
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/libjingle
-		third_party/mesa
-		third_party/skia/third_party/vulkan
-		third_party/vulkan
-	)
-	local not_found_libs=()
-	for lib in "${keeplibs[@]}"; do
-		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
-			not_found_libs+=( "${lib}" )
-		fi
-	done
-
-	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
-		eerror "The following \`keeplibs\` directories were not found in the source tree:"
-		for lib in "${not_found_libs[@]}"; do
-			eerror "  ${lib}"
-		done
-		die "Please update the ebuild."
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	einfo "Unbundling third-party libraries ..."
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	# Interferes with our bundled clang path; we don't want stripped binaries anyway.
-	sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
-		-e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
-		build/linux/strip_binary.gni || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# 974899: sometimes people try to build with a non-Unicode locale and python gets very upset
-	python_export_utf8_locale || die "Chromium builds require a UTF-8 locale."
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-
-	if use system-zstd; then
-		gn_system_libraries+=( zstd )
-	fi
-
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
-		die "Failed to replace GN files for system libraries"
-
-	# TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
-	# drop the last line, then append the freetype line and a new curly brace to end the block
-	local freetype_gni="build/config/freetype/freetype.gni"
-	sed -i -e '$d' ${freetype_gni} || die
-	echo "  enable_freetype = true" >> ${freetype_gni} || die
-	echo "}" >> ${freetype_gni} || die
-
-	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*"
-		# 949123: Several multimedia components explicitly build with specific CFLAGS and
-		# use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
-		# to the end of the command line, which causes build failures.
-		use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*"
-	fi
-
-	# 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 # can you cross-compile with the bundled toolchain?
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-	fi
-
-	# Start building our GN options
-	local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
-
-	if use !bundled-toolchain; then
-		# We already forced the "correct" clang via pkg_setup
-
-		if tc-is-cross-compiler; then
-			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_AR=${AR}
-			BUILD_CC=${CC}
-			BUILD_CXX=${CXX}
-			BUILD_NM=${NM}
-		fi
-
-		# Make sure the build system will use the right tools, bug #340795.
-		tc-export AR CC CXX NM
-
-		strip-unsupported-flags
-		append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
-
-		myconf_gn+=(
-			"is_clang=true"
-			"clang_use_chrome_plugins=false"
-			"use_clang_modules=false" # M141 enables this for the linux platform by default.
-			"use_lld=true"
-			'custom_toolchain="//build/toolchain/linux/unbundle:default"'
-			# From M127 we need to provide a location for libclang and the clang resource dir so that bindgen can find them
-			"bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
-			"bindgen_clang_resource_dir=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\""
-			"bindgen_extra_clang_args=[\"-I${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"]"
-			"clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-			"rust_bindgen_root=\"${EPREFIX}/usr/\""
-			"rust_sysroot_absolute=\"$(get_rust_prefix)\""
-			"rustc_version=\"${RUST_SLOT}\""
-		)
-
-		if [[ ${LLVM_SLOT} -lt 23 ]]; then
-			# Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23)
-			myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' )
-		fi
-
-		if ! tc-is-cross-compiler; then
-			myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
-		else
-			tc-export BUILD_{AR,CC,CXX,NM}
-			myconf_gn+=(
-				'host_toolchain="//build/toolchain/linux/unbundle:host"'
-				'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
-				"host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-				"pkg_config=\"$(tc-getPKG_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=
-		fi
-
-	fi # !bundled-toolchain
-
-	local myarch
-	myarch="$(tc-arch)"
-	case ${myarch} in
-		amd64)
-			# Bug 530248, 544702, 546984, 853646.
-			use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
-										-mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-			myconf_gn+=( 'target_cpu="x64"' )
-			;;
-		arm64)
-			myconf_gn+=( 'target_cpu="arm64"' )
-			;;
-		ppc64)
-			myconf_gn+=( 'target_cpu="ppc64"' )
-			;;
-		*)
-			die "Failed to determine target arch, got '${myarch}'."
-			;;
-	esac
-
-	# Common options
-
-	myconf_gn+=(
-		# Disable code formating of generated files
-		"blink_enable_generated_code_formatting=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.
-		"dcheck_always_on=$(usex debug true false)"
-		"dcheck_is_configurable=$(usex debug true false)"
-		# Chromium builds provided by Linux distros should disable the testing config
-		"disable_fieldtrial_testing_config=true"
-		# Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
-		# use different profile directories, desktop entries, etc. This enables slotting the ebuild.
-		"enable_channel_branding=true"
-		# 131 began laying the groundwork for replacing freetype with
-		# "Rust-based Fontations set of libraries plus Skia path rendering"
-		# We now need to opt-in
-		"enable_freetype=true"
-		"enable_hangout_services_extension=$(usex hangouts true false)"
-		# Don't need nocompile checks and GN crashes with our config (verify with modern GN)
-		"enable_nocompile_tests=false"
-		# pseudolocales are only used for testing
-		"enable_pseudolocales=false"
-		"enable_widevine=$(usex widevine true false)"
-		# Disable fatal linker warnings, bug 506268.
-		"fatal_linker_warnings=false"
-		# 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 [email protected] for more info.
-		# note: OAuth2 is patched in; check patchset for details.
-		'google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"'
-		# Component build isn't generally intended for use by end users. It's mostly useful
-		# for development and debugging.
-		"is_component_build=false"
-		# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-		"is_debug=false"
-		"is_official_build=$(usex official true false)"
-		# Enable ozone wayland and/or headless support
-		"ozone_auto_platforms=false"
-		"ozone_platform_headless=true"
-		# Enables building without non-free unRAR licence
-		"safe_browsing_use_unrar=$(usex rar true false)"
-		"thin_lto_enable_optimizations=${use_lto}"
-		"treat_warnings_as_errors=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).
-		"use_custom_libcxx=true"
-		# Enable ozone wayland and/or headless support
-		"use_ozone=true"
-		# The sysroot is the oldest debian image that chromium supports, we don't need it
-		"use_sysroot=false"
-		# See dependency logic in third_party/BUILD.gn
-		"use_system_harfbuzz=$(usex system-harfbuzz true false)"
-		"use_thin_lto=${use_lto}"
-		# Only enabled for clang, but gcc has endian macros too
-		"v8_use_libm_trig_functions=true"
-	)
-
-	if use bindist ; then
-		myconf_gn+=(
-			# If this is set to false Chromium won't be able to load any proprietary codecs
-			# even if provided with an ffmpeg capable of h264/aac decoding
-			"proprietary_codecs=true"
-			'ffmpeg_branding="Chrome"'
-			# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
-			"is_component_ffmpeg=true"
-		)
-	else
-		myconf_gn+=(
-			"proprietary_codecs=$(usex proprietary-codecs true false)"
-			"ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
-		)
-	fi
-
-	if use headless; then
-		myconf_gn+=(
-			"enable_print_preview=false"
-			"enable_remoting=false"
-			'ozone_platform="headless"'
-			"rtc_use_pipewire=false"
-			"use_alsa=false"
-			"use_cups=false"
-			"use_gio=false"
-			"use_glib=false"
-			"use_gtk=false"
-			"use_kerberos=false"
-			"use_libpci=false"
-			"use_pangocairo=false"
-			"use_pulseaudio=false"
-			"use_qt5=false"
-			"use_qt6=false"
-			"use_udev=false"
-			"use_vaapi=false"
-			"use_xkbcommon=false"
-		)
-	else
-		myconf_gn+=(
-			"gtk_version=$(usex gtk4 4 3)"
-			# link pulseaudio directly (DT_NEEDED) instead of using dlopen.
-			# helps with automated detection of ABI mismatches and prevents silent errors.
-			"link_pulseaudio=$(usex pulseaudio true false)"
-			"ozone_platform_wayland=$(usex wayland true false)"
-			"ozone_platform_x11=$(usex X true false)"
-			"ozone_platform=\"$(usex wayland wayland x11)\""
-			"rtc_use_pipewire=$(usex screencast true false)"
-			# As above - link directly instead of dlopening
-			"rtc_link_pipewire=$(usex screencast true false)"
-			"use_cups=$(usex cups true false)"
-			"use_kerberos=$(usex kerberos true false)"
-			"use_pulseaudio=$(usex pulseaudio true false)"
-			"use_qt5=false"
-			"use_system_libffi=$(usex wayland true false)"
-			"use_system_minigbm=true"
-			"use_vaapi=$(usex vaapi true false)"
-			"use_xkbcommon=true"
-		)
-		if use qt6; then
-			local cbuild_libdir
-			cbuild_libdir="$(get_libdir)"
-			if tc-is-cross-compiler; then
-			# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
-				cbuild_libdir="${cbuild_libdir:2}"
-				cbuild_libdir="${cbuild_libdir/% }"
-			fi
-			myconf_gn+=(
-				"use_qt6=true"
-				"moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
-			)
-		else
-			myconf_gn+=( "use_qt6=false" )
-		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
-
-	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
-		if use !ppc64; then
-			myconf_gn+=( "is_cfi=${use_lto}" )
-		else
-			myconf_gn+=( "is_cfi=false" ) # requires llvm-runtimes/compiler-rt-sanitizers[cfi]
-		fi
-		# 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
-		myconf_gn+=( "chrome_pgo_phase=0" )
-	fi
-
-	# Odds and ends
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=( "devtools_skip_typecheck=false" )
-	fi
-
-	# 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 && use ppc64; then
-		myconf_gn+=( "v8_enable_external_code_space=false" )
-	fi
-
-	# Since we build from tarballs, we need to set the channel here so that it can be used in the build.
-	export CHROME_VERSION_EXTRA="${SLOT}"
-
-	einfo "Configuring Chromium ..."
-	set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
-	echo "$@"
-	"$@" || die "Failed to configure Chromium"
-}
-
-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 code_cache_generator; do
-			if tc-is-cross-compiler; then
-				eninja -C out/Release "host/${x}"
-				pax-mark m "out/Release/host/${x}"
-			else
-				eninja -C out/Release "${x}"
-				pax-mark m "out/Release/${x}"
-			fi
-		done
-	fi
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests")
-
-	pax-mark m out/Release/chrome
-
-	# This codepath does minimal patching, so we're at the mercy of upstream
-	# CFLAGS. This is fine - we're not intending to force this on users
-	# and we do a lot of flag 'management' anyway.
-	if use bundled-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/libqt6_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
-
-	# Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
-	${EPYTHON} "${FILESDIR}/generate-support-files.py" \
-		--installdir "/usr/$(get_libdir)/chromium-browser" \
-		--channel "${SLOT}" ||
-			die "Failed to generate support files"
-}
-
-src_test() {
-	# Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
-	# If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
-	# run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
-	# chromium gods are not smiling upon you today. Do some runtime testing, obvs.
-	local skip_tests=(
-		# Wildcard exclusions (if all tests in a test suite are broken)
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
-		'CheckExitCodeAfterSignalHandlerDeathTest.*'
-		'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
-		'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
-		'ToolsSanityTest.BadVirtualCall*'
-		# requires en-us locale
-		SysStrings.SysNativeMBAndWide
-		SysStrings.SysNativeMBToWide
-		SysStrings.SysWideToNativeMB
-		# Specific test cases
-		CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
-		FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
-		HistogramTesterTest.PumaTestUniqueSample
-		PathServiceTest.CheckedGetFailure
-		PlatformThreadTest.CanChangeThreadType
-		RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
-		RustLogIntegrationTest.CheckAllSeverity
-		StackCanary.ChangingStackCanaryCrashesOnReturn
-		StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
-		TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
-		ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
-	)
-	local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
-	# test-launcher-bot-mode enables parallelism and plain output
-	# Check individual tests with --gtest_filter=<test you want> --single-process-tests
-	./out/Release/base_unittests --test-launcher-bot-mode \
-		--test-launcher-jobs="$(get_makeopts_jobs)" \
-		--gtest_filter="${test_filter}" || die "Tests failed!"
-}
-
-src_install() {
-	local browser_suffix
-	if [[ "${SLOT}" != "stable" ]]; then
-		browser_suffix="-${SLOT}"
-	else
-		browser_suffix=""
-	fi
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${browser_suffix}"
-	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
-	}
-
-	cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-		#!/bin/bash
-		# Wrapper to launch slotted Chromium via the chromium-common launcher script.
-		export CHROME_DESKTOP="chromium-browser${browser_suffix}.desktop"
-		export CHROME_EXEC_NAME="chromium-browser${browser_suffix}"
-		export CHROME_VERSION_EXTRA="${SLOT}"
-		export CHROME_WRAPPER="\$(readlink -f "\$0")"
-		export OZONE_AUTO_SESSION=$(ozone_auto_session)
-
-		exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
-	EOF
-
-	chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-
-	# 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${browser_suffix}
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${browser_suffix}
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${browser_suffix}
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd > /dev/null || die
-
-	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[@]}"
-	)
-
-	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${browser_suffix}.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser${browser_suffix}.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	doins out/Release/chromium-browser${browser_suffix}.xml
-
-	# Install AppStream metadata
-	insinto /usr/share/appdata
-	doins out/Release/chromium-browser${browser_suffix}.appdata.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser${browser_suffix}.1
-	dosym chromium-browser${browser_suffix}.1 /usr/share/man/man1/chromium${browser_suffix}.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 && [[ -z "${REPLACING_VERSIONS}" ]]; then
-		if use vaapi; then
-			elog "Hardware-accelerated video decoding configuration:"
-			elog
-			elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
-			elog "   Add to CHROMIUM_FLAGS in /etc/chromium/default:"
-			elog
-			elog "1. VA-API with OpenGL (recommended for most users):"
-			elog "   --enable-features=AcceleratedVideoDecodeLinuxGL"
-			elog "   VaapiVideoDecoder may need to be added as well, but try without first."
-			elog
-			if use wayland; then
-				elog "2. Enhanced Wayland/EGL performance:"
-				elog "   --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
-				elog
-			fi
-			if use X; then
-				elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
-				elog "   --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
-				elog
-				if use wayland; then
-					elog "   NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
-					elog "   Use OpenGL-based acceleration instead when running under Wayland."
-					elog
-				fi
-			fi
-			elog "Additional options:"
-			elog "  To enable hardware-accelerated encoding (if supported)"
-			elog "  add 'AcceleratedVideoEncoder' to your feature list"
-			elog "  VaapiIgnoreDriverChecks bypasses driver compatibility checks"
-			elog "  (may be needed for newer/unsupported hardware)"
-			elog
-		else
-			elog "This Chromium build was compiled without VA-API support, which provides"
-			elog "hardware-accelerated video decoding."
-		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
-
-	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
-
-	# Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
-	if [[ -n "${REPLACING_VERSIONS}" ]]; then
-		local replacing_non_slotted=false
-		# there could be more than one PVR
-		for version in ${REPLACING_VERSIONS}; do
-			if ver_test "${version}" -le "145.0.7632.116"; then
-				replacing_non_slotted=true
-				break
-			fi
-		done
-		if ${replacing_non_slotted}; then
-			ewarn "This version of Chromium has replaced a non-slotted ebuild."
-			if [[ ${SLOT} != "stable" ]]; then
-				ewarn "This channel has its own profile directory, so your existing profile will not be used."
-				ewarn "To use your existing profile, either copy or move it to the new location."
-				ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
-				ewarn ""
-			fi
-			ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
-			ewarn "or have the path in the desktop files updated to point to the new wrapper script."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-149.0.7827.155.ebuild b/www-client/chromium/chromium-149.0.7827.155.ebuild
deleted file mode 100644
index 01ea2baa2ca2..000000000000
--- a/www-client/chromium/chromium-149.0.7827.155.ebuild
+++ /dev/null
@@ -1,1753 +0,0 @@
-# Copyright 2009-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# PACKAGING NOTES
-
-# Upstream 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 may eventually hit the point where we need to use
-# the bundled Clang due to the use of prerelease features.
-
-# USE=bundled-toolchain is intended for users who want to use the same toolchain
-# as the upstream releases. It's also a good fallback in case we fall behind
-# and need to get a release out quickly (less likely with `dev` in-tree).
-# We can't rely on it as a default since the toolchain is only shipped for x86-64;
-# other architectures will need to use system toolchain.
-
-# Since m133 we are using CI-generated tarballs from
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/
-
-# These are bit-for-bit identical to the official releases, but are built
-# using an external CI system that we have some control over, in case
-# issues pop up again with official tarball generation.
-
-GN_MIN_VER=0.2374
-# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
-# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
-TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9"
-BUNDLED_CLANG_VER="llvmorg-23-init-10931-g20b6ec66-8"
-BUNDLED_RUST_VER="4c4205163abcbd08948b3efab796c543ba1ea687-2"
-RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.12.0"
-ESBUILD_VER="0.25.1"
-ROLLUP_VER="4.57.1" # currently manual.
-VIRTUALX_REQUIRED="pgo"
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-LLVM_COMPAT=( 21 )
-PYTHON_COMPAT=( python3_{11..14} )
-PYTHON_REQ_USE="xml(+)"
-RUST_MIN_VER=1.91.0
-RUST_NEEDS_LLVM="yes please"
-RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
-RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
-inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
-PATCH_V="${PV%%\.*}-2"
-COPIUM_COMMIT="b00f26bb5e0781020da5f830981472a142c6baf1"
-SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV}/chromium-${PV}-linux.tar.xz
-	https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
-	https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
-	!bundled-toolchain? (
-		https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
-			-> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	)
-	bundled-toolchain? (
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
-			-> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
-			-> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
-	)
-	test? (
-		https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
-	)
-	ppc64? (
-		https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
-LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
-LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
-LICENSE+=" rar? ( unRAR )"
-
-SLOT="stable"
-# Unstable in gentoo exists mostly to give devs some breathing room for beta/stable releases.
-# It shouldn't be keyworded but adventurous users are encouraged to select it;
-# there's official dev channel Google Chrome after all.
-KEYWORDS="amd64 arm64"
-
-IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-zstd"
-IUSE="+X ${IUSE_SYSTEM_LIBS} bindist bundled-toolchain cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo"
-IUSE+=" +proprietary-codecs pulseaudio qt6 +rar +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
-RESTRICT="
-	!bindist? ( bindist )
-	!test? ( test )
-	arm64? ( test )" # Tests require CFI, which requires LTO, which is broken on arm64 with LLVM 21.
-
-REQUIRED_USE="
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-	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:=
-"
-
-# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
-# We _could_ use the bundled minizip, but that's against policy.
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-73.0:= )
-	>=dev-libs/libxml2-2.12.4:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-zstd? ( >=app-arch/zstd-1.5.5:= )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-2.6.0:=
-	sys-libs/zlib:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-libs/libpulse:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-base/xorg-proto:=
-			x11-libs/libX11:=
-			x11-libs/libxcb:=
-			x11-libs/libXext:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			dev-libs/wayland:=
-		)
-	)
-"
-
-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? (
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		cups? ( >=net-print/cups-1.3.11:= )
-		qt6? ( dev-qt/qtbase:6[gui,widgets] )
-		X? ( ${COMMON_X_DEPEND} )
-		wayland? ( screencast? ( media-video/pipewire:= ) )
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!www-client/chromium:0
-	>=www-client/chromium-common-2
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[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%%\.*} )
-	)
-"
-# For M149+ pipewire is a mandatory build-time dependency, but it's optional at runtime for most configurations.
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		media-video/pipewire
-		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? (
-		qt6? ( dev-qt/qtbase:6 )
-	)
-	!bundled-toolchain? ( $(llvm_gen_dep '
-		llvm-core/clang:${LLVM_SLOT}
-		llvm-core/llvm:${LLVM_SLOT}
-		llvm-core/lld:${LLVM_SLOT}
-		official? (
-			!ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
-		) ')
-		${RUST_DEPEND}
-	)
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-	)
-	>=dev-util/bindgen-0.72.1
-	>=dev-build/gn-${GN_MIN_VER}
-	app-alternatives/ninja
-	dev-lang/perl
-	>=dev-util/gperf-3.2
-	dev-util/esbuild:${ESBUILD_VER}
-	dev-vcs/git
-	>=net-libs/nodejs-${NODE_VER}[inspector]
-	sys-apps/hwdata
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	x11-misc/xdg-utils
-"
-
-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.
-	# xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
-	local base_disk=9 # Round up
-	use test && base_disk=$((base_disk + 5))
-	local extra_disk=1 # Always include a little extra space
-	local memory=4
-	tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
-	if tc-is-lto || use pgo; then
-		memory=$((memory * 2 + 1))
-		tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
-		use pgo && extra_disk=$((extra_disk + 4))
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags; then
-			extra_disk=$((extra_disk + 5))
-		fi
-		memory=$((memory * 2))
-	fi
-	local CHECKREQS_MEMORY="${memory}G"
-	local 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" "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
-
-		# We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
-		local want_lto="false"
-		tc-is-lto && want_lto="true"
-
-		# 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.
-		if use !bundled-toolchain; then
-			llvm-r1_pkg_setup
-			rust_pkg_setup
-
-			# Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
-			AR=llvm-ar
-			CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
-			NM=llvm-nm
-			CC="${CHOST}-clang-${LLVM_SLOT}"
-			CXX="${CHOST}-clang++-${LLVM_SLOT}"
-		fi
-
-		use_lto="false"
-		local lto_usable="true"
-		if [[ "$want_lto" == "true" ]]; then
-			if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
-				einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
-				lto_usable="false"
-			else
-				use_lto="true"
-			fi
-			# We can rely on GN to do this for us; without this builds
-			# take significantly longer with LTO enabled.
-			filter-lto
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
-			einfo "USE=official selected and LTO not detected."
-			einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
-			einfo "and to be consistent with the upstream \"official\" build optimisations."
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use test; then
-			die "Tests require CFI which requires LTO"
-		fi
-
-		export use_lto
-
-		# 936858
-		if tc-ld-is-mold; then
-			eerror "Your toolchain is using the mold linker."
-			eerror "This is not supported by Chromium."
-			die "Please switch to a different linker."
-		fi
-
-		if tc-is-cross-compiler; then
-			use pgo && die "The pgo USE flag cannot be used when cross-compiling"
-			CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
-		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
-
-		# Sanity checks for 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
-
-		# Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
-		local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
-		if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
-			die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
-		fi
-	fi
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_unpack() {
-	unpack ${P}-linux.tar.xz
-	unpack chromium-patches-${PATCH_V}.tar.bz2
-	# These should only be required when we're not using the official toolchain
-	if use !bundled-toolchain; then
-		unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	fi
-
-	use pgo && unpack chromium-profiler-0.2.tar
-
-	if use test; then
-		# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
-		local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts/test_fonts"
-		local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
-		einfo "Unpacking test fonts ..."
-		tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
-	fi
-
-	# We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
-	# Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
-	if use bundled-toolchain; then
-		einfo "Unpacking bundled Clang ..."
-		mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
-		tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
-		einfo "Unpacking bundled Rust ..."
-		local rust_dir="${WORKDIR}/rust-toolchain"
-		mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
-		tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
-			die "Failed to unpack Rust"
-	fi
-
-	if use ppc64; then
-		unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	fi
-
-	# This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
-	# to build locally due to deps
-	unpack rollup-wasm-node-${ROLLUP_VER}.tgz
-}
-
-remove_compiler_builtins() {
-	# We can't use the bundled compiler builtins with the system toolchain
-	# We used to `grep` then `sed`, but it was indirect. Combining the two into a single
-	# `awk` command is more efficient and lets us document the logic more clearly.
-
-	local pattern='    configs += [ "//build/config/clang:compiler_builtins" ]'
-	local target='build/config/compiler/BUILD.gn'
-
-	local tmpfile
-	tmpfile=$(mktemp) || die "Failed to create temporary file."
-
-	if awk -v pat="${pattern}" '
-	BEGIN {
-		match_found = 0
-	}
-
-	# If the delete countdown is active, decrement it and skip to the next line.
-	d > 0 { d--; next }
-
-	# If the current line matches the pattern...
-	$0 == pat {
-		match_found = 1   # ...set our flag to true.
-		d = 2             # Set delete counter for this line and the next two.
-		prev = ""         # Clear the buffered previous line so it is not printed.
-		next
-	}
-
-	# For any other line, print the buffered previous line.
-	NR > 1 { print prev }
-
-	# Buffer the current line to be printed on the next cycle.
-	{ prev = $0 }
-
-	END {
-		# Print the last line if it was not part of a deleted block.
-		if (d == 0) { print prev }
-
-		# If the pattern was never found, exit with a failure code.
-		if (match_found == 0) {
-		exit 1
-		}
-	}
-	' "${target}" > "${tmpfile}"; then
-		# AWK SUCCEEDED (exit code 0): The pattern was found and edited.
-		# This is to avoid gawk's `-i inplace` option which users complain about.
-		mv "${tmpfile}" "${target}"
-	else
-		# AWK FAILED (exit code 1): The pattern was not found.
-		rm -f "${tmpfile}"
-		die "Awk patch failed: Pattern not found in ${target}."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# We'll fill this in as we go. Patches go in chromium-patches.
-	local PATCHES=()
-
-	PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
-
-	# https://issues.chromium.org/issues/442698344
-	# Unreleased fontconfig changed magic numbers and google have rolled to this version
-	if has_version "<=media-libs/fontconfig-2.17.1"; then
-		PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
-	fi
-
-	if use bundled-toolchain; then
-		# We need to symlink the toolchain into the expected location
-		einfo "Symlinking Clang toolchain to expected location ..."
-		mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
-		# the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
-		# upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
-		# llvm-build, but we'll rm Release+Asserts and symlink directly.
-		if [[ -d third_party/llvm-build/Release+Asserts ]]; then
-			rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
-		fi
-		ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
-		einfo "Symlinking Rust toolchain to expected location ..."
-		# As above, so below
-		if [[ -d third_party/rust-toolchain ]]; then
-			rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
-		fi
-		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"
-	else
-		# We don't need our toolchain patches if we're using the official toolchain
-
-		# Copium patches go here.
-		PATCHES+=(
-			"${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
-			"${WORKDIR}/copium/cr149-unbundle-minizip-undo-unicode.patch"
-		)
-
-		# Automate conditional application of chromium-patches
-		# The directory structure is expected to be something like:
-		# chromium-patches-145/
-		# ├── toolchain/
-		# │   ├── cr123-foo.patch
-		# │   └── cr135-bar.patch
-		# ├── llvm/
-		# │   ├── cr144-baz.patch
-		# │   └── lt-23/
-		# │       └── cr145-bleeding-edge-llvm-feature.patch
-		# Where `lt-23` means "apply this patch if the LLVM version is less than 23".
-		# Only categories in `slot_map` will be checked for version constraints.
-		shopt -s nullglob
-		local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
-
-		for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
-			local category_name="${category%/}"
-			category_name="${category_name##*/}"
-
-			# Skip arch-specific categories
-			if [[ "${category_name}" == "ppc64le" ]]; then
-				use ppc64 || continue
-			fi
-
-			# We applied common patches above, no need to apply them again here
-			[[ "${category_name}" == "common" ]] && continue
-
-			# Unconditional patches for this category
-			local category_patches=( "${category}"*.patch )
-			[[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" )
-
-			# Version-constrained subdirectories (e.g., llvm/lt-23/)
-			for constraint_dir in "${category}"*/; do
-				local dir_name="${constraint_dir%/}"
-				dir_name="${dir_name##*/}"
-				if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
-					ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
-						PATCHES+=( "${constraint_dir}" )
-				fi
-			done
-		done
-
-		shopt -u nullglob
-
-		# Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
-		if use ppc64; then
-			local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
-			# patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
-			local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
-			local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
-			# Apply the OpenPOWER patches (check for page size and isa 3.0)
-			openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
-				grep -v "${isa_3_patch}" || die) )
-			for patch in "${openpower_patches[@]}"; do
-				PATCHES+=( "${patchset_dir}/${patch}" )
-			done
-			if [[ $(getconf PAGESIZE) == 65536 ]]; then
-				PATCHES+=( "${patchset_dir}/${page_size_patch}" )
-			fi
-			# We use vsx3 as a proxy for 'want isa3.0' (POWER9)
-			if use cpu_flags_ppc_vsx3 ; then
-				PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
-			fi
-		fi
-
-		remove_compiler_builtins
-
-		# We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
-		local suffix=""
-		if [[ "${RUST_TYPE}" == "binary" ]]; then
-			suffix="-bin-${RUST_SLOT}"
-		else
-			suffix="-${RUST_SLOT}"
-		fi
-		sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
-			die "Failed to update rustfmt path"
-
-	fi
-
-	# Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
-	einfo "Moving rollup wasm-node package into place ..."
-	mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to create node_modules/@rollup/wasm-node"
-	mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to move rollup package"
-
-	default
-
-	# Sanity check esbuild version before we start removing files.
-	# We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
-	# arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
-	# but this is fine too and exactly matches what upstream are expecting.
-	# https://github.com/evanw/esbuild/issues/2894
-	local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
-	local found
-	found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
-	if [[ "${found}" != "${ESBUILD_VER}" ]]; then
-		die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
-	fi
-
-	elog "Removing bundled binaries from source tree ..."
-	# Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
-	# Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
-	${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
-		die "Failed to remove bundled binaries"
-
-	# And now we restore any that we actually need, from the host system
-	local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
-	local -A restore_list=(
-		["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
-		["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
-		["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
-	)
-
-	for src in "${!restore_list[@]}"; do
-		dst="${restore_list[${src}]}"
-		if [[ -f "${src}" ]]; then
-			einfo "Symlinking ${src} ..."
-			# Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
-			mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
-			ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
-			if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
-				die "Symlink verification failed for ${dst} -> ${src}"
-			fi
-		else
-			die "Expected to find ${src} to restore ${dst}, but it does not exist."
-		fi
-	done
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	# Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
-	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-		-i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
-
-	# remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
-	# whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		net/third_party/mozilla_security_manager
-		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/third_party/typ
-		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/compiler-rt # Since M137 atomic is required; we could probably unbundle this as a target of opportunity.
-		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/OpenGL-Registry
-		third_party/dawn/third_party/renderdoc
-		third_party/dawn/third_party/webgpu-headers
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/json5
-		third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/urlpattern-polyfill
-		third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
-		third_party/devtools-frontend/src/front_end/third_party/third-party-web
-		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/front_end/third_party/web-vitals
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/dragonbox
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fast_float
-		third_party/fdlibm
-		third_party/federated_compute/chromium/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/base
-		third_party/federated_compute/src/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/federatedcompute
-		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/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
-		third_party/highway
-		third_party/hunspell
-		third_party/ink/src/ink/brush
-		third_party/ink/src/ink/color
-		third_party/ink/src/ink/geometry
-		third_party/ink/src/ink/rendering
-		third_party/ink/src/ink/rendering/skia/common_internal
-		third_party/ink/src/ink/rendering/skia/native
-		third_party/ink/src/ink/rendering/skia/native/internal
-		third_party/ink/src/ink/strokes
-		third_party/ink/src/ink/types
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/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/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libc++
-		third_party/libdrm
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libpfm4
-		third_party/libphonenumber
-		third_party/libpng
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libtess2/libtess2
-		third_party/libtess2/src/Include
-		third_party/libtess2/src/Source
-		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/llvm-libc
-		third_party/llvm-libc/src/shared/
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/ml_dtypes
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/oak/chromium/proto
-		third_party/oak/chromium/proto/attestation
-		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/pprof
-		third_party/perfetto/protos/third_party/primes
-		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/protobuf/third_party/utf8_range
-		third_party/pthreadpool
-		third_party/puffin
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/rapidhash
-		third_party/re2
-		third_party/readability
-		third_party/rnnoise
-		third_party/rust
-		third_party/ruy
-		third_party/s2cellid
-		third_party/search_engines_data
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		third_party/shell-encryption
-		third_party/simdutf
-		third_party/simplejson
-		third_party/six
-		third_party/skia
-		third_party/skia/include/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/fft2d
-		third_party/tflite/src/third_party/xla/third_party/tsl
-		third_party/tflite/src/third_party/xla/xla/tsl/framework
-		third_party/tflite/src/third_party/xla/xla/tsl/lib/random
-		third_party/tflite/src/third_party/xla/xla/tsl/platform
-		third_party/tflite/src/third_party/xla/xla/tsl/protobuf
-		third_party/tflite/src/third_party/xla/xla/tsl/util
-		third_party/ukey2
-		third_party/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/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/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/rapidhash-v8
-		v8/third_party/siphash
-		v8/third_party/utf8-decoder
-		v8/third_party/v8
-		v8/third_party/valgrind
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-	)
-
-	if use rar; then
-		keeplibs+=( third_party/unrar )
-	fi
-
-	if use test; then
-		keeplibs+=(
-			third_party/breakpad/breakpad/src/processor
-			third_party/fuzztest
-			third_party/google_benchmark/src/include/benchmark
-			third_party/google_benchmark/src/src
-			third_party/test_fonts
-			third_party/test_fonts/fontconfig
-			third_party/test_fonts/test_fonts
-		)
-	fi
-
-	# USE=system-*
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz )
-	fi
-
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-
-	if ! use system-zstd; then
-		keeplibs+=( third_party/zstd )
-	fi
-
-	# Arch-specific
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
-		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
-		# since we're not in a git repo
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
-	# and this enables us to hit them all at once.
-	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
-	whitelist_libs=(
-		net/third_party/quic
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/libjingle
-		third_party/mesa
-		third_party/skia/third_party/vulkan
-		third_party/vulkan
-	)
-	local not_found_libs=()
-	for lib in "${keeplibs[@]}"; do
-		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
-			not_found_libs+=( "${lib}" )
-		fi
-	done
-
-	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
-		eerror "The following \`keeplibs\` directories were not found in the source tree:"
-		for lib in "${not_found_libs[@]}"; do
-			eerror "  ${lib}"
-		done
-		die "Please update the ebuild."
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	einfo "Unbundling third-party libraries ..."
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	# Interferes with our bundled clang path; we don't want stripped binaries anyway.
-	sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
-		-e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
-		build/linux/strip_binary.gni || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# 974899: sometimes people try to build with a non-Unicode locale and python gets very upset
-	python_export_utf8_locale || die "Chromium builds require a UTF-8 locale."
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-
-	if use system-zstd; then
-		gn_system_libraries+=( zstd )
-	fi
-
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
-		die "Failed to replace GN files for system libraries"
-
-	# TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
-	# drop the last line, then append the freetype line and a new curly brace to end the block
-	local freetype_gni="build/config/freetype/freetype.gni"
-	sed -i -e '$d' ${freetype_gni} || die
-	echo "  enable_freetype = true" >> ${freetype_gni} || die
-	echo "}" >> ${freetype_gni} || die
-
-	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*"
-		# 949123: Several multimedia components explicitly build with specific CFLAGS and
-		# use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
-		# to the end of the command line, which causes build failures.
-		use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*"
-	fi
-
-	# 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 # can you cross-compile with the bundled toolchain?
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-	fi
-
-	# Start building our GN options
-	local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
-
-	if use !bundled-toolchain; then
-		# We already forced the "correct" clang via pkg_setup
-
-		if tc-is-cross-compiler; then
-			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_AR=${AR}
-			BUILD_CC=${CC}
-			BUILD_CXX=${CXX}
-			BUILD_NM=${NM}
-		fi
-
-		# Make sure the build system will use the right tools, bug #340795.
-		tc-export AR CC CXX NM
-
-		strip-unsupported-flags
-		append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
-
-		myconf_gn+=(
-			"is_clang=true"
-			"clang_use_chrome_plugins=false"
-			"use_clang_modules=false" # M141 enables this for the linux platform by default.
-			"use_lld=true"
-			'custom_toolchain="//build/toolchain/linux/unbundle:default"'
-			# From M127 we need to provide a location for libclang and the clang resource dir so that bindgen can find them
-			"bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
-			"bindgen_clang_resource_dir=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\""
-			"bindgen_extra_clang_args=[\"-I${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"]"
-			"clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-			"rust_bindgen_root=\"${EPREFIX}/usr/\""
-			"rust_sysroot_absolute=\"$(get_rust_prefix)\""
-			"rustc_version=\"${RUST_SLOT}\""
-		)
-
-		if [[ ${LLVM_SLOT} -lt 23 ]]; then
-			# Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23)
-			myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' )
-		fi
-
-		if ! tc-is-cross-compiler; then
-			myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
-		else
-			tc-export BUILD_{AR,CC,CXX,NM}
-			myconf_gn+=(
-				'host_toolchain="//build/toolchain/linux/unbundle:host"'
-				'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
-				"host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-				"pkg_config=\"$(tc-getPKG_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=
-		fi
-
-	fi # !bundled-toolchain
-
-	local myarch
-	myarch="$(tc-arch)"
-	case ${myarch} in
-		amd64)
-			# Bug 530248, 544702, 546984, 853646.
-			use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
-										-mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-			myconf_gn+=( 'target_cpu="x64"' )
-			;;
-		arm64)
-			myconf_gn+=( 'target_cpu="arm64"' )
-			;;
-		ppc64)
-			myconf_gn+=( 'target_cpu="ppc64"' )
-			;;
-		*)
-			die "Failed to determine target arch, got '${myarch}'."
-			;;
-	esac
-
-	# Common options
-
-	myconf_gn+=(
-		# Disable code formating of generated files
-		"blink_enable_generated_code_formatting=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.
-		"dcheck_always_on=$(usex debug true false)"
-		"dcheck_is_configurable=$(usex debug true false)"
-		# Chromium builds provided by Linux distros should disable the testing config
-		"disable_fieldtrial_testing_config=true"
-		# Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
-		# use different profile directories, desktop entries, etc. This enables slotting the ebuild.
-		"enable_channel_branding=true"
-		# 131 began laying the groundwork for replacing freetype with
-		# "Rust-based Fontations set of libraries plus Skia path rendering"
-		# We now need to opt-in
-		"enable_freetype=true"
-		"enable_hangout_services_extension=$(usex hangouts true false)"
-		# Don't need nocompile checks and GN crashes with our config (verify with modern GN)
-		"enable_nocompile_tests=false"
-		# pseudolocales are only used for testing
-		"enable_pseudolocales=false"
-		"enable_widevine=$(usex widevine true false)"
-		# Disable fatal linker warnings, bug 506268.
-		"fatal_linker_warnings=false"
-		# 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 [email protected] for more info.
-		# note: OAuth2 is patched in; check patchset for details.
-		'google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"'
-		# Component build isn't generally intended for use by end users. It's mostly useful
-		# for development and debugging.
-		"is_component_build=false"
-		# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-		"is_debug=false"
-		"is_official_build=$(usex official true false)"
-		# Enable ozone wayland and/or headless support
-		"ozone_auto_platforms=false"
-		"ozone_platform_headless=true"
-		# Enables building without non-free unRAR licence
-		"safe_browsing_use_unrar=$(usex rar true false)"
-		"thin_lto_enable_optimizations=${use_lto}"
-		"treat_warnings_as_errors=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).
-		"use_custom_libcxx=true"
-		# Enable ozone wayland and/or headless support
-		"use_ozone=true"
-		# The sysroot is the oldest debian image that chromium supports, we don't need it
-		"use_sysroot=false"
-		# See dependency logic in third_party/BUILD.gn
-		"use_system_harfbuzz=$(usex system-harfbuzz true false)"
-		"use_thin_lto=${use_lto}"
-		# Only enabled for clang, but gcc has endian macros too
-		"v8_use_libm_trig_functions=true"
-	)
-
-	if use bindist ; then
-		myconf_gn+=(
-			# If this is set to false Chromium won't be able to load any proprietary codecs
-			# even if provided with an ffmpeg capable of h264/aac decoding
-			"proprietary_codecs=true"
-			'ffmpeg_branding="Chrome"'
-			# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
-			"is_component_ffmpeg=true"
-		)
-	else
-		myconf_gn+=(
-			"proprietary_codecs=$(usex proprietary-codecs true false)"
-			"ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
-		)
-	fi
-
-	if use headless; then
-		myconf_gn+=(
-			"enable_print_preview=false"
-			"enable_remoting=false"
-			'ozone_platform="headless"'
-			"rtc_use_pipewire=false"
-			"use_alsa=false"
-			"use_cups=false"
-			"use_gio=false"
-			"use_glib=false"
-			"use_gtk=false"
-			"use_kerberos=false"
-			"use_libpci=false"
-			"use_pangocairo=false"
-			"use_pulseaudio=false"
-			"use_qt5=false"
-			"use_qt6=false"
-			"use_udev=false"
-			"use_vaapi=false"
-			"use_xkbcommon=false"
-		)
-	else
-		myconf_gn+=(
-			"gtk_version=$(usex gtk4 4 3)"
-			# link pulseaudio directly (DT_NEEDED) instead of using dlopen.
-			# helps with automated detection of ABI mismatches and prevents silent errors.
-			"link_pulseaudio=$(usex pulseaudio true false)"
-			"ozone_platform_wayland=$(usex wayland true false)"
-			"ozone_platform_x11=$(usex X true false)"
-			"ozone_platform=\"$(usex wayland wayland x11)\""
-			"rtc_use_pipewire=$(usex screencast true false)"
-			# As above - link directly instead of dlopening
-			"rtc_link_pipewire=$(usex screencast true false)"
-			"use_cups=$(usex cups true false)"
-			"use_kerberos=$(usex kerberos true false)"
-			"use_pulseaudio=$(usex pulseaudio true false)"
-			"use_qt5=false"
-			"use_system_libffi=$(usex wayland true false)"
-			"use_system_minigbm=true"
-			"use_vaapi=$(usex vaapi true false)"
-			"use_xkbcommon=true"
-		)
-		if use qt6; then
-			local cbuild_libdir
-			cbuild_libdir="$(get_libdir)"
-			if tc-is-cross-compiler; then
-			# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
-				cbuild_libdir="${cbuild_libdir:2}"
-				cbuild_libdir="${cbuild_libdir/% }"
-			fi
-			myconf_gn+=(
-				"use_qt6=true"
-				"moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
-			)
-		else
-			myconf_gn+=( "use_qt6=false" )
-		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
-
-	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
-		if use !ppc64; then
-			myconf_gn+=( "is_cfi=${use_lto}" )
-		else
-			myconf_gn+=( "is_cfi=false" ) # requires llvm-runtimes/compiler-rt-sanitizers[cfi]
-		fi
-		# 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
-		myconf_gn+=( "chrome_pgo_phase=0" )
-	fi
-
-	# Odds and ends
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=( "devtools_skip_typecheck=false" )
-	fi
-
-	# 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 && use ppc64; then
-		myconf_gn+=( "v8_enable_external_code_space=false" )
-	fi
-
-	# Since we build from tarballs, we need to set the channel here so that it can be used in the build.
-	export CHROME_VERSION_EXTRA="${SLOT}"
-
-	einfo "Configuring Chromium ..."
-	set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
-	echo "$@"
-	"$@" || die "Failed to configure Chromium"
-}
-
-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 code_cache_generator; do
-			if tc-is-cross-compiler; then
-				eninja -C out/Release "host/${x}"
-				pax-mark m "out/Release/host/${x}"
-			else
-				eninja -C out/Release "${x}"
-				pax-mark m "out/Release/${x}"
-			fi
-		done
-	fi
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests")
-
-	pax-mark m out/Release/chrome
-
-	# This codepath does minimal patching, so we're at the mercy of upstream
-	# CFLAGS. This is fine - we're not intending to force this on users
-	# and we do a lot of flag 'management' anyway.
-	if use bundled-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/libqt6_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
-
-	# Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
-	${EPYTHON} "${FILESDIR}/generate-support-files.py" \
-		--installdir "/usr/$(get_libdir)/chromium-browser" \
-		--channel "${SLOT}" ||
-			die "Failed to generate support files"
-}
-
-src_test() {
-	# Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
-	# If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
-	# run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
-	# chromium gods are not smiling upon you today. Do some runtime testing, obvs.
-	local skip_tests=(
-		# Wildcard exclusions (if all tests in a test suite are broken)
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
-		'CheckExitCodeAfterSignalHandlerDeathTest.*'
-		'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
-		'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
-		'ToolsSanityTest.BadVirtualCall*'
-		# requires en-us locale
-		SysStrings.SysNativeMBAndWide
-		SysStrings.SysNativeMBToWide
-		SysStrings.SysWideToNativeMB
-		# Specific test cases
-		CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
-		FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
-		HistogramTesterTest.PumaTestUniqueSample
-		PathServiceTest.CheckedGetFailure
-		PlatformThreadTest.CanChangeThreadType
-		RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
-		RustLogIntegrationTest.CheckAllSeverity
-		StackCanary.ChangingStackCanaryCrashesOnReturn
-		StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
-		TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
-		ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
-	)
-	local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
-	# test-launcher-bot-mode enables parallelism and plain output
-	# Check individual tests with --gtest_filter=<test you want> --single-process-tests
-	./out/Release/base_unittests --test-launcher-bot-mode \
-		--test-launcher-jobs="$(get_makeopts_jobs)" \
-		--gtest_filter="${test_filter}" || die "Tests failed!"
-}
-
-src_install() {
-	local browser_suffix
-	if [[ "${SLOT}" != "stable" ]]; then
-		browser_suffix="-${SLOT}"
-	else
-		browser_suffix=""
-	fi
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${browser_suffix}"
-	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
-	}
-
-	cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-		#!/bin/bash
-		# Wrapper to launch slotted Chromium via the chromium-common launcher script.
-		export CHROME_DESKTOP="chromium-browser${browser_suffix}.desktop"
-		export CHROME_EXEC_NAME="chromium-browser${browser_suffix}"
-		export CHROME_VERSION_EXTRA="${SLOT}"
-		export CHROME_WRAPPER="\$(readlink -f "\$0")"
-		export OZONE_AUTO_SESSION=$(ozone_auto_session)
-
-		exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
-	EOF
-
-	chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-
-	# 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${browser_suffix}
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${browser_suffix}
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${browser_suffix}
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd > /dev/null || die
-
-	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[@]}"
-	)
-
-	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${browser_suffix}.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser${browser_suffix}.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	doins out/Release/chromium-browser${browser_suffix}.xml
-
-	# Install AppStream metadata
-	insinto /usr/share/appdata
-	doins out/Release/chromium-browser${browser_suffix}.appdata.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser${browser_suffix}.1
-	dosym chromium-browser${browser_suffix}.1 /usr/share/man/man1/chromium${browser_suffix}.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 && [[ -z "${REPLACING_VERSIONS}" ]]; then
-		if use vaapi; then
-			elog "Hardware-accelerated video decoding configuration:"
-			elog
-			elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
-			elog "   Add to CHROMIUM_FLAGS in /etc/chromium/default:"
-			elog
-			elog "1. VA-API with OpenGL (recommended for most users):"
-			elog "   --enable-features=AcceleratedVideoDecodeLinuxGL"
-			elog "   VaapiVideoDecoder may need to be added as well, but try without first."
-			elog
-			if use wayland; then
-				elog "2. Enhanced Wayland/EGL performance:"
-				elog "   --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
-				elog
-			fi
-			if use X; then
-				elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
-				elog "   --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
-				elog
-				if use wayland; then
-					elog "   NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
-					elog "   Use OpenGL-based acceleration instead when running under Wayland."
-					elog
-				fi
-			fi
-			elog "Additional options:"
-			elog "  To enable hardware-accelerated encoding (if supported)"
-			elog "  add 'AcceleratedVideoEncoder' to your feature list"
-			elog "  VaapiIgnoreDriverChecks bypasses driver compatibility checks"
-			elog "  (may be needed for newer/unsupported hardware)"
-			elog
-		else
-			elog "This Chromium build was compiled without VA-API support, which provides"
-			elog "hardware-accelerated video decoding."
-		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
-
-	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
-
-	# Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
-	if [[ -n "${REPLACING_VERSIONS}" ]]; then
-		local replacing_non_slotted=false
-		# there could be more than one PVR
-		for version in ${REPLACING_VERSIONS}; do
-			if ver_test "${version}" -le "145.0.7632.116"; then
-				replacing_non_slotted=true
-				break
-			fi
-		done
-		if ${replacing_non_slotted}; then
-			ewarn "This version of Chromium has replaced a non-slotted ebuild."
-			if [[ ${SLOT} != "stable" ]]; then
-				ewarn "This channel has its own profile directory, so your existing profile will not be used."
-				ewarn "To use your existing profile, either copy or move it to the new location."
-				ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
-				ewarn ""
-			fi
-			ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
-			ewarn "or have the path in the desktop files updated to point to the new wrapper script."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-149.0.7827.200.ebuild b/www-client/chromium/chromium-149.0.7827.200.ebuild
deleted file mode 100644
index d758441e6819..000000000000
--- a/www-client/chromium/chromium-149.0.7827.200.ebuild
+++ /dev/null
@@ -1,1754 +0,0 @@
-# Copyright 2009-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# PACKAGING NOTES
-
-# Upstream 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 may eventually hit the point where we need to use
-# the bundled Clang due to the use of prerelease features.
-
-# USE=bundled-toolchain is intended for users who want to use the same toolchain
-# as the upstream releases. It's also a good fallback in case we fall behind
-# and need to get a release out quickly (less likely with `dev` in-tree).
-# We can't rely on it as a default since the toolchain is only shipped for x86-64;
-# other architectures will need to use system toolchain.
-
-# Since m133 we are using CI-generated tarballs from
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/
-
-# These are bit-for-bit identical to the official releases, but are built
-# using an external CI system that we have some control over, in case
-# issues pop up again with official tarball generation.
-
-GN_MIN_VER=0.2374
-# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
-# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
-TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9"
-BUNDLED_CLANG_VER="llvmorg-23-init-10931-g20b6ec66-8"
-BUNDLED_RUST_VER="4c4205163abcbd08948b3efab796c543ba1ea687-2"
-RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.12.0"
-ESBUILD_VER="0.25.1"
-ROLLUP_VER="4.57.1" # currently manual.
-VIRTUALX_REQUIRED="pgo"
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-LLVM_COMPAT=( 21 )
-PYTHON_COMPAT=( python3_{11..14} )
-PYTHON_REQ_USE="xml(+)"
-RUST_MIN_VER=1.91.0
-RUST_NEEDS_LLVM="yes please"
-RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
-RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
-inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
-PATCH_V="${PV%%\.*}-2"
-COPIUM_COMMIT="b00f26bb5e0781020da5f830981472a142c6baf1"
-SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV}/chromium-${PV}-linux.tar.xz
-	https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
-	https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
-	!bundled-toolchain? (
-		https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
-			-> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	)
-	bundled-toolchain? (
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
-			-> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
-			-> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
-	)
-	test? (
-		https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
-	)
-	ppc64? (
-		https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
-LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
-LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
-LICENSE+=" rar? ( unRAR )"
-
-SLOT="stable"
-# Unstable in gentoo exists mostly to give devs some breathing room for beta/stable releases.
-# It shouldn't be keyworded but adventurous users are encouraged to select it;
-# there's official dev channel Google Chrome after all.
-KEYWORDS="amd64 ~arm64"
-
-IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-zstd"
-IUSE="+X ${IUSE_SYSTEM_LIBS} bindist bundled-toolchain cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo"
-IUSE+=" +proprietary-codecs pulseaudio qt6 +rar +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
-RESTRICT="
-	!bindist? ( bindist )
-	!test? ( test )
-	arm64? ( test )" # Tests require CFI, which requires LTO, which is broken on arm64 with LLVM 21.
-
-REQUIRED_USE="
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-	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:=
-"
-
-# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
-# We _could_ use the bundled minizip, but that's against policy.
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-73.0:= )
-	>=dev-libs/libxml2-2.12.4:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-zstd? ( >=app-arch/zstd-1.5.5:= )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-2.6.0:=
-	sys-libs/zlib:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-libs/libpulse:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-base/xorg-proto:=
-			x11-libs/libX11:=
-			x11-libs/libxcb:=
-			x11-libs/libXext:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			dev-libs/wayland:=
-		)
-	)
-"
-
-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? (
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		cups? ( >=net-print/cups-1.3.11:= )
-		qt6? ( dev-qt/qtbase:6[gui,widgets] )
-		X? ( ${COMMON_X_DEPEND} )
-		wayland? ( screencast? ( media-video/pipewire:= ) )
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!www-client/chromium:0
-	>=www-client/chromium-common-2
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[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%%\.*} )
-	)
-"
-# For M149+ pipewire is a mandatory build-time dependency, but it's optional at runtime for most configurations.
-DEPEND="${COMMON_DEPEND}
-	!headless? (
-		media-video/pipewire
-		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? (
-		qt6? ( dev-qt/qtbase:6 )
-	)
-	!bundled-toolchain? ( $(llvm_gen_dep '
-		llvm-core/clang:${LLVM_SLOT}
-		llvm-core/llvm:${LLVM_SLOT}
-		llvm-core/lld:${LLVM_SLOT}
-		official? (
-			!ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
-		) ')
-		${RUST_DEPEND}
-	)
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-	)
-	>=dev-util/bindgen-0.72.1
-	>=dev-build/gn-${GN_MIN_VER}
-	app-alternatives/ninja
-	dev-lang/perl
-	>=dev-util/gperf-3.2
-	dev-util/esbuild:${ESBUILD_VER}
-	dev-vcs/git
-	>=net-libs/nodejs-${NODE_VER}[inspector]
-	sys-apps/hwdata
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	x11-misc/xdg-utils
-"
-
-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.
-	# xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
-	local base_disk=9 # Round up
-	use test && base_disk=$((base_disk + 5))
-	local extra_disk=1 # Always include a little extra space
-	local memory=4
-	tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
-	if tc-is-lto || use pgo; then
-		memory=$((memory * 2 + 1))
-		tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
-		use pgo && extra_disk=$((extra_disk + 4))
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags; then
-			extra_disk=$((extra_disk + 5))
-		fi
-		memory=$((memory * 2))
-	fi
-	local CHECKREQS_MEMORY="${memory}G"
-	local 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" "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
-
-		# We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
-		local want_lto="false"
-		tc-is-lto && want_lto="true"
-
-		# 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.
-		if use !bundled-toolchain; then
-			llvm-r1_pkg_setup
-			rust_pkg_setup
-
-			# Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
-			AR=llvm-ar
-			CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
-			NM=llvm-nm
-			CC="${CHOST}-clang-${LLVM_SLOT}"
-			CXX="${CHOST}-clang++-${LLVM_SLOT}"
-		fi
-
-		use_lto="false"
-		local lto_usable="true"
-		if [[ "$want_lto" == "true" ]]; then
-			if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
-				einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
-				lto_usable="false"
-			else
-				use_lto="true"
-			fi
-			# We can rely on GN to do this for us; without this builds
-			# take significantly longer with LTO enabled.
-			filter-lto
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
-			einfo "USE=official selected and LTO not detected."
-			einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
-			einfo "and to be consistent with the upstream \"official\" build optimisations."
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use test; then
-			die "Tests require CFI which requires LTO"
-		fi
-
-		export use_lto
-
-		# 936858
-		if tc-ld-is-mold; then
-			eerror "Your toolchain is using the mold linker."
-			eerror "This is not supported by Chromium."
-			die "Please switch to a different linker."
-		fi
-
-		if tc-is-cross-compiler; then
-			use pgo && die "The pgo USE flag cannot be used when cross-compiling"
-			CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
-		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
-
-		# Sanity checks for 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
-
-		# Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
-		local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
-		if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
-			die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
-		fi
-	fi
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_unpack() {
-	unpack ${P}-linux.tar.xz
-	unpack chromium-patches-${PATCH_V}.tar.bz2
-	# These should only be required when we're not using the official toolchain
-	if use !bundled-toolchain; then
-		unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	fi
-
-	use pgo && unpack chromium-profiler-0.2.tar
-
-	if use test; then
-		# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
-		local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts/test_fonts"
-		local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
-		einfo "Unpacking test fonts ..."
-		tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
-	fi
-
-	# We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
-	# Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
-	if use bundled-toolchain; then
-		einfo "Unpacking bundled Clang ..."
-		mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
-		tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
-		einfo "Unpacking bundled Rust ..."
-		local rust_dir="${WORKDIR}/rust-toolchain"
-		mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
-		tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
-			die "Failed to unpack Rust"
-	fi
-
-	if use ppc64; then
-		unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	fi
-
-	# This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
-	# to build locally due to deps
-	unpack rollup-wasm-node-${ROLLUP_VER}.tgz
-}
-
-remove_compiler_builtins() {
-	# We can't use the bundled compiler builtins with the system toolchain
-	# We used to `grep` then `sed`, but it was indirect. Combining the two into a single
-	# `awk` command is more efficient and lets us document the logic more clearly.
-
-	local pattern='    configs += [ "//build/config/clang:compiler_builtins" ]'
-	local target='build/config/compiler/BUILD.gn'
-
-	local tmpfile
-	tmpfile=$(mktemp) || die "Failed to create temporary file."
-
-	if awk -v pat="${pattern}" '
-	BEGIN {
-		match_found = 0
-	}
-
-	# If the delete countdown is active, decrement it and skip to the next line.
-	d > 0 { d--; next }
-
-	# If the current line matches the pattern...
-	$0 == pat {
-		match_found = 1   # ...set our flag to true.
-		d = 2             # Set delete counter for this line and the next two.
-		prev = ""         # Clear the buffered previous line so it is not printed.
-		next
-	}
-
-	# For any other line, print the buffered previous line.
-	NR > 1 { print prev }
-
-	# Buffer the current line to be printed on the next cycle.
-	{ prev = $0 }
-
-	END {
-		# Print the last line if it was not part of a deleted block.
-		if (d == 0) { print prev }
-
-		# If the pattern was never found, exit with a failure code.
-		if (match_found == 0) {
-		exit 1
-		}
-	}
-	' "${target}" > "${tmpfile}"; then
-		# AWK SUCCEEDED (exit code 0): The pattern was found and edited.
-		# This is to avoid gawk's `-i inplace` option which users complain about.
-		mv "${tmpfile}" "${target}"
-	else
-		# AWK FAILED (exit code 1): The pattern was not found.
-		rm -f "${tmpfile}"
-		die "Awk patch failed: Pattern not found in ${target}."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# We'll fill this in as we go. Patches go in chromium-patches.
-	local PATCHES=()
-
-	PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
-
-	# https://issues.chromium.org/issues/442698344
-	# Unreleased fontconfig changed magic numbers and google have rolled to this version
-	if has_version "<=media-libs/fontconfig-2.17.1"; then
-		PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
-	fi
-
-	if use bundled-toolchain; then
-		# We need to symlink the toolchain into the expected location
-		einfo "Symlinking Clang toolchain to expected location ..."
-		mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
-		# the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
-		# upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
-		# llvm-build, but we'll rm Release+Asserts and symlink directly.
-		if [[ -d third_party/llvm-build/Release+Asserts ]]; then
-			rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
-		fi
-		ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
-		einfo "Symlinking Rust toolchain to expected location ..."
-		# As above, so below
-		if [[ -d third_party/rust-toolchain ]]; then
-			rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
-		fi
-		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"
-	else
-		# We don't need our toolchain patches if we're using the official toolchain
-
-		# Copium patches go here.
-		PATCHES+=(
-			"${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
-			"${WORKDIR}/copium/cr149-unbundle-minizip-undo-unicode.patch"
-		)
-
-		# Automate conditional application of chromium-patches
-		# The directory structure is expected to be something like:
-		# chromium-patches-145/
-		# ├── toolchain/
-		# │   ├── cr123-foo.patch
-		# │   └── cr135-bar.patch
-		# ├── llvm/
-		# │   ├── cr144-baz.patch
-		# │   └── lt-23/
-		# │       └── cr145-bleeding-edge-llvm-feature.patch
-		# Where `lt-23` means "apply this patch if the LLVM version is less than 23".
-		# Only categories in `slot_map` will be checked for version constraints.
-		shopt -s nullglob
-		local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
-
-		for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
-			local category_name="${category%/}"
-			category_name="${category_name##*/}"
-
-			# Skip arch-specific categories
-			if [[ "${category_name}" == "ppc64le" ]]; then
-				use ppc64 || continue
-			fi
-
-			# We applied common patches above, no need to apply them again here
-			[[ "${category_name}" == "common" ]] && continue
-
-			# Unconditional patches for this category
-			local category_patches=( "${category}"*.patch )
-			[[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" )
-
-			# Version-constrained subdirectories (e.g., llvm/lt-23/)
-			for constraint_dir in "${category}"*/; do
-				local dir_name="${constraint_dir%/}"
-				dir_name="${dir_name##*/}"
-				if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
-					ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
-						PATCHES+=( "${constraint_dir}" )
-				fi
-			done
-		done
-
-		shopt -u nullglob
-
-		# Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
-		if use ppc64; then
-			local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
-			# patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
-			local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
-			local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
-			# Apply the OpenPOWER patches (check for page size and isa 3.0)
-			openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
-				grep -v "${isa_3_patch}" || die) )
-			for patch in "${openpower_patches[@]}"; do
-				PATCHES+=( "${patchset_dir}/${patch}" )
-			done
-			if [[ $(getconf PAGESIZE) == 65536 ]]; then
-				PATCHES+=( "${patchset_dir}/${page_size_patch}" )
-			fi
-			# We use vsx3 as a proxy for 'want isa3.0' (POWER9)
-			if use cpu_flags_ppc_vsx3 ; then
-				PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
-			fi
-		fi
-
-		remove_compiler_builtins
-
-		# We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
-		local suffix=""
-		if [[ "${RUST_TYPE}" == "binary" ]]; then
-			suffix="-bin-${RUST_SLOT}"
-		else
-			suffix="-${RUST_SLOT}"
-		fi
-		sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
-			die "Failed to update rustfmt path"
-
-	fi
-
-	# Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
-	einfo "Moving rollup wasm-node package into place ..."
-	mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to create node_modules/@rollup/wasm-node"
-	mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to move rollup package"
-
-	default
-
-	# Sanity check esbuild version before we start removing files.
-	# We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
-	# arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
-	# but this is fine too and exactly matches what upstream are expecting.
-	# https://github.com/evanw/esbuild/issues/2894
-	local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
-	local found
-	found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
-	if [[ "${found}" != "${ESBUILD_VER}" ]]; then
-		die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
-	fi
-
-	elog "Removing bundled binaries from source tree ..."
-	# Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
-	# Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
-	${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
-		die "Failed to remove bundled binaries"
-
-	# And now we restore any that we actually need, from the host system
-	local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
-	local -A restore_list=(
-		["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
-		["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
-		["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
-	)
-
-	for src in "${!restore_list[@]}"; do
-		dst="${restore_list[${src}]}"
-		if [[ -f "${src}" ]]; then
-			einfo "Symlinking ${src} ..."
-			# Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
-			mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
-			ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
-			if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
-				die "Symlink verification failed for ${dst} -> ${src}"
-			fi
-		else
-			die "Expected to find ${src} to restore ${dst}, but it does not exist."
-		fi
-	done
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	# Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
-	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-		-i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
-
-	# remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
-	# whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		net/third_party/mozilla_security_manager
-		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/third_party/typ
-		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/compiler-rt # Since M137 atomic is required; we could probably unbundle this as a target of opportunity.
-		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/OpenGL-Registry
-		third_party/dawn/third_party/renderdoc
-		third_party/dawn/third_party/webgpu-headers
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/json5
-		third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/urlpattern-polyfill
-		third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
-		third_party/devtools-frontend/src/front_end/third_party/third-party-web
-		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/front_end/third_party/web-vitals
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/dragonbox
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fast_float
-		third_party/fdlibm
-		third_party/federated_compute/chromium/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/base
-		third_party/federated_compute/src/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/federatedcompute
-		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/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
-		third_party/highway
-		third_party/hunspell
-		third_party/ink/src/ink/brush
-		third_party/ink/src/ink/color
-		third_party/ink/src/ink/geometry
-		third_party/ink/src/ink/rendering
-		third_party/ink/src/ink/rendering/skia/common_internal
-		third_party/ink/src/ink/rendering/skia/native
-		third_party/ink/src/ink/rendering/skia/native/internal
-		third_party/ink/src/ink/strokes
-		third_party/ink/src/ink/types
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/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/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libc++
-		third_party/libdrm
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libpfm4
-		third_party/libphonenumber
-		third_party/libpng
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libtess2/libtess2
-		third_party/libtess2/src/Include
-		third_party/libtess2/src/Source
-		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/llvm-libc
-		third_party/llvm-libc/src/shared/
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/ml_dtypes
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/oak/chromium/proto
-		third_party/oak/chromium/proto/attestation
-		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/pprof
-		third_party/perfetto/protos/third_party/primes
-		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/protobuf/third_party/utf8_range
-		third_party/pthreadpool
-		third_party/puffin
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/rapidhash
-		third_party/re2
-		third_party/readability
-		third_party/rnnoise
-		third_party/rust
-		third_party/ruy
-		third_party/s2cellid
-		third_party/search_engines_data
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		third_party/shell-encryption
-		third_party/simdutf
-		third_party/simplejson
-		third_party/six
-		third_party/skia
-		third_party/skia/include/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/fft2d
-		third_party/tflite/src/third_party/xla/third_party/tsl
-		third_party/tflite/src/third_party/xla/xla/tsl/framework
-		third_party/tflite/src/third_party/xla/xla/tsl/lib/random
-		third_party/tflite/src/third_party/xla/xla/tsl/platform
-		third_party/tflite/src/third_party/xla/xla/tsl/protobuf
-		third_party/tflite/src/third_party/xla/xla/tsl/util
-		third_party/ukey2
-		third_party/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/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/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/rapidhash-v8
-		v8/third_party/siphash
-		v8/third_party/utf8-decoder
-		v8/third_party/v8
-		v8/third_party/valgrind
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-	)
-
-	if use rar; then
-		keeplibs+=( third_party/unrar )
-	fi
-
-	if use test; then
-		keeplibs+=(
-			third_party/breakpad/breakpad/src/processor
-			third_party/fuzztest
-			third_party/google_benchmark/src/include/benchmark
-			third_party/google_benchmark/src/src
-			third_party/test_fonts
-			third_party/test_fonts/fontconfig
-			third_party/test_fonts/test_fonts
-		)
-	fi
-
-	# USE=system-*
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz )
-	fi
-
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-
-	if ! use system-zstd; then
-		keeplibs+=( third_party/zstd )
-	fi
-
-	# Arch-specific
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
-		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
-		# since we're not in a git repo
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
-	# and this enables us to hit them all at once.
-	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
-	whitelist_libs=(
-		net/third_party/quic
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/libjingle
-		third_party/mesa
-		third_party/skia/third_party/vulkan
-		third_party/vulkan
-	)
-	local not_found_libs=()
-	for lib in "${keeplibs[@]}"; do
-		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
-			not_found_libs+=( "${lib}" )
-		fi
-	done
-
-	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
-		eerror "The following \`keeplibs\` directories were not found in the source tree:"
-		for lib in "${not_found_libs[@]}"; do
-			eerror "  ${lib}"
-		done
-		die "Please update the ebuild."
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	einfo "Unbundling third-party libraries ..."
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	# Interferes with our bundled clang path; we don't want stripped binaries anyway.
-	sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
-		-e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
-		build/linux/strip_binary.gni || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# 974899: sometimes people try to build with a non-Unicode locale and python gets very upset
-	python_export_utf8_locale || die "Chromium builds require a UTF-8 locale."
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-
-	if use system-zstd; then
-		gn_system_libraries+=( zstd )
-	fi
-
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
-		die "Failed to replace GN files for system libraries"
-
-	# TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
-	# drop the last line, then append the freetype line and a new curly brace to end the block
-	local freetype_gni="build/config/freetype/freetype.gni"
-	sed -i -e '$d' ${freetype_gni} || die
-	echo "  enable_freetype = true" >> ${freetype_gni} || die
-	echo "}" >> ${freetype_gni} || die
-
-	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*"
-		# 949123: Several multimedia components explicitly build with specific CFLAGS and
-		# use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
-		# to the end of the command line, which causes build failures.
-		use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*"
-	fi
-
-	# 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 # can you cross-compile with the bundled toolchain?
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-	fi
-
-	# Start building our GN options
-	local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
-
-	if use !bundled-toolchain; then
-		# We already forced the "correct" clang via pkg_setup
-
-		if tc-is-cross-compiler; then
-			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_AR=${AR}
-			BUILD_CC=${CC}
-			BUILD_CXX=${CXX}
-			BUILD_NM=${NM}
-		fi
-
-		# Make sure the build system will use the right tools, bug #340795.
-		tc-export AR CC CXX NM
-
-		strip-unsupported-flags
-		append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
-
-		myconf_gn+=(
-			"is_clang=true"
-			"clang_use_chrome_plugins=false"
-			"use_clang_modules=false" # M141 enables this for the linux platform by default.
-			"use_lld=true"
-			'custom_toolchain="//build/toolchain/linux/unbundle:default"'
-			# From M127 we need to provide a location for libclang and the clang resource dir so that bindgen can find them
-			"bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
-			"bindgen_clang_resource_dir=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\""
-			"bindgen_extra_clang_args=[\"-I${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"]"
-			"clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-			"rust_bindgen_root=\"${EPREFIX}/usr/\""
-			"rust_sysroot_absolute=\"$(get_rust_prefix)\""
-			"rustc_version=\"${RUST_SLOT}\""
-		)
-
-		if [[ ${LLVM_SLOT} -lt 23 ]]; then
-			# Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23)
-			myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' )
-		fi
-
-		if ! tc-is-cross-compiler; then
-			myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
-		else
-			tc-export BUILD_{AR,CC,CXX,NM}
-			myconf_gn+=(
-				'host_toolchain="//build/toolchain/linux/unbundle:host"'
-				'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
-				"host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-				"pkg_config=\"$(tc-getPKG_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=
-		fi
-
-	fi # !bundled-toolchain
-
-	local myarch
-	myarch="$(tc-arch)"
-	case ${myarch} in
-		amd64)
-			# Bug 530248, 544702, 546984, 853646.
-			use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
-										-mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-			myconf_gn+=( 'target_cpu="x64"' )
-			;;
-		arm64)
-			myconf_gn+=( 'target_cpu="arm64"' )
-			;;
-		ppc64)
-			myconf_gn+=( 'target_cpu="ppc64"' )
-			;;
-		*)
-			die "Failed to determine target arch, got '${myarch}'."
-			;;
-	esac
-
-	# Common options
-
-	myconf_gn+=(
-		# Disable code formating of generated files
-		"blink_enable_generated_code_formatting=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.
-		"dcheck_always_on=$(usex debug true false)"
-		"dcheck_is_configurable=$(usex debug true false)"
-		# Chromium builds provided by Linux distros should disable the testing config
-		"disable_fieldtrial_testing_config=true"
-		# Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
-		# use different profile directories, desktop entries, etc. This enables slotting the ebuild.
-		"enable_channel_branding=true"
-		# 131 began laying the groundwork for replacing freetype with
-		# "Rust-based Fontations set of libraries plus Skia path rendering"
-		# We now need to opt-in
-		"enable_freetype=true"
-		"enable_hangout_services_extension=$(usex hangouts true false)"
-		# Don't need nocompile checks and GN crashes with our config (verify with modern GN)
-		"enable_nocompile_tests=false"
-		# pseudolocales are only used for testing
-		"enable_pseudolocales=false"
-		"enable_widevine=$(usex widevine true false)"
-		# Disable fatal linker warnings, bug 506268.
-		"fatal_linker_warnings=false"
-		# 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 [email protected] for more info.
-		# note: OAuth2 is patched in; check patchset for details.
-		'google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"'
-		# Component build isn't generally intended for use by end users. It's mostly useful
-		# for development and debugging.
-		"is_component_build=false"
-		# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-		"is_debug=false"
-		"is_official_build=$(usex official true false)"
-		# Enable ozone wayland and/or headless support
-		"ozone_auto_platforms=false"
-		"ozone_platform_headless=true"
-		# Enables building without non-free unRAR licence
-		"safe_browsing_use_unrar=$(usex rar true false)"
-		"thin_lto_enable_optimizations=${use_lto}"
-		"treat_warnings_as_errors=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).
-		"use_custom_libcxx=true"
-		# Enable ozone wayland and/or headless support
-		"use_ozone=true"
-		# The sysroot is the oldest debian image that chromium supports, we don't need it
-		"use_sysroot=false"
-		# See dependency logic in third_party/BUILD.gn
-		"use_system_harfbuzz=$(usex system-harfbuzz true false)"
-		"use_thin_lto=${use_lto}"
-		# Only enabled for clang, but gcc has endian macros too
-		"v8_use_libm_trig_functions=true"
-	)
-
-	if use bindist ; then
-		myconf_gn+=(
-			# If this is set to false Chromium won't be able to load any proprietary codecs
-			# even if provided with an ffmpeg capable of h264/aac decoding
-			"proprietary_codecs=true"
-			'ffmpeg_branding="Chrome"'
-			# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
-			"is_component_ffmpeg=true"
-		)
-	else
-		myconf_gn+=(
-			"proprietary_codecs=$(usex proprietary-codecs true false)"
-			"ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
-		)
-	fi
-
-	if use headless; then
-		myconf_gn+=(
-			"enable_print_preview=false"
-			"enable_remoting=false"
-			'ozone_platform="headless"'
-			"rtc_use_pipewire=false"
-			"use_alsa=false"
-			"use_cups=false"
-			"use_gio=false"
-			"use_glib=false"
-			"use_gtk=false"
-			"use_kerberos=false"
-			"use_libpci=false"
-			"use_pangocairo=false"
-			"use_pulseaudio=false"
-			"use_qt5=false"
-			"use_qt6=false"
-			"use_udev=false"
-			"use_vaapi=false"
-			"use_xkbcommon=false"
-		)
-	else
-		myconf_gn+=(
-			"gtk_version=$(usex gtk4 4 3)"
-			# link pulseaudio directly (DT_NEEDED) instead of using dlopen.
-			# helps with automated detection of ABI mismatches and prevents silent errors.
-			"link_pulseaudio=$(usex pulseaudio true false)"
-			"ozone_platform_wayland=$(usex wayland true false)"
-			"ozone_platform_x11=$(usex X true false)"
-			"ozone_platform=\"$(usex wayland wayland x11)\""
-			"rtc_use_pipewire=$(usex screencast true false)"
-			# As above - link directly instead of dlopening
-			"rtc_link_pipewire=$(usex screencast true false)"
-			"use_cups=$(usex cups true false)"
-			"use_kerberos=$(usex kerberos true false)"
-			"use_pulseaudio=$(usex pulseaudio true false)"
-			"use_qt5=false"
-			"use_system_libffi=$(usex wayland true false)"
-			"use_system_minigbm=true"
-			"use_vaapi=$(usex vaapi true false)"
-			"use_xkbcommon=true"
-		)
-		if use qt6; then
-			local cbuild_libdir
-			cbuild_libdir="$(get_libdir)"
-			if tc-is-cross-compiler; then
-			# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
-				cbuild_libdir="${cbuild_libdir:2}"
-				cbuild_libdir="${cbuild_libdir/% }"
-			fi
-			myconf_gn+=(
-				"use_qt6=true"
-				"moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
-			)
-		else
-			myconf_gn+=( "use_qt6=false" )
-		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
-
-	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
-		if use !ppc64; then
-			myconf_gn+=( "is_cfi=${use_lto}" )
-		else
-			myconf_gn+=( "is_cfi=false" ) # requires llvm-runtimes/compiler-rt-sanitizers[cfi]
-		fi
-		# 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
-		myconf_gn+=( "chrome_pgo_phase=0" )
-	fi
-
-	# Odds and ends
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=( "devtools_skip_typecheck=false" )
-	fi
-
-	# 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 && use ppc64; then
-		myconf_gn+=( "v8_enable_external_code_space=false" )
-	fi
-
-	# Since we build from tarballs, we need to set the channel here so that it can be used in the build.
-	export CHROME_VERSION_EXTRA="${SLOT}"
-
-	einfo "Configuring Chromium ..."
-	set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
-	echo "$@"
-	"$@" || die "Failed to configure Chromium"
-}
-
-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 code_cache_generator; do
-			if tc-is-cross-compiler; then
-				eninja -C out/Release "host/${x}"
-				pax-mark m "out/Release/host/${x}"
-			else
-				eninja -C out/Release "${x}"
-				pax-mark m "out/Release/${x}"
-			fi
-		done
-	fi
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests")
-
-	pax-mark m out/Release/chrome
-
-	# This codepath does minimal patching, so we're at the mercy of upstream
-	# CFLAGS. This is fine - we're not intending to force this on users
-	# and we do a lot of flag 'management' anyway.
-	if use bundled-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/libqt6_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
-
-	# Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
-	${EPYTHON} "${FILESDIR}/generate-support-files.py" \
-		--installdir "/usr/$(get_libdir)/chromium-browser" \
-		--channel "${SLOT}" ||
-			die "Failed to generate support files"
-}
-
-src_test() {
-	# Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
-	# If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
-	# run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
-	# chromium gods are not smiling upon you today. Do some runtime testing, obvs.
-	local skip_tests=(
-		# Wildcard exclusions (if all tests in a test suite are broken)
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
-		'CheckExitCodeAfterSignalHandlerDeathTest.*'
-		'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
-		'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
-		'ToolsSanityTest.BadVirtualCall*'
-		# requires en-us locale
-		SysStrings.SysNativeMBAndWide
-		SysStrings.SysNativeMBToWide
-		SysStrings.SysWideToNativeMB
-		# Specific test cases
-		CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
-		FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
-		HistogramTesterTest.PumaTestUniqueSample
-		PathServiceTest.CheckedGetFailure
-		PlatformThreadTest.CanChangeThreadType
-		RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
-		RustLogIntegrationTest.CheckAllSeverity
-		StackCanary.ChangingStackCanaryCrashesOnReturn
-		StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
-		TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
-		ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
-		DriveInfoTest.GetFileDriveInfo
-	)
-	local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
-	# test-launcher-bot-mode enables parallelism and plain output
-	# Check individual tests with --gtest_filter=<test you want> --single-process-tests
-	./out/Release/base_unittests --test-launcher-bot-mode \
-		--test-launcher-jobs="$(get_makeopts_jobs)" \
-		--gtest_filter="${test_filter}" || die "Tests failed!"
-}
-
-src_install() {
-	local browser_suffix
-	if [[ "${SLOT}" != "stable" ]]; then
-		browser_suffix="-${SLOT}"
-	else
-		browser_suffix=""
-	fi
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${browser_suffix}"
-	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
-	}
-
-	cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-		#!/bin/bash
-		# Wrapper to launch slotted Chromium via the chromium-common launcher script.
-		export CHROME_DESKTOP="chromium-browser${browser_suffix}.desktop"
-		export CHROME_EXEC_NAME="chromium-browser${browser_suffix}"
-		export CHROME_VERSION_EXTRA="${SLOT}"
-		export CHROME_WRAPPER="\$(readlink -f "\$0")"
-		export OZONE_AUTO_SESSION=$(ozone_auto_session)
-
-		exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
-	EOF
-
-	chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-
-	# 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${browser_suffix}
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${browser_suffix}
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${browser_suffix}
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd > /dev/null || die
-
-	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[@]}"
-	)
-
-	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${browser_suffix}.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser${browser_suffix}.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	doins out/Release/chromium-browser${browser_suffix}.xml
-
-	# Install AppStream metadata
-	insinto /usr/share/appdata
-	doins out/Release/chromium-browser${browser_suffix}.appdata.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser${browser_suffix}.1
-	dosym chromium-browser${browser_suffix}.1 /usr/share/man/man1/chromium${browser_suffix}.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 && [[ -z "${REPLACING_VERSIONS}" ]]; then
-		if use vaapi; then
-			elog "Hardware-accelerated video decoding configuration:"
-			elog
-			elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
-			elog "   Add to CHROMIUM_FLAGS in /etc/chromium/default:"
-			elog
-			elog "1. VA-API with OpenGL (recommended for most users):"
-			elog "   --enable-features=AcceleratedVideoDecodeLinuxGL"
-			elog "   VaapiVideoDecoder may need to be added as well, but try without first."
-			elog
-			if use wayland; then
-				elog "2. Enhanced Wayland/EGL performance:"
-				elog "   --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
-				elog
-			fi
-			if use X; then
-				elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
-				elog "   --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
-				elog
-				if use wayland; then
-					elog "   NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
-					elog "   Use OpenGL-based acceleration instead when running under Wayland."
-					elog
-				fi
-			fi
-			elog "Additional options:"
-			elog "  To enable hardware-accelerated encoding (if supported)"
-			elog "  add 'AcceleratedVideoEncoder' to your feature list"
-			elog "  VaapiIgnoreDriverChecks bypasses driver compatibility checks"
-			elog "  (may be needed for newer/unsupported hardware)"
-			elog
-		else
-			elog "This Chromium build was compiled without VA-API support, which provides"
-			elog "hardware-accelerated video decoding."
-		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
-
-	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
-
-	# Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
-	if [[ -n "${REPLACING_VERSIONS}" ]]; then
-		local replacing_non_slotted=false
-		# there could be more than one PVR
-		for version in ${REPLACING_VERSIONS}; do
-			if ver_test "${version}" -le "145.0.7632.116"; then
-				replacing_non_slotted=true
-				break
-			fi
-		done
-		if ${replacing_non_slotted}; then
-			ewarn "This version of Chromium has replaced a non-slotted ebuild."
-			if [[ ${SLOT} != "stable" ]]; then
-				ewarn "This channel has its own profile directory, so your existing profile will not be used."
-				ewarn "To use your existing profile, either copy or move it to the new location."
-				ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
-				ewarn ""
-			fi
-			ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
-			ewarn "or have the path in the desktop files updated to point to the new wrapper script."
-		fi
-	fi
-}

diff --git a/www-client/chromium/chromium-149.0.7827.53.ebuild b/www-client/chromium/chromium-149.0.7827.53.ebuild
deleted file mode 100644
index 78cd5ea0c48a..000000000000
--- a/www-client/chromium/chromium-149.0.7827.53.ebuild
+++ /dev/null
@@ -1,1749 +0,0 @@
-# Copyright 2009-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# PACKAGING NOTES
-
-# Upstream 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 may eventually hit the point where we need to use
-# the bundled Clang due to the use of prerelease features.
-
-# USE=bundled-toolchain is intended for users who want to use the same toolchain
-# as the upstream releases. It's also a good fallback in case we fall behind
-# and need to get a release out quickly (less likely with `dev` in-tree).
-# We can't rely on it as a default since the toolchain is only shipped for x86-64;
-# other architectures will need to use system toolchain.
-
-# Since m133 we are using CI-generated tarballs from
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/
-
-# These are bit-for-bit identical to the official releases, but are built
-# using an external CI system that we have some control over, in case
-# issues pop up again with official tarball generation.
-
-GN_MIN_VER=0.2374
-# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
-# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
-TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9"
-BUNDLED_CLANG_VER="llvmorg-23-init-10931-g20b6ec66-8"
-BUNDLED_RUST_VER="4c4205163abcbd08948b3efab796c543ba1ea687-2"
-RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.12.0"
-ESBUILD_VER="0.25.1"
-ROLLUP_VER="4.57.1" # currently manual.
-VIRTUALX_REQUIRED="pgo"
-
-CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
-	hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
-	sv sw ta te th tr uk ur vi zh-CN zh-TW"
-
-LLVM_COMPAT=( 21 )
-PYTHON_COMPAT=( python3_{11..14} )
-PYTHON_REQ_USE="xml(+)"
-RUST_MIN_VER=1.91.0
-RUST_NEEDS_LLVM="yes please"
-RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
-RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
-inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
-
-DESCRIPTION="Open-source version of Google Chrome web browser"
-HOMEPAGE="https://www.chromium.org/"
-PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
-PATCH_V="${PV%%\.*}-2"
-COPIUM_COMMIT="b00f26bb5e0781020da5f830981472a142c6baf1"
-SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV}/chromium-${PV}-linux.tar.xz
-	https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
-	https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
-	!bundled-toolchain? (
-		https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
-			-> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	)
-	bundled-toolchain? (
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
-			-> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
-		https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
-			-> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
-	)
-	test? (
-		https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
-	)
-	ppc64? (
-		https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	)
-	pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
-
-# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
-LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
-LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
-LICENSE+=" rar? ( unRAR )"
-
-SLOT="beta"
-# Unstable in gentoo exists mostly to give devs some breathing room for beta/stable releases.
-# It shouldn't be keyworded but adventurous users are encouraged to select it;
-# there's official dev channel Google Chrome after all.
-KEYWORDS="~amd64 ~arm64"
-
-IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-zstd"
-IUSE="+X ${IUSE_SYSTEM_LIBS} bindist bundled-toolchain cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo"
-IUSE+=" +proprietary-codecs pulseaudio qt6 +rar +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
-RESTRICT="
-	!bindist? ( bindist )
-	!test? ( test )
-	arm64? ( test )" # Tests require CFI, which requires LTO, which is broken on arm64 with LLVM 21.
-
-REQUIRED_USE="
-	!headless? ( || ( X wayland ) )
-	pgo? ( X !wayland )
-	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:=
-"
-
-# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
-# We _could_ use the bundled minizip, but that's against policy.
-COMMON_SNAPSHOT_DEPEND="
-	system-icu? ( >=dev-libs/icu-73.0:= )
-	>=dev-libs/libxml2-2.12.4:=[icu]
-	dev-libs/nspr:=
-	>=dev-libs/nss-3.26:=
-	dev-libs/libxslt:=
-	media-libs/fontconfig:=
-	>=media-libs/freetype-2.11.0-r1:=
-	system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
-	media-libs/libjpeg-turbo:=
-	system-zstd? ( >=app-arch/zstd-1.5.5:= )
-	>=media-libs/libwebp-0.4.0:=
-	media-libs/mesa:=[gbm(+)]
-	>=media-libs/openh264-2.6.0:=
-	sys-libs/zlib:=
-	!headless? (
-		dev-libs/glib:2
-		>=media-libs/alsa-lib-1.0.19:=
-		pulseaudio? ( media-libs/libpulse:= )
-		sys-apps/pciutils:=
-		kerberos? ( virtual/krb5 )
-		vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
-		X? (
-			x11-base/xorg-proto:=
-			x11-libs/libX11:=
-			x11-libs/libxcb:=
-			x11-libs/libXext:=
-		)
-		x11-libs/libxkbcommon:=
-		wayland? (
-			dev-libs/libffi:=
-			dev-libs/wayland:=
-			screencast? ( media-video/pipewire:= )
-		)
-	)
-"
-
-COMMON_DEPEND="
-	${COMMON_SNAPSHOT_DEPEND}
-	app-arch/bzip2:=
-	dev-libs/expat:=
-	net-misc/curl[ssl]
-	sys-apps/dbus:=
-	media-libs/flac:=
-	sys-libs/zlib:=[minizip]
-	!headless? (
-		>=app-accessibility/at-spi2-core-2.46.0:2
-		media-libs/mesa:=[X?,wayland?]
-		virtual/udev
-		x11-libs/cairo:=
-		x11-libs/gdk-pixbuf:2
-		x11-libs/pango:=
-		cups? ( >=net-print/cups-1.3.11:= )
-		qt6? ( dev-qt/qtbase:6[gui,widgets] )
-		X? ( ${COMMON_X_DEPEND} )
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!www-client/chromium:0
-	>=www-client/chromium-common-2
-	!headless? (
-		|| (
-			x11-libs/gtk+:3[X?,wayland?]
-			gui-libs/gtk:4[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? (
-		qt6? ( dev-qt/qtbase:6 )
-	)
-	!bundled-toolchain? ( $(llvm_gen_dep '
-		llvm-core/clang:${LLVM_SLOT}
-		llvm-core/llvm:${LLVM_SLOT}
-		llvm-core/lld:${LLVM_SLOT}
-		official? (
-			!ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
-		) ')
-		${RUST_DEPEND}
-	)
-	pgo? (
-		>=dev-python/selenium-3.141.0
-		>=dev-util/web_page_replay_go-20220314
-	)
-	>=dev-util/bindgen-0.72.1
-	>=dev-build/gn-${GN_MIN_VER}
-	app-alternatives/ninja
-	dev-lang/perl
-	>=dev-util/gperf-3.2
-	dev-util/esbuild:${ESBUILD_VER}
-	dev-vcs/git
-	>=net-libs/nodejs-${NODE_VER}[inspector]
-	sys-apps/hwdata
-	>=sys-devel/bison-2.4.3
-	sys-devel/flex
-	virtual/pkgconfig
-	x11-misc/xdg-utils
-"
-
-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.
-	# xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
-	local base_disk=9 # Round up
-	use test && base_disk=$((base_disk + 5))
-	local extra_disk=1 # Always include a little extra space
-	local memory=4
-	tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
-	if tc-is-lto || use pgo; then
-		memory=$((memory * 2 + 1))
-		tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
-		use pgo && extra_disk=$((extra_disk + 4))
-	fi
-	if is-flagq '-g?(gdb)?([1-9])'; then
-		if use custom-cflags; then
-			extra_disk=$((extra_disk + 5))
-		fi
-		memory=$((memory * 2))
-	fi
-	local CHECKREQS_MEMORY="${memory}G"
-	local 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" "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
-
-		# We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
-		local want_lto="false"
-		tc-is-lto && want_lto="true"
-
-		# 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.
-		if use !bundled-toolchain; then
-			llvm-r1_pkg_setup
-			rust_pkg_setup
-
-			# Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
-			AR=llvm-ar
-			CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
-			NM=llvm-nm
-			CC="${CHOST}-clang-${LLVM_SLOT}"
-			CXX="${CHOST}-clang++-${LLVM_SLOT}"
-		fi
-
-		use_lto="false"
-		local lto_usable="true"
-		if [[ "$want_lto" == "true" ]]; then
-			if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
-				einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
-				lto_usable="false"
-			else
-				use_lto="true"
-			fi
-			# We can rely on GN to do this for us; without this builds
-			# take significantly longer with LTO enabled.
-			filter-lto
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
-			einfo "USE=official selected and LTO not detected."
-			einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
-			einfo "and to be consistent with the upstream \"official\" build optimisations."
-		fi
-
-		if [[ "$use_lto" == "false" ]] && use test; then
-			die "Tests require CFI which requires LTO"
-		fi
-
-		export use_lto
-
-		# 936858
-		if tc-ld-is-mold; then
-			eerror "Your toolchain is using the mold linker."
-			eerror "This is not supported by Chromium."
-			die "Please switch to a different linker."
-		fi
-
-		if tc-is-cross-compiler; then
-			use pgo && die "The pgo USE flag cannot be used when cross-compiling"
-			CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
-		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
-
-		# Sanity checks for 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
-
-		# Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
-		local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
-		if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
-			die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
-		fi
-	fi
-
-	chromium_suid_sandbox_check_kernel_config
-}
-
-src_unpack() {
-	unpack ${P}-linux.tar.xz
-	unpack chromium-patches-${PATCH_V}.tar.bz2
-	# These should only be required when we're not using the official toolchain
-	if use !bundled-toolchain; then
-		unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
-	fi
-
-	use pgo && unpack chromium-profiler-0.2.tar
-
-	if use test; then
-		# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
-		local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts/test_fonts"
-		local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
-		einfo "Unpacking test fonts ..."
-		tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
-	fi
-
-	# We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
-	# Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
-	if use bundled-toolchain; then
-		einfo "Unpacking bundled Clang ..."
-		mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
-		tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
-		einfo "Unpacking bundled Rust ..."
-		local rust_dir="${WORKDIR}/rust-toolchain"
-		mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
-		tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
-			die "Failed to unpack Rust"
-	fi
-
-	if use ppc64; then
-		unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
-	fi
-
-	# This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
-	# to build locally due to deps
-	unpack rollup-wasm-node-${ROLLUP_VER}.tgz
-}
-
-remove_compiler_builtins() {
-	# We can't use the bundled compiler builtins with the system toolchain
-	# We used to `grep` then `sed`, but it was indirect. Combining the two into a single
-	# `awk` command is more efficient and lets us document the logic more clearly.
-
-	local pattern='    configs += [ "//build/config/clang:compiler_builtins" ]'
-	local target='build/config/compiler/BUILD.gn'
-
-	local tmpfile
-	tmpfile=$(mktemp) || die "Failed to create temporary file."
-
-	if awk -v pat="${pattern}" '
-	BEGIN {
-		match_found = 0
-	}
-
-	# If the delete countdown is active, decrement it and skip to the next line.
-	d > 0 { d--; next }
-
-	# If the current line matches the pattern...
-	$0 == pat {
-		match_found = 1   # ...set our flag to true.
-		d = 2             # Set delete counter for this line and the next two.
-		prev = ""         # Clear the buffered previous line so it is not printed.
-		next
-	}
-
-	# For any other line, print the buffered previous line.
-	NR > 1 { print prev }
-
-	# Buffer the current line to be printed on the next cycle.
-	{ prev = $0 }
-
-	END {
-		# Print the last line if it was not part of a deleted block.
-		if (d == 0) { print prev }
-
-		# If the pattern was never found, exit with a failure code.
-		if (match_found == 0) {
-		exit 1
-		}
-	}
-	' "${target}" > "${tmpfile}"; then
-		# AWK SUCCEEDED (exit code 0): The pattern was found and edited.
-		# This is to avoid gawk's `-i inplace` option which users complain about.
-		mv "${tmpfile}" "${target}"
-	else
-		# AWK FAILED (exit code 1): The pattern was not found.
-		rm -f "${tmpfile}"
-		die "Awk patch failed: Pattern not found in ${target}."
-	fi
-}
-
-src_prepare() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# We'll fill this in as we go. Patches go in chromium-patches.
-	local PATCHES=()
-
-	PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
-
-	# https://issues.chromium.org/issues/442698344
-	# Unreleased fontconfig changed magic numbers and google have rolled to this version
-	if has_version "<=media-libs/fontconfig-2.17.1"; then
-		PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
-	fi
-
-	if use bundled-toolchain; then
-		# We need to symlink the toolchain into the expected location
-		einfo "Symlinking Clang toolchain to expected location ..."
-		mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
-		# the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
-		# upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
-		# llvm-build, but we'll rm Release+Asserts and symlink directly.
-		if [[ -d third_party/llvm-build/Release+Asserts ]]; then
-			rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
-		fi
-		ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
-		einfo "Symlinking Rust toolchain to expected location ..."
-		# As above, so below
-		if [[ -d third_party/rust-toolchain ]]; then
-			rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
-		fi
-		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"
-	else
-		# We don't need our toolchain patches if we're using the official toolchain
-
-		# Copium patches go here.
-		PATCHES+=(
-			"${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
-			"${WORKDIR}/copium/cr149-unbundle-minizip-undo-unicode.patch"
-		)
-
-		# Automate conditional application of chromium-patches
-		# The directory structure is expected to be something like:
-		# chromium-patches-145/
-		# ├── toolchain/
-		# │   ├── cr123-foo.patch
-		# │   └── cr135-bar.patch
-		# ├── llvm/
-		# │   ├── cr144-baz.patch
-		# │   └── lt-23/
-		# │       └── cr145-bleeding-edge-llvm-feature.patch
-		# Where `lt-23` means "apply this patch if the LLVM version is less than 23".
-		# Only categories in `slot_map` will be checked for version constraints.
-		shopt -s nullglob
-		local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
-
-		for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
-			local category_name="${category%/}"
-			category_name="${category_name##*/}"
-
-			# Skip arch-specific categories
-			if [[ "${category_name}" == "ppc64le" ]]; then
-				use ppc64 || continue
-			fi
-
-			# We applied common patches above, no need to apply them again here
-			[[ "${category_name}" == "common" ]] && continue
-
-			# Unconditional patches for this category
-			local category_patches=( "${category}"*.patch )
-			[[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" )
-
-			# Version-constrained subdirectories (e.g., llvm/lt-23/)
-			for constraint_dir in "${category}"*/; do
-				local dir_name="${constraint_dir%/}"
-				dir_name="${dir_name##*/}"
-				if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
-					ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
-						PATCHES+=( "${constraint_dir}" )
-				fi
-			done
-		done
-
-		shopt -u nullglob
-
-		# Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
-		if use ppc64; then
-			local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
-			# patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
-			local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
-			local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
-			# Apply the OpenPOWER patches (check for page size and isa 3.0)
-			openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
-				grep -v "${isa_3_patch}" || die) )
-			for patch in "${openpower_patches[@]}"; do
-				PATCHES+=( "${patchset_dir}/${patch}" )
-			done
-			if [[ $(getconf PAGESIZE) == 65536 ]]; then
-				PATCHES+=( "${patchset_dir}/${page_size_patch}" )
-			fi
-			# We use vsx3 as a proxy for 'want isa3.0' (POWER9)
-			if use cpu_flags_ppc_vsx3 ; then
-				PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
-			fi
-		fi
-
-		remove_compiler_builtins
-
-		# We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
-		local suffix=""
-		if [[ "${RUST_TYPE}" == "binary" ]]; then
-			suffix="-bin-${RUST_SLOT}"
-		else
-			suffix="-${RUST_SLOT}"
-		fi
-		sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
-			die "Failed to update rustfmt path"
-
-	fi
-
-	# Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
-	einfo "Moving rollup wasm-node package into place ..."
-	mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to create node_modules/@rollup/wasm-node"
-	mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
-		die "Failed to move rollup package"
-
-	default
-
-	# Sanity check esbuild version before we start removing files.
-	# We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
-	# arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
-	# but this is fine too and exactly matches what upstream are expecting.
-	# https://github.com/evanw/esbuild/issues/2894
-	local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
-	local found
-	found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
-	if [[ "${found}" != "${ESBUILD_VER}" ]]; then
-		die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
-	fi
-
-	elog "Removing bundled binaries from source tree ..."
-	# Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
-	# Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
-	${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
-		die "Failed to remove bundled binaries"
-
-	# And now we restore any that we actually need, from the host system
-	local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
-	local -A restore_list=(
-		["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
-		["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
-		["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
-	)
-
-	for src in "${!restore_list[@]}"; do
-		dst="${restore_list[${src}]}"
-		if [[ -f "${src}" ]]; then
-			einfo "Symlinking ${src} ..."
-			# Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
-			mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
-			ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
-			if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
-				die "Symlink verification failed for ${dst} -> ${src}"
-			fi
-		else
-			die "Expected to find ${src} to restore ${dst}, but it does not exist."
-		fi
-	done
-
-	# adjust python interpreter version
-	sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
-	# Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
-	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-		-i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
-
-	# remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
-	# whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
-	local keeplibs=(
-		base/third_party/cityhash
-		base/third_party/double_conversion
-		base/third_party/icu
-		base/third_party/nspr
-		base/third_party/superfasthash
-		base/third_party/symbolize
-		base/third_party/xdg_user_dirs
-		buildtools/third_party/libc++
-		buildtools/third_party/libc++abi
-		net/third_party/mozilla_security_manager
-		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/third_party/typ
-		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/compiler-rt # Since M137 atomic is required; we could probably unbundle this as a target of opportunity.
-		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/OpenGL-Registry
-		third_party/dawn/third_party/renderdoc
-		third_party/dawn/third_party/webgpu-headers
-		third_party/depot_tools
-		third_party/devscripts
-		third_party/devtools-frontend
-		third_party/devtools-frontend/src/front_end/third_party/acorn
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/devtools-frontend/src/front_end/third_party/axe-core
-		third_party/devtools-frontend/src/front_end/third_party/chromium
-		third_party/devtools-frontend/src/front_end/third_party/codemirror
-		third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
-		third_party/devtools-frontend/src/front_end/third_party/diff
-		third_party/devtools-frontend/src/front_end/third_party/i18n
-		third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
-		third_party/devtools-frontend/src/front_end/third_party/json5
-		third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
-		third_party/devtools-frontend/src/front_end/third_party/lighthouse
-		third_party/devtools-frontend/src/front_end/third_party/lit
-		third_party/devtools-frontend/src/front_end/third_party/marked
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
-		third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/urlpattern-polyfill
-		third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
-		third_party/devtools-frontend/src/front_end/third_party/third-party-web
-		third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
-		third_party/devtools-frontend/src/front_end/third_party/wasmparser
-		third_party/devtools-frontend/src/front_end/third_party/web-vitals
-		third_party/devtools-frontend/src/third_party
-		third_party/dom_distiller_js
-		third_party/dragonbox
-		third_party/eigen3
-		third_party/emoji-segmenter
-		third_party/farmhash
-		third_party/fast_float
-		third_party/fdlibm
-		third_party/federated_compute/chromium/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/base
-		third_party/federated_compute/src/fcp/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/confidentialcompute
-		third_party/federated_compute/src/fcp/protos/federatedcompute
-		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/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
-		third_party/highway
-		third_party/hunspell
-		third_party/ink/src/ink/brush
-		third_party/ink/src/ink/color
-		third_party/ink/src/ink/geometry
-		third_party/ink/src/ink/rendering
-		third_party/ink/src/ink/rendering/skia/common_internal
-		third_party/ink/src/ink/rendering/skia/native
-		third_party/ink/src/ink/rendering/skia/native/internal
-		third_party/ink/src/ink/strokes
-		third_party/ink/src/ink/types
-		third_party/inspector_protocol
-		third_party/ipcz
-		third_party/jinja2
-		third_party/jsoncpp
-		third_party/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/vector
-		third_party/libaom/source/libaom/third_party/x86inc
-		third_party/libc++
-		third_party/libdrm
-		third_party/libgav1
-		third_party/libjingle
-		third_party/libpfm4
-		third_party/libphonenumber
-		third_party/libpng
-		third_party/libsecret
-		third_party/libsrtp
-		third_party/libsync
-		third_party/libtess2/libtess2
-		third_party/libtess2/src/Include
-		third_party/libtess2/src/Source
-		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/llvm-libc
-		third_party/llvm-libc/src/shared/
-		third_party/lottie
-		third_party/lss
-		third_party/lzma_sdk
-		third_party/mako
-		third_party/markupsafe
-		third_party/material_color_utilities
-		third_party/metrics_proto
-		third_party/minigbm
-		third_party/ml_dtypes
-		third_party/modp_b64
-		third_party/nasm
-		third_party/nearby
-		third_party/neon_2_sse
-		third_party/node
-		third_party/oak/chromium/proto
-		third_party/oak/chromium/proto/attestation
-		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/pprof
-		third_party/perfetto/protos/third_party/primes
-		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/protobuf/third_party/utf8_range
-		third_party/pthreadpool
-		third_party/puffin
-		third_party/pyjson5
-		third_party/pyyaml
-		third_party/rapidhash
-		third_party/re2
-		third_party/readability
-		third_party/rnnoise
-		third_party/rust
-		third_party/ruy
-		third_party/s2cellid
-		third_party/search_engines_data
-		third_party/securemessage
-		third_party/selenium-atoms
-		third_party/sentencepiece
-		third_party/sentencepiece/src/third_party/darts_clone
-		third_party/shell-encryption
-		third_party/simdutf
-		third_party/simplejson
-		third_party/six
-		third_party/skia
-		third_party/skia/include/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/fft2d
-		third_party/tflite/src/third_party/xla/third_party/tsl
-		third_party/tflite/src/third_party/xla/xla/tsl/framework
-		third_party/tflite/src/third_party/xla/xla/tsl/lib/random
-		third_party/tflite/src/third_party/xla/xla/tsl/platform
-		third_party/tflite/src/third_party/xla/xla/tsl/protobuf
-		third_party/tflite/src/third_party/xla/xla/tsl/util
-		third_party/ukey2
-		third_party/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/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/third_party/glibc
-		v8/third_party/inspector_protocol
-		v8/third_party/rapidhash-v8
-		v8/third_party/siphash
-		v8/third_party/utf8-decoder
-		v8/third_party/v8
-		v8/third_party/valgrind
-
-		# gyp -> gn leftovers
-		third_party/speech-dispatcher
-		third_party/usb_ids
-	)
-
-	if use rar; then
-		keeplibs+=( third_party/unrar )
-	fi
-
-	if use test; then
-		keeplibs+=(
-			third_party/breakpad/breakpad/src/processor
-			third_party/fuzztest
-			third_party/google_benchmark/src/include/benchmark
-			third_party/google_benchmark/src/src
-			third_party/test_fonts
-			third_party/test_fonts/fontconfig
-			third_party/test_fonts/test_fonts
-		)
-	fi
-
-	# USE=system-*
-	if ! use system-harfbuzz; then
-		keeplibs+=( third_party/harfbuzz )
-	fi
-
-	if ! use system-icu; then
-		keeplibs+=( third_party/icu )
-	fi
-
-	if ! use system-zstd; then
-		keeplibs+=( third_party/zstd )
-	fi
-
-	# Arch-specific
-	if use arm64 || use ppc64 ; then
-		keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
-	fi
-	# we need to generate ppc64 stuff because upstream does not ship it yet
-	# it has to be done before unbundling.
-	if use ppc64; then
-		pushd third_party/libvpx >/dev/null || die
-		mkdir -p source/config/linux/ppc64 || die
-		# requires git and clang, bug #832803
-		# Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
-		# and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
-		# since we're not in a git repo
-		sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
-			generate_gni.sh || die
-		./generate_gni.sh || die
-		popd >/dev/null || die
-
-		pushd third_party/ffmpeg >/dev/null || die
-		cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
-		cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
-		popd >/dev/null || die
-	fi
-
-	# Sanity check keeplibs, on major version bumps it is often necessary to update this list
-	# and this enables us to hit them all at once.
-	# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
-	whitelist_libs=(
-		net/third_party/quic
-		third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
-		third_party/libjingle
-		third_party/mesa
-		third_party/skia/third_party/vulkan
-		third_party/vulkan
-	)
-	local not_found_libs=()
-	for lib in "${keeplibs[@]}"; do
-		if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
-			not_found_libs+=( "${lib}" )
-		fi
-	done
-
-	if [[ ${#not_found_libs[@]} -gt 0 ]]; then
-		eerror "The following \`keeplibs\` directories were not found in the source tree:"
-		for lib in "${not_found_libs[@]}"; do
-			eerror "  ${lib}"
-		done
-		die "Please update the ebuild."
-	fi
-
-	# Remove most bundled libraries. Some are still needed.
-	einfo "Unbundling third-party libraries ..."
-	build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
-	# Interferes with our bundled clang path; we don't want stripped binaries anyway.
-	sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
-		-e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
-		build/linux/strip_binary.gni || die
-}
-
-chromium_configure() {
-	# Calling this here supports resumption via FEATURES=keepwork
-	python_setup
-
-	# 974899: sometimes people try to build with a non-Unicode locale and python gets very upset
-	python_export_utf8_locale || die "Chromium builds require a UTF-8 locale."
-
-	# Bug 491582.
-	export TMPDIR="${WORKDIR}/temp"
-	mkdir -p -m 755 "${TMPDIR}" || die
-
-	# https://bugs.gentoo.org/654216
-	addpredict /dev/dri/ #nowarn
-
-	# Use system-provided libraries.
-	# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
-	# TODO: use_system_hunspell (upstream changes needed).
-	# TODO: use_system_protobuf (bug #525560).
-	# TODO: use_system_sqlite (http://crbug.com/22208).
-
-	# libevent: https://bugs.gentoo.org/593458
-	local gn_system_libraries=(
-		flac
-		fontconfig
-		freetype
-		# Need harfbuzz_from_pkgconfig target
-		#harfbuzz-ng
-		libjpeg
-		libwebp
-		libxml
-		libxslt
-		openh264
-		zlib
-	)
-	if use system-icu; then
-		gn_system_libraries+=( icu )
-	fi
-
-	if use system-zstd; then
-		gn_system_libraries+=( zstd )
-	fi
-
-	build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
-		die "Failed to replace GN files for system libraries"
-
-	# TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
-	# drop the last line, then append the freetype line and a new curly brace to end the block
-	local freetype_gni="build/config/freetype/freetype.gni"
-	sed -i -e '$d' ${freetype_gni} || die
-	echo "  enable_freetype = true" >> ${freetype_gni} || die
-	echo "}" >> ${freetype_gni} || die
-
-	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*"
-		# 949123: Several multimedia components explicitly build with specific CFLAGS and
-		# use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
-		# to the end of the command line, which causes build failures.
-		use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*"
-	fi
-
-	# 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 # can you cross-compile with the bundled toolchain?
-			export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
-			export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
-	fi
-
-	# Start building our GN options
-	local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
-
-	if use !bundled-toolchain; then
-		# We already forced the "correct" clang via pkg_setup
-
-		if tc-is-cross-compiler; then
-			CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
-			CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
-			BUILD_AR=${AR}
-			BUILD_CC=${CC}
-			BUILD_CXX=${CXX}
-			BUILD_NM=${NM}
-		fi
-
-		# Make sure the build system will use the right tools, bug #340795.
-		tc-export AR CC CXX NM
-
-		strip-unsupported-flags
-		append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
-
-		myconf_gn+=(
-			"is_clang=true"
-			"clang_use_chrome_plugins=false"
-			"use_clang_modules=false" # M141 enables this for the linux platform by default.
-			"use_lld=true"
-			'custom_toolchain="//build/toolchain/linux/unbundle:default"'
-			# From M127 we need to provide a location for libclang and the clang resource dir so that bindgen can find them
-			"bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
-			"bindgen_clang_resource_dir=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\""
-			"bindgen_extra_clang_args=[\"-I${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"]"
-			"clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-			"rust_bindgen_root=\"${EPREFIX}/usr/\""
-			"rust_sysroot_absolute=\"$(get_rust_prefix)\""
-			"rustc_version=\"${RUST_SLOT}\""
-		)
-
-		if [[ ${LLVM_SLOT} -lt 23 ]]; then
-			# Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23)
-			myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' )
-		fi
-
-		if ! tc-is-cross-compiler; then
-			myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
-		else
-			tc-export BUILD_{AR,CC,CXX,NM}
-			myconf_gn+=(
-				'host_toolchain="//build/toolchain/linux/unbundle:host"'
-				'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
-				"host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
-				"pkg_config=\"$(tc-getPKG_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=
-		fi
-
-	fi # !bundled-toolchain
-
-	local myarch
-	myarch="$(tc-arch)"
-	case ${myarch} in
-		amd64)
-			# Bug 530248, 544702, 546984, 853646.
-			use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
-										-mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
-			myconf_gn+=( 'target_cpu="x64"' )
-			;;
-		arm64)
-			myconf_gn+=( 'target_cpu="arm64"' )
-			;;
-		ppc64)
-			myconf_gn+=( 'target_cpu="ppc64"' )
-			;;
-		*)
-			die "Failed to determine target arch, got '${myarch}'."
-			;;
-	esac
-
-	# Common options
-
-	myconf_gn+=(
-		# Disable code formating of generated files
-		"blink_enable_generated_code_formatting=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.
-		"dcheck_always_on=$(usex debug true false)"
-		"dcheck_is_configurable=$(usex debug true false)"
-		# Chromium builds provided by Linux distros should disable the testing config
-		"disable_fieldtrial_testing_config=true"
-		# Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
-		# use different profile directories, desktop entries, etc. This enables slotting the ebuild.
-		"enable_channel_branding=true"
-		# 131 began laying the groundwork for replacing freetype with
-		# "Rust-based Fontations set of libraries plus Skia path rendering"
-		# We now need to opt-in
-		"enable_freetype=true"
-		"enable_hangout_services_extension=$(usex hangouts true false)"
-		# Don't need nocompile checks and GN crashes with our config (verify with modern GN)
-		"enable_nocompile_tests=false"
-		# pseudolocales are only used for testing
-		"enable_pseudolocales=false"
-		"enable_widevine=$(usex widevine true false)"
-		# Disable fatal linker warnings, bug 506268.
-		"fatal_linker_warnings=false"
-		# 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 [email protected] for more info.
-		# note: OAuth2 is patched in; check patchset for details.
-		'google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"'
-		# Component build isn't generally intended for use by end users. It's mostly useful
-		# for development and debugging.
-		"is_component_build=false"
-		# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
-		"is_debug=false"
-		"is_official_build=$(usex official true false)"
-		# Enable ozone wayland and/or headless support
-		"ozone_auto_platforms=false"
-		"ozone_platform_headless=true"
-		# Enables building without non-free unRAR licence
-		"safe_browsing_use_unrar=$(usex rar true false)"
-		"thin_lto_enable_optimizations=${use_lto}"
-		"treat_warnings_as_errors=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).
-		"use_custom_libcxx=true"
-		# Enable ozone wayland and/or headless support
-		"use_ozone=true"
-		# The sysroot is the oldest debian image that chromium supports, we don't need it
-		"use_sysroot=false"
-		# See dependency logic in third_party/BUILD.gn
-		"use_system_harfbuzz=$(usex system-harfbuzz true false)"
-		"use_thin_lto=${use_lto}"
-		# Only enabled for clang, but gcc has endian macros too
-		"v8_use_libm_trig_functions=true"
-	)
-
-	if use bindist ; then
-		myconf_gn+=(
-			# If this is set to false Chromium won't be able to load any proprietary codecs
-			# even if provided with an ffmpeg capable of h264/aac decoding
-			"proprietary_codecs=true"
-			'ffmpeg_branding="Chrome"'
-			# build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
-			"is_component_ffmpeg=true"
-		)
-	else
-		myconf_gn+=(
-			"proprietary_codecs=$(usex proprietary-codecs true false)"
-			"ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
-		)
-	fi
-
-	if use headless; then
-		myconf_gn+=(
-			"enable_print_preview=false"
-			"enable_remoting=false"
-			'ozone_platform="headless"'
-			"rtc_use_pipewire=false"
-			"use_alsa=false"
-			"use_cups=false"
-			"use_gio=false"
-			"use_glib=false"
-			"use_gtk=false"
-			"use_kerberos=false"
-			"use_libpci=false"
-			"use_pangocairo=false"
-			"use_pulseaudio=false"
-			"use_qt5=false"
-			"use_qt6=false"
-			"use_udev=false"
-			"use_vaapi=false"
-			"use_xkbcommon=false"
-		)
-	else
-		myconf_gn+=(
-			"gtk_version=$(usex gtk4 4 3)"
-			# link pulseaudio directly (DT_NEEDED) instead of using dlopen.
-			# helps with automated detection of ABI mismatches and prevents silent errors.
-			"link_pulseaudio=$(usex pulseaudio true false)"
-			"ozone_platform_wayland=$(usex wayland true false)"
-			"ozone_platform_x11=$(usex X true false)"
-			"ozone_platform=\"$(usex wayland wayland x11)\""
-			"rtc_use_pipewire=$(usex screencast true false)"
-			"use_cups=$(usex cups true false)"
-			"use_kerberos=$(usex kerberos true false)"
-			"use_pulseaudio=$(usex pulseaudio true false)"
-			"use_qt5=false"
-			"use_system_libffi=$(usex wayland true false)"
-			"use_system_minigbm=true"
-			"use_vaapi=$(usex vaapi true false)"
-			"use_xkbcommon=true"
-		)
-		if use qt6; then
-			local cbuild_libdir
-			cbuild_libdir="$(get_libdir)"
-			if tc-is-cross-compiler; then
-			# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
-				cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
-				cbuild_libdir="${cbuild_libdir:2}"
-				cbuild_libdir="${cbuild_libdir/% }"
-			fi
-			myconf_gn+=(
-				"use_qt6=true"
-				"moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
-			)
-		else
-			myconf_gn+=( "use_qt6=false" )
-		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
-
-	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
-		if use !ppc64; then
-			myconf_gn+=( "is_cfi=${use_lto}" )
-		else
-			myconf_gn+=( "is_cfi=false" ) # requires llvm-runtimes/compiler-rt-sanitizers[cfi]
-		fi
-		# 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
-		myconf_gn+=( "chrome_pgo_phase=0" )
-	fi
-
-	# Odds and ends
-
-	# skipping typecheck is only supported on amd64, bug #876157
-	if ! use amd64; then
-		myconf_gn+=( "devtools_skip_typecheck=false" )
-	fi
-
-	# 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 && use ppc64; then
-		myconf_gn+=( "v8_enable_external_code_space=false" )
-	fi
-
-	# Since we build from tarballs, we need to set the channel here so that it can be used in the build.
-	export CHROME_VERSION_EXTRA="${SLOT}"
-
-	einfo "Configuring Chromium ..."
-	set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
-	echo "$@"
-	"$@" || die "Failed to configure Chromium"
-}
-
-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 code_cache_generator; do
-			if tc-is-cross-compiler; then
-				eninja -C out/Release "host/${x}"
-				pax-mark m "out/Release/host/${x}"
-			else
-				eninja -C out/Release "${x}"
-				pax-mark m "out/Release/${x}"
-			fi
-		done
-	fi
-
-	# Even though ninja autodetects number of CPUs, we respect
-	# user's options, for debugging with -j 1 or any other reason.
-	eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests")
-
-	pax-mark m out/Release/chrome
-
-	# This codepath does minimal patching, so we're at the mercy of upstream
-	# CFLAGS. This is fine - we're not intending to force this on users
-	# and we do a lot of flag 'management' anyway.
-	if use bundled-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/libqt6_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
-
-	# Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
-	${EPYTHON} "${FILESDIR}/generate-support-files.py" \
-		--installdir "/usr/$(get_libdir)/chromium-browser" \
-		--channel "${SLOT}" ||
-			die "Failed to generate support files"
-}
-
-src_test() {
-	# Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
-	# If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
-	# run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
-	# chromium gods are not smiling upon you today. Do some runtime testing, obvs.
-	local skip_tests=(
-		# Wildcard exclusions (if all tests in a test suite are broken)
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
-		'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
-		'CheckExitCodeAfterSignalHandlerDeathTest.*'
-		'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
-		'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
-		'ToolsSanityTest.BadVirtualCall*'
-		# requires en-us locale
-		SysStrings.SysNativeMBAndWide
-		SysStrings.SysNativeMBToWide
-		SysStrings.SysWideToNativeMB
-		# Specific test cases
-		CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
-		FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
-		HistogramTesterTest.PumaTestUniqueSample
-		PathServiceTest.CheckedGetFailure
-		PlatformThreadTest.CanChangeThreadType
-		RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
-		RustLogIntegrationTest.CheckAllSeverity
-		StackCanary.ChangingStackCanaryCrashesOnReturn
-		StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
-		TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
-		ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
-	)
-	local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
-	# test-launcher-bot-mode enables parallelism and plain output
-	# Check individual tests with --gtest_filter=<test you want> --single-process-tests
-	./out/Release/base_unittests --test-launcher-bot-mode \
-		--test-launcher-jobs="$(get_makeopts_jobs)" \
-		--gtest_filter="${test_filter}" || die "Tests failed!"
-}
-
-src_install() {
-	local browser_suffix
-	if [[ "${SLOT}" != "stable" ]]; then
-		browser_suffix="-${SLOT}"
-	else
-		browser_suffix=""
-	fi
-	local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${browser_suffix}"
-	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
-	}
-
-	cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-		#!/bin/bash
-		# Wrapper to launch slotted Chromium via the chromium-common launcher script.
-		export CHROME_DESKTOP="chromium-browser${browser_suffix}.desktop"
-		export CHROME_EXEC_NAME="chromium-browser${browser_suffix}"
-		export CHROME_VERSION_EXTRA="${SLOT}"
-		export CHROME_WRAPPER="\$(readlink -f "\$0")"
-		export OZONE_AUTO_SESSION=$(ozone_auto_session)
-
-		exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
-	EOF
-
-	chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-
-	# 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${browser_suffix}
-	# keep the old symlink around for consistency
-	dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${browser_suffix}
-
-	dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${browser_suffix}
-
-	pushd out/Release/locales > /dev/null || die
-	chromium_remove_language_paks
-	popd > /dev/null || die
-
-	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[@]}"
-	)
-
-	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${browser_suffix}.png
-	done
-
-	# Install desktop entry
-	domenu out/Release/chromium-browser${browser_suffix}.desktop
-
-	# Install GNOME default application entry (bug #303100).
-	insinto /usr/share/gnome-control-center/default-apps
-	doins out/Release/chromium-browser${browser_suffix}.xml
-
-	# Install AppStream metadata
-	insinto /usr/share/appdata
-	doins out/Release/chromium-browser${browser_suffix}.appdata.xml
-
-	# Install manpage; bug #684550
-	doman out/Release/chromium-browser${browser_suffix}.1
-	dosym chromium-browser${browser_suffix}.1 /usr/share/man/man1/chromium${browser_suffix}.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 && [[ -z "${REPLACING_VERSIONS}" ]]; then
-		if use vaapi; then
-			elog "Hardware-accelerated video decoding configuration:"
-			elog
-			elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
-			elog "   Add to CHROMIUM_FLAGS in /etc/chromium/default:"
-			elog
-			elog "1. VA-API with OpenGL (recommended for most users):"
-			elog "   --enable-features=AcceleratedVideoDecodeLinuxGL"
-			elog "   VaapiVideoDecoder may need to be added as well, but try without first."
-			elog
-			if use wayland; then
-				elog "2. Enhanced Wayland/EGL performance:"
-				elog "   --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
-				elog
-			fi
-			if use X; then
-				elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
-				elog "   --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
-				elog
-				if use wayland; then
-					elog "   NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
-					elog "   Use OpenGL-based acceleration instead when running under Wayland."
-					elog
-				fi
-			fi
-			elog "Additional options:"
-			elog "  To enable hardware-accelerated encoding (if supported)"
-			elog "  add 'AcceleratedVideoEncoder' to your feature list"
-			elog "  VaapiIgnoreDriverChecks bypasses driver compatibility checks"
-			elog "  (may be needed for newer/unsupported hardware)"
-			elog
-		else
-			elog "This Chromium build was compiled without VA-API support, which provides"
-			elog "hardware-accelerated video decoding."
-		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
-
-	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
-
-	# Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
-	if [[ -n "${REPLACING_VERSIONS}" ]]; then
-		local replacing_non_slotted=false
-		# there could be more than one PVR
-		for version in ${REPLACING_VERSIONS}; do
-			if ver_test "${version}" -le "145.0.7632.116"; then
-				replacing_non_slotted=true
-				break
-			fi
-		done
-		if ${replacing_non_slotted}; then
-			ewarn "This version of Chromium has replaced a non-slotted ebuild."
-			if [[ ${SLOT} != "stable" ]]; then
-				ewarn "This channel has its own profile directory, so your existing profile will not be used."
-				ewarn "To use your existing profile, either copy or move it to the new location."
-				ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
-				ewarn ""
-			fi
-			ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
-			ewarn "or have the path in the desktop files updated to point to the new wrapper script."
-		fi
-	fi
-}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.