summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-client')
-rw-r--r--www-client/chromium/Manifest28
-rw-r--r--www-client/chromium/chromium-130.0.6723.116-r1.ebuild1408
-rw-r--r--www-client/chromium/chromium-131.0.6778.139.ebuild1422
-rw-r--r--www-client/chromium/chromium-131.0.6778.204.ebuild1422
-rw-r--r--www-client/chromium/chromium-131.0.6778.264.ebuild1422
-rw-r--r--www-client/chromium/chromium-132.0.6834.57.ebuild1433
-rw-r--r--www-client/chromium/chromium-132.0.6834.83.ebuild (renamed from www-client/chromium/chromium-133.0.6888.2.ebuild)57
-rw-r--r--www-client/chromium/chromium-133.0.6943.16.ebuild (renamed from www-client/chromium/chromium-133.0.6905.0.ebuild)53
-rw-r--r--www-client/chromium/chromium-134.0.6958.2.ebuild (renamed from www-client/chromium/chromium-132.0.6834.46.ebuild)318
-rw-r--r--www-client/chromium/files/chromium-126-oauth2-client-switches.patch45
-rw-r--r--www-client/chromium/files/chromium-127-bindgen-custom-toolchain.patch102
-rw-r--r--www-client/chromium/files/chromium-131-const-atomicstring-conversion.patch35
-rw-r--r--www-client/chromium/files/chromium-134-oauth2-client-switches.patch35
-rw-r--r--www-client/chromium/metadata.xml5
-rw-r--r--www-client/elinks/Manifest1
-rw-r--r--www-client/elinks/elinks-0.17.1.1.ebuild4
-rw-r--r--www-client/elinks/elinks-0.18.0.ebuild212
-rw-r--r--www-client/elinks/elinks-9999.ebuild13
-rw-r--r--www-client/elinks/files/elinks-0.18.0-build.patch22
-rw-r--r--www-client/elinks/files/elinks-0.18.0-sftp.patch22
-rw-r--r--www-client/elinks/metadata.xml1
-rw-r--r--www-client/falkon/Manifest2
-rw-r--r--www-client/falkon/falkon-24.08.3-r3.ebuild2
-rw-r--r--www-client/falkon/falkon-24.12.1.ebuild (renamed from www-client/falkon/falkon-24.12.0-r1.ebuild)2
-rw-r--r--www-client/firefox-bin/Manifest198
-rw-r--r--www-client/firefox-bin/firefox-bin-134.0.1.ebuild364
-rw-r--r--www-client/firefox-bin/firefox-bin-134.0.2.ebuild364
-rw-r--r--www-client/firefox/Manifest202
-rw-r--r--www-client/firefox/firefox-128.6.0.ebuild2
-rw-r--r--www-client/firefox/firefox-134.0.1.ebuild1371
-rw-r--r--www-client/firefox/firefox-134.0.2.ebuild1371
-rw-r--r--www-client/google-chrome-beta/Manifest2
-rw-r--r--www-client/google-chrome-beta/google-chrome-beta-133.0.6943.16.ebuild (renamed from www-client/google-chrome-beta/google-chrome-beta-132.0.6834.57.ebuild)2
-rw-r--r--www-client/google-chrome-unstable/Manifest2
-rw-r--r--www-client/google-chrome-unstable/google-chrome-unstable-134.0.6958.2.ebuild (renamed from www-client/google-chrome-unstable/google-chrome-unstable-133.0.6905.0.ebuild)2
-rw-r--r--www-client/google-chrome/Manifest2
-rw-r--r--www-client/google-chrome/google-chrome-132.0.6834.83.ebuild (renamed from www-client/google-chrome/google-chrome-131.0.6778.264.ebuild)0
-rw-r--r--www-client/luakit/Manifest1
-rw-r--r--www-client/luakit/luakit-2.3.3-r1.ebuild87
-rw-r--r--www-client/microsoft-edge-beta/Manifest6
-rw-r--r--www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.106.ebuild (renamed from www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.93.ebuild)0
-rw-r--r--www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.111.ebuild (renamed from www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.55.ebuild)2
-rw-r--r--www-client/microsoft-edge-beta/microsoft-edge-beta-133.0.3065.10.ebuild (renamed from www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.2992.0.ebuild)2
-rw-r--r--www-client/microsoft-edge-dev/Manifest4
-rw-r--r--www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3054.1.ebuild (renamed from www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3000.0.ebuild)2
-rw-r--r--www-client/microsoft-edge-dev/microsoft-edge-dev-133.0.3065.7.ebuild (renamed from www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.41.ebuild)2
-rw-r--r--www-client/microsoft-edge/Manifest2
-rw-r--r--www-client/microsoft-edge/microsoft-edge-132.0.2957.115.ebuild (renamed from www-client/microsoft-edge/microsoft-edge-131.0.2903.112.ebuild)2
-rw-r--r--www-client/opera-beta/Manifest2
-rw-r--r--www-client/opera-beta/opera-beta-117.0.5408.4.ebuild (renamed from www-client/opera-beta/opera-beta-116.0.5366.5.ebuild)4
-rw-r--r--www-client/opera-developer/Manifest4
-rw-r--r--www-client/opera-developer/opera-developer-118.0.5411.0-r1.ebuild (renamed from www-client/opera-developer/opera-developer-117.0.5383.0.ebuild)4
-rw-r--r--www-client/opera-developer/opera-developer-118.0.5415.0.ebuild (renamed from www-client/opera-developer/opera-developer-117.0.5378.0.ebuild)4
-rw-r--r--www-client/opera/Manifest2
-rw-r--r--www-client/opera/opera-116.0.5366.35.ebuild (renamed from www-client/opera/opera-115.0.5322.119.ebuild)2
-rw-r--r--www-client/vivaldi-snapshot/Manifest12
-rw-r--r--www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3570.27.ebuild (renamed from www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3550.4.ebuild)14
-rw-r--r--www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3570.3.ebuild (renamed from www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3554.3.ebuild)14
-rw-r--r--www-client/vivaldi/Manifest6
-rw-r--r--www-client/vivaldi/vivaldi-7.0.3495.27.ebuild4
-rw-r--r--www-client/vivaldi/vivaldi-7.0.3495.29.ebuild (renamed from www-client/vivaldi/vivaldi-7.0.3495.26.ebuild)16
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