commit:     50a2ecb028133feabff2ed28608fcdaf61deaef1
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 28 00:40:42 2026 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sat Feb 28 22:31:46 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=50a2ecb0

www-client/chromium: add `unstable` slot, 147.0.7703.0

This commit introduces slotted Chromium. This enables multiple Chromium
channels to be installed simultaneously. Most importantly, this means
that users that select a particular slot / channel won't wind up with a
crashing browser and no error message due to the profile receiving a
non-backwards-compatible upgrade.

The `dev` channel is output as `-unstable` for consistency with Google
Chrome builds and the slot has been named to reflect this.

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

 www-client/chromium/Manifest                       |   9 +-
 ....7695.0.ebuild => chromium-147.0.7703.0.ebuild} | 126 ++++++++++++---------
 2 files changed, 76 insertions(+), 59 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0949605e6ecf..c10899387fe4 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -3,21 +3,22 @@ DIST chromium-138.0.7204.157-linux.tar.xz 1555757520 BLAKE2B 
d46405fdb3e1e2bb919
 DIST chromium-145.0.7632.109-linux.tar.xz 1416630532 BLAKE2B 
dac5230bc319295c9aac98ce9d707691372e6858098e12753c8295047c67faad65b004cce373803361f2b599c9fd3bb0236dfcebfa2fe85b8b8b0a4755292c52
 SHA512 
90a857d98aca2e70415332c1abd8c79ea81500254431a47b81f47ee2646cc0ff5368efe182a2cca12469b9b99a776ee47f9fef1d3343351cc31c60d5f55c4582
 DIST chromium-145.0.7632.116-linux.tar.xz 1416541220 BLAKE2B 
ab56819c0f0ca01917ca686a74e60e570bc9c9625cc86b75fee3b03cc77a1f5f1721a0060d34307270992bcb504cd936d61f79e7eb97afce42b29a5de1e7b2b5
 SHA512 
494cc5dcf920beede5dd653c7aa0a7706e2704d0483785769f898c9a285463bc418861dbe71c106bef1dd3b5c99677200a32f2e9b123130d56bc8cfbb259fa40
 DIST chromium-146.0.7680.31-linux.tar.xz 1475597444 BLAKE2B 
d9f2e4929bc0fe9da8d85bb8e4a99cee220ec60a06f2bbe3836dce80a3f43ae6cd76ab8ea8d071f622deeba5a80826701bf0cefc80c9905120b902158eac9821
 SHA512 
bc8ef6b7e92baa15fc2b442211ba2d957e4edfb178d5c96d19745869fb575e570cb75175644cee165440f220feb3f26550b372dc4f513ee8514cb23beef78486
-DIST chromium-147.0.7695.0-linux.tar.xz 1472305980 BLAKE2B 
2be2089325d4fa76667dab2e02ca1695134389a85f3ba930a0e90caf095e26ee29300e8efeb0e9f874a69f37c7589106fefa346e9602301958b48505e622ce25
 SHA512 
12a9ac27f77d9b07aa3043936535a354e79834a0964d6abe9fc1b66b4f59183499d875789cee984883cd0cd623a72228a78e0c64ff85c4bd738951485d252813
+DIST chromium-147.0.7703.0-linux.tar.xz 1472359380 BLAKE2B 
ef03307b7155551f88e6cd438c4b9d5908f28b3cff8e477e3296a8e042cc52d699ab5f5f705eb8d56136346aed6f5643978fb03471353d19c427ddbc3aeb1747
 SHA512 
a48d48ff40bc422836bcd1e0cd1ea2d4100cbd362e034d9739976b77e4cf2b39a8418b8fc23642fc1ea3550e9ac387c476ad20b87f5e1a7dfcf66f6a2996f4d5
 DIST chromium-clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz 272 BLAKE2B 
4423dd821d8ad88aad0ae734551defa28362d4ad3f263ef0e525d57f4266108ea58661749c8b82403426b25ae4ea189021dfbb016fad280d4ef18d3b48f43a46
 SHA512 
76158ad6a30c9905dd3a1044125114e90d6cbc74eabe38a0c49e07e5f52813615074bd22088578b91a763b5186e924c322e9fce5281b672e2748cd563c9cfad8
 DIST chromium-clang-llvmorg-22-init-17020-gbd1bd178-2.tar.xz 57165612 BLAKE2B 
7fdd52f8f72cf5fd5c32528bed47d0377d6d78ab14edd39f0301e93a73cff7b2dcbadeb1dacec32fff4c29439f0770f72a930b1461bc8713dadb6063d4bfa8ed
 SHA512 
db7d58837a36b4b3b436de7c721cd71d8a51f476ed3dce37e18071fd925fb846ab1197ed75b88acff8b740ca0a1cbed4445f33d9bd5ce3e3e43b3c097f53e1df
 DIST chromium-clang-llvmorg-23-init-2224-g5bd8dadb-3.tar.xz 57583584 BLAKE2B 
7fdfe36655b5fd1f865fb0d74d238c539431fc4abfa403646def47b8076d4d9642a7bc50c9a188bca117939164d46acadbcb6c2c762a39eb11826dc24fc47d70
 SHA512 
d6bc64fdd9d2f31f317a65d0e355d79b804267811e2026c0ed41699c049c5d90a90d56b15a2039a5c345eb1f11c2d6eef0e84f4665aee938ed36c7a0002ed5af
-DIST chromium-clang-llvmorg-23-init-3706-gfc648683-1.tar.xz 57775784 BLAKE2B 
72646de4058948246209426c456b531b8f28885063a9a391f8b03184a3703419317ed7e8f79af584b42fff6e388372536c804f21e85ba51badd9e8a2e6568e5b
 SHA512 
60f40c6a608fa5604cf560b461826972a9de89571e56c3118e758263256a1e953b7792d3722411a513a77e9a5157fb077c762bc49e9e834c953473410006ce45
+DIST chromium-clang-llvmorg-23-init-4965-g686acf63-1.tar.xz 57997052 BLAKE2B 
5e8634c5641db77eb9f9454d21489557f264b88671f8efb25898b997337d014ea75260640415e4edd53e6fe0b033ea8f6f3aee9c08ec697f72f4566ebd36b0db
 SHA512 
0f478d5c5894ee9ecb6dbf7a21e3928b82b49951a7b6dff0d5df29ba0972b83e44d5e5f0549eadd3c86214bbd9932960a020781ac7d9cf98bdeb2c9566543829
+DIST chromium-openpower-a85b64f07b.tar.bz2 2940 BLAKE2B 
671e22109410b84d026ee9e73f6112e99023707b97b6af204da8adca7fd53c85d6f5b634ad400596bbc1314f21a011a38a25aa029580529306cc1ad958d4a913
 SHA512 
34b3e93c23f320e8ce8164527544e37c771d3663951b032e1213db83c0559a85588dbedaa1c92a493cb3e187d6afc8a9601c9e82c07d8cb402e2f1e2dc4b4312
 DIST chromium-openpower-e1538a2234.tar.bz2 2940 BLAKE2B 
671e22109410b84d026ee9e73f6112e99023707b97b6af204da8adca7fd53c85d6f5b634ad400596bbc1314f21a011a38a25aa029580529306cc1ad958d4a913
 SHA512 
34b3e93c23f320e8ce8164527544e37c771d3663951b032e1213db83c0559a85588dbedaa1c92a493cb3e187d6afc8a9601c9e82c07d8cb402e2f1e2dc4b4312
 DIST chromium-patches-138-1.tar.bz2 11109 BLAKE2B 
a4b57c2f5cadae37f6284e458ec8941c09ae98658c099e638817919da9686ec412b619a21bd208ce79b471d27bbfcf589a94695f636f381a2de60f14fe8fe367
 SHA512 
b930ac8cb86aa5143cecf04c076a07a366328806b20ba4c6c09844b4411b74a0ad04dfbf182966e9401e3d1ee4a6f4b3e12e7f9b015c5f33311ebe0ffd76d5da
 DIST chromium-patches-145-1.tar.bz2 11711 BLAKE2B 
a7d6a6e0bd129f3c96bea29bf58dfb91e90f74c3c7e619f7d3d18ea42b8046a1c1c81f463bf31fbff5990b77cb9bea1c289be93e96a22b4d2de0be7253955ce5
 SHA512 
1008ceac53ec94bc766085d74a703401b45f2b4ff59240dd853383e1c28e8781d9f0be3a58c2cd5470922e529a3ba583188dde0d84b2be04de9cb1b212c110a2
 DIST chromium-patches-146.tar.bz2 13093 BLAKE2B 
db63fa00263d4c34639a29e10aa54b28c014a26cfd88f69eef94ceaacaed3d7e1bfa5a03c2744ee064f39f836e08468062ec0fcdc8bba386a533cd28466e549f
 SHA512 
c877f68555f856670996439c766fe14ccc483b53a1d0f9f5a4f107c1f3e76bec8d5c883ed1d2aa51cccae0528b4d711b9c21ef8a5a12c036dc273fea61fb9ff2
-DIST chromium-patches-147.tar.bz2 13487 BLAKE2B 
436a4a27b9f22224ba6bcaf3dec6117f2a5021731f95a9d7c06b562a149ccc3f6567cda2504d0745e44cb01183c081b93bff527b51055988ffea49842dd887fe
 SHA512 
5fa2f6ff029a5531a45e5297283cd24b7abdadceaf63ea675d1963c968738c82e467639e72f290fde2c95ac641ac125093d3a4f3c77b6d16866f76a76d55ab2b
+DIST chromium-patches-147-2.tar.bz2 19019 BLAKE2B 
99fe7aa0e762a851f1cf501d9b4d7c06143a6fcdccc13994d07d14046a909e503c32c42ca61db06a5b8a36d6cb33ec3b4dbd0b35c12a5f53c41092f44f278994
 SHA512 
194a836644fad78f351a3b2218de70f88f11750e57d1c256b222d42282cf0bc32a84c8cb21722149d0673babda8f42786ae2aa8225b1116e96537f487e546163
 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-4a0969e06d-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz 
118529212 BLAKE2B 
595fb0f3b1526f75c69b19936b93547168a7d4b53fe9afe34c0f3a08b58434dcfbd214c86963a0d54e726c475296d5b54a5a436d63f3f5ac84409fdf86a17cfc
 SHA512 
837bde1b8a0750dca3b298d3a83e54a92574060e93af3d9fdc72ec5873b4e2e22abeb286dd81573eb787af2c0ccc7878eb2ba5e9fdfb8b0f22dd4b77fc1dcac1
 DIST 
chromium-rust-toolchain-7d8ebe3128-3-llvmorg-23-init-2224-g5bd8dadb.tar.xz 
266591660 BLAKE2B 
1a95ed8da4070f4b69f7b166e4d2fbce9eb938eddfa5b74bd47a68e0ac3990d6925a4b4a18f18e3e3e990e698489104112583bc20eb86b9a6ca089541b0df01f
 SHA512 
40193a790129c6158fa565a447580c8d1bd8147519a8573b47cfb7efc16f51ba8355a2322e6009648ae35b732139b6bc244a775f1990e14db012710994a78dcf
-DIST 
chromium-rust-toolchain-7dc2e92b83-1-llvmorg-23-init-3706-gfc648683.tar.xz 
266703680 BLAKE2B 
23b47d0fd9256033ee98532d7fa92d99750b6f788483702ef8698e6c944e1072105fcc40eb0401c2735872cc2f8397166276cd60f5802c6187ab3b520a3667d5
 SHA512 
8ad309b21403496f4b71a94b50379db5dc3f96e4da72dec4d20f270bca4cae0f1bfb8e19e8a6686654b4b377b9b0060bce28f472fff797559f3e04d6abfd045f
 DIST 
chromium-rust-toolchain-a4cfac7093-2-llvmorg-22-init-17020-gbd1bd178.tar.xz 
140484296 BLAKE2B 
6b22b982b08b0728dda4bbbec2ad4f43977a792501a7ef0e5bba1c23996ec158ccaeabb3baced1d2335f3d7de0f5ca1f44dce40206ad57b63c9a17c675c35b86
 SHA512 
2d3fb70c9265e653bc952cae41ee81b3907e1c89d74e8c935c5d706a908424d32ebe6addde5230fd9ab366a53705fda9999ed511eee04de4ead14dced009d4de
+DIST 
chromium-rust-toolchain-c78a29473a-1-llvmorg-23-init-4965-g686acf63.tar.xz 
270144912 BLAKE2B 
7b2bf37b0d0ef83532a160afe6f829189c4fe5afd0c9634595d87ede6ee64fb3b4c940e93363d4fa5b78f22c80a721531b6e2ea3a21a644700f447d306361479
 SHA512 
7402acd0619185f8a296259a2b28bac8464ff5ba06f86b6558827f3e4740695ff5ecb3569458b2eccd50553cc736d0cbc719dacf9ab6a196ab59a5a506250784
 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-147.0.7695.0.ebuild 
b/www-client/chromium/chromium-147.0.7703.0.ebuild
similarity index 94%
rename from www-client/chromium/chromium-147.0.7695.0.ebuild
rename to www-client/chromium/chromium-147.0.7703.0.ebuild
index 3cc003cf3494..54d78555f4d5 100644
--- a/www-client/chromium/chromium-147.0.7695.0.ebuild
+++ b/www-client/chromium/chromium-147.0.7703.0.ebuild
@@ -27,10 +27,10 @@ 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-3706-gfc648683-1"
-BUNDLED_RUST_VER="7dc2e92b83be02dc07f87be7e94266d6e48e5ca5-1"
+BUNDLED_CLANG_VER="llvmorg-23-init-4965-g686acf63-1"
+BUNDLED_RUST_VER="c78a29473a68f07012904af11c92ecffa68fcc75-1"
 RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.11.1"
+NODE_VER="24.12.0"
 ESBUILD_VER="0.25.1"
 ROLLUP_VER="4.57.1" # currently manual.
 VIRTUALX_REQUIRED="pgo"
@@ -53,7 +53,7 @@ inherit python-any-r1 readme.gentoo-r1 rust systemd 
toolchain-funcs virtualx xdg
 DESCRIPTION="Open-source version of Google Chrome web browser"
 HOMEPAGE="https://www.chromium.org/";
 PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
-PATCH_V="${PV%%\.*}"
+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
@@ -71,18 +71,21 @@ 
SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/d
        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
-LICENSE="BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 Base64 Boost-1.0 
CC-BY-3.0 CC-BY-4.0 Clear-BSD"
-LICENSE+=" FFT2D FTL IJG ISC LGPL-2 LGPL-2.1 libpng libpng2 MIT MPL-1.1 
MPL-2.0 Ms-PL openssl PSF-2"
-LICENSE+=" SGI-B-2.0 SSLeay SunSoft Unicode-3.0 Unicode-DFS-2015 Unlicense 
UoI-NCSA X11-Lucent"
+# 
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="0/dev"
-# Dev exists mostly to give devs some breathing room for beta/stable releases;
-# it shouldn't be keyworded but adventurous users can select it; there's 
official
-# dev channel Google Chrome after all.
+SLOT="unstable"
+# 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"
@@ -169,6 +172,8 @@ COMMON_DEPEND="
        )
 "
 RDEPEND="${COMMON_DEPEND}
+       !www-client/chromium:0
+       www-client/chromium-common
        !headless? (
                || (
                        x11-libs/gtk+:3[X?,wayland?]
@@ -384,9 +389,9 @@ pkg_setup() {
 
 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-${PATCH_V}.tar.bz2
                unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
        fi
 
@@ -479,23 +484,10 @@ src_prepare() {
        # Calling this here supports resumption via FEATURES=keepwork
        python_setup
 
-       # To know which patches are safe to drop from files/ after tidying up 
old ebuilds:
-       # comm -13 \
-       #       <(grep 'FILESDIR' *.ebuild | grep patch | grep -o 
'\${FILESDIR}/[^") ]*' \
-       #               | sed 's|\${FILESDIR}/|files/|; s|\${PN}|chromium|' | 
sort -u) \
-       #       <(find files/ -name "*.patch" | sort)
-
-       local PATCHES=(
-               "${FILESDIR}/${PN}-cross-compile.patch"
-               "${FILESDIR}/${PN}-109-system-zlib.patch"
-               "${FILESDIR}/${PN}-131-unbundle-icu-target.patch"
-               "${FILESDIR}/${PN}-138-nodejs-version-check.patch"
-               "${FILESDIR}/cr144-glibc-2.43.patch"
-               "${FILESDIR}/cr145-oauth2-client-switches.patch"
-               "${FILESDIR}/cr145-revert-to-rollup-wasm.patch"
-       )
-       # No copium patches here: they should only need to apply to unbundled 
toolchain builds
-       # and don't get fetched or unpacked.
+       # 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
@@ -533,7 +525,7 @@ src_prepare() {
                # Automate conditional application of chromium-patches
                # The directory structure is expected to be something like:
                # chromium-patches-145/
-               # ├── common/
+               # ├── toolchain/
                # │   ├── cr123-foo.patch
                # │   └── cr135-bar.patch
                # ├── llvm/
@@ -554,6 +546,9 @@ src_prepare() {
                                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 )
 
@@ -942,7 +937,6 @@ src_prepare() {
        fi
 
        if use test; then
-               # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' 
| grep 'third_party' | awk '{print $NF}'
                keeplibs+=(
                        third_party/breakpad/breakpad/src/processor
                        third_party/fuzztest
@@ -1187,6 +1181,9 @@ chromium_configure() {
                "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
@@ -1346,6 +1343,9 @@ chromium_configure() {
                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 "$@"
@@ -1464,16 +1464,22 @@ src_compile() {
        rm -f out/Release/locales/*.pak.info || die
 
        # Generate support files (desktop file, manpage, etc.) See: #684550 
#706786 #968958
-       python3 "${FILESDIR}/generate-support-files.py" --installdir 
"/usr/$(get_libdir)/chromium-browser" ||
-               die "Failed to generate support files"
+       ${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.
+               'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 
crashes entire test runner with usersandbox.
                'CheckExitCodeAfterSignalHandlerDeathTest.*'
                
'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
                'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
@@ -1504,7 +1510,13 @@ src_test() {
 }
 
 src_install() {
-       local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+       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
 
@@ -1517,24 +1529,28 @@ src_install() {
        ozone_auto_session () {
                use X && use wayland && ! use headless && echo true || echo 
false
        }
-       local sedargs=( -e
-                       "s:/usr/lib/:/usr/$(get_libdir)/:g;
-                       s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
-       )
-       sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > 
chromium-launcher.sh || die
-       doexe chromium-launcher.sh
+
+       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 
PROGDIR="/usr/$(get_libdir)/chromium-browser${browser_suffix}"
+               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
+       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
-
-       dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+       dosym "${CHROMIUM_HOME}/chromium-launcher.sh" 
/usr/bin/chromium${browser_suffix}
 
-       # Allow users to override command-line options, bug #357629.
-       insinto /etc/chromium
-       newins "${FILESDIR}/chromium.default" "default"
+       dosym "${CHROMIUM_HOME}/chromedriver" 
/usr/bin/chromedriver${browser_suffix}
 
        pushd out/Release/locales > /dev/null || die
        chromium_remove_language_paks
@@ -1588,23 +1604,23 @@ src_install() {
                                *) branding="chrome/app/theme/chromium" ;;
                esac
                newicon -s ${size} "${branding}/product_logo_${size}.png" \
-                       chromium-browser.png
+                       chromium-browser${browser_suffix}.png
        done
 
        # Install desktop entry
-       domenu out/Release/chromium-browser-chromium.desktop
+       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.xml
+       doins out/Release/chromium-browser${browser_suffix}.xml
 
        # Install AppStream metadata
        insinto /usr/share/appdata
-       doins out/Release/chromium-browser.appdata.xml
+       doins out/Release/chromium-browser${browser_suffix}.appdata.xml
 
        # Install manpage; bug #684550
-       doman out/Release/chromium-browser.1
-       dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+       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
 }

Reply via email to