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 }
