commit:     d1ecdfd691443662e3b02a3187f6e7a523760857
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 21 12:34:02 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Nov 21 12:34:02 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1ecdfd6

www-client/firefox: add 120.0

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest             |  100 +++
 www-client/firefox/firefox-120.0.ebuild | 1438 +++++++++++++++++++++++++++++++
 2 files changed, 1538 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 2d114b14a68e..dfcad0374975 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -401,3 +401,103 @@ DIST firefox-119.0.1-zh-CN.xpi 609155 BLAKE2B 
2e7358f866834f6991d54b40872234baac
 DIST firefox-119.0.1-zh-TW.xpi 612610 BLAKE2B 
1b98a3492e14867a8ee8bc3449465af7f365c3be6b092857bdc83045540b1b28d3c9bb864d395bfd50f273ee9a21a7acc583361939b5d6a3a233529ff3d5536d
 SHA512 
a510a590bc457d1ea70392bfdb3e7bc36ba43b379361d547ca55eadd9d44a6ce59c24cf01667df6e014bb164f0333ae728a1ecf9939065be71923cc22fb83c52
 DIST firefox-119.0.1.source.tar.xz 524717896 BLAKE2B 
b5a2ceadf05692d482dc8114634902d33c32c908e60394bf2e6b38afd8d83830d40c83afec28f7257e269595196140c0a8a1f345232f29c649a202d51ca39c68
 SHA512 
4f3201aee10e7b831cc384b2c7430a24f4de81f703115a917f9eb7acecb2ae1725f11af56c41257a056bb9d7a4d749d590cc9baffcd6e13852be45aaecf8163a
 DIST firefox-119.0.source.tar.xz 523093112 BLAKE2B 
4fc9852839a65b05c0861eea1d3c99aa9ef8eef02ba02dab15720d0da62b219f0fc2c4bdda1741dcf0eed316b88f032580c7cf433c4d09170b5c8e19e8ad4e1d
 SHA512 
4b555c444add36567fd538752b122f227cf78bb70b72c79e6d8ae8d9c2e61c3cdacfae79c37970753b8b5c7716b28c686071eb7b551773c30a76852f3550676c
+DIST firefox-120.0-ach.xpi 452406 BLAKE2B 
c7d90c68f9533e0dde831575026061301a0359ae1b07dcc09d836216e75f42c485bb82a67376e2ed910ea46091efdacf8adb6fcb1d5a0dd1f7a85a140496bbc6
 SHA512 
ae6035a73d48e7f42627f180825765e7194e6afc1dd1d6ca1b626e472e6ac570d0dcffb19e69623a9dc4639a2969270b91b75948cc62308dfdc2b455a828b443
+DIST firefox-120.0-af.xpi 408350 BLAKE2B 
e841d6e1e11d2aa0747d6d1bab06eed8fd64942fa72e9661e47847c4f78d882ac3b07c497b14a0ca334742e07ff79278fd98b49cb38db06e8d91ff9971a320bf
 SHA512 
721f33a479c528551bb8dcb9dea3cd5f6bf9be7be1c5851b3b6e7814104ab66aaa5e1103d25787eae4c94a846ab2d13da5f6b3d3b880e5d5b2cae4ed590adb6a
+DIST firefox-120.0-an.xpi 493113 BLAKE2B 
438187930e8687fe7d90bde56112a7512b57292b224f3784a8a715fe28ccf2a29e2bc800fe252ccd180b6c1e0e2eb114cac2dfc091314134e9ba3f32c2fcb2a7
 SHA512 
4bf1bf696315bb39b0e0eb0325df1e55ec7bfc6ebc32671c30807e10b71f10405fae6e64a5b60f5ceba234c9fe3cdb4411080c0da6d63f8888f9e0b53c7a2ac0
+DIST firefox-120.0-ar.xpi 583117 BLAKE2B 
cb9a2aa3343a902f971a777d8f86ff8439025217b269a564d7858ea8342bc13decf1203329b26d528f0fb2b15d6ab30df9ff412faaa15bb96f23748a73702e44
 SHA512 
d4f639551959dc56e014f4d83b24b521eebd78cdd2151292091af38a69d83527b2a15a8d46ce3f05ee23ec035b3e00ada1955b81d8eb25c83e4c6d1cb9da9a08
+DIST firefox-120.0-ast.xpi 485205 BLAKE2B 
9bac8cd48b0e7e6862a96a50ddf8aea0aec61451c1dd6fe17dd411b1ec32f56ca33462d20d8c0e8b239fff99508b2fe61ae37402ae7c01d9b5823e6f5378ff48
 SHA512 
a8e015911a8e627f1ad14513292b133cbf81f08abbf09630eb98d7adacfd649fea0872405858e34d22efd629c5132b09dadd4ed408f1edf3557c1cfba6ab4fa7
+DIST firefox-120.0-az.xpi 478982 BLAKE2B 
e8f587cd8803f1c799ec2005da19bf1ab987ba5e9af322ee8ad99a848332fa214e1acb19002e680bc387461f848d765e5f13fdf6916cf01cbc8f3c8119b66ddb
 SHA512 
9978735bb2ae30d361c6af39eaad52cf158fb5f488974aa7df60815c31b4fe176fce9b761f8209fb933a3ec8afa4223a3f7736ddd079e796bc71b6a0873befd8
+DIST firefox-120.0-be.xpi 672593 BLAKE2B 
2e9175a98a94ef61254d693e4a19f02116788f195ac33d271191b888d420e53100812b43b3aab154fbb77c8343474185ff1883b517ca8639d094526593945c4c
 SHA512 
2e8c27425fd916da6b45c297ca2d2ff7b741e0abbce09476ab354eef403ff7230cf7bf52f03c086af4a19755bcc937f029ef5ab9d4eeaf55e4e57770b9aaff5f
+DIST firefox-120.0-bg.xpi 574997 BLAKE2B 
21e758cd76b9a3d8614256cb86e542cd74634baf43623e9127adeccdca065965ac5ac872f62da8c0ab7710bf0c898b43b1a8419db4e233649852874fdf54929b
 SHA512 
b774f3660fc7e31bf03d69cd79be7df3bc940cde74ee1683df11d18ac2c4c27ffac1fc64b706f952ed19e6e3f436e1cb7c3fd1e06744491bc38b8b585bc40e11
+DIST firefox-120.0-bn.xpi 569024 BLAKE2B 
1d11fdf20d9eaf0e29953da0e038f9e11da8a508fff895bbab2b3578aa443b7b1aece1b6796befd4a110836e385f93b67bfb48c16c6e4de47b7e3d0b8844519f
 SHA512 
b8c2580a6ee4a28d1205bac4b6897fcfecb1162769f0c41364494f20112aed0ba38e10ac756650a0d7429959a7aeece31e9ffd35cf4c2e5f99b29cb4e31a72df
+DIST firefox-120.0-br.xpi 554037 BLAKE2B 
e5c5118e057ec4e157e968b749dad23b1d8cd40f1a0d34006f3fddf44a2b9f370a32892894b44dd9f791757d3a3c70f4a317b6faff0014917fc6c6670fe20ee6
 SHA512 
61c6d1743d2ffeb180e8f1044a2b4f5213008c2e2a6a0897326fa5447ee196c11d590ae9f5ddb1457cf5b6b3fbbc33bef1bcbf7fee6ee9bcb51b3bb25a914e12
+DIST firefox-120.0-bs.xpi 448503 BLAKE2B 
f035af7ebf978f684f969d74324a53f6869ef1f1477dfc86d2bf7e5e521a79469a30d406861a5c5dacdb915c190a165a9891594b527455604596d5e982667dd9
 SHA512 
5c91bc974ce6c1524840b3128f506c96c24752831d7a593d602f9bd91ab106d86386751586177e655b68b8460f00ba784d44b05d14a678c1a3ca4dc239aba1d5
+DIST firefox-120.0-ca-valencia.xpi 532971 BLAKE2B 
556d3f3002f1037b12792a217793e91440e936887b0a3f0fb41110654c310bb376ba88081455fc46ba542690236fcc5667e88a7299c6ced4c21e5dbaae2181c3
 SHA512 
7a9ec7e27bbfe1c8d08033590b193cc3311bc17e9cf9ec1bb8ea47a402d95429ef51552cc5d3a3a80f54a5fa8ffab2618327aa44b2d8799f883ce6b9f13761f7
+DIST firefox-120.0-ca.xpi 565169 BLAKE2B 
c72f458d04ca239b2d28f25f87c545dfaef7ef76a060d66f6e46bc5746563cbf653bb73e66a5ff8e265349da9340368125b06047585ad05065395cadb26793b4
 SHA512 
4d104c9f63bbfbf926a2577a21ad99597f3e72e2bf23d20c1693b54d4a9e25a445b8173758fc264901a4662e664e1b5dc21db6be0ae6bbd810992dfa4bffb989
+DIST firefox-120.0-cak.xpi 577836 BLAKE2B 
867707f7a350fc1da4a2475fc5219ba96ff128a216adb961bedbe967b45a56e6a9e9bccdc55def824d6aaad33da5973b259e0756790eb9be0adf2357fe9ec762
 SHA512 
0775579984919c65236339092c97508b2694792194f1bbdc5bac1ae146be96ed9620eab588d54470ccffef1d60dd9290217e00d5c4d8a954b4cae339067445d8
+DIST firefox-120.0-cs.xpi 619090 BLAKE2B 
e7e1e73a75e80cba12da570018b93c85cd78ce7ef4238e3c93531b709e24892c87ddb4333c6a8d7054583cebeb296022b62abaead5027de0761b2d8bf6d9eb9c
 SHA512 
bd1a10ef5517ac910c2b0180b231d386bc4392355440b2907e547f166413d6a1fdc4ee1ceee8a8570c978514e5c0db7beebbcedebc9216c1c393afe0e8c6d8b4
+DIST firefox-120.0-cy.xpi 586540 BLAKE2B 
974da65434258e2f928a5f7682a3e2e8e06fc79cd432c375d8f58a616125a04f8346afe3fcb67d47aa88f104b0838068dfd3eea42ac565c3be7a0721672dfc5c
 SHA512 
d8f25c76b0feb05cd23f6f536fadd851d9d812e4251d92bc8c183e92a7bc24e1880178f80e0d82988a0f4d7f432bf940ad607199b5b10461e7c5466b5f3359c2
+DIST firefox-120.0-da.xpi 575578 BLAKE2B 
2ef7f4debd36c8b9e813bdff27cb3305c29ea62873ae8192f63e86adacce9aed1a5541fab29f5e6698371c298f6d6e003a562c334f125f1397d5118ef0f6d43e
 SHA512 
a5e52283efe130b4b0326a30179858131945cfa8ad56d36d82e2e4c8979c0b6e23b87ea39ce340d0fc2fe33f684ed11b31a21ea6d68a7158e5f02eb6b0e2f9cd
+DIST firefox-120.0-de.xpi 596555 BLAKE2B 
75da932d7072cfd2c8b1e6719b2bbb13b55e64024f14ed115c841576ece8fecb2abbfb5995855329e1bdf269888f06f154121228aa5168eb65bfc2b8ad170414
 SHA512 
6ecef5dc1f4146ce029c2b63419f9eebc09dcca2b4f0cc2815eb6a1cf126c266a5693eb7bd94165e2000f82a68429339d49d1bf588df386b28d52a94aa02c39f
+DIST firefox-120.0-dsb.xpi 611850 BLAKE2B 
fd4051a3c388ecef450150caa0af53c09ba5fbd5ff366ba31e270dee2f121081c6ef2d05efb3b34d393a5d5de6e81bb50e8ad197d64e6fa86b3d6ec952812b91
 SHA512 
91567ab56029076636440126baf1278bc8b25c7046f975e2964a8deb4a212d4c6062253d43d7f3b000c1c11d53f1298e5ebdcb17c63857ea90c9bc82b59c4926
+DIST firefox-120.0-el.xpi 689496 BLAKE2B 
8f600525bd1c0742529156fd97abe23ff1e20dcc4aaab9e5b30ea9ad246364ffd67cb568db431446fe9ba18be9ba5c920ecdc01b3ea32fd6a734f12b2d8c6399
 SHA512 
faa148fc1b561bc20d7b52f3eec4ffd45dc2513abde2e5743eb2421a46a7699373ca7527974949c9c57d866c974739865fe2dd06d24810cde973d1bcdbec9bca
+DIST firefox-120.0-en-CA.xpi 546882 BLAKE2B 
13c393a6adeee961a2e66d8afd49f400e169115e6bcb0a86956efe6b7e17fe5d3c6fd8be3c456032acb1883cd36193cb66abb02813a5692989ddc3d927eab231
 SHA512 
0e205047fcfc66842abf1043b2d54b39ab91a27df1a4074154f7190d3937cf83510291a033e5b504599b8c185c8862b50c1bed4d74583e9518315c39feb99078
+DIST firefox-120.0-en-GB.xpi 550564 BLAKE2B 
8aa3287d99b2de81b0e2dfc37beb74c501cbf6d36802736af904b0cf1852ce00ac6e9ed7dd7edf920c0ef2848e4dcdfa7adf097734bcf23a854abf1811a6c384
 SHA512 
a7af406e68161f42aaea0fdb4132c5f9ec626dbd1f4f3331f812ab294035e1445ec7c6f06f3f41c3cdbebd836a9035d45a6d71613d90eaa684e48b33f2e2e4c9
+DIST firefox-120.0-eo.xpi 579374 BLAKE2B 
d90e97b10fa77c5f344fc65e9606308c834c92f15bbadfefb427a928ebd6b9b34fe669e6b55afb0056623497d991851d7cebdfb10050878dd370db61bf6e0808
 SHA512 
9efdbee1ed0dd128049b1497a43e66efefb987d6bbe5ea325a1a59150c7380f697962e71affbce0d0ef6ee3b51128c0eb3a1a8362c00e0ab9f97bb6c561fc46f
+DIST firefox-120.0-es-AR.xpi 590606 BLAKE2B 
7bb9675f35150314b75a77efdc77842f097d9e2eef025475b68ef75e8c6e8d3d41f4f839beee0f6a0884fa2eaa5200dc0cd312a3843070c737f1d37ed9d42695
 SHA512 
1584f188eb6d35540a9a441dfca8abf0445a0f1bdc6ecd590378a49e2642fcfb2814131b8984ee643310a89aa358a180802c4b93f042ce0361a09b656a1d0392
+DIST firefox-120.0-es-CL.xpi 589730 BLAKE2B 
de129f9f700fd7d77679165ea9b668c4f909589d81f9bf492fd8c8c3b97b95318a00973c4e6e4c9984e19d8224634823ad462da66cdc7a627d2ab7dddf6b1729
 SHA512 
018d44f89b19f5237add5ace7fff4bffb7c6f8bd224a71f4a3ea2a18e4cf0d60512d390998aea242c52fe224a65c09c0a126110bd6df5ad9bf5a5851788766eb
+DIST firefox-120.0-es-ES.xpi 584305 BLAKE2B 
26d829d75e75d595eff9656c5d9031de476c8e9c6e3b9dc870d72515db69bb9e048c942cc7a93587eeaf78fd8a8fa1984d3f50b54b75a41f34b07205f20f7631
 SHA512 
0c9faadc9301e55b29070021eec919e3b331410fb39a4650aea389d12a7d3820e6701cd206619ba6da0791ac934e3863b3948ce710e1df24421aa5aabaaa4f20
+DIST firefox-120.0-es-MX.xpi 576742 BLAKE2B 
5235a82d8104358e5b4dc9d05f1067dcd5ffbea12e3bf3f59614185a350de3176575c91dbabe04659915dea17f513742fa9f0956c44ad023967bf6c33e3ffc1e
 SHA512 
63942bffbb3aba206330f74e4488df79b18eca24edbc9b145389f7a792d07a9062024390707b504bf7d94856f24544cea42cc2c0cf3ff5945e3cf061d715c7d4
+DIST firefox-120.0-et.xpi 526678 BLAKE2B 
12065765efeaf3f4710677190134e3dac241a8c5c60e3d027cbc4481602803410aa85fc2c708084f950002c43b41095c80ae094b208e4e2d6f98bf783b6624ab
 SHA512 
7ac3781877c58b7ac71aab8818277924274c2244b37db21827a194ef354e5bb440e9b0574776dc951d185e3f0c580962e54cb681d12b841190d291ba7cc41343
+DIST firefox-120.0-eu.xpi 574217 BLAKE2B 
66c85ddcc4ba01068b48ec00112da9399493fb25bc021ca15673332fba6737392070ed7d2275607c25ccbf7ff04e656eeddd2fb25aff30664230e073f0953c88
 SHA512 
466e8d81e156bccee90e1cfdd73040fde61d10508ea5e258d0427baa0a4ca27cb82f0786b1c505253e151660ac015446dd787e73005e72f697572fa2918a1867
+DIST firefox-120.0-fa.xpi 577067 BLAKE2B 
6ee1fa5bdc550cc58b7ee8d2d804c4856773c64a06ac9fbd13dd0c02dbec9c7a6b3e1bee6237bcc26e43b4d0a7d145255ecb7d659c30d19b93dd4fa5aecebecb
 SHA512 
0cb985e113487d41409c3b503a7670566194a8396c60271fb9f196396a7bef2f37118da62a6ea5f25e3fde220a9f319bf407bb11efcf005dd227bb3ceb1b1756
+DIST firefox-120.0-ff.xpi 464034 BLAKE2B 
e190a7c6074628bb68a75d28155de8391e9746351f04abc3866db41bfc20a1dd722444d0a8b4a5d24dd48c247a400794aaac15e1a8e09f6ab0f49969769feca6
 SHA512 
de31e863389c8d3d5b22b5883aab139dfcd67529f332c61e37dfae905c18da3c72865e2cc8229d41105e790e956b1f4cf0a5cb6e8a1fe0a6994c012e8f34fed3
+DIST firefox-120.0-fi.xpi 573136 BLAKE2B 
23782e9e36cf0f371fc12259b17d338097d09b9e6a2323f4c3cf5b78af9b93c8d771c55621738fbd0d3823ed011b4addd5370fb4c0cae27f8e4df819cba86af0
 SHA512 
0325e13ae4f30da13659f43b5e575606e72cf1fba4415c1db8882c225b7740d54da1e05ed61591080221958f4a181e4ec80c393b8d1cb1ee242ee4d1de4ec259
+DIST firefox-120.0-fr.xpi 602900 BLAKE2B 
a24fb56a6c23509cf4444e7d3edb74dea097bf4fa1831fe23e419f44477fc3493111b0683ee30acad4e62754c4e9e8dcfabaa91226b6ba3549dacf0b1ebb5511
 SHA512 
f3e40acd388d0b6eb6b446cbd7cacab7d55a4cff253d4d7af601dccefcd0256c430647769747f42e0b695cc635ef8c3668545828abd9b862250b84ea73e25d6e
+DIST firefox-120.0-fur.xpi 595583 BLAKE2B 
2f2f01c7e9d4eb48724f8db37677dda6e4c8124f8d5031bbbfea9f49d02b4196fa75baa715619a39290749e0716060ab85d1deef4354e83fa9eaa069405d4b14
 SHA512 
b2c108c242ce6b89ade036f4ff741762285a70f1e3d4074e5c874af2ac96db3cc4387d50a012a52df5bf724198a498de36a8b6457c5f3f036379c4a6075c74c6
+DIST firefox-120.0-fy-NL.xpi 586202 BLAKE2B 
a59cf047bdf690e41481d60660d4aa26c4a2e3f26c423045e2f32d50cf9f26c54efc92c938d204b06aa55b6931465562268ca923a67b1aa953e1f29e2f3b6e57
 SHA512 
b71bb34a14a6bfe50d0417ce69af5559e46dd6197242b1b5384eb57c525a58bde77bea644035c16f31862a39e22b3079bdff228c685184e5cee8879cd35206b6
+DIST firefox-120.0-ga-IE.xpi 461297 BLAKE2B 
74c69afd8dd33b907494e545bb6a8a72ec47792a48908c4cdbf610cc1d0ded7ad07b19ab419bbbf3c9b56ec29de01cec85c02e1af40dea9ad06e6d68f82dcd14
 SHA512 
427e7e8dadbc37b09889b28542603aee5930935c57f065e3adaa7d51bc529344f94386c876f44b688b6568bc615731b4d588558d828c65b22eca772fc0af5439
+DIST firefox-120.0-gd.xpi 578544 BLAKE2B 
e07b05b79025eeaba3a531366b18d5f25618820688ff19e3f428cf07989df056007c28859b6f9c8a3a5a6d137337fb69073bc691dc9f76bf6157c097fc0f4a06
 SHA512 
ab147ecc3852e2b9590813e137b0490a2e79573f3473a47e141e6b767df74ee7de4274b7cc2b20c971d7cf63a32ede2acddef82ceb185c9ac49b01406a2fe79b
+DIST firefox-120.0-gl.xpi 584964 BLAKE2B 
e14155602ab9a7dc229f4ca8749e75d7d8644d294d9797771e9c275285dba8faeaa23d665bde0591e8136aef7a258dba9b1fbe79a546a815ae98565f4e888bcc
 SHA512 
7b3a38f897e37d732bfafaacffd1906cfdb4e722788b7a4a025eb016abedb3c8d6516b6d75c38b2f389851f119d9ecc019062f95b88d2e7a1cbe33bbcf75328d
+DIST firefox-120.0-gn.xpi 601450 BLAKE2B 
5d651a4b2bc78de402aca1b5275814c1705d230cfc3e4a928200d1f96c450eb90514a229b20683a7b5a017625ab1409a763d268766e983cb1a0fcea5f3937eb4
 SHA512 
c8d3f90be4d57dc8f066f7f2eb054ac236908cbfbe95c668aefe72fc10975086f68bdca56cd3cb8eeca84f16b02965845e8b2035c437e65dbd39341efb40628b
+DIST firefox-120.0-gu-IN.xpi 514874 BLAKE2B 
1ee76d006772886652b6e9a77a425c7b82189b0d98b2e6f784aa36c5544abb25c5d89476120fefdddd0b8c26683bed7ef2acc968f4e16b87ce0cf03bcafcbb14
 SHA512 
2077658d3d9ab888672815043aa922bb39299b6c556de64dcbdc1e1dcca50c673ec8d71f41467f6ea03b9cf3c1ed404e4b2a111985542d6e7f02847bb679fd04
+DIST firefox-120.0-he.xpi 595912 BLAKE2B 
79a1a6b529e4ebec5ae3dbc0e25a48afa9629273c3f7fe276c85e972164d5229d0e1f6c9bc203366580672c09a5354786d69852e9238fe005b92208ed9c22a46
 SHA512 
c6295d2fb053b74a63447a894743151c03a4e1267a5a1a9de97e00ba5db4d4de69ea95d493e345ab6943ee0fd0f8bc9d4fecb1ab32574d25f8845aa1dbbbac31
+DIST firefox-120.0-hi-IN.xpi 552908 BLAKE2B 
7757e050c0d83c14097138ede489dfbe56a3e4c42d68d674faa48e1208497339500d1aca749dd8e29bfa260f1c5b74ff20889a9b87f6b5fa0f9669e6bdbf5163
 SHA512 
6770d8c035b33b1424ea52fff5ec29a1fe87b79962dd50c1784aa294bcecefc3091b7335fbad45ce2083456163e8e6aa79f94d53f00f256f59f43d4b84a1ae14
+DIST firefox-120.0-hr.xpi 543691 BLAKE2B 
df09a13e528a81a2d7a4e214b9d9c99ab8cf30260d9c71ac03bcf97b30491e4c2f79b68ae2bcf96e18f9a1b2ed7e227b33d3e90e11358f5ee1437a66d1330bec
 SHA512 
d4a3fda12f23b14add1aa5ed1c955ebfd731a668d38e4c31ac81fc3d6df1f56b2cecee1bcc4ab56e454e9ee5867869e097b07901fdd19b8cd8c0a1aea91c180a
+DIST firefox-120.0-hsb.xpi 607813 BLAKE2B 
920ef6fdfdad523846fe4065f683ebdecc0b0aa4b9878df6aea4a3f008ace88ec606b46d416549155338a2dc50f98254d9249c43b6b58d1bc7ca05577bd85a28
 SHA512 
6b8946f5ea59daae91970b3deecdc6f0c5f52de97c0c6972fd029a2f9a4da822793a1504c9119f21e993876f2acfbc36e1b4e0d860f417c16aee2060db657809
+DIST firefox-120.0-hu.xpi 612038 BLAKE2B 
eb791e1f8bf7994151733c682d3a2c47add61d68672721b4ea013b0da6df594d6f3eba162edad5b1190b6e6b8bcf0ece8435f5af14afcadd0b2cb3a80420ce3f
 SHA512 
6fc7e311bdbb7da2cc26bcb6cea1cd2732cb60f881b6a6e65063b3158d23c6cc927fb735dba1e3ad55fa27fb8b83f959fedb6b243000a78c1da8b5b1eaa20f1e
+DIST firefox-120.0-hy-AM.xpi 592649 BLAKE2B 
25a72eb1db6c7a72f50bae3e5f873040c15742b41c3c715a2d00a19535c57692b850d8438c27f0310a719e6253f36d9383e1767bce37d882eea8d844e46f374e
 SHA512 
ca053c7b0bf9b62ca51310c71b731734a1015d08680aae926a6031d81ddb00e5543de663fe5d766ad2d641d921f099d8c06d9af6009397abea619ad513788e48
+DIST firefox-120.0-ia.xpi 574393 BLAKE2B 
3779b0164bc3edb11c2ffb920c15bdefc63babe3ce15c5c8f2c372d9471ecba87c39adca4ee5aa51580637796419b085fe8157d1885db866cf58d50fda1fe5ab
 SHA512 
7003d64e172757550006646aed2c3e6bd0706ce39fdc35b8fcdbbba15c782f57ec6136e34d70fd27fcef25590efaecec3d261ee18f2e3f71ec841cda9f46dd2b
+DIST firefox-120.0-id.xpi 550921 BLAKE2B 
b3658e27e9ecab242bf1ecf8116110cd6163317e8f545ae0b71cab1b55c435b837552b008e156a23a22e485c97ff28d25681f270f96efc22771acff6528d227e
 SHA512 
46adf7e0ab75dd736b1b6816b543b0ce9ddfc1e9fcf08081ff3efc21388a699a02cb7b1a9d4e539a75d153608d8f1cdbd93e7b0b3c462a788872c94de46ff48d
+DIST firefox-120.0-is.xpi 582920 BLAKE2B 
4f3c5f7a297e6398d068fbce6b0e028ee9bbd050c8fd9c6bf3840d805a00c81c5382c0db2010fb04456f46759c69edfe0f46ee4cd138ac4827a2efa0dacd6f5c
 SHA512 
6ef53b652d5acf79a36cfe6c78e402f2331903e12adbdc8f619aeb2bebccb60030d808885822fda67bf076ee7e7c0c22126a15a184c91c68f227468522ec2032
+DIST firefox-120.0-it.xpi 533821 BLAKE2B 
21350b9147e0d970712b40550a2c24ae6554cae1ce48ee2b13fb983344afb9a2f6b1b55db57e5f663ef66a2e2bd94f94611790eefbcde0c311b6f6056c4b1954
 SHA512 
d45b0b0186b0ead9bb2a2b1255fd544facdd004a3d60f228e7e9cf9d60aa20ed59ae533a39fada0cb63e2c6e376823878fb7c5c823377e8ac9325d3efa6e5329
+DIST firefox-120.0-ja.xpi 639939 BLAKE2B 
e05e7a42bb8e5a87a98823d809262694648ab332a06f7aec8b42aaa6edf3c1c167e2620f9d5c83c3b9de836c4c6612e732af6cbb934e855fa11331228771867d
 SHA512 
77bfc480ee2ebaa1c46114d0f43284b18556dd6fb376b70f53a368f36674fefa16ac823f54ab8cbc01e6fae3770166c34e0a04683a8643f5940ceedae3324937
+DIST firefox-120.0-ka.xpi 641105 BLAKE2B 
9241b8edc78c0a937b559e6fd0e2969068e95ace143e41c7af539c7a19563234847be596783a73dcf1676e8069554c512ef53bdc133a58ee0fdb1d5c2354ad4e
 SHA512 
9d95769e553909b857b8a5598ab4ac199aa8a4db29f4b1fed59d7ba60580efea4cca47a92455360851fb33a1e3dca0f2e20ff2ceef9037865174dcbc2da1905a
+DIST firefox-120.0-kab.xpi 581406 BLAKE2B 
ae4a446ce7bf468fdcc34da52a5372cd05af2e001dfd9ccc0618a97a8bbb9b5dc7e3ba9657b2dfd8589f7cfd422417bf22124ea576306fb3125ce6ce5f2903b5
 SHA512 
94356f55eab6a67bb567236243a4e942fd56374374dc16f8edd7d4abd2006b53d6dbbc8e10bd176b68a5cc3a857876fdfd96d3487944fa919f8dbcd36610d9ed
+DIST firefox-120.0-kk.xpi 665639 BLAKE2B 
fdb9b5490573b50a84dd50a9406853dbd02c49f4992e0bd83126e50f6c115b4a440adbe449cb7b0b97378b813459c5301b81d43291f60605a8d592cea357f10d
 SHA512 
de66a5a1a9440d91a0118e4b26115673f129bb87735ae21d8b8ec057430af6254d8dce3b2eb1ebfc0cb2d9f7cfccf5b5dd82a2669969b1b5f05af23d11ede19e
+DIST firefox-120.0-km.xpi 515273 BLAKE2B 
03d6f2dfd56794e6f4aeab098e5c3b9c04722b4d7e1693631f52d4157c9db3476dc2b72e2068d5606d6e8619584356d3463266b088c81c94db19e8a3be26d932
 SHA512 
70bee02117d1cd0ea2374b6d8aa363c020f897dfe76e0a973800ba19c5d10a3fa2cbc2f4e332e743e2a2391c9097ccec3495628e440277e3825e36b2596f35eb
+DIST firefox-120.0-kn.xpi 480481 BLAKE2B 
34415aa151df6535611f550fa0c3304eead1e8c1bb16ccd1a6f6dd0afb46bf72298f6cf5bc804fce6621f50738bf7c41ce5fe258b18ce50e145fc67ee76af24b
 SHA512 
2a4789c9563ead4c6f96c6d6cd07c3bc6907ab9e2298ffa3cdf42eff12d83db4ea598462411803f40a8dfb0625fbfb8af0606ba02eb0d76801a19a21379eb2bd
+DIST firefox-120.0-ko.xpi 622307 BLAKE2B 
5102d9208a62e3e63f43f76e814b832ffbeb6f4f1b9996d5df0fc29b1f3e834690efde59bc0aa3b10f67298657aecd3961d2999c4fd1a12da239c5b5005c366c
 SHA512 
3d2f4420c82cc250f14385b9ec3e82c287bda88903e858a485228e29199223f2277033ee1a8b99d0873b1d2adadaf4e409f5ba2c316184739f7dad08679aa8e4
+DIST firefox-120.0-lij.xpi 472229 BLAKE2B 
540b767c0faa48159de53e700db45879cd515b77cb6cbf35928a042ac729e4281629790f85f68dfb2faac4b563c409249fa70bfe1600c35133348524ba6b2246
 SHA512 
d17451cab5d999ee98eb0044d4a872d1e5ec72aa06a2cc1da44d6903114c1b90a9c036d2a6b0bf2b4c3757ac4bed8e1d1ae63a0057c5fd68b09e7a8d8f0c29ca
+DIST firefox-120.0-lt.xpi 559266 BLAKE2B 
67368d131ceb6fae03990099e9bda66204eaa3bfd5d25db4dfc379a77ee06bae9f3299b605e5e31afd501d21410d156f5862d682cdec8357b4e9305a73cda66e
 SHA512 
1b3654e49ec4e46aabe41ea12587d2faa272e127e08f2caf64ac2081c2e023e38e7732c80612ce9fc48a6cc270f78d77d8cb19c7fbe7486fcaf328573e5677f5
+DIST firefox-120.0-lv.xpi 457815 BLAKE2B 
7783d74c10d9012b298a05623704c4ccfcc87185e10b272ac682cf9e307af629b8bb4f82045627116efe4d059bbe08a08c038d109ba672a3b4bc389aa9721ee7
 SHA512 
9eeb93c867ca5ed249bb6e79c3910d53149fbc80c9e24390367e530c4f208d7f16812442d59a75056348d56f0dc59a99486c304dcd1344933b5df5b39dc91b30
+DIST firefox-120.0-mk.xpi 483133 BLAKE2B 
66f5efccfff5960ac6e04e0434e1a9b83e4f4f7360720e7c826d48bb1c460f12e22c81a2058e5403a0400a156084a67f5edda7db436bc550cfca889414bc2ae8
 SHA512 
84dd686364887921b1d564f0f3f8ddbeae41a85af6c70fb142edef59f9879fc60a0fea5f45bf6369ce54061e62b9c58165202094c089c56a32096dd84d84d5e8
+DIST firefox-120.0-mr.xpi 520053 BLAKE2B 
ec5991a961d0273664ab2741aa1a903e70028002bcabefc3b2dccf5cf1ce56eae642fab358308842723afdeb917ae2cb96b2997da3a4a89b33a1356633b1f997
 SHA512 
e3368fec58bd1c5a251cc218838db32285996fe1519d2773976cf995ea594c22596d9d3d725250622f29bb178c6e958c7161b384bbf86bb6eae67e3a597e6d5e
+DIST firefox-120.0-ms.xpi 438040 BLAKE2B 
9ee96ff6f57d9b033928687f24501c0ee7907017d92c67f56fa180f37d3c002bfe5ed8b19f33e2f208607f73e06032bc967f54fdf9efd7f98de85ab542791119
 SHA512 
6200202d97f6cfc14fe0e9f182350da48eeb348d4cbb0c191b8527fdb42ffc4ebd8974bf322712459c9cb693e9cb68d68305f7e6f536f8c048a146f1512d1c3f
+DIST firefox-120.0-my.xpi 501457 BLAKE2B 
b36a9201462c34ca1714d70a95334f9c9c6eb97d7a2d11e63d13a1efdb19db95f489ee640acb8ed13379c5274fee0c7dd839d575f738d71d830cbe1312f2ee5a
 SHA512 
6a0db0b8eef99b59588c8e789ba23874a92ecd6c870b4c3e93c13cb840dda0da33c8c6a2cb62ba72e23ce9582befafed2f5331273997b83c804388e936f3d204
+DIST firefox-120.0-nb-NO.xpi 569538 BLAKE2B 
3824178b5448fb834b8af56037e0e81ab379e0e3afd8926728275c34c8a70765c1b06e05aad722a2bfbeb880409869f8d1abcc4291c92b478c4ff057f246d019
 SHA512 
07321aeba2a5fb1a0530879c3bbe0aef0f26658bbf9e9c9578313387db8b90d9e985a5bf34c3476f47e58eba3518b1b547c8861feaa0d38734c34814df1c23e5
+DIST firefox-120.0-ne-NP.xpi 476899 BLAKE2B 
3fd540a501dff26bb57df8daa6ef2e5ceb03628eeca61c44d48ef9cbcf4d16ef0745b5bd9f867689f28ed97f3967adc7c11e69b002ddd3f63f0c759e450159bf
 SHA512 
fc6bcbb7b4c69f638ab27c58bc0927c74a35f016df7ae0f08e6c6578a622a16cfdc56c3dc212d33b552dab677e9eed8be9a306aeb72ca546ad5681a3c373766c
+DIST firefox-120.0-nl.xpi 580272 BLAKE2B 
8eeef36b53652ac776702414e853465a1343a76a53b8d7dba2c74702f877b75fecb17a1ea5a622889ef5c92bebb6188b0f504838577225234bb95e33c9a99652
 SHA512 
c06d2ddb364cfea3c959e0878959799bc4637a68cb809fc69badbe5c1036658e4d529439f935fb9dd72d259d21e6fb02e0af0154be98bb288d0e0ed8205df338
+DIST firefox-120.0-nn-NO.xpi 573630 BLAKE2B 
e679c107e158199afd2898a134f7d25c92b828d696688c157fc3bd2be29d61f946f86def436a6272c3179424b68b0e2feccbadd2b0c72b4daa276dd8485fde20
 SHA512 
047b7d79610de0c3edca01e9520e38c6eb4c27be60e09ac3822f6c7f61328ce41f9137106e2e9e74cb56adb50d9e384ab7e99c4f6213f5b918e7480fafba35c7
+DIST firefox-120.0-oc.xpi 590380 BLAKE2B 
a19229e45060a86b94bd79d3522c3b8a152b2099fd66c14ae6e76a6c8f854a3549302502493fd5cc6daba4f3a0949ac149f011ceadd28ce4dbd6a647864c78dc
 SHA512 
42d396904377862e6faa693f7ad61ff1969fc2173b103b5e1eb916230aabafea1e1a54751fa587dc16003befb833e50f5541f2b141d5d50c215441adaf03c594
+DIST firefox-120.0-pa-IN.xpi 655485 BLAKE2B 
e5eaf112a79c532bf1469eed6e7b0680694971b8e83a10921ab85f04d5e99a044b0793b9f511a5cbfeb1080d7279acbecb9780986633097e7092df46702e1ac7
 SHA512 
6e33afb5fc1cd24545dc1a22ce86f13b8eb63b1998bd1ee4acef52489a75f69bb15d14ea59c8b3eac67343c333d2b63c360eca034e3fe63b0140104b4ca48502
+DIST firefox-120.0-pl.xpi 600032 BLAKE2B 
27249db13bd9aaf94e3f827852a1764676f8721c795719f2eca986a379f5a9db755290abe6739adecfcbaa2819f5d7b2ae475f0fc660cae38c9be51b68810fc2
 SHA512 
5411258618ddb00c03935233956e5514c019a88b0e8eb0a7256baa2ff0b6427673c867fe036c17292cf795d097660e64cc3348af24da4e03b8891063c5d8f0e7
+DIST firefox-120.0-pt-BR.xpi 585130 BLAKE2B 
0b6f9f63cafeca626c894b9a4608788294561c946169dc62236c9a5680ad270b8c6e0065a9c3147ce32aa019f1ae7d85198bc8327bee722c4f1820f66dae76b1
 SHA512 
84bebb83d7a0ac3a921ec26503f06f63a5a96a021e0c63ac185fd9bb39834f96a0f9c4c34ae748af2e9079e9865f1aaec3b40bd3f6ee6b3aded8cb2e96de1860
+DIST firefox-120.0-pt-PT.xpi 590786 BLAKE2B 
0e78f63c585359bc54e8d7f44ef9e4354820dd317468a8397f25159dce1c80eb586e70356bdd54c26dfebb3fee6865fa2e38e81a154e4b19377dc32511e7ce9b
 SHA512 
04971edbe41f5c7b14b3eba48b843dde1436d87449a7b05e64de77e8e3013398b49bb242db53795f08b28a81b2d1028a1b29fa5dbdee7ecf00102fb95bd228c8
+DIST firefox-120.0-rm.xpi 580730 BLAKE2B 
f2077586f497cb131ac0f638b4de648cc0e9efc9d230f205fb26f8bc1bf77aacabcc2ede200441fdecc2b5dd72117e787916e277c15b9216bb24e1376abfc4fa
 SHA512 
d7c38b2a7e4a07d473785222b360979bbbfd812b67731b68140a35e584a5dbab20dac6df67366b3eb26155a23b193a0abfa3e186f9375d1abdbe92f75d72dfd4
+DIST firefox-120.0-ro.xpi 536119 BLAKE2B 
0f4e68de0026c0c2af668bfb446379a0d8cefbd5f052d96a5f4a93202cf6745341167c03029b24d948b413a0228adea3f25f9aadb3bc2fa56f55e0a4f4d296a8
 SHA512 
5c655d6a1b4e75bbaec19e98a0e04d036d0e44311cd2b4161da733c4aa11a17da691d8c71b71740ecd74a0a7412ca47e8a8c31d961b818669f6bfd895f7c501d
+DIST firefox-120.0-ru.xpi 677185 BLAKE2B 
b81621dfdcca4b15a1946b35b291b8ea67d814d85464839009ef784517b60bb7fd0966c6b966d29892548d589758211e82b32b4cd3ae115dd36cdb7efa2fa06f
 SHA512 
93ee1371453f49c1287eadaf947f35f16671e3c4d5f15a87e7f1b90c22948b4307de764f4540198c50b453ae84c853b84e1f009e1850b88b6b0e132b1f656bb8
+DIST firefox-120.0-sc.xpi 552168 BLAKE2B 
edcebe1626835df919c88860e6a3384e53aa023cf1a8571ba29515e17eb287f9a6451e06f7814a7da1427da7a8a24d1b617cb3b822273cc285fa7bc71af35e7a
 SHA512 
cf64cc211827d646338d379b5ae6904b775f2f1e15cb3ee7e722ccff5e35814ec25653e34c4bb3951fc3f058d3470f2ea6f2149543e2a0b422074b12b320bc29
+DIST firefox-120.0-sco.xpi 499305 BLAKE2B 
e52f23621b1c28033994ca9909d5f96a3dcc27e5959af7e5c6bb5a945576b5e26a8dccb78dcb3218ccaa20d09426e04486d5b5027e2ed603561780c085bae001
 SHA512 
758dba289ae617169c2c4176c903372ec74a86add361089f2552ad8aafcfc70db3493a4c015084468e81a548fe700855e36bbc2bcb0c10d6436c1a6693ee99b4
+DIST firefox-120.0-si.xpi 592555 BLAKE2B 
b2ccb130054ed461efba6097a7e56070365fd0b307209b66b20830a1f8fe2463131509385afb5c40fcc3e421f6768fce4d651cafddbf987966024d7e0fda2b40
 SHA512 
edcb6aac348aed2f31329ef9b459057cf22653c45108ef189d43213fe1daccd3f140ae7f1ec8afa7a3102497db5d45348b4eb97747751cb84062d4b51b15b208
+DIST firefox-120.0-sk.xpi 612768 BLAKE2B 
d2bfcc0b9087abd97ff949117c6e85cc5c2c97d5b5d37e8c7c7bff922163809b5bf1944d16d24b90ccd922585d2920049b28d0d65cae9fee87ab01c2b443886d
 SHA512 
269aae4b8e74a28cf9ceb4a2fecf97b8c5c902f42f0aa76361b4e5eac0aca4c877a751b46a3cf4dcebd308a1897ba02e8d67b2aa95151eab2d04dc6cdf327f2d
+DIST firefox-120.0-sl.xpi 585679 BLAKE2B 
31fe727be302d26706f7bd308f85da54a86054cfff750ba3bb49f70fc907d88f5e3f113ef186fad3f852fb2a5fdb1c9c1566353b6f4d8c4847e39eed5d6d2e8b
 SHA512 
debaeaed957daea13fd006049afa214ff8655de8e372b38eccdf2f15c37f2b38939f474381b7d9b2e2dc6b4f3272836fa7da8010ee0b954e5b1da53c18b4fb1a
+DIST firefox-120.0-son.xpi 407006 BLAKE2B 
7e03ddaa76b4c83ce64dea7fdc822d50f3a17ac7321258e9a456f103dbde67fcccea1600c7e00242985d8361274bb90027883eaa0fd412c51a91b90e256a29fb
 SHA512 
23c2ebd11456a5f025734cb2daf3da01390183a9bab1451a17a9c8c861db8165f753669cecf1d4aaa4467a21ff8a1d7b6fc0bf315a895765e136a6fe24291127
+DIST firefox-120.0-sq.xpi 599916 BLAKE2B 
570da175a93da274150c260c67f5c0e5c1649a5504a743ac5e91368ee2e1a1b6a712275260f28fe2c4dcc85af045cc72f072a8aa79cc65d4829c030bf559815c
 SHA512 
89e1f258131aae40f3bcfe4c5ca7c545a28598984be1310c5d45e7bc32c1c2f59d4b7731444c4725e526a452b7b03a326c58e9cffb61a7cc1399e80316611abf
+DIST firefox-120.0-sr.xpi 626285 BLAKE2B 
572412b8254516181a4c0dd0b5baa05b63db1d3297bbec9232bacfb4052ff80383332ca638db94b15ce82c1e084a42f1866515afb319effb80e3ead392d394ff
 SHA512 
fbb8871d1dca5fe26d934adfffa11c0aa9460cf634c976a0b0435be16a9fa8d5651c0e76b94c1f47a231c99d21dc0319d708239481289b594eb1e6b3f4824d6d
+DIST firefox-120.0-sv-SE.xpi 582173 BLAKE2B 
c7069fc2f0accc179eb0f27ca0c81db65c46f0e1da2cbbd6991ea045703ecc431fff020ca79758d2d041da936111154a42913fbd044cd6747d69db04b8f89678
 SHA512 
e614141e02a20e13f392fc8eab07f58979c5c06f14982f047db9202e6fd77df9e4226213e3bf4e89ae4b7894049652f5c48a1b086aab9f19b493c3468709649d
+DIST firefox-120.0-szl.xpi 514307 BLAKE2B 
cf532f15623fc96f57f436de320fe695b46eb18d7e16ac0d55a0dc551b3f727c722c5dec0d14dddd9dad756ad4e1be2bef1a7ff51ecbef51a4edf3a8e48b706c
 SHA512 
3d654516756fe262577a80efa592ea5aaaa2f4598f761f63314fe71273ad14be314740eb7945f0100e0383e4ab11b78fe1841f1c62911eac28c85f275ec34373
+DIST firefox-120.0-ta.xpi 496508 BLAKE2B 
1b31ce8d31c51c6695f21c4e0848add1e0172ef2c0118719eb6a482f8587fa6470fa0d8935d16a348c6aa9fdb5280a9c6d76dbe11e3c8fcbb26a54dd7492668f
 SHA512 
5a686b5c4881afa6ed5a7a1d3b66ff130333648df7fe28ec80da737099cd08ef854afc67a73a0768c6877f19481709f2ba8f810b35d63504a3d0ec12d633d0c7
+DIST firefox-120.0-te.xpi 547380 BLAKE2B 
98d42f0152acc07758bc02a86197d280f6011ae5b353dccb64a87ad350720248344ffdb133410cb51b7a76abac5abc18af894c1b80cdcbc8502e52a457fcdce3
 SHA512 
47c79c449888773269539155d395e336c15faca3635d7f54835de637698b0637c7ad789af4be2a22018b2302ac6ba1b6c49a196fec35d6533ccc6ba60f278903
+DIST firefox-120.0-th.xpi 652902 BLAKE2B 
8858036d324e0f73be94a67916a8e128f22c46fd7541f2d3b939aa849e785c4ee21a54e50b12a49a0becb662ab294131b14c27640111bf4a046215cf4b69e7d6
 SHA512 
ffc7f5a920eeea18e5e6c16c422800621faf673176eb0e94c19635bd749640813d3250499f8cab781ed24c7ab9fea66fc3fe87e1c35123cb367e51e3cf2b92e0
+DIST firefox-120.0-tl.xpi 521853 BLAKE2B 
e45f70147abd9a760ba6338f8495b551d793038a6f22b5485203ae147f474bcbd30da93a7ecfa5c219155e4f5055dd184f5ea5cb27f6d59cbef5a8c735dbb2c3
 SHA512 
5d9e6e324815eaf162c05c8e9a625b60e2c8c54979553ab16afc04ff7b8eedc0c99c899b5ffd8403054f2c46c3daa3b52d582d3df9358791577c79d318e36983
+DIST firefox-120.0-tr.xpi 594042 BLAKE2B 
c089915acdfd1339ba636399bed85104f67a1350be3ded63a520dd86931f4272e0bb30fc9e586c03b0e575fea4a10d89faaf098d5c63050bea07c0a01f50dc0b
 SHA512 
a1be2f460377cc5b28b519ae986f519c8273e15f1f72275d06f2d686fd07266b4785b1fe505dd480ec9684c93845cf2ac88dd7c91cc3bb868f0e8caca3237fb0
+DIST firefox-120.0-trs.xpi 492013 BLAKE2B 
8e5aa0960619fe34d54a7060c265921f14dd773fdc051d6038bbb7127e3c35b26b4e8791ab0ffcccf20d082e8f12c6ac71f1c92bc515455c6199bb0979fc4358
 SHA512 
0a8662d804457c699d504a52ec2f44c1c6e6f22c5f23887aed96e842b084c1f8de32465ecc68e5fff00daaa8d94c02609380853c027a2d8ca6cd5722eb38b0a5
+DIST firefox-120.0-uk.xpi 670139 BLAKE2B 
fb3fe7074b21ea9f2b00a3b9d443f288e7804b05db347e7fb8b6d7e9ba759a95a725648aac6f7338fad01f180026b352a76e55bfec740da6281a2f5acfdcc5c3
 SHA512 
7f7aa75cf698447ea4fc74a2fcc51c6a5fe592ee9435ebafa735748b502d9dab563550fb4a48afd5f720423b952b4cda40397985bbfda8067e43ae213600bdf1
+DIST firefox-120.0-ur.xpi 548354 BLAKE2B 
28e4360e6a81742e28f4dc984bf38af00efc9e2c292eda732f608d95baed5a9b61ed85339375ac2c7a641d60fdb2b276998c0ef61bf485f5defac775a1445ee8
 SHA512 
69e7b169ae9cd2c51bddf2bf192648b2ebd0bafb5a471351722a4673b629123f6b720a16405e924277dd75b7dbfc4b6ee366d28b22ec460744a37d5a9a1bbea8
+DIST firefox-120.0-uz.xpi 468509 BLAKE2B 
4a6d550f3f2aa2c1c39b88064038d47328061291c74797b8ce1e027c57935dc696aed79752446841bea3ba79349704fdb1dc8b00e2d225a844e0e943511c0f76
 SHA512 
e09f5a854d3fa4fb6d805cde752713a1360bad3f1aee5e407d72b011b6e15ef8e9728e86293d6933f58a6fe31d6a89b38d3e0d72066cb23011773f947f0486fd
+DIST firefox-120.0-vi.xpi 619247 BLAKE2B 
d240d1103a57f3394b43e8555fe9ad619f8901b2584cf4a1a10d12ace6a50e52eba33c0ff9827f824fc71540fd8d1c8d2d8b3727d7aea1104a2a173f33893c5a
 SHA512 
cf4c74ccf11aaca3ca93949a542d5016fd7f9356139d3b8ea4fa95e82c78e18f97dcb2c3e6b48f1daad3fde8c6e15ffccb8dd2072310e4c7368b965f2e54266c
+DIST firefox-120.0-xh.xpi 407994 BLAKE2B 
6706bdad139958af05c1ce43cd195d3403aec23662192565f4fcc8ba39df6b82076f1e040d52d3f6184a2932775c2e7462e49a77f5ad00c08f38f6834a56215b
 SHA512 
9474ad515a3e1df95faf5dd63f54b31fb4954aa4604f0e037f0efb15bb114707aa017999719814d24c3932ef5c0d4d34c602c4cfa2e267423185f883dd239cc9
+DIST firefox-120.0-zh-CN.xpi 618138 BLAKE2B 
a274aa8f386061edacf4ae4334fbb87830aefee17f39dde83b0ad609ec82ebe82a8ad401b4459e5da8005d8d5a28c452fb81804d1cc70a9691a7fefca3df0a3a
 SHA512 
ef58d34db483705eb92d2b6b0c8b36003d2223c33ad809c7c51167e92abc864fc8e15638773a35a071898150254e1498e8b3efb60434ac95ca92796a056b9793
+DIST firefox-120.0-zh-TW.xpi 620086 BLAKE2B 
212b97f85a45dfb937c4908d49966d4209aed7670c4500e9a543b1e362b03b28a39cb95114be096d2e7ca7087d0747d0f6d1a77ec284a53dbce0b676791011fc
 SHA512 
5288468095d200085c73947da40e6ff3518e1cef6779fbad514a71c7905c406844153e6e1dfa695c401bede0ad6120acf7a302e91562eb2aa579a13dc8c9dee8
+DIST firefox-120.0.source.tar.xz 534394880 BLAKE2B 
06f11d9d6f705c13c3288f1757d68c7c910e258b3efa643f0f0168fba0d585f758082af3905c951e227894df0c092965663f52196ee1fc3477195748e0049767
 SHA512 
31d5f9e1d4173280c8de6d9b8551bc6bba5e2c49b84f944f50d42002d5b39c2fb743bc130f26c81160388a102b8301b94a0a378ecdfa6f943860f971a860df8c

diff --git a/www-client/firefox/firefox-120.0.ebuild 
b/www-client/firefox/firefox-120.0.ebuild
new file mode 100644
index 000000000000..b32b41ad1a3e
--- /dev/null
+++ b/www-client/firefox/firefox-120.0.ebuild
@@ -0,0 +1,1438 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-119-patches-01.tar.xz"
+
+LLVM_MAX_SLOT=17
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+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"
+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 
multiprocessing \
+       optfeature pax-utils python-any-r1 readme.gentoo-r1 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}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" +telemetry valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+# jumbo-build? ( system-icu ): build failure on firefox-120:
+#   firefox-120.0/intl/components/src/TimeZone.cpp:345:3: error: use of 
undeclared identifier 'MOZ_TRY'
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       jumbo-build? ( system-icu )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:esr
+       screencast? ( media-video/pipewire:= )
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       || (
+               (
+                       sys-devel/clang:17
+                       sys-devel/llvm:17
+                       clang? (
+                               sys-devel/lld:17
+                               virtual/rust:0/llvm-17
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-17*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:16
+                       sys-devel/llvm:16
+                       clang? (
+                               sys-devel/lld:16
+                               virtual/rust:0/llvm-16
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-16*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+       )
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.26.0
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( >=virtual/rust-1.70 )
+       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-libs/wlroots-0.15.1-r1[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.94
+       >=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
+       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 )
+       screencast? ( media-video/pipewire:= )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       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-util/valgrind )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       net-misc/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/libxkbcommon[X]
+               x11-libs/libXrandr
+               x11-libs/libXtst
+               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
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# 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 "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/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 "sys-devel/lld:${LLVM_SLOT}" ; then
+                       einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! 
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use 
LLVM slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               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+=( 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}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', 
and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold 
linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+       local out
+
+       # Ensure ld output is in English.
+       local -x LC_ALL=C
+
+       # First check the linker directly.
+       out=$($(tc-getLD "$@") --version 2>&1)
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # Then see if they're selecting mold via compiler flags.
+       # Note: We're assuming they're using LDFLAGS to hold the
+       # options and not CFLAGS/CXXFLAGS.
+       local base="${T}/test-tc-linker"
+       cat <<-EOF > "${base}.c"
+       int main() { return 0; }
+       EOF
+       out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version 
"${base}.c" -o "${base}" 2>&1)
+       rm -f "${base}"*
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # No mold here!
+       return 1
+}
+
+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'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       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 lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto && tc-ld-is-lld ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               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
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               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
+
+       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; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       if ! use ppc64; then
+               rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Workaround for bgo#917599
+       if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+               eapply "${FILESDIR}"/firefox-115.4.0-icu-74.patch
+       fi
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # 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
+       moz_clear_vendor_checksums proc-macro2
+
+       # 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-gpsd \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-wasm-function-references \
+               --disable-wasm-gc \
+               --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 \
+               --without-wasm-sandboxed-libraries \
+               --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 && [[ ${CHOST} != armv*h* ]] ; 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-harfbuzz system-graphite2
+       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
+
+       mozconfig_use_enable geckodriver
+
+       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
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       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 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
+
+               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
+       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
+
+       # LTO flag was handled via configure
+       filter-lto
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               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*'
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       # elf-hack
+       if use amd64 || use x86 ; then
+               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
+                       if use clang ; then
+                               mozconfig_add_options_ac 'relr elf-hack with 
clang' --enable-elf-hack=relr
+                       else
+                               mozconfig_add_options_ac 'legacy elf-hack with 
gcc' --enable-elf-hack=legacy
+                       fi
+               fi
+       elif use ppc64 ; then
+               # '--disable-elf-hack' is not recognized on ppc64, bgo#917049
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       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
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # 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
+
+       if use system-python-libs; then
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+       else
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+       fi
+
+       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 tc-ld-is-mold && use lto; 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 sys-devel/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 (+arm when 
keyworded)
+               if use amd64 || use arm64 || use x86 ; then
+                       exeinto "${MOZILLA_FIVE_HOME}"
+                       doexe "${BUILD_DIR}"/dist/bin/vaapitest
+               fi
+
+               # 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
+
+       # 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 geckodriver
+       if use geckodriver ; then
+               einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} 
..."
+               pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+               dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+       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 desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       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
+
+       # 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@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+
+       readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+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
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               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
+       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
+}

Reply via email to