diff options
Diffstat (limited to 'www-client')
61 files changed, 4515 insertions, 7631 deletions
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index 665e741d2e2a..c0ea779dab73 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -1,23 +1,15 @@ -DIST chromium-130.0.6723.116-gentoo.tar.xz 4699442864 BLAKE2B 571a012f449b757b6a17309cedb3c5cc7da73dc24b1e352554ab14ded9761ce29c62531e9fcb6c0a2290f89bff0e81f4d2cf39f0984bc5c7fc5e9be8c37bcb59 SHA512 e54beef2b445375cba0b1a290a99f7b41b2b9b965c89c0bb062c99be0825ccf64259440bd2b032bb5b1e46eef15b4a4f66fdaeb9974fcfe6f70d55a49ca47850 -DIST chromium-130.0.6723.116-testdata-gentoo.tar.xz 83048 BLAKE2B d95970073cedb9dd5488886c94c0b629a0a15f248e66a409b57be89b52eececf845c3d79f6bde51f4476e927a058ee257bb6d1b3ca0332910660a6e045ccb00d SHA512 0df42b1e8a3c0be8a07d71153a8bc5fdfc59a18d574d8dfd2fd1a3e17ca197e71dfd332c02547e6b456b5037c924dbbecc4551ac1695f36181e3a9cc884ff83b -DIST chromium-131.0.6778.139-linux-testdata.tar.xz 279152856 BLAKE2B 41f96d726ed0be06735d78f8430031b083e46652a3f94e7ef664502564f850975e3a8755963ee61458d47d779a9676452216322026cd891ae0eb85f664e9bd87 SHA512 99b4b08948ad5dcb9ed931b7b7019bcd015dbdc2bd420be1383d662a179c61e260ff94b7038f2f7a086a91bf2f733d973c2f1b45581f883da877946123b7e096 -DIST chromium-131.0.6778.139-linux.tar.xz 2189495224 BLAKE2B 5e32ffa9de17df58b4017c90dd19b9cf1699c94f2ea1f38890821ef4bc3ed5c558c31cb0d57fb5b00c9bede6a953efc553fd8efa14354fd2314ca6e79bdac27e SHA512 b5aa8045edf483c9c53fe9fc253cd6f62ebef51f2b9dc9d59c225705d68ae7fdd88870fac5162ca7d9d9c4e0e778cdf27e4f9bd93bed8c059e0d1eab5ccac767 -DIST chromium-131.0.6778.204-linux-testdata.tar.xz 279220900 BLAKE2B ab46bc825ba4d70696bf4441b22d36d45fb4c492ff234ccd0e26d66f9cc3790634f72dfcd81db299f0e0f77bc209ab24057a29e9937a8aefdca5109cce064eae SHA512 a7d97e216c1cc1f4145912b94b85a1c80ee57504b6792f0399ca5bff6494fc24c9cc846179de313f876d04e864ff79465df84997649c7d26d55b9d2848cb31f3 -DIST chromium-131.0.6778.204-linux.tar.xz 2189629432 BLAKE2B 35a254700ff906e5f94b07ee4d577e1e4d356ee35972d03dc7c5cfd282e8e2400bd35548ad0bd1619654634abcaffed83d8bc1267727afee0a4294d1fbb3db77 SHA512 86f9fadfc8f2b46c16783767fd10e84129a65d3d7aa22e40d8adb8125e6b1e30f4fbf32d46d482f12999ab6e3fc5a47938921a7ccc77a43a1112003d8805c823 -DIST chromium-131.0.6778.264-linux-testdata.tar.xz 279207424 BLAKE2B c3da4c4e00717ea53ae2fa774bf313b805966ba96ad6c5dbe72cd0b6e50f414023e475026b87b58e8b06dfc6bf9890852ca8a76f3c12004aa5e7f9b84e5cc665 SHA512 fb28a206102a5e85c28e8bd2a2c1077b8dc67edba7633783edf5e3a57b01e402fcd0638f8f0b268c839c3ed74d87d82a3ef52b41e3c1755973c27f9b824c817a -DIST chromium-131.0.6778.264-linux.tar.xz 2189651292 BLAKE2B aa9277ce7211b253f5f38641eeb7531be9edb7fc97f668a23a931f98d6671d3ebeda1b2e900a117acac9edb432f7a0ceb75e7b545752b642e27288ac44043827 SHA512 63bc7c79589ceffed2d089fec9fffcaa1f0b50aa1929da4b173de838ad13bf9c8c989001978d8f5d8a667a946124f897595a2ee206c5f04d05e5b05460b115a1 -DIST chromium-132.0.6834.46-linux-testdata.tar.xz 299805496 BLAKE2B e3a5ca8fe2d557ac4f2b731b30c9fbb781e362d5f62d09e93bb4c899f07a841be5467cacfc6c690fac599d9bbc4057e99a03702925fb62fffc206a57781cbb18 SHA512 0ff0cb4d5ce75b63583d003c6a6d9fca895cdeec7e67c65a75ff4468628fc5ffbacdbf9df250bb8a66419205c5ad1933f0f228e821d019d35973ce6ad3ca2b92 -DIST chromium-132.0.6834.46-linux.tar.xz 2193310724 BLAKE2B edacfec054f9ebc51fed26aa20222f6a9c61f0c503484cbef4081d819d110465f661ae1fc18bb4cd0223ed7917a4d191af6cc8f32c8d0ff65e750408b62f5dd8 SHA512 2c161b71ce988d864ea5353221fc1b8eefbf8b26dc4e31c8312574b749e44d07a80f52fea18bf5c9e9f08c90fe724fb20c97963472883fb8a3b49482874878b8 -DIST chromium-132.0.6834.57-linux-testdata.tar.xz 299792072 BLAKE2B bd48dc8a5cbe8286e01a9155c76ed0e4f2ec127bee21500410c5a7cfbdf403abb22ffd76ca03ba3b5ba2d4cc7721d776669cce136ce0576be68aaa8b7b665ef8 SHA512 2276fc6fcca05c17ccbe4af9972615924372a79f70145c274d63b126daf4e14900a5d6c178673512710374e7ed188cb3c46782825e969381719373144539a129 -DIST chromium-132.0.6834.57-linux.tar.xz 2193464100 BLAKE2B 9720b6ec8fa8566e19155527d6f55c9dbd48c7e1384232cb4f928a47b1d8d9d57eb68220929ac338afc5546bbe67d6f35aac45bc5c0ec5cad152bb7017c1d616 SHA512 be9ec2958f61003373a51d9796b8310877734dbe88b1f79213c5e72eea5b8d34d4fc8d0b9303e90beb275dcb19e50efe59c5b364a9719efea3917fe9e4992fc6 -DIST chromium-133.0.6888.2-linux-testdata.tar.xz 299227756 BLAKE2B ecf1a79034c9c06fcd667d812ae7ee4b05b60e9dc1a0db587c7d0c3af5ad8b787b1b885abcc27ec4a3cf89ec3038f686f1d37410109c4845e32c4dec9ead7af4 SHA512 fb37b91b243bc584da41f1be58932817dd757a2be0acfa01aafa23c15a53250934938ea8e51efb3f40d3fbcc12af20b7d13cc1364720a2d4cb977ea6ce432493 -DIST chromium-133.0.6888.2-linux.tar.xz 2286980464 BLAKE2B 747741f415ad00be3120cebd4a691a39f3f0374e57f57272700c366ba50d394359fb22fdc6a89f7ab41a49ff59f2c6c7e664aee1a003be75a4651dd1e642b39e SHA512 11e18014e9f4d3e7ff6b7c8789546a0d8f0d4a24b6fa413c1e10e6d911f4d81fa1c8b1803a9d5e7bf1f8243710c2ad0aa625b2ba6ca52ad9964e37d2b7851af7 -DIST chromium-133.0.6905.0-linux-testdata.tar.xz 299295120 BLAKE2B 7242308e0bef753e090b0f70e4d4017ebac12bfe9dd2254263ae79db2a8d9294c96d3f74297b6f5f3bfacf766dcb0e73314ef76b2d370ecf7b142f12ac9c7935 SHA512 8793bb0d27073851dc5a00183d88001b65de54390c8a3ed4c7fa72e9c0aa4b9d285bc8eabeddf1b8b3d10876c2d30134945f10509fdcf7e27f3c1e23e38faffc -DIST chromium-133.0.6905.0-linux.tar.xz 2291017800 BLAKE2B bf78df51b3dbf3e0eb97afce911b6e95403d516e978a731f65286aa07841c2f9bf075893e0378cbaf5e5b50f97990f6e09df4262a2e027c2c1d42df638504478 SHA512 b212ebf4534ed38e4d643787f012762786ede5d39c027cdbded703a9dd53712c440ab621eb51c18f69c2b1a5d7e845fa469c84672a6014f8df32b51b5f04b306 +DIST chromium-132.0.6834.83-linux-testdata.tar.xz 299789728 BLAKE2B 043d122ef3ee62012cf55ca2754df932d0e48f08df06b78551cb79ec0c4781a52d5333b02645a981748c2c75928ebc91a21d7caf5e248d94b55fbf6ba4f8c974 SHA512 8122b750f22bb61e257b201bac731975f001a801b626d1ca0b037bc8f6cba34fcd104e47efc48c5122838e8196cdec720fb4a30af8ed0f00eb8943bda67da2d0 +DIST chromium-132.0.6834.83-linux.tar.xz 2193406712 BLAKE2B 65cd156a97bcb4888ed30fc29f30e58e5c701e371454ad16427898ec8c51d54da10c36d1bc05157ad64ad4ca3e4b8c54cdd81c82f7f4c57abe6af71c8c050b13 SHA512 f5f1e1f620988ae5cbf042eb0acad5cc00bcf1854d3fb78574ea123dbeb8f5b065dff3fbd5f169c6acf3ed4bc7394d066b1bf6de53b8ccf1ac0432cfde8585fe +DIST chromium-133.0.6943.16-linux-testdata.tar.xz 299224176 BLAKE2B 80850cdc182cd8825d3b4ed7392ca00d2b35bd208815ad900e59f493a1d64644c7575b496ee67d761591fa66e6b3b3856b3508abd109a49398c4cd7041073fde SHA512 3c2c3e1236787c39796d6b2b61cc7660d8d6f6b46d5cb554631e3e5a82b209ebcbec0a75174305434bc732af616e48f59a8111153d7d69d4def4919bda604af1 +DIST chromium-133.0.6943.16-linux.tar.xz 2300561364 BLAKE2B 017121eae6209b12faa07cfae86d7c81f4a544f8cf7ec7b20d36150902fcc238c76124317a42b59952134a6804411c8a664ac50403edcd4be71d19450c020bee SHA512 942ab013749b7038c143cc4ced89dba28d3420bf50831ab28ed5bc769896ed23aa3a3c51312767a2bc6708cc0800493a6f62fe3b403d5488bdd5b8867fb26e01 +DIST chromium-134-clang.tar.xz 54177680 BLAKE2B ebe3e42ba0950f067b0febec65e575ec510f64a056e0a1a9dfffebde02809429c98461638784149dc31423ade29f1dbe4b060af06d8371c0ca8d10d83c7d8617 SHA512 4cf26e6f895ca1b268afcde296f2e7c761f99584170e1f3deecb1c5501be2121f173934a4598124bed69d0bd266f799bf03adfdb2190cb9f23c1212072a8bace +DIST chromium-134-rust.tar.xz 124591376 BLAKE2B c062e7283994ef15055a37f66a1c01dfcbcf03d16b7de48e7d017cec479f306999112dcd0f016157cfd0334349b55ae29512be3063dc6c3de90311520e90a5c1 SHA512 09be07ff0adfcc2928b28f5763a7e18bb7ef1f0cbf4a2475e3e6ae19a0a310a4a8f323375b947a48247853412119781bc9fa1422e24b96423c071f68337d6766 +DIST chromium-134.0.6958.2-linux-testdata.tar.xz 299837732 BLAKE2B 68060ea0c84e951d2cd8427842e5a4bd3cb15a0b4bdd05ec068f8b38c3a14453c02659cdeb77106ac892a88750ea88db124e13bdccdb97eb4bde6d5dd2cdd776 SHA512 ccc7f985b69c72fabbfb9de86aba0872663076d20154338f8ab93e00c883e07040edaf1c1fa8e5c6e76c65fabf70d408fa7fd43149ac2d8c063492c82b7efd99 +DIST chromium-134.0.6958.2-linux.tar.xz 2282858364 BLAKE2B e615acbae612d186445a5e14254dd9f3f9a4cea3ccaf89bdaa0333e3f9ecc21fe7ff000c1df433e64568f298cc0c08e471f019312e894356701a9daa66b1c384 SHA512 061a5625a243df3b3d2144503f8562112cc358f71b4eebf08947343f1bc87cbd5dd6c56f30f1c432bd19d2f339e40fc5d31ae7058123a0952fcb6f47b1e83234 DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b -DIST chromium-patches-130-2.tar.bz2 10151 BLAKE2B b46515a3e01153d8c4e5c3ee1f6e9f905265bf88b698d46c8ceed0f90d36a057b8bb30a860e8d934bf0b85f9c0a671bef2c9a00349228fa076b7aec37ff62ca0 SHA512 e1ecca666c3998ee285426751be3220a5b67a057f2c92b1f45c7b786efb8d0b0e1d49ba70471fa74155f79f22811d240af636f61007191756c9981b53d3b23de -DIST chromium-patches-131-1.tar.bz2 4932 BLAKE2B 72006a6d751ae1207352547cdeef87f8cc9f9639283238da201d879c6fcd0f8bc499669cb030d8b4c2216fcd2730de46b0a071007b3d69a2bbdd22ba38bcd279 SHA512 11d7f861c007e9e28e5192fb354940180aea0e01e6e8ae77547e2dffd7b541b11f1acfe0fd0c8b6b4cbfc6c39ddfa79c8c08db42c1292ad329d49027d1406fc3 +DIST chromium-openpower-c11b515d9a.tar.bz2 396039 BLAKE2B c05653e6bb62188c18864e783197853f4c41f88d1c928044a0ea0cb4677bc17806fac266ab100cbbcec3cb0d964bf2172917df95679927c1f1a88fa34aef4f53 SHA512 e9d9bbb2dd8d998060c78dfd5bbaedc548a8c44b442f6259304797326c585046144a6bb8aa4e24c44b3b56068189bee8a01267db2a392e90fd5603d06c0ef9ff DIST chromium-patches-132.tar.bz2 5040 BLAKE2B d5bd84dd90b395c6a15135637f51f931c72a2f301b1c24e9b938c744f2767fa36857b8edfdf5c44cf085a1efcb40475401fec226ce43446442f32fb174b55355 SHA512 29833b306a34ab6562ee58eb03669818da7235cd36666b27d829bcbd3c4d0035a530fb6be1c33cf88c1c11d43e68e3781f9b9602c0c004e7a37ffa69f9ee17c7 DIST chromium-patches-133-1.tar.bz2 10661 BLAKE2B c8a141bd10e628533e373b08969f95443eb6ae7f4497359db02f370147ac6132fbc31db28915ebdd9f150c13be78f06af938bd7dffdf2c23d90e1b9e07bd92ab SHA512 48a356872acc41c96c92366bd09de5a1c4af87fe4c480dccc7bd7a2aae5c3be8e6411151ed36303a127022001248bd25ef8305e83bd0d533660e3f11943af686 +DIST chromium-patches-134.tar.bz2 10184 BLAKE2B 5ff1022205ef3e0e88b43e6c20d33a86386d80b837135eaa5451b004f09290de3b765694e31c9e6e840ec7e0537bbe6164a61224a55e17cd04356f1d5af8ee37 SHA512 29fc1f70a95501e0f82e2bb66f7eefab2bd75995d660271ab0dd043b18663107547faddf71b555b82da39e31393c7220893e09d4b28a71b18855d82399e3512b DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c DIST chromium-testfonts-f26f29c9d3.tar.gz 32750602 BLAKE2B 498f8b2e0811c98dc3d4aaa75559e69c782afb4bd12328cfdb7244ddba5cae7ee47becd27b2549d7b36bed417601f70f4c192934b0f08496cef1547d0502d93c SHA512 96b090446862997c8134e2971f0e38793ecc1208d547e554c9b651ccfb4127c4de86754903fea57a7292a2823c45117bae0ec13ed87aed20c248fb779579fbde diff --git a/www-client/chromium/chromium-130.0.6723.116-r1.ebuild b/www-client/chromium/chromium-130.0.6723.116-r1.ebuild deleted file mode 100644 index ae7bc679a437..000000000000 --- a/www-client/chromium/chromium-130.0.6723.116-r1.ebuild +++ /dev/null @@ -1,1408 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# PACKAGING NOTES - -# This uses a gentoo-created tarball due to Google CI Failures. -# Use 132 as a base for new official tarballs. - -GN_MIN_VER=0.2165 -# chromium-tools/get-chromium-toolchain-strings.py - -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=( 18 19 ) -RUST_NEEDS_LLVM="yes please" -PYTHON_COMPAT=( python3_{11..13} ) -PYTHON_REQ_USE="xml(+)" -RUST_MIN_VER=1.78.0 - -inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils -inherit python-any-r1 qmake-utils 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" -TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 -PATCH_V="${PV%%\.*}-2" -SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz -> ${P}-gentoo.tar.xz - https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 - test? ( - https://chromium-tarballs.distfiles.gentoo.org/${P}-testdata.tar.xz -> ${P}-testdata-gentoo.tar.xz - https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz - ) - ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/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 )" - -LICENSE="BSD" -SLOT="0/stable" -# Dev exists mostly to give devs some breathing room for beta/stable releases; -# it shouldn't be keyworded but adventurous users can select it. -if [[ ${SLOT} != "0/dev" ]]; then - KEYWORDS="~amd64 ~arm64 ~ppc64" -fi - -IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3" -RESTRICT=" - !bindist? ( bindist ) - !test? ( test ) -" - -REQUIRED_USE=" - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) - qt6? ( qt5 ) - 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:= -" - -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-png? ( media-libs/libpng:=[-apng(-)] ) - system-zstd? ( >=app-arch/zstd-1.5.5:= ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - sys-libs/zlib:= - x11-libs/libdrm:= - !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? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - qt6? ( dev-qt/qtbase:6[gui,widgets] ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[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? ( - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) - ) - $(llvm_gen_dep " - llvm-core/clang:\${LLVM_SLOT} - llvm-core/llvm:\${LLVM_SLOT} - llvm-core/lld:\${LLVM_SLOT} - ") - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - ) - >=dev-util/bindgen-0.68.0 - >=dev-build/gn-${GN_MIN_VER} - dev-build/ninja - dev-lang/perl - >=dev-util/gperf-3.0.3 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=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. - local BASE_DISK=24 - local EXTRA_DISK=1 - local CHECKREQS_MEMORY="4G" - tc-is-cross-compiler && EXTRA_DISK=2 - if tc-is-lto || use pgo; then - CHECKREQS_MEMORY="9G" - tc-is-cross-compiler && EXTRA_DISK=4 - use pgo && EXTRA_DISK=8 - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags; then - EXTRA_DISK=13 - fi - CHECKREQS_MEMORY="16G" - fi - 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" "qt5" "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 - - # The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment - # This is effectively the 'force-clang' path if GCC support is re-added. - use_lto="false" - if tc-is-lto; then - use_lto="true" - # We can rely on GN to do this for us; anecdotally without this builds - # take significantly longer with LTO enabled and it doesn't hurt anything. - filter-lto - fi - - if [ "$use_lto" = "false" ] && use official; 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 - - llvm-r1_pkg_setup - rust_pkg_setup - - # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT - AR=llvm-ar - CPP="${CHOST}-clang++-${LLVM_SLOT} -E" - NM=llvm-nm - CC="${CHOST}-clang-${LLVM_SLOT}" - CXX="${CHOST}-clang++-${LLVM_SLOT}" - - 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 - - # Users should never hit this, it's purely a 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 - fi - - chromium_suid_sandbox_check_kernel_config -} - -src_unpack() { - unpack ${P}-gentoo.tar.xz - unpack chromium-patches-${PATCH_V}.tar.bz2 - - 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`. - unpack ${P}-testdata-gentoo.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" - tar xf "${DISTDIR}/${P%%\.*}-testfonts.tar.gz" -C "${testfonts_dir}" || die "Failed to unpack testfonts" - fi - - if use ppc64; then - unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" - - local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-126-oauth2-client-switches.patch" - "${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch" - ) - - shopt -s globstar nullglob - # 130: moved the PPC64 patches into the chromium-patches repo - local patch - for patch in "${WORKDIR}/chromium-patches-${PATCH_V}"/**/*.patch; do - elog "Applying patch: ${patch}" - if [[ ${patch} == *"ppc64le"* ]]; then - use ppc64 && PATCHES+=( "${patch}" ) - else - PATCHES+=( "${patch}" ) - fi - done - - # We can't use the bundled compiler builtins with the system toolchain - # `grep` is a development convenience to ensure we fail early when google changes something. - local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" - grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn - - if use ppc64; then - # Above this level there are ungoogled-chromium patches that we can't apply - local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches/ppc64le" - # Apply the OpenPOWER patches - local power9_patch="patches/ppc64le/core/baseline-isa-3-0.patch" - for patch in ${patchset_dir}/**/*.{patch,diff}; do - if [[ ${patch} == *"${power9_patch}" ]]; then - use cpu_flags_ppc_vsx3 && PATCHES+=( "${patch}" ) - else - PATCHES+=( "${patch}" ) - fi - done - - PATCHES+=( "${WORKDIR}/openpower-patches-${PPC64_HASH}/patches/upstream/blink-fix-size-assertions.patch" ) - fi - - shopt -u globstar nullglob - - default - - rm third_party/node/linux/node-linux-x64/bin/node || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - # 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 - chrome/third_party/mozilla_security_manager - net/third_party/mozilla_security_manager - net/third_party/nss - 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/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/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/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/lighthouse - third_party/devtools-frontend/src/front_end/third_party/lit - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal - 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/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/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fast_float - third_party/fdlibm - 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/iccjpeg - third_party/inspector_protocol - third_party/ipcz - third_party/jinja2 - third_party/jsoncpp - third_party/jstemplate - 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/libavif - third_party/libc++ - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - 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/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - 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/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/pthreadpool - third_party/puffin - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rapidhash - third_party/re2 - third_party/rnnoise - third_party/rust - third_party/ruy - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/sentencepiece - third_party/sentencepiece/src/third_party/darts_clone - third_party/shell-encryption - third_party/simplejson - third_party/six - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/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/eigen3 - 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/util - third_party/tflite/src/third_party/xla/xla/tsl/framework - third_party/ukey2 - third_party/unrar - 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/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - 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/src/third_party/siphash - v8/src/third_party/utf8-decoder - v8/src/third_party/valgrind - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - - if use test; then - # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' - keeplibs+=( - third_party/google_benchmark/src/include/benchmark - third_party/google_benchmark/src/src - third_party/perfetto/protos/third_party/pprof - third_party/test_fonts - third_party/test_fonts/fontconfig - ) - 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-png; then - keeplibs+=( third_party/libpng ) - 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 - - # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # 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 - - strip-unsupported-flags - - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_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= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # bindgen settings - # From 127, to make bindgen work, 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. - myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" - - myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" - # We don't need to set 'clang_base_bath' for anything in our build - # and it defaults to the google toolchain location. Instead provide a location - # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) - myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" - - # We need to provide this to GN in both the path to rust _and_ the version - myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" - myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=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. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=false" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # 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 - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-zstd; then - gn_system_libraries+=( zstd ) - fi - - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of - # using dlopen. This helps with automated detection of ABI mismatches and - # prevents silent errors. - if use pulseaudio; then - myconf_gn+=" link_pulseaudio=true" - fi - - # Non-developer builds of Chromium (for example, non-Chrome browsers, or - # Chromium builds provided by Linux distros) should disable the testing config - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # The sysroot is the oldest debian image that chromium supports, we don't need it - myconf_gn+=" use_sysroot=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). - myconf_gn+=" use_custom_libcxx=true" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - if use bindist ; then - # proprietary_codecs just forces Chromium to say that it can use h264/aac, - # the work is still done by ffmpeg. If this is set to no Chromium - # won't be able to load the codec even if the library can handle it - myconf_gn+=" proprietary_codecs=true" - myconf_gn+=" ffmpeg_branding=\"Chrome\"" - # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute - myconf_gn+=" is_component_ffmpeg=true" - else - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - fi - - # 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 chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - 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*" - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - myconf_gn+=" treat_warnings_as_errors=false" - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # 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; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - # 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 - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - 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 - - # Don't need nocompile checks and GN crashes with our config - myconf_gn+=" enable_nocompile_tests=false" - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5 || use qt6; then - local cbuild_libdir=$(get_libdir) - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - cbuild_libdir=${cbuild_libdir/% } - fi - if use qt5; then - if tc-is-cross-compiler; then - myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" - else - myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" - fi - fi - if use qt6; then - myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" - fi - - myconf_gn+=" use_qt=true" - myconf_gn+=" use_qt6=$(usex qt6 true false)" - else - myconf_gn+=" use_qt=false" - fi - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - myconf_gn+=" use_thin_lto=${use_lto}" - myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - 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 - myconf_gn+=" is_cfi=${use_lto}" - # 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 - # Disable PGO - myconf_gn+=" chrome_pgo_phase=0" - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium ..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -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; 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 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 - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_test() { - # Initial list of tests to skip pulled from Alpine. Thanks Lauren! - # https://issues.chromium.org/issues/40939315 - local skip_tests=( - 'MessagePumpLibeventTest.NestedNotification*' - ClampTest.Death - OptionalTest.DereferencingNoValueCrashes - PlatformThreadTest.SetCurrentThreadTypeTest - RawPtrTest.TrivialRelocability - SafeNumerics.IntMaxOperations - StackTraceTest.TraceStackFramePointersFromBuffer - StringPieceTest.InvalidLengthDeath - StringPieceTest.OutOfBoundsDeath - ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker - ValuesUtilTest.FilePath - # Gentoo-specific - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3 - CharacterEncodingTest.GetCanonicalEncodingNameByAliasName - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress - FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe - ICUStringConversionsTest.ConvertToUtf8AndNormalize - NumberFormattingTest.FormatPercent - PathServiceTest.CheckedGetFailure - PlatformThreadTest.CanChangeThreadType - StackCanary.ChangingStackCanaryCrashesOnReturn - StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree - SysStrings.SysNativeMBAndWide - SysStrings.SysNativeMBToWide - SysStrings.SysWideToNativeMB - TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest - ToolsSanityTest.BadVirtualCallNull - ToolsSanityTest.BadVirtualCallWrongType - ) - local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" - # test-launcher-bot-mode enables parallelism and plain output - ./out/Release/base_unittests --test-launcher-bot-mode \ - --test-launcher-jobs="$(makeopts_jobs)" \ - --gtest_filter="${test_filter}" || die "Tests failed!" -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - 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 - } - 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 - - # 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 - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - 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.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.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; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - 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 - if use qt5 && use qt6; then - elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" - elog "environment. To override you need to pass --qt-version=5 or" - elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" - elog "/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 -} diff --git a/www-client/chromium/chromium-131.0.6778.139.ebuild b/www-client/chromium/chromium-131.0.6778.139.ebuild deleted file mode 100644 index 2fbee807309f..000000000000 --- a/www-client/chromium/chromium-131.0.6778.139.ebuild +++ /dev/null @@ -1,1422 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# PACKAGING NOTES - -# This uses a gentoo-created tarball due to Google CI Failures. -# Use 133(?) as a base for new official tarballs. - -GN_MIN_VER=0.2165 -# chromium-tools/get-chromium-toolchain-strings.py -TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 - -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=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) -PYTHON_REQ_USE="xml(+)" -RUST_MIN_VER=1.78.0 -RUST_NEEDS_LLVM="yes please" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils -inherit python-any-r1 qmake-utils 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%%\.*}-1" -SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz - https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 - test? ( - https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz - https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz - ) - ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/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 )" - -LICENSE="BSD" -SLOT="0/stable" -# Dev exists mostly to give devs some breathing room for beta/stable releases; -# it shouldn't be keyworded but adventurous users can select it. -if [[ ${SLOT} != "0/dev" ]]; then - KEYWORDS="amd64 arm64" -fi - -IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" -RESTRICT=" - !bindist? ( bindist ) - !test? ( test ) -" - -REQUIRED_USE=" - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) - qt6? ( qt5 ) - 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:= -" - -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-png? ( media-libs/libpng:=[-apng(-)] ) - system-zstd? ( >=app-arch/zstd-1.5.5:= ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - sys-libs/zlib:= - x11-libs/libdrm:= - !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? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - qt6? ( dev-qt/qtbase:6[gui,widgets] ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[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? ( - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) - ) - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - llvm-core/lld:${LLVM_SLOT} - ') - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - ) - >=dev-util/bindgen-0.68.0 - >=dev-build/gn-${GN_MIN_VER} - dev-build/ninja - dev-lang/perl - >=dev-util/gperf-3.0.3 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=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. - local BASE_DISK=24 - local EXTRA_DISK=1 - local CHECKREQS_MEMORY="4G" - tc-is-cross-compiler && EXTRA_DISK=2 - if tc-is-lto || use pgo; then - CHECKREQS_MEMORY="9G" - tc-is-cross-compiler && EXTRA_DISK=4 - use pgo && EXTRA_DISK=8 - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags; then - EXTRA_DISK=13 - fi - CHECKREQS_MEMORY="16G" - fi - 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" "qt5" "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 - - # 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. - # TODO: check if the user has already selected a specific impl via make.conf and respect that. - use_lto="false" - if tc-is-lto; then - use_lto="true" - # We can rely on GN to do this for us; anecdotally without this builds - # take significantly longer with LTO enabled and it doesn't hurt anything. - filter-lto - fi - - if [ "$use_lto" = "false" ] && use official; 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 - - llvm-r1_pkg_setup - rust_pkg_setup - - # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT - AR=llvm-ar - CPP="${CHOST}-clang++-${LLVM_SLOT} -E" - NM=llvm-nm - CC="${CHOST}-clang-${LLVM_SLOT}" - CXX="${CHOST}-clang++-${LLVM_SLOT}" - - 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 - - # Users should never hit this, it's purely a 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 - fi - - chromium_suid_sandbox_check_kernel_config -} - -src_unpack() { - unpack ${P}-linux.tar.xz - unpack chromium-patches-${PATCH_V}.tar.bz2 - - 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`. - 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" - local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" - tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" - fi - - if use ppc64; then - unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" - - local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch" - "${FILESDIR}/chromium-131-unbundle-icu-target.patch" - "${FILESDIR}/chromium-131-oauth2-client-switches.patch" - "${FILESDIR}/chromium-131-const-atomicstring-conversion.patch" - ) - - PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) - # We can't use the bundled compiler builtins with the system toolchain - # `grep` is a development convenience to ensure we fail early when google changes something. - local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" - grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) - fi - - default - - rm third_party/node/linux/node-linux-x64/bin/node || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - # 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 - chrome/third_party/mozilla_security_manager - net/third_party/mozilla_security_manager - net/third_party/nss - 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/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/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/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/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/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/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fast_float - third_party/fdlibm - 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/iccjpeg - 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/jstemplate - 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/libavif - third_party/libc++ - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - 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/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - 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/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/pthreadpool - third_party/puffin - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rapidhash - third_party/re2 - third_party/rnnoise - third_party/rust - third_party/ruy - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/sentencepiece - third_party/sentencepiece/src/third_party/darts_clone - third_party/shell-encryption - third_party/simplejson - third_party/six - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/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/eigen3 - 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/protobuf - third_party/tflite/src/third_party/xla/xla/tsl/util - third_party/ukey2 - third_party/unrar - 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/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - 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/src/third_party/siphash - v8/src/third_party/utf8-decoder - v8/src/third_party/valgrind - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - - if use test; then - # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' - keeplibs+=( - third_party/google_benchmark/src/include/benchmark - third_party/google_benchmark/src/src - third_party/perfetto/protos/third_party/pprof - third_party/test_fonts - third_party/test_fonts/fontconfig - ) - 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-png; then - keeplibs+=( third_party/libpng ) - 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 - - # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # 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 - - strip-unsupported-flags - - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_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= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # bindgen settings - # From 127, to make bindgen work, 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. - myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" - - myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" - # We don't need to set 'clang_base_bath' for anything in our build - # and it defaults to the google toolchain location. Instead provide a location - # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) - myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" - - myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" - myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=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. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=false" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # 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 - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-zstd; then - gn_system_libraries+=( zstd ) - fi - - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # 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 - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of - # using dlopen. This helps with automated detection of ABI mismatches and - # prevents silent errors. - if use pulseaudio; then - myconf_gn+=" link_pulseaudio=true" - fi - - # Non-developer builds of Chromium (for example, non-Chrome browsers, or - # Chromium builds provided by Linux distros) should disable the testing config - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # The sysroot is the oldest debian image that chromium supports, we don't need it - myconf_gn+=" use_sysroot=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). - myconf_gn+=" use_custom_libcxx=true" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - if use bindist ; then - # proprietary_codecs just forces Chromium to say that it can use h264/aac, - # the work is still done by ffmpeg. If this is set to no Chromium - # won't be able to load the codec even if the library can handle it - myconf_gn+=" proprietary_codecs=true" - myconf_gn+=" ffmpeg_branding=\"Chrome\"" - # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute - myconf_gn+=" is_component_ffmpeg=true" - else - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - fi - - # 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 chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - 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*" - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - myconf_gn+=" treat_warnings_as_errors=false" - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # 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; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - # 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 - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - 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 - - # Don't need nocompile checks and GN crashes with our config - myconf_gn+=" enable_nocompile_tests=false" - - # 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 - myconf_gn+=" enable_freetype=true" - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5 || use qt6; then - local cbuild_libdir=$(get_libdir) - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - cbuild_libdir=${cbuild_libdir/% } - fi - if use qt5; then - if tc-is-cross-compiler; then - myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" - else - myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" - fi - fi - if use qt6; then - myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" - fi - - myconf_gn+=" use_qt=true" - myconf_gn+=" use_qt6=$(usex qt6 true false)" - else - myconf_gn+=" use_qt=false" - fi - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - myconf_gn+=" use_thin_lto=${use_lto}" - myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - 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 - myconf_gn+=" is_cfi=${use_lto}" - # 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 - # Disable PGO - myconf_gn+=" chrome_pgo_phase=0" - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium ..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -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; 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 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 - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_test() { - # Initial list of tests to skip pulled from Alpine. Thanks Lauren! - # https://issues.chromium.org/issues/40939315 - local skip_tests=( - 'MessagePumpLibeventTest.NestedNotification*' - ClampTest.Death - OptionalTest.DereferencingNoValueCrashes - PlatformThreadTest.SetCurrentThreadTypeTest - RawPtrTest.TrivialRelocability - SafeNumerics.IntMaxOperations - StackTraceTest.TraceStackFramePointersFromBuffer - StringPieceTest.InvalidLengthDeath - StringPieceTest.OutOfBoundsDeath - ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker - ValuesUtilTest.FilePath - # Gentoo-specific - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3 - CharacterEncodingTest.GetCanonicalEncodingNameByAliasName - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress - FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe - FileTest.GetInfoForCreationTime - ICUStringConversionsTest.ConvertToUtf8AndNormalize - NumberFormattingTest.FormatPercent - PathServiceTest.CheckedGetFailure - PlatformThreadTest.CanChangeThreadType - StackCanary.ChangingStackCanaryCrashesOnReturn - StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree - SysStrings.SysNativeMBAndWide - SysStrings.SysNativeMBToWide - SysStrings.SysWideToNativeMB - TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest - ToolsSanityTest.BadVirtualCallNull - ToolsSanityTest.BadVirtualCallWrongType - ) - local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" - # test-launcher-bot-mode enables parallelism and plain output - ./out/Release/base_unittests --test-launcher-bot-mode \ - --test-launcher-jobs="$(makeopts_jobs)" \ - --gtest_filter="${test_filter}" || die "Tests failed!" -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - 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 - } - 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 - - # 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 - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - 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.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.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; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - 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 - if use qt5 && use qt6; then - elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" - elog "environment. To override you need to pass --qt-version=5 or" - elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" - elog "/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 -} diff --git a/www-client/chromium/chromium-131.0.6778.204.ebuild b/www-client/chromium/chromium-131.0.6778.204.ebuild deleted file mode 100644 index 9704b68b736c..000000000000 --- a/www-client/chromium/chromium-131.0.6778.204.ebuild +++ /dev/null @@ -1,1422 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# PACKAGING NOTES - -# This uses a gentoo-created tarball due to Google CI Failures. -# Use 133(?) as a base for new official tarballs. - -GN_MIN_VER=0.2165 -# chromium-tools/get-chromium-toolchain-strings.py -TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 - -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=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) -PYTHON_REQ_USE="xml(+)" -RUST_MIN_VER=1.78.0 -RUST_NEEDS_LLVM="yes please" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils -inherit python-any-r1 qmake-utils 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%%\.*}-1" -SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz - https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 - test? ( - https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz - https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz - ) - ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/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 )" - -LICENSE="BSD" -SLOT="0/stable" -# Dev exists mostly to give devs some breathing room for beta/stable releases; -# it shouldn't be keyworded but adventurous users can select it. -if [[ ${SLOT} != "0/dev" ]]; then - KEYWORDS="~amd64 ~arm64" -fi - -IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" -RESTRICT=" - !bindist? ( bindist ) - !test? ( test ) -" - -REQUIRED_USE=" - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) - qt6? ( qt5 ) - 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:= -" - -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-png? ( media-libs/libpng:=[-apng(-)] ) - system-zstd? ( >=app-arch/zstd-1.5.5:= ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - sys-libs/zlib:= - x11-libs/libdrm:= - !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? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - qt6? ( dev-qt/qtbase:6[gui,widgets] ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[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? ( - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) - ) - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - llvm-core/lld:${LLVM_SLOT} - ') - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - ) - >=dev-util/bindgen-0.68.0 - >=dev-build/gn-${GN_MIN_VER} - dev-build/ninja - dev-lang/perl - >=dev-util/gperf-3.0.3 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=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. - local BASE_DISK=24 - local EXTRA_DISK=1 - local CHECKREQS_MEMORY="4G" - tc-is-cross-compiler && EXTRA_DISK=2 - if tc-is-lto || use pgo; then - CHECKREQS_MEMORY="9G" - tc-is-cross-compiler && EXTRA_DISK=4 - use pgo && EXTRA_DISK=8 - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags; then - EXTRA_DISK=13 - fi - CHECKREQS_MEMORY="16G" - fi - 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" "qt5" "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 - - # 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. - # TODO: check if the user has already selected a specific impl via make.conf and respect that. - use_lto="false" - if tc-is-lto; then - use_lto="true" - # We can rely on GN to do this for us; anecdotally without this builds - # take significantly longer with LTO enabled and it doesn't hurt anything. - filter-lto - fi - - if [ "$use_lto" = "false" ] && use official; 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 - - llvm-r1_pkg_setup - rust_pkg_setup - - # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT - AR=llvm-ar - CPP="${CHOST}-clang++-${LLVM_SLOT} -E" - NM=llvm-nm - CC="${CHOST}-clang-${LLVM_SLOT}" - CXX="${CHOST}-clang++-${LLVM_SLOT}" - - 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 - - # Users should never hit this, it's purely a 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 - fi - - chromium_suid_sandbox_check_kernel_config -} - -src_unpack() { - unpack ${P}-linux.tar.xz - unpack chromium-patches-${PATCH_V}.tar.bz2 - - 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`. - 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" - local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" - tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" - fi - - if use ppc64; then - unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" - - local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch" - "${FILESDIR}/chromium-131-unbundle-icu-target.patch" - "${FILESDIR}/chromium-131-oauth2-client-switches.patch" - "${FILESDIR}/chromium-131-const-atomicstring-conversion.patch" - ) - - PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) - # We can't use the bundled compiler builtins with the system toolchain - # `grep` is a development convenience to ensure we fail early when google changes something. - local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" - grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) - fi - - default - - rm third_party/node/linux/node-linux-x64/bin/node || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - # 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 - chrome/third_party/mozilla_security_manager - net/third_party/mozilla_security_manager - net/third_party/nss - 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/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/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/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/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/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/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fast_float - third_party/fdlibm - 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/iccjpeg - 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/jstemplate - 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/libavif - third_party/libc++ - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - 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/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - 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/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/pthreadpool - third_party/puffin - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rapidhash - third_party/re2 - third_party/rnnoise - third_party/rust - third_party/ruy - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/sentencepiece - third_party/sentencepiece/src/third_party/darts_clone - third_party/shell-encryption - third_party/simplejson - third_party/six - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/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/eigen3 - 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/protobuf - third_party/tflite/src/third_party/xla/xla/tsl/util - third_party/ukey2 - third_party/unrar - 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/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - 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/src/third_party/siphash - v8/src/third_party/utf8-decoder - v8/src/third_party/valgrind - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - - if use test; then - # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' - keeplibs+=( - third_party/google_benchmark/src/include/benchmark - third_party/google_benchmark/src/src - third_party/perfetto/protos/third_party/pprof - third_party/test_fonts - third_party/test_fonts/fontconfig - ) - 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-png; then - keeplibs+=( third_party/libpng ) - 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 - - # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # 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 - - strip-unsupported-flags - - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_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= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # bindgen settings - # From 127, to make bindgen work, 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. - myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" - - myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" - # We don't need to set 'clang_base_bath' for anything in our build - # and it defaults to the google toolchain location. Instead provide a location - # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) - myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" - - myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" - myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=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. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=false" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # 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 - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-zstd; then - gn_system_libraries+=( zstd ) - fi - - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # 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 - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of - # using dlopen. This helps with automated detection of ABI mismatches and - # prevents silent errors. - if use pulseaudio; then - myconf_gn+=" link_pulseaudio=true" - fi - - # Non-developer builds of Chromium (for example, non-Chrome browsers, or - # Chromium builds provided by Linux distros) should disable the testing config - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # The sysroot is the oldest debian image that chromium supports, we don't need it - myconf_gn+=" use_sysroot=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). - myconf_gn+=" use_custom_libcxx=true" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - if use bindist ; then - # proprietary_codecs just forces Chromium to say that it can use h264/aac, - # the work is still done by ffmpeg. If this is set to no Chromium - # won't be able to load the codec even if the library can handle it - myconf_gn+=" proprietary_codecs=true" - myconf_gn+=" ffmpeg_branding=\"Chrome\"" - # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute - myconf_gn+=" is_component_ffmpeg=true" - else - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - fi - - # 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 chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - 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*" - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - myconf_gn+=" treat_warnings_as_errors=false" - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # 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; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - # 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 - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - 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 - - # Don't need nocompile checks and GN crashes with our config - myconf_gn+=" enable_nocompile_tests=false" - - # 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 - myconf_gn+=" enable_freetype=true" - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5 || use qt6; then - local cbuild_libdir=$(get_libdir) - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - cbuild_libdir=${cbuild_libdir/% } - fi - if use qt5; then - if tc-is-cross-compiler; then - myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" - else - myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" - fi - fi - if use qt6; then - myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" - fi - - myconf_gn+=" use_qt=true" - myconf_gn+=" use_qt6=$(usex qt6 true false)" - else - myconf_gn+=" use_qt=false" - fi - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - myconf_gn+=" use_thin_lto=${use_lto}" - myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - 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 - myconf_gn+=" is_cfi=${use_lto}" - # 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 - # Disable PGO - myconf_gn+=" chrome_pgo_phase=0" - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium ..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -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; 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 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 - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_test() { - # Initial list of tests to skip pulled from Alpine. Thanks Lauren! - # https://issues.chromium.org/issues/40939315 - local skip_tests=( - 'MessagePumpLibeventTest.NestedNotification*' - ClampTest.Death - OptionalTest.DereferencingNoValueCrashes - PlatformThreadTest.SetCurrentThreadTypeTest - RawPtrTest.TrivialRelocability - SafeNumerics.IntMaxOperations - StackTraceTest.TraceStackFramePointersFromBuffer - StringPieceTest.InvalidLengthDeath - StringPieceTest.OutOfBoundsDeath - ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker - ValuesUtilTest.FilePath - # Gentoo-specific - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3 - CharacterEncodingTest.GetCanonicalEncodingNameByAliasName - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress - FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe - FileTest.GetInfoForCreationTime - ICUStringConversionsTest.ConvertToUtf8AndNormalize - NumberFormattingTest.FormatPercent - PathServiceTest.CheckedGetFailure - PlatformThreadTest.CanChangeThreadType - StackCanary.ChangingStackCanaryCrashesOnReturn - StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree - SysStrings.SysNativeMBAndWide - SysStrings.SysNativeMBToWide - SysStrings.SysWideToNativeMB - TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest - ToolsSanityTest.BadVirtualCallNull - ToolsSanityTest.BadVirtualCallWrongType - ) - local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" - # test-launcher-bot-mode enables parallelism and plain output - ./out/Release/base_unittests --test-launcher-bot-mode \ - --test-launcher-jobs="$(makeopts_jobs)" \ - --gtest_filter="${test_filter}" || die "Tests failed!" -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - 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 - } - 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 - - # 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 - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - 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.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.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; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - 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 - if use qt5 && use qt6; then - elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" - elog "environment. To override you need to pass --qt-version=5 or" - elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" - elog "/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 -} diff --git a/www-client/chromium/chromium-131.0.6778.264.ebuild b/www-client/chromium/chromium-131.0.6778.264.ebuild deleted file mode 100644 index adda2b0c6e60..000000000000 --- a/www-client/chromium/chromium-131.0.6778.264.ebuild +++ /dev/null @@ -1,1422 +0,0 @@ -# Copyright 2009-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# PACKAGING NOTES - -# This uses a gentoo-created tarball due to Google CI Failures. -# Use 133(?) as a base for new official tarballs. - -GN_MIN_VER=0.2165 -# chromium-tools/get-chromium-toolchain-strings.py -TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 - -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=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) -PYTHON_REQ_USE="xml(+)" -RUST_MIN_VER=1.78.0 -RUST_NEEDS_LLVM="yes please" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils -inherit python-any-r1 qmake-utils 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%%\.*}-1" -SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz - https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 - test? ( - https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz - https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz - ) - ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/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 )" - -LICENSE="BSD" -SLOT="0/stable" -# Dev exists mostly to give devs some breathing room for beta/stable releases; -# it shouldn't be keyworded but adventurous users can select it. -if [[ ${SLOT} != "0/dev" ]]; then - KEYWORDS="amd64 ~arm64" -fi - -IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" -RESTRICT=" - !bindist? ( bindist ) - !test? ( test ) -" - -REQUIRED_USE=" - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) - qt6? ( qt5 ) - 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:= -" - -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-png? ( media-libs/libpng:=[-apng(-)] ) - system-zstd? ( >=app-arch/zstd-1.5.5:= ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - sys-libs/zlib:= - x11-libs/libdrm:= - !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? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - qt6? ( dev-qt/qtbase:6[gui,widgets] ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[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? ( - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) - ) - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - llvm-core/lld:${LLVM_SLOT} - ') - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - ) - >=dev-util/bindgen-0.68.0 - >=dev-build/gn-${GN_MIN_VER} - dev-build/ninja - dev-lang/perl - >=dev-util/gperf-3.0.3 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=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. - local BASE_DISK=24 - local EXTRA_DISK=1 - local CHECKREQS_MEMORY="4G" - tc-is-cross-compiler && EXTRA_DISK=2 - if tc-is-lto || use pgo; then - CHECKREQS_MEMORY="9G" - tc-is-cross-compiler && EXTRA_DISK=4 - use pgo && EXTRA_DISK=8 - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags; then - EXTRA_DISK=13 - fi - CHECKREQS_MEMORY="16G" - fi - 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" "qt5" "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 - - # 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. - # TODO: check if the user has already selected a specific impl via make.conf and respect that. - use_lto="false" - if tc-is-lto; then - use_lto="true" - # We can rely on GN to do this for us; anecdotally without this builds - # take significantly longer with LTO enabled and it doesn't hurt anything. - filter-lto - fi - - if [ "$use_lto" = "false" ] && use official; 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 - - llvm-r1_pkg_setup - rust_pkg_setup - - # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT - AR=llvm-ar - CPP="${CHOST}-clang++-${LLVM_SLOT} -E" - NM=llvm-nm - CC="${CHOST}-clang-${LLVM_SLOT}" - CXX="${CHOST}-clang++-${LLVM_SLOT}" - - 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 - - # Users should never hit this, it's purely a 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 - fi - - chromium_suid_sandbox_check_kernel_config -} - -src_unpack() { - unpack ${P}-linux.tar.xz - unpack chromium-patches-${PATCH_V}.tar.bz2 - - 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`. - 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" - local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" - tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" - fi - - if use ppc64; then - unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" - - local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch" - "${FILESDIR}/chromium-131-unbundle-icu-target.patch" - "${FILESDIR}/chromium-131-oauth2-client-switches.patch" - "${FILESDIR}/chromium-131-const-atomicstring-conversion.patch" - ) - - PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) - # We can't use the bundled compiler builtins with the system toolchain - # `grep` is a development convenience to ensure we fail early when google changes something. - local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" - grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) - fi - - default - - rm third_party/node/linux/node-linux-x64/bin/node || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - # 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 - chrome/third_party/mozilla_security_manager - net/third_party/mozilla_security_manager - net/third_party/nss - 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/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/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/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/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/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/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fast_float - third_party/fdlibm - 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/iccjpeg - 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/jstemplate - 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/libavif - third_party/libc++ - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - 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/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - 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/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/pthreadpool - third_party/puffin - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rapidhash - third_party/re2 - third_party/rnnoise - third_party/rust - third_party/ruy - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/sentencepiece - third_party/sentencepiece/src/third_party/darts_clone - third_party/shell-encryption - third_party/simplejson - third_party/six - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/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/eigen3 - 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/protobuf - third_party/tflite/src/third_party/xla/xla/tsl/util - third_party/ukey2 - third_party/unrar - 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/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - 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/src/third_party/siphash - v8/src/third_party/utf8-decoder - v8/src/third_party/valgrind - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - - if use test; then - # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' - keeplibs+=( - third_party/google_benchmark/src/include/benchmark - third_party/google_benchmark/src/src - third_party/perfetto/protos/third_party/pprof - third_party/test_fonts - third_party/test_fonts/fontconfig - ) - 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-png; then - keeplibs+=( third_party/libpng ) - 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 - - # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # 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 - - strip-unsupported-flags - - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_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= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # bindgen settings - # From 127, to make bindgen work, 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. - myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" - - myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" - # We don't need to set 'clang_base_bath' for anything in our build - # and it defaults to the google toolchain location. Instead provide a location - # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) - myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" - - myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" - myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=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. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=false" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # 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 - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-zstd; then - gn_system_libraries+=( zstd ) - fi - - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # 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 - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of - # using dlopen. This helps with automated detection of ABI mismatches and - # prevents silent errors. - if use pulseaudio; then - myconf_gn+=" link_pulseaudio=true" - fi - - # Non-developer builds of Chromium (for example, non-Chrome browsers, or - # Chromium builds provided by Linux distros) should disable the testing config - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # The sysroot is the oldest debian image that chromium supports, we don't need it - myconf_gn+=" use_sysroot=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). - myconf_gn+=" use_custom_libcxx=true" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - if use bindist ; then - # proprietary_codecs just forces Chromium to say that it can use h264/aac, - # the work is still done by ffmpeg. If this is set to no Chromium - # won't be able to load the codec even if the library can handle it - myconf_gn+=" proprietary_codecs=true" - myconf_gn+=" ffmpeg_branding=\"Chrome\"" - # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute - myconf_gn+=" is_component_ffmpeg=true" - else - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - fi - - # 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 chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - 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*" - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - myconf_gn+=" treat_warnings_as_errors=false" - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # 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; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - # 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 - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - 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 - - # Don't need nocompile checks and GN crashes with our config - myconf_gn+=" enable_nocompile_tests=false" - - # 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 - myconf_gn+=" enable_freetype=true" - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5 || use qt6; then - local cbuild_libdir=$(get_libdir) - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - cbuild_libdir=${cbuild_libdir/% } - fi - if use qt5; then - if tc-is-cross-compiler; then - myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" - else - myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" - fi - fi - if use qt6; then - myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" - fi - - myconf_gn+=" use_qt=true" - myconf_gn+=" use_qt6=$(usex qt6 true false)" - else - myconf_gn+=" use_qt=false" - fi - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - myconf_gn+=" use_thin_lto=${use_lto}" - myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - 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 - myconf_gn+=" is_cfi=${use_lto}" - # 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 - # Disable PGO - myconf_gn+=" chrome_pgo_phase=0" - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium ..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -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; 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 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 - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_test() { - # Initial list of tests to skip pulled from Alpine. Thanks Lauren! - # https://issues.chromium.org/issues/40939315 - local skip_tests=( - 'MessagePumpLibeventTest.NestedNotification*' - ClampTest.Death - OptionalTest.DereferencingNoValueCrashes - PlatformThreadTest.SetCurrentThreadTypeTest - RawPtrTest.TrivialRelocability - SafeNumerics.IntMaxOperations - StackTraceTest.TraceStackFramePointersFromBuffer - StringPieceTest.InvalidLengthDeath - StringPieceTest.OutOfBoundsDeath - ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker - ValuesUtilTest.FilePath - # Gentoo-specific - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3 - CharacterEncodingTest.GetCanonicalEncodingNameByAliasName - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress - FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe - FileTest.GetInfoForCreationTime - ICUStringConversionsTest.ConvertToUtf8AndNormalize - NumberFormattingTest.FormatPercent - PathServiceTest.CheckedGetFailure - PlatformThreadTest.CanChangeThreadType - StackCanary.ChangingStackCanaryCrashesOnReturn - StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree - SysStrings.SysNativeMBAndWide - SysStrings.SysNativeMBToWide - SysStrings.SysWideToNativeMB - TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest - ToolsSanityTest.BadVirtualCallNull - ToolsSanityTest.BadVirtualCallWrongType - ) - local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" - # test-launcher-bot-mode enables parallelism and plain output - ./out/Release/base_unittests --test-launcher-bot-mode \ - --test-launcher-jobs="$(makeopts_jobs)" \ - --gtest_filter="${test_filter}" || die "Tests failed!" -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - 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 - } - 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 - - # 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 - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - 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.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.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; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - 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 - if use qt5 && use qt6; then - elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" - elog "environment. To override you need to pass --qt-version=5 or" - elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" - elog "/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 -} diff --git a/www-client/chromium/chromium-132.0.6834.57.ebuild b/www-client/chromium/chromium-132.0.6834.57.ebuild deleted file mode 100644 index 6f03ccde307f..000000000000 --- a/www-client/chromium/chromium-132.0.6834.57.ebuild +++ /dev/null @@ -1,1433 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# PACKAGING NOTES - -# This uses a gentoo-created tarball due to Google CI Failures. -# Use 133(?) as a base for new official tarballs. - -GN_MIN_VER=0.2165 -# chromium-tools/get-chromium-toolchain-strings.py -TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 - -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=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) -PYTHON_REQ_USE="xml(+)" -RUST_MIN_VER=1.78.0 -RUST_NEEDS_LLVM="yes please" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils -inherit python-any-r1 qmake-utils 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%%\.*}" -SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz - https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 - test? ( - https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz - https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz - ) - ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/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 )" - -LICENSE="BSD" -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. -if [[ ${SLOT} != "0/dev" ]]; then - KEYWORDS="~amd64 ~arm64" -fi - -IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" -RESTRICT=" - !bindist? ( bindist ) - !test? ( test ) -" - -REQUIRED_USE=" - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) - qt6? ( qt5 ) - 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:= -" - -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-png? ( media-libs/libpng:=[-apng(-)] ) - system-zstd? ( >=app-arch/zstd-1.5.5:= ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.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? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - qt6? ( dev-qt/qtbase:6[gui,widgets] ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[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? ( - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) - ) - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - llvm-core/lld:${LLVM_SLOT} - ') - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - ) - >=dev-util/bindgen-0.68.0 - >=dev-build/gn-${GN_MIN_VER} - dev-build/ninja - dev-lang/perl - >=dev-util/gperf-3.0.3 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=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. - local BASE_DISK=24 - local EXTRA_DISK=1 - local CHECKREQS_MEMORY="4G" - tc-is-cross-compiler && EXTRA_DISK=2 - if tc-is-lto || use pgo; then - CHECKREQS_MEMORY="9G" - tc-is-cross-compiler && EXTRA_DISK=4 - use pgo && EXTRA_DISK=8 - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags; then - EXTRA_DISK=13 - fi - CHECKREQS_MEMORY="16G" - fi - 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" "qt5" "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 - - # 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. - # TODO: check if the user has already selected a specific impl via make.conf and respect that. - use_lto="false" - if tc-is-lto; then - use_lto="true" - # We can rely on GN to do this for us; anecdotally without this builds - # take significantly longer with LTO enabled and it doesn't hurt anything. - filter-lto - fi - - if [ "$use_lto" = "false" ] && use official; 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 - - llvm-r1_pkg_setup - rust_pkg_setup - - # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT - AR=llvm-ar - CPP="${CHOST}-clang++-${LLVM_SLOT} -E" - NM=llvm-nm - CC="${CHOST}-clang-${LLVM_SLOT}" - CXX="${CHOST}-clang++-${LLVM_SLOT}" - - 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 - - # Users should never hit this, it's purely a 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 - fi - - chromium_suid_sandbox_check_kernel_config -} - -src_unpack() { - unpack ${P}-linux.tar.xz - unpack chromium-patches-${PATCH_V}.tar.bz2 - - 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`. - 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" - local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" - tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" - fi - - if use ppc64; then - unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" - - local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-131-unbundle-icu-target.patch" - "${FILESDIR}/chromium-131-oauth2-client-switches.patch" - "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" - ) - - PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) - # We can't use the bundled compiler builtins with the system toolchain - # `grep` is a development convenience to ensure we fail early when google changes something. - local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" - grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) - fi - - # This is a nightly option that does not exist any current release - # https://github.com/rust-lang/rust/commit/389a399a501a626ebf891ae0bb076c25e325ae64 - if ver_test ${RUST_SLOT} -le "1.82.0"; then - sed '/rustflags = \[ "-Zdefault-visibility=hidden" \]/d' -i build/config/gcc/BUILD.gn || - die "Failed to remove default visibility nightly option" - fi - - default - - rm third_party/node/linux/node-linux-x64/bin/node || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - # 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 - chrome/third_party/mozilla_security_manager - net/third_party/mozilla_security_manager - net/third_party/nss - 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/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/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/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/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/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/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fast_float - third_party/fdlibm - 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/iccjpeg - 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/jstemplate - 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/libavif - third_party/libc++ - third_party/libdrm - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - 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/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - 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/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/pthreadpool - third_party/puffin - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rapidhash - third_party/re2 - third_party/rnnoise - third_party/rust - third_party/ruy - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/sentencepiece - third_party/sentencepiece/src/third_party/darts_clone - third_party/shell-encryption - third_party/simplejson - third_party/six - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/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/eigen3 - 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/protobuf - third_party/tflite/src/third_party/xla/xla/tsl/util - third_party/ukey2 - third_party/unrar - 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/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - 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/src/third_party/siphash - v8/src/third_party/utf8-decoder - v8/src/third_party/valgrind - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - - 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/google_benchmark/src/include/benchmark - third_party/google_benchmark/src/src - third_party/perfetto/protos/third_party/pprof - third_party/test_fonts - third_party/test_fonts/fontconfig - ) - 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-png; then - keeplibs+=( third_party/libpng ) - 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 - - # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # 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 - - strip-unsupported-flags - - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_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= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # bindgen settings - # From 127, to make bindgen work, 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. - myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" - - myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" - # We don't need to set 'clang_base_bath' for anything in our build - # and it defaults to the google toolchain location. Instead provide a location - # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) - myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" - - myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" - myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=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. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=false" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # 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-png; then - gn_system_libraries+=( libpng ) - fi - if use system-zstd; then - gn_system_libraries+=( zstd ) - fi - - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # 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 - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of - # using dlopen. This helps with automated detection of ABI mismatches and - # prevents silent errors. - if use pulseaudio; then - myconf_gn+=" link_pulseaudio=true" - fi - - # Non-developer builds of Chromium (for example, non-Chrome browsers, or - # Chromium builds provided by Linux distros) should disable the testing config - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # The sysroot is the oldest debian image that chromium supports, we don't need it - myconf_gn+=" use_sysroot=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). - myconf_gn+=" use_custom_libcxx=true" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - if use bindist ; then - # proprietary_codecs just forces Chromium to say that it can use h264/aac, - # the work is still done by ffmpeg. If this is set to no Chromium - # won't be able to load the codec even if the library can handle it - myconf_gn+=" proprietary_codecs=true" - myconf_gn+=" ffmpeg_branding=\"Chrome\"" - # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute - myconf_gn+=" is_component_ffmpeg=true" - else - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - fi - - # 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 chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - 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*" - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - myconf_gn+=" treat_warnings_as_errors=false" - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # 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; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - # 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 - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - 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 - - # Don't need nocompile checks and GN crashes with our config - myconf_gn+=" enable_nocompile_tests=false" - - # 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 - myconf_gn+=" enable_freetype=true" - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5 || use qt6; then - local cbuild_libdir=$(get_libdir) - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - cbuild_libdir=${cbuild_libdir/% } - fi - if use qt5; then - if tc-is-cross-compiler; then - myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" - else - myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" - fi - fi - if use qt6; then - myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" - fi - - myconf_gn+=" use_qt=true" - myconf_gn+=" use_qt6=$(usex qt6 true false)" - else - myconf_gn+=" use_qt=false" - fi - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - myconf_gn+=" use_thin_lto=${use_lto}" - myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - 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 - myconf_gn+=" is_cfi=${use_lto}" - # 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 - # Disable PGO - myconf_gn+=" chrome_pgo_phase=0" - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium ..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -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; 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 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 - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_test() { - # Initial list of tests to skip pulled from Alpine. Thanks Lauren! - # https://issues.chromium.org/issues/40939315 - local skip_tests=( - 'MessagePumpLibeventTest.NestedNotification*' - ClampTest.Death - OptionalTest.DereferencingNoValueCrashes - PlatformThreadTest.SetCurrentThreadTypeTest - RawPtrTest.TrivialRelocability - SafeNumerics.IntMaxOperations - StackTraceTest.TraceStackFramePointersFromBuffer - StringPieceTest.InvalidLengthDeath - StringPieceTest.OutOfBoundsDeath - ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker - ValuesUtilTest.FilePath - # Gentoo-specific - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2 - AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3 - CharacterEncodingTest.GetCanonicalEncodingNameByAliasName - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV - CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress - FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe - FileTest.GetInfoForCreationTime - ICUStringConversionsTest.ConvertToUtf8AndNormalize - NumberFormattingTest.FormatPercent - PathServiceTest.CheckedGetFailure - PlatformThreadTest.CanChangeThreadType - RustLogIntegrationTest.CheckAllSeverity - StackCanary.ChangingStackCanaryCrashesOnReturn - StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree - SysStrings.SysNativeMBAndWide - SysStrings.SysNativeMBToWide - SysStrings.SysWideToNativeMB - TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest - ToolsSanityTest.BadVirtualCallNull - ToolsSanityTest.BadVirtualCallWrongType - ) - local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" - # test-launcher-bot-mode enables parallelism and plain output - ./out/Release/base_unittests --test-launcher-bot-mode \ - --test-launcher-jobs="$(makeopts_jobs)" \ - --gtest_filter="${test_filter}" || die "Tests failed!" -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - 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 - } - 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 - - # 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 - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - 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.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.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; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - 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 - if use qt5 && use qt6; then - elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" - elog "environment. To override you need to pass --qt-version=5 or" - elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" - elog "/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 -} diff --git a/www-client/chromium/chromium-133.0.6888.2.ebuild b/www-client/chromium/chromium-132.0.6834.83.ebuild index ffe050806e0c..e6640fa74359 100644 --- a/www-client/chromium/chromium-133.0.6888.2.ebuild +++ b/www-client/chromium/chromium-132.0.6834.83.ebuild @@ -1,21 +1,12 @@ -# Copyright 2009-2024 Gentoo Authors +# Copyright 2009-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # PACKAGING NOTES -# Since m133 (and backported a bit...) we are using CI-generated tarballs from -# https://github.com/chromium-linux-tarballs/chromium-tarballs/ (uploaded to S3 -# and made available via https://chromium-tarballs.distfiles.gentoo.org/). - -# We do this because upstream tarballs weigh in at about 3.5x the size of our -# new "Distro tarballs" and include binaries (etc) that are not useful for -# downstream consumers (like distributions). - -# It is probably still possible to download the google Rust and Clang toolchains -# and use them to build this package, however we removed this when upstream CI -# broke for m131 and haven't re-added it. +# This uses a gentoo-created tarball due to Google CI Failures. +# Use 133(?) as a base for new official tarballs. GN_MIN_VER=0.2165 # chromium-tools/get-chromium-toolchain-strings.py @@ -38,8 +29,8 @@ inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs DESCRIPTION="Open-source version of Google Chrome web browser" HOMEPAGE="https://www.chromium.org/" -PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6" -PATCH_V="${PV%%\.*}-1" +PPC64_HASH="c11b515d9addc3f8b516502e553ace507eb81815" +PATCH_V="${PV%%\.*}" SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 test? ( @@ -47,16 +38,16 @@ SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz ) ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + 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 )" LICENSE="BSD" -SLOT="0/dev" +SLOT="0/stable" # Dev exists mostly to give devs some breathing room for beta/stable releases; # it shouldn't be keyworded but adventurous users can select it. if [[ ${SLOT} != "0/dev" ]]; then - KEYWORDS="~amd64 ~arm64" + KEYWORDS="amd64 arm64 ~ppc64" fi IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" @@ -187,6 +178,9 @@ BDEPEND=" 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] ) + ) ') pgo? ( >=dev-python/selenium-3.141.0 @@ -381,18 +375,16 @@ src_prepare() { "${FILESDIR}/chromium-131-oauth2-client-switches.patch" "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" ) - shopt -s globstar nullglob # 130: moved the PPC64 patches into the chromium-patches repo local patch for patch in "${WORKDIR}/chromium-patches-${PATCH_V}"/**/*.patch; do - if [[ ${patch} == *"ppc64le"* ]]; then - use ppc64 && PATCHES+=( "${patch}" ) - else - PATCHES+=( "${patch}" ) - fi + if [[ ${patch} == *"ppc64le"* ]]; then + use ppc64 && PATCHES+=( "${patch}" ) + else + PATCHES+=( "${patch}" ) + fi done - shopt -u globstar nullglob # We can't use the bundled compiler builtins with the system toolchain @@ -405,8 +397,10 @@ src_prepare() { 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" - # Apply the OpenPOWER patches (check for page size) - openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" || die) ) + local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch" + # Apply the OpenPOWER patches (check for page size and isa3.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 @@ -415,7 +409,7 @@ src_prepare() { fi # We use vsx3 as a proxy for 'want isa3.0' (POWER9) if use cpu_flags_ppc_vsx3 ; then - PATCHES+=( "${patchset_dir}/ppc64le/core/baseline-isa-3-0.patch" ) + PATCHES+=( "${patchset_dir}/${isa_3_patch}" ) fi fi @@ -648,7 +642,6 @@ src_prepare() { 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 @@ -717,7 +710,6 @@ src_prepare() { # 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 third_party/google_benchmark/src/include/benchmark third_party/google_benchmark/src/src third_party/perfetto/protos/third_party/pprof @@ -1120,7 +1112,11 @@ chromium_configure() { # 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 - myconf_gn+=" is_cfi=${use_lto}" + if use ppc64; then + myconf_gn+=" is_cfi=no" # requires llvm-runtimes/compiler-rt-sanitizers[cfi] + else + myconf_gn+=" is_cfi=${use_lto}" + fi # Don't add symbols to build myconf_gn+=" symbol_level=0" fi @@ -1303,7 +1299,6 @@ src_test() { TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest ToolsSanityTest.BadVirtualCallNull ToolsSanityTest.BadVirtualCallWrongType - CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention #new m133: TODO investigate ) local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" # test-launcher-bot-mode enables parallelism and plain output diff --git a/www-client/chromium/chromium-133.0.6905.0.ebuild b/www-client/chromium/chromium-133.0.6943.16.ebuild index f587dd56fac0..78533a7b1de7 100644 --- a/www-client/chromium/chromium-133.0.6905.0.ebuild +++ b/www-client/chromium/chromium-133.0.6943.16.ebuild @@ -1,23 +1,12 @@ -# Copyright 2009-2024 Gentoo Authors +# Copyright 2009-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # PACKAGING NOTES - - -# Since m133 (and backported a bit...) we are using CI-generated tarballs from -# https://github.com/chromium-linux-tarballs/chromium-tarballs/ (uploaded to S3 -# and made available via https://chromium-tarballs.distfiles.gentoo.org/). - -# We do this because upstream tarballs weigh in at about 3.5x the size of our -# new "Distro tarballs" and include binaries (etc) that are not useful for -# downstream consumers (like distributions). - -# It is probably still possible to download the google Rust and Clang toolchains -# and use them to build this package, however we removed this when upstream CI -# broke for m131 and haven't re-added it. +# This uses a gentoo-created tarball due to Google CI Failures. +# Use 133(?) as a base for new official tarballs. GN_MIN_VER=0.2165 # chromium-tools/get-chromium-toolchain-strings.py @@ -49,12 +38,12 @@ SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz ) ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + 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 )" LICENSE="BSD" -SLOT="0/dev" +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. if [[ ${SLOT} != "0/dev" ]]; then @@ -63,7 +52,7 @@ fi IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3" +IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" RESTRICT=" !bindist? ( bindist ) !test? ( test ) @@ -189,6 +178,9 @@ BDEPEND=" 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] ) + ) ') pgo? ( >=dev-python/selenium-3.141.0 @@ -396,7 +388,6 @@ src_prepare() { done shopt -u globstar nullglob - # We can't use the bundled compiler builtins with the system toolchain # `grep` is a development convenience to ensure we fail early when google changes something. local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" @@ -407,8 +398,10 @@ src_prepare() { 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" - # Apply the OpenPOWER patches (check for page size) - openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" || die) ) + 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 @@ -417,7 +410,7 @@ src_prepare() { fi # We use vsx3 as a proxy for 'want isa3.0' (POWER9) if use cpu_flags_ppc_vsx3 ; then - PATCHES+=( "${patchset_dir}/ppc64le/core/baseline-isa-3-0.patch" ) + PATCHES+=( "${patchset_dir}/${isa_3_patch}" ) fi fi @@ -537,6 +530,7 @@ src_prepare() { third_party/fp16 third_party/freetype third_party/fusejs + third_party/fuzztest third_party/fxdiv third_party/gemmlowp third_party/google_input_tools @@ -636,7 +630,6 @@ src_prepare() { third_party/puffin third_party/pyjson5 third_party/pyyaml - third_party/qcms third_party/rapidhash third_party/re2 third_party/rnnoise @@ -680,6 +673,7 @@ src_prepare() { third_party/unrar third_party/utf third_party/vulkan + third_party/wasm_tts_engine third_party/wayland third_party/webdriver third_party/webgpu-cts @@ -700,12 +694,12 @@ src_prepare() { third_party/zlib/google third_party/zxcvbn-cpp url/third_party/mozilla - v8/third_party/siphash - v8/third_party/utf8-decoder - v8/third_party/valgrind v8/third_party/glibc v8/third_party/inspector_protocol + v8/third_party/siphash + v8/third_party/utf8-decoder v8/third_party/v8 + v8/third_party/valgrind # gyp -> gn leftovers third_party/speech-dispatcher @@ -714,10 +708,9 @@ src_prepare() { ) if use test; then - # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' + # tar tvf /var/cache/distfiles/${P}-linux-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' 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/perfetto/protos/third_party/pprof @@ -1120,7 +1113,11 @@ chromium_configure() { # 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 - myconf_gn+=" is_cfi=${use_lto}" + if use ppc64; then + myconf_gn+=" is_cfi=no" # requires llvm-runtimes/compiler-rt-sanitizers[cfi] + else + myconf_gn+=" is_cfi=${use_lto}" + fi # Don't add symbols to build myconf_gn+=" symbol_level=0" fi diff --git a/www-client/chromium/chromium-132.0.6834.46.ebuild b/www-client/chromium/chromium-134.0.6958.2.ebuild index 6f03ccde307f..5d6f38246453 100644 --- a/www-client/chromium/chromium-132.0.6834.46.ebuild +++ b/www-client/chromium/chromium-134.0.6958.2.ebuild @@ -1,16 +1,32 @@ -# Copyright 2009-2024 Gentoo Authors +# Copyright 2009-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # PACKAGING NOTES -# This uses a gentoo-created tarball due to Google CI Failures. -# Use 133(?) as a base for new official tarballs. +# 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. -GN_MIN_VER=0.2165 +# 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). + +# Since m133 we are using CI-generated tarballs from +# https://github.com/chromium-linux-tarballs/chromium-tarballs/ (uploaded to S3 +# and made available via https://chromium-tarballs.distfiles.gentoo.org/). + +# We do this because upstream tarballs weigh in at about 3.5x the size of our +# new "Distro tarballs" and include binaries (etc) that are not useful for +# downstream consumers (like distributions). + +GN_MIN_VER=0.2207 # chromium-tools/get-chromium-toolchain-strings.py TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 +BUNDLED_CLANG_VER=llvmorg-20-init-17108-g29ed6000-1 +BUNDLED_RUST_VER=ad211ced81509462cdfe4c29ed10f97279a0acae-1 VIRTUALX_REQUIRED="pgo" @@ -23,6 +39,7 @@ PYTHON_COMPAT=( python3_{11..13} ) PYTHON_REQ_USE="xml(+)" RUST_MIN_VER=1.78.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 inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils @@ -32,18 +49,26 @@ HOMEPAGE="https://www.chromium.org/" PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6" PATCH_V="${PV%%\.*}" SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz + !bundled-toolchain? ( https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 + ) + bundled-toolchain? ( + https://gsdview.appspot.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz + -> chromium-${PV%%\.*}-clang.tar.xz + https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz + -> chromium-${PV%%\.*}-rust.tar.xz + ) test? ( https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz ) ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + 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 )" LICENSE="BSD" -SLOT="0/beta" +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. if [[ ${SLOT} != "0/dev" ]]; then @@ -51,8 +76,8 @@ if [[ ${SLOT} != "0/dev" ]]; then fi IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" +IUSE="+X ${IUSE_SYSTEM_LIBS} bindist bundled-toolchain cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo" +IUSE+=" +proprietary-codecs pulseaudio qt5 qt6 +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3" RESTRICT=" !bindist? ( bindist ) !test? ( test ) @@ -174,11 +199,15 @@ BDEPEND=" qt5? ( dev-qt/qtcore:5 ) qt6? ( dev-qt/qtbase:6 ) ) - $(llvm_gen_dep ' + !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 @@ -310,8 +339,10 @@ pkg_setup() { die "Please switch to a different linker." fi - llvm-r1_pkg_setup - rust_pkg_setup + if use !bundled-toolchain; then + llvm-r1_pkg_setup + rust_pkg_setup + fi # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT AR=llvm-ar @@ -340,7 +371,8 @@ 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 + use !bundled-toolchain && unpack chromium-patches-${PATCH_V}.tar.bz2 use pgo && unpack chromium-profiler-0.2.tar @@ -355,6 +387,18 @@ src_unpack() { 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-${PV%%\.*}-clang.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-${PV%%\.*}-rust.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 @@ -364,43 +408,102 @@ src_prepare() { # Calling this here supports resumption via FEATURES=keepwork python_setup - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" - local PATCHES=( "${FILESDIR}/chromium-cross-compile.patch" "${FILESDIR}/chromium-109-system-zlib.patch" "${FILESDIR}/chromium-111-InkDropHost-crash.patch" "${FILESDIR}/chromium-131-unbundle-icu-target.patch" - "${FILESDIR}/chromium-131-oauth2-client-switches.patch" - "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" + "${FILESDIR}/chromium-134-oauth2-client-switches.patch" ) - PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) - # We can't use the bundled compiler builtins with the system toolchain - # `grep` is a development convenience to ensure we fail early when google changes something. - local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" - grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" + 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 + # This patch breaks bundled-toolchain builds as the required path_suffix clearly differs + # between the two. Probably just need to update the patch to gate updating this value on the 'unbundle' + # toolchain? Alternative: move to chromium-patches, but this is probably something that we + # can upstream, so let's try to do it properly. For now apply conditionally so that we have _a_ dev + # channel ebuild. + # Currently evaluates to: + # `-resource-dir', `'../../third_party/llvm-build/Release+Asserts/include'` + # This is correct if the first part of the concatenated variable points to /usr/lib/clang/<majver> + # Correct for bundled toolchain is: + # `-resource-dir', `'../../third_party/llvm-build/Release+Asserts/lib/clang/<majver>/include'` + # TODO: fix before this leaves dev. + PATCHES+=( "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" ) + # We don't need our toolchain patches if we're using the official toolchain + shopt -s globstar nullglob + # 130: moved the PPC64 patches into the chromium-patches repo + local patch + for patch in "${WORKDIR}/chromium-patches-${PATCH_V}"/**/*.patch; do + if [[ ${patch} == *"ppc64le"* ]]; then + use ppc64 && PATCHES+=( "${patch}" ) + else + PATCHES+=( "${patch}" ) fi done - PATCHES+=( "${WORKDIR}/ppc64le" ) - PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) - fi - # This is a nightly option that does not exist any current release - # https://github.com/rust-lang/rust/commit/389a399a501a626ebf891ae0bb076c25e325ae64 - if ver_test ${RUST_SLOT} -le "1.82.0"; then - sed '/rustflags = \[ "-Zdefault-visibility=hidden" \]/d' -i build/config/gcc/BUILD.gn || - die "Failed to remove default visibility nightly option" + shopt -u globstar nullglob + + # We can't use the bundled compiler builtins with the system toolchain + # `grep` is a development convenience to ensure we fail early when google changes something. + local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" + grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" + sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn + + # 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 + + # Oxidised hacks, let's keep 'em all in one place + # This is a nightly option that does not exist in older releases + # https://github.com/rust-lang/rust/commit/389a399a501a626ebf891ae0bb076c25e325ae64 + if ver_test ${RUST_SLOT} -lt "1.83.0"; then + sed '/rustflags = \[ "-Zdefault-visibility=hidden" \]/d' -i build/config/gcc/BUILD.gn || + die "Failed to remove default visibility nightly option" + fi + + # Upstream Rust replaced adler with adler2, for older versions of Rust we still need + # to tell GN that we have the older lib when it tries to copy the Rust sysroot + # into the bulid directory. + if ver_test ${RUST_SLOT} -lt "1.85.0"; then + sed -i 's/adler2/adler/' build/rust/std/BUILD.gn || + die "Failed to tell GN that we have adler and not adler2" + fi fi default @@ -536,7 +639,6 @@ src_prepare() { third_party/ipcz third_party/jinja2 third_party/jsoncpp - third_party/jstemplate third_party/khronos third_party/lens_server_proto third_party/leveldatabase @@ -549,7 +651,6 @@ src_prepare() { third_party/libavif third_party/libc++ third_party/libdrm - third_party/libevent third_party/libgav1 third_party/libjingle third_party/libphonenumber @@ -613,7 +714,6 @@ src_prepare() { third_party/puffin third_party/pyjson5 third_party/pyyaml - third_party/qcms third_party/rapidhash third_party/re2 third_party/rnnoise @@ -625,6 +725,7 @@ src_prepare() { 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 @@ -656,6 +757,7 @@ src_prepare() { third_party/unrar third_party/utf third_party/vulkan + third_party/wasm_tts_engine third_party/wayland third_party/webdriver third_party/webgpu-cts @@ -676,9 +778,9 @@ src_prepare() { third_party/zlib/google third_party/zxcvbn-cpp url/third_party/mozilla - v8/src/third_party/siphash - v8/src/third_party/utf8-decoder - v8/src/third_party/valgrind + v8/third_party/siphash + v8/third_party/utf8-decoder + v8/third_party/valgrind v8/third_party/glibc v8/third_party/inspector_protocol v8/third_party/v8 @@ -693,6 +795,7 @@ src_prepare() { # 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 third_party/google_benchmark/src/include/benchmark third_party/google_benchmark/src/src third_party/perfetto/protos/third_party/pprof @@ -772,8 +875,6 @@ src_prepare() { einfo "Unbundling third-party libraries ..." build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die - # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries mkdir -p buildtools/third_party/eu-strip/bin || die ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die @@ -785,63 +886,65 @@ chromium_configure() { local myconf_gn="" - # We already forced the "correct" clang via pkg_setup + 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 + 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 - strip-unsupported-flags + strip-unsupported-flags - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + # https://bugs.gentoo.org/918897#c32 + append-ldflags -Wl,--undefined-version + myconf_gn+=" use_lld=true" - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" + myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_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 + if tc-is-cross-compiler; then + tc-export BUILD_{AR,CC,CXX,NM} + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" + myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_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= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi + # Don't inherit PKG_CONFIG_PATH from environment + local -x PKG_CONFIG_PATH= + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi - # bindgen settings - # From 127, to make bindgen work, 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. - myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" + # bindgen settings + # From 127, to make bindgen work, 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. + myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" - myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" - # We don't need to set 'clang_base_bath' for anything in our build - # and it defaults to the google toolchain location. Instead provide a location - # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) - myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" + myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" + # We don't need to set 'clang_base_bath' for anything in our build + # and it defaults to the google toolchain location. Instead provide a location + # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) + myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" - myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" - myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" + myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" + myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" + fi # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. myconf_gn+=" is_debug=false" @@ -1095,7 +1198,11 @@ chromium_configure() { # 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 - myconf_gn+=" is_cfi=${use_lto}" + if use ppc64; then + myconf_gn+=" is_cfi=no" # requires llvm-runtimes/compiler-rt-sanitizers[cfi] + else + myconf_gn+=" is_cfi=${use_lto}" + fi # Don't add symbols to build myconf_gn+=" symbol_level=0" fi @@ -1156,6 +1263,24 @@ chromium_compile() { 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/libqt5_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 @@ -1278,6 +1403,7 @@ src_test() { TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest ToolsSanityTest.BadVirtualCallNull ToolsSanityTest.BadVirtualCallWrongType + CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention #new m133: TODO investigate ) local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" # test-launcher-bot-mode enables parallelism and plain output diff --git a/www-client/chromium/files/chromium-126-oauth2-client-switches.patch b/www-client/chromium/files/chromium-126-oauth2-client-switches.patch deleted file mode 100644 index b7ddf794aa27..000000000000 --- a/www-client/chromium/files/chromium-126-oauth2-client-switches.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b6cda4bc2283a02a5b5209c0f4282a8365f6f33e Mon Sep 17 00:00:00 2001 -From: Matt Jolly <Matt.Jolly@footclan.ninja> -Date: Tue, 21 May 2024 10:04:24 +1000 -Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials - - 126 update - -126 changed the function proto; patch rebased. - -Google doesn't let us bake in OAuth2 credentials, and for some time, -Google sign-in has been broken. Arch dealt with this in March, and so -did we to some degree, but in the last few months, our sign-in -credentials have been broken. It appears that we actually did remove API -credentials in March around Chrome 89, but they got added back, perhaps -when rotating newer versions to replace older versions. Work around this -by following Arch's lead: we remove the predefined credentials, as -before, but also we patch Chromium so that people can use their own -easily, using Arch's patch for that. - -For more info, see: - -https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ -https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5 -https://hackaday.com/2021/01/26/whats-the-deal-with-chromium-on-linux-google-at-odds-with-package-maintainers/ - -Bug: https://bugs.gentoo.org/791871 -Signed-off-by: Matt Jolly <kangie@gentoo.org> ---- a/google_apis/google_api_keys-inc.cc -+++ b/google_apis/google_api_keys-inc.cc -@@ -193,11 +193,11 @@ class APIKeyCache { - std::string default_client_id = CalculateKeyValue( - GOOGLE_DEFAULT_CLIENT_ID, - STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), -- nullptr, std::string(), environment.get(), command_line, gaia_config); -+ ::switches::kOAuth2ClientID, std::string(), environment.get(), command_line, gaia_config); - std::string default_client_secret = CalculateKeyValue( - GOOGLE_DEFAULT_CLIENT_SECRET, - STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(), -- nullptr, std::string(), environment.get(), command_line, gaia_config); -+ ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config); - - // We currently only allow overriding the baked-in values for the - // default OAuth2 client ID and secret using a command-line --- -2.45.1 - diff --git a/www-client/chromium/files/chromium-127-bindgen-custom-toolchain.patch b/www-client/chromium/files/chromium-127-bindgen-custom-toolchain.patch deleted file mode 100644 index aaf4b19a556f..000000000000 --- a/www-client/chromium/files/chromium-127-bindgen-custom-toolchain.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 6df5a080f58ddb6a49a9d33e4a3619a34fffa78c Mon Sep 17 00:00:00 2001 -From: Matt Jolly <Matt.Jolly@footclan.ninja> -Date: Fri, 5 Jul 2024 20:49:01 +1000 -Subject: [PATCH] Make bindgen wrapper work with unbundled toolchain - -The `run_bindgen.py` wrapper takes a --libclang-path option -and uses it to set the appropriate environment variable. - -This is currently hardcoded to use libclang shipped alongside -bindgen (in our rust toolchain), but distributions may want to -override this and use a system path. - -Additionally enable distros to feed in appropriate library paths. ---- a/build/config/rust.gni -+++ b/build/config/rust.gni -@@ -60,6 +60,17 @@ declare_args() { - # the bindgen exectuable). - rust_bindgen_root = "//third_party/rust-toolchain" - -+ # Directory under which to find one of `libclang.{dll,so}` (a `lib[64]` or -+ # `bin` directory containing the libclang shared library). -+ # We don't need to worry about multlib, but specify the full path here -+ # in case a distribution does. -+ if (host_os == "win") { -+ bindgen_libclang_path = "//third_party/rust-toolchain/bin" -+ } else { -+ bindgen_libclang_path = "//third_party/rust-toolchain/lib" -+ } -+ -+ - # If you're using a Rust toolchain as specified by rust_sysroot_absolute, - # set this to the output of `rustc -V`. Changing this string will cause all - # Rust targets to be rebuilt, which allows you to update your toolchain and ---- a/build/rust/rust_bindgen.gni -+++ b/build/rust/rust_bindgen.gni -@@ -16,13 +16,13 @@ if (host_os == "win") { - _bindgen_path = "${_bindgen_path}.exe" - } - --# On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in --# ../lib. --_libclang_path = rust_bindgen_root --if (host_os == "win") { -- _libclang_path += "/bin" -+if (clang_base_path != default_clang_base_path && custom_toolchain == "//build/toolchain/linux/unbundle:default") { -+ # Assume that the user has set this up properly, including handling multilib -+ _clang_libpath = clang_base_path + "/include" -+ _clang_ld_libpath = bindgen_libclang_path - } else { -- _libclang_path += "/lib" -+ _clang_libpath = clang_base_path + "/lib/clang/" + clang_version -+ _clang_ld_libpath = clang_base_path + "/lib" - } - - # Template to build Rust/C bindings with bindgen. -@@ -100,7 +100,7 @@ template("rust_bindgen") { - "--output", - rebase_path(out_gen_rs, root_build_dir), - "--libclang-path", -- rebase_path(_libclang_path, root_build_dir), -+ rebase_path(bindgen_libclang_path, root_build_dir), - ] - - if (wrap_static_fns) { -@@ -117,7 +117,7 @@ template("rust_bindgen") { - # point to. - args += [ - "--ld-library-path", -- rebase_path(clang_base_path + "/lib", root_build_dir), -+ rebase_path(_clang_ld_libpath, root_build_dir), - ] - } - -@@ -145,8 +145,7 @@ template("rust_bindgen") { - # make it behave consistently with our other command line flags and allows - # system headers to be found. - clang_resource_dir = -- rebase_path(clang_base_path + "/lib/clang/" + clang_version, -- root_build_dir) -+ rebase_path(_clang_libpath, root_build_dir) - args += [ - "-resource-dir", - clang_resource_dir, -@@ -167,6 +166,15 @@ template("rust_bindgen") { - } - } - -+ if (custom_toolchain == "//build/toolchain/linux/unbundle:default") { -+ # We need to pass the path to the libstdc++ headers to bindgen so that it -+ # can find them when parsing C++ headers. -+ args += [ -+ "-I", -+ rebase_path(clang_base_path + "/include/", root_build_dir), -+ ] -+ } -+ - if (is_win) { - # On Windows we fall back to using system headers from a sysroot from - # depot_tools. This is negotiated by python scripts and the result is --- -2.45.2 - diff --git a/www-client/chromium/files/chromium-131-const-atomicstring-conversion.patch b/www-client/chromium/files/chromium-131-const-atomicstring-conversion.patch deleted file mode 100644 index 52f746669b55..000000000000 --- a/www-client/chromium/files/chromium-131-const-atomicstring-conversion.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 403ee5b14df12c8ee3b3583177bbd30d930e9aaf Mon Sep 17 00:00:00 2001 -From: Matt Jolly <kangie@gentoo.org> -Date: Sat, 12 Oct 2024 13:45:37 +1000 -Subject: [PATCH] Convert 'Const AtomicString' to 'const char *'. - -I don't know why this is suddenly required? ---- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -+++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -@@ -323,7 +323,10 @@ void TextCodecICU::CreateICUConverter() const { - DCHECK(!converter_icu_); - - #if defined(USING_SYSTEM_ICU) -- const char* name = encoding_.GetName(); -+ //convert to WTF::String to use existing `const char *` dependent functions -+ WTF::String nameString = encoding_.GetName(); -+ std::string nameUtf8 = nameString.Utf8(); -+ const char* name = nameUtf8.c_str(); - needs_gbk_fallbacks_ = - name[0] == 'G' && name[1] == 'B' && name[2] == 'K' && !name[3]; - #endif -@@ -448,7 +451,10 @@ String TextCodecICU::Decode(base::span<const uint8_t> data, - // <http://bugs.webkit.org/show_bug.cgi?id=17014> - // Simplified Chinese pages use the code A3A0 to mean "full-width space", but - // ICU decodes it as U+E5E5. -- if (!strcmp(encoding_.GetName(), "GBK")) { -+ // Convert AtomicString to String -+ WTF::String nameString = encoding_.GetName(); -+ std::string nameUtf8 = nameString.Utf8(); -+ if (!strcmp(nameUtf8.c_str(), "GBK")) { - if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030")) - resultString.Replace(0xE5E5, kIdeographicSpaceCharacter); - // Make GBK compliant to the encoding spec and align with GB18030 --- -2.46.2 - diff --git a/www-client/chromium/files/chromium-134-oauth2-client-switches.patch b/www-client/chromium/files/chromium-134-oauth2-client-switches.patch new file mode 100644 index 000000000000..b7137e524809 --- /dev/null +++ b/www-client/chromium/files/chromium-134-oauth2-client-switches.patch @@ -0,0 +1,35 @@ +From 628c8aad603791ec1276c6a5b8d3704a03840f86 Mon Sep 17 00:00:00 2001 +From: Matt Jolly <kangie@gentoo.org> +Date: Sat, 18 Jan 2025 11:09:46 +1000 +Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials + +Google doesn't let us bake in OAuth2 credentials, and for some time, +Google sign-in has been broken. Arch dealt with this in March, and so +did we to some degree, but in the last few months, our sign-in +credentials have been broken. It appears that we actually did remove API +credentials in March around Chrome 89, but they got added back, perhaps +when rotating newer versions to replace older versions. Work around this +by following Arch's lead: we remove the predefined credentials, as +before, but also we patch Chromium so that people can use their own +easily, using Arch's patch for that. +--- a/google_apis/api_key_cache.cc ++++ b/google_apis/api_key_cache.cc +@@ -192,13 +192,13 @@ ApiKeyCache::ApiKeyCache(const DefaultApiKeys& default_api_keys) { + + std::string default_client_id = CalculateKeyValue( + default_api_keys.google_default_client_id, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, std::string(), ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, std::string(), + environment.get(), command_line, gaia_config, + default_api_keys.allow_override_via_environment, + default_api_keys.allow_unset_values); + std::string default_client_secret = CalculateKeyValue( + default_api_keys.google_default_client_secret, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientID, + std::string(), environment.get(), command_line, gaia_config, + default_api_keys.allow_override_via_environment, + default_api_keys.allow_unset_values); +-- +2.48.0 + diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml index 23780016b881..e5778b508d89 100644 --- a/www-client/chromium/metadata.xml +++ b/www-client/chromium/metadata.xml @@ -10,11 +10,12 @@ <name>Matt Jolly</name> </maintainer> <use> - <flag name="ffmpeg-chromium">(binpkg only) Use Chromium FFmpeg fork (<pkg>media-video/ffmpeg-chromium</pkg>) rather than mainline FFmpeg (<pkg>media-video/ffmpeg</pkg>)</flag> + <flag name="bundled-toolchain">Download and use the upstream binary toolchain(s) to build Chromium</flag> <flag name="debug">Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag> + <flag name="ffmpeg-chromium">(binpkg only) Use Chromium FFmpeg fork (<pkg>media-video/ffmpeg-chromium</pkg>) rather than mainline FFmpeg (<pkg>media-video/ffmpeg</pkg>)</flag> <flag name="gtk4">Build with GTK4 headers.</flag> - <flag name="headless">Build Ozone only with headless backend, NOT RECOMMENDED for general use.</flag> <flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag> + <flag name="headless">Build Ozone only with headless backend, NOT RECOMMENDED for general use.</flag> <flag name="official">Enable Official build instead of Developer build.</flag> <flag name="pax-kernel">Allow building on a PaX-enabled kernel</flag> <flag name="pgo">Build with Profile Guided Optimizations (2-stage compilation)</flag> diff --git a/www-client/elinks/Manifest b/www-client/elinks/Manifest index 5d822b1d34f3..8069f1174409 100644 --- a/www-client/elinks/Manifest +++ b/www-client/elinks/Manifest @@ -1,2 +1,3 @@ DIST elinks-0.16.1.1.tar.xz 2037292 BLAKE2B 05578eaa7a88f0abe4472b876a1f72645d32119ce807a61962f8d24a5b444240d3b94189bf25142c0e51e2d404d5992ace07ecc23ef1316d5f3942736b265267 SHA512 49e03ff4766e29b6fd4324d226e415ca1329a84d4a44fac40ecd72186dd104de88c3e541810a008dc6f1d1ed889a45edbef159cbc6ac3860756ca21261ffec8a DIST elinks-0.17.1.1.tar.xz 2001036 BLAKE2B 2158e7630e64977b5250d544159bff0b90953ef7d51870d5e96ce8e36858596e6341bf774ad1717ed4808859d4be316fe75587552e61a8bbfcb00a0366a85e81 SHA512 7ad78f7d6a43341ae252c29f0c338e466cbedf8b40aefa9fa1939dbc62a9c9307b0a423b17181fce3bce1364fe6b6bdb80509ed90719965de174c9258b90902f +DIST elinks-0.18.0.tar.xz 2078656 BLAKE2B 84ad13a1f374d85bb74d57fe905df4f2f1d062acb89a43197e0f0767cce3779749f4cee7ad15655fe35bc6545799b5f8264498f05a47eca6cb571541e3bcef1c SHA512 e0ff737e06d4b591d362257b9a375b938f9d6222cf6ee4df2065c7b47f883a5eacf76dabae8fc7c0b32cf9b7df56267752217d6999b0ae24c2482763b5b0ccb9 diff --git a/www-client/elinks/elinks-0.17.1.1.ebuild b/www-client/elinks/elinks-0.17.1.1.ebuild index 9b8c200b66dd..f231ab55fcc7 100644 --- a/www-client/elinks/elinks-0.17.1.1.ebuild +++ b/www-client/elinks/elinks-0.17.1.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -19,7 +19,7 @@ if [[ ${PV} == *9999 ]] ; then else SRC_URI="https://github.com/rkd77/elinks/releases/download/v${PV}/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-2" diff --git a/www-client/elinks/elinks-0.18.0.ebuild b/www-client/elinks/elinks-0.18.0.ebuild new file mode 100644 index 000000000000..0c212218bb7d --- /dev/null +++ b/www-client/elinks/elinks-0.18.0.ebuild @@ -0,0 +1,212 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_REQ_USE="deprecated" +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{10..13} ) +LUA_COMPAT=( lua5-{1,2,3,4} luajit ) + +inherit flag-o-matic guile-single meson lua-single python-single-r1 + +DESCRIPTION="Advanced and well-established text-mode web browser" +HOMEPAGE="http://elinks.or.cz/" + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/rkd77/felinks" + inherit git-r3 +else + SRC_URI="https://github.com/rkd77/elinks/releases/download/v${PV}/${P}.tar.xz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="bittorrent brotli bzip2 curl debug finger ftp gemini gopher gpm gnutls guile idn" +IUSE+=" javascript libcss lua lzma +mouse nls nntp perl python samba sftp ssl test tre unicode X xml zlib zstd" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + javascript? ( curl libcss ) + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + sftp? ( curl ) +" + +RDEPEND=" + >=sys-libs/ncurses-5.2:=[unicode(+)] + brotli? ( app-arch/brotli:= ) + bzip2? ( >=app-arch/bzip2-1.0.2 ) + curl? ( net-misc/curl[ssl] ) + gpm? ( + >=sys-libs/gpm-1.20.0-r5 + ) + guile? ( ${GUILE_DEPS} ) + idn? ( net-dns/libidn2:= ) + javascript? ( + dev-cpp/libxmlpp:5.0 + dev-lang/mujs:= + ) + libcss? ( + >=dev-libs/libcss-0.9.2 + >=net-libs/libdom-0.4.2 + ) + lua? ( ${LUA_DEPS} ) + lzma? ( app-arch/xz-utils ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + samba? ( net-fs/samba ) + ssl? ( + !gnutls? ( dev-libs/openssl:= ) + gnutls? ( net-libs/gnutls:= ) + ) + tre? ( dev-libs/tre ) + X? ( + x11-libs/libX11 + x11-libs/libXt + ) + xml? ( >=dev-libs/expat-1.95.4 ) + zlib? ( >=sys-libs/zlib-1.1.4 ) + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto )" +BDEPEND=" + virtual/pkgconfig + nls? ( sys-devel/gettext ) + test? ( + net-dns/libidn + ) +" + +PATCHES=( + "${FILESDIR}"/${P}-sftp.patch + "${FILESDIR}"/${P}-build.patch +) + +pkg_setup() { + use guile && guile-single_pkg_setup + use lua && lua-single_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + use guile && guile_bump_sources + python_fix_shebang . +} + +src_configure() { + # This file is severely broken w.r.t. strict-aliasing and upstream acknowledges it: + # https://github.com/rkd77/elinks/blob/d05ce90b35d82109aab320b490e3ca54aa6df057/src/util/lists.h#L14 + # https://github.com/rkd77/elinks/blob/d05ce90b35d82109aab320b490e3ca54aa6df057/src/meson.build#L44 + # + # Although they force fno-strict-aliasing, they do so inconsistently and not for the testsuite (!!!). + # Just add it again. + # + # DO not trust the LTO either. + append-flags -fno-strict-aliasing + filter-lto + + local emesonargs=( + -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} + -Dhtmldoc=false + -Dpdfdoc=false + -Dapidoc=false + -D88-colors=true + -D256-colors=true + -Dbacktrace=$(usex elibc_musl false true) + $(meson_use bittorrent) + $(meson_use brotli) + $(meson_use bzip2 bzlib) + $(meson_use curl libcurl) + $(usex debug '-Ddebug=true' '-Dfastmem=true') + $(meson_use finger) + $(meson_use ftp) + -Dfsp=false + $(meson_use gemini) + $(meson_use nls gettext) + $(meson_use gopher) + $(meson_use gpm) + $(meson_use guile) + -Dgssapi=false + -Dhtml-highlight=true + $(meson_use idn) + $(meson_use javascript mujs) + -Dipv6=true + -Dleds=true + $(meson_use libcss) + -Dlibev=false + -Dlibevent=false + -Dluapkg=$(usex lua ${ELUA:-0} '') + $(meson_use lzma) + $(meson_use mouse) + $(meson_use nls) + $(meson_use nntp) + $(meson_use perl) + $(meson_use python) + -Dquickjs=false + -Druby=false + $(meson_use samba smb) + $(meson_use sftp) + -Dsm-scripting=false + -Dspidermonkey=false + -Dterminfo=true + $(meson_use test) + $(meson_use tre) + -Dtrue-color=true + $(meson_use xml xbel) + $(meson_use X x) + $(meson_use zlib) + $(meson_use zstd) + ) + + if use ssl ; then + if use gnutls ; then + emesonargs+=( -Dgnutls=true ) + else + emesonargs+=( -Dopenssl=true) + fi + else + emesonargs+=( -Dgnutls=false -Dopenssl=false ) + fi + + meson_src_configure +} + +src_install() { + meson_src_install + + insinto /etc/elinks + newins contrib/keybind-full.conf keybind-full.sample + newins contrib/keybind.conf keybind.conf.sample + + dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README.md SITES THANKS TODO doc/*.* + docinto contrib ; dodoc contrib/{README,colws.diff,elinks[-.]vim*} + docinto contrib/lua ; dodoc contrib/lua/{*.lua,elinks-remote} + docinto contrib/conv ; dodoc contrib/conv/*.* + docinto contrib/guile ; dodoc contrib/guile/*.scm + + # elinks uses an internal copy of gettext which ships files that may + # collide with the system's gettext (https://bugs.gentoo.org/635090) + rm -f "${ED}"/usr/{share/locale/locale,lib/charset}.alias || die + + use guile && guile_unstrip_ccache +} + +pkg_postinst() { + elog "If upgrading from a version prior to 0.17.0, you will need to move" + elog "your configuration from ~/.elinks to \${XDG_CONFIG_HOME}/elinks" + elog + elog "You may want to convert your html.cfg and links.cfg of" + elog "Links or older ELinks versions to the new ELinks elinks.conf" + elog "using ${EROOT}/usr/share/doc/${PF}/contrib/conv/conf-links2elinks.pl" + elog + elog "Please have a look at ${EROOT}/etc/elinks/keybind-full.sample and" + elog "${EROOT}/etc/elinks/keybind.conf.sample for some bindings examples." + elog + elog "You will have to set your TERM variable to 'xterm-256color'" + elog "to be able to use 256 colors in elinks." +} diff --git a/www-client/elinks/elinks-9999.ebuild b/www-client/elinks/elinks-9999.ebuild index daa906d436ce..780dfce3fd3a 100644 --- a/www-client/elinks/elinks-9999.ebuild +++ b/www-client/elinks/elinks-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -24,20 +24,22 @@ fi LICENSE="GPL-2" SLOT="0" -IUSE="bittorrent brotli bzip2 debug finger ftp gemini gopher gpm gnutls guile idn" -IUSE+=" javascript libcss lua lzma +mouse nls nntp perl python samba ssl test tre unicode X xml zlib zstd" +IUSE="bittorrent brotli bzip2 curl debug finger ftp gemini gopher gpm gnutls guile idn" +IUSE+=" javascript libcss lua lzma +mouse nls nntp perl python samba sftp ssl test tre unicode X xml zlib zstd" RESTRICT="!test? ( test )" REQUIRED_USE=" guile? ( ${GUILE_REQUIRED_USE} ) - javascript? ( libcss ) + javascript? ( curl libcss ) lua? ( ${LUA_REQUIRED_USE} ) python? ( ${PYTHON_REQUIRED_USE} ) + sftp? ( curl ) " RDEPEND=" >=sys-libs/ncurses-5.2:=[unicode(+)] brotli? ( app-arch/brotli:= ) bzip2? ( >=app-arch/bzip2-1.0.2 ) + curl? ( net-misc/curl[ssl] ) gpm? ( >=sys-libs/gpm-1.20.0-r5 ) @@ -110,9 +112,11 @@ src_configure() { -Dapidoc=false -D88-colors=true -D256-colors=true + -Dbacktrace=$(usex elibc_musl false true) $(meson_use bittorrent) $(meson_use brotli) $(meson_use bzip2 bzlib) + $(meson_use curl libcurl) $(usex debug '-Ddebug=true' '-Dfastmem=true') $(meson_use finger) $(meson_use ftp) @@ -141,6 +145,7 @@ src_configure() { -Dquickjs=false -Druby=false $(meson_use samba smb) + $(meson_use sftp) -Dsm-scripting=false -Dspidermonkey=false -Dterminfo=true diff --git a/www-client/elinks/files/elinks-0.18.0-build.patch b/www-client/elinks/files/elinks-0.18.0-build.patch new file mode 100644 index 000000000000..87187a528310 --- /dev/null +++ b/www-client/elinks/files/elinks-0.18.0-build.patch @@ -0,0 +1,22 @@ +commit 7bce7c203244b0afbec3a916ef3abfbd4cea2658 +Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy@users.sourceforge.net> +Date: Sun Dec 29 18:14:47 2024 +0100 + + Fix default value for libdomdeps to empty list instead of false + + When it was false, meson complained that it shouldn't be a boolean + value, see: https://salsa.debian.org/aelmahmoudy/elinks/-/jobs/6836245/raw + +diff --git a/meson.build b/meson.build +index 69b7975..c0f7d3a 100644 +--- a/meson.build ++++ b/meson.build +@@ -555,7 +555,7 @@ if conf_data.get('CONFIG_ECMASCRIPT_SMJS') or conf_data.get('CONFIG_QUICKJS') or + endif + + conf_data.set('CONFIG_LIBDOM', false) +-libdomdeps = false ++libdomdeps = [] + + if conf_data.get('CONFIG_ECMASCRIPT_SMJS') or conf_data.get('CONFIG_QUICKJS') or conf_data.get('CONFIG_MUJS') + libdomdeps = dependency('libdom', static: st, version: '>=0.4.2', required: false) diff --git a/www-client/elinks/files/elinks-0.18.0-sftp.patch b/www-client/elinks/files/elinks-0.18.0-sftp.patch new file mode 100644 index 000000000000..d0e024b4a031 --- /dev/null +++ b/www-client/elinks/files/elinks-0.18.0-sftp.patch @@ -0,0 +1,22 @@ +From 22a72290ac41d27238a8861eea60b5cf3878b94b Mon Sep 17 00:00:00 2001 +From: Felix Janda <felix.janda@posteo.de> +Date: Sat, 18 Jan 2025 15:50:32 -0500 +Subject: [PATCH] [sftp] add declaration of ftp_curl_handle_error + +fixes compilation error when sftp is enabled but ftp is disabled +--- + src/protocol/curl/sftp.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/protocol/curl/sftp.h b/src/protocol/curl/sftp.h +index 2ec5a0542..5b42bccaa 100644 +--- a/src/protocol/curl/sftp.h ++++ b/src/protocol/curl/sftp.h +@@ -12,6 +12,7 @@ extern struct module sftp_protocol_module; + + #if defined(CONFIG_SFTP) && defined(CONFIG_LIBCURL) + extern protocol_handler_T sftp_protocol_handler; ++void ftp_curl_handle_error(struct connection *conn, CURLcode res); + #else + #define sftp_protocol_handler NULL + #endif diff --git a/www-client/elinks/metadata.xml b/www-client/elinks/metadata.xml index 2c7701cba575..6c05bbc00043 100644 --- a/www-client/elinks/metadata.xml +++ b/www-client/elinks/metadata.xml @@ -16,6 +16,7 @@ <flag name="gopher">Enable support for the gopher protocol</flag> <flag name="libcss">Enable support for cascading style sheets via <pkg>dev-libs/libcss</pkg></flag> <flag name="mouse">Make elinks to grab all mouse events</flag> + <flag name="sftp">Add support for sftp (requires <pkg>net-misc/curl</pkg>).</flag> <flag name="tre">Enable support for regex searches via <pkg>dev-libs/tre</pkg></flag> <flag name="xml">Enable support for bookmarks via <pkg>dev-libs/expat</pkg></flag> </use> diff --git a/www-client/falkon/Manifest b/www-client/falkon/Manifest index 60dbd1294692..b7112568e47b 100644 --- a/www-client/falkon/Manifest +++ b/www-client/falkon/Manifest @@ -1,2 +1,2 @@ DIST falkon-24.08.3.tar.xz 2635964 BLAKE2B 07417017ee93f598749048d331827904d2cb7406ee9bac5da77bddc720e7c3131f655b6cb6ef35a84db73e62a11f435d347841047371590d4a889e44946a2706 SHA512 1c6020d805668de38be95f9d63a07c5b6eafb200b6b181d59c791a145ffb8926c5ecf5feb9f46c5d69deb682692574b8a557271d08f945cf1a52c1eee7b2d55b -DIST falkon-24.12.0.tar.xz 2652572 BLAKE2B dced89f4a7d95bc97c7bfd60e42efca392c9d9b9d7bb87501e44df74b2cc1e34cd7fe1f86e80f31d70db986d0bb22089b58dd4955e75a386745c8cd3dd8cc6fc SHA512 5509c8e3c6910902bdc8237d8a71755b6851613150df1d85584dbb177d3ce67edfccc0273d6ae65fce80502aaef976c7e2d6dc1b3cee7b3a3f85fbb15fedf4f9 +DIST falkon-24.12.1.tar.xz 2654264 BLAKE2B ed9e70aea4caf20da69795997e55d44c4b9fe1c0ca40b7b4296195a0b602103131184c886bde7793b59822caae6cc315af380810eb30ef707b5d0b5a294a142f SHA512 b990f304f82ad5663f62585727b2eea7f2c7702d08c7a0b299f6890090f76e968cc9ba6100a6787e74d7d77edac0aafccc6792f08250613c0ece3f8c17fde448 diff --git a/www-client/falkon/falkon-24.08.3-r3.ebuild b/www-client/falkon/falkon-24.08.3-r3.ebuild index 77b5e21cab13..8583f3f0d916 100644 --- a/www-client/falkon/falkon-24.08.3-r3.ebuild +++ b/www-client/falkon/falkon-24.08.3-r3.ebuild @@ -14,7 +14,7 @@ HOMEPAGE="https://www.falkon.org/ https://apps.kde.org/falkon/" LICENSE="GPL-3" SLOT="0" -KEYWORDS="~amd64 ~arm64" +KEYWORDS="amd64 arm64" IUSE="dbus kde python +X" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/www-client/falkon/falkon-24.12.0-r1.ebuild b/www-client/falkon/falkon-24.12.1.ebuild index 844d7bd68ba7..46095f11fb25 100644 --- a/www-client/falkon/falkon-24.12.0-r1.ebuild +++ b/www-client/falkon/falkon-24.12.1.ebuild @@ -4,7 +4,7 @@ EAPI=8 ECM_TEST="true" -KFMIN=6.5.0 +KFMIN=6.7.0 QTMIN=6.7.2 PYTHON_COMPAT=( python3_{10..12} ) inherit ecm gear.kde.org python-single-r1 diff --git a/www-client/firefox-bin/Manifest b/www-client/firefox-bin/Manifest index ace3bb9672bb..f754e41f0e94 100644 --- a/www-client/firefox-bin/Manifest +++ b/www-client/firefox-bin/Manifest @@ -386,11 +386,209 @@ DIST firefox-134.0-vi.xpi 683428 BLAKE2B b734c15bfb6712a665ea53d27c6eadef985c3c4 DIST firefox-134.0-xh.xpi 421002 BLAKE2B d491bfa4f6be41b9403e13e0c1752878222a0d8f6eb3a7466e19efb217a2916143beedaab4512378811faf733d2ab39e9355e4bdd7c45333499be970333b98a8 SHA512 2c6005ba3716f6124a4baeb3210b2cf90ee9dbc51a1b3ace99dc1a3b72d3142c6b62d91363be17629cc0819aba23ebf38fbd53eb37b929e04231eac52436c4b2 DIST firefox-134.0-zh-CN.xpi 684492 BLAKE2B e0d23ae8493c56b890e1390e6f472cc6d8921f296f0b792fe7c4dc82c3af465597152ec41adbf819a5a775af8f2eb486f3a62c01de246dbadf106926dfe855b4 SHA512 71486999caa8e8a3f8b6420ebe97111855b132fe1f1837ae85af112cb5a30a6b264bc659060f9da48aa7c7745515dc30eb05e44b2ffeada09b5885e53231e443 DIST firefox-134.0-zh-TW.xpi 686751 BLAKE2B cca65375ac4d4569873a79d331604c88022b9ec8a19967d5faeba855aa89092830cd1cebb16d45aa8135bf38fbdfec53c69a307e79965a8ffc4c308ac617aa56 SHA512 18d9b8025eb99302644b7a2c535e750414e0f419886c4fefb517403881798bc66aa5084e3878b9e37aface79a624c725a62f3b00a89825ac061ff2469a704485 +DIST firefox-134.0.1-ach.xpi 468175 BLAKE2B 788b4c43d946082fedebb17be89e3cf434015c882655a5372dcd409d63eb7792ec5e10b1482ce5fd0b925d77441fa12804e4ebfc71a7d82f61d4b0805e7ec0e7 SHA512 e13f7cc1d3f7d27ec7e11a980cf89a767dccc7c4f35b464d27dea4ebce5ef781fa2556dd57b9c8335177165cdef11bc777ba21e361fe38cb771a31a99a1762f4 +DIST firefox-134.0.1-af.xpi 421160 BLAKE2B 2d7a974dd2862c6e69412045908847ef9725398d099169320da54b03249f9f2e56caef908a416f4e2ac4595bd1ffcb7636f156f8d06de7f4cc198c5de41e6e46 SHA512 99e97009f5a63210a1582712801a997d8dbba70b21853df6e9eaceaa52351df447936d5656b03c6b7072d824d0b5ae00b898b52e2475802eeb095386dbbc4c18 +DIST firefox-134.0.1-an.xpi 510941 BLAKE2B 8c161c455a5156992c5927bf7ad72742986a6018c514e71e2b8ff3a9207d86bcd80424c11e18692af8283da8ad8580337984f61cfdc8abeb190b3b2a3ad34270 SHA512 19b722c6fb8114e73bccf239dd08c8e184ba66fa615c5dcc8aae577f469248b85cc25b26050d0ca675c0ae3793b14d0f2d10b02c24d1d89959d0a03978fc155c +DIST firefox-134.0.1-ar.xpi 633882 BLAKE2B a19e83d00690f621e2bcc1729a981135e1a888935187057d6263b3d29b5959c4a7f842d0b566a733be15bbbb810bdc857fd7d589e56892bfd50f015a0cbc9855 SHA512 28114c4f7971dabd3e74bc22f052faa0ff151fd87a693a681217e4e4e15a912c1f6ebc54d4564f96456f666509127a0abfd7bb761a092487b62f1e8ecde3f235 +DIST firefox-134.0.1-ast.xpi 500078 BLAKE2B 1bfd6aaa0b1959c1039c1e3b9aa1212ee2bf94d07dee1d0b0e9a77d33ac4c83a58f46bcaac9039a2af6e2fe4a258c54d5478fb0e3211bb146764195eae8516cf SHA512 f39812dcdbe5641ce2e1b347bea72060e5d337d39d3133f2b272d3f743daf825aec187015fb086cdd57ead5e0b357ccc77cb9183d706f29ef1c37884a0549960 +DIST firefox-134.0.1-az.xpi 494905 BLAKE2B f417e13bc2d2152542becb6143eb7f4af0352d0a82171b729a5d5118ab934af46153bae95f1bad56665567e12dc01bebcd7bd6d5c727183e41993029572c99a9 SHA512 54ebc1385587a4ec21332e102aaa6f20ca4a4be4945540f2f3dcc2e2ab4fb12df7d6b5d8c5d3d5743131eaf0d30086bfab91735f211adb9a85ad872753c4187f +DIST firefox-134.0.1-be.xpi 744277 BLAKE2B 5fff8ea83331f397a4ab1828cf2fee3645abf897a6fbd2340e43e11e0ad8c42211e5c418e1dfde2e1e9452837954f04bac9bbb76424bfaa4a8f072bcfc5e229d SHA512 c1af86b6fd488da66c1d7bf11cbb63c45383b0e9aedc1c3bbd2092fab159248047b8e9e16be7d156b498652c52e745eb86866d9f0fabc8df72e0e72012b06618 +DIST firefox-134.0.1-bg.xpi 670911 BLAKE2B 01b8dc1038b7b6e9128958b5e739c5a4b3639807cff8df1b050359f2c3fe9811888c5c9370f647e7b3bbad154758a0e1f6b882b8afa51474ef157930e7cf04ba SHA512 8f9d8be21c16001c74fa19d627f2c2957d131dfbefdca91b27f002cf565038501bb0411828fe78bed2345868fb6afe6d674b2dc06c51dab8519081e8613e326e +DIST firefox-134.0.1-bn.xpi 615533 BLAKE2B 53b652f52a148c45ce7d329944eed7e84f00c93c26070e312d52312c0a1f0681ed547b8ade89271d851ff10fe2299d78272df512da0d4667c42fabef1e12ced1 SHA512 c676dd896b38358f798d721ace3dec428ef6be5d23284ec0dc808eed6e99cc740f602413d61a38033de9438986eb9e8ddbbf87c9ce06af3d4ae4273073e3bb99 +DIST firefox-134.0.1-br.xpi 598067 BLAKE2B 1261ec2774e698f450dc310eb567ef553a61c74a952a294561063e07488fad48df6f13a53ddfec5a167583d0d09f2a8b4bbd94cddf9fec59530fc2834797abdb SHA512 1c33a1bde8b0a8eb217314803b09b36d876d90cd5b539edce79b89e7751e3b50d6c21e8645cff75ed955d9fd2bab4df6df4e65582ba4b7975e2023d726440e81 +DIST firefox-134.0.1-bs.xpi 557253 BLAKE2B c28892d717b30aae7aaf7aea077197a307678d6fc53a0aad48f639357d61a3b93de2b370263dbe793f372fda644d7d539435bd9a232b990ee954d80578b04d39 SHA512 a7220eba676b0346ec1f2ca59dd84590182c4b908a2c8b886578a035f92b6c1d921f31f7083dd0f172756e6a182b4bf3e90c86ffb520a6b08a9cbf19378e1206 +DIST firefox-134.0.1-ca-valencia.xpi 550233 BLAKE2B 57d2fda6869373e843cb307884d3f4d63f3b7e9d7502effd2dacd3e7ce87d08611f8c4ca8882f2a2bcf0a0dfb6db66b8af8ce90fc5a58f5aed0b7def6bd7a422 SHA512 90f360c20371763990a90a958f4be72c34897e372ca2133312f5b3325e33a9163c30a76b1b3cd667497e3dfb680d2aecf276616ffe9842834957062895bbb894 +DIST firefox-134.0.1-ca.xpi 607763 BLAKE2B 471abe72ded5f9810f7b1d91b1f897772cbefa09c4ecb14d8cad38dcc1add0b97f229cca207eabf66989f06ebeaa9404185b46888828b45f6e7e295a194c265d SHA512 4f422d4d2c7800d194cf03741b7b9a51b53c14842e96a6358e6967040d3866f451ef977b1a099b32469b362b2704eb3349c39a5c0e981dc5c016c8eceeec3af9 +DIST firefox-134.0.1-cak.xpi 597763 BLAKE2B 551137974d12f5e85bd92e6e98b9ccb0ab021034c05ddd48885405610d78283fc923bc3bb9a93006cf2cd421e6d2b0049028671af8b5fd21fee85f6f3eeeec8b SHA512 e20e9320d6acb09aa99750c8124ecc657456bbaa8f55bf106a7105f7e6fc57b43a91edd5da4aeb9a7bcf7f4019c0e6e1f4c5d532f14efff7f517b7459f920f15 +DIST firefox-134.0.1-cs.xpi 688666 BLAKE2B 2cbebbe2d3232d528d53cabdda6302980d06c668519d749e901a121f5cf770b4b138f3e360f84bf7a36216cc254270368aa5226dfd249a62d11be141369550f3 SHA512 de5838393bbc6de2e38b142fa4a87d19b72e4233342436b7cc7bd9c7d9a4ce472eaa26b5a7bd4db4107f6e1d48536b29dc1ccd8fa69a7514cbb792fb2b2de4c6 +DIST firefox-134.0.1-cy.xpi 649379 BLAKE2B cdd5ba1d5aedd5851d255dfff6b921fb410d100b562640ff5b4933296e307dd3663f6d4b5b850517034d33f5818dc34856655a0379e7160342d7060818d59a13 SHA512 f7f630e45abbacab40e647bc88ba3d1aeeaf3c9c59f029c86264812713df0f221d33179f7d0f88a32e741d55d31cdb7c1f7826c2399a0c5b7f3b0a5955d7c9ef +DIST firefox-134.0.1-da.xpi 637282 BLAKE2B 8e164298378decb7ee8619099fb6f6dbce3ac154943fbd3d4ce8a626127dc2cb7ceaace59866b2fa923f48ce3c58fb9e055e27518ddc9b949b40753e99ad0ad7 SHA512 565f69bd98a0d5b921deae553436a2ac2e0ed72e04029bf1488d81a05d202729642e0e1bf93d6d9e51f718a9b05fd4f10da4aeae3620743fc5745d613b5dd49e +DIST firefox-134.0.1-de.xpi 661272 BLAKE2B 1151184923790742a50fbdb05b2477fca7404c2ad245d65c0ab8fe0ffa599cc3676cd1795da779bb60a16f6f76c0f520ef890d7eb776fa91e164da6803fbb7e0 SHA512 fd1dd3da2d952cb1eaf9f21f38a3f158a057249c4a2f7d761bd1d8e9a6453d4c50d494dbd3c81876693655c866cedac4204ab72b58174f07319a68de9714e197 +DIST firefox-134.0.1-dsb.xpi 678091 BLAKE2B 72bc98f77b5c4675f6c1631af4df7ab82a3d7d2807c6dda96f72b1c6be03b40e87fe093ba8d6486d04af78f67b2c4824555f8bab4c7598850201f8ec4975c862 SHA512 46780423beadeeeb8cd590886c29364be69e9a6886fd0e9238c346cb036f7b069c7d7c947f2e9c6fb9ea6f89566211057882093adbb9da252c364fb7797c46f2 +DIST firefox-134.0.1-el.xpi 760434 BLAKE2B 9fd7aca441b63d304e2c5d6ced84d7ce6dcd76000475171fb9c77be6cb9b8807dd4be9bb22efc74fc3744e49f38be02fcbdbacf4d92a3d5253cd8875dafd956e SHA512 a52d07337891d3fbe583651e24c91c378bfd1bb5fe1d6041c27b2cf441ae168a9ae3f5eb5d1d74fae25b719e908091aece73c415188ca70bb01c21b23815727b +DIST firefox-134.0.1-en-CA.xpi 607984 BLAKE2B d1a0d2e889d59ee0d7c006b12ca97f0c284f53563dabb963294981cc9c4462cf7d28d3d5bed1aa9b9ac999cec154e88967a59c1c596cdbb68358c89ba002abbd SHA512 bb0774b4d6fb47ff411b90ca0ab9d98ad58eadfab9123185b7f46bd7ac610cc5e2b0f4a2ea643b4bca10c2d7ce34ce2de5a0fa9548667a322c82eb4235a25ae9 +DIST firefox-134.0.1-en-GB.xpi 609115 BLAKE2B 362948f71c974bcdab609bf9516f2f98b52540fd0a790dc8109897c78360ddf3dcccf661167f986974d0d9f0111a023fc5b86f2e784bc1787621022efc6268ff SHA512 a93dac733809e4842d0828388e613cd093526b762507676ed147c08d20aab711f36431c8517c592f590761781e48bf543ff8c4a7af0c3792345bec1714acd720 +DIST firefox-134.0.1-eo.xpi 640105 BLAKE2B 09ab880f6a2d34f2857205d409839078f4a2c7126f45dabc94f1c06b657bbb9f94514260007b1c6882433621281ca229a7115fa8dabd04038b091a99ec25bf18 SHA512 c1b8d251f86174ca7807de476d0465e0ef92f76a3bc4b1f0baf4e5dc85727d0f75c5e534ed9851c7d2b8b670a0a981e825f6dcbdbae38072ffb1df2111d6ee1d +DIST firefox-134.0.1-es-AR.xpi 654023 BLAKE2B 4c1016c614999770a7fbd396bf17ebb8a0b87140cfdff8ae00108f8b5597828ff517692fb3521f69dfc698e4dc50ce7b80df9e3133f791c88ad7069e1a97c671 SHA512 5fa435a477224b2cd15a0f94648b9240d5e29da3102169cb3bd8098f7269c92566debab34c462d38ed3da7b1f77c942f29f1541e9539cf0a9bb8bc6e829240aa +DIST firefox-134.0.1-es-CL.xpi 653723 BLAKE2B 55a8eda049f5eb410a12cfe4ea09f486e9a0626b9a3a0e3f4ba3a95f930243572f595edff3b416c265c086d847e8b7e50212f506e934dd2faaea18b73ec5826e SHA512 251911b2690b22c57234bec301efbb7e5a85a894827279dd19c28317b1883e1e586c0074aae0aab0b726b06f143d19d8626d424f378d51e22e703a7c2272456a +DIST firefox-134.0.1-es-ES.xpi 648563 BLAKE2B 620d4736cd3e41c8210cb4319e5ce9c9fc8262bd599eb7c8585740a7f118a74c599a5f4a2592b4aa0dee2bc33a3a39ae0b48779d8d156e9d185b7914c4646caa SHA512 c65720d87b60f9f9d68078bfc5f1d0b9420940527ae42d43bcad9d74464b6eb35aa2cbf2cd1583e09cd7edeb930dbce5270b4b17ff2041bd4fbd58534a21ae7f +DIST firefox-134.0.1-es-MX.xpi 657160 BLAKE2B 4e8ee9b9b1bfafa2ed83ae79581f349f46acf0baaf0481976168b7414547c6e9736ac513de6e414a7fa25279c90ab651131e789fb7e36dd2f4c35ac04645ac11 SHA512 1a5e312dab7ec5cbd6f1679dd8b53ac4fc0d856ad458b1f762c358c2d2a731e7b753e9b6354a0ef369bac5d87dab661abfe603fbeb6da287e57affb3c634af4a +DIST firefox-134.0.1-et.xpi 546711 BLAKE2B b673824bf57de531f23c34ef8917132adc739f4da1668c34e8d075b231c42e90a0c2d6ff1848b63ed1b7a6bcec142af682186ee66aca601a42ce5ffb0cd58466 SHA512 0d2f9b5af88b640d25428cf6f189be31d98e17a04d57061a6321eef82fd47c3a566326f4e7098cc066e239c4f900016518dfb1e7cce258cd31eaf14672ffd78b +DIST firefox-134.0.1-eu.xpi 622843 BLAKE2B 1834e4d050bc6b400a0474e8064593254a9ff6f43eeec7aad06be98efd5a082ced7dd8eaf62575bf11d3dbe5aa620466d8ba35f89583c1fc2be919a4674b5c9b SHA512 110b7f787d8374e7e586ff6ccbeb9ec7d87cd5886e388a586e8d5fbf0617931f98705880ce4b916eeea6740c8f92fdc30d27a448b0a94b67c37052b7ff2be3cf +DIST firefox-134.0.1-fa.xpi 625170 BLAKE2B 34943c9a14758165c3685684e74dc19d381a5192375bb2ebf500d3bed5f62d8dd771bce500ab5d9d71a4c63765bf3aa30afdef496bd9708974dc31324c76b85a SHA512 55dbb1949d62e042e3ad17b77044660292889488a357a0f880c5b901982298a41899e3d5ce782506045ec5be4d53b0a99dd9d8c002d754c523c23a284e5a3e3a +DIST firefox-134.0.1-ff.xpi 479988 BLAKE2B 72bdf2767f69b94ea78e24e9991aa0a71d73c9f9ab1fce94af26e5292959109b8c0a8ff91b22642eb65c6d244d6aa85edc110f48e08752abea379a3efe4bffa7 SHA512 4eb31ded1971a531f19f6f3852bff48a67f855204956ae41eba137dcf43d5e84cc4de4282c3b7efe971e1013c4dc87d8928ea78148c5457b56417b1328a9499d +DIST firefox-134.0.1-fi.xpi 634175 BLAKE2B c28718ede4a3628809d7f9d77809540775a454e16f23a436ca22ada68d8fb75c28e0a39013ab9f8fb591c579c5582766845fc51f88a8c9cb65b15bb648c26178 SHA512 76d16c818beb8286fe4e633d20f5c0def02184f06773fa3bfa554fdddfa6855e4137d5691dea56d0df6c7887706fa4b59464f0dc8ec42d357f53ea310006a5a0 +DIST firefox-134.0.1-fr.xpi 667539 BLAKE2B c5edf355d8301bf0a4a245eb8ad2a543af2c12a2f4549e6cf6611514387c4f3b1dc8603a9c2d41cbcd690db46df707a9a584077b59285f4c5c118689ad6d1820 SHA512 82b4756b45effab7cd322869d3c0f82707b7fba8d79c154df3e748df1e04b57264a1b9ee6bc8e8bbe597c91d011e0b4ebb62877dc847867444798af0cfbd05a9 +DIST firefox-134.0.1-fy-NL.xpi 649682 BLAKE2B 00c39830cc589349b2e4aa92f24552d10a1df719d6273d86b2e02ba2c661d548914ece5371441c68ec6412086adf886f894e7797025affca93cec26ce62247d2 SHA512 b5fb3a7444ad8cf21ce6302642e23a6dea4025289a2d381b8fddb6605acfe3e69008c124f6995f634a1063dd5339b7edd6463cba3b4e6bbdfc447f3fd55f1eb7 +DIST firefox-134.0.1-ga-IE.xpi 474979 BLAKE2B 9fe63cd9e01f371803d0ce5afd0797016c24d17c742e47ba60c1a9020465103825d9218bbcc29053aee8a41dcc80b9f018c66d5b0a9f6d9016088d29114724c8 SHA512 0c5a1e62956e91d468dcddfe7f055ac9177cc1129f3158a99e186400ae62cca687b0a305833fb4bed240d42da3736bcd4727816b236920af6df7990e57797729 +DIST firefox-134.0.1-gd.xpi 603290 BLAKE2B 7d111ad363dc155d48761105bb846f3a0d815cad1dbac38dc398b2145a13af4c20a86f82b0ed160662f7157cbf1ed4c1307503884ffe9ca3265501a09584f8cc SHA512 bbc0757de6f144efda90c58b3a61281971fb854310f73e64b6eebcece81162cee81734830de4d4000b763fa30032ec7cc1107fbfa4204a5a2df5dcf40641447e +DIST firefox-134.0.1-gl.xpi 614904 BLAKE2B 5faa407f5698eceda380505156b7e7ecda69e2871ae3cf1ba46a1198d3ed9636c762178209cef8b1cc285bbd58f1fdd106e724fc91cf738a7cce073ae2ac542b SHA512 8a30c2ea9ed3e6b6f335f2d7d0e1f58ba8cbd6b58859ffbde90ddf935c9cb17f56cd17439169be10a226b2a69268ec96f934211b3941ee8cd2da9cd1335aa74d +DIST firefox-134.0.1-gn.xpi 661075 BLAKE2B d651686fff74773c3cdfd5d510d2dde2f666642c860b34610780c10cf66acbb938557700bbb1e565409fc26e00e2663b5c83edd2f308f9e2629fb5efb28ffc15 SHA512 a1c192261a0e5e325227dcfce712fc38d09e6f7546f74f82c229c3a16964ef5c0e8aa702303420394821eeb10ced49bf4c4fcf1d0e3494c64f91b13052b85904 +DIST firefox-134.0.1-gu-IN.xpi 531505 BLAKE2B 40d949467fd2fe93e99c7f496927b436b74cd0233af2d2c83efb06079aa2152b8006f953965199221666676c420b705057a30f827921b348d8e24e6568b36621 SHA512 f62798ba22e9163adae024de3349457ab4016edc1601c0fd1ff724b7c82c02dee8ef87fedd2265a1ea1e071ab7d0d72937523efae3d1d49bf15a7055b5a4da98 +DIST firefox-134.0.1-he.xpi 656240 BLAKE2B 39590855f02159d23f5cd8e60c940a4052a6f75be8045a37f678c99d877bbae9cb9efb1f5b05795b15ad3c2d0b3fc3d42fe913caf29af5dea703930a14f2dcff SHA512 8e8aa41eda57bdd2db844142fa49579edb43dde0d954fc78837dc9d4ebe3e3ad56142b6363c831409f2f0ba552c1d78014d06aa85c01bd4287b23a8685604696 +DIST firefox-134.0.1-hi-IN.xpi 570947 BLAKE2B 967cf67999796bd0be99befcc0afb425ddf13fa2deef026fad18951d402b3c321b1c4172b6cf5b108dee6813ddbbbc999be95ad11d375a5391576a5d0d6ce701 SHA512 c16dfdc8a9f178b39df53262936e39a2dfc3e1f53e208e2e589b7dbf9ba888c28b86814404ad798bc70f9ce814c2023d6ed0f238da263b173de987ce5660dba1 +DIST firefox-134.0.1-hr.xpi 633368 BLAKE2B 798befba32b265836933f7d19bcaeaa24cba8edd322b7ac996880f8dc4ab549bd9c53e002e68cb18f3ffc40953c4c4369944cabe00d06ddc0e07a35c8872808f SHA512 f2d230be6cb825458cb4e636095e74d737bf14997ee24f39a80c0882534df5af9a4c9702cbf45d86b7fb37b23c4627c7955fa56377c1d8a2478d73cb4e1fc825 +DIST firefox-134.0.1-hsb.xpi 674093 BLAKE2B 8c4cff5e920c63a394e0c393e5ffcdf2da24802a154fb9adda381ce15e802842d09fe6e83693b5401b24c92dc6a37861175b59a1d0cbb61d98fdfd6eaa589f6d SHA512 c455f94453e1cd9b730299eff59650ac304514ad241757c6ca895ac49db50018831fd901e0e508921677775e3777151310f24e667db4cc75a2924b3f1a9ec412 +DIST firefox-134.0.1-hu.xpi 678160 BLAKE2B 45810ebc540dd5796ca79eb4506df9b059f8abb9d832e0838a897d0ebd9fa32a17ab9e712fbaa7708a6d2a3b7e43aba140e54ff6632568242042e16199cd86be SHA512 120f50eee0b1e1219fd02d5d7d8057d0cdc519727aa319442154890b99b3ce3fe544283c77b8af946bd236edbd4bfc97273ec17aa4b6f02765083b501813c523 +DIST firefox-134.0.1-hy-AM.xpi 661668 BLAKE2B 1bf61ae9d99823097e1eeb4de17a521735c4dcb3b05c566c2bcb1cf755e1618880413a7030988b2b2420aba0ba212e36906e3e7097243189e64a5f4f484ff772 SHA512 dc8187317224ea007e39481a6c5872a15c15c0a21fed056d9f8ff5b3ee733a8f0619e6d988d0653edd6eac048305d88cc4bef8d3a45a54655ed454d756512c6a +DIST firefox-134.0.1-ia.xpi 636637 BLAKE2B 75b0cc092f632bad4e8b05e8455aa403373a4d41ae7cfc11aedda32a4e932b297101459d53e8cf2a4f8b1583e86044456d285be1989bcef1e9dbce1de3a5e291 SHA512 dec17bd540588eab7ede462a897e6022dd7d6d0d48c04101ad566f09ac77c0cfe004e209ce6518961b540ef56856251eb2390d73d91bfe3f781790801e3c9c24 +DIST firefox-134.0.1-id.xpi 620031 BLAKE2B 3d9594e939287dfda94a271b07e9d05fcabd26021b5e75d7b23d72c905e6488188afad09654865addead69f70e158156761732c6380ebfc4450067e0eb121a97 SHA512 dd7d8b978eb809d99be1ea930496270b5b0a728eecb0893a15c600bb14063e898fbce3424e261048fec6e193c6838d990630f7aa8029333dfe149484cc571e58 +DIST firefox-134.0.1-is.xpi 642121 BLAKE2B 4da6a20307cde66f5a39246d966fff223c9f112340c23bfca79747caace201753cb51e8484a770f2f78229e936768b7722ebfd24e0b00ec52a704fc8bce2781f SHA512 a5816e6169cfd2031429454f4f4ec1943a2e79dbcb7531dc3c131cd035c4901390dcb122064d6e7687d9a727d1059dfcc9173a48c0974051c1fce6e7705b767a +DIST firefox-134.0.1-it.xpi 646156 BLAKE2B ef69e5d790b476ae98bf2f9d3cb0fa27e2b8b9f54754f6f206b68922163465a707170ccbe673e91dd26fe9711d46b5b4bde8d99fe2b2ac0abff51f781d5a0ef6 SHA512 b45be9b36a93f21bf885d3c70fdcda2252509ee9b8e5c4e22e9278d168b5573741caa73226a57806f2455263b52a6e3bfa7db204e0ea461d5a47f533a7c5f73a +DIST firefox-134.0.1-ja.xpi 704020 BLAKE2B caa33493e15fc4a0faa044d7b10dea04bdcc722e95c7bfc72a0eb78f97a4551c9d397ea4afba086364c1052d98c5904024084cfe06e23236fe1d00d45ae0e3fb SHA512 454b05d7a9238bbd3c8395e1175db275729950553e31dcdfb9d728964d3053b2cabcd019f76d738454c06554c1aaa41ef0e8f9dd2db44b62c0ea191c31da46a8 +DIST firefox-134.0.1-ka.xpi 711239 BLAKE2B c4571dbf8ab7ae8a9c5917eeb5614641221acdecd0e23cb1567bcbe7927e4457248353c72db1a8abb2ab14e1e8cc9411c6c4dfe17fe86c98845872b2a3db6593 SHA512 2dea45cce48b936cac676883d27efc7378adb4729dc639036c12902956c8e6eaaaf2a91274216c3a6c7b826a00aad81fa82d00cfc596cb44b683525afcfb2e88 +DIST firefox-134.0.1-kab.xpi 626324 BLAKE2B ef543360e97676a3a6cabdb3136f160aee3d1c2000f4828ef447f87c9aaef349df4e68df12f9dcd7ea10ee05f5b0e6b1543200f55cded988af3546913cd1e7d4 SHA512 1460708b8772a3feb4dcdae5cb93e0ad5b5ec31b8b002312493079d294af729e643f5ebd98b868c1d8b0f00b84fb307c6c2c80d4ed0d4530b431164e878fe23e +DIST firefox-134.0.1-kk.xpi 734779 BLAKE2B 997bbeb292ae336cf892137f6247d996e9275ad178d4bbfe3ec436400a0b70433bb9faf6ca1db2bf2333ec723eaf3b062e9b5b3757603474d88129772c800cea SHA512 810f48ec04699b0ededac2abe79e4bec78fabfdde207b4cc18a9a4f770f5ce79e24dd2b35283709835bf61094309c171184a62b826924021053ecd8195872fec +DIST firefox-134.0.1-km.xpi 529766 BLAKE2B ffc3986397992b7ea52fcf734ac3fe750825be92a2ad316f60a63a0e2b8364279f01741f4a6de07d852a5e02710124814baa48040f14efa5d179a13193bb5884 SHA512 512552f3a0b8a8500350e48f8b95b08b6fbd13e197c2a1375494140c7108720f17673a055783bc0563d7f1f2db643ff74ccc8f3e5ce1e27e8558ba47fd56be03 +DIST firefox-134.0.1-kn.xpi 494780 BLAKE2B 9526039df0db78e3f3f91a286b0918c8bc64c01373ac59a6a3e9c0282b8455ea3329b23dc740d0f134e909c5ca3d7049526477c1490d0266a720fae7c84967d9 SHA512 20c0ea269b76a481df5c03ecc9c9db0354978b9d39bd9d43bd55bc5956298d8b56c1a1edde1ec3d6b04e9cd83da3eb9cc4ebfee856c207f959569c282611cda3 +DIST firefox-134.0.1-ko.xpi 688661 BLAKE2B 026baa4268d3752812e9174e828667586873da09d12ae5f83e4391ba6fbcfec184e36b2364b2a72674eb17ba7c3a4627b41270f9c69f8959cc2627be8f8d9b1b SHA512 ec01d896bd887aea151527d456c52819dd201eb98f8a5e5bfb189fe33163e5c6811382fdd380f4da0a78bae5bc20e07147fe285d971a449ea72906ce22591d4b +DIST firefox-134.0.1-lij.xpi 488308 BLAKE2B 14da2a82cfc53a9f87a568f4cc5b60e0d8f16b009c77cea776e05cdc4ac93f29e21d0e75e4c1f66ffa445d7e4ba02a4c68e8d1986d1514d05555d1738dc6e0ba SHA512 9f7a2805943b6b47fab323a5b258bdd2c9420955d48b9ad5fb9ddde64481feb1a4d540c47c73ec83385faf30a013c07bfae49c4cf1f2d7dc151767e7022f3b6e +DIST firefox-134.0.1-lt.xpi 577195 BLAKE2B 091011e0e17b9eed978c7ac7ce688521d2cc0ab232884d4912ff2e2464a0541b475ef94ef8cfa5ed80addfa85586d246b44031b5988d9f78a21f2beef2ff7c05 SHA512 374e5870a1f17c183faeb7e0a69fd8378b27334ba7e21ba421548fcf95eab71d6a1fe89f404a83ae5e8c6bb881db41d48aeb9c0aa043c8568616aeb22f894a91 +DIST firefox-134.0.1-lv.xpi 590047 BLAKE2B 58ea9e0aa3202ccc3c31c83be173d94f528a6312ce4e7213edb2ccabf1921de88baf35f4114f8fe6f2d1cb94e863b9ffaab7f3dd1dfb1e57bd6511c7ec7c5b93 SHA512 8537d86331d77221903f3a5445db1cc37546f7ddb5586421449adc15a396c5308548e908e8a7a4188b0f2f4581aa007282461331192d3a8365b76bce0b234fff +DIST firefox-134.0.1-mk.xpi 497207 BLAKE2B 509213b1283627c6ed7b1391d38f27e7f1a7a72f6221e8fc411e2e95175ca5747b4a4b88a0bedeef9d5a33a230a2c78879a841dce931f5c11bd672d8d1006293 SHA512 cdfae1bc8020fe9d561cdd1f7e0277b9f0a772d12514a8678f5f8ea96e20b649f8448b2d9e67ee2366c263bc5c72e83bd98d5bb20e32e559f0970fd26879629c +DIST firefox-134.0.1-mr.xpi 536146 BLAKE2B d50880231e938be54d44fed045801f7eed192c0f710d36c6f2fcb9119074045611140c8c24d8b17f118f609f976d62df839965ffa25adb63a93aeabea432d739 SHA512 2cdd92c32658545fdf41f8b0ae50658be644c4c71dbdbfaefc7adabcdb5e6bf4fa5a32ea2fa16c8af5af232c12bfcd7c68551c9f3093863d433e2e6ae58f1733 +DIST firefox-134.0.1-ms.xpi 453846 BLAKE2B d9e1443563eff6d1bb2f09864e42632e4eb5e2f794f462654f25d062d6ceb989480b520b2a8afd067f4757f1d35154349f4e82433ec8931b7dd37b8c063e05d0 SHA512 40f99116731ac80fd4fd49fbc5d5fbbfaa7860e9806aba308a01960e2cf098f3c50d301e1a8ed9162e88f6bb56d9ff01566c0d3f835adca7ca66f11a08d144a2 +DIST firefox-134.0.1-my.xpi 522476 BLAKE2B 65d6149824f5fdc87552904f4fc5f569f9bfd70249e38e8ef8a7c723988f0ab18b08db085fe8c1ea1baab3b92e2a6749ca7e7bc434d73dbb771568014eae3122 SHA512 6dba49140c2a9c6a5348f18378da6730ea354bbc3366e289a1af2a5d5a7275bb56a4775ab958d42124690f1f51ba547d41abc2e1172eb5370433018016f989c5 +DIST firefox-134.0.1-nb-NO.xpi 625552 BLAKE2B c3c85efe7902e9d3e49cb6a72da6860eee84c4d79351a999484c3bad407bca372aea475825f6f3360156efb8b0ccf82945dc1ccb61a2914612ba7f89a6df7222 SHA512 7e06651cf7facc1ab104dc4a75fc3e232601afe9827556481e0bc28865f8b47abb8b7328ba90a730b5e811afead62152e028db8fdd94a835b9a70792d3fbb2fd +DIST firefox-134.0.1-ne-NP.xpi 524800 BLAKE2B 0714bd61a28deada6e1d4097552cd5b67b6f8d0c8e8be973086eda3858f423665e2a0cf03ab23de00b77bd9bcacc780d93a4b15e457eeeb01447d2c40ee95769 SHA512 bac85169e2f70e7d5c358bdb78204d7d8b8b5e10003f9e6e67962cc38066f79366f00127187de2a131abe331cd998559b82a06073c24d6f13f570ec3a9a0267a +DIST firefox-134.0.1-nl.xpi 642843 BLAKE2B 4d692e5d0beac05dca50dd178c1217a2076281a8eb55802e6e95ce56f8a6536fee16fdd2cba8451665a56c808ac484c7472e906db5c264170062b6a295d3285e SHA512 fa01408d61a098e26177f5a6b15f70e8812d4aa69cb7cc1fbb40cb414365fb7feda05f9880d5dbf4e552a62b527f5ea089b1fe2c26e6504528fee835b431ca5d +DIST firefox-134.0.1-nn-NO.xpi 629834 BLAKE2B 4d7141b7774bf89fe9d6b46bd49fe1786921ae80604ca9c98fe872e18a0d118c43ce4c2ff7542e5892b90408b398ae3989528598455abfe41f936ea6064ca34c SHA512 31f5487c3de90a49464f45e0479f91442fc96d543a780d0381c3f88a33e13a0cbe39359fa2ef0162edc1e46c571749c8c09a212a96c3a0385ebdcad03e138cf9 +DIST firefox-134.0.1-oc.xpi 626180 BLAKE2B 968f2e94f341d0bf6fdb7d65f5ddd2393f0657e1dd1e24188a7642c7cd195c466910f5f937b8d8cbecfc8abc014b212e91be853559a4517b5ae144b0b3017b3c SHA512 00695e0dd5bea54332a288decfcdc45422bc20eb44b9e83b94e7c55de378dda22da2b23478d16b34744458d6db564ca022b63d90d724d000f8c7fae7f3359287 +DIST firefox-134.0.1-pa-IN.xpi 723077 BLAKE2B 053f71b2a2cd6ca574a30cfcf1af4e1ff7e08a8efb4d67908304230f88e477408c37576e9cb3aa1a22095aa3261d86e5bb4e597a74878fcd9f9562fda86a2ce9 SHA512 1c8ec921c5de189911c6f2c80d9ccac77b70c75752e43c4e8173682042cd104d9e416af065114cc8c32a7958cf3b470877fd8dbb7c59d2fe8ff7203d5731d03c +DIST firefox-134.0.1-pl.xpi 661730 BLAKE2B 89079300e7317e686e68b61d9ae0ae1c0360882f7f01933f102634635c96ba8897bf00f9ae4288b7246071ccc0e83338267061b1df0da098abf11b10d552da79 SHA512 ec4fa15d1b3719c765277df503ee6ea42e1949d37ee2524b5d6ae30307db0ceee86837ce992a008938601966c925e439f42dbd96f421d781d2ec66a48bbae546 +DIST firefox-134.0.1-pt-BR.xpi 647946 BLAKE2B e14d24bc7d3bb37633a19f8f4f73fde518837819f91f0d551f370004a6061ede536939e51c3204a27b00cb2b93d2ee33d773e7d481777ff0af8c13c509e887f1 SHA512 8d0c6c5252064d7be5eee30384a3d39851319b206c158b78ee6cce146335c78bc847f37743fa76460f893578220e9c598103249c6b323ed816b1986b32001952 +DIST firefox-134.0.1-pt-PT.xpi 654958 BLAKE2B 438c9ad7cb9e2099d43f7989d09ca2ef8444e428e11ddd2e3c60878dd75b1370259b5302462d70dc3c5e5a6e97dfa6122eacd99abf363b78a2bae03f42295695 SHA512 04bd15d670f40827b25a47321d03fe20deeb511e82423e43336eb23b932de32cc606b87ce327e2d89860fc59c7c768a986dec0e880129804e5e63ed2165082f7 +DIST firefox-134.0.1-rm.xpi 644065 BLAKE2B 15f0becba9faa5ec3b83445103a6396c4f18b3dadda9491e9ecb9167fe042dbd2e06da47d03eac7d478973ad1a33f3c9aa6c3aa289d697ffb39a629c75ee884e SHA512 6e7a0aaa8a4e784997067284124e9441701e91cd52236e121651bf4eeb8f846bb04396f6eaa72010ac35ff8dba58e1da360b8b9f2e6213ea0de1d85888b35682 +DIST firefox-134.0.1-ro.xpi 554201 BLAKE2B 70e452ba9951671e6dd79265ec14c9cd5c1a1b96fb86586c916560674809b8ca1fe069ea1897b63533797c38fe568c68adfda7169c0107f57618d61f5790da1b SHA512 03e38daa7b9027458d0993624161bae6c2db824ff0421858ce11a90e4724e6fda754b1b71c4cd09b5b10b3bb59fbb6e419011c5d6e14ea3ece402bc7debd32aa +DIST firefox-134.0.1-ru.xpi 750985 BLAKE2B b5e15f23836309493e20bfeebec3c5d364c3c33dda136407f006b65756b84aa4332a87b87c1fc6f3e2d073310fb2f595154121cee7a852dc73684aa63aa0456d SHA512 bdcc365a4659c3c7ccbd13632e93822572e4037d70f562aa944dad7b04811ac270554ee741bab77a16ee5bf9248b0423008f635c97eca2696ecdddace4f169e8 +DIST firefox-134.0.1-sco.xpi 515424 BLAKE2B ed5cce9dea2fd6ef9f12604db52282dc22f35fbe6a190cf6141245712205c8b5961fe0f04c06b72de3b4f8c855d9e5c0bc4e52956b91540e6f270a2b0e5c09c5 SHA512 d7a7e95bcb0753cb7697628b7229ef8a729d9fe32e3160d776842e6fa2dce2a34e76e6a63d89ccd86164b5c61b997898e44f5d30196d305bd5feb4f1e93b3a89 +DIST firefox-134.0.1-si.xpi 626864 BLAKE2B b6b9163b7cf77aa53a38cdaa22f382b4e2c244574e899dc2486f65d29746088e81c045673e7c66a5f44d69727f2f7124480c6cc13c4233c1bc8da4936f7a5cf8 SHA512 fd4b0bff150e04d402d7dc7730a95d254505fd71e500396986b5732b5adf121c40b77d1b6ee6d5e0450e240f12d359b491c85eee9381881b60b294fdd367fcfd +DIST firefox-134.0.1-sk.xpi 680478 BLAKE2B a4d4bea37c48c58d819539a698ddcb3ba78e05747dde612092ca3616d7c754ed96eb7830c592fe1dbad2e9a3c589f93a9e6c318c7142abe0a23d5e2e1793f434 SHA512 9e0b0a832691dfa04fb524343b156059df58bcf9f9bba424e4c8865dfbf5dcdd28bba82b2db5fa60db1488d41b0512969c154e5d66d666362e51379c6a344a84 +DIST firefox-134.0.1-skr.xpi 727787 BLAKE2B 361fcf3bc793ffbc035ee7e16855f94025aa380c2cf432783a584a783b53b00544ee0d3bdfd58646600f1a57c1605becbb7f61bef27acb60ff0db6feeb377bf5 SHA512 85c1d0aa771bc23355818ecae2249e7bdd9c48fe57856aaa356b9c0527be1bae8afde2a8c063776ef1fb56cd0c7bff9a88285339353c75fcb304b8f637189368 +DIST firefox-134.0.1-sl.xpi 647153 BLAKE2B 1cc065a6fc66c9d912096c0b7f795d562389885848f42aacb1dfbfb8c80b9049c0600ae126c2b9daab98726028895efeeac1c518607864bae7bee9f06dc51d12 SHA512 cacc3bc097e493850f966f2d651beef9f139ebce1161c247cab19fd8ba0b93643795235e7bce9240e912255ac0d42a344313600d8a6abf6d2b1722053f5ae642 +DIST firefox-134.0.1-son.xpi 420280 BLAKE2B 50c91dacd8ab84485133ca9aba6989ca105193809607dcba3b83722108c662a51bd580edbe90f2945231362427d3e5a0066aa2c2d12f02cea3c3c905134ac000 SHA512 5ac00b2d8968fbb9bb3c03ea0218a47c29accd3dfa6314b84babb6727d2e017d5e0d858af7f38c873c09be61c70fa97ca92cd8857e6225c3a84e4918a3fc1398 +DIST firefox-134.0.1-sq.xpi 665680 BLAKE2B 0cd71ccd45dd4817b3a39b20fda396dc7e0cdb05df30590227091c583e576c0473299a688bda58ae45eee8669628ae4c4aedcf88debef8d263a7392072c46f38 SHA512 d2486637ffeddfe57b27d6e5a696d1aedec6ab5824e2b401e3e9a57eae02ee34d18ed63e80997c951d8c511f56794dc0b9dfb5bb8cc5e0c2c9683d385bb0b166 +DIST firefox-134.0.1-sr.xpi 676500 BLAKE2B 4f335c0f542ca7d4f7e4e0218fc67cfaf30088a78b1681c517e15a55a279885f4e4813a720b1e87fbaf39c4715ecee3eb4e79127fbdf23d090b72c4c126ec0dd SHA512 7c761fa604deb8c72898cbde1f2593f09b543d23919ab1b4b006ec80f8eb23acdda521b18328dda6449ab40da00e13d230d6f530b193af8b4ddcf2df745a407b +DIST firefox-134.0.1-sv-SE.xpi 644569 BLAKE2B 51d03f40f61fab659f622df7626044b416b0aae95b6f5e29b792d0593c681cc931f97395999a11e6c2f6ba0ce22aebcb27c41eaf33a9ef4843a0e000674e1d1d SHA512 cacc53adc221f3ca66b03e3acd91b4b486f1df816e163de7514c04aa2b822b709c2cc572753b11f84bec3f4ee44c9b3f856630450fa4aa964c08be446639e2dc +DIST firefox-134.0.1-ta.xpi 511214 BLAKE2B 1473f6543931c5b045a05a32232c18d0aa3cfcd9836459bf346c5c9828946358ad98a5905c22762fcd6f470f0dd6b385234730cfcf9c87105b8d0a3657215cc3 SHA512 abc7dcc57ee6ed1a1e4ef78183cf17a4801437d9993838adc30c07115c592743343706cfa1c3c03e5b102dbb3bada26f9af41e06efe622430c09511348938ee4 +DIST firefox-134.0.1-te.xpi 575369 BLAKE2B 1e941acb251bfbbd9c497dfad0aaf20727455a5ca1ca20e913f04a744c91349a6c221aed669abedc2cdc9c1eff255f9eabfce1c1f183a7a1d71f18a4f25bcca5 SHA512 c432f53a30adfd8e33188af5851674a75c80f612a784c031aed7b77e5f12b0aa311f157e3ea22d42742e6ab96b411db57624326c516378e2295bb194d5c5a78f +DIST firefox-134.0.1-th.xpi 727726 BLAKE2B b58b778f7e8969ae9f7b624a814a1702283946239c85b67465fe3ea45d12d620fd3e41dba023e3837f41f3a95bedb68a4312adda2d1d599b4a3d0c24ae616251 SHA512 5f7085c7e6e1d3fd509d21539d1efe82e480bbb571d661748dedfc2550f25a21daeb1e5730b665f79759b6433a89274452dc38ac3d1784846a52f7d34b2e1489 +DIST firefox-134.0.1-tl.xpi 538547 BLAKE2B a411c7f6ef10343e11963a16e9303f16f239903b246f438c98be7e019fdaeb3dcaf1decb98fd4b4b2cb56921cc7fa87dd34bdc1f8d2d29a30ab43e0fd87cd84a SHA512 33755684f6c881fa4164bd710a988a9b9ae186ed2d987fcfab84351137c2f166b5732c32661cd9d9ca5c4c4ab180b8e6c6e93ae12e6e74aeb8be5abc325acb72 +DIST firefox-134.0.1-tr.xpi 656842 BLAKE2B 1667f7e399f9407130cc6b6c003ee86502aa5d7e54350201ab457b7e354855d41e01058beaf4ac0a8b500c6ace40408753418209f7bf653d76888d8a52efca5c SHA512 02f105c1ce0142c063c41abb41a3e89933cf86b53a9106fd6c48950580b318a3928bc746ede5b1efd6f09f690abbcad2fd47d4e5a4398475dd130f18a7e4c375 +DIST firefox-134.0.1-trs.xpi 507815 BLAKE2B 7695fb9055440fb411d3a14fefb9c0468ea6021fb726a910a79e0dc5fb6ccb1254492a091d11a67488cda194d3a176a426f42b5c3b5daf92ab294621069866ec SHA512 04f7913b61bfbfd8eca29907a56f2ea7afded4a7df892510b70717895095978444f8d3ee6259adb451aa1c57f9b2606b5d8d471e1295ec2219ae1c914a0a8816 +DIST firefox-134.0.1-uk.xpi 742087 BLAKE2B 16c52791649d5c23764694b852f7530bb02e8a959143c2891dd4ed90f6e95484930ffa7c24238065e0b33105b6ac9fa675cc4ec7532a34228d1ea0e890e2c0ac SHA512 5b2d0d98c5ab94304b6998f6d0a99a341db2d63df775c21bcdb181ddbba385b1c552a850690b7f8518f0a7301ea71ae5e394fc907b3632dee7446c7085a44797 +DIST firefox-134.0.1-ur.xpi 564371 BLAKE2B 680680c8b3ff393734f6cbd69a4474dc34748fa80124a9e28114b98f7e864eaa0356d1480d6f4b071c871704ac8472930142199ccad6a9086435fbb6d5608998 SHA512 e8660617e96cb4fb44d828f19a3350c78eec71595e57f5ebd6d8f16a2d132523debb6fdfa902d0a5231f7efad1c1fb2dd7e7b231fdb36b041f85983c10006750 +DIST firefox-134.0.1-uz.xpi 482821 BLAKE2B 929e808752c36b2970cf5e20de52818ab0d284d1047591645a1813edfd97cca455cc03da9bf1e95edadf5960809a73899279506369f3697048d2251efde2a8bd SHA512 8ec21ac0a20c3200c77acd371f0cdef717b919eefb9f3597c80f4eb67466ce09ad863c734c1c82c56d97f1fc360d579d59dbe1349d991df7ced56de025918934 +DIST firefox-134.0.1-vi.xpi 683427 BLAKE2B 0b9926c6ea07a0f43ead4201d4d639358f37c7ea5ce0950cb81320bd52050702bf28038b85604185f655779c8456d88960410b1541cac48d9b8f2d758031e017 SHA512 bbfe3a33e5784ab5bad0dad1e2ae9cf183cdc7e325613d42f28765a7b93631db147b4e4a0430a047248329ba025f04e388ffb636d960427e6d538facdf157177 +DIST firefox-134.0.1-xh.xpi 421000 BLAKE2B e294f811b4631e5f82a4cb5bd78b6975a57aca1e4d81ceab9847579823f6f38652551bd8df931f9798a5afc23ea6e70cd9a5e6b64f18deb797b1eb4b4012d15e SHA512 cd46448d84f973d38887d19d57a34e9bb049ba4f550d8acc901c67a0825460fd8970df1e2a88560f633234919840e77aeb29d39561a51da026484b783d2543a1 +DIST firefox-134.0.1-zh-CN.xpi 684489 BLAKE2B 2113c7de306fce3c07f98a2301bb9a86e4a9ff0b5dc4af4f1a99b08b787f71a99aca078fc0d7eb1cd86cdf04d46ae5b42f7fb0018bbada84e6e6ad9115de9e0f SHA512 beeea5e91bb502bd560b8100033dc922b51f2e06da01754845ffdc58c08b62154f3ccbaf6b71a4b12da8bb30da5ec2a63b7019c1665a881757fca7f6f8a8f2cc +DIST firefox-134.0.1-zh-TW.xpi 686744 BLAKE2B 77b3cc5fa4e33e2ff940599082bb741bbd0dd3d5f75ce1f9c3f77c8440ee6b7eaca575883215756a5c40290bf706b4580f9a7b4a9d03277098e86105424d3020 SHA512 fe9393f2b5ed97c24efb82181df81d971238440bc41f6f716f66a3359dc9d8b583a81af8c69b504cdf2ae99fa69bff53f8240293c126eb2b06130e3ce031dc76 +DIST firefox-134.0.2-ach.xpi 468183 BLAKE2B 91455b0dea7133afa08a028baf85c7af1152c668ec18d021c2c4b52cdd022a783fe6ff957cd0a0d465c68f2404ff32e269988baa8730e9fa164b0bb3ac590ea5 SHA512 28620fa421c375ece3d4557f8cf6c6e03af641fa2e37672cdc243b40e773fc9204bd8d950dc7570006bf55d941c3d26cf57a170c79e3e4dd9c0768562af6e6ec +DIST firefox-134.0.2-af.xpi 421167 BLAKE2B 08b0592f6787e4a24e96ae5c4bfbcbef2d9aeea236020133e975537bf62e3658114f83fff2a76fb6dae46e85f5f951bbbb64d22b9e967f755672015be36a143d SHA512 a1794da6b6e2f8db7092e6821bc943b103ba8dee951b9f3397592df72f24c923b9065013ad9a4daca4b85339cb32b3274f6b4d16d2e9c977c13fed9536563f52 +DIST firefox-134.0.2-an.xpi 510946 BLAKE2B 29ca8a6c28143f52f88430224b83042db01810839b662038807813d4c83b08b5e9fd5d89899ed09e0ea2c7ba5a6299fe4566e809451c0ad89fcfec1236323823 SHA512 db600a4c5f5535c88fece4a47a2b6e734b0b36fa575e09ee1dc5913462c56d88011c2a32cee6269ef2ebac0769f6f0af4807b7ca8cb86f1bf827ee40c8ec8aa7 +DIST firefox-134.0.2-ar.xpi 633887 BLAKE2B 45ff400fd076dd182de8320bac741bfaccec8f285734e5e9b74b045e3c5322e156096e1c4b290b204b22ba8c42507bd892637e3f5ac682d172982951b3fba33d SHA512 1f5217a22582ddc0de9b308a5202ed9501f0a46a16edbb7cac5dda5b3a7e30c2a89c6de6f526a2a5ffd90602d220df577e23d16fc91fae7d434651e9fabdd6b6 +DIST firefox-134.0.2-ast.xpi 500088 BLAKE2B 24a5e6a8d25ed3d6acd75bb4f42bd111b981e3bc053c36d204fe9346a4b726f264c6f2c6e60babf6f13b38b6b0ba854e4898ee4db7381a025553e2ccc3225bb9 SHA512 536a4cfb4125b03c4a78a1e131296f639b9eb1c5010b35f0f4bd83ecbca2777c732b6484f97a4204da404f3558f036453518996fa410b1093a8756f928fdc365 +DIST firefox-134.0.2-az.xpi 494909 BLAKE2B 1396f12aa5694db9259e2a336340bea9c6ce149388472941bf815341558cef15bb8c21e6238c6b8d9957a529e35337160e94a2d06dd99885d089346db48e5ba7 SHA512 d55196ce86cf7735e5c54006ac1bff60152aca55c99b67ac8778ab24db186eb6d7b7028967a643d264033e36b1cac25353869b41a9a114915014a04a856cf8e3 +DIST firefox-134.0.2-be.xpi 744293 BLAKE2B 9487c2484b456c2f654e3f663eec7da783b7a156553eba084f1df3acabbf58ed69677251d3f1dfe2cbe7b0bbac0144790035a6497fa47d8457b32e366c5e63b5 SHA512 eb9e39c7521668756a516570dc6eed4ec179473debcd48c5ed74d6a1ef03893b6f4086c1b2e1badaeb6ed477b61c2a9e5ff3a5022ed33120ec62f50cd8e37271 +DIST firefox-134.0.2-bg.xpi 670910 BLAKE2B 15cb1c571dd14259be536338fcab9e459f45bcc0c4af13a74453fd79b8450520afa895a1503e22665e357e43b0d61cf8f18bc464efcf4af0b3be0916718d9b2a SHA512 1fac3d9fdc25cf206ee4bcb0da63190d90f755f49f17544dfee7eb312ea53f1c397e35d71d365931e5db407806cee6260da57fe31251980cdafbca633878eecb +DIST firefox-134.0.2-bn.xpi 615526 BLAKE2B c1c21e1f36a807a566f83176421fb48fd55eb0936ae8d71150c5e29c76e09ba3f91d46ae416754ab7b289f9c06be7a69f348061370ed8e9bab96d71fd32bc7ca SHA512 3d766eee4762e1a8c820406f361c8a71278f84f602df323bf24d3904a72a39a66fd220f265e14844ebf255a20dc2cd7d932f38ff653d688745e09c7217914492 +DIST firefox-134.0.2-br.xpi 598071 BLAKE2B 341ced2776436334b5ef85427f138a78378c0f21c6f82c094bbc05af41d40d6bdf934fa5814e5443464d3e7fd86347f594d96e60b4274a38c33868e5a0abf26f SHA512 e030429a56df0d4cb1cf939c07be904a4dad342c8ea725f09bdc46af79bad0d02f446717400551d332d1873a3b7a29d7468df829274109010192ed0da1dcc8a2 +DIST firefox-134.0.2-bs.xpi 557246 BLAKE2B 45aa9f9a02cba0001996fb24ca06f162f478aa25c76303f09cdb7b948dad7e5a0941ef7a1acafcd223c94b2879eaed62dbdc89204dc37954d987148a576e9e77 SHA512 d5756568967d997614bb282f16752a9e31d867b65d58b98e1bdb4e314f098f4b16b39c646d4776faa17ab558dab8ff6611a656faac622d6365686948e951a12b +DIST firefox-134.0.2-ca-valencia.xpi 550244 BLAKE2B 22b43f335fb1e929013bd9526476b2e910547aa94f4405225ad3016e6e4bd214a5844bdb11b48d307575ba8a17f1878525c4fba871b9b16e77db0310962630c9 SHA512 ef1f4c5f179291872083730de90df2f1176bd29c8afb4e2d777c2a0049946f37a0319a58b5500dd0fd56f9a67deb49165a18f89c3ec61cad57634817e05eedb1 +DIST firefox-134.0.2-ca.xpi 607770 BLAKE2B f1c6051911fa9c84aace6d130d466e20488f34f962a1f0e2d9f05f6ee9890d5a4ab282c0de9500a013edc8a8cabf7873476fc387f76cb8e02b8cadb1102dcf65 SHA512 788b5d971cb7062c834898a1cb8b37908e84e30ca3917c526f978697721d1a0c889ee941332fc40a24aa34a59278e5db648e467662d440bb2514446533e948e0 +DIST firefox-134.0.2-cak.xpi 597772 BLAKE2B d8ea4ce4f08ba4e45ab38c7b872c490d7a1b85b4394abc3c8d3f72ab30a2e41cfe56836f5f2a2ef72349ccbb9140904b945ad725c7d655a032385435a7e81fe9 SHA512 75d3097873ff94553e4f0fa2e08c6de495b096a365be09d16c4d5dd28c8b0b6085bf72905faacb4ded3a72f473824a838e4f7466f8e1c6dbf2aa3cbf984f7c12 +DIST firefox-134.0.2-cs.xpi 688678 BLAKE2B 4613b877cfcd46c3956484fd231b56a0c23a816dff6ee0cd6e26de153b41381c3b0d950904da0910579dcdc0f073a3336f25de8a1d270336eba2448e5ea574e6 SHA512 82747ce8469b514aa367284e55fb79c022430276b394a56b76903b8784bd7c569093216cdf0ae922542aafb768048e7a5e165c45b21791f6bd8016d9ac90303f +DIST firefox-134.0.2-cy.xpi 649384 BLAKE2B 6ef3a13bbc34ba3cbc7f8be369c3a414a80f8d19ab91958349c6820c15d00b9a8cc2acc0e79375025ac5705f45eb6ae6efac6cf93794adb148981a581a431ad2 SHA512 8fe21142730e5c321c741cb214e5814580a38ae8ac8bdd6d468f24e138950396df6238c5f087db7e8e2ae9dbd5e68454b3b206659edad50633098253b7e73c58 +DIST firefox-134.0.2-da.xpi 637279 BLAKE2B 7565d0cd6ede4bc1a236666f1dc44b6c2115e954167f9154b7ba85cfcd365cd5d147464e8f2120c39f5ead4bd774209fa8fd8514495d3054bbb95a2c20a27516 SHA512 f5d99d52b7febb34fe5cd7a7334044855f74ac8a919d8382e4abeccd7bd60113672be8b0bd47ab31c764f5092d31d66f566bb217ae1ed4b9e7bffde6e8fe6937 +DIST firefox-134.0.2-de.xpi 661274 BLAKE2B 121bbff7df561b7e404b86ab7a74cb2149d25059ad48249b24aa7272dcf0758817498229099d95eccd44e04fdae51aac4c48df670cce4311cf6872522c2c9bb6 SHA512 86cd284f5c648fccdfe28771c2a9b06ce879864052ae5953c0246c763bbc0e749fa79aa19c00ff4de28a946569c0a921ea8d4851bbf19e45ee5cc9150eac051a +DIST firefox-134.0.2-dsb.xpi 678095 BLAKE2B 9119f2cce2193148d29063f9ac59e80d300270079c3ef28bfc7f7a578f3bc569c5fb0dd95223f9ca8288b22c0a4c8668bdec8b00887185a74e3538df3b53413a SHA512 199f80c42027ebf314180ee92c25f6bb4e6c8fb62287b7a67b41f15a9a1651bff680e35030a654a8c83c19c1cdd88724ea5e102b4d3066a7e236f2413467774c +DIST firefox-134.0.2-el.xpi 760453 BLAKE2B 1f471a7e754b8fac4fc9aafdac2c0c58536e1822400b67952fe6c80ed5a4d8ea3c531fbce704a153ea7367e351010eabfd3150bd0874f9ece691fa535b90aebe SHA512 100e5e21cac15208e3c5ff76c3b0fff2dcbf33b2d0c643c0ffa7e5fae246a8a6212b92c33dc63325f0eab18e923511fdab662dfac744d1ed304bb338efd3f47b +DIST firefox-134.0.2-en-CA.xpi 607988 BLAKE2B a38f9093d70522ce28e0080fcfdde6f201b259d833a3eaa86bc359b98c512ef150f4aa460c26e7dc66df215f50d1511ade196e8a9e5f82052e035499ed54f0d4 SHA512 4e68eabb1e3addbe3c709930723df8406a005ee96209078e2ab38d85db3e2237a760d5d88dbc76de7919f2acd323e548f62123bfaf4795256277e9959c2390cd +DIST firefox-134.0.2-en-GB.xpi 609125 BLAKE2B 13baf2846643d2e1365d9a2111957300c8642c78a3675d59e29da50fbd6ffc7cf2cc0736f117896b9b9fa3e07e7d4f950df823b92dfcde6f11f5e11c62e30942 SHA512 04f9a3c61c87490dda717c80ae2c4b865064af9e8e0f6f72426ea2f47ef12f730097a48c5aee9d42c2ee0929e958a3eef84a11de6f7fdfa2b62e2b8cc9c990e4 +DIST firefox-134.0.2-eo.xpi 640107 BLAKE2B e0af3b4a51a1d6ff021b552ac337d965b9bb8bb9e4eacac75fc5894c9f685dd4780876332ef86f74ded4543676fbd472bd69b7716d026cae1687c0ee4f3dd39f SHA512 7bf6cd4c901a9db4c873d596f4518aba219c7e347ded0546cb1e508643f5e4b9d145fe43db2b2c3c18b21e57bb221b4b7ca2eb61252d06cbb9e1df5d71fccd8d +DIST firefox-134.0.2-es-AR.xpi 654030 BLAKE2B 672ff2459977d08013fa39cf98588337078f58ea3ebba74a9cc13e25498aa31a061163e7a38423a8f3043e3b065b7c469d12ab5b6b96a5ce4ea6deb691432a46 SHA512 a68772f891a68ec7c683932859d1367ad96fbf167a6488629b93e42e861d6d4222ca9f723c9076481fc0765e50a1956c9128ad4b292fd736d95f24998edba8be +DIST firefox-134.0.2-es-CL.xpi 653727 BLAKE2B aa596062cf6ebc7cbf7a0d5ebd077179ca0ace4873e277fae77528be48199d3aba4e5b87634b9c06c8168a0990973daf49b291cca71cf68dca338f032d522caa SHA512 9e68c4b40ee9080b6c86f214eca9da736a4e6f1860188944fb60d4d99f353e8a93b744b46973b0e80714d64bb629b2ddd34ea95d4e375a67d747b169a1992883 +DIST firefox-134.0.2-es-ES.xpi 648576 BLAKE2B 8f9d4384b42d10933d99b23eb3b0e9b1b3da622325f9fd11d61fe9b29225048797030f453289a4eeb89440a98d8b76baf57cedf7c6bf76ae16031b790c132b3d SHA512 80f54a6531522abe30da8e2a0d6fc01a70dd3d573b2bbc99d80c409e02ca52fd51f4feaf5df4b11548899b09ea26bf750bb22c74e8643cc4b38537bf8896dbc3 +DIST firefox-134.0.2-es-MX.xpi 657172 BLAKE2B 65d7318c90b5f3e2c4093ef1b2b1e06b308b005fcba9778474cf17bf3534cac0379d3eeb14d6f7608c35f99a30d21e3b244297b801e51d86a35ec954ebda2b51 SHA512 aa6c12525c7a2fa808ffc48203eced3ae17f4d9131f85b3bb1240d8ef6ed67cc05db091b7d0c896622a6b662adcc035d57515dca091f82072c0a615022e05a4b +DIST firefox-134.0.2-et.xpi 546712 BLAKE2B 7f7d14c2a4f145684e43818c66836eefdad661bcb23e48e0415a46377bb8f320d832573fedb3b3e40d47489940d8eb5430a3999535afd3ae4c7f7c736c6ac205 SHA512 747b51562dd3de57ee5d0c115b244589c6eb300a69c74a6a5373f942a9e88f106abe87e79043922580b2523051233f52bb21536063255bd3f1217efd4d214244 +DIST firefox-134.0.2-eu.xpi 622846 BLAKE2B 5cc311e6e69ed1c618dea710dbf390e9be23a4b5108d9bc2167edf916e30637a6c236969c62f2fe7bfcd65ca8a8f12542e68fa79905e5d8ec6208b961f216b96 SHA512 d61649cacab14051df4bdb8c84a9c07d75534a1aefcbaeff42949cecddb3e936ac20ae87db924b3bb624ccef8cf09c58c4bde295bcbbcb5dc46387ee1090c592 +DIST firefox-134.0.2-fa.xpi 625173 BLAKE2B 8a83f91f813742b553aa2e0729f453e30a6ba63544a5a78cefce822b1d5b30bad27b0c97a4d16757f7d88b0554678f6a0e436826bd1fa0af275bd79070a07513 SHA512 4272de5ae5ab383412972cfce469b1149d28993e4e11d2637bb5dea281d70fe3b434f8565058c491cb069f185a94324e82e380d539a4443408332eeff23e0b99 +DIST firefox-134.0.2-ff.xpi 479990 BLAKE2B 7d9b9df4107b0060dbdddcb3862e34488b95a74a37f8ca89b8840f1a823b34a013c347c297e6941ce3e939a0706d4d92b78eebcb818facf69a11f9607ed4d0b5 SHA512 563a20402a591390a33b0f20da2752c1990f35e57a8d200bd188e877d99eec80f12febc2779ac26a72db639165500271463cd1755cb5dc97d0646785191fdb15 +DIST firefox-134.0.2-fi.xpi 634175 BLAKE2B 95b0932aefc452a2e9b29861ce6c738379ca248f5dc20a6ef17a42705637ce957011e9bc44b73ed1b9e0b17a137a06909299f5732e5e74856b0cc488b9508e23 SHA512 9ad86fa96130a0522c33b5bbe8f5a809dde0f2761c982ff14723abf10984707e707d9bd87f4e75efe4f8868412884f5537847fbc6c246b7309072089b415c143 +DIST firefox-134.0.2-fr.xpi 667545 BLAKE2B 76564df53bff5d1a01272bb460d6d91c79b5f78d9e6bca078e07955c4f4c0f116b4e7f8b7abad35f7ece426113c2ea60d223d831b2c397e7fa7b451f7378e4f8 SHA512 389b2b916d08358de46f9fbd60a2462c4d362a1a3db7af611ab16c596f9cc0b8bc52517b479cf78e42efe28c72768ae14d03296d964330679cd20aada0767b5f +DIST firefox-134.0.2-fy-NL.xpi 649698 BLAKE2B faf13b822920f297bdab3fb722307a9e87d5f5682595fe467318305120d92ff22ca2a8e749a600a104cef8f3ff64315b1a6a5dd95866ee24bd5de0a912cb204e SHA512 11a028ab6dc5ebbf0c6ab9f52b75f2ca59cfcaa47a9a90ab77d228c0d838a5102ae1d994c45d10dd9785ca020a7308a645ae45f2c0dec1f3f7d049593421cf0a +DIST firefox-134.0.2-ga-IE.xpi 474980 BLAKE2B 4e2f1835f9ce5136655f8e0ff1a7e598af38c08ae55ac1d2937517fce36040722daaa60c5de1894bc3d7cf8619b75948097d21859ee7eb09918dd9d6b5bc48b1 SHA512 dc76d77c1648a942c08dc9091c7b016e18b7a2c284a4f6bbf4e58651bb520c4de6319d61d0836b69a526b1e15478ad697da7d459e9eaf335d792794a2e59082d +DIST firefox-134.0.2-gd.xpi 603300 BLAKE2B ee7f7ea015f6e08e0017fdd8cf8b2a15e1d12c894712c5fa06aba0305300863d1741e6443a48ffb9a69fc84bfb3745a55c62fa1a1564d8ecd41739b12d03b5a5 SHA512 d7612b7726ff3bd7cca2df22e38ece666b6d94a6b575c8f77dd098f067aff7d85f087c4428ea9ee79490eed5162cb7250ae2aa109e3b92aa9bd49574b98c7577 +DIST firefox-134.0.2-gl.xpi 614898 BLAKE2B 69322faa162013925e25e00d684252e8ea453ffb5dc99272e7971628ea5c06ff0d45f039251906ddedc25ebe10103e1294fb2d9feb4f4bfa4609b14872467a25 SHA512 f387aa44a401007b7fa3da1edf11b3ba42969d92ed1449928991f604a889bf8d952d9fb8dde823b1f4a7ca2ac23009554e5ff06ffd477a04a66daf6ec2586d97 +DIST firefox-134.0.2-gn.xpi 661083 BLAKE2B 7e5fed42738b3891ab58f658e9fb38c16428b4ca79e57e2e661c12ea60ae03f9b69e6861c7d25af82eb45f0083fe296515421379c7a44a8ef9e47661d684ff3c SHA512 9b1edcd8510acdc8cce031b3753f6ffd65dae202fff987e8a1955f1eaeac7c494c5870b24678e052d565ce885a89f2f3aafc34b768f81efa92fa56c5420af7a3 +DIST firefox-134.0.2-gu-IN.xpi 531506 BLAKE2B 32da48c3da174c5dbc784fc289556b28de43a78e4be1e13f51baf9ad333d3248ef37e9af2e51932b13c31344d95be4aa1b95369a7acab86d7e9c443fe9045716 SHA512 3ea36f9a30c60cf715f2253448784e8a2cdc241ef6022c92333e92078aedf132b8932dc67e94d91458d46ea8a649fac4db54e0de510cc5281431fc05afdd0dba +DIST firefox-134.0.2-he.xpi 656250 BLAKE2B c1eab0002cb46ed5b4a938ab176103e8c98ddfa116b62499b90556186ad2506606b5189d88d5f3dd7f456ce4cdc00de6a4f05a3a279c235bea03af50ff351185 SHA512 3f203a678471a86ecb5ac9ade5337fa5df1a1f9f4cce5509b3cfa7e555aba52899283086922468d1c4fd10d7e6f626c6e1c60faee6cae6153a2db3948ee126a6 +DIST firefox-134.0.2-hi-IN.xpi 570951 BLAKE2B 2070be5756dda4f052dbf44a102a981e175d7ea677e3f12d059abe95908bd285385a96c6e7ec1178b964e5ebfac4ede72bdf9a46f70991256019059fa3583123 SHA512 26170c931087ebf07da2a4d9b047dc28e671b0d0edaf686ff316a8dbceac75155b3baeaa7cd95023596fc1c6828b24f140d8b5777e603ddfe9af4cdd4148d532 +DIST firefox-134.0.2-hr.xpi 633364 BLAKE2B f2b25071146afe6a855a49f69834253d1fa0e7f293e91b05327cb3e39a8aa677379a302b063875d1a798971ab0ddb2096525243c2c92abeffbadfc9cfbf517c8 SHA512 14cfd5dee97851fd66ace3c8f783023a3e1f15995c1d1bc33a1608b0127533d142926aeb1816fa46143414a20e25d8cd26a32b6e9dc0b0f43d950aaabf775433 +DIST firefox-134.0.2-hsb.xpi 674094 BLAKE2B 6946a02e5206db18b7e7858ccabf92c8ff89bb19b515945bb3ab37f32242ab8794024bef63c37ab0b6d1254bbabf355ce85bc2f3f31ac6b784b97b39f66c835c SHA512 5ff6d30ace7065540c177e8f593df1b0084812223844f12b9b2cf01929bd0deb2eaca15b8c73d6fc98e8990fd1e5d7bfe67f91659ac88b5310cad4981dc34d3d +DIST firefox-134.0.2-hu.xpi 678171 BLAKE2B b2de66091fb9750ceefa589cc816dc86fb15ac050144d2900f226f41ee9321eee741290bb496b3a222aa1b0c1349521fdd27e7a0cb3310b1b69ade1b561676d0 SHA512 756bc161ea6debf018ef1b3689d56e2dc14cadf3e1a297481131d16a5a0d16be7e46dbf30964df8042c727af6ade87b9a0f4f85fc72a6982e72fe42b8648ff4f +DIST firefox-134.0.2-hy-AM.xpi 661668 BLAKE2B d0629f388ccd7eea29b7a62c15b2869f60eb061808e12f67972c3cc94c114d67cafc5051c693506d72ed7c5e4558b055866e04dc2b5780b36606f6a3d70aa043 SHA512 95cb4e2e269b7fb5b061798713e53e6756882df1a522767c5546c7ea022e2da5fb388580398627f83ee7ca38f2879bc2d7b78e222172c881471e509bfe218d5d +DIST firefox-134.0.2-ia.xpi 636641 BLAKE2B 0ad7121b94e38d1b87366cb76ce922c1388a5120cf56a8732c5b3e38be748d70f7ed105e4557fd1c51d27e3cdf32579b1bc1d6b0ec6dbe08cfd7cb6afb9c414d SHA512 d4b50fce3087c9bc86172e80f61af1c49a5726d82e4b217473c011d7d29a997b8b98d101c0f7c6ba59b968ec82d0be33383fa23fa04522a13e447e12917f56b0 +DIST firefox-134.0.2-id.xpi 620030 BLAKE2B d19441f894fa01bfa9d70ce0ffc22ebf288106a3c5316a92f7f1a4253765e4ec34ba1b112e4900446b89761364e58f7ecd1c816a1fc944bedd5ae578f66cd356 SHA512 f9f585e99bf9f09957f92deba6c7131767a9379d5770e776acaad1bdd170f6fcb5f8d91a50ada6d777d307ebd1e7e3648a09d2621a2dfcb90496851929855a32 +DIST firefox-134.0.2-is.xpi 642113 BLAKE2B 1650c60e471026f224ea44938f5de3ec347a0567e2262a3b592cd675e6127268e38bf9a4812da817e53abbb9c45d891cbc3e445f20bbec73121e94b956d59835 SHA512 670276c003825ee87e2ee9b875b3cb65c7b681af17e3371765f77fb257d2ae768f6e72f58a05caae13e7c686d4abee62cf358ebcb31bdfc4ccea395019d9265e +DIST firefox-134.0.2-it.xpi 646155 BLAKE2B c3a61b0ee00cffd33a1a4cdd151925f130937eab32abd0fcac8d01ec16c1d22d4451edbfbd171cd8d37d443ced974c30e6359907765ae44043838845df6b589b SHA512 47d05d3a2864cc16ab798f9fba75ab60f7f84972b0a8d6777d7a16ada927912eeff5f47505ab0318d177adf5a06dcae066c38d612c50fc161977aca42b5657c5 +DIST firefox-134.0.2-ja.xpi 704020 BLAKE2B 21bbb707fde92fd102c02e05887d43522a6516cdf3828d4b8944a0fd285650dac73815bef11460e351dda3f033d6fe5f8fe3e22a938f7b9ae9a4acbeb23001aa SHA512 1630e3a3ab7fce57b326313948088afc16f9d078584b62f3a086d41616dcf12fe4c69a717964b315a19c8599ae0c4c6b3fedec92cebe4fec2736956a8d78fa09 +DIST firefox-134.0.2-ka.xpi 711237 BLAKE2B dd0113c3d3d31be04380a249458c1deaf436238d3613100f46a722cf4c9ec7196921959820a57fff35c531a09366d719d6cbb7bd5b58d14ead19f3c6fb810d45 SHA512 99823fbf10be1a22d40f809d6f176358666e087536c249da17b5febc0184a702cff3f3c6daae9116eacef2b24cf84d7e20c127809480c0971c22cbf4992ee34c +DIST firefox-134.0.2-kab.xpi 626325 BLAKE2B 4a6e407a984e1c67c9807e6064872fca46e98db8995c3f7f0486d11ac6e5cde12dc19850868971ecb4e16e250548284b416a03af40c337f91aa60650382bd8e6 SHA512 0a536b59d7e892d347b2bc50c83fe24795d36d2d187cad8866a7cd11b8d94aba8796f1d033372a4d43817efdf61881ef383fa48b96e3918e89aac1f461eb6d81 +DIST firefox-134.0.2-kk.xpi 734771 BLAKE2B 3ca4504c41e83efd367df9b8fc0322f6b4c56a90af0149486969ed641a9a9fa29afe6c8e8f6576aa41c5515a3366ca502c7319b3c08baafa9fca623ac051c66d SHA512 a5750f94a84ec6e54e5d0b9962be729f3f6c71f3926b5bb48cfbd881013b734ae3afe94863ccb2a290ba593537515ded16973320d04143104a5abe2181fc3162 +DIST firefox-134.0.2-km.xpi 529767 BLAKE2B f1e01001e37ec62f75a999cd0b9de498f5c6765174bf42bcbaf1b0dbc52fa734f8e6c2673a5d1f439ddc65b945f7ef1f045b9ef4dc05f744e1be7590f9ac6b60 SHA512 a60caaf040a14ea072aa25b2165361f87af0005731c594c15dd05e7abc9e435e76575a51594a1b8d0706905fde23b5bd780ac9bbdbe72d8dcb326403da8cdf11 +DIST firefox-134.0.2-kn.xpi 494772 BLAKE2B a64a6320bc280805c7d2177d8df97061dbe56410cc1157ddc9cab78ecd91ec948ccec2eff611e623f2e70dd43821ceba07ce6c3939ca6255384981925e69008b SHA512 9db4d0d538d091217c6f8dd0d8bee01afcf3f98aa2197055222744468cffd8cded43d53b702dd4d8c62a7ccfb57c1f3a6abde473d58bfbda774719f5acdb368e +DIST firefox-134.0.2-ko.xpi 688667 BLAKE2B a460fe1b491db2ca958ff81053c3fd1f1865f20ceddae3e5a318470deb5cd16cc566dd0b06427b7db28467b122cab2462841c467fd88aa6edb6590626008ed7a SHA512 d3eb1a9f32a86bc2898240983beec368b5855c529d3eb5ec39616f60ec531ab538dff4a8ac1bfe0f7822b898dd27ee73492978de360057c5a10915ecc4d7ad70 +DIST firefox-134.0.2-lij.xpi 488326 BLAKE2B f1c72e8d2a1c4ce715d8a88ade1166dc2871e547dd4d6b0b03cd97aebfea7fcf3ec90bd97cd5d80bbf72ee5f9ce311eed86a41a3e0c5ce3f4a40b22ffc432f01 SHA512 3252e2db8e744075aad460a245a4bffdea90963f32b3e1a44157a752fb473b56dccf1b25157312870b3ffb3cdbe1b0fac0c12b987e3a25ac999dace5fb714f1c +DIST firefox-134.0.2-lt.xpi 577197 BLAKE2B 9f3b73599d8290f9c002e6f25aec7957603093f7f0a1fa897915a08bdffd4608d0ded77a6851e2a5e9c0910037b37847796f14891eb18fa3f8547d11095f56d8 SHA512 62ef191c57989fa58389d512d3bba0523c105bb6450f3965e4405ed862d00d21e4761c9d90f4e8b1b712e04e0178fc0dabe56328e94c657c90e006690950f480 +DIST firefox-134.0.2-lv.xpi 590048 BLAKE2B 9ed8da5fdc57463a2b9cd3628b297d36fa5f091a1a4f26122728ac2125cf0b8a5d30aacae22289fcc8e8a751471bcb3ee0ee50679f6254e52aa20fbc23ef76ee SHA512 11696c0ccecb557d71d96130df6125c4b13b08200412aaf36f0a64ec44b5b9959cda3da9dc88b8630df5099e5c528b99eba150b97a8f526271ef657b6275d368 +DIST firefox-134.0.2-mk.xpi 497209 BLAKE2B 42e2aff8e6717830b95f572ddb009624214b75fab977abbfb3b614bc0ced814aee91afe162df8d98c555b2825c59055c3b658ce19e97e1453e8048960e468722 SHA512 4a1bc08b54d00bfc05fac6843c72648dfa130b0c6666087d62d944de632799c7dae9d46042e34e5855cd9713f8ebee83c2cbf0bcd7825086ec4456f025a56255 +DIST firefox-134.0.2-mr.xpi 536144 BLAKE2B 4eed7afb68feba320e023a13733acc7f24b4833480b5bce429c9ee25d8b5b3110d61b84917fc145de05f12e19412d13d80ca9d0632c995f9a9954e3fc4ede0b2 SHA512 21a052b0aab09ba2ef83231a46b67c179e8a3cf2b47e4bc913849d40e11109bfcd90805b129778cc5faceaed6b787a55514ca8ea155db063011ab8fb82e832ef +DIST firefox-134.0.2-ms.xpi 453844 BLAKE2B 1a18ab8fa4948dbc26396f2b3649334d4a95916b682de36754fee8b5a9478247de9ed4084808dd082c5ea8843e2d5cc906d84a867a6b68d00033477b8f16812c SHA512 4b22c1092adf696508d45e396a334debee949679cd4e4f745ec32c3927c703bc92c8e463b09f99c84c6a5b4f8ae7e50671843b2e5d160e54b5cd74d3b4569d2c +DIST firefox-134.0.2-my.xpi 522472 BLAKE2B f9356284b54fbfb432a55ca6f9e66150fdb9fed71a94866a7d3c37d5def73fc27bed6d5ed9ac367c04e8ff3f981ab489be08a70c615a6d2e7022259a6650b619 SHA512 eab10e0b8563f223ec3a19160cb6a095fe1f85b544d3df119964446951218a22585aaf7ac0f597e1ae41146b009fc59e6f77609ef47eade7b684861a807790b9 +DIST firefox-134.0.2-nb-NO.xpi 625557 BLAKE2B 51f8d44e3a15a52a7bc63d29e38d715c7c13bd781532c80f6903dbacf9607bd4e4e4eecb1f21fd58c4839a75f147d32144137cb38632ab585ad4907866a9d8d5 SHA512 17ffea7c83f88aee8cf0859b12a27de016bf2108be0f514dcc60296c1dfac7732bf286f907bcd9f671d17bee08a8d6301ade164876b2a7693fcd577aaa70da7d +DIST firefox-134.0.2-ne-NP.xpi 524801 BLAKE2B e7ffa1b0fcc78f6c895ce9b9338ea8478ad61c6cdc89da77e048fb44edc3a77e4b5b70202a32d7c1f78e7b2a08503a259e0155ece02fe4364070a8cd2a7b273a SHA512 3bb166bce1de86f2d63ae106aaa38365efe5a3d7296d1495bddc7c6e408d3530223d6323826aec6c6f0c8a56f614b2401b13b2fec783fca2df68dbcc5680b99b +DIST firefox-134.0.2-nl.xpi 642842 BLAKE2B 7abe0316d0225894fe82eae71dfd4552b7454f9cce8d67e5d4e3a015dd4d97b958fc0ad65b4c45ea671d0bf3d60d4a007969145ce1be546d1989abbee6046db9 SHA512 19c48cc4466a7fab770a558967d48012d3b8524b7009cc1031b8ff65ef2215f03a4db97a2cbe0b8f7e975d10fb5d737ddfc7c8e0adb0d334cc252c81527c1e40 +DIST firefox-134.0.2-nn-NO.xpi 629847 BLAKE2B 72347e2c0dc988c32fa03634b7060e0edf4e68ae48b0c4d141713145cbec14b7b7f95566b4b2c6f348b0db7d22f0af4143fdcecd2afd256f7e4bb75a54b0bec1 SHA512 25ea6c572de098a03e977dfc43cc1d5eb5b0b6f01558fe19d9841f315e74c35362f4a74a7e52c82c5f9abcb3ba34cfdb6d208291fef0ecee0ae5d2355b278a36 +DIST firefox-134.0.2-oc.xpi 626184 BLAKE2B 9bb0f6fff001d5a48b8da9ee57982e41dba5a1839337763701cd3478925a518c1c232fc3768751340ee9028733401ecfb9caf8139ef152d058cbd2c63d325708 SHA512 b8541481e6502c4d21b910cd2b82afe6b82ac00cd792b3fad42544a9a85712d553473b5a647a0c54fb41fb50a9d4f8d40127089dc702612053d31db8f4adf3a8 +DIST firefox-134.0.2-pa-IN.xpi 723087 BLAKE2B 98c4db6d88f73969e6bea7207dfc44b44ad6486afa0454f4023f49341bbce3bbc6e91085d9ab5abad412ba81c6082efd82950744b9359898911e633b29f7423a SHA512 79cc7f20d3c2c3137cb8c9d6d3ec085eb72c1b814b4167ff6dc3c1092b9e212bbd4462f211d2d12702fd52ee7ed1bc5ffca4edd50b74f3b977facaebf27424c3 +DIST firefox-134.0.2-pl.xpi 661727 BLAKE2B 8c188693e8826a4e7a4b3ec1a66998274b704c9b5031ed97d604d756c99cc5e8197e3dbbab0e820701aeed71cfedca7a54a031e21a0d21c3808ee46bfc58a56d SHA512 a920c895d696f9e684551c3c33be2326b16b05a35d9e97c24cc93f957336f7842db9c833c1e42402cf8fb84e4080a677f8087a3edbe8220b141b6f7c87f89668 +DIST firefox-134.0.2-pt-BR.xpi 647959 BLAKE2B 64e241fa624eed060dba10add81d63c32d54b8fe0c927ddbb4d8568af6db5efa6f8f21e703900ba7b8159aa1ff53ecc8ac4afb7d714c5b0c039f78dec226790d SHA512 c13a0bc90c230f64b961f2d9c40ef884596722ea04739a3da6e90aebdeaa8deb7b5dc2c0112aea6d62c60e8f34f7d51d3ea5050af2eda2aecbb91bc807a046a6 +DIST firefox-134.0.2-pt-PT.xpi 654966 BLAKE2B 84baddb4e46c48f98651d61480b3e609371cceeb52bba684c37f1da46af61621743d440c802dfdadf3ce597af6d915b8c358a578d73b381c3f82a65b5dc788a1 SHA512 31788b3bc476f6019ada36486ad90f3e476b1c6f20d6ecde2333c19956a8761647717fd037229c4aea02454bfb5b8b0926eae8e76d64e24ae8f2c5b89412f582 +DIST firefox-134.0.2-rm.xpi 644069 BLAKE2B 971efe6bc012c621fcfcb0582ab2dc8b3471a8b0fbc4ba7a5082ddfe8be6048e53452950d0bc7d5dbe40592c1e715194ff238a7d45347a7da17f0162fc441cfb SHA512 edd13362bd17eb0fe37f97db839e402ff740d725c149c66b7b830e2d223f2c29876150705f95628213231103111504a64668f1c0975e3f24a62f409acfb60e34 +DIST firefox-134.0.2-ro.xpi 554203 BLAKE2B f7bc2c860db254f5ece82eff1467c784585810c3b4a0aa879302a41437695bb24559030917a3d473f2ebd61d3f02b437ee28637dbcb60fee5d153489367fb33a SHA512 ad7054dc38d11724cd97fe0cdcd0fd77028c4782aaf549c03b0086e84daf86b1a1244c074aa214ec871bbf0e338af534b1d2624646cd79c3d26d81603a0be27a +DIST firefox-134.0.2-ru.xpi 750994 BLAKE2B 5c3caf97acd758bddab7ebc75e4372e6c333bb7b41b9cdcff9a00c55e0c72a7376b4ddd1a6f553b63a5867821272713cd70ed43c3ff561f56bf52a0e14d505c8 SHA512 39f74044e69959717fba65b6c95943a7d29c848c8b338aff5410bc0f608c50d0b52422192929c83d1bad74f328d228969a2ab008a6fd409054751fe3249bdb45 +DIST firefox-134.0.2-sco.xpi 515423 BLAKE2B f4acfed405aa27c2f01114f97c1a086f23b696a93dee91bdc31a265020ec87c09ed0b530b074aba675fe21a7b71bbcffe0169f59d5d3ed8b0f6e0e4bf30fc6d1 SHA512 c87053eee836f81a6680d38d70322f2944e919604d90c3df3b8c589b745ab80140026ee4758eb3825de4d1349187ab27df52136d9f0de19a72eca26efee61292 +DIST firefox-134.0.2-si.xpi 626869 BLAKE2B 1439f04b2666ea656757cccce4507c290a295bec746ddde94b3cce29218b2ae66608985d6e6276e0ad140a998d10924f33544864874a64d761788f3f12a05951 SHA512 4ff1fd4b0af8a65b8108307864b131083380c69a39f6e3feffc8ff7e5e209d58431f99415ade2a57d211eda7537625ecda5384f4079158f73d97bf00e105528d +DIST firefox-134.0.2-sk.xpi 680484 BLAKE2B 0d407ed97a02195f45120010e97412add658c6b4373c3b23851af6db6d0bb6db2a56fd12d0939e82df53e60c21d24af7427077f5f11f236cf3d05fed4b9fb4db SHA512 3a50f280da4a62ecd3e91c376ff24eb96a605189e3c4975064ed56c8a9d9a9906cc723ee166bc7b74c942dbef9b596aefc4e3afa67361498ba9375b338ac4a01 +DIST firefox-134.0.2-skr.xpi 727794 BLAKE2B a93a3967e7a1c61e43a849fa5b560e9ea1491335ff183c508ed5c402725ff075fee5040e3bc51d7752647fa955f732d225ec70b5b974f308b72d7951a912949f SHA512 d0f0bc5427f00ea16cbef9404a2699fd2a34fdc4abef0d328bef90ae8bf7a9244b5d205b388db714cc9fc4b4caad2b2399db5924e483bd7d18da18c006ef229e +DIST firefox-134.0.2-sl.xpi 647153 BLAKE2B 8e54d1c994721e4e19edbc707f56f5bfbd8ee6fe05e5cfe499e005ce19e54c645bbf0b20872dd0d7763123c69cdd7cee6c12b5b29138daddb7a42c955c5f970b SHA512 1dac80c77b1d6a2c0661b238067d424b4a40d78b29d42096bf45aad1121c54c27783539c529a41983eb546cd5f311c43812ce0debfcb8fd2fecda00617a5695c +DIST firefox-134.0.2-son.xpi 420280 BLAKE2B 66c2e089d4657b8666ff5eaf01279c96f48dd84f074039dfdb2b6104b9ce3bc3524e57698744382f2cb8bbbac8847c613f8cae9dbb3ef43b32915314f14878ca SHA512 a59617ef750e221cc7efc1e9d5f4058324be42f786619cd4c1f173dd94ea96962d3e53ede27602d00a63fc1ce0258b3abfdb63a3fdf833240de3eec51dde3ba0 +DIST firefox-134.0.2-sq.xpi 665690 BLAKE2B bf63c5f42e94edca443461606d1c87f1d391597b72fce85c2dd318fa274636205730aba40fd3374e86165cf06046e94b080a3aa113eacbe3bb3123dcb03a100e SHA512 8c31684a1a1fcdbfa93a0a579868098ba8b83aaaeb86e65c464dbb4f36b4fa747a3b4772a243f2f7d2dc18f71a3a5c93cec3941b9c4b4b049be97d15c94d4a36 +DIST firefox-134.0.2-sr.xpi 676502 BLAKE2B a41d7cd2779dafaccd63272113a9a16b531e8c7377bb1310f734a3a0177fee77698cf42af2537c142d49c84f9d1cfeb431955c74702bc76c1e4dba56184a7573 SHA512 54b3fac720a9f6b5e4b9c0ea2f7267f1a481cf1df5fa20e28a6cbf2f2efbc6f1643ea151e0b1aa04e98f062b39533f4cb472317e0b72bdff32bf4e83bd432ac9 +DIST firefox-134.0.2-sv-SE.xpi 644572 BLAKE2B ac727677d059374609860768bb094abac9556d7c0f5d3556f05290f7a29a71a3d065211feecc2465537a65b674cbfdb7436d8c93aa5988e891053ffea6ee0f0b SHA512 0cf3006e822bff478c31e9712b473222855dac3cc3796d0616c0adca82040506daf66a25c5a50b82fe37dece9f47950c2b4f98ae914f32c6997769f62577184c +DIST firefox-134.0.2-ta.xpi 511217 BLAKE2B 35c2badfed05a3a174132c9a743871b716e9dff0fb51eb5ffe82534613805d0426d7b4aec9bcf619a1ef52946abd9da2fac0a561528eb6577c179988c31d1dbb SHA512 8ea523da807a016445755ebaede060bbd1d16f113769b8ad6e946ed62539d07ab647109a4c83a034236a444b37c71095e5aa9be1f87e9d15e105853876951a87 +DIST firefox-134.0.2-te.xpi 575366 BLAKE2B 1b43e4999e2f2004b8db03136b80fa5c530d4f8b81d7239a815839872170a399d06a7668bb8dd2b359907bb206c3c28ce298ff17214ae51b480525051620a156 SHA512 0c241e6a30ac6e87de1c5d2c92042460f01203e8c26d14495fca18db3891fc503a5e8bc61348debf5f26a38df0b0a982f4ac499e43d1b6dbdc17fa0096ec7b59 +DIST firefox-134.0.2-th.xpi 727730 BLAKE2B ea5b4de061fe582cf1f33ebdbe9eb7522ef5caa271ca63833c8d3d203df4f149f08c5b8071facad810d6273b94c2f323b04dc86bb0de0d6f8d20bc9cfaf65016 SHA512 e9160fa79349d3e3ab5d39fa7b852b838aca3709347307b177e9374e0305016b9734558aadc43b155bcb03d20e0b14df53add6c65c9ca7e05575cf87fee5900d +DIST firefox-134.0.2-tl.xpi 538546 BLAKE2B bf74822975816060da61f23591e27963fefd73ffe9f1f6d885eaeed663a344d50c3a905d5d26a39aea9927e6f464c7d91af8c831d578c4b888dd7c73475d7f93 SHA512 e3f54f4c670041a3e9b52724f37aea1dbb5816e8e09693d6d6bb9034acb1fe132be1dd01a8dcb963d4e96f9a2c8b9bfc39a62afd55ffb06214a94ebb325a7203 +DIST firefox-134.0.2-tr.xpi 656854 BLAKE2B 55f9847bfee9eb1a32570279b5715757ce6af15013a2e1dcbdd2ab4202e3bb26009326b0a1f6e55fefd65741ee3102cb5f892df044a042c0d80f426f99319c01 SHA512 da63d31d0c9ed9f29e429bb2e7b6d14d762de940af26330a8cc4f65424563d88dfc19ba5613fe60839c42a3686d347dca6a4e62acac4f38231d48346b671c4a4 +DIST firefox-134.0.2-trs.xpi 507810 BLAKE2B 0086999e232a3789d69abce703f887c787933db386b2095352c6521cabaaef5531cc52e36617113b0f2fbd89218bba9fd341d20f60e46521e66bcaa8c76c4e6e SHA512 60c96fbb59905007356db428a8f194af8e4cd91308487436597e7c61cd9fe1d72a533e001a0bf2d038e7eea77ded60ac705536257647aa3f9e4391cf24c10431 +DIST firefox-134.0.2-uk.xpi 742078 BLAKE2B 2589e3f00726dbbcd12f353ec0079b6ce37806cd92718e19e79d028f721de1dc6d66ff2b2ca85c5470cc2bcd974c8cc000fd298c957c170a77f29951ddd498ac SHA512 54500430a4045620255fb5d21427eb299cab4bba1135379b006dfa1bf0c35bdc98b24549718ea093319771aaa735d4990e104432e3b1920341b0cc355e0eadd0 +DIST firefox-134.0.2-ur.xpi 564367 BLAKE2B da26c584e0ebf2074636e8e622408b0b69610f609c7053748c7f64b98233fc9012a98d3ce13abd7085af67a3fca8783384eae345d2173ace89e214ed4559f2c2 SHA512 3b6e514cdbba4506422ee039c2ce4d0011d98d2be1e968ae528ee2bf79c6f80db3f766f70fe43ab8b0391869005346f4d8ae00bebc036be6727beedb2685cef8 +DIST firefox-134.0.2-uz.xpi 482832 BLAKE2B 4f0e7de6855da62732786c90447e68cee03068c9a647f3bbbf7495c58e8889e3c0611bcf144dc51fdb17fa3014e67cfce28712fa357d7e4a5ac922b1d004caa0 SHA512 bb17b008e3745b34855c2668e68a0de5ac09bcaadeb88affd0cf6741ca162e99177c7d9f19fd68f4b1714b5d4312bf9ef8366e813d0f6fab3baf95a6659d759e +DIST firefox-134.0.2-vi.xpi 683438 BLAKE2B 34ec85bb8c88758feb26b7d3fb0d9e166f731ac873b2fd182f11ecd5cc95feaa506b3e6cffb012efbe550d64623668b9a21bdf6cb482d57f0fa2b36892da2240 SHA512 506b0e4038328f3aa4dd7bfc439dd3805be7ac932c42c1140c4aabce3f19d5b95dfc94fe3e781480cd35b665c23aee1047f6efeaa15fe44af16d74c3a97cac58 +DIST firefox-134.0.2-xh.xpi 421008 BLAKE2B b0110c3a1930c312f385985b00b1e2bfb19666b137c4e2adc708a89fbfb921b4e5fde794d5d2651d1f45290ad7ededd7310e116d74d0b520329f7697e0bd1dd5 SHA512 8626397cb9642845a2f6d7c39511ad8d9d9f16d2d55c38d1804ec84919900f28a7fdb4e03312e3fd711fab21dcc3ca9db344405baaea9776cb255bd256728c26 +DIST firefox-134.0.2-zh-CN.xpi 684487 BLAKE2B 086b88dfd1451614af4da8b51ac180aeab8e47ecf69c6e5148738491f221a06d34c28254ea09ac951ba25f644b9024c917118d2818f583d0f259847f635b0f9f SHA512 3d2f762eeaad47dfff627087d174074d3a89507734c662c974ab5c4b5f587541ed62e8e59d5aeaacd881283b1f311c495894c60f4cb7f6dfb5feaf2508ea030a +DIST firefox-134.0.2-zh-TW.xpi 686743 BLAKE2B c3a157e5fae193476bde6722d32b1ea4e65cbd3bde891e76830ac193b609de6302291b6eebc5eb3a54575244738763a1c538f621d5bfe2f6715ad98009e83db5 SHA512 8fcbd4a0c897a9a0731283ccb78fa35d799957cf8fee1f70892c65f106efd42ba5b2024eb227952c45f4212a1bc2ddb65e7d7ac8cd61608c7c837d29b2c6b517 DIST firefox-bin_i686-128.5.2.tar.bz2 88105701 BLAKE2B 7b939adeea9a6373c45513076ea21d67c320beb61c5514bec151bd044094b5e2dff1b0e2a0f5718975a3d22faee5c25a2b4f29564c3336ac5bde6e89311e381b SHA512 b7cda570a73523516b31792d14c53388fc197ea24131fd885ec2447dfddc030fb9d5cd040c788cb299ee701eb8cfcd4567d986acd7ed9f304336cdb4ad0cb5ab DIST firefox-bin_i686-128.6.0.tar.bz2 88053413 BLAKE2B 029e72ebb128fbeb4957a1ec570834e39080dacb9200b100b4f1f04a1beb298d5e589e904ec7a4a5c4808c6270ed2cf453cf3d5b1d51bbaafd89561d9c548b00 SHA512 580e2833fdbd315d152000e8d91998122fc0d09b95a179609d5f19aff47fda5747147443103425ae6873c0c7679206b2f6999ec46d25ff083177a5aeb2848323 DIST firefox-bin_i686-133.0.3.tar.bz2 91076838 BLAKE2B 17e76bdcdef72c4729ac3bc97b9ed0b40fbca05dd49ce43d5875ba6a6af2b12efd4c8c149c688483dc000f88c3841defbb47f70584cef1626cee6e4f8aeb23c2 SHA512 21b9f400cb2be49615c44be5028dd1dabd7e76c54a4a89864606a7c9ba7bd32fb87fd592421c1b4229cadd06a862fcbc3332703797622b485e5a9266c6c943f3 +DIST firefox-bin_i686-134.0.1.tar.bz2 91561315 BLAKE2B 18ee672392d7d910ed3b9e08ed16fb1ca4ab2a40feb20659d263722358a353a16799c3dc0f2e970996e8a0eb957568118b2e2b47e35a833a14af1648aa206485 SHA512 a34757e46cd95d69cf98f7541c8a92bf232dcfb98521c19693048e6b27dc92b3d287a58f0e4281ecbe3ac09ac311bb7eeb71cd9ad95e78defffb3f2d32bdc3c3 +DIST firefox-bin_i686-134.0.2.tar.bz2 91514634 BLAKE2B ec307ac890b2fa128149caae62aa6e3bf67649c81b979ab957d90ab7e752515ca129d4b8f520caa8c053a8757ccd4668a12ee47ffbf1bfbe5f0bf625e31afd2d SHA512 d7803c469af1872d48669ff9956db9ae2c2aa3f34133323e1f1e7de544aa6f44e82dcec21918ccbbfa73c5f54fe68e85b6ee36f570f4b1c583690b3f0f2f4b7c DIST firefox-bin_i686-134.0.tar.bz2 91691672 BLAKE2B de7cf31c7d13ce4ce7f9316ed2ef3f3f48840468f2a6452deb84364f666bf463230be23760d2bbd7f3fc5ff93e062a836dbe31e29e9411ad65ab60d3e3c68fa2 SHA512 76007936da48940871419cb6d64728108dd1ca2c47bb3d69466623588b51e8f99f2cda2fbe4dca47e7d4102cbca0a3251550fd9b51d7212e43fea3b5601fe443 DIST firefox-bin_x86_64-128.5.2.tar.bz2 86795865 BLAKE2B be3466ca68de34bb32935cec4ac2eccd04fcaf3f4fd786573a2d00a7e0a108c920029eb635912b9bd6b5a78c4aad1302c05c51af8ccf76c6eeb2b3f67bf86996 SHA512 84117928f87166c884823aa63edb3b3ea067f00b26efbfd59d42b71b9e17b32102e05be629a45d46c1d6f06f1b67e5bcf312c25d36f0a513ca414bb4e5128523 DIST firefox-bin_x86_64-128.6.0.tar.bz2 86756811 BLAKE2B acabef818f34376361c83a51dee7a3c0687f0899640f3a7b5b6c0598f8bb17763665151b02b51c15f92af47ac2e2b37ca90143e8bc957a256132753617ed40d8 SHA512 38d6367fb5556c86df933cc6859e3ea7a5571643ea8815c65eb2029539e07fce8092ee13cd3ae603120751d0edc994bc9afeebe0fb3ef2065106c4c4d75600b4 DIST firefox-bin_x86_64-133.0.3.tar.bz2 89495132 BLAKE2B b66760769d17661bdfd7053968b632612a158bf604a5f687b6036e62547b364a16bd109fe068a5a1f8d100d99e8b1a27f310697a662295cfd838b9d916b9c746 SHA512 6d0c1e3afb5382a31d8cab5107de8c6d9ac07b233cf76154113ad074f1d0f555ccdb56898cdfff2075c97a13670f7f00049f761875612b2196ff14c5752a0034 +DIST firefox-bin_x86_64-134.0.1.tar.bz2 89774359 BLAKE2B d72416a3be6d82778af54fe00225ca32b92e3d955fb82c8db68889b838dde87986952b4a08eb799382a7c724324cc85cc7c19ba074bab3974d250452f8c14b50 SHA512 2e19abad3e7e05b3934cd35c86ce88c0f3f5232c1c2e4c7164a96de0e0e065d996dcf2bb94d828ada88a62a65f6d96540bcef5749f1a442fc05dee52c14bb13a +DIST firefox-bin_x86_64-134.0.2.tar.bz2 89684823 BLAKE2B e28427f52b83a56f4bfc3e6073125d8e142fcf66b7640e0f52a354451bff96ad622035a002582dafc6674e488749e883b2b29a779620da6ef162cce0415b55d1 SHA512 8e1a6687353ff41e3ff08be52910aa2254dc431472f02331d0257195d056dbf6e89a7ebcd563d02d62c934c8ac7a52b7795514def83966a0688bcd23893b293c DIST firefox-bin_x86_64-134.0.tar.bz2 89698416 BLAKE2B 99f8dbbf1a2cb4b5db5040a2acd2af877830b8ebcf9aed8d8ae5bf307e2e3d6aba9a0cb11f58f17bf86e5545cf5e4bba9fdc85e82ffc7f9bb1a6ff15141b9cee SHA512 6d49b9bd7acd5441b51e7cd414233e16e1df70552c2d61021e630477645bdbbe9af8fd95e8d6b8dd8b48bcf1b619b6de14681a7fcfb26a3915a626d1dd9d8404 diff --git a/www-client/firefox-bin/firefox-bin-134.0.1.ebuild b/www-client/firefox-bin/firefox-bin-134.0.1.ebuild new file mode 100644 index 000000000000..4c5943a46216 --- /dev/null +++ b/www-client/firefox-bin/firefox-bin-134.0.1.ebuild @@ -0,0 +1,364 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit desktop linux-info optfeature pax-utils xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.bz2 -> ${PN}_x86_64-${PV}.tar.bz2 ) + x86? ( ${MOZ_SRC_BASE_URI}/linux-i686/en-US/${MOZ_P}.tar.bz2 -> ${PN}_i686-${PV}.tar.bz2 )" + +DESCRIPTION="Firefox Web Browser" + +KEYWORDS="-* amd64 ~x86" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+gmp-autoupdate selinux wayland" + +RESTRICT="strip" + +BDEPEND="app-arch/unzip" +RDEPEND="${DEPEND} + !www-client/firefox-bin:0 + || ( + media-libs/libpulse + media-sound/apulse + ) + >=app-accessibility/at-spi2-core-2.46.0:2 + >=dev-libs/glib-2.26:2 + media-libs/alsa-lib + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + sys-apps/dbus + virtual/freedesktop-icon-theme + >=x11-libs/cairo-1.10[X] + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.11:3[X,wayland?] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libxcb + >=x11-libs/pango-1.22.0 + selinux? ( sec-policy/selinux-mozilla ) +" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox-bin:rapid" +else + RDEPEND+=" !www-client/firefox-bin:esr" +fi + +QA_PREBUILT="opt/${MOZ_PN}/*" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk skr sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +pkg_setup() { + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + mkdir "${S}" || die + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + MY_SRC_FILE=${_src_file} + fi + done +} + +src_install() { + # Set MOZILLA_FIVE_HOME + local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" + + dodir /opt + pushd "${ED}"/opt &>/dev/null || die + unpack "${MY_SRC_FILE}" + popd &>/dev/null || die + + pax-mark m \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin \ + "${ED}${MOZILLA_FIVE_HOME}"/plugin-container + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/browser/chrome/icons/default" + local icon_symbolic_file="${FILESDIR}/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^} (bin)" + local desktop_file="${FILESDIR}/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local exec_command="${PN} --name=firefox" + else + local exec_command="${PN}" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + # Add apulse support through our wrapper shell launcher, patchelf-method broken since 119.0. + # See bgo#916230, bgo#941873 + local apulselib= + if has_version -r media-sound/apulse[-sdk] ; then + apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" + ewarn "media-sound/apulse with -sdk use flag detected!" + ewarn "Firefox-bin will be installed with a wrapper, that attempts to load" + ewarn "apulse instead of pipewire/pulseadio. This may lead to sound issues." + ewarn "Please either enable sdk use flag for apulse, or remove apulse" + ewarn "completely and re-install firefox-bin to utilize pipewire/pulseaudio instead." + fi + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${EPREFIX}${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + local show_doh_information show_normandy_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + optfeature_header "Optional programs for extra features:" + optfeature "speech syntesis (text-to-speech) support" app-accessibility/speech-dispatcher + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "ffmpeg-based audio/video codec support, required for HTML5 video rendering" media-video/ffmpeg + optfeature "desktop notifications" x11-libs/libnotify +} diff --git a/www-client/firefox-bin/firefox-bin-134.0.2.ebuild b/www-client/firefox-bin/firefox-bin-134.0.2.ebuild new file mode 100644 index 000000000000..4c5943a46216 --- /dev/null +++ b/www-client/firefox-bin/firefox-bin-134.0.2.ebuild @@ -0,0 +1,364 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit desktop linux-info optfeature pax-utils xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.bz2 -> ${PN}_x86_64-${PV}.tar.bz2 ) + x86? ( ${MOZ_SRC_BASE_URI}/linux-i686/en-US/${MOZ_P}.tar.bz2 -> ${PN}_i686-${PV}.tar.bz2 )" + +DESCRIPTION="Firefox Web Browser" + +KEYWORDS="-* amd64 ~x86" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+gmp-autoupdate selinux wayland" + +RESTRICT="strip" + +BDEPEND="app-arch/unzip" +RDEPEND="${DEPEND} + !www-client/firefox-bin:0 + || ( + media-libs/libpulse + media-sound/apulse + ) + >=app-accessibility/at-spi2-core-2.46.0:2 + >=dev-libs/glib-2.26:2 + media-libs/alsa-lib + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + sys-apps/dbus + virtual/freedesktop-icon-theme + >=x11-libs/cairo-1.10[X] + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.11:3[X,wayland?] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libxcb + >=x11-libs/pango-1.22.0 + selinux? ( sec-policy/selinux-mozilla ) +" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox-bin:rapid" +else + RDEPEND+=" !www-client/firefox-bin:esr" +fi + +QA_PREBUILT="opt/${MOZ_PN}/*" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk skr sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +pkg_setup() { + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + mkdir "${S}" || die + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + MY_SRC_FILE=${_src_file} + fi + done +} + +src_install() { + # Set MOZILLA_FIVE_HOME + local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" + + dodir /opt + pushd "${ED}"/opt &>/dev/null || die + unpack "${MY_SRC_FILE}" + popd &>/dev/null || die + + pax-mark m \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin \ + "${ED}${MOZILLA_FIVE_HOME}"/plugin-container + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/browser/chrome/icons/default" + local icon_symbolic_file="${FILESDIR}/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^} (bin)" + local desktop_file="${FILESDIR}/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local exec_command="${PN} --name=firefox" + else + local exec_command="${PN}" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + # Add apulse support through our wrapper shell launcher, patchelf-method broken since 119.0. + # See bgo#916230, bgo#941873 + local apulselib= + if has_version -r media-sound/apulse[-sdk] ; then + apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" + ewarn "media-sound/apulse with -sdk use flag detected!" + ewarn "Firefox-bin will be installed with a wrapper, that attempts to load" + ewarn "apulse instead of pipewire/pulseadio. This may lead to sound issues." + ewarn "Please either enable sdk use flag for apulse, or remove apulse" + ewarn "completely and re-install firefox-bin to utilize pipewire/pulseaudio instead." + fi + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${EPREFIX}${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + local show_doh_information show_normandy_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + optfeature_header "Optional programs for extra features:" + optfeature "speech syntesis (text-to-speech) support" app-accessibility/speech-dispatcher + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "ffmpeg-based audio/video codec support, required for HTML5 video rendering" media-video/ffmpeg + optfeature "desktop notifications" x11-libs/libnotify +} diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index fef1d204eb79..4ad0a3c42b3f 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -506,6 +506,208 @@ DIST firefox-134.0-vi.xpi 683428 BLAKE2B b734c15bfb6712a665ea53d27c6eadef985c3c4 DIST firefox-134.0-xh.xpi 421002 BLAKE2B d491bfa4f6be41b9403e13e0c1752878222a0d8f6eb3a7466e19efb217a2916143beedaab4512378811faf733d2ab39e9355e4bdd7c45333499be970333b98a8 SHA512 2c6005ba3716f6124a4baeb3210b2cf90ee9dbc51a1b3ace99dc1a3b72d3142c6b62d91363be17629cc0819aba23ebf38fbd53eb37b929e04231eac52436c4b2 DIST firefox-134.0-zh-CN.xpi 684492 BLAKE2B e0d23ae8493c56b890e1390e6f472cc6d8921f296f0b792fe7c4dc82c3af465597152ec41adbf819a5a775af8f2eb486f3a62c01de246dbadf106926dfe855b4 SHA512 71486999caa8e8a3f8b6420ebe97111855b132fe1f1837ae85af112cb5a30a6b264bc659060f9da48aa7c7745515dc30eb05e44b2ffeada09b5885e53231e443 DIST firefox-134.0-zh-TW.xpi 686751 BLAKE2B cca65375ac4d4569873a79d331604c88022b9ec8a19967d5faeba855aa89092830cd1cebb16d45aa8135bf38fbdfec53c69a307e79965a8ffc4c308ac617aa56 SHA512 18d9b8025eb99302644b7a2c535e750414e0f419886c4fefb517403881798bc66aa5084e3878b9e37aface79a624c725a62f3b00a89825ac061ff2469a704485 +DIST firefox-134.0.1-ach.xpi 468175 BLAKE2B 788b4c43d946082fedebb17be89e3cf434015c882655a5372dcd409d63eb7792ec5e10b1482ce5fd0b925d77441fa12804e4ebfc71a7d82f61d4b0805e7ec0e7 SHA512 e13f7cc1d3f7d27ec7e11a980cf89a767dccc7c4f35b464d27dea4ebce5ef781fa2556dd57b9c8335177165cdef11bc777ba21e361fe38cb771a31a99a1762f4 +DIST firefox-134.0.1-af.xpi 421160 BLAKE2B 2d7a974dd2862c6e69412045908847ef9725398d099169320da54b03249f9f2e56caef908a416f4e2ac4595bd1ffcb7636f156f8d06de7f4cc198c5de41e6e46 SHA512 99e97009f5a63210a1582712801a997d8dbba70b21853df6e9eaceaa52351df447936d5656b03c6b7072d824d0b5ae00b898b52e2475802eeb095386dbbc4c18 +DIST firefox-134.0.1-an.xpi 510941 BLAKE2B 8c161c455a5156992c5927bf7ad72742986a6018c514e71e2b8ff3a9207d86bcd80424c11e18692af8283da8ad8580337984f61cfdc8abeb190b3b2a3ad34270 SHA512 19b722c6fb8114e73bccf239dd08c8e184ba66fa615c5dcc8aae577f469248b85cc25b26050d0ca675c0ae3793b14d0f2d10b02c24d1d89959d0a03978fc155c +DIST firefox-134.0.1-ar.xpi 633882 BLAKE2B a19e83d00690f621e2bcc1729a981135e1a888935187057d6263b3d29b5959c4a7f842d0b566a733be15bbbb810bdc857fd7d589e56892bfd50f015a0cbc9855 SHA512 28114c4f7971dabd3e74bc22f052faa0ff151fd87a693a681217e4e4e15a912c1f6ebc54d4564f96456f666509127a0abfd7bb761a092487b62f1e8ecde3f235 +DIST firefox-134.0.1-ast.xpi 500078 BLAKE2B 1bfd6aaa0b1959c1039c1e3b9aa1212ee2bf94d07dee1d0b0e9a77d33ac4c83a58f46bcaac9039a2af6e2fe4a258c54d5478fb0e3211bb146764195eae8516cf SHA512 f39812dcdbe5641ce2e1b347bea72060e5d337d39d3133f2b272d3f743daf825aec187015fb086cdd57ead5e0b357ccc77cb9183d706f29ef1c37884a0549960 +DIST firefox-134.0.1-az.xpi 494905 BLAKE2B f417e13bc2d2152542becb6143eb7f4af0352d0a82171b729a5d5118ab934af46153bae95f1bad56665567e12dc01bebcd7bd6d5c727183e41993029572c99a9 SHA512 54ebc1385587a4ec21332e102aaa6f20ca4a4be4945540f2f3dcc2e2ab4fb12df7d6b5d8c5d3d5743131eaf0d30086bfab91735f211adb9a85ad872753c4187f +DIST firefox-134.0.1-be.xpi 744277 BLAKE2B 5fff8ea83331f397a4ab1828cf2fee3645abf897a6fbd2340e43e11e0ad8c42211e5c418e1dfde2e1e9452837954f04bac9bbb76424bfaa4a8f072bcfc5e229d SHA512 c1af86b6fd488da66c1d7bf11cbb63c45383b0e9aedc1c3bbd2092fab159248047b8e9e16be7d156b498652c52e745eb86866d9f0fabc8df72e0e72012b06618 +DIST firefox-134.0.1-bg.xpi 670911 BLAKE2B 01b8dc1038b7b6e9128958b5e739c5a4b3639807cff8df1b050359f2c3fe9811888c5c9370f647e7b3bbad154758a0e1f6b882b8afa51474ef157930e7cf04ba SHA512 8f9d8be21c16001c74fa19d627f2c2957d131dfbefdca91b27f002cf565038501bb0411828fe78bed2345868fb6afe6d674b2dc06c51dab8519081e8613e326e +DIST firefox-134.0.1-bn.xpi 615533 BLAKE2B 53b652f52a148c45ce7d329944eed7e84f00c93c26070e312d52312c0a1f0681ed547b8ade89271d851ff10fe2299d78272df512da0d4667c42fabef1e12ced1 SHA512 c676dd896b38358f798d721ace3dec428ef6be5d23284ec0dc808eed6e99cc740f602413d61a38033de9438986eb9e8ddbbf87c9ce06af3d4ae4273073e3bb99 +DIST firefox-134.0.1-br.xpi 598067 BLAKE2B 1261ec2774e698f450dc310eb567ef553a61c74a952a294561063e07488fad48df6f13a53ddfec5a167583d0d09f2a8b4bbd94cddf9fec59530fc2834797abdb SHA512 1c33a1bde8b0a8eb217314803b09b36d876d90cd5b539edce79b89e7751e3b50d6c21e8645cff75ed955d9fd2bab4df6df4e65582ba4b7975e2023d726440e81 +DIST firefox-134.0.1-bs.xpi 557253 BLAKE2B c28892d717b30aae7aaf7aea077197a307678d6fc53a0aad48f639357d61a3b93de2b370263dbe793f372fda644d7d539435bd9a232b990ee954d80578b04d39 SHA512 a7220eba676b0346ec1f2ca59dd84590182c4b908a2c8b886578a035f92b6c1d921f31f7083dd0f172756e6a182b4bf3e90c86ffb520a6b08a9cbf19378e1206 +DIST firefox-134.0.1-ca-valencia.xpi 550233 BLAKE2B 57d2fda6869373e843cb307884d3f4d63f3b7e9d7502effd2dacd3e7ce87d08611f8c4ca8882f2a2bcf0a0dfb6db66b8af8ce90fc5a58f5aed0b7def6bd7a422 SHA512 90f360c20371763990a90a958f4be72c34897e372ca2133312f5b3325e33a9163c30a76b1b3cd667497e3dfb680d2aecf276616ffe9842834957062895bbb894 +DIST firefox-134.0.1-ca.xpi 607763 BLAKE2B 471abe72ded5f9810f7b1d91b1f897772cbefa09c4ecb14d8cad38dcc1add0b97f229cca207eabf66989f06ebeaa9404185b46888828b45f6e7e295a194c265d SHA512 4f422d4d2c7800d194cf03741b7b9a51b53c14842e96a6358e6967040d3866f451ef977b1a099b32469b362b2704eb3349c39a5c0e981dc5c016c8eceeec3af9 +DIST firefox-134.0.1-cak.xpi 597763 BLAKE2B 551137974d12f5e85bd92e6e98b9ccb0ab021034c05ddd48885405610d78283fc923bc3bb9a93006cf2cd421e6d2b0049028671af8b5fd21fee85f6f3eeeec8b SHA512 e20e9320d6acb09aa99750c8124ecc657456bbaa8f55bf106a7105f7e6fc57b43a91edd5da4aeb9a7bcf7f4019c0e6e1f4c5d532f14efff7f517b7459f920f15 +DIST firefox-134.0.1-cs.xpi 688666 BLAKE2B 2cbebbe2d3232d528d53cabdda6302980d06c668519d749e901a121f5cf770b4b138f3e360f84bf7a36216cc254270368aa5226dfd249a62d11be141369550f3 SHA512 de5838393bbc6de2e38b142fa4a87d19b72e4233342436b7cc7bd9c7d9a4ce472eaa26b5a7bd4db4107f6e1d48536b29dc1ccd8fa69a7514cbb792fb2b2de4c6 +DIST firefox-134.0.1-cy.xpi 649379 BLAKE2B cdd5ba1d5aedd5851d255dfff6b921fb410d100b562640ff5b4933296e307dd3663f6d4b5b850517034d33f5818dc34856655a0379e7160342d7060818d59a13 SHA512 f7f630e45abbacab40e647bc88ba3d1aeeaf3c9c59f029c86264812713df0f221d33179f7d0f88a32e741d55d31cdb7c1f7826c2399a0c5b7f3b0a5955d7c9ef +DIST firefox-134.0.1-da.xpi 637282 BLAKE2B 8e164298378decb7ee8619099fb6f6dbce3ac154943fbd3d4ce8a626127dc2cb7ceaace59866b2fa923f48ce3c58fb9e055e27518ddc9b949b40753e99ad0ad7 SHA512 565f69bd98a0d5b921deae553436a2ac2e0ed72e04029bf1488d81a05d202729642e0e1bf93d6d9e51f718a9b05fd4f10da4aeae3620743fc5745d613b5dd49e +DIST firefox-134.0.1-de.xpi 661272 BLAKE2B 1151184923790742a50fbdb05b2477fca7404c2ad245d65c0ab8fe0ffa599cc3676cd1795da779bb60a16f6f76c0f520ef890d7eb776fa91e164da6803fbb7e0 SHA512 fd1dd3da2d952cb1eaf9f21f38a3f158a057249c4a2f7d761bd1d8e9a6453d4c50d494dbd3c81876693655c866cedac4204ab72b58174f07319a68de9714e197 +DIST firefox-134.0.1-dsb.xpi 678091 BLAKE2B 72bc98f77b5c4675f6c1631af4df7ab82a3d7d2807c6dda96f72b1c6be03b40e87fe093ba8d6486d04af78f67b2c4824555f8bab4c7598850201f8ec4975c862 SHA512 46780423beadeeeb8cd590886c29364be69e9a6886fd0e9238c346cb036f7b069c7d7c947f2e9c6fb9ea6f89566211057882093adbb9da252c364fb7797c46f2 +DIST firefox-134.0.1-el.xpi 760434 BLAKE2B 9fd7aca441b63d304e2c5d6ced84d7ce6dcd76000475171fb9c77be6cb9b8807dd4be9bb22efc74fc3744e49f38be02fcbdbacf4d92a3d5253cd8875dafd956e SHA512 a52d07337891d3fbe583651e24c91c378bfd1bb5fe1d6041c27b2cf441ae168a9ae3f5eb5d1d74fae25b719e908091aece73c415188ca70bb01c21b23815727b +DIST firefox-134.0.1-en-CA.xpi 607984 BLAKE2B d1a0d2e889d59ee0d7c006b12ca97f0c284f53563dabb963294981cc9c4462cf7d28d3d5bed1aa9b9ac999cec154e88967a59c1c596cdbb68358c89ba002abbd SHA512 bb0774b4d6fb47ff411b90ca0ab9d98ad58eadfab9123185b7f46bd7ac610cc5e2b0f4a2ea643b4bca10c2d7ce34ce2de5a0fa9548667a322c82eb4235a25ae9 +DIST firefox-134.0.1-en-GB.xpi 609115 BLAKE2B 362948f71c974bcdab609bf9516f2f98b52540fd0a790dc8109897c78360ddf3dcccf661167f986974d0d9f0111a023fc5b86f2e784bc1787621022efc6268ff SHA512 a93dac733809e4842d0828388e613cd093526b762507676ed147c08d20aab711f36431c8517c592f590761781e48bf543ff8c4a7af0c3792345bec1714acd720 +DIST firefox-134.0.1-eo.xpi 640105 BLAKE2B 09ab880f6a2d34f2857205d409839078f4a2c7126f45dabc94f1c06b657bbb9f94514260007b1c6882433621281ca229a7115fa8dabd04038b091a99ec25bf18 SHA512 c1b8d251f86174ca7807de476d0465e0ef92f76a3bc4b1f0baf4e5dc85727d0f75c5e534ed9851c7d2b8b670a0a981e825f6dcbdbae38072ffb1df2111d6ee1d +DIST firefox-134.0.1-es-AR.xpi 654023 BLAKE2B 4c1016c614999770a7fbd396bf17ebb8a0b87140cfdff8ae00108f8b5597828ff517692fb3521f69dfc698e4dc50ce7b80df9e3133f791c88ad7069e1a97c671 SHA512 5fa435a477224b2cd15a0f94648b9240d5e29da3102169cb3bd8098f7269c92566debab34c462d38ed3da7b1f77c942f29f1541e9539cf0a9bb8bc6e829240aa +DIST firefox-134.0.1-es-CL.xpi 653723 BLAKE2B 55a8eda049f5eb410a12cfe4ea09f486e9a0626b9a3a0e3f4ba3a95f930243572f595edff3b416c265c086d847e8b7e50212f506e934dd2faaea18b73ec5826e SHA512 251911b2690b22c57234bec301efbb7e5a85a894827279dd19c28317b1883e1e586c0074aae0aab0b726b06f143d19d8626d424f378d51e22e703a7c2272456a +DIST firefox-134.0.1-es-ES.xpi 648563 BLAKE2B 620d4736cd3e41c8210cb4319e5ce9c9fc8262bd599eb7c8585740a7f118a74c599a5f4a2592b4aa0dee2bc33a3a39ae0b48779d8d156e9d185b7914c4646caa SHA512 c65720d87b60f9f9d68078bfc5f1d0b9420940527ae42d43bcad9d74464b6eb35aa2cbf2cd1583e09cd7edeb930dbce5270b4b17ff2041bd4fbd58534a21ae7f +DIST firefox-134.0.1-es-MX.xpi 657160 BLAKE2B 4e8ee9b9b1bfafa2ed83ae79581f349f46acf0baaf0481976168b7414547c6e9736ac513de6e414a7fa25279c90ab651131e789fb7e36dd2f4c35ac04645ac11 SHA512 1a5e312dab7ec5cbd6f1679dd8b53ac4fc0d856ad458b1f762c358c2d2a731e7b753e9b6354a0ef369bac5d87dab661abfe603fbeb6da287e57affb3c634af4a +DIST firefox-134.0.1-et.xpi 546711 BLAKE2B b673824bf57de531f23c34ef8917132adc739f4da1668c34e8d075b231c42e90a0c2d6ff1848b63ed1b7a6bcec142af682186ee66aca601a42ce5ffb0cd58466 SHA512 0d2f9b5af88b640d25428cf6f189be31d98e17a04d57061a6321eef82fd47c3a566326f4e7098cc066e239c4f900016518dfb1e7cce258cd31eaf14672ffd78b +DIST firefox-134.0.1-eu.xpi 622843 BLAKE2B 1834e4d050bc6b400a0474e8064593254a9ff6f43eeec7aad06be98efd5a082ced7dd8eaf62575bf11d3dbe5aa620466d8ba35f89583c1fc2be919a4674b5c9b SHA512 110b7f787d8374e7e586ff6ccbeb9ec7d87cd5886e388a586e8d5fbf0617931f98705880ce4b916eeea6740c8f92fdc30d27a448b0a94b67c37052b7ff2be3cf +DIST firefox-134.0.1-fa.xpi 625170 BLAKE2B 34943c9a14758165c3685684e74dc19d381a5192375bb2ebf500d3bed5f62d8dd771bce500ab5d9d71a4c63765bf3aa30afdef496bd9708974dc31324c76b85a SHA512 55dbb1949d62e042e3ad17b77044660292889488a357a0f880c5b901982298a41899e3d5ce782506045ec5be4d53b0a99dd9d8c002d754c523c23a284e5a3e3a +DIST firefox-134.0.1-ff.xpi 479988 BLAKE2B 72bdf2767f69b94ea78e24e9991aa0a71d73c9f9ab1fce94af26e5292959109b8c0a8ff91b22642eb65c6d244d6aa85edc110f48e08752abea379a3efe4bffa7 SHA512 4eb31ded1971a531f19f6f3852bff48a67f855204956ae41eba137dcf43d5e84cc4de4282c3b7efe971e1013c4dc87d8928ea78148c5457b56417b1328a9499d +DIST firefox-134.0.1-fi.xpi 634175 BLAKE2B c28718ede4a3628809d7f9d77809540775a454e16f23a436ca22ada68d8fb75c28e0a39013ab9f8fb591c579c5582766845fc51f88a8c9cb65b15bb648c26178 SHA512 76d16c818beb8286fe4e633d20f5c0def02184f06773fa3bfa554fdddfa6855e4137d5691dea56d0df6c7887706fa4b59464f0dc8ec42d357f53ea310006a5a0 +DIST firefox-134.0.1-fr.xpi 667539 BLAKE2B c5edf355d8301bf0a4a245eb8ad2a543af2c12a2f4549e6cf6611514387c4f3b1dc8603a9c2d41cbcd690db46df707a9a584077b59285f4c5c118689ad6d1820 SHA512 82b4756b45effab7cd322869d3c0f82707b7fba8d79c154df3e748df1e04b57264a1b9ee6bc8e8bbe597c91d011e0b4ebb62877dc847867444798af0cfbd05a9 +DIST firefox-134.0.1-fur.xpi 652555 BLAKE2B 66b9f111b853085b5277f31bce69b808ae9ad4a4bbe91d4355433606ff5bbad0a22f6ca371dadece69ceb125d9773ad101302d0cd11fe537bc5c741438152faf SHA512 163c6339a3e573bee6beb15c12dd0292da765156cb98422550de97d4e24c0c2d8c0f0021564c7f23699c0d64cb139544ef484287cb462b33704449a55ab85a2b +DIST firefox-134.0.1-fy-NL.xpi 649682 BLAKE2B 00c39830cc589349b2e4aa92f24552d10a1df719d6273d86b2e02ba2c661d548914ece5371441c68ec6412086adf886f894e7797025affca93cec26ce62247d2 SHA512 b5fb3a7444ad8cf21ce6302642e23a6dea4025289a2d381b8fddb6605acfe3e69008c124f6995f634a1063dd5339b7edd6463cba3b4e6bbdfc447f3fd55f1eb7 +DIST firefox-134.0.1-ga-IE.xpi 474979 BLAKE2B 9fe63cd9e01f371803d0ce5afd0797016c24d17c742e47ba60c1a9020465103825d9218bbcc29053aee8a41dcc80b9f018c66d5b0a9f6d9016088d29114724c8 SHA512 0c5a1e62956e91d468dcddfe7f055ac9177cc1129f3158a99e186400ae62cca687b0a305833fb4bed240d42da3736bcd4727816b236920af6df7990e57797729 +DIST firefox-134.0.1-gd.xpi 603290 BLAKE2B 7d111ad363dc155d48761105bb846f3a0d815cad1dbac38dc398b2145a13af4c20a86f82b0ed160662f7157cbf1ed4c1307503884ffe9ca3265501a09584f8cc SHA512 bbc0757de6f144efda90c58b3a61281971fb854310f73e64b6eebcece81162cee81734830de4d4000b763fa30032ec7cc1107fbfa4204a5a2df5dcf40641447e +DIST firefox-134.0.1-gl.xpi 614904 BLAKE2B 5faa407f5698eceda380505156b7e7ecda69e2871ae3cf1ba46a1198d3ed9636c762178209cef8b1cc285bbd58f1fdd106e724fc91cf738a7cce073ae2ac542b SHA512 8a30c2ea9ed3e6b6f335f2d7d0e1f58ba8cbd6b58859ffbde90ddf935c9cb17f56cd17439169be10a226b2a69268ec96f934211b3941ee8cd2da9cd1335aa74d +DIST firefox-134.0.1-gn.xpi 661075 BLAKE2B d651686fff74773c3cdfd5d510d2dde2f666642c860b34610780c10cf66acbb938557700bbb1e565409fc26e00e2663b5c83edd2f308f9e2629fb5efb28ffc15 SHA512 a1c192261a0e5e325227dcfce712fc38d09e6f7546f74f82c229c3a16964ef5c0e8aa702303420394821eeb10ced49bf4c4fcf1d0e3494c64f91b13052b85904 +DIST firefox-134.0.1-gu-IN.xpi 531505 BLAKE2B 40d949467fd2fe93e99c7f496927b436b74cd0233af2d2c83efb06079aa2152b8006f953965199221666676c420b705057a30f827921b348d8e24e6568b36621 SHA512 f62798ba22e9163adae024de3349457ab4016edc1601c0fd1ff724b7c82c02dee8ef87fedd2265a1ea1e071ab7d0d72937523efae3d1d49bf15a7055b5a4da98 +DIST firefox-134.0.1-he.xpi 656240 BLAKE2B 39590855f02159d23f5cd8e60c940a4052a6f75be8045a37f678c99d877bbae9cb9efb1f5b05795b15ad3c2d0b3fc3d42fe913caf29af5dea703930a14f2dcff SHA512 8e8aa41eda57bdd2db844142fa49579edb43dde0d954fc78837dc9d4ebe3e3ad56142b6363c831409f2f0ba552c1d78014d06aa85c01bd4287b23a8685604696 +DIST firefox-134.0.1-hi-IN.xpi 570947 BLAKE2B 967cf67999796bd0be99befcc0afb425ddf13fa2deef026fad18951d402b3c321b1c4172b6cf5b108dee6813ddbbbc999be95ad11d375a5391576a5d0d6ce701 SHA512 c16dfdc8a9f178b39df53262936e39a2dfc3e1f53e208e2e589b7dbf9ba888c28b86814404ad798bc70f9ce814c2023d6ed0f238da263b173de987ce5660dba1 +DIST firefox-134.0.1-hr.xpi 633368 BLAKE2B 798befba32b265836933f7d19bcaeaa24cba8edd322b7ac996880f8dc4ab549bd9c53e002e68cb18f3ffc40953c4c4369944cabe00d06ddc0e07a35c8872808f SHA512 f2d230be6cb825458cb4e636095e74d737bf14997ee24f39a80c0882534df5af9a4c9702cbf45d86b7fb37b23c4627c7955fa56377c1d8a2478d73cb4e1fc825 +DIST firefox-134.0.1-hsb.xpi 674093 BLAKE2B 8c4cff5e920c63a394e0c393e5ffcdf2da24802a154fb9adda381ce15e802842d09fe6e83693b5401b24c92dc6a37861175b59a1d0cbb61d98fdfd6eaa589f6d SHA512 c455f94453e1cd9b730299eff59650ac304514ad241757c6ca895ac49db50018831fd901e0e508921677775e3777151310f24e667db4cc75a2924b3f1a9ec412 +DIST firefox-134.0.1-hu.xpi 678160 BLAKE2B 45810ebc540dd5796ca79eb4506df9b059f8abb9d832e0838a897d0ebd9fa32a17ab9e712fbaa7708a6d2a3b7e43aba140e54ff6632568242042e16199cd86be SHA512 120f50eee0b1e1219fd02d5d7d8057d0cdc519727aa319442154890b99b3ce3fe544283c77b8af946bd236edbd4bfc97273ec17aa4b6f02765083b501813c523 +DIST firefox-134.0.1-hy-AM.xpi 661668 BLAKE2B 1bf61ae9d99823097e1eeb4de17a521735c4dcb3b05c566c2bcb1cf755e1618880413a7030988b2b2420aba0ba212e36906e3e7097243189e64a5f4f484ff772 SHA512 dc8187317224ea007e39481a6c5872a15c15c0a21fed056d9f8ff5b3ee733a8f0619e6d988d0653edd6eac048305d88cc4bef8d3a45a54655ed454d756512c6a +DIST firefox-134.0.1-ia.xpi 636637 BLAKE2B 75b0cc092f632bad4e8b05e8455aa403373a4d41ae7cfc11aedda32a4e932b297101459d53e8cf2a4f8b1583e86044456d285be1989bcef1e9dbce1de3a5e291 SHA512 dec17bd540588eab7ede462a897e6022dd7d6d0d48c04101ad566f09ac77c0cfe004e209ce6518961b540ef56856251eb2390d73d91bfe3f781790801e3c9c24 +DIST firefox-134.0.1-id.xpi 620031 BLAKE2B 3d9594e939287dfda94a271b07e9d05fcabd26021b5e75d7b23d72c905e6488188afad09654865addead69f70e158156761732c6380ebfc4450067e0eb121a97 SHA512 dd7d8b978eb809d99be1ea930496270b5b0a728eecb0893a15c600bb14063e898fbce3424e261048fec6e193c6838d990630f7aa8029333dfe149484cc571e58 +DIST firefox-134.0.1-is.xpi 642121 BLAKE2B 4da6a20307cde66f5a39246d966fff223c9f112340c23bfca79747caace201753cb51e8484a770f2f78229e936768b7722ebfd24e0b00ec52a704fc8bce2781f SHA512 a5816e6169cfd2031429454f4f4ec1943a2e79dbcb7531dc3c131cd035c4901390dcb122064d6e7687d9a727d1059dfcc9173a48c0974051c1fce6e7705b767a +DIST firefox-134.0.1-it.xpi 646156 BLAKE2B ef69e5d790b476ae98bf2f9d3cb0fa27e2b8b9f54754f6f206b68922163465a707170ccbe673e91dd26fe9711d46b5b4bde8d99fe2b2ac0abff51f781d5a0ef6 SHA512 b45be9b36a93f21bf885d3c70fdcda2252509ee9b8e5c4e22e9278d168b5573741caa73226a57806f2455263b52a6e3bfa7db204e0ea461d5a47f533a7c5f73a +DIST firefox-134.0.1-ja.xpi 704020 BLAKE2B caa33493e15fc4a0faa044d7b10dea04bdcc722e95c7bfc72a0eb78f97a4551c9d397ea4afba086364c1052d98c5904024084cfe06e23236fe1d00d45ae0e3fb SHA512 454b05d7a9238bbd3c8395e1175db275729950553e31dcdfb9d728964d3053b2cabcd019f76d738454c06554c1aaa41ef0e8f9dd2db44b62c0ea191c31da46a8 +DIST firefox-134.0.1-ka.xpi 711239 BLAKE2B c4571dbf8ab7ae8a9c5917eeb5614641221acdecd0e23cb1567bcbe7927e4457248353c72db1a8abb2ab14e1e8cc9411c6c4dfe17fe86c98845872b2a3db6593 SHA512 2dea45cce48b936cac676883d27efc7378adb4729dc639036c12902956c8e6eaaaf2a91274216c3a6c7b826a00aad81fa82d00cfc596cb44b683525afcfb2e88 +DIST firefox-134.0.1-kab.xpi 626324 BLAKE2B ef543360e97676a3a6cabdb3136f160aee3d1c2000f4828ef447f87c9aaef349df4e68df12f9dcd7ea10ee05f5b0e6b1543200f55cded988af3546913cd1e7d4 SHA512 1460708b8772a3feb4dcdae5cb93e0ad5b5ec31b8b002312493079d294af729e643f5ebd98b868c1d8b0f00b84fb307c6c2c80d4ed0d4530b431164e878fe23e +DIST firefox-134.0.1-kk.xpi 734779 BLAKE2B 997bbeb292ae336cf892137f6247d996e9275ad178d4bbfe3ec436400a0b70433bb9faf6ca1db2bf2333ec723eaf3b062e9b5b3757603474d88129772c800cea SHA512 810f48ec04699b0ededac2abe79e4bec78fabfdde207b4cc18a9a4f770f5ce79e24dd2b35283709835bf61094309c171184a62b826924021053ecd8195872fec +DIST firefox-134.0.1-km.xpi 529766 BLAKE2B ffc3986397992b7ea52fcf734ac3fe750825be92a2ad316f60a63a0e2b8364279f01741f4a6de07d852a5e02710124814baa48040f14efa5d179a13193bb5884 SHA512 512552f3a0b8a8500350e48f8b95b08b6fbd13e197c2a1375494140c7108720f17673a055783bc0563d7f1f2db643ff74ccc8f3e5ce1e27e8558ba47fd56be03 +DIST firefox-134.0.1-kn.xpi 494780 BLAKE2B 9526039df0db78e3f3f91a286b0918c8bc64c01373ac59a6a3e9c0282b8455ea3329b23dc740d0f134e909c5ca3d7049526477c1490d0266a720fae7c84967d9 SHA512 20c0ea269b76a481df5c03ecc9c9db0354978b9d39bd9d43bd55bc5956298d8b56c1a1edde1ec3d6b04e9cd83da3eb9cc4ebfee856c207f959569c282611cda3 +DIST firefox-134.0.1-ko.xpi 688661 BLAKE2B 026baa4268d3752812e9174e828667586873da09d12ae5f83e4391ba6fbcfec184e36b2364b2a72674eb17ba7c3a4627b41270f9c69f8959cc2627be8f8d9b1b SHA512 ec01d896bd887aea151527d456c52819dd201eb98f8a5e5bfb189fe33163e5c6811382fdd380f4da0a78bae5bc20e07147fe285d971a449ea72906ce22591d4b +DIST firefox-134.0.1-lij.xpi 488308 BLAKE2B 14da2a82cfc53a9f87a568f4cc5b60e0d8f16b009c77cea776e05cdc4ac93f29e21d0e75e4c1f66ffa445d7e4ba02a4c68e8d1986d1514d05555d1738dc6e0ba SHA512 9f7a2805943b6b47fab323a5b258bdd2c9420955d48b9ad5fb9ddde64481feb1a4d540c47c73ec83385faf30a013c07bfae49c4cf1f2d7dc151767e7022f3b6e +DIST firefox-134.0.1-lt.xpi 577195 BLAKE2B 091011e0e17b9eed978c7ac7ce688521d2cc0ab232884d4912ff2e2464a0541b475ef94ef8cfa5ed80addfa85586d246b44031b5988d9f78a21f2beef2ff7c05 SHA512 374e5870a1f17c183faeb7e0a69fd8378b27334ba7e21ba421548fcf95eab71d6a1fe89f404a83ae5e8c6bb881db41d48aeb9c0aa043c8568616aeb22f894a91 +DIST firefox-134.0.1-lv.xpi 590047 BLAKE2B 58ea9e0aa3202ccc3c31c83be173d94f528a6312ce4e7213edb2ccabf1921de88baf35f4114f8fe6f2d1cb94e863b9ffaab7f3dd1dfb1e57bd6511c7ec7c5b93 SHA512 8537d86331d77221903f3a5445db1cc37546f7ddb5586421449adc15a396c5308548e908e8a7a4188b0f2f4581aa007282461331192d3a8365b76bce0b234fff +DIST firefox-134.0.1-mk.xpi 497207 BLAKE2B 509213b1283627c6ed7b1391d38f27e7f1a7a72f6221e8fc411e2e95175ca5747b4a4b88a0bedeef9d5a33a230a2c78879a841dce931f5c11bd672d8d1006293 SHA512 cdfae1bc8020fe9d561cdd1f7e0277b9f0a772d12514a8678f5f8ea96e20b649f8448b2d9e67ee2366c263bc5c72e83bd98d5bb20e32e559f0970fd26879629c +DIST firefox-134.0.1-mr.xpi 536146 BLAKE2B d50880231e938be54d44fed045801f7eed192c0f710d36c6f2fcb9119074045611140c8c24d8b17f118f609f976d62df839965ffa25adb63a93aeabea432d739 SHA512 2cdd92c32658545fdf41f8b0ae50658be644c4c71dbdbfaefc7adabcdb5e6bf4fa5a32ea2fa16c8af5af232c12bfcd7c68551c9f3093863d433e2e6ae58f1733 +DIST firefox-134.0.1-ms.xpi 453846 BLAKE2B d9e1443563eff6d1bb2f09864e42632e4eb5e2f794f462654f25d062d6ceb989480b520b2a8afd067f4757f1d35154349f4e82433ec8931b7dd37b8c063e05d0 SHA512 40f99116731ac80fd4fd49fbc5d5fbbfaa7860e9806aba308a01960e2cf098f3c50d301e1a8ed9162e88f6bb56d9ff01566c0d3f835adca7ca66f11a08d144a2 +DIST firefox-134.0.1-my.xpi 522476 BLAKE2B 65d6149824f5fdc87552904f4fc5f569f9bfd70249e38e8ef8a7c723988f0ab18b08db085fe8c1ea1baab3b92e2a6749ca7e7bc434d73dbb771568014eae3122 SHA512 6dba49140c2a9c6a5348f18378da6730ea354bbc3366e289a1af2a5d5a7275bb56a4775ab958d42124690f1f51ba547d41abc2e1172eb5370433018016f989c5 +DIST firefox-134.0.1-nb-NO.xpi 625552 BLAKE2B c3c85efe7902e9d3e49cb6a72da6860eee84c4d79351a999484c3bad407bca372aea475825f6f3360156efb8b0ccf82945dc1ccb61a2914612ba7f89a6df7222 SHA512 7e06651cf7facc1ab104dc4a75fc3e232601afe9827556481e0bc28865f8b47abb8b7328ba90a730b5e811afead62152e028db8fdd94a835b9a70792d3fbb2fd +DIST firefox-134.0.1-ne-NP.xpi 524800 BLAKE2B 0714bd61a28deada6e1d4097552cd5b67b6f8d0c8e8be973086eda3858f423665e2a0cf03ab23de00b77bd9bcacc780d93a4b15e457eeeb01447d2c40ee95769 SHA512 bac85169e2f70e7d5c358bdb78204d7d8b8b5e10003f9e6e67962cc38066f79366f00127187de2a131abe331cd998559b82a06073c24d6f13f570ec3a9a0267a +DIST firefox-134.0.1-nl.xpi 642843 BLAKE2B 4d692e5d0beac05dca50dd178c1217a2076281a8eb55802e6e95ce56f8a6536fee16fdd2cba8451665a56c808ac484c7472e906db5c264170062b6a295d3285e SHA512 fa01408d61a098e26177f5a6b15f70e8812d4aa69cb7cc1fbb40cb414365fb7feda05f9880d5dbf4e552a62b527f5ea089b1fe2c26e6504528fee835b431ca5d +DIST firefox-134.0.1-nn-NO.xpi 629834 BLAKE2B 4d7141b7774bf89fe9d6b46bd49fe1786921ae80604ca9c98fe872e18a0d118c43ce4c2ff7542e5892b90408b398ae3989528598455abfe41f936ea6064ca34c SHA512 31f5487c3de90a49464f45e0479f91442fc96d543a780d0381c3f88a33e13a0cbe39359fa2ef0162edc1e46c571749c8c09a212a96c3a0385ebdcad03e138cf9 +DIST firefox-134.0.1-oc.xpi 626180 BLAKE2B 968f2e94f341d0bf6fdb7d65f5ddd2393f0657e1dd1e24188a7642c7cd195c466910f5f937b8d8cbecfc8abc014b212e91be853559a4517b5ae144b0b3017b3c SHA512 00695e0dd5bea54332a288decfcdc45422bc20eb44b9e83b94e7c55de378dda22da2b23478d16b34744458d6db564ca022b63d90d724d000f8c7fae7f3359287 +DIST firefox-134.0.1-pa-IN.xpi 723077 BLAKE2B 053f71b2a2cd6ca574a30cfcf1af4e1ff7e08a8efb4d67908304230f88e477408c37576e9cb3aa1a22095aa3261d86e5bb4e597a74878fcd9f9562fda86a2ce9 SHA512 1c8ec921c5de189911c6f2c80d9ccac77b70c75752e43c4e8173682042cd104d9e416af065114cc8c32a7958cf3b470877fd8dbb7c59d2fe8ff7203d5731d03c +DIST firefox-134.0.1-pl.xpi 661730 BLAKE2B 89079300e7317e686e68b61d9ae0ae1c0360882f7f01933f102634635c96ba8897bf00f9ae4288b7246071ccc0e83338267061b1df0da098abf11b10d552da79 SHA512 ec4fa15d1b3719c765277df503ee6ea42e1949d37ee2524b5d6ae30307db0ceee86837ce992a008938601966c925e439f42dbd96f421d781d2ec66a48bbae546 +DIST firefox-134.0.1-pt-BR.xpi 647946 BLAKE2B e14d24bc7d3bb37633a19f8f4f73fde518837819f91f0d551f370004a6061ede536939e51c3204a27b00cb2b93d2ee33d773e7d481777ff0af8c13c509e887f1 SHA512 8d0c6c5252064d7be5eee30384a3d39851319b206c158b78ee6cce146335c78bc847f37743fa76460f893578220e9c598103249c6b323ed816b1986b32001952 +DIST firefox-134.0.1-pt-PT.xpi 654958 BLAKE2B 438c9ad7cb9e2099d43f7989d09ca2ef8444e428e11ddd2e3c60878dd75b1370259b5302462d70dc3c5e5a6e97dfa6122eacd99abf363b78a2bae03f42295695 SHA512 04bd15d670f40827b25a47321d03fe20deeb511e82423e43336eb23b932de32cc606b87ce327e2d89860fc59c7c768a986dec0e880129804e5e63ed2165082f7 +DIST firefox-134.0.1-rm.xpi 644065 BLAKE2B 15f0becba9faa5ec3b83445103a6396c4f18b3dadda9491e9ecb9167fe042dbd2e06da47d03eac7d478973ad1a33f3c9aa6c3aa289d697ffb39a629c75ee884e SHA512 6e7a0aaa8a4e784997067284124e9441701e91cd52236e121651bf4eeb8f846bb04396f6eaa72010ac35ff8dba58e1da360b8b9f2e6213ea0de1d85888b35682 +DIST firefox-134.0.1-ro.xpi 554201 BLAKE2B 70e452ba9951671e6dd79265ec14c9cd5c1a1b96fb86586c916560674809b8ca1fe069ea1897b63533797c38fe568c68adfda7169c0107f57618d61f5790da1b SHA512 03e38daa7b9027458d0993624161bae6c2db824ff0421858ce11a90e4724e6fda754b1b71c4cd09b5b10b3bb59fbb6e419011c5d6e14ea3ece402bc7debd32aa +DIST firefox-134.0.1-ru.xpi 750985 BLAKE2B b5e15f23836309493e20bfeebec3c5d364c3c33dda136407f006b65756b84aa4332a87b87c1fc6f3e2d073310fb2f595154121cee7a852dc73684aa63aa0456d SHA512 bdcc365a4659c3c7ccbd13632e93822572e4037d70f562aa944dad7b04811ac270554ee741bab77a16ee5bf9248b0423008f635c97eca2696ecdddace4f169e8 +DIST firefox-134.0.1-sc.xpi 602163 BLAKE2B 3cf87bb1f2e4d2435d1d01fd7208db1a7c780d4a7a43fb210826825be0adb49b19fa86673a9d069e05fb182816d54310c30899c822e911cdc7c0908d78b81097 SHA512 67170cac304862b610e4e5c08648b4db10284e215b05651353badcc293ff98e2570372481ac682c6bb8921307be46f718803ac8d0dadd070e2c093c7ce52c1de +DIST firefox-134.0.1-sco.xpi 515424 BLAKE2B ed5cce9dea2fd6ef9f12604db52282dc22f35fbe6a190cf6141245712205c8b5961fe0f04c06b72de3b4f8c855d9e5c0bc4e52956b91540e6f270a2b0e5c09c5 SHA512 d7a7e95bcb0753cb7697628b7229ef8a729d9fe32e3160d776842e6fa2dce2a34e76e6a63d89ccd86164b5c61b997898e44f5d30196d305bd5feb4f1e93b3a89 +DIST firefox-134.0.1-si.xpi 626864 BLAKE2B b6b9163b7cf77aa53a38cdaa22f382b4e2c244574e899dc2486f65d29746088e81c045673e7c66a5f44d69727f2f7124480c6cc13c4233c1bc8da4936f7a5cf8 SHA512 fd4b0bff150e04d402d7dc7730a95d254505fd71e500396986b5732b5adf121c40b77d1b6ee6d5e0450e240f12d359b491c85eee9381881b60b294fdd367fcfd +DIST firefox-134.0.1-sk.xpi 680478 BLAKE2B a4d4bea37c48c58d819539a698ddcb3ba78e05747dde612092ca3616d7c754ed96eb7830c592fe1dbad2e9a3c589f93a9e6c318c7142abe0a23d5e2e1793f434 SHA512 9e0b0a832691dfa04fb524343b156059df58bcf9f9bba424e4c8865dfbf5dcdd28bba82b2db5fa60db1488d41b0512969c154e5d66d666362e51379c6a344a84 +DIST firefox-134.0.1-skr.xpi 727787 BLAKE2B 361fcf3bc793ffbc035ee7e16855f94025aa380c2cf432783a584a783b53b00544ee0d3bdfd58646600f1a57c1605becbb7f61bef27acb60ff0db6feeb377bf5 SHA512 85c1d0aa771bc23355818ecae2249e7bdd9c48fe57856aaa356b9c0527be1bae8afde2a8c063776ef1fb56cd0c7bff9a88285339353c75fcb304b8f637189368 +DIST firefox-134.0.1-sl.xpi 647153 BLAKE2B 1cc065a6fc66c9d912096c0b7f795d562389885848f42aacb1dfbfb8c80b9049c0600ae126c2b9daab98726028895efeeac1c518607864bae7bee9f06dc51d12 SHA512 cacc3bc097e493850f966f2d651beef9f139ebce1161c247cab19fd8ba0b93643795235e7bce9240e912255ac0d42a344313600d8a6abf6d2b1722053f5ae642 +DIST firefox-134.0.1-son.xpi 420280 BLAKE2B 50c91dacd8ab84485133ca9aba6989ca105193809607dcba3b83722108c662a51bd580edbe90f2945231362427d3e5a0066aa2c2d12f02cea3c3c905134ac000 SHA512 5ac00b2d8968fbb9bb3c03ea0218a47c29accd3dfa6314b84babb6727d2e017d5e0d858af7f38c873c09be61c70fa97ca92cd8857e6225c3a84e4918a3fc1398 +DIST firefox-134.0.1-sq.xpi 665680 BLAKE2B 0cd71ccd45dd4817b3a39b20fda396dc7e0cdb05df30590227091c583e576c0473299a688bda58ae45eee8669628ae4c4aedcf88debef8d263a7392072c46f38 SHA512 d2486637ffeddfe57b27d6e5a696d1aedec6ab5824e2b401e3e9a57eae02ee34d18ed63e80997c951d8c511f56794dc0b9dfb5bb8cc5e0c2c9683d385bb0b166 +DIST firefox-134.0.1-sr.xpi 676500 BLAKE2B 4f335c0f542ca7d4f7e4e0218fc67cfaf30088a78b1681c517e15a55a279885f4e4813a720b1e87fbaf39c4715ecee3eb4e79127fbdf23d090b72c4c126ec0dd SHA512 7c761fa604deb8c72898cbde1f2593f09b543d23919ab1b4b006ec80f8eb23acdda521b18328dda6449ab40da00e13d230d6f530b193af8b4ddcf2df745a407b +DIST firefox-134.0.1-sv-SE.xpi 644569 BLAKE2B 51d03f40f61fab659f622df7626044b416b0aae95b6f5e29b792d0593c681cc931f97395999a11e6c2f6ba0ce22aebcb27c41eaf33a9ef4843a0e000674e1d1d SHA512 cacc53adc221f3ca66b03e3acd91b4b486f1df816e163de7514c04aa2b822b709c2cc572753b11f84bec3f4ee44c9b3f856630450fa4aa964c08be446639e2dc +DIST firefox-134.0.1-szl.xpi 530485 BLAKE2B 6d306e4796e095454e8b3ee6b4c69c6be2b2e14c6802aaa442229ea9092f4d44444fb1e244ccc40afa283b8829df91d6d31f39ec18f4f5aefaa25b043ccb9dad SHA512 b0d861e1cca91ca02426bd07123c60b96849b3862cc0c5e2af680b56ff03267ac40de138f3ebedfd87458d7cf0f994240902161145a43ea67e803737a2eee6b9 +DIST firefox-134.0.1-ta.xpi 511214 BLAKE2B 1473f6543931c5b045a05a32232c18d0aa3cfcd9836459bf346c5c9828946358ad98a5905c22762fcd6f470f0dd6b385234730cfcf9c87105b8d0a3657215cc3 SHA512 abc7dcc57ee6ed1a1e4ef78183cf17a4801437d9993838adc30c07115c592743343706cfa1c3c03e5b102dbb3bada26f9af41e06efe622430c09511348938ee4 +DIST firefox-134.0.1-te.xpi 575369 BLAKE2B 1e941acb251bfbbd9c497dfad0aaf20727455a5ca1ca20e913f04a744c91349a6c221aed669abedc2cdc9c1eff255f9eabfce1c1f183a7a1d71f18a4f25bcca5 SHA512 c432f53a30adfd8e33188af5851674a75c80f612a784c031aed7b77e5f12b0aa311f157e3ea22d42742e6ab96b411db57624326c516378e2295bb194d5c5a78f +DIST firefox-134.0.1-th.xpi 727726 BLAKE2B b58b778f7e8969ae9f7b624a814a1702283946239c85b67465fe3ea45d12d620fd3e41dba023e3837f41f3a95bedb68a4312adda2d1d599b4a3d0c24ae616251 SHA512 5f7085c7e6e1d3fd509d21539d1efe82e480bbb571d661748dedfc2550f25a21daeb1e5730b665f79759b6433a89274452dc38ac3d1784846a52f7d34b2e1489 +DIST firefox-134.0.1-tl.xpi 538547 BLAKE2B a411c7f6ef10343e11963a16e9303f16f239903b246f438c98be7e019fdaeb3dcaf1decb98fd4b4b2cb56921cc7fa87dd34bdc1f8d2d29a30ab43e0fd87cd84a SHA512 33755684f6c881fa4164bd710a988a9b9ae186ed2d987fcfab84351137c2f166b5732c32661cd9d9ca5c4c4ab180b8e6c6e93ae12e6e74aeb8be5abc325acb72 +DIST firefox-134.0.1-tr.xpi 656842 BLAKE2B 1667f7e399f9407130cc6b6c003ee86502aa5d7e54350201ab457b7e354855d41e01058beaf4ac0a8b500c6ace40408753418209f7bf653d76888d8a52efca5c SHA512 02f105c1ce0142c063c41abb41a3e89933cf86b53a9106fd6c48950580b318a3928bc746ede5b1efd6f09f690abbcad2fd47d4e5a4398475dd130f18a7e4c375 +DIST firefox-134.0.1-trs.xpi 507815 BLAKE2B 7695fb9055440fb411d3a14fefb9c0468ea6021fb726a910a79e0dc5fb6ccb1254492a091d11a67488cda194d3a176a426f42b5c3b5daf92ab294621069866ec SHA512 04f7913b61bfbfd8eca29907a56f2ea7afded4a7df892510b70717895095978444f8d3ee6259adb451aa1c57f9b2606b5d8d471e1295ec2219ae1c914a0a8816 +DIST firefox-134.0.1-uk.xpi 742087 BLAKE2B 16c52791649d5c23764694b852f7530bb02e8a959143c2891dd4ed90f6e95484930ffa7c24238065e0b33105b6ac9fa675cc4ec7532a34228d1ea0e890e2c0ac SHA512 5b2d0d98c5ab94304b6998f6d0a99a341db2d63df775c21bcdb181ddbba385b1c552a850690b7f8518f0a7301ea71ae5e394fc907b3632dee7446c7085a44797 +DIST firefox-134.0.1-ur.xpi 564371 BLAKE2B 680680c8b3ff393734f6cbd69a4474dc34748fa80124a9e28114b98f7e864eaa0356d1480d6f4b071c871704ac8472930142199ccad6a9086435fbb6d5608998 SHA512 e8660617e96cb4fb44d828f19a3350c78eec71595e57f5ebd6d8f16a2d132523debb6fdfa902d0a5231f7efad1c1fb2dd7e7b231fdb36b041f85983c10006750 +DIST firefox-134.0.1-uz.xpi 482821 BLAKE2B 929e808752c36b2970cf5e20de52818ab0d284d1047591645a1813edfd97cca455cc03da9bf1e95edadf5960809a73899279506369f3697048d2251efde2a8bd SHA512 8ec21ac0a20c3200c77acd371f0cdef717b919eefb9f3597c80f4eb67466ce09ad863c734c1c82c56d97f1fc360d579d59dbe1349d991df7ced56de025918934 +DIST firefox-134.0.1-vi.xpi 683427 BLAKE2B 0b9926c6ea07a0f43ead4201d4d639358f37c7ea5ce0950cb81320bd52050702bf28038b85604185f655779c8456d88960410b1541cac48d9b8f2d758031e017 SHA512 bbfe3a33e5784ab5bad0dad1e2ae9cf183cdc7e325613d42f28765a7b93631db147b4e4a0430a047248329ba025f04e388ffb636d960427e6d538facdf157177 +DIST firefox-134.0.1-xh.xpi 421000 BLAKE2B e294f811b4631e5f82a4cb5bd78b6975a57aca1e4d81ceab9847579823f6f38652551bd8df931f9798a5afc23ea6e70cd9a5e6b64f18deb797b1eb4b4012d15e SHA512 cd46448d84f973d38887d19d57a34e9bb049ba4f550d8acc901c67a0825460fd8970df1e2a88560f633234919840e77aeb29d39561a51da026484b783d2543a1 +DIST firefox-134.0.1-zh-CN.xpi 684489 BLAKE2B 2113c7de306fce3c07f98a2301bb9a86e4a9ff0b5dc4af4f1a99b08b787f71a99aca078fc0d7eb1cd86cdf04d46ae5b42f7fb0018bbada84e6e6ad9115de9e0f SHA512 beeea5e91bb502bd560b8100033dc922b51f2e06da01754845ffdc58c08b62154f3ccbaf6b71a4b12da8bb30da5ec2a63b7019c1665a881757fca7f6f8a8f2cc +DIST firefox-134.0.1-zh-TW.xpi 686744 BLAKE2B 77b3cc5fa4e33e2ff940599082bb741bbd0dd3d5f75ce1f9c3f77c8440ee6b7eaca575883215756a5c40290bf706b4580f9a7b4a9d03277098e86105424d3020 SHA512 fe9393f2b5ed97c24efb82181df81d971238440bc41f6f716f66a3359dc9d8b583a81af8c69b504cdf2ae99fa69bff53f8240293c126eb2b06130e3ce031dc76 +DIST firefox-134.0.1.source.tar.xz 602467028 BLAKE2B 8ca00a9701eedf9b29aaf33ff1fbb57f515a006dc747ebac358383a49ab8492315ca321bd5b8e1c6d9966d5fefd83c0493c6df6419abddd3f07396ec7495e2fa SHA512 3f40ca5a753a66e08af4e8b12d75feab67b0567ecffd34f5cf013f49aeb809ccd458c8011e9456dc902c24eaf626078117874514eb40cee5574eafce93ee772d +DIST firefox-134.0.2-ach.xpi 468183 BLAKE2B 91455b0dea7133afa08a028baf85c7af1152c668ec18d021c2c4b52cdd022a783fe6ff957cd0a0d465c68f2404ff32e269988baa8730e9fa164b0bb3ac590ea5 SHA512 28620fa421c375ece3d4557f8cf6c6e03af641fa2e37672cdc243b40e773fc9204bd8d950dc7570006bf55d941c3d26cf57a170c79e3e4dd9c0768562af6e6ec +DIST firefox-134.0.2-af.xpi 421167 BLAKE2B 08b0592f6787e4a24e96ae5c4bfbcbef2d9aeea236020133e975537bf62e3658114f83fff2a76fb6dae46e85f5f951bbbb64d22b9e967f755672015be36a143d SHA512 a1794da6b6e2f8db7092e6821bc943b103ba8dee951b9f3397592df72f24c923b9065013ad9a4daca4b85339cb32b3274f6b4d16d2e9c977c13fed9536563f52 +DIST firefox-134.0.2-an.xpi 510946 BLAKE2B 29ca8a6c28143f52f88430224b83042db01810839b662038807813d4c83b08b5e9fd5d89899ed09e0ea2c7ba5a6299fe4566e809451c0ad89fcfec1236323823 SHA512 db600a4c5f5535c88fece4a47a2b6e734b0b36fa575e09ee1dc5913462c56d88011c2a32cee6269ef2ebac0769f6f0af4807b7ca8cb86f1bf827ee40c8ec8aa7 +DIST firefox-134.0.2-ar.xpi 633887 BLAKE2B 45ff400fd076dd182de8320bac741bfaccec8f285734e5e9b74b045e3c5322e156096e1c4b290b204b22ba8c42507bd892637e3f5ac682d172982951b3fba33d SHA512 1f5217a22582ddc0de9b308a5202ed9501f0a46a16edbb7cac5dda5b3a7e30c2a89c6de6f526a2a5ffd90602d220df577e23d16fc91fae7d434651e9fabdd6b6 +DIST firefox-134.0.2-ast.xpi 500088 BLAKE2B 24a5e6a8d25ed3d6acd75bb4f42bd111b981e3bc053c36d204fe9346a4b726f264c6f2c6e60babf6f13b38b6b0ba854e4898ee4db7381a025553e2ccc3225bb9 SHA512 536a4cfb4125b03c4a78a1e131296f639b9eb1c5010b35f0f4bd83ecbca2777c732b6484f97a4204da404f3558f036453518996fa410b1093a8756f928fdc365 +DIST firefox-134.0.2-az.xpi 494909 BLAKE2B 1396f12aa5694db9259e2a336340bea9c6ce149388472941bf815341558cef15bb8c21e6238c6b8d9957a529e35337160e94a2d06dd99885d089346db48e5ba7 SHA512 d55196ce86cf7735e5c54006ac1bff60152aca55c99b67ac8778ab24db186eb6d7b7028967a643d264033e36b1cac25353869b41a9a114915014a04a856cf8e3 +DIST firefox-134.0.2-be.xpi 744293 BLAKE2B 9487c2484b456c2f654e3f663eec7da783b7a156553eba084f1df3acabbf58ed69677251d3f1dfe2cbe7b0bbac0144790035a6497fa47d8457b32e366c5e63b5 SHA512 eb9e39c7521668756a516570dc6eed4ec179473debcd48c5ed74d6a1ef03893b6f4086c1b2e1badaeb6ed477b61c2a9e5ff3a5022ed33120ec62f50cd8e37271 +DIST firefox-134.0.2-bg.xpi 670910 BLAKE2B 15cb1c571dd14259be536338fcab9e459f45bcc0c4af13a74453fd79b8450520afa895a1503e22665e357e43b0d61cf8f18bc464efcf4af0b3be0916718d9b2a SHA512 1fac3d9fdc25cf206ee4bcb0da63190d90f755f49f17544dfee7eb312ea53f1c397e35d71d365931e5db407806cee6260da57fe31251980cdafbca633878eecb +DIST firefox-134.0.2-bn.xpi 615526 BLAKE2B c1c21e1f36a807a566f83176421fb48fd55eb0936ae8d71150c5e29c76e09ba3f91d46ae416754ab7b289f9c06be7a69f348061370ed8e9bab96d71fd32bc7ca SHA512 3d766eee4762e1a8c820406f361c8a71278f84f602df323bf24d3904a72a39a66fd220f265e14844ebf255a20dc2cd7d932f38ff653d688745e09c7217914492 +DIST firefox-134.0.2-br.xpi 598071 BLAKE2B 341ced2776436334b5ef85427f138a78378c0f21c6f82c094bbc05af41d40d6bdf934fa5814e5443464d3e7fd86347f594d96e60b4274a38c33868e5a0abf26f SHA512 e030429a56df0d4cb1cf939c07be904a4dad342c8ea725f09bdc46af79bad0d02f446717400551d332d1873a3b7a29d7468df829274109010192ed0da1dcc8a2 +DIST firefox-134.0.2-bs.xpi 557246 BLAKE2B 45aa9f9a02cba0001996fb24ca06f162f478aa25c76303f09cdb7b948dad7e5a0941ef7a1acafcd223c94b2879eaed62dbdc89204dc37954d987148a576e9e77 SHA512 d5756568967d997614bb282f16752a9e31d867b65d58b98e1bdb4e314f098f4b16b39c646d4776faa17ab558dab8ff6611a656faac622d6365686948e951a12b +DIST firefox-134.0.2-ca-valencia.xpi 550244 BLAKE2B 22b43f335fb1e929013bd9526476b2e910547aa94f4405225ad3016e6e4bd214a5844bdb11b48d307575ba8a17f1878525c4fba871b9b16e77db0310962630c9 SHA512 ef1f4c5f179291872083730de90df2f1176bd29c8afb4e2d777c2a0049946f37a0319a58b5500dd0fd56f9a67deb49165a18f89c3ec61cad57634817e05eedb1 +DIST firefox-134.0.2-ca.xpi 607770 BLAKE2B f1c6051911fa9c84aace6d130d466e20488f34f962a1f0e2d9f05f6ee9890d5a4ab282c0de9500a013edc8a8cabf7873476fc387f76cb8e02b8cadb1102dcf65 SHA512 788b5d971cb7062c834898a1cb8b37908e84e30ca3917c526f978697721d1a0c889ee941332fc40a24aa34a59278e5db648e467662d440bb2514446533e948e0 +DIST firefox-134.0.2-cak.xpi 597772 BLAKE2B d8ea4ce4f08ba4e45ab38c7b872c490d7a1b85b4394abc3c8d3f72ab30a2e41cfe56836f5f2a2ef72349ccbb9140904b945ad725c7d655a032385435a7e81fe9 SHA512 75d3097873ff94553e4f0fa2e08c6de495b096a365be09d16c4d5dd28c8b0b6085bf72905faacb4ded3a72f473824a838e4f7466f8e1c6dbf2aa3cbf984f7c12 +DIST firefox-134.0.2-cs.xpi 688678 BLAKE2B 4613b877cfcd46c3956484fd231b56a0c23a816dff6ee0cd6e26de153b41381c3b0d950904da0910579dcdc0f073a3336f25de8a1d270336eba2448e5ea574e6 SHA512 82747ce8469b514aa367284e55fb79c022430276b394a56b76903b8784bd7c569093216cdf0ae922542aafb768048e7a5e165c45b21791f6bd8016d9ac90303f +DIST firefox-134.0.2-cy.xpi 649384 BLAKE2B 6ef3a13bbc34ba3cbc7f8be369c3a414a80f8d19ab91958349c6820c15d00b9a8cc2acc0e79375025ac5705f45eb6ae6efac6cf93794adb148981a581a431ad2 SHA512 8fe21142730e5c321c741cb214e5814580a38ae8ac8bdd6d468f24e138950396df6238c5f087db7e8e2ae9dbd5e68454b3b206659edad50633098253b7e73c58 +DIST firefox-134.0.2-da.xpi 637279 BLAKE2B 7565d0cd6ede4bc1a236666f1dc44b6c2115e954167f9154b7ba85cfcd365cd5d147464e8f2120c39f5ead4bd774209fa8fd8514495d3054bbb95a2c20a27516 SHA512 f5d99d52b7febb34fe5cd7a7334044855f74ac8a919d8382e4abeccd7bd60113672be8b0bd47ab31c764f5092d31d66f566bb217ae1ed4b9e7bffde6e8fe6937 +DIST firefox-134.0.2-de.xpi 661274 BLAKE2B 121bbff7df561b7e404b86ab7a74cb2149d25059ad48249b24aa7272dcf0758817498229099d95eccd44e04fdae51aac4c48df670cce4311cf6872522c2c9bb6 SHA512 86cd284f5c648fccdfe28771c2a9b06ce879864052ae5953c0246c763bbc0e749fa79aa19c00ff4de28a946569c0a921ea8d4851bbf19e45ee5cc9150eac051a +DIST firefox-134.0.2-dsb.xpi 678095 BLAKE2B 9119f2cce2193148d29063f9ac59e80d300270079c3ef28bfc7f7a578f3bc569c5fb0dd95223f9ca8288b22c0a4c8668bdec8b00887185a74e3538df3b53413a SHA512 199f80c42027ebf314180ee92c25f6bb4e6c8fb62287b7a67b41f15a9a1651bff680e35030a654a8c83c19c1cdd88724ea5e102b4d3066a7e236f2413467774c +DIST firefox-134.0.2-el.xpi 760453 BLAKE2B 1f471a7e754b8fac4fc9aafdac2c0c58536e1822400b67952fe6c80ed5a4d8ea3c531fbce704a153ea7367e351010eabfd3150bd0874f9ece691fa535b90aebe SHA512 100e5e21cac15208e3c5ff76c3b0fff2dcbf33b2d0c643c0ffa7e5fae246a8a6212b92c33dc63325f0eab18e923511fdab662dfac744d1ed304bb338efd3f47b +DIST firefox-134.0.2-en-CA.xpi 607988 BLAKE2B a38f9093d70522ce28e0080fcfdde6f201b259d833a3eaa86bc359b98c512ef150f4aa460c26e7dc66df215f50d1511ade196e8a9e5f82052e035499ed54f0d4 SHA512 4e68eabb1e3addbe3c709930723df8406a005ee96209078e2ab38d85db3e2237a760d5d88dbc76de7919f2acd323e548f62123bfaf4795256277e9959c2390cd +DIST firefox-134.0.2-en-GB.xpi 609125 BLAKE2B 13baf2846643d2e1365d9a2111957300c8642c78a3675d59e29da50fbd6ffc7cf2cc0736f117896b9b9fa3e07e7d4f950df823b92dfcde6f11f5e11c62e30942 SHA512 04f9a3c61c87490dda717c80ae2c4b865064af9e8e0f6f72426ea2f47ef12f730097a48c5aee9d42c2ee0929e958a3eef84a11de6f7fdfa2b62e2b8cc9c990e4 +DIST firefox-134.0.2-eo.xpi 640107 BLAKE2B e0af3b4a51a1d6ff021b552ac337d965b9bb8bb9e4eacac75fc5894c9f685dd4780876332ef86f74ded4543676fbd472bd69b7716d026cae1687c0ee4f3dd39f SHA512 7bf6cd4c901a9db4c873d596f4518aba219c7e347ded0546cb1e508643f5e4b9d145fe43db2b2c3c18b21e57bb221b4b7ca2eb61252d06cbb9e1df5d71fccd8d +DIST firefox-134.0.2-es-AR.xpi 654030 BLAKE2B 672ff2459977d08013fa39cf98588337078f58ea3ebba74a9cc13e25498aa31a061163e7a38423a8f3043e3b065b7c469d12ab5b6b96a5ce4ea6deb691432a46 SHA512 a68772f891a68ec7c683932859d1367ad96fbf167a6488629b93e42e861d6d4222ca9f723c9076481fc0765e50a1956c9128ad4b292fd736d95f24998edba8be +DIST firefox-134.0.2-es-CL.xpi 653727 BLAKE2B aa596062cf6ebc7cbf7a0d5ebd077179ca0ace4873e277fae77528be48199d3aba4e5b87634b9c06c8168a0990973daf49b291cca71cf68dca338f032d522caa SHA512 9e68c4b40ee9080b6c86f214eca9da736a4e6f1860188944fb60d4d99f353e8a93b744b46973b0e80714d64bb629b2ddd34ea95d4e375a67d747b169a1992883 +DIST firefox-134.0.2-es-ES.xpi 648576 BLAKE2B 8f9d4384b42d10933d99b23eb3b0e9b1b3da622325f9fd11d61fe9b29225048797030f453289a4eeb89440a98d8b76baf57cedf7c6bf76ae16031b790c132b3d SHA512 80f54a6531522abe30da8e2a0d6fc01a70dd3d573b2bbc99d80c409e02ca52fd51f4feaf5df4b11548899b09ea26bf750bb22c74e8643cc4b38537bf8896dbc3 +DIST firefox-134.0.2-es-MX.xpi 657172 BLAKE2B 65d7318c90b5f3e2c4093ef1b2b1e06b308b005fcba9778474cf17bf3534cac0379d3eeb14d6f7608c35f99a30d21e3b244297b801e51d86a35ec954ebda2b51 SHA512 aa6c12525c7a2fa808ffc48203eced3ae17f4d9131f85b3bb1240d8ef6ed67cc05db091b7d0c896622a6b662adcc035d57515dca091f82072c0a615022e05a4b +DIST firefox-134.0.2-et.xpi 546712 BLAKE2B 7f7d14c2a4f145684e43818c66836eefdad661bcb23e48e0415a46377bb8f320d832573fedb3b3e40d47489940d8eb5430a3999535afd3ae4c7f7c736c6ac205 SHA512 747b51562dd3de57ee5d0c115b244589c6eb300a69c74a6a5373f942a9e88f106abe87e79043922580b2523051233f52bb21536063255bd3f1217efd4d214244 +DIST firefox-134.0.2-eu.xpi 622846 BLAKE2B 5cc311e6e69ed1c618dea710dbf390e9be23a4b5108d9bc2167edf916e30637a6c236969c62f2fe7bfcd65ca8a8f12542e68fa79905e5d8ec6208b961f216b96 SHA512 d61649cacab14051df4bdb8c84a9c07d75534a1aefcbaeff42949cecddb3e936ac20ae87db924b3bb624ccef8cf09c58c4bde295bcbbcb5dc46387ee1090c592 +DIST firefox-134.0.2-fa.xpi 625173 BLAKE2B 8a83f91f813742b553aa2e0729f453e30a6ba63544a5a78cefce822b1d5b30bad27b0c97a4d16757f7d88b0554678f6a0e436826bd1fa0af275bd79070a07513 SHA512 4272de5ae5ab383412972cfce469b1149d28993e4e11d2637bb5dea281d70fe3b434f8565058c491cb069f185a94324e82e380d539a4443408332eeff23e0b99 +DIST firefox-134.0.2-ff.xpi 479990 BLAKE2B 7d9b9df4107b0060dbdddcb3862e34488b95a74a37f8ca89b8840f1a823b34a013c347c297e6941ce3e939a0706d4d92b78eebcb818facf69a11f9607ed4d0b5 SHA512 563a20402a591390a33b0f20da2752c1990f35e57a8d200bd188e877d99eec80f12febc2779ac26a72db639165500271463cd1755cb5dc97d0646785191fdb15 +DIST firefox-134.0.2-fi.xpi 634175 BLAKE2B 95b0932aefc452a2e9b29861ce6c738379ca248f5dc20a6ef17a42705637ce957011e9bc44b73ed1b9e0b17a137a06909299f5732e5e74856b0cc488b9508e23 SHA512 9ad86fa96130a0522c33b5bbe8f5a809dde0f2761c982ff14723abf10984707e707d9bd87f4e75efe4f8868412884f5537847fbc6c246b7309072089b415c143 +DIST firefox-134.0.2-fr.xpi 667545 BLAKE2B 76564df53bff5d1a01272bb460d6d91c79b5f78d9e6bca078e07955c4f4c0f116b4e7f8b7abad35f7ece426113c2ea60d223d831b2c397e7fa7b451f7378e4f8 SHA512 389b2b916d08358de46f9fbd60a2462c4d362a1a3db7af611ab16c596f9cc0b8bc52517b479cf78e42efe28c72768ae14d03296d964330679cd20aada0767b5f +DIST firefox-134.0.2-fur.xpi 652564 BLAKE2B 98f4716015835a0749439400113517d32a29a7f94de952f4c26d534beb4b9a050cf461b1a125bd36feb945c10d181d2c144ce02c20411af1080aeff312f65fc4 SHA512 96deab0467b2f92b3a298de3139dfcfbde89c094771bc391d652120211d6e095cfb8ebe19f5c85aeb06a70939fe2b609110254d76370b1bbf0a85f0c35571586 +DIST firefox-134.0.2-fy-NL.xpi 649698 BLAKE2B faf13b822920f297bdab3fb722307a9e87d5f5682595fe467318305120d92ff22ca2a8e749a600a104cef8f3ff64315b1a6a5dd95866ee24bd5de0a912cb204e SHA512 11a028ab6dc5ebbf0c6ab9f52b75f2ca59cfcaa47a9a90ab77d228c0d838a5102ae1d994c45d10dd9785ca020a7308a645ae45f2c0dec1f3f7d049593421cf0a +DIST firefox-134.0.2-ga-IE.xpi 474980 BLAKE2B 4e2f1835f9ce5136655f8e0ff1a7e598af38c08ae55ac1d2937517fce36040722daaa60c5de1894bc3d7cf8619b75948097d21859ee7eb09918dd9d6b5bc48b1 SHA512 dc76d77c1648a942c08dc9091c7b016e18b7a2c284a4f6bbf4e58651bb520c4de6319d61d0836b69a526b1e15478ad697da7d459e9eaf335d792794a2e59082d +DIST firefox-134.0.2-gd.xpi 603300 BLAKE2B ee7f7ea015f6e08e0017fdd8cf8b2a15e1d12c894712c5fa06aba0305300863d1741e6443a48ffb9a69fc84bfb3745a55c62fa1a1564d8ecd41739b12d03b5a5 SHA512 d7612b7726ff3bd7cca2df22e38ece666b6d94a6b575c8f77dd098f067aff7d85f087c4428ea9ee79490eed5162cb7250ae2aa109e3b92aa9bd49574b98c7577 +DIST firefox-134.0.2-gl.xpi 614898 BLAKE2B 69322faa162013925e25e00d684252e8ea453ffb5dc99272e7971628ea5c06ff0d45f039251906ddedc25ebe10103e1294fb2d9feb4f4bfa4609b14872467a25 SHA512 f387aa44a401007b7fa3da1edf11b3ba42969d92ed1449928991f604a889bf8d952d9fb8dde823b1f4a7ca2ac23009554e5ff06ffd477a04a66daf6ec2586d97 +DIST firefox-134.0.2-gn.xpi 661083 BLAKE2B 7e5fed42738b3891ab58f658e9fb38c16428b4ca79e57e2e661c12ea60ae03f9b69e6861c7d25af82eb45f0083fe296515421379c7a44a8ef9e47661d684ff3c SHA512 9b1edcd8510acdc8cce031b3753f6ffd65dae202fff987e8a1955f1eaeac7c494c5870b24678e052d565ce885a89f2f3aafc34b768f81efa92fa56c5420af7a3 +DIST firefox-134.0.2-gu-IN.xpi 531506 BLAKE2B 32da48c3da174c5dbc784fc289556b28de43a78e4be1e13f51baf9ad333d3248ef37e9af2e51932b13c31344d95be4aa1b95369a7acab86d7e9c443fe9045716 SHA512 3ea36f9a30c60cf715f2253448784e8a2cdc241ef6022c92333e92078aedf132b8932dc67e94d91458d46ea8a649fac4db54e0de510cc5281431fc05afdd0dba +DIST firefox-134.0.2-he.xpi 656250 BLAKE2B c1eab0002cb46ed5b4a938ab176103e8c98ddfa116b62499b90556186ad2506606b5189d88d5f3dd7f456ce4cdc00de6a4f05a3a279c235bea03af50ff351185 SHA512 3f203a678471a86ecb5ac9ade5337fa5df1a1f9f4cce5509b3cfa7e555aba52899283086922468d1c4fd10d7e6f626c6e1c60faee6cae6153a2db3948ee126a6 +DIST firefox-134.0.2-hi-IN.xpi 570951 BLAKE2B 2070be5756dda4f052dbf44a102a981e175d7ea677e3f12d059abe95908bd285385a96c6e7ec1178b964e5ebfac4ede72bdf9a46f70991256019059fa3583123 SHA512 26170c931087ebf07da2a4d9b047dc28e671b0d0edaf686ff316a8dbceac75155b3baeaa7cd95023596fc1c6828b24f140d8b5777e603ddfe9af4cdd4148d532 +DIST firefox-134.0.2-hr.xpi 633364 BLAKE2B f2b25071146afe6a855a49f69834253d1fa0e7f293e91b05327cb3e39a8aa677379a302b063875d1a798971ab0ddb2096525243c2c92abeffbadfc9cfbf517c8 SHA512 14cfd5dee97851fd66ace3c8f783023a3e1f15995c1d1bc33a1608b0127533d142926aeb1816fa46143414a20e25d8cd26a32b6e9dc0b0f43d950aaabf775433 +DIST firefox-134.0.2-hsb.xpi 674094 BLAKE2B 6946a02e5206db18b7e7858ccabf92c8ff89bb19b515945bb3ab37f32242ab8794024bef63c37ab0b6d1254bbabf355ce85bc2f3f31ac6b784b97b39f66c835c SHA512 5ff6d30ace7065540c177e8f593df1b0084812223844f12b9b2cf01929bd0deb2eaca15b8c73d6fc98e8990fd1e5d7bfe67f91659ac88b5310cad4981dc34d3d +DIST firefox-134.0.2-hu.xpi 678171 BLAKE2B b2de66091fb9750ceefa589cc816dc86fb15ac050144d2900f226f41ee9321eee741290bb496b3a222aa1b0c1349521fdd27e7a0cb3310b1b69ade1b561676d0 SHA512 756bc161ea6debf018ef1b3689d56e2dc14cadf3e1a297481131d16a5a0d16be7e46dbf30964df8042c727af6ade87b9a0f4f85fc72a6982e72fe42b8648ff4f +DIST firefox-134.0.2-hy-AM.xpi 661668 BLAKE2B d0629f388ccd7eea29b7a62c15b2869f60eb061808e12f67972c3cc94c114d67cafc5051c693506d72ed7c5e4558b055866e04dc2b5780b36606f6a3d70aa043 SHA512 95cb4e2e269b7fb5b061798713e53e6756882df1a522767c5546c7ea022e2da5fb388580398627f83ee7ca38f2879bc2d7b78e222172c881471e509bfe218d5d +DIST firefox-134.0.2-ia.xpi 636641 BLAKE2B 0ad7121b94e38d1b87366cb76ce922c1388a5120cf56a8732c5b3e38be748d70f7ed105e4557fd1c51d27e3cdf32579b1bc1d6b0ec6dbe08cfd7cb6afb9c414d SHA512 d4b50fce3087c9bc86172e80f61af1c49a5726d82e4b217473c011d7d29a997b8b98d101c0f7c6ba59b968ec82d0be33383fa23fa04522a13e447e12917f56b0 +DIST firefox-134.0.2-id.xpi 620030 BLAKE2B d19441f894fa01bfa9d70ce0ffc22ebf288106a3c5316a92f7f1a4253765e4ec34ba1b112e4900446b89761364e58f7ecd1c816a1fc944bedd5ae578f66cd356 SHA512 f9f585e99bf9f09957f92deba6c7131767a9379d5770e776acaad1bdd170f6fcb5f8d91a50ada6d777d307ebd1e7e3648a09d2621a2dfcb90496851929855a32 +DIST firefox-134.0.2-is.xpi 642113 BLAKE2B 1650c60e471026f224ea44938f5de3ec347a0567e2262a3b592cd675e6127268e38bf9a4812da817e53abbb9c45d891cbc3e445f20bbec73121e94b956d59835 SHA512 670276c003825ee87e2ee9b875b3cb65c7b681af17e3371765f77fb257d2ae768f6e72f58a05caae13e7c686d4abee62cf358ebcb31bdfc4ccea395019d9265e +DIST firefox-134.0.2-it.xpi 646155 BLAKE2B c3a61b0ee00cffd33a1a4cdd151925f130937eab32abd0fcac8d01ec16c1d22d4451edbfbd171cd8d37d443ced974c30e6359907765ae44043838845df6b589b SHA512 47d05d3a2864cc16ab798f9fba75ab60f7f84972b0a8d6777d7a16ada927912eeff5f47505ab0318d177adf5a06dcae066c38d612c50fc161977aca42b5657c5 +DIST firefox-134.0.2-ja.xpi 704020 BLAKE2B 21bbb707fde92fd102c02e05887d43522a6516cdf3828d4b8944a0fd285650dac73815bef11460e351dda3f033d6fe5f8fe3e22a938f7b9ae9a4acbeb23001aa SHA512 1630e3a3ab7fce57b326313948088afc16f9d078584b62f3a086d41616dcf12fe4c69a717964b315a19c8599ae0c4c6b3fedec92cebe4fec2736956a8d78fa09 +DIST firefox-134.0.2-ka.xpi 711237 BLAKE2B dd0113c3d3d31be04380a249458c1deaf436238d3613100f46a722cf4c9ec7196921959820a57fff35c531a09366d719d6cbb7bd5b58d14ead19f3c6fb810d45 SHA512 99823fbf10be1a22d40f809d6f176358666e087536c249da17b5febc0184a702cff3f3c6daae9116eacef2b24cf84d7e20c127809480c0971c22cbf4992ee34c +DIST firefox-134.0.2-kab.xpi 626325 BLAKE2B 4a6e407a984e1c67c9807e6064872fca46e98db8995c3f7f0486d11ac6e5cde12dc19850868971ecb4e16e250548284b416a03af40c337f91aa60650382bd8e6 SHA512 0a536b59d7e892d347b2bc50c83fe24795d36d2d187cad8866a7cd11b8d94aba8796f1d033372a4d43817efdf61881ef383fa48b96e3918e89aac1f461eb6d81 +DIST firefox-134.0.2-kk.xpi 734771 BLAKE2B 3ca4504c41e83efd367df9b8fc0322f6b4c56a90af0149486969ed641a9a9fa29afe6c8e8f6576aa41c5515a3366ca502c7319b3c08baafa9fca623ac051c66d SHA512 a5750f94a84ec6e54e5d0b9962be729f3f6c71f3926b5bb48cfbd881013b734ae3afe94863ccb2a290ba593537515ded16973320d04143104a5abe2181fc3162 +DIST firefox-134.0.2-km.xpi 529767 BLAKE2B f1e01001e37ec62f75a999cd0b9de498f5c6765174bf42bcbaf1b0dbc52fa734f8e6c2673a5d1f439ddc65b945f7ef1f045b9ef4dc05f744e1be7590f9ac6b60 SHA512 a60caaf040a14ea072aa25b2165361f87af0005731c594c15dd05e7abc9e435e76575a51594a1b8d0706905fde23b5bd780ac9bbdbe72d8dcb326403da8cdf11 +DIST firefox-134.0.2-kn.xpi 494772 BLAKE2B a64a6320bc280805c7d2177d8df97061dbe56410cc1157ddc9cab78ecd91ec948ccec2eff611e623f2e70dd43821ceba07ce6c3939ca6255384981925e69008b SHA512 9db4d0d538d091217c6f8dd0d8bee01afcf3f98aa2197055222744468cffd8cded43d53b702dd4d8c62a7ccfb57c1f3a6abde473d58bfbda774719f5acdb368e +DIST firefox-134.0.2-ko.xpi 688667 BLAKE2B a460fe1b491db2ca958ff81053c3fd1f1865f20ceddae3e5a318470deb5cd16cc566dd0b06427b7db28467b122cab2462841c467fd88aa6edb6590626008ed7a SHA512 d3eb1a9f32a86bc2898240983beec368b5855c529d3eb5ec39616f60ec531ab538dff4a8ac1bfe0f7822b898dd27ee73492978de360057c5a10915ecc4d7ad70 +DIST firefox-134.0.2-lij.xpi 488326 BLAKE2B f1c72e8d2a1c4ce715d8a88ade1166dc2871e547dd4d6b0b03cd97aebfea7fcf3ec90bd97cd5d80bbf72ee5f9ce311eed86a41a3e0c5ce3f4a40b22ffc432f01 SHA512 3252e2db8e744075aad460a245a4bffdea90963f32b3e1a44157a752fb473b56dccf1b25157312870b3ffb3cdbe1b0fac0c12b987e3a25ac999dace5fb714f1c +DIST firefox-134.0.2-lt.xpi 577197 BLAKE2B 9f3b73599d8290f9c002e6f25aec7957603093f7f0a1fa897915a08bdffd4608d0ded77a6851e2a5e9c0910037b37847796f14891eb18fa3f8547d11095f56d8 SHA512 62ef191c57989fa58389d512d3bba0523c105bb6450f3965e4405ed862d00d21e4761c9d90f4e8b1b712e04e0178fc0dabe56328e94c657c90e006690950f480 +DIST firefox-134.0.2-lv.xpi 590048 BLAKE2B 9ed8da5fdc57463a2b9cd3628b297d36fa5f091a1a4f26122728ac2125cf0b8a5d30aacae22289fcc8e8a751471bcb3ee0ee50679f6254e52aa20fbc23ef76ee SHA512 11696c0ccecb557d71d96130df6125c4b13b08200412aaf36f0a64ec44b5b9959cda3da9dc88b8630df5099e5c528b99eba150b97a8f526271ef657b6275d368 +DIST firefox-134.0.2-mk.xpi 497209 BLAKE2B 42e2aff8e6717830b95f572ddb009624214b75fab977abbfb3b614bc0ced814aee91afe162df8d98c555b2825c59055c3b658ce19e97e1453e8048960e468722 SHA512 4a1bc08b54d00bfc05fac6843c72648dfa130b0c6666087d62d944de632799c7dae9d46042e34e5855cd9713f8ebee83c2cbf0bcd7825086ec4456f025a56255 +DIST firefox-134.0.2-mr.xpi 536144 BLAKE2B 4eed7afb68feba320e023a13733acc7f24b4833480b5bce429c9ee25d8b5b3110d61b84917fc145de05f12e19412d13d80ca9d0632c995f9a9954e3fc4ede0b2 SHA512 21a052b0aab09ba2ef83231a46b67c179e8a3cf2b47e4bc913849d40e11109bfcd90805b129778cc5faceaed6b787a55514ca8ea155db063011ab8fb82e832ef +DIST firefox-134.0.2-ms.xpi 453844 BLAKE2B 1a18ab8fa4948dbc26396f2b3649334d4a95916b682de36754fee8b5a9478247de9ed4084808dd082c5ea8843e2d5cc906d84a867a6b68d00033477b8f16812c SHA512 4b22c1092adf696508d45e396a334debee949679cd4e4f745ec32c3927c703bc92c8e463b09f99c84c6a5b4f8ae7e50671843b2e5d160e54b5cd74d3b4569d2c +DIST firefox-134.0.2-my.xpi 522472 BLAKE2B f9356284b54fbfb432a55ca6f9e66150fdb9fed71a94866a7d3c37d5def73fc27bed6d5ed9ac367c04e8ff3f981ab489be08a70c615a6d2e7022259a6650b619 SHA512 eab10e0b8563f223ec3a19160cb6a095fe1f85b544d3df119964446951218a22585aaf7ac0f597e1ae41146b009fc59e6f77609ef47eade7b684861a807790b9 +DIST firefox-134.0.2-nb-NO.xpi 625557 BLAKE2B 51f8d44e3a15a52a7bc63d29e38d715c7c13bd781532c80f6903dbacf9607bd4e4e4eecb1f21fd58c4839a75f147d32144137cb38632ab585ad4907866a9d8d5 SHA512 17ffea7c83f88aee8cf0859b12a27de016bf2108be0f514dcc60296c1dfac7732bf286f907bcd9f671d17bee08a8d6301ade164876b2a7693fcd577aaa70da7d +DIST firefox-134.0.2-ne-NP.xpi 524801 BLAKE2B e7ffa1b0fcc78f6c895ce9b9338ea8478ad61c6cdc89da77e048fb44edc3a77e4b5b70202a32d7c1f78e7b2a08503a259e0155ece02fe4364070a8cd2a7b273a SHA512 3bb166bce1de86f2d63ae106aaa38365efe5a3d7296d1495bddc7c6e408d3530223d6323826aec6c6f0c8a56f614b2401b13b2fec783fca2df68dbcc5680b99b +DIST firefox-134.0.2-nl.xpi 642842 BLAKE2B 7abe0316d0225894fe82eae71dfd4552b7454f9cce8d67e5d4e3a015dd4d97b958fc0ad65b4c45ea671d0bf3d60d4a007969145ce1be546d1989abbee6046db9 SHA512 19c48cc4466a7fab770a558967d48012d3b8524b7009cc1031b8ff65ef2215f03a4db97a2cbe0b8f7e975d10fb5d737ddfc7c8e0adb0d334cc252c81527c1e40 +DIST firefox-134.0.2-nn-NO.xpi 629847 BLAKE2B 72347e2c0dc988c32fa03634b7060e0edf4e68ae48b0c4d141713145cbec14b7b7f95566b4b2c6f348b0db7d22f0af4143fdcecd2afd256f7e4bb75a54b0bec1 SHA512 25ea6c572de098a03e977dfc43cc1d5eb5b0b6f01558fe19d9841f315e74c35362f4a74a7e52c82c5f9abcb3ba34cfdb6d208291fef0ecee0ae5d2355b278a36 +DIST firefox-134.0.2-oc.xpi 626184 BLAKE2B 9bb0f6fff001d5a48b8da9ee57982e41dba5a1839337763701cd3478925a518c1c232fc3768751340ee9028733401ecfb9caf8139ef152d058cbd2c63d325708 SHA512 b8541481e6502c4d21b910cd2b82afe6b82ac00cd792b3fad42544a9a85712d553473b5a647a0c54fb41fb50a9d4f8d40127089dc702612053d31db8f4adf3a8 +DIST firefox-134.0.2-pa-IN.xpi 723087 BLAKE2B 98c4db6d88f73969e6bea7207dfc44b44ad6486afa0454f4023f49341bbce3bbc6e91085d9ab5abad412ba81c6082efd82950744b9359898911e633b29f7423a SHA512 79cc7f20d3c2c3137cb8c9d6d3ec085eb72c1b814b4167ff6dc3c1092b9e212bbd4462f211d2d12702fd52ee7ed1bc5ffca4edd50b74f3b977facaebf27424c3 +DIST firefox-134.0.2-pl.xpi 661727 BLAKE2B 8c188693e8826a4e7a4b3ec1a66998274b704c9b5031ed97d604d756c99cc5e8197e3dbbab0e820701aeed71cfedca7a54a031e21a0d21c3808ee46bfc58a56d SHA512 a920c895d696f9e684551c3c33be2326b16b05a35d9e97c24cc93f957336f7842db9c833c1e42402cf8fb84e4080a677f8087a3edbe8220b141b6f7c87f89668 +DIST firefox-134.0.2-pt-BR.xpi 647959 BLAKE2B 64e241fa624eed060dba10add81d63c32d54b8fe0c927ddbb4d8568af6db5efa6f8f21e703900ba7b8159aa1ff53ecc8ac4afb7d714c5b0c039f78dec226790d SHA512 c13a0bc90c230f64b961f2d9c40ef884596722ea04739a3da6e90aebdeaa8deb7b5dc2c0112aea6d62c60e8f34f7d51d3ea5050af2eda2aecbb91bc807a046a6 +DIST firefox-134.0.2-pt-PT.xpi 654966 BLAKE2B 84baddb4e46c48f98651d61480b3e609371cceeb52bba684c37f1da46af61621743d440c802dfdadf3ce597af6d915b8c358a578d73b381c3f82a65b5dc788a1 SHA512 31788b3bc476f6019ada36486ad90f3e476b1c6f20d6ecde2333c19956a8761647717fd037229c4aea02454bfb5b8b0926eae8e76d64e24ae8f2c5b89412f582 +DIST firefox-134.0.2-rm.xpi 644069 BLAKE2B 971efe6bc012c621fcfcb0582ab2dc8b3471a8b0fbc4ba7a5082ddfe8be6048e53452950d0bc7d5dbe40592c1e715194ff238a7d45347a7da17f0162fc441cfb SHA512 edd13362bd17eb0fe37f97db839e402ff740d725c149c66b7b830e2d223f2c29876150705f95628213231103111504a64668f1c0975e3f24a62f409acfb60e34 +DIST firefox-134.0.2-ro.xpi 554203 BLAKE2B f7bc2c860db254f5ece82eff1467c784585810c3b4a0aa879302a41437695bb24559030917a3d473f2ebd61d3f02b437ee28637dbcb60fee5d153489367fb33a SHA512 ad7054dc38d11724cd97fe0cdcd0fd77028c4782aaf549c03b0086e84daf86b1a1244c074aa214ec871bbf0e338af534b1d2624646cd79c3d26d81603a0be27a +DIST firefox-134.0.2-ru.xpi 750994 BLAKE2B 5c3caf97acd758bddab7ebc75e4372e6c333bb7b41b9cdcff9a00c55e0c72a7376b4ddd1a6f553b63a5867821272713cd70ed43c3ff561f56bf52a0e14d505c8 SHA512 39f74044e69959717fba65b6c95943a7d29c848c8b338aff5410bc0f608c50d0b52422192929c83d1bad74f328d228969a2ab008a6fd409054751fe3249bdb45 +DIST firefox-134.0.2-sc.xpi 602168 BLAKE2B ebd0edaa3ac43d267334cd054ff7764ea7aabb1978a97b70b735e16100c30ed5eff98fcd1f5bd00829406d7849d883d6a2cd94bd01c049cf3d80505f3633e862 SHA512 3f17c57b1136f5be1ecd51155c0cf38be8d4b0a8a9442b8dcc46f7c40e5d0645b581fe5ed47edb97e6716f8db089ddcaa714b18a1b774217abc0de5199a20498 +DIST firefox-134.0.2-sco.xpi 515423 BLAKE2B f4acfed405aa27c2f01114f97c1a086f23b696a93dee91bdc31a265020ec87c09ed0b530b074aba675fe21a7b71bbcffe0169f59d5d3ed8b0f6e0e4bf30fc6d1 SHA512 c87053eee836f81a6680d38d70322f2944e919604d90c3df3b8c589b745ab80140026ee4758eb3825de4d1349187ab27df52136d9f0de19a72eca26efee61292 +DIST firefox-134.0.2-si.xpi 626869 BLAKE2B 1439f04b2666ea656757cccce4507c290a295bec746ddde94b3cce29218b2ae66608985d6e6276e0ad140a998d10924f33544864874a64d761788f3f12a05951 SHA512 4ff1fd4b0af8a65b8108307864b131083380c69a39f6e3feffc8ff7e5e209d58431f99415ade2a57d211eda7537625ecda5384f4079158f73d97bf00e105528d +DIST firefox-134.0.2-sk.xpi 680484 BLAKE2B 0d407ed97a02195f45120010e97412add658c6b4373c3b23851af6db6d0bb6db2a56fd12d0939e82df53e60c21d24af7427077f5f11f236cf3d05fed4b9fb4db SHA512 3a50f280da4a62ecd3e91c376ff24eb96a605189e3c4975064ed56c8a9d9a9906cc723ee166bc7b74c942dbef9b596aefc4e3afa67361498ba9375b338ac4a01 +DIST firefox-134.0.2-skr.xpi 727794 BLAKE2B a93a3967e7a1c61e43a849fa5b560e9ea1491335ff183c508ed5c402725ff075fee5040e3bc51d7752647fa955f732d225ec70b5b974f308b72d7951a912949f SHA512 d0f0bc5427f00ea16cbef9404a2699fd2a34fdc4abef0d328bef90ae8bf7a9244b5d205b388db714cc9fc4b4caad2b2399db5924e483bd7d18da18c006ef229e +DIST firefox-134.0.2-sl.xpi 647153 BLAKE2B 8e54d1c994721e4e19edbc707f56f5bfbd8ee6fe05e5cfe499e005ce19e54c645bbf0b20872dd0d7763123c69cdd7cee6c12b5b29138daddb7a42c955c5f970b SHA512 1dac80c77b1d6a2c0661b238067d424b4a40d78b29d42096bf45aad1121c54c27783539c529a41983eb546cd5f311c43812ce0debfcb8fd2fecda00617a5695c +DIST firefox-134.0.2-son.xpi 420280 BLAKE2B 66c2e089d4657b8666ff5eaf01279c96f48dd84f074039dfdb2b6104b9ce3bc3524e57698744382f2cb8bbbac8847c613f8cae9dbb3ef43b32915314f14878ca SHA512 a59617ef750e221cc7efc1e9d5f4058324be42f786619cd4c1f173dd94ea96962d3e53ede27602d00a63fc1ce0258b3abfdb63a3fdf833240de3eec51dde3ba0 +DIST firefox-134.0.2-sq.xpi 665690 BLAKE2B bf63c5f42e94edca443461606d1c87f1d391597b72fce85c2dd318fa274636205730aba40fd3374e86165cf06046e94b080a3aa113eacbe3bb3123dcb03a100e SHA512 8c31684a1a1fcdbfa93a0a579868098ba8b83aaaeb86e65c464dbb4f36b4fa747a3b4772a243f2f7d2dc18f71a3a5c93cec3941b9c4b4b049be97d15c94d4a36 +DIST firefox-134.0.2-sr.xpi 676502 BLAKE2B a41d7cd2779dafaccd63272113a9a16b531e8c7377bb1310f734a3a0177fee77698cf42af2537c142d49c84f9d1cfeb431955c74702bc76c1e4dba56184a7573 SHA512 54b3fac720a9f6b5e4b9c0ea2f7267f1a481cf1df5fa20e28a6cbf2f2efbc6f1643ea151e0b1aa04e98f062b39533f4cb472317e0b72bdff32bf4e83bd432ac9 +DIST firefox-134.0.2-sv-SE.xpi 644572 BLAKE2B ac727677d059374609860768bb094abac9556d7c0f5d3556f05290f7a29a71a3d065211feecc2465537a65b674cbfdb7436d8c93aa5988e891053ffea6ee0f0b SHA512 0cf3006e822bff478c31e9712b473222855dac3cc3796d0616c0adca82040506daf66a25c5a50b82fe37dece9f47950c2b4f98ae914f32c6997769f62577184c +DIST firefox-134.0.2-szl.xpi 530486 BLAKE2B 389cd7b376393e3e0b61d7692fd49ef323340421d3aba5eef188ae1cde42d2557c6b45f026de194614283893e553eb633fe73862a70ca9c0aa2b68ab6ef08f22 SHA512 5053c677c79c067a227153c50cb170c73ba2e13343b3ec45b158b9f90e6b39b3b2fe356e66f6c5423fed398aa9ef9cd2eacfee746b174d0ccd95e489b734cc09 +DIST firefox-134.0.2-ta.xpi 511217 BLAKE2B 35c2badfed05a3a174132c9a743871b716e9dff0fb51eb5ffe82534613805d0426d7b4aec9bcf619a1ef52946abd9da2fac0a561528eb6577c179988c31d1dbb SHA512 8ea523da807a016445755ebaede060bbd1d16f113769b8ad6e946ed62539d07ab647109a4c83a034236a444b37c71095e5aa9be1f87e9d15e105853876951a87 +DIST firefox-134.0.2-te.xpi 575366 BLAKE2B 1b43e4999e2f2004b8db03136b80fa5c530d4f8b81d7239a815839872170a399d06a7668bb8dd2b359907bb206c3c28ce298ff17214ae51b480525051620a156 SHA512 0c241e6a30ac6e87de1c5d2c92042460f01203e8c26d14495fca18db3891fc503a5e8bc61348debf5f26a38df0b0a982f4ac499e43d1b6dbdc17fa0096ec7b59 +DIST firefox-134.0.2-th.xpi 727730 BLAKE2B ea5b4de061fe582cf1f33ebdbe9eb7522ef5caa271ca63833c8d3d203df4f149f08c5b8071facad810d6273b94c2f323b04dc86bb0de0d6f8d20bc9cfaf65016 SHA512 e9160fa79349d3e3ab5d39fa7b852b838aca3709347307b177e9374e0305016b9734558aadc43b155bcb03d20e0b14df53add6c65c9ca7e05575cf87fee5900d +DIST firefox-134.0.2-tl.xpi 538546 BLAKE2B bf74822975816060da61f23591e27963fefd73ffe9f1f6d885eaeed663a344d50c3a905d5d26a39aea9927e6f464c7d91af8c831d578c4b888dd7c73475d7f93 SHA512 e3f54f4c670041a3e9b52724f37aea1dbb5816e8e09693d6d6bb9034acb1fe132be1dd01a8dcb963d4e96f9a2c8b9bfc39a62afd55ffb06214a94ebb325a7203 +DIST firefox-134.0.2-tr.xpi 656854 BLAKE2B 55f9847bfee9eb1a32570279b5715757ce6af15013a2e1dcbdd2ab4202e3bb26009326b0a1f6e55fefd65741ee3102cb5f892df044a042c0d80f426f99319c01 SHA512 da63d31d0c9ed9f29e429bb2e7b6d14d762de940af26330a8cc4f65424563d88dfc19ba5613fe60839c42a3686d347dca6a4e62acac4f38231d48346b671c4a4 +DIST firefox-134.0.2-trs.xpi 507810 BLAKE2B 0086999e232a3789d69abce703f887c787933db386b2095352c6521cabaaef5531cc52e36617113b0f2fbd89218bba9fd341d20f60e46521e66bcaa8c76c4e6e SHA512 60c96fbb59905007356db428a8f194af8e4cd91308487436597e7c61cd9fe1d72a533e001a0bf2d038e7eea77ded60ac705536257647aa3f9e4391cf24c10431 +DIST firefox-134.0.2-uk.xpi 742078 BLAKE2B 2589e3f00726dbbcd12f353ec0079b6ce37806cd92718e19e79d028f721de1dc6d66ff2b2ca85c5470cc2bcd974c8cc000fd298c957c170a77f29951ddd498ac SHA512 54500430a4045620255fb5d21427eb299cab4bba1135379b006dfa1bf0c35bdc98b24549718ea093319771aaa735d4990e104432e3b1920341b0cc355e0eadd0 +DIST firefox-134.0.2-ur.xpi 564367 BLAKE2B da26c584e0ebf2074636e8e622408b0b69610f609c7053748c7f64b98233fc9012a98d3ce13abd7085af67a3fca8783384eae345d2173ace89e214ed4559f2c2 SHA512 3b6e514cdbba4506422ee039c2ce4d0011d98d2be1e968ae528ee2bf79c6f80db3f766f70fe43ab8b0391869005346f4d8ae00bebc036be6727beedb2685cef8 +DIST firefox-134.0.2-uz.xpi 482832 BLAKE2B 4f0e7de6855da62732786c90447e68cee03068c9a647f3bbbf7495c58e8889e3c0611bcf144dc51fdb17fa3014e67cfce28712fa357d7e4a5ac922b1d004caa0 SHA512 bb17b008e3745b34855c2668e68a0de5ac09bcaadeb88affd0cf6741ca162e99177c7d9f19fd68f4b1714b5d4312bf9ef8366e813d0f6fab3baf95a6659d759e +DIST firefox-134.0.2-vi.xpi 683438 BLAKE2B 34ec85bb8c88758feb26b7d3fb0d9e166f731ac873b2fd182f11ecd5cc95feaa506b3e6cffb012efbe550d64623668b9a21bdf6cb482d57f0fa2b36892da2240 SHA512 506b0e4038328f3aa4dd7bfc439dd3805be7ac932c42c1140c4aabce3f19d5b95dfc94fe3e781480cd35b665c23aee1047f6efeaa15fe44af16d74c3a97cac58 +DIST firefox-134.0.2-xh.xpi 421008 BLAKE2B b0110c3a1930c312f385985b00b1e2bfb19666b137c4e2adc708a89fbfb921b4e5fde794d5d2651d1f45290ad7ededd7310e116d74d0b520329f7697e0bd1dd5 SHA512 8626397cb9642845a2f6d7c39511ad8d9d9f16d2d55c38d1804ec84919900f28a7fdb4e03312e3fd711fab21dcc3ca9db344405baaea9776cb255bd256728c26 +DIST firefox-134.0.2-zh-CN.xpi 684487 BLAKE2B 086b88dfd1451614af4da8b51ac180aeab8e47ecf69c6e5148738491f221a06d34c28254ea09ac951ba25f644b9024c917118d2818f583d0f259847f635b0f9f SHA512 3d2f762eeaad47dfff627087d174074d3a89507734c662c974ab5c4b5f587541ed62e8e59d5aeaacd881283b1f311c495894c60f4cb7f6dfb5feaf2508ea030a +DIST firefox-134.0.2-zh-TW.xpi 686743 BLAKE2B c3a157e5fae193476bde6722d32b1ea4e65cbd3bde891e76830ac193b609de6302291b6eebc5eb3a54575244738763a1c538f621d5bfe2f6715ad98009e83db5 SHA512 8fcbd4a0c897a9a0731283ccb78fa35d799957cf8fee1f70892c65f106efd42ba5b2024eb227952c45f4212a1bc2ddb65e7d7ac8cd61608c7c837d29b2c6b517 +DIST firefox-134.0.2.source.tar.xz 589962348 BLAKE2B e1d4eb6fd528fa405e1487ceb256a28946f703d39758594f65950feb1448f7423545162d411255c559c4ba697c5e14c7cf7fdbdabfdfdda9663f24c53737a742 SHA512 74d631ecbdb5607cfcc4de408947b3b129e36b3d1daa501827aebc81f48c878f9bade875875c466c07c651f26b5388ff2d2d2087e66e0613d8914abaa7ddf5ae DIST firefox-134.0.source.tar.xz 604421068 BLAKE2B 599049006a65bc70ce7a43b8412a260e033888609fefdec33a7aa4cf5427e0a89a725e6a74b396097a9263acafc9251f9a54294c666af1f7355c66ffeff4a007 SHA512 1275a686dc0a27b48df4ae05616511512f676e03474e3095b2521eac25a385d345aa3e8786716dbe812af49e07d72b32772479089d648968e2004ca0c9c35344 DIST wasi-sdk-24.0-arm64-linux.tar.gz 119660865 BLAKE2B 5067fe0d63a8be0e3466131a7f1e0a92185e09879e5256b8d12428606920fb074198d7c5b4f949466f5179852f53911333baf8fb2409068de4a9a6c4d62bbd96 SHA512 412df3d066ef4a175bc5a10353d4bf853c6aee101a024b84b2fc10c1e2a48c0dde1b7162c08a56726861a5b5b9838c05da75c5069d3454513ed862ba3f4629bc DIST wasi-sdk-24.0-x86_64-linux.tar.gz 118879731 BLAKE2B 385dced143f463427e48839b4c9a810161b2791f0a1a335ad53b1cff9e20fd004b1c24c80443ec213f448dc31a5b1748f447569161c88ca8fc01b3bf35421aa6 SHA512 e320e1d3965324dcc435aab15e0ec3597dae914fae9634af4e7181a76609d35fd01cdca07621f39a6c894b528055e2d014ce0c1fcfe23a154343f51fb48928bc diff --git a/www-client/firefox/firefox-128.6.0.ebuild b/www-client/firefox/firefox-128.6.0.ebuild index 1c82037f94a6..ef66fd5507fb 100644 --- a/www-client/firefox/firefox-128.6.0.ebuild +++ b/www-client/firefox/firefox-128.6.0.ebuild @@ -74,7 +74,7 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES} )" S="${WORKDIR}/${PN}-${PV%_*}" LICENSE="MPL-2.0 GPL-2 LGPL-2.1" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio" IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" diff --git a/www-client/firefox/firefox-134.0.1.ebuild b/www-client/firefox/firefox-134.0.1.ebuild new file mode 100644 index 000000000000..af9245e50f9b --- /dev/null +++ b/www-client/firefox/firefox-134.0.1.ebuild @@ -0,0 +1,1371 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-134-patches-01.tar.xz" + +LLVM_COMPAT=( 17 18 19 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 + +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.77.1 + +PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.71" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=25.0 +WASI_SDK_LLVM_VER=19 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.org/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + wasm-sandbox? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" + +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg +system-libevent" +IUSE+=" +system-libvpx system-png +system-webp valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox" + +# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being llvm-19 based, and +# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 is already stable in +# Gentoo so it should be widely adopted already - however, it might be possible to workaround +# the constraint simply by modifying CFLAGS when using clang-17/18. Will need to investigate (bmo#1905251) +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wasm-sandbox? ( llvm_slot_19 ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.107 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( skr ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="6800M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="6800M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # PGO was moved outside lto block to allow building pgo without lto. + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from llvm-core/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + if [[ -n ${MOZ_ESR} ]] ; then + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + fi + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} diff --git a/www-client/firefox/firefox-134.0.2.ebuild b/www-client/firefox/firefox-134.0.2.ebuild new file mode 100644 index 000000000000..af9245e50f9b --- /dev/null +++ b/www-client/firefox/firefox-134.0.2.ebuild @@ -0,0 +1,1371 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-134-patches-01.tar.xz" + +LLVM_COMPAT=( 17 18 19 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 + +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.77.1 + +PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.71" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=25.0 +WASI_SDK_LLVM_VER=19 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.org/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + wasm-sandbox? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" + +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg +system-libevent" +IUSE+=" +system-libvpx system-png +system-webp valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox" + +# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being llvm-19 based, and +# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 is already stable in +# Gentoo so it should be widely adopted already - however, it might be possible to workaround +# the constraint simply by modifying CFLAGS when using clang-17/18. Will need to investigate (bmo#1905251) +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wasm-sandbox? ( llvm_slot_19 ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.107 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( skr ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="6800M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="6800M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # PGO was moved outside lto block to allow building pgo without lto. + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from llvm-core/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + if [[ -n ${MOZ_ESR} ]] ; then + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + fi + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} diff --git a/www-client/google-chrome-beta/Manifest b/www-client/google-chrome-beta/Manifest index b4388f2bb7cb..5215a7f1e6f3 100644 --- a/www-client/google-chrome-beta/Manifest +++ b/www-client/google-chrome-beta/Manifest @@ -1 +1 @@ -DIST google-chrome-beta_132.0.6834.57-1_amd64.deb 112536512 BLAKE2B efd0ca05596f5fb14126807c174be47485d71066b3ba06ee80edf57cd54007813cfd003372efb564661796873b3c688ca66665c839b4b3c5d620ae868c7949c6 SHA512 7048e514f585703bcbec1f87be67a34e8f3324d1df6d8307cd540cd16047f86d805fd26ae8cdaf068c1cceacdf0281b1382adcde395096f4ba31cb9a8311e825 +DIST google-chrome-beta_133.0.6943.16-1_amd64.deb 114090924 BLAKE2B e01d4785a1709c0722de2c9473333a9899abf060cb6ef43ba1f1c06e04977f4824fd7b5415cecc45e0e93cd09f31ea8376fd04416b30c26cdad73060cd8f9c07 SHA512 2772aa95d60c86644815af0a0c317ef7a77aea0b6e526239f8d317f146262d6bd00621342ca13cbd5aee91d94bc3543e9aabbfc8a196f34a619434942c134657 diff --git a/www-client/google-chrome-beta/google-chrome-beta-132.0.6834.57.ebuild b/www-client/google-chrome-beta/google-chrome-beta-133.0.6943.16.ebuild index dd9e9c497aea..edbd80731e3d 100644 --- a/www-client/google-chrome-beta/google-chrome-beta-132.0.6834.57.ebuild +++ b/www-client/google-chrome-beta/google-chrome-beta-133.0.6943.16.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/www-client/google-chrome-unstable/Manifest b/www-client/google-chrome-unstable/Manifest index ac564aa7d0a5..78eb2d4dbee9 100644 --- a/www-client/google-chrome-unstable/Manifest +++ b/www-client/google-chrome-unstable/Manifest @@ -1 +1 @@ -DIST google-chrome-unstable_133.0.6905.0-1_amd64.deb 114266772 BLAKE2B fb232825db06d805ce9cb35c84eb0a9a8bb58bea4b5c2222cb24309bfb5f09f8804f3e08b2276192ab9adf1f0f404ab5270b01430c882931ba7573708fe9bfef SHA512 df1145cddba76c25b3197da939802604fe70eece62e93305ad151bdbc1e027db92f214cb8634ed32ba1d99dd215ad692197404bd4b0af116ef71964cc154bc7b +DIST google-chrome-unstable_134.0.6958.2-1_amd64.deb 114406436 BLAKE2B d6e635a6609c2f00c9cd4ec1089e9f5a8d8a0184256c81db122853cbd910ef91a7eae3d02be87aecde6ece336336a703227a81aaa12202f5fdd8c0fa776f4e6f SHA512 04a6b931b52c35a32cedbc4dea2734479af753310d27b8ef4cd510c5c640ec151358de4964b84974fe89912daec7a9e52b058b7063177dd2dc374003904b929f diff --git a/www-client/google-chrome-unstable/google-chrome-unstable-133.0.6905.0.ebuild b/www-client/google-chrome-unstable/google-chrome-unstable-134.0.6958.2.ebuild index dd9e9c497aea..edbd80731e3d 100644 --- a/www-client/google-chrome-unstable/google-chrome-unstable-133.0.6905.0.ebuild +++ b/www-client/google-chrome-unstable/google-chrome-unstable-134.0.6958.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/www-client/google-chrome/Manifest b/www-client/google-chrome/Manifest index 786b626fbead..7aa55ade565d 100644 --- a/www-client/google-chrome/Manifest +++ b/www-client/google-chrome/Manifest @@ -1 +1 @@ -DIST google-chrome-stable_131.0.6778.264-1_amd64.deb 112846176 BLAKE2B 6db0220e0bfcf4721776542d8469062381526c7ae8ede18762f788a96d4097c5bf426050f7ad829b00035abec7a7b73bec0dd6154d42367cba30cae80d9e4747 SHA512 95123e9d86b2e84be8b4964d4e5d16ab987f2e2854ca90d192f3c88e4b5bbb2f6a1aae46adb408b3538d6277a0083bb1da4d35d3b9806ef7788f3bdac40020f8 +DIST google-chrome-stable_132.0.6834.83-1_amd64.deb 112253548 BLAKE2B 1e1b263174d97493820e28fc5cc538a216c5436881938fe6dc1b139d9111450f691c4095803f4ffdff2325d7d823a146f99741b48b1cf664547b2ca7bf7074a8 SHA512 3e8b9fcf711f89241b17071f1187021d651c5ea147395e1d12f1d9f47e7b1f0704fc217bb2fa04b13ee3c8b6eac2f84da4a26140c536c03dd5ae466afa033d5c diff --git a/www-client/google-chrome/google-chrome-131.0.6778.264.ebuild b/www-client/google-chrome/google-chrome-132.0.6834.83.ebuild index f579ec5a9cbc..f579ec5a9cbc 100644 --- a/www-client/google-chrome/google-chrome-131.0.6778.264.ebuild +++ b/www-client/google-chrome/google-chrome-132.0.6834.83.ebuild diff --git a/www-client/luakit/Manifest b/www-client/luakit/Manifest index 43d4ff97bfa7..c866684c01d1 100644 --- a/www-client/luakit/Manifest +++ b/www-client/luakit/Manifest @@ -1,2 +1 @@ -DIST luakit-2.3.3.tar.gz 507343 BLAKE2B 4b9c3b3e4d5ff50f1c7409cf8f77ca7c81032f13051c3cca2aef4f794ee159fd12c5bfe0706e74414056899ef64330e888fe141256e52bc6d89eb572cca975e0 SHA512 ae5088541118c693db4a90f7e727d1f4094b56d4ea4cd51d2019351ff6b44672a1d7b9f80b351a37767556564b68633d815649ceaa4d8bd3b966a20a155ba2b2 DIST luakit-2.3.6.tar.gz 508466 BLAKE2B 2f5d727349a72c3f9ec9e10030f9e916e7f0ba50e66f94c96973215595ebb6105d198f9b5efcaae93a90dc1f0b898753253bd5cb1c071a06413e84e31120ce1c SHA512 0f6fe8f4805fe5ee7de5534534e3ad3d2c459aad152d3b5598e7c25d9c06cfee177098cbcd305bbcd351733dea7e03370139a7ecbd1b022b8cee8da6ca242e1c diff --git a/www-client/luakit/luakit-2.3.3-r1.ebuild b/www-client/luakit/luakit-2.3.3-r1.ebuild deleted file mode 100644 index 52b701f85e4a..000000000000 --- a/www-client/luakit/luakit-2.3.3-r1.ebuild +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LUA_COMPAT=( lua5-1 luajit ) - -inherit lua-single toolchain-funcs xdg - -DESCRIPTION="A fast, extensible, and customizable web browser" -HOMEPAGE="https://luakit.github.io/luakit" - -SRC_URI="https://github.com/luakit/luakit/archive/${PV}.tar.gz -> ${P}.tar.gz" -KEYWORDS="~amd64 ~arm64" - -LICENSE="GPL-3+" -SLOT="0" -IUSE="doc test" - -REQUIRED_USE="${LUA_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-db/sqlite:3 - dev-libs/glib:2 - net-libs/webkit-gtk:4= - x11-libs/gtk+:3 - ${LUA_DEPS} - $(lua_gen_cond_dep ' - dev-lua/luafilesystem[${LUA_USEDEP}] - ') -" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - doc? ( - dev-lua/luafilesystem - app-text/doxygen - media-gfx/graphviz - ) - test? ( - $(lua_gen_cond_dep ' - dev-lua/luassert[${LUA_USEDEP}] - dev-lua/luacheck[${LUA_USEDEP}] - ') - x11-base/xorg-server[xvfb] - ) -" -src_configure() { - export LUA_BIN_NAME=${ELUA} - export LUA_PKG_NAME=${ELUA} - tc-export CC PKG_CONFIG -} - -src_compile() { - emake \ - PREFIX="${EPREFIX}/usr" \ - USE_LUAJIT=$(usex lua_single_target_luajit 1 0) \ - ${PN} ${PN}.so - - use doc && emake doc -} - -src_test() { - local failing_test - for failing_test in test_clib_luakit test_image_css; do - mv tests/async/${failing_test}.lua{,.disabled} || die - done - - emake \ - USE_LUAJIT=$(usex lua_single_target_luajit 1 0) \ - run-tests -} - -src_install() { - emake \ - DESTDIR="${ED}" \ - DOCDIR="${EPREFIX}/usr/share/doc/${PF}" \ - PREFIX="${EPREFIX}/usr" \ - USE_LUAJIT=$(usex lua_single_target_luajit 1 0) \ - XDGPREFIX="${EPREFIX}/etc/xdg" \ - install - - rm "${ED}/usr/share/doc/${PF}/COPYING.GPLv3" || die - - use doc && dodoc -r doc/html -} diff --git a/www-client/microsoft-edge-beta/Manifest b/www-client/microsoft-edge-beta/Manifest index 0171e347783c..966c63a4c435 100644 --- a/www-client/microsoft-edge-beta/Manifest +++ b/www-client/microsoft-edge-beta/Manifest @@ -1,3 +1,3 @@ -DIST microsoft-edge-beta_132.0.2957.41-1_amd64.deb 168122314 BLAKE2B 6258dcef23958c087bae8fe964a3392ef96ff979dcbf58d4f734e1bcd72cd316c0ef58ed29114d9dd4aba61d720313663430d08a251ff96586b1abbf935a4438 SHA512 502019af5ce65619675f55896cc4e488c4df57ebcfc16703eb6048e3657e3c9dd46575fdcd482d23f29ac5106703ab163b7d0acb9474d0fa45165c0972d1d306 -DIST microsoft-edge-beta_132.0.2957.55-1_amd64.deb 168243378 BLAKE2B d9df026a906be25c740b7cbd7396ef53a8cc584da1a402a1a69885621151cad149cec1c13a8ec5450e6ace80d1c8633e3e734f5a9e425aca5450a968d08f41f8 SHA512 d1d37a878211d875debe855b8e3d57db624d42264047deb4ca8fd7c9613a86c2fc6245ceca44530a9dfaac0d2fea1752e3d2e2435c3443da3ae40c0bd87092a1 -DIST microsoft-edge-beta_132.0.2957.93-1_amd64.deb 168276626 BLAKE2B becdfde6b5aef16649682d624cfd5b7228da5dd73f913829bd74d8b8909f120552151f9a27f262acb3bd76fa22e03d0f0e3f0a9f12b2ec7e5282ac9e2f39c8ae SHA512 52f6eefd3353cc3aa15ba484ac4f2f6d34e662090c37b936ecbd456523f576cb8c4b89653714afa37630cb5db32c3f3077935fa143b3a1f84719c9de50ee4f30 +DIST microsoft-edge-beta_132.0.2957.106-1_amd64.deb 168228374 BLAKE2B 409f4c72731f60810796f17fae40f07b33d813bf751ee54439c85ba15f8bc3b6ad2010a51b2a41e525d79a41d2435ac15b5d6992dcdae0f5e5c22239ba2ffd42 SHA512 b0e5d90b66f39595505526776a74678457d3d7b3b268e38e309c34f8f8dc702e3b10a92c2c091ec868b1e1bdc216901bd0ca633bb3e991573aaec1eb7e5614ec +DIST microsoft-edge-beta_132.0.2957.111-1_amd64.deb 168276318 BLAKE2B d620074731ae9af2162d76fdb977c8fd44655794cdec09ca418344df092c3b0e681c417496467d63fed886e73ec374b152c247ef2b9089274b97e17d38d793b3 SHA512 5ee59f429e3cac4d8b67ad569fd4e27368b307c58b5303fe19e12aafb0a0245449a501350dae999335832301d583af8304a6b66e717dfb9614fc502ec6234297 +DIST microsoft-edge-beta_133.0.3065.10-1_amd64.deb 169738070 BLAKE2B 30231288a498b65809c242abe2fdfa520b0a83aa0e038e540dc9819765e1bc58d12cc6dad32f62de3ad69207310d0641d00494f6ff94b6d7a3d6931a61d82aff SHA512 91d1417930a8403c096de56e1134939529df5eacf02545f7cf6c6557a1590892d859bc8910041bbb0e6e3ffb4cfa4226ff2b01ff3a49bd6cb15b55dd9ab7d3f9 diff --git a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.93.ebuild b/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.106.ebuild index 32c5a4f611f9..32c5a4f611f9 100644 --- a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.93.ebuild +++ b/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.106.ebuild diff --git a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.55.ebuild b/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.111.ebuild index 0ff710cc5ddc..32c5a4f611f9 100644 --- a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.55.ebuild +++ b/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.111.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" diff --git a/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.2992.0.ebuild b/www-client/microsoft-edge-beta/microsoft-edge-beta-133.0.3065.10.ebuild index 0ff710cc5ddc..32c5a4f611f9 100644 --- a/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.2992.0.ebuild +++ b/www-client/microsoft-edge-beta/microsoft-edge-beta-133.0.3065.10.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" diff --git a/www-client/microsoft-edge-dev/Manifest b/www-client/microsoft-edge-dev/Manifest index 8b22205ccbe5..43d1bb301c51 100644 --- a/www-client/microsoft-edge-dev/Manifest +++ b/www-client/microsoft-edge-dev/Manifest @@ -1,3 +1,3 @@ -DIST microsoft-edge-dev_133.0.2992.0-1_amd64.deb 169074410 BLAKE2B 91820f824cdec369e457072d3f0205de8d8ed53ef59c3bba58bca970995e2e7a045ca89b85e9fea2d6ed1072833b067610bcfeab55c498c4fa80b82d826fbc37 SHA512 1c4cd5ca019ba91882e49e548904faad0014cccacf31dc341367c96eaa1a3fef824432acbde6fac2e6169ac72b53b7d446d8b6de43c6d415528c175403b0dec2 -DIST microsoft-edge-dev_133.0.3000.0-1_amd64.deb 168735746 BLAKE2B 6ac6d274e2cfd4f2406f881a5350f44237efb5e99a7c4d8b5274b7cffdf1d8d8e7e2298258571851ae0b2a88956380b74d6705454fe0965b3125bd937957e46d SHA512 e38b1b85616619940336836a72ba83393718f4c173f8b08c733ded0ce3a31683ac8618cd3fdf1221aa3d53a559a072bd7f69b384d388a0956035e801af48c8ee DIST microsoft-edge-dev_133.0.3014.0-1_amd64.deb 168560610 BLAKE2B 6605181310249479c2735211d14919f37bcc9818b699eb7d68d4abe269d7e2305cfc208cfe236c21697c3a7a1d87e785813a2a64c6d781795f4240279c99c518 SHA512 158be0e0873952a3f9f002ba98123d9542005291ac298b5f3137cb783de7ab19ad655bf5966982b248c287a072efcd23c2275af8f67fb3c311586ed768d1dfca +DIST microsoft-edge-dev_133.0.3054.1-1_amd64.deb 170070226 BLAKE2B 32955289661dcf3bffa545fee6849b44d303ea3e9260ec1146ee4dd4e4b3fdf376da64fb4380a64b7f08142264690af969ad4eafde20a834d801c16433618bd4 SHA512 0c5a40bb3234dd23ae4e11e5b8dc8050becd936af76ec9328c6ac6fd5670cdf6ffea8b74494910a5329e4880fb4134ead09f8545333bef7a30b76162c3d52780 +DIST microsoft-edge-dev_133.0.3065.7-1_amd64.deb 169717050 BLAKE2B 03ac92615860728473167a274bff69d01f8c3645dd8ebdb21aaa675e9365a396cf246e70e72aaaaced0c9426697490da2b0a1b9b52687ed74d5916d18e5342a6 SHA512 fdd9a184549192793b3e7d08a9dafb31c63e714acf8e831d67d7d02f4b66d6f15205149afa4fd52dc2ad7dc04dc1691c76c75e9e8ce8a3f32b35fb191ec3a426 diff --git a/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3000.0.ebuild b/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3054.1.ebuild index 0ff710cc5ddc..32c5a4f611f9 100644 --- a/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3000.0.ebuild +++ b/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3054.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" diff --git a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.41.ebuild b/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3065.7.ebuild index 0ff710cc5ddc..32c5a4f611f9 100644 --- a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.41.ebuild +++ b/www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3065.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" diff --git a/www-client/microsoft-edge/Manifest b/www-client/microsoft-edge/Manifest index 619b0b688f02..0b77a121ae1d 100644 --- a/www-client/microsoft-edge/Manifest +++ b/www-client/microsoft-edge/Manifest @@ -1 +1 @@ -DIST microsoft-edge-stable_131.0.2903.112-1_amd64.deb 169052722 BLAKE2B 1358eba64643e297f8d33a282f5d330067009f96a86a227aa10fef50b2157e92f5a3b121cfe269767c8e5a17a80ffff4893c0535cecde72de01eb842e4ad052f SHA512 ca4f162081fdd4465f1c4dfe547ede5ee5808c6510d40710d298f947b06a9c11795d60c6c2492437fda07cbf335108a1ca47fe6b5037b22c43b571145b4d4dd2 +DIST microsoft-edge-stable_132.0.2957.115-1_amd64.deb 168269722 BLAKE2B 9b20632dbc0baf6923a6c2be8f54485c2ecbe8e3bbedefa636a55f2bb857252f39b9b7b5b13853d903597991b6c52dbe684de219c12372f6920129912cfcf1e1 SHA512 00f959692a8fa2193ba617195a9a13abacc2ad88a58362bd8d6cf0e42ced2ebdec59c7645db576cf8bfe6f0b413b3aad8467f071b75ab7d3827abe90241be726 diff --git a/www-client/microsoft-edge/microsoft-edge-131.0.2903.112.ebuild b/www-client/microsoft-edge/microsoft-edge-132.0.2957.115.ebuild index 7ea339bd40f9..a61bd8cbcd59 100644 --- a/www-client/microsoft-edge/microsoft-edge-131.0.2903.112.ebuild +++ b/www-client/microsoft-edge/microsoft-edge-132.0.2957.115.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" diff --git a/www-client/opera-beta/Manifest b/www-client/opera-beta/Manifest index 671ca56db5eb..6bacd30cdf17 100644 --- a/www-client/opera-beta/Manifest +++ b/www-client/opera-beta/Manifest @@ -1,3 +1,3 @@ DIST opera-beta_116.0.5366.13_amd64.deb 124345880 BLAKE2B f374a0a5167c7d571334d6369d9addf97375cbd34e90d301b6ac6fdcb301c8554e63c8d4fcabfad9e59aeaeb6d3a4b03566d69d9649b526c977a3fd84c92844b SHA512 4ad232663b1f224ec2ec544297fe3b0a34feb819d8b1e1d441e13d4337a6de835a8d9eaa656b88ba68727936a297ea8b6636ea1d7c7000a78ac924057690027f -DIST opera-beta_116.0.5366.5_amd64.deb 125047088 BLAKE2B 178f890dbfa409dd22436d175d7166026b0e1d6f5851efac6fd3ca81e609c0a0766c533964649c9dcc2b28747c48e19282f05e8a46f5e94513119c5a4349217e SHA512 fe774dc93ca287ebd5c2fe1ceef550d3393d77c61d3675b025b8b0d85cb68c7c7b3190ea0f86f8dc49a98cfde1ce995ef1a31dd70c7895dd2cb484da2791493d DIST opera-beta_116.0.5366.7_amd64.deb 125054764 BLAKE2B 08c80ce7acd935102c26bf10fd90681af1a3287f8dc9528b336b501eb34e1f37a91d43f37be31aa712c6f3595f717a25de865e81547507ee52e8f33aeff1af1f SHA512 2a12ec9eeceb87ade212b32338e7d2b91af642baafc2435b31248acadc064b014a2ddc4a01a0333162a854653b8b1dc9d1890af2d424c2922337f55f2835c340 +DIST opera-beta_117.0.5408.4_amd64.deb 126400584 BLAKE2B 673c7b300e6fe87f44071d65c191ea248691eb3074d167107b0e9a73d395af2bdb37a5da63b7be5189a3583c5833aa53c3674a6d7e5c118932b55f70ed63dd41 SHA512 e5fdea04227b9c56d9e3d6efe3376c4023130f6a5a68ac2e07d31f30ff80cc27e0ac7ef65ee2300b02619f2233b3b6d755ded80387822e1ec4ccbed16c390873 diff --git a/www-client/opera-beta/opera-beta-116.0.5366.5.ebuild b/www-client/opera-beta/opera-beta-117.0.5408.4.ebuild index 1cab05aa0a7e..4ee8f9792fe3 100644 --- a/www-client/opera-beta/opera-beta-116.0.5366.5.ebuild +++ b/www-client/opera-beta/opera-beta-117.0.5408.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -42,7 +42,7 @@ fi # Commit ref from `strings libffmpeg.so | grep -F "FFmpeg version"` matches this Chromium version # used to select the correct ffmpeg-chromium version (corresponds to a major version of Chromium) # Does not need to be updated for every new version of Opera, only when it breaks -CHROMIUM_VERSION="131" +CHROMIUM_VERSION="132" SRC_URI="${SRC_URI_BASE[@]/%//${PV}/linux/${MY_PN}_${PV}_amd64.${OPERA_ARCHIVE_EXT}}" S=${WORKDIR} diff --git a/www-client/opera-developer/Manifest b/www-client/opera-developer/Manifest index 6824d318154a..b22d860e7020 100644 --- a/www-client/opera-developer/Manifest +++ b/www-client/opera-developer/Manifest @@ -1,3 +1,3 @@ -DIST opera-developer_117.0.5378.0_amd64.deb 124205104 BLAKE2B 660a87fde76f3484708d98c5a538c73cb54afa146c2b26fdee581af765a373daa3efd737fd787e23c60a60d5c1e3f2f4a1eebc618ce5f52e21a4c1dea58c5dcb SHA512 13895f0d6f3e672b262711e2c5fc6e148b236b17a59af05629f46aab4372999dae7c4593362a3c3f22cf2ff16dd6a50c932f6c75cfe593af81e511b640e58bd6 -DIST opera-developer_117.0.5383.0_amd64.deb 124192636 BLAKE2B 46af2334c8f9c8c337e1e0385cb688029cb32692958b53d96f0989983fbd033b475cf60f4a95c0893fbb280237d8c23d39e8b3bc8cccbb5f7d842e93ffdc27d0 SHA512 dbcfab9a46eb4683a8d02b920c6085992b4aeefb7a6e04b5a41c4730a6f4d81da1a6bbe3c1c99dbf84dcc1f0e3926cb00175cef696bbaf8245520c38f1c2152d DIST opera-developer_117.0.5405.0_amd64.deb 127733944 BLAKE2B 8e865990c21253be8b8191d2e611bb05d18754a69e30b0fd4a18911d5d50445c80faea3c4d3387375d6d3273a5e0ef13395805817760442512d6f7055188e026 SHA512 719dac3dc7a63a97f320c95dce22994485d3767a973a2cda46cc27a3cb54c0173afabb40cd71004830618bae1550bd42fa2de465f8fde1388555828882bf9016 +DIST opera-developer_118.0.5411.0_amd64.deb 126407304 BLAKE2B 6a04f1d9e23bc231e56654206e4d9ef8e11cd265dac1dc37e0c054967e1baec3577913a719d5363aa91d1b5d8c919a62d6c5b0f3b3efc3a52126ab9acc9cb3df SHA512 8d59a2d20611b2364967476b977749efb40328f3f13bb61557933012f7894f4250afed44217c1c389b5e7d35390d57407963a05e0d7ddabcc6918e01ea133fc6 +DIST opera-developer_118.0.5415.0_amd64.deb 126514628 BLAKE2B 62eb78cac2359b2da897d03ad4e8aa2a731dfdf68d7c36071dc4555aa533af6523483897129cf0c9bad2ef21d33130611f6fe207d1d90096ccd9f34f081a5685 SHA512 8349fd299fd3360d64debfe384af954fc5398ded0be767cf1e3473a77da86e686cfd80d7f2343d7bf6677711eba913e95bea21f62d45b3446593569848667fba diff --git a/www-client/opera-developer/opera-developer-117.0.5383.0.ebuild b/www-client/opera-developer/opera-developer-118.0.5411.0-r1.ebuild index 1cab05aa0a7e..4ee8f9792fe3 100644 --- a/www-client/opera-developer/opera-developer-117.0.5383.0.ebuild +++ b/www-client/opera-developer/opera-developer-118.0.5411.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -42,7 +42,7 @@ fi # Commit ref from `strings libffmpeg.so | grep -F "FFmpeg version"` matches this Chromium version # used to select the correct ffmpeg-chromium version (corresponds to a major version of Chromium) # Does not need to be updated for every new version of Opera, only when it breaks -CHROMIUM_VERSION="131" +CHROMIUM_VERSION="132" SRC_URI="${SRC_URI_BASE[@]/%//${PV}/linux/${MY_PN}_${PV}_amd64.${OPERA_ARCHIVE_EXT}}" S=${WORKDIR} diff --git a/www-client/opera-developer/opera-developer-117.0.5378.0.ebuild b/www-client/opera-developer/opera-developer-118.0.5415.0.ebuild index 1cab05aa0a7e..4ee8f9792fe3 100644 --- a/www-client/opera-developer/opera-developer-117.0.5378.0.ebuild +++ b/www-client/opera-developer/opera-developer-118.0.5415.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -42,7 +42,7 @@ fi # Commit ref from `strings libffmpeg.so | grep -F "FFmpeg version"` matches this Chromium version # used to select the correct ffmpeg-chromium version (corresponds to a major version of Chromium) # Does not need to be updated for every new version of Opera, only when it breaks -CHROMIUM_VERSION="131" +CHROMIUM_VERSION="132" SRC_URI="${SRC_URI_BASE[@]/%//${PV}/linux/${MY_PN}_${PV}_amd64.${OPERA_ARCHIVE_EXT}}" S=${WORKDIR} diff --git a/www-client/opera/Manifest b/www-client/opera/Manifest index ca4539f60102..9cbf4c181afb 100644 --- a/www-client/opera/Manifest +++ b/www-client/opera/Manifest @@ -1 +1 @@ -DIST opera-stable_115.0.5322.119_amd64.deb 123877420 BLAKE2B 02e88a1dfa98ce716a09dc703a1d128bf4851fc326c110d92b0b1cac3fb37ff5531cf07f8c48173200cdec8673ac400b05b30e07c05676397540d2f8d32ce46a SHA512 70dcd3bd27661faf16a465f914d686a0947f5418c5a8df5993d76dbd584f0b77b77b19e4bfe46deb36b3813c9f43ea77f92dedc5d472680c0f3709cd12fbd483 +DIST opera-stable_116.0.5366.35_amd64.deb 128188572 BLAKE2B 6644efc1233d65bbe2b0cfc2129c9dd113d43dd0bdb03083a93a5d7942dad7f5d1f682dd6aeccdf2844349f3f46de7e3c6c5bff695c339e419aa3712fa52c37d SHA512 4f2487f7a2596d69455745a0e7934551d053417ced3d9268521d56e3e6afa58c64355ca85ea95de8afc4f7550de0e2cbe58cb20932fba20a5806741cc20e9c8e diff --git a/www-client/opera/opera-115.0.5322.119.ebuild b/www-client/opera/opera-116.0.5366.35.ebuild index ffc605d82d39..4a38b4f4f31d 100644 --- a/www-client/opera/opera-115.0.5322.119.ebuild +++ b/www-client/opera/opera-116.0.5366.35.ebuild @@ -42,7 +42,7 @@ fi # Commit ref from `strings libffmpeg.so | grep -F "FFmpeg version"` matches this Chromium version # used to select the correct ffmpeg-chromium version (corresponds to a major version of Chromium) # Does not need to be updated for every new version of Opera, only when it breaks -CHROMIUM_VERSION="130" +CHROMIUM_VERSION="131" SRC_URI="${SRC_URI_BASE[@]/%//${PV}/linux/${MY_PN}_${PV}_amd64.${OPERA_ARCHIVE_EXT}}" S=${WORKDIR} diff --git a/www-client/vivaldi-snapshot/Manifest b/www-client/vivaldi-snapshot/Manifest index b00316e71646..07915eb3b0c1 100644 --- a/www-client/vivaldi-snapshot/Manifest +++ b/www-client/vivaldi-snapshot/Manifest @@ -1,6 +1,6 @@ -DIST vivaldi-snapshot_7.1.3550.4-1_amd64.deb 121584684 BLAKE2B c5bf0a141764bd221812c6e10866ec9b5c3dc2c841d73f7e2db51229f42914a82f8bc811204230a3058fee18c0e6b846caf7bef368b39dec6cf6aa49eb7ba96d SHA512 e31fb4730b07507f70f1c2ce806cf77b8a4533849b3cc53941a442ef746f5829c2257a458d3146a650dddad9880a6246c8bb2045c95859326d09148dc1c8b3f4 -DIST vivaldi-snapshot_7.1.3550.4-1_arm64.deb 113676640 BLAKE2B 3d4c20dc4ef6684403266436b15588af5a21a6855def06315a32369c3a2438738de5c7afc4084c4ec0069574f6d61c01f466d70c70e976135eea1e6c38ee44b2 SHA512 00a64ab9ca3144a94f409f649f79218449e9e281a83512ba4bb88b0c501e9bc10a2d973a65b7ed4b50b4685ed6e6933d2aa1f173ef7e7b976c34b8a21eeed258 -DIST vivaldi-snapshot_7.1.3550.4-1_armhf.deb 114767348 BLAKE2B 1d23ee82b6a3df2e65bf40e938ca0ee9479878375399a5ea37ea6c0b99b55f8a6649798e5949a3248093daae1f2bf4260ca3df143b72e60f317b6994e782e61a SHA512 b2f9313cb266d4dc71ded2239fe5c53b57385d27feea728675018113ef9334a2daa140fbc760d37bb237eb91acd3a3950628b5ce36754a0404d05042ce9c413b -DIST vivaldi-snapshot_7.1.3554.3-1_amd64.deb 121585032 BLAKE2B 24d7dd94bf1dfafc2726b0a8f5ccedf3adffe913905306503d926b2aa2243ddfaefdd38071c86d02168b1792c48a45b41d31b1db0e7a8cffe502265903f90473 SHA512 fd12b1db457dbe728aa26b9aa4bb82ecfbe65c8ed0761767136429bf85c2049a317e109f8cdde3000f3904810be36fb144b19baf07358e68c2a51b24be425a03 -DIST vivaldi-snapshot_7.1.3554.3-1_arm64.deb 113712444 BLAKE2B 46c6659ce7b24f8d63c3e7deda6b267c7e3c68338b80ed513fb055b813bb1d164cc7c822547e10620e2b1bd5ea4fc571d50dd247807d5254f196d38167179936 SHA512 ab5fea9372aab1e2ebc0f7d494aa5b79c3bea17ef5ff603456f75cf9e2a2cfc6492ece20f8cb194729318b89f0b8f0545fee1bfd9e822adbe00741dc9a9f77d3 -DIST vivaldi-snapshot_7.1.3554.3-1_armhf.deb 114778124 BLAKE2B ecd9458dd17c65ac38b9bf0bd73a4b71d38e2e1293220d6a7af298705c8f25f3565c66b3bd4dcaf6930e8e4763bea2beaf850e58fc72aed6e19807a574bcac68 SHA512 952c24ed5040fc2061d54a4610b3d9da01e59ed37bed626ddb6b2877a5f45a0aae34618e6337789df353150efe2aa6d1d56699c926669dcc0f5db1764e4bee73 +DIST vivaldi-snapshot_7.1.3570.27-1_amd64.deb 121921700 BLAKE2B 43dacc9d58b49e05467181d7e7da5a4705e47faf3abab41d8577fd27576fc69e68334594a9c4e01997e0a129005d052d58257175795784b54ed1e7a123594b4f SHA512 d853f33d2cda8383b792019167946e2b65899e8dcc0a262cf882adf587ebe3c268a1f7859ddb7440c86ba4cc5f39db360dda8306964190875e603f862225e9f1 +DIST vivaldi-snapshot_7.1.3570.27-1_arm64.deb 113881820 BLAKE2B 4721f1b215e477f76414dd7dd47ce62269a944fc58b157c970d5b82d755560e036ddea503aa768da8365fadabf33887e03d0d7bcecddb422651c698d599d1c26 SHA512 f9552dd82c31c25e75ec965ddc1e9da1dd3436766861f374ebbb5fa26f720c79223eddcece5414b92e4e81d8998fc0c039d750ab65edebc0e83b993a4cedc904 +DIST vivaldi-snapshot_7.1.3570.27-1_armhf.deb 114842072 BLAKE2B 566b838ff2a2280dc55a69ce97a537c0795cb17ba4f873466b9ce2844487a83fb8bf316b5565ce6b95887f92f730f7011c58b37c2df2d120968bde618d7f66c7 SHA512 a8cca21275db39225c9b19f8ad942855a3ac945cb6339e8edda12e429cce303da020a104fa2c6cbef5cba11d3d813601a62fbfc80a918578146b724f7e7c5b5f +DIST vivaldi-snapshot_7.1.3570.3-1_amd64.deb 121835656 BLAKE2B 1a5f1e0b8f617d3dd6f45a1d0a49317d072a186ae31c1f2967228d9626e96dcf092436a4e48f6f6287c22d2ec2a628312e3c7b5b881050213990a87604657e34 SHA512 2b106e74b03d521432fa4673c67d088eda8ec1bf27521050c6488693bd7b9f5a23bec63fe133ea84250b27b8b5aea0bb2afe8fb7468f3fa306efa28159749c70 +DIST vivaldi-snapshot_7.1.3570.3-1_arm64.deb 113747528 BLAKE2B b3cbcdd4fb3697c5e0e454846f245d1df30c664006d8b658291080d7dd30e8c4c8de25cfbb40151278a49af6ba5fb768594c3ee971d5d545594df3a2adaee15d SHA512 9a5a147a1cb0268b144a6c2c7906e83bcf10dec12619b9427a9211d7e2ffdcd1a53f327b7a82782ad97dfe53418171afeac0091dfb1bccafd42ad09c29dadc07 +DIST vivaldi-snapshot_7.1.3570.3-1_armhf.deb 114832316 BLAKE2B 80502f6ec18170ddd499e0adfe43196016a04f1d21a6c139af112407bf08fca750d50d5c168b4b2997965208125ea762a04288d4192d4c938126cb1c9e285ca3 SHA512 14d8583590a44b95f68922406f6b3604490e590fbb0175151ccd2b4a88a9cad92c2b8ac5b13d4ad19c78771ea48dfb46fe9151a4a370eb2a4366a8ede952fabd diff --git a/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3550.4.ebuild b/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3570.27.ebuild index 284be765fc30..545ea51d964a 100644 --- a/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3550.4.ebuild +++ b/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3570.27.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -109,7 +109,7 @@ S="${WORKDIR}" LICENSE="Vivaldi" SLOT="0" KEYWORDS="-* ~amd64 ~arm ~arm64" -IUSE="ffmpeg-chromium gtk proprietary-codecs qt5 qt6 widevine" +IUSE="ffmpeg-chromium gtk proprietary-codecs qt6 widevine" RESTRICT="bindist mirror" #REQUIRED_USE="ffmpeg-chromium? ( proprietary-codecs )" @@ -139,11 +139,6 @@ RDEPEND=" !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) ffmpeg-chromium? ( media-video/ffmpeg-chromium:${CHROMIUM_VERSION} ) ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtwidgets:5 - ) qt6? ( dev-qt/qtbase:6[gui,widgets] ) widevine? ( www-plugins/chrome-binary-plugins ) " @@ -184,9 +179,8 @@ src_prepare() { rmdir ${VIVALDI_HOME}/lib || die fi - if ! use qt5; then - rm ${VIVALDI_HOME}/libqt5_shim.so || die - fi + # Qt5 is obsolete now. + rm ${VIVALDI_HOME}/libqt5_shim.so || die if ! use qt6; then rm ${VIVALDI_HOME}/libqt6_shim.so || die diff --git a/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3554.3.ebuild b/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3570.3.ebuild index 284be765fc30..545ea51d964a 100644 --- a/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3554.3.ebuild +++ b/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3570.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -109,7 +109,7 @@ S="${WORKDIR}" LICENSE="Vivaldi" SLOT="0" KEYWORDS="-* ~amd64 ~arm ~arm64" -IUSE="ffmpeg-chromium gtk proprietary-codecs qt5 qt6 widevine" +IUSE="ffmpeg-chromium gtk proprietary-codecs qt6 widevine" RESTRICT="bindist mirror" #REQUIRED_USE="ffmpeg-chromium? ( proprietary-codecs )" @@ -139,11 +139,6 @@ RDEPEND=" !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) ffmpeg-chromium? ( media-video/ffmpeg-chromium:${CHROMIUM_VERSION} ) ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtwidgets:5 - ) qt6? ( dev-qt/qtbase:6[gui,widgets] ) widevine? ( www-plugins/chrome-binary-plugins ) " @@ -184,9 +179,8 @@ src_prepare() { rmdir ${VIVALDI_HOME}/lib || die fi - if ! use qt5; then - rm ${VIVALDI_HOME}/libqt5_shim.so || die - fi + # Qt5 is obsolete now. + rm ${VIVALDI_HOME}/libqt5_shim.so || die if ! use qt6; then rm ${VIVALDI_HOME}/libqt6_shim.so || die diff --git a/www-client/vivaldi/Manifest b/www-client/vivaldi/Manifest index 8525e36af0b8..60899be61b10 100644 --- a/www-client/vivaldi/Manifest +++ b/www-client/vivaldi/Manifest @@ -1,6 +1,6 @@ -DIST vivaldi-stable_7.0.3495.26-1_amd64.deb 120943624 BLAKE2B e6ead07fdf054d56704202b7781f0ddfa01a2ee0c63743c81fa0481d6aa68bb74dc9f80123339fa8971e701e32ce8927fbbef2e1770882a7ea82f0ff752e6a8f SHA512 cd86b6d0b4a8c174cf82506bf06c0b18eb4b5b486ca11b7266d49ae5d3e40814df65f70c7447434d56518eca9ff7d9afe79f5e3be3c2176b1000bc9932137dfd -DIST vivaldi-stable_7.0.3495.26-1_arm64.deb 112830460 BLAKE2B 8f8c27010e54e836bfc114d5988bb4520081c6fc386fa6d21c1d8f2815d58fae3d7ec8d003014ae027423476ba642b6c7260c6f1dd9b2d6bdadbd0f95a4e13be SHA512 8586f8fda735b0ea821bf9a95e6fd92892c1cdcd99bbf0949f252760cff1112d9ba9cb573dde6236a95d61bf7f23d77aa2139c74f067dbc700148fcf14d3b06d -DIST vivaldi-stable_7.0.3495.26-1_armhf.deb 113968304 BLAKE2B 924255a316e8985bd41d689a5fe5cd9975a81d42289fee6994b0c6d4448078d2cb4ddb9ca31d4fcb02f8b9f47b22003bffca83f1a26fd2f20752035cbcd296be SHA512 9275006e325d65f6c9fcd1bcd33c96372ccb12ca0b24e9fc0ca251933ba4838ceccbd5cc34910669eacfdc24e34b028a42bd90b8269a66ba49f4f904fd6ae994 DIST vivaldi-stable_7.0.3495.27-1_amd64.deb 120952460 BLAKE2B 7bb746de3ce8a11d265640b3c090dcb9e5a00e5943343d0075f1e14d7f17059019497c85d65a59dd0a616c33890486948d6beb5283bb0d99223dc9e85eabf0b0 SHA512 11db587161471db9583d962dd48971870db199663b0c60275be2481b2b80088a84784396b2a37e08678da9a113c9f06ae6a1e8c326c7aab03672dcb8fa6df11f DIST vivaldi-stable_7.0.3495.27-1_arm64.deb 112852456 BLAKE2B 3488858ecce9ca6b3ada8aba8a4059d7e7c884c87c8ef0398bd7dacd65e30e9ace556c71b8ca1b40887e57867db9150ff1450bcc030fa5c46e42f50bb35cc580 SHA512 81a04ab7aad7e601eddbc6f1c8627c23963715f6f02ea28ee33d7fb0fbcbb77e5fa69c026c1031e5b1216338b8af430b824171ed63e90b43673b57013fbd9cbe DIST vivaldi-stable_7.0.3495.27-1_armhf.deb 113974364 BLAKE2B a86b3931b786038d42c553574ca8e685207930a90edb11c20efe93721b05f318217ed897f58fca20411ec767955ba2ddd9a623d30597c1137be12d5ba9da5b90 SHA512 37c904b3798f29462a91a148d0cb90eca9eca705547194ceb729fc99f6f7224bd997cddd33e4e0b7ad0d80d250c8001e64e3cff6ca48a4f63b880e32a86950bd +DIST vivaldi-stable_7.0.3495.29-1_amd64.deb 120955208 BLAKE2B e7dc6a93a791c9478c5a6236b536acb4320fb536535785f0df211efb197bae1cf93d50ca0195f310f627bdb7ba22a0dde467517844344568eaa26a80da05694d SHA512 7ee6dcbfd0277f06ed3fccd897f63b7b85f9525720205774847e7c847a6b292add93c99fb6adc3aefc321d6cf2ea8ab439bb2659fe39f1d2b48acf31e0e8d37f +DIST vivaldi-stable_7.0.3495.29-1_arm64.deb 112832248 BLAKE2B c4d2388dac270f470390424e4ec9be6ec6a359d9a715e966787366ad4d72864912c334d0c0207cff20e17a679caad58d0f437443d2443025fac62b9777ff8307 SHA512 3c0c87652ef5677f143f873354d087b6ccf69e3f1290b33efd148f9e39440883fcb5bca0e5013f04b3c7c956bc0a2320f57ef630a456f0b5d9243e69ba788240 +DIST vivaldi-stable_7.0.3495.29-1_armhf.deb 113973704 BLAKE2B ddc465d5dc7af4b608e7d49da3f650839fa4cea8510bb859e35e07d519a8621b51ab8a039e80593a4cbb3ad7a10acd56f0eac8c4eeb92ed0a4831f0b9632953a SHA512 46565c32493d7a80784b15418020299c0a3829719d7f0e9ebc33e19b32d6708ea66421e34e648ff7cb16c06d07970e40c33a587341b9b506ca7240aae15792c3 diff --git a/www-client/vivaldi/vivaldi-7.0.3495.27.ebuild b/www-client/vivaldi/vivaldi-7.0.3495.27.ebuild index 8063fc01d0e9..3c057d296779 100644 --- a/www-client/vivaldi/vivaldi-7.0.3495.27.ebuild +++ b/www-client/vivaldi/vivaldi-7.0.3495.27.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -108,7 +108,7 @@ SRC_URI=" S="${WORKDIR}" LICENSE="Vivaldi" SLOT="0" -KEYWORDS="-* ~amd64 ~arm ~arm64" +KEYWORDS="-* amd64 ~arm ~arm64" IUSE="ffmpeg-chromium gtk proprietary-codecs qt5 qt6 widevine" RESTRICT="bindist mirror" #REQUIRED_USE="ffmpeg-chromium? ( proprietary-codecs )" diff --git a/www-client/vivaldi/vivaldi-7.0.3495.26.ebuild b/www-client/vivaldi/vivaldi-7.0.3495.29.ebuild index 73ea8c901c06..4cec9cc02485 100644 --- a/www-client/vivaldi/vivaldi-7.0.3495.26.ebuild +++ b/www-client/vivaldi/vivaldi-7.0.3495.29.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -108,8 +108,8 @@ SRC_URI=" S="${WORKDIR}" LICENSE="Vivaldi" SLOT="0" -KEYWORDS="-* amd64 ~arm ~arm64" -IUSE="ffmpeg-chromium gtk proprietary-codecs qt5 qt6 widevine" +KEYWORDS="-* ~amd64 ~arm ~arm64" +IUSE="ffmpeg-chromium gtk proprietary-codecs qt6 widevine" RESTRICT="bindist mirror" #REQUIRED_USE="ffmpeg-chromium? ( proprietary-codecs )" @@ -139,11 +139,6 @@ RDEPEND=" !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) ffmpeg-chromium? ( media-video/ffmpeg-chromium:${CHROMIUM_VERSION} ) ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtwidgets:5 - ) qt6? ( dev-qt/qtbase:6[gui,widgets] ) widevine? ( www-plugins/chrome-binary-plugins ) " @@ -184,9 +179,8 @@ src_prepare() { rmdir ${VIVALDI_HOME}/lib || die fi - if ! use qt5; then - rm ${VIVALDI_HOME}/libqt5_shim.so || die - fi + # Qt5 is obsolete now. + rm ${VIVALDI_HOME}/libqt5_shim.so || die if ! use qt6; then rm ${VIVALDI_HOME}/libqt6_shim.so || die |