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 }
