commit:     32e67609e29e1478962e14ef2a5e7c9881bf7ee3
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 28 06:25:16 2026 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sat Feb 28 22:31:47 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=32e67609

www-client/chromium: add `beta` slot: 146.0.7680.31-r1

This replaces the existing `0/beta` subslot and ebuild.

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

 www-client/chromium/Manifest                       |   3 +-
 ....31.ebuild => chromium-146.0.7680.31-r1.ebuild} | 129 ++++++++++++---------
 2 files changed, 74 insertions(+), 58 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c10899387fe4..57fd28b0f027 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -8,11 +8,12 @@ DIST chromium-clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz 
272 BLAKE2B 4423dd8
 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-4965-g686acf63-1.tar.xz 57997052 BLAKE2B 
5e8634c5641db77eb9f9454d21489557f264b88671f8efb25898b997337d014ea75260640415e4edd53e6fe0b033ea8f6f3aee9c08ec697f72f4566ebd36b0db
 SHA512 
0f478d5c5894ee9ecb6dbf7a21e3928b82b49951a7b6dff0d5df29ba0972b83e44d5e5f0549eadd3c86214bbd9932960a020781ac7d9cf98bdeb2c9566543829
+DIST chromium-openpower-6e839bd947.tar.bz2 438048 BLAKE2B 
50acf6c3d5b17c920dba89895d31effb36e1e234099258cfaff8f4b1735b0a401c2c239a1e53265b1dfdb2969df7cb04041b3aa0ecafc8d1e2fd90497db51629
 SHA512 
f87b33235a26768dda73364b85f7713f5b200a65ca8e28b09ad8f5798b7da80d1cb62b3308263d88e58c01439eb67e365c08466b80299c2b3eeebef52cb977f7
 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-146-1.tar.bz2 18524 BLAKE2B 
4b00707bfb9d83a96f8fbfe1cf55b9dfd9347b93ff7f4ace249c6ec07bf63cf48bfee2e3207e7660213d190b253157ee07a3ff5c11fcb91e259d663f10cdd6dc
 SHA512 
1c7e5bd4e8e0c010df4500bf8125b899672692dde0ad08dd8fb962a75440c46fa5d3216385c9ab186b750714775b2682f7eb326d43862582f73e6d0f13d7c0a9
 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

diff --git a/www-client/chromium/chromium-146.0.7680.31.ebuild 
b/www-client/chromium/chromium-146.0.7680.31-r1.ebuild
similarity index 94%
rename from www-client/chromium/chromium-146.0.7680.31.ebuild
rename to www-client/chromium/chromium-146.0.7680.31-r1.ebuild
index c07600924375..4897ca636961 100644
--- a/www-client/chromium/chromium-146.0.7680.31.ebuild
+++ b/www-client/chromium/chromium-146.0.7680.31-r1.ebuild
@@ -52,8 +52,8 @@ 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%%\.*}"
+PPC64_HASH="6e839bd94774ccf59b4c0db697fcf15c7bc1f22e"
+PATCH_V="${PV%%\.*}-1"
 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,17 +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/beta"
-# Dev exists mostly to give devs some breathing room for beta/stable releases;
-# it shouldn't be keyworded but adventurous users can select it.
+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"
@@ -168,6 +172,8 @@ COMMON_DEPEND="
        )
 "
 RDEPEND="${COMMON_DEPEND}
+       !www-client/chromium:0
+       www-client/chromium-common
        !headless? (
                || (
                        x11-libs/gtk+:3[X?,wayland?]
@@ -383,20 +389,15 @@ 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
 
        use pgo && unpack chromium-profiler-0.2.tar
 
        if use test; then
-               # A new testdata tarball is available for each release; but 
testfonts tend to remain stable
-               # for the duration of a release.
-               # This unpacks directly into/over ${WORKDIR}/${P} so we can 
just use `unpack`.
-               # Not generated by chromium-linux-tarballs. Apparently not 
required to run unit tests either, we'll see!
-               # unpack ${P}-linux-testdata.tar.xz
                # 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"
@@ -483,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
@@ -537,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/
@@ -558,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 )
 
@@ -945,7 +936,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
@@ -1190,6 +1180,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
@@ -1349,6 +1342,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 "$@"
@@ -1467,19 +1463,28 @@ 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.*'
+               'PostJobTest.*' # M145 - fixed in 146?
                'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
+               'LazyThreadPoolTaskRunnerTest.*'
+               'SequenceManager*' # Crashes test runner
                'ToolsSanityTest.BadVirtualCall*'
                # requires en-us locale
                SysStrings.SysNativeMBAndWide
@@ -1507,7 +1512,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
 
@@ -1520,24 +1531,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-r8.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
@@ -1591,23 +1606,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.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