commit:     1fd128403bb5b3b4619b07e4964f7dfff635f41c
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  1 10:03:51 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Aug  1 10:04:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1fd12840

www-client/firefox: add 116.0

Closes: https://bugs.gentoo.org/910689
Bug: https://bugs.gentoo.org/910290
Closes: https://bugs.gentoo.org/888055
Bug: https://bugs.gentoo.org/909724
Closes: https://bugs.gentoo.org/904354
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest             |  101 +++
 www-client/firefox/firefox-116.0.ebuild | 1466 +++++++++++++++++++++++++++++++
 2 files changed, 1567 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 6545799e7044..776f42ca1e72 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -299,3 +299,104 @@ DIST firefox-115.0.3esr-zh-CN.xpi 629739 BLAKE2B 
63d3288bea594bb11de329bad78264a
 DIST firefox-115.0.3esr-zh-TW.xpi 631502 BLAKE2B 
5254f9fb70542ea0c9855aa1fcf3b2ce82c892754cafc960b414897e67c8bfb6b13391bd7695060de8d014a52c55e9e54e8d84a124e98449f1106c13e297605e
 SHA512 
2ea8c0c53df5d8510d0c394a033b071939d35af13420cdb3ff77d1979f05ceb3236a8fd0e6f4e8000a21617e48e71c56fbff212d193d075984df61f300618a40
 DIST firefox-115.0.3esr.source.tar.xz 516725896 BLAKE2B 
cb45ee759fe119f5764981b1214ca53d46076081bdf96735ba34cef963d72fb80b1f46fd6958904385ceab01d62925cbd4d133f8b5e4bee7cd283676a7671c2c
 SHA512 
416ee56bd4a602c543391faaa8de31808f267ef2167f7d913195de45d3628de08d0582dbaa8905c847e1431bccd9d1d5d73ad9e7e5ea75be39e4d908a8b40376
 DIST firefox-115esr-patches-03.tar.xz 17924 BLAKE2B 
2b086761cb34c115c8e07f33f3f569c7c31c0e61565eb792a509b089220ff42b1e676641a09c057718a74c6fcba6be053c9edf39fa063789cf773d756fc374f4
 SHA512 
a386826b3a9c4736d9cb5192b17509669fc71308d2879b6a266201d2d571dc3b4021260784bec3117d1f68d508436120b5aa9ee18d01af84f67da58df7e72b2f
+DIST firefox-116-patches-01.tar.xz 16288 BLAKE2B 
b47e110902147fa43e58b63280ac04940734308e054adc9a6887200ab0222ce50355404ca70427246322be268dd30f25ecd628d0ddf59fb723370427b0f9fda1
 SHA512 
3efb950a768686e4a60b2a8e054d1284048d0ef727a9ddea841e443297bff0448d2728083581823dbd315ec83b8743c298811b0f97e457776a98e0be1e671e17
+DIST firefox-116.0-ach.xpi 440323 BLAKE2B 
56d55907cde8e61f0be7c4e880d9548e0f9660f465d33fb61afaa50d1b440bdec76a9a6091885edb58677335941c3755f240c99a0937113003c7ec07a2306695
 SHA512 
7672d3ab4f5fb6adc14830ac99d3e704b3391e392ce6af3e97375ada2ad675caf5ea1d0b42d311e3fc0a1628ada8c76284d38aeed74c89aee05cbc4c29e3502c
+DIST firefox-116.0-af.xpi 401616 BLAKE2B 
9115ce0800aefdb2184556fb92f3a1ee28ab82dc0c77c8b913ca7933253a4ab7f478016ac38e063c20479235a8341fcae4bdd35eac713d0720b4343dd862e59c
 SHA512 
4e8569dac354d5b899cd7e38552d5281045bf2b2dbd7dcd8861d5a48169aef8e0a9b12a251f976006d8833a23d32391adeee27986de6d3eddd101001ea6dbf88
+DIST firefox-116.0-an.xpi 482309 BLAKE2B 
aeeff77edd86406fbb613696043dfbd080bf1ccb8717ee9d1fe65f338dd26d251a9417b4c5461a9466c905cad888dca03761e123a409f87257a0d6bfea32fa92
 SHA512 
b79674baccdb978697993c403f1a4ab514e570829962159443a351982e360d62ddb91575dc4eecdda8755623746fc82f916286b8ce3f002be2e78f058e8e1205
+DIST firefox-116.0-ar.xpi 549032 BLAKE2B 
97a8756e56dcab186000e47ed0d116ff0467dae59137314974ae3ed32ddefbec2b7f2d464707b34fc6df3b79a28c4fe8996d5a160c9a17097e4c97882c2f8035
 SHA512 
da07a5236ed41e65175f39ad3ac22ced839dbc97f1fa573745798b92693cc78984a6fd798c78b75b42251df71f8fb3e5f74c7055469f5a8c38d29f6ecf10038b
+DIST firefox-116.0-ast.xpi 476782 BLAKE2B 
a00b6d28761d907295f41a219a1e08d82fd2e2e04efb708b8c87a76d9cc5dbd637eed557d6d8df6e332b1e7ea030b710ab6463b7423ffdd340e57c0b6ede101e
 SHA512 
2b2ebf06bee28faace4e0e4c17ef1f9181f3f65501ee64354831c70e44da221af4b49ba5f48d4c7c6ba2cd3c4de3b787daded079ecb556e571224240db312cbf
+DIST firefox-116.0-az.xpi 470089 BLAKE2B 
6b788d4d9ed92a7dc75817060c93198ec381a01ad8f9e9844990488e58f8a60b35538f170a7627fc252ee419b64accd21fb0ad27ffe52acff4049ae52a679308
 SHA512 
93a6f57459e67abc09891be7735f864691cae9463e2d7aeca03390488e18663f43c1a7a3c00faf64359bae84728b919eecaab1d547f42baab64fe9ea65fa2eed
+DIST firefox-116.0-be.xpi 647165 BLAKE2B 
5c1ee6ab6725b2039577c6b3f0e90ba9371eb057fa351772265b51e30a76c7e0947e19a538ccc246b318232d54fa0fa01941a8f2e51ded78b3af026c7870c8d3
 SHA512 
9bcf8b91560bc74209802db699e45ab9c1fb6fbb95656fd2ca9120e5e2dee546f8d35556afd51cdb1ecae8cfbb08b881b01b60cd865fc4fb3e5467e9cc047f44
+DIST firefox-116.0-bg.xpi 563684 BLAKE2B 
deb427524cda4bc765e94501adfb39d8c4303237894bbac2667a0245b411f2aeb42a6df73d44f21de82e11a82b1f5b3d90310ecab5d680e5614ddf5b76ca6bb5
 SHA512 
bc24d78825fa4a2a7334d9739ff00a03ced53cd95a88d9a1036d43249f8a7eaa08ead02b30b87ad8919a77c5754a1870a6422eef82fdfaef1f5d2b647727589a
+DIST firefox-116.0-bn.xpi 557959 BLAKE2B 
d0199f998847428dd8b8637db286ec0e7daa2103bffa533a99516392191d7b2f223be99f6672ba0d7afb0b35ed8f03387505cddf9ffdabd7d9e242e802f5e3d3
 SHA512 
0a85eb78670f5329638726e5f4cc1c383b33df6c39724adc08c55573244817e2678feb163b6a7ed73bd0bf9270ba925492a4b1e3fa3ca7148fc66342af03d64e
+DIST firefox-116.0-br.xpi 533891 BLAKE2B 
37d5281b5f90105968d58e759d5d2ad179275d2579e1e9f74c1ab94e75f7b5ad90686f4ae6925685f66d3dc17f36caf748f59ff5c9fa3f59963c8aa85061a881
 SHA512 
10f42dfe15516d91a4bbae3dd3929f57cd656fd69f19ab7b709ea43aceb3ab49479c8d72499ca3e16aba99dc66ffa8a4d1ad7fae29fe4ee530f0d5892bac5240
+DIST firefox-116.0-bs.xpi 440590 BLAKE2B 
0cde4af28b8eff82118dee4eee2d32d94f29d2355dfe813482ead547292303dbc01415ef50af0f397e58aa8d5c46a28c1c3eaf51c224dd4ceca67863a23cc450
 SHA512 
760c00ec13ebd6e9f148709d60281ad9d26c743249317ce56846b21002c5be5166362f9536682881af5ab32b9588fdab991c8381e0456b11c6347cfcc4a04b33
+DIST firefox-116.0-ca-valencia.xpi 521443 BLAKE2B 
edabca1c8346dd4f4754203e1b4989e740137f140ebd7675bef0d5972dd62a87b9e6f003c7ea58df99da3aa7cc61836ee40de08b5c7661803c5fbb4bf234ec4e
 SHA512 
e2fc82c11b0838ca0372cec6c43df971867c03f3835ec317bffca6a679d12e38244c2dbe2e0581f97a193d40634fcd14d1764ca7aab0cf2c7e75ab49460f18c9
+DIST firefox-116.0-ca.xpi 544947 BLAKE2B 
68a808e69c5732cfc65d0611256b015497c7a976782247140165e2276d47eef1f5b49da6a5e4b427272e15a631988db64cc7dc1324eed987776cef2ca8624ebb
 SHA512 
145ebfb04ef0120a4d1db90992b8800595c0d86d4c32cf267e35737d189bd2dc1e5ed8c0c1dda81c77edc4209fe36d8c06f06dea8763cb124f68ce86d633ab50
+DIST firefox-116.0-cak.xpi 564108 BLAKE2B 
18f8c59f6cae941ee7b6ff325cc0da958e2b377e0e7a4a30bfb13e99241949e3f8a07fe2ebd7707ae999cbb60b2e5efe467b57d8d544ec7c34f44e7f3b73e8a1
 SHA512 
b983e03cc8ea78b74242be1f1515a7fe97d91286f0f5bf9ba91863bebcccdec9fb706a298e6a8260689725f62b25b65d724959609d34436a7561c2af04384d58
+DIST firefox-116.0-cs.xpi 592432 BLAKE2B 
624f8e0efafe1020d1f48095e1520ae1ebb83a7162573b65cf4cc1934b045f3ebffb2bca160934c70bc77373a95dc41762cafec97f0dedb53544a9ee9bbe4848
 SHA512 
bef9d4fc95791369094ddd5abb858cc7289b6f94eea6ddce378b1656e853939bcf5bed8aad1ba13532287c3f8be35078896e68f6cde30fc814f7d6e23dd2acf1
+DIST firefox-116.0-cy.xpi 565915 BLAKE2B 
1a038d68ebe4f3b662000892dd5efbfd522360edfe5084174a16c5742785fcf4a4e320faa0800b80e57157869cbcff8174167ff81721686ce5f298ac14300f01
 SHA512 
b4421d39c5a18ae57be9db3d0a0f68b94128698f854eda4f89d6ab0baede480b49c4ef7c8ffac7cccedd2ce66af51d1cf2549ccf3f635dce43b46c53b505611c
+DIST firefox-116.0-da.xpi 553373 BLAKE2B 
51403dbd1304009bc13901d2d76ad4e953b206537c3e5ec405edaf1a3cbd5703cd628e77d3af46881a0c406102c5cd6b394681d195b652ce430e497b4ef89890
 SHA512 
71b65b7eac4736bf6dc2a2e7668474d45cef0d4603a4a75a621ac987add7fb0c1936655722828054d34a9fd6a12ccd45c6b5406bbce0302e9c62fdfc5f62ff94
+DIST firefox-116.0-de.xpi 574197 BLAKE2B 
8f12bfe07d567d8cebe8dbf8ca76cc1f274da26fff15ab4aee797501d605a4cb2a10344cd41ee977118f6b72aa0d30452caf8a89432da0a83c734b9bac12fe4d
 SHA512 
b5acb569b5f23a5380b7ae6a2bf6f1a086b4f022b7f01ff18bcbe90748ffe5c1ced334737d4cf09b9804c01173e63f43082339f89369fa6db9ec1d18b69163e5
+DIST firefox-116.0-dsb.xpi 589675 BLAKE2B 
11bb209ca73c286b733416b24823f8139b9046549b3ed7950865ab46a37e20226107d45e6767f7a78362734aceee115ce2737e0691e7795715acca798d579aa9
 SHA512 
fc003dceda0b1fcea9d9a8dcd9e79724ed91b1dee97403cffaf2e2f2cc19cf7a9af3061bcd2190ea55ffba076ab1caf363c597238894fc75645f817a9b359345
+DIST firefox-116.0-el.xpi 663124 BLAKE2B 
113852948b65eda6f5cc25c0a5b053c477fea4998eb0c870b95d48850878f6dbde477cef70b6f2ab774d1fe28e53ca115e1d1e20b7d3b0918219660f6a130366
 SHA512 
765708bd104ea642e1607941331e50f37896b2bcb9785d4b5338ca5f7dc4cd96c6ad14fb1b1e4ea9a6a4a4ccecde2b04a1a1c95bc08f0a737759a358165575ef
+DIST firefox-116.0-en-CA.xpi 518974 BLAKE2B 
5f38b03c4dc7721559eada3bf7745b13b64e8ceaa83941d5ff26fa0d8b58761c2abf6ae85b9a33c3cb18dd02ee6ca3134b68c316e6600073105a832dd8c1bfed
 SHA512 
bfa610a3837c436a262a463dbecc7b0201062d2da1aff71e24f262f88affb9e349760a15af4e46961d5789dd42fb70206a6f6b2436ad23494733ac7e0cf69f69
+DIST firefox-116.0-en-GB.xpi 531550 BLAKE2B 
196bdea697fde01080aee8b9ae380c0270c158fc177bf02907bb73fe13c8a9fc65b4c5819adacf238faf5a5d9c467d43ebb52cc2530a7eb90b1f6c096992adc6
 SHA512 
64af7ed062c3f4b042ef42af63613ac00352c2091206381e6db35de4ef4d4ddb7f823ac41cb12b61d79824cf3a29ae4ccc501e0d0f24dab079872e990a560ae6
+DIST firefox-116.0-eo.xpi 555850 BLAKE2B 
11c9f9ffd1977f6533dc664c9b3d1840c9bd9fabb798971e5555e58c0e3ef4218a7f154bf7e93501308e8e54ebd6158bcd3ac0ab3152790b093cda2a5d8ddc6a
 SHA512 
a3e77db74c82d17f3079c01d128f9dc3085b88b51c4166ddfd5394206c9b558bd29ad8aad4c93fb58acf0d32156ce90b83127766709f33b206e5bfaa07d4e87f
+DIST firefox-116.0-es-AR.xpi 569189 BLAKE2B 
eb703beb58208343de2560d869c3f5db1ddcf9924f68fa70ebff847a19ffb9f591dfce0375fdabd47cec74842bcb2d4f84e649c4c4029bec223ea5ac9653bfdf
 SHA512 
bd59ba74d449f9ffe1fa0b5df93cb39fd27eb60f22a436b1914225babc1eb5af011cb7d53835a1da3af33d9dd190f9d78678a51773b7dfc95d5185657b291489
+DIST firefox-116.0-es-CL.xpi 568868 BLAKE2B 
3a9973ce147b7c281ba1e37b4e49e1eebcc0a42df7fa21ac7ec8f529b688eaad39d20333b4774c4322c10c9f643d3a798cfa0d76bfc2aa8060249983bf47b6cd
 SHA512 
c53096731f6b2cfb4fa50c0446e850d8c3cdf2d5574cf7aca2bcb16526cf2f6b5fb87d69e24d759d96e3e5d8edbfb3969d01eee3b23b181cb5f1d33a42b63648
+DIST firefox-116.0-es-ES.xpi 561405 BLAKE2B 
61772ac717bac91f87e82013f888a8f941b3fc5afa443a45dd86cb3a9f5bfa8b73ba39ed6d10f0402ed9244b5fcc7453d4fc503f32e337fb735431095b09c321
 SHA512 
a2ff7c6fe8f8f201720206c96cb2d485b2a5a66806f1dd6193b005dca52cfc6bb9ed194b947369e231597089213ed5b3e54f5dd32ab3f762e8aa60349041679a
+DIST firefox-116.0-es-MX.xpi 564991 BLAKE2B 
88266eb4eea91f87daca458c21ae74b7540ded1deb35b7bb7b483d9e8cdc68c255940dccec7295c62d500847043d5ba89ac44098bdec4b2d5e2a37479b59bb04
 SHA512 
0ca84f06e62b81b13fed79fefeae5425ff30a45f9602396f083a4af1201297e6f76eee29854941d772de72e2240b23e7595754683d97562972855fa6e28b70a8
+DIST firefox-116.0-et.xpi 515646 BLAKE2B 
819cfe7ae95bef3ae0b8ba8aecda8966651dd7ea5fb5b98c2c8bb55551c66d3e010ff4ac6a616270965b2102938d66c9afd8dffe26d7312870a17b0abf799da2
 SHA512 
b7fe6cab23acad6a88182d2196b19d9009f2978f449a9c2174661d6d7955a19318a2299db9986e68a551393aa553359c8d8a826eb8123b0d7c303abc3454c4e9
+DIST firefox-116.0-eu.xpi 551061 BLAKE2B 
6fc5c9ea7b0952f05ff38146b2b0df77247efdd86753303492c45f9e8e19561a692261c57336e2311aa95cae345b27000b7665dbee953bf1c27343ba0c55bf42
 SHA512 
75b69d62fb6a9d170b910136683e0223e6665f163379752a984388b72c57786e7a415e2b28155fdfe3359d16f292e6c127b80e09d25cd039637d2d415476b4bb
+DIST firefox-116.0-fa.xpi 563997 BLAKE2B 
e6272f3ed62965cdf3870ab806043a758c7a928e4cbc8b1e0797a3c2eacc3935e3c80059b0276d92c7902045b2a500cde00575e30b41db5b79c9174f5bcf6992
 SHA512 
d5086ab29bb409ff3ad9cb94326fd0277a18297fe1267aac1b4f88827aac3daef9d7adf1d4e7eb7cbad41749b89dc74834bbca98549c9f1419b1a8660a09b093
+DIST firefox-116.0-ff.xpi 456416 BLAKE2B 
577e263066e449babe057e66af801588a8ec0d7304db261448a2ace649babf791a1b5ebff73f3dd25f23dd8c73fd525866a796884f47244951efbe46551869fd
 SHA512 
96814943c647ad53c343baa60b849b96458fa3276d4553388f45f8c684259ac4c3f7578546d9afe71cbfb0e320585d88d6acb772b00cf23dfc858e4dc4841144
+DIST firefox-116.0-fi.xpi 552857 BLAKE2B 
b75fed64129e8f337a4d15eecd24965d5759b4b42f9d71b2677698bd404ceddd1200993b5f58d04012890d8cd70e421600b11179734f98c8eb69e309dbb01ed7
 SHA512 
d5f0abc088cdd78c3441681ac79b56a9c95a9fc99b327aaeff0488a8287dd498d1fb3463bba2404a0c63d82b72ea686da0b75e92b0a6a65fb7e072d97f410942
+DIST firefox-116.0-fr.xpi 580219 BLAKE2B 
285c10388e5f2daeb9a319f8a9e81ec479dc32818e21d4daafd8a1db3100f8f43f13fdb6446ebb7fc10f211480d99ad4f849531f70067499af1f2bc27220357a
 SHA512 
ab8bb23081d9ae9065d7773cbd180e1037fbbd3e4655b9a687f57aa44edb4794d0c540403df5b0c1595a783ae913fdf931c7cfcf1159439620d7a9068acf1d84
+DIST firefox-116.0-fur.xpi 574349 BLAKE2B 
e75e6878773376a68568166492d5acd0fe7d8f5bd94a27e1b4b4981bbe3746a27ecfe2a3db3b365d1ed2dac61b24bcbc8a7d581e6395d905e0499b86afda1848
 SHA512 
bb59f3ad3f4d52c0734b3e7ee2e6b09760eaeaa44449dc372b1ceaf2f7136eeb2e047b2484e7928f95d41eac01d374be8348c4ae24ec7f0f5cbfce5c48f84ec8
+DIST firefox-116.0-fy-NL.xpi 564297 BLAKE2B 
018fd4411422beef301cb26974448a47a6478b1caf7d736729d1f91296ad88cc6441da115a972cc7e2764ac4a64cf5f5ad2b5e047abfc67b8458b5adfd3447bd
 SHA512 
79805b9c13711bafd8cd937da32ff5ea522265faab16ac9d9e877d8ce7e74ff99229f0e9e0e2c1223eb831f74b1201d65361f9748a33ef514b90106ae4691ad4
+DIST firefox-116.0-ga-IE.xpi 453552 BLAKE2B 
0d0e6771b099974625d5a46872a5da1c9e7ef4b10d97ec687a71db3d9c36b748f386d140ef8d743863fd0303a5a42adaf3cb84f8c077c7621e272052dbee59c2
 SHA512 
4de236f12ef883cdb6973ddc710a034f6c2f77018f84757a82bb53d9abffcd245f09221ad507df6ae535897a20b5e5f44557d80131f2deb3d18fb6e853307875
+DIST firefox-116.0-gd.xpi 566659 BLAKE2B 
dc8992d5f368c0dd4a20f2099e82b963fc65f86a39f3fddbdb82e88f7258e822e6110ac12fa2845016b7992c117e883899f219ddc9b8bd6f7d1e8397484ebe40
 SHA512 
64f82f4901d9206dd5ae1e668e7be7d2c961c222b477dafa584c456383ec26010df6dd84792660ace9c1076d3ba0722f360d4c09def314ba660ad5086ff165f3
+DIST firefox-116.0-gl.xpi 565967 BLAKE2B 
a8fc484de0324295fd4251fd42e4227e9df74d1ac553083cc2a97ae55d35b8e0f60cb34b0ba26ceedbd421f316917142aa2958e8a4549e1737f872e7c27e4d22
 SHA512 
1620e1a5acda04f4532e6396188d678cb55220f3825df3c860e293fa914a91f6da304ee51dcb43c35cd40926486674afaaf5d400a682c5e928230b7f1af31589
+DIST firefox-116.0-gn.xpi 578267 BLAKE2B 
386d5dedb995c46acb352ea05b3af1b888b78d8e2173648e10cf7710f5e42bb8d1f068be0ce97af1ccd11c197b610fad41a444189624c1fbe1287da6ff6e9ff9
 SHA512 
a67552989404f3107312b1d21a35dadcdd9e113f0d39ae8ee9af9f2be7c65ab216d39a626057eb62d3b383a1d2f1df69ca860291d73db31c76c406c4e6bf9e21
+DIST firefox-116.0-gu-IN.xpi 506021 BLAKE2B 
d7f69682252810db5835ae92ae224ac4383283a009ebda66a079ba447bc5bb779e314b0b1335b91c5ecd865d2808adece7a2e5c2df218c605194573865b44511
 SHA512 
d19d03f2ee8a4c0b436a8059de653cfb72897991dce0ce7d6e460d081c5edb62ca5883ad737e99ca74320ff152abbfe04024f7f2c356834b3e4e587cafb11e13
+DIST firefox-116.0-he.xpi 575333 BLAKE2B 
823e6416cdfbdaf2402603ffe5c7516f27254b058575d4f188786436a59f3ca95d513f688958079fdf3742eea6c2d57afc632e9bb4a90c2bd563c1e4ce686c54
 SHA512 
91a790b58832e387339793fa9a04db5bb16127e808445f71010269998fcdf53d3896c80aff683c43ab7255d18fe84a0ac1f07c2e077302a16d967c83d2f3b792
+DIST firefox-116.0-hi-IN.xpi 538287 BLAKE2B 
d57447e9567265f8516e2b4f1606e3550d26d8f85007aaff5e8b2ca23d88d65d31b3b861bd68f94abb6283be620766646c214d4bd6ca6fcf0534f5ad2ac72bf0
 SHA512 
cd7ec011da0be8519de000eb0c53442c2af8c0eeb489e8e56450bc69d9109aa516e17c0d251240a81c4a27e4cc5747ffadb05e0793002b9511499c8ddc9ee1f0
+DIST firefox-116.0-hr.xpi 531474 BLAKE2B 
8af41ea8501d1899dfa24800f7666a9b89aefc279ca12f5ac9e027d6c87baa9746af44f7090c971efa443958f0f526d25a003c40ab7f1347e5585bc394402dde
 SHA512 
bcd80c65e36f9090c58e23c4b8d2f2ca536787796f33a2268150524770fd20d3f8b6c4aedc35bcc1bdfd157b457016eba2df66401e5196c7911d6ac9481dfd80
+DIST firefox-116.0-hsb.xpi 585853 BLAKE2B 
b2dc7bb5d55eb9a4d748bb19816197531cf51832690384d44381b963366aef35a8390acb096b31e9927014f064146ed17379ad892fe7d425b92162e996dcf0ba
 SHA512 
8d88b657fea257a5b13bfd3da8fbfc5f523f36146d720da9fbadcf7049cbc025755e90a98a21d6d7191c269019d15f0fd191f422e07cef689463f4147c771384
+DIST firefox-116.0-hu.xpi 588333 BLAKE2B 
1b8befa1169ffebfd0c9519741877632d05ea8295646d7d8f500f76257119ec7ffd1656a5cc764f2d8f8925246ca8355e5ec9260a3917634eab8725f8ad30241
 SHA512 
abfa9ff75a7dd877d367bc6fa9e1e34ab06d04d4513ba66fe30731598ed81be58733636b6b189f8bb9f6332db862e197bdd842a21fd0e15857ddf2f3736f08ed
+DIST firefox-116.0-hy-AM.xpi 578713 BLAKE2B 
b72d275f4a5f7f8eba5b9d841c2fa29445d49bd6f3e0152d81d10b684cd2cfdf05589c4e36e88c62ea36e43c1dba0cdce1548d3dafb3d1c20cf06e6c5733db11
 SHA512 
fe0fa6751ed1bb500f2633d94484cd5a4a286720d32b0317e9bdf9af500db0c0f86ac117ac5ff3d26d6eab0872ba20f5e2fc4cfab738793059454d8341b45ac9
+DIST firefox-116.0-ia.xpi 552437 BLAKE2B 
868b651f26dc0e68d16dd7abbca1d353014f6d9cece8a00c3942c3b7578c645832af1fe95d7e26ed545691081364b551b39634bce18d9a17694341310e833122
 SHA512 
8d0771b03e3af60dc8c7ca26c180cbfc012c83a76df54021a97bc1950ab0838349dc1a072322da5b7a3b6e216e7a215806307d1665dafc015043d86c75dc634c
+DIST firefox-116.0-id.xpi 537282 BLAKE2B 
dad1caa1051ec2bc3ecd4f3046509093681a9b9e7b1f3b4325c1725749664baa5e3173799fe340fe7297f8e980cd635f2a6d91e378c15b89211e49c17e32b303
 SHA512 
4461fdac00ec311b8c0c0cbc83f3cd53da01e3998c8eeb88f0c4866d7088ea13b2e3fd7361f5cb0c4f63717d6fdb956861a0e4fdf3aa16cb91716cf0874dbfd2
+DIST firefox-116.0-is.xpi 561600 BLAKE2B 
780c4c34fc3cfdf255e900d985d005c177e23144d721b97ffe13d1a453b3e4fc362d8be979aba51ab27fefe2e7c4b75d8d48d96ee086521f61c42a81e11ca299
 SHA512 
596a1f5bc580a0aa83a8b7cfc15c37d648ea093670432740d2e154bbca2a46f4a24d4357915445ea8a32bdc92099a8e55f3cdb06b39ca2db95808ff7c871ece4
+DIST firefox-116.0-it.xpi 508069 BLAKE2B 
5d7f82d664b686300545db7c1a990f577266986f782889f593213c98bfea4ebee4bbb3f9c7981d34a8f48b848c5c88f5ef01da80c23fc98e50c0f55a1c39a126
 SHA512 
20a33505d1b03470ffb1a5368aa649907097d9d571a6ad604a76449a7d67eebbd153056b650fdc95f4391d1af54b45dc6bd70aa23498faed57653d434d4da730
+DIST firefox-116.0-ja.xpi 629682 BLAKE2B 
c83bb705a179fef104ae4a9d688a5be8cc07de90ce2f310fd9f2b1ede553bc07d73c1a74a92967d0472938f40e4278fecc43f94857739de159e6430cf3d3bac1
 SHA512 
60efcaa441ff36fe88d6ee09ba0a6248424a842e1f578f19ac134eeabb0b9202006cdbe5ed538b19a97079870aa8eaf12453923e278c18c39ea7d249b937e362
+DIST firefox-116.0-ka.xpi 610442 BLAKE2B 
01ff9baf14dd72250ba76d40d11fb224dbfa08e4e85007a407ddce758c198aed7ce0ca4b0218a58aa5b2f41dcd6210185f2c1fafbd6c88d8f8067ec1d96497b7
 SHA512 
a6c995151e7b721e8998410e26cb6857513083090e264bc28ac4068a5d194e9d39798b1858c00d2c2d5723a8ca6782f82e23cd1505302d7cdabefc07c4b8107e
+DIST firefox-116.0-kab.xpi 562162 BLAKE2B 
52f5c4a1cc916c29203d972736acf6ebbf2c2f60a32fc06974b6b20bbd235649ea58936c28c404a8cc356595486d5c5a28f771798923c517b28ec040e835c21b
 SHA512 
02cbe7f372d5ed84863bbb6c33b37d59c5b5562f61a13bd5a0525cd06ba3d88730b51fed640227100e252e4ba8b7fca5a7bce0dd21700902201227108b176b5d
+DIST firefox-116.0-kk.xpi 640649 BLAKE2B 
240c7f750d8115f3a8dbfbb960336777a3b8e66e1f746a1456731217659db28c6663b734d657c9048c217bfe8575869a885702a0657269ee621ce4233ad2df07
 SHA512 
4d1c1cd2231594fb64b99f0cf9d2940bc42b2270d2ba8ad468bf7cde489c9247f58d7f0c3a7ac928f73a13ef96bf69c7f521bb714d3c8626d35c246f01f504c1
+DIST firefox-116.0-km.xpi 507451 BLAKE2B 
dd5b0c65b69963a937f1bbcec023aef41f0948d2e8b805b76e14ce57923730de186c7ad690e933c0fe96da3c3a13ad5fb0084eae2cd8ae17c4be07496007fc94
 SHA512 
e43800b6965f096de9d4227b7ccade4d5db694cbb55c14a174426afe19bbcf470e8f602bab5a011497bc477dd9bff4f48a0fc5495ed90efb1d64adea2d97c55a
+DIST firefox-116.0-kn.xpi 473015 BLAKE2B 
a067327d200c5cea6fd39cb409e60a6bf99b635ab14feeeda1e6b0f0d01c771fc619f1746c7b820d157bcbe92b0f922603aedc47d6f3fed571754a4ff9a1de51
 SHA512 
214724290fd86aec85a84f851cf537fbeca884ef340fd39cc5762148b62f08fe45b1f2d14f4075c9d2aa97272672a93739e58aa9a0531d5a2a2f15bb90bc6c15
+DIST firefox-116.0-ko.xpi 601095 BLAKE2B 
5e34c51c42756d07c9d819f46e51f9b5fc58819ffb4c94055478605d3a4b7f7a5a63d0fa62a1cddd8672a6b5d8137f2b6aabda856b9d7242a7605aa135d767bd
 SHA512 
e320ecc278876fa8541f5b65f8b323c428a0cf3df12cfb2e0ccde6fa3cb393578379aa92e96f0282f4282acbd3852ff17bb204e3f5076936a744a42d327f631a
+DIST firefox-116.0-lij.xpi 463109 BLAKE2B 
1ef02f0b945e1549e526d4af34708e625b5e58b93f05f563bb351138e1c5d5b3d383c05f2c3c3d7cfeed9c85575b27d32fe9122c531652bae29cacc410fecc26
 SHA512 
314ad54280bc5393d35895a2296917d7a96fab4dc6edc1a4f39fb2296924fd2da2a66051cb41455ac6a696c6eb1ebda37ab1ed73720442e6951ad14d6673ac89
+DIST firefox-116.0-lt.xpi 547793 BLAKE2B 
4e40185c7011e33e0f48f21d35fc0d697acc933c7630963cd1fdf3b63f783e950071bb798b974e03eede3bb884c41546d06fdffa1954be5357fbe9211f0ff096
 SHA512 
b82f8442c5d201ea26d813950cf664327f41cd1202a253511f711b0e190ead889cb72ade0e2b6166915835652fe87e6a4e362fc5b2be5209a6e4789c8527f02c
+DIST firefox-116.0-lv.xpi 450081 BLAKE2B 
992a8d72b05a43d8665f19ef0971386e3b492bce8a5e70adeb832fc778d7a0b2d35813b9d71cc237b97ba09bc5c6ccf9e726bc91f1104436b9c5f46e179e576c
 SHA512 
5345b5044fd1b984de1469db548991d71998b89c0458e7138cbdf3d751577d5c931b906556e5b6813f66df66e9c180ba9d48db309e73d542277ab62f4b8ff9e3
+DIST firefox-116.0-mk.xpi 469353 BLAKE2B 
b56733f697410c496ac3f3cf428bc1b531d17cc345b657909521d90df26aa34c5935eb46c3b1bbac2d9fa88910a0b72c9840b5fffa54e39feddc48c3fc936d61
 SHA512 
6d34c910d37c3afd0cc3c9b0858324008e3e42e54905de263e3b7809e9d0a4f3f7834f4cd7b0900eb42afe94741d4830c5730c5fc915e4dc025b346b32f7638c
+DIST firefox-116.0-mr.xpi 510121 BLAKE2B 
e9ce3eac58786218004f9a0a4351dca590bc7df5bbad0caad1682fe1153b9141e828fbf046c67baa7b7dd5ce549afa4bd8aff358952a7a8841258b46b79d7f29
 SHA512 
a79dfba06fc5e65c205233ba6a148c97aaeacb8d7e3636256f7e6f535951b3476920f2f71c434f7e2a58a0c576dcd216deb541b0751d10c782e44608aa1c992b
+DIST firefox-116.0-ms.xpi 430632 BLAKE2B 
009d668a1bb15d98e406c0dcc0f6c2f6f47f891fc86e8dd0cfaa7f22b1081e03a08bf4e77ab72c70c6ec15cf726c2029f611e8a25b076abfdea92d0f0d17b19a
 SHA512 
9bbeb6cc2740ee1bbf4be36c9133adff01654d6e6178d888d937e5565c0a8ec3264e946d3841f33c1b346d1d3e002729f4d050507e0ace6f61b2ad46a444f92c
+DIST firefox-116.0-my.xpi 492892 BLAKE2B 
eefe28d7ee9d606bc2be14fb636ce9f30122047e579c84f3bb204af6a889f5328a7993168c7447723c37ef562fba46348ea26d1fef0b64b524350c899e4ad9b6
 SHA512 
b55b032ad2c6d26997167b5a19ad9d600fa5593dc3dc092939b63aa1e7783ccbaa85948fe0681d5ed59be11684c5faaef13c557d349406eb3af61f6073b2549e
+DIST firefox-116.0-nb-NO.xpi 548995 BLAKE2B 
0322096227daa482d5a535557dadfb98038514dc84bb9809b28e89d76552850b38fc23cd33af6539046283ea1cb584948b4f9c295877f581e1e158527123f789
 SHA512 
d42201d05ed7429040c6cf008a2e7af949df041a6271e60853b0a587e7a80afaa63b957f68b6ab35cf181ac1a8ac52c0edeb05afebb9a46cc6188674f7316267
+DIST firefox-116.0-ne-NP.xpi 468336 BLAKE2B 
d2ef2921e212a6c96711ff6b11e9f7f1f1d4720e51a97629206d0dcb4d4ff9cc861e23c979b180d2f4a58500688246a24ab4878cb376feaebc089de06b2d3ef2
 SHA512 
24830c061a5e727ad07f15840cd8ec357f07abb07dcfcd25db1befa723e715282425968a60635e1574a5bd12688aa419ae11803206b2473dcef9998da7a021e0
+DIST firefox-116.0-nl.xpi 558557 BLAKE2B 
46ff973842d48b618a8ec26fa1657f79a445b65638bce5eb36072ed0f8f51ddad8edecc35ffbc7668ee3c00de1db41201766f1c35fec98b217af42e4dbd87998
 SHA512 
8699548f889d239c56323c50e86783f568e2e9ea9a182a8a84e5fac1fbee1b0037e6789e094e058626f982fd62cd9c5e8b7ad02097c7a2b3c7203d364f1ac022
+DIST firefox-116.0-nn-NO.xpi 551413 BLAKE2B 
b945375dfc5f18b994b0a9abde9a385a06313bd2d8c36802cc26b03821a3f6a4e9f771b975ddb7785f3730ce555f756164cabc155595ef5b501823bd7b338c8a
 SHA512 
3712e9e2ac17f6ebfa9cb80baf4092d7f0f9846e728bd2b35fe56b3139e5037ac840761970f30eaa3187971d4b9837108f2c9b01c8a905d707ff6ba2f6f81236
+DIST firefox-116.0-oc.xpi 571598 BLAKE2B 
c601b9791336faf86c08620e70538cfc8dbe0bf75e477e8bdb9369755868e2da1ff6019cd36898c41f20a5341e98732cafb9070847c1167f1fe0b3b18aaf3c69
 SHA512 
c63394bbcea50db300212fdef2de98d2c3a4fcde875db43f85308e702829ff706770cf0cf49b0535c81a500adbb375de66e2494ac79351f12ef65b04eaefd1c6
+DIST firefox-116.0-pa-IN.xpi 626851 BLAKE2B 
c7a585b416801dd964c65b2f1650630754583da0e09d1de2b2e1f3d9e109080e4a69b306e96cc8cbf1081f53da9ee1245a795194b18ddddd74dfa0200d07a816
 SHA512 
b9baa1e6d5e435d9d952607a8cfec429aa46cec5e3f092393832d7381e1c76a9faf83b6d4ff5a6dcc9e67c54d4126c13c8dd7c7930a700becdd5b724df0a9d3e
+DIST firefox-116.0-pl.xpi 579296 BLAKE2B 
5e7053e43ca76ce672fd6b23223e6bda44d71e0d0ce4a2a12d19d4abc61793008e0af43e3af1352eb8cff140a62af05356400d600bfff96bf07db1ae8d56de41
 SHA512 
7d2599eed582c2e1ecc9a67e661a0151e8b8c8f6028ddd19bb4e934eb121ee77af2ff49e5096c824ccb9f41aa87d9fe61df15019bb38ef1197ba87e5b6848e55
+DIST firefox-116.0-pt-BR.xpi 564563 BLAKE2B 
26d3219e8257e88d7800c9bd3dfe8040ca3fce902a4ef63e18ba9fba21f2d4e66fee39a787fee9f240ded64837dbf4fd08b70991ae7e1e297ae5b77817efab9b
 SHA512 
ccf271c13fcd528da1d9afa1245038a066aface786a52fcd2562434619834627f2492e03bfc564e50e73b417c5ee512a74f30f4fa64bd717a33db586473dca83
+DIST firefox-116.0-pt-PT.xpi 568416 BLAKE2B 
b2c314fd02698ae8d49be3ece86d55d2a83db0a6a02cb034fbde568fb86c313d3320a85416514ad4fa3de766a4320a9a6ec02d99824321b88652d55254dfdd6c
 SHA512 
7a561689538df66bebab2a4508dd2fbb53f5232283e8a617dc4bc48e9f34ecd799252b91b6f86b0db690cdfd04d0b6738064ab484842b4dc01b296c8d29c9e29
+DIST firefox-116.0-rm.xpi 558028 BLAKE2B 
82a8b6d8effe0edfca1091ae768a0cd0af721d4c2e11327244060d81276cc9b938cd2f66bf3f779837846879d3dad0feee6f26983c3eee56ce7e65cefc5de68d
 SHA512 
47116719a0cc2970cc4c037b56944e2ded79e4ec54089e19f1857bd627ba0564872a9254b19fd506359f9468daca93a2d09aa721f9ae82c69e6058e5379a6892
+DIST firefox-116.0-ro.xpi 524309 BLAKE2B 
b49eaec1c070b7056ec33ddd882584ebd744f9d91eb4c5826e85afe7fe7937e3996d3f5f70233a888534235ddc9c1e01b70a270ea980da23361ea7cf6ce43367
 SHA512 
fecf44f719720d37e95b0a1d9333549cf0b9ef7a40670310e266bcdb5f953c5f4064c2a1a46756d8294728ab530bc9dda55e4b8c3c237eeca3c8c7c422773b1e
+DIST firefox-116.0-ru.xpi 653105 BLAKE2B 
f4de4add2cc21f5484498e5216c855da858cf08554b86903e8bd532dd9bf005037113cf11617d07fae2aae379fff3ffd8d10f2b139caf7163d7a3353d4c5b50b
 SHA512 
9a8b503152ef160af80a80645f6ea1bf2ba403f973781329db0dea71019276dc9509d3e82af8f69279cd6ddc2bbba4cad991deff6ad631da06a37e502f0f1a82
+DIST firefox-116.0-sc.xpi 534523 BLAKE2B 
ab69acf677dfc22dd737e73c5609c7e4eabfbee5b2765aa69e1ab9c47ba0c01c1b4ccfae7bbd49ce8ed25bcb8866a2ccc797e9ea84a46a2b8d7d816ab2698870
 SHA512 
a37036d05a8ef42c10dee13bad1d9e70731245b966d45de359cae5a1afde174d73d860e2951f30940895fa04120a6fbada211b00f47b83c0314232ba75f32388
+DIST firefox-116.0-sco.xpi 489055 BLAKE2B 
e77146c2916a401d086febcf5d5a757146bb0aa987a0b3446d3c2c71d49568ee125027f03aee8e8c7789fd30b56b8ed566cd11cdba0d94299449996b0916bd97
 SHA512 
e88621dd5ad6452f98034e6a8828f21f47abd971665d782c0a1b5e6f3179841c166f2b31e39f562ebbc3f627c0399c2541c9222bca8d59af4e70c65da99ae64a
+DIST firefox-116.0-si.xpi 574168 BLAKE2B 
ee38700ccbdfff8e7ce9aff1669cc28eef67bb7c4c0479573c6a4c6c1e5e1389c0c297eba33f57d5e17e611661cbb4eab3f8aefb3096257a417444ffca277020
 SHA512 
32be0bb91c6d687926b61928e664bbbbb91d91d198eb2a712f70a874209e8ca3c2c2d05211315b822e6063374f95f9451163ee7d8631c9e559881be4e5a71f93
+DIST firefox-116.0-sk.xpi 590366 BLAKE2B 
6b667527f53f44af98160018a81f029749b514138b306da2dc35e1c753675e96bca76fa7ce1ca8586439d7f1bc19ccd7796836bece0fd088938713f11e836f36
 SHA512 
6d0a0de25ee7f669002a23a167d1b8fe7f791cd3d0eb01ce1335e2be7371fe21d7cbb406b6e9ab82da70c68a577110a9ddb72d1ff2caed33aa8061197566847e
+DIST firefox-116.0-sl.xpi 562029 BLAKE2B 
1a9b0dd6826ea5f434e582b6de72ca7e764393a6d9c69f46cb00186f346b7708b25f9d6849497661ba541bf1519b1dba00b415d4e872f2506c1b7d00f130ee18
 SHA512 
f96b285d1da49a98ac5b101b48d5c6784e8a0091ed34ce038847c8f460612aa2ae92fa56610bb0acd98913848b0461977533ba37582b2a69a9daf1e8523f4fe0
+DIST firefox-116.0-son.xpi 400204 BLAKE2B 
2ea9b50609b176aad1b8902cb6838c3437a86ea399052beb65bf939b71cf4fddddd3ca7901f582306b26d3bc7e37ae27d3a70a968c92aa25056d5b22633e7ae7
 SHA512 
4c9bfe4a09ac9b184b5306ef1f8c5277c0ce38d4ede217a60b04e3539d9d5cc883bdef5ffc5e4c6856153e4f2863300fe37f6e10e13fd14cb50644c477e12001
+DIST firefox-116.0-sq.xpi 563998 BLAKE2B 
ffdc0e926dd6a81675ef5184f2ddd4b26bf021387a8347b220722468ef07e5593d7828412dfcae1905f43ef83294a4f383822c394ccd72625e7de64204242fc0
 SHA512 
a4ed0c6b79c4cf845b7bb6df79721ca5b6ed055a3983540bd344260a28309c8f072dbdaff90c753d02b473518949a45b79456fb81ecde4a12792b911c4c39dbb
+DIST firefox-116.0-sr.xpi 613441 BLAKE2B 
15aa6b91451315d15a8033707e6e7cff1c4256bf34b31b00bdc15d885b3f8a3d793dfab186c61e90b1c846f9263b2923701f6a32e5d9859a3590a555155200b0
 SHA512 
deae0b022f9f27a33714a0a1eae465f8a01bb75c912ee0a1eca8ff596b09318a3a506534c6aa56b6859756040f6fabb6a0c37e359fd899f57533f6b8254ec345
+DIST firefox-116.0-sv-SE.xpi 561743 BLAKE2B 
abade289aefee0e44c057ab05a4045509307aaca303d337568d87564ffbccd7e4730d36337668e3a7b03e76f4b8e247e6d7e2c79de9bb27b51a16cfd08814bf6
 SHA512 
646779e61e97b6c42196d9bbc1dba015f7d9c4a20d9e47ac7a0cc3bbfc83cead613c0253d4b6f8d726f57b76592e135bec93bc4e4907ea2438f040f0363a9f1c
+DIST firefox-116.0-szl.xpi 503526 BLAKE2B 
20354a0c88107f18e4d6237fef090a7195f0bc76c15a31b1f1b566513ba13e4d096244a80a8a40648fe747a78c44ca4232b7215ecee73fa3c2a3b3d7ecf98ce6
 SHA512 
052a6a15c4f6d72696a84e504d2ce8a3c2d36da65de79de3e735ae19092156c0d37b95aa4487cbad206ddbe6946ce8103a3a9563f2b54415a911afc538e79841
+DIST firefox-116.0-ta.xpi 488084 BLAKE2B 
ccf9be9661c3de2deed609cc56fe3650d1a78c96645ca4eae0de0e11b253ba3062c72c55200a9b36139f8783219aeccad9d989aef7821a4b0b55f422c10e17f8
 SHA512 
2a7fbfb711acec39e045f736a814759ab7cebc79fbff65b8f6bfa50c5fa4d75e41813ba51c781cb1016151475a9523a9ea35e29a8ed9b7b95115688676d581f3
+DIST firefox-116.0-te.xpi 535418 BLAKE2B 
d247ef6eb294f47fce6da799accc9ec379e7964d1e16ef0c8525e95b27ae243015790ae1a8e9d0abd3a122ec67105a5d25952fb9aafaa1615e3187979b75b2c6
 SHA512 
c4bd68e5a2710766d8c4090d1f6f96e844009bfd554ee5a7d6fd2d0b8ca42e69d7090b7a57ce6a6ff7c235299191206be00f4442672a1e8566d8316a7876509f
+DIST firefox-116.0-th.xpi 631494 BLAKE2B 
e94af1a92b3c5f05c7706d263b57dd96fcc84c468acb92e4699763e3939b23f584e4affbceab93a5602747a4e5fc67070d2cf5fc95d0615cc1ff107d5cbcdca9
 SHA512 
3893e957707b3a62a6984b04a92f47ad4718738f35611f0684e69a85ec3f3a4d7506a2cd925f399fe5ac902d32744b45ae66faf3144f2b8d5f1e67cf40ae99e7
+DIST firefox-116.0-tl.xpi 510943 BLAKE2B 
e3a8803be244f2f0f967c14e7d6f98f424467561ce4aeabc943013597256e651b09a4efb5b3f3a9041ff77fa45919340e8733a51a885c7be20a7bd733fb7267d
 SHA512 
722d100271429921b4eb878fd6758c406f247900db4c216f289d6713bc5c29782ea4d1a4dfa80c29f37f1813efa0f513e627373626e2cc2e2a8868ae94fb0f0d
+DIST firefox-116.0-tr.xpi 573425 BLAKE2B 
fd6a2bc198b6c529e29253947df3e41526dad01bf11762681789a82eb4a850efd51681b57554f36911483dbb31a6d5906c1a1fa9b81e16f424b36a16c34f0dc8
 SHA512 
1fd58a90d0412d01c0db67d134240eda312304d466efeaf43a774a80122fbadd8aacaf4ab74388b9b7c1903b78a4d373881125693f6cd13ed9daeffad8c01492
+DIST firefox-116.0-trs.xpi 481280 BLAKE2B 
7dd3c698d32a7dd380b1ecb226b70b7e10a0954fc4778eeb56e3ca6d463787567e31452725e280baff231c10dfa46c577af9e10cd7d482629a55ed7dedc71d90
 SHA512 
c5508931bc3194dc4f0ab171dcaebc02611399537c6fd3eff3501b07fd34acd0d35f8755a0d111e3bc1ba9c92c76a16e7ba2266eea78ff1aa433a540eae0ba79
+DIST firefox-116.0-uk.xpi 644408 BLAKE2B 
584ac4961fb7de3684d353d5dd44218da8f82efad8654e38e9b21306aeda0bc85813966607e8c893776b3776556af5ae749300b4d40883cfa1ccafe607f81ad5
 SHA512 
272c9725f08758137b554496a837f52548fc26f198446660f0b8b483dd7bf38f3ad2393e95acc4933726102bfcd65bc43b61595b20333a7c1e37fc7c8128d332
+DIST firefox-116.0-ur.xpi 538180 BLAKE2B 
2e2524ef3a27adfea3c060deb645fd8e76d3695ffa8fa1731a139772d0b088b80b1e03d04da62546a55ba0d180b538e6609a9725aad1280186764a6c193a80ea
 SHA512 
000d23875ec9afc3600f9cc6dc7357e2cff504ae7e222b860f145f83c38c7ceca63e7d2841fd05600d0ec78451ff41b1062c8be07c2753fd2844bb1f3646cb33
+DIST firefox-116.0-uz.xpi 461091 BLAKE2B 
473719f882c93ea0b5150fe3f187c067d7ca20fea64ff2b76315eaa4955caee0b11da5e743406a7034cab56a977f63811a19c2f4a4734b5bef711e09c4a968e3
 SHA512 
90ee43ea59410b9e884919c8c9c8c099c08e83f6da4521b8bd7b86bb72c9b58956451550c21b2ee903a44b05bab98edcd703ccc6e23b2c2187324349a2067142
+DIST firefox-116.0-vi.xpi 596611 BLAKE2B 
e282057e43e821ccdcae2c11c4966fc403d45c914b267fb03c7010ae0cdecec683ae98ca79ca21f09c618e93b7769dbd7ff1792d5878598ceb5b8408f68c8e68
 SHA512 
31f10ba77f79c9425ec88cdd379a6725f3ed3b1b90c69ed83b4b74f42b0631d3e1d66f9abfde88150a3f8317a914e6254f88deb61ddeaae819be2d2b0f1d5d44
+DIST firefox-116.0-xh.xpi 401650 BLAKE2B 
dce3add055f8e5ca785c05b1b110980668d11e0b4d3cc26569aec77b84441c992e4f8e4e55bb804561aa2e230ae5d6875ed85d9acc45b0ddc3f5423133bd33cd
 SHA512 
e4a466326376e785587faa0497501e1bf0e8cb235027ba0144047eebd2e62defc60990050c7b8bd490dd539439a2485b2ab793c84c4e8dfddcdaf5dd425dd09f
+DIST firefox-116.0-zh-CN.xpi 596066 BLAKE2B 
133b239fd1cad0d5e7db5b0f861a9afda6abba16238149d2055f66f07aecc9b23959edc5e43bea0c7f00798bbd3efccbc47c1b74fff263e6490e4f55fc43908e
 SHA512 
427a1e063e986503fae1849cec5124158237526a4a265e616235e77984343e883936ff1569b198a6ec20a5d48cb19b5edf12976ddc3c8a69e598acecd494976a
+DIST firefox-116.0-zh-TW.xpi 598593 BLAKE2B 
6633c9ffbfa988f1345c67e3b4cea06bf90714ea6960f12f6beef3c5cd2fb085f0a27a5cf2addab28e645e156bf0f518faaab4be63e3603210b916275f0d1c1d
 SHA512 
c3f901183ab89bb8e01034dc328522163d131dd847be330ea099018bfb32abcbdd748bfd8763079605ee4b3cc0c65b3fd7a39fc853fa3b93b25dcd32d74d7641
+DIST firefox-116.0.source.tar.xz 515487160 BLAKE2B 
844f37e6f1f0947771a5e9a629ad44c04733906cb5922d5541ec12c4193dee4307cd435c381a97ce4ff20be1f31200a0c13c6e33a0308fcab9ce16b1327723c1
 SHA512 
4370c65a99bf8796524aca11ea8e99fa4f875176a5805ad49f35ae149080eb54be42e7eae84627e87e17b88b262649e48f3b30b317170ac7c208960200d1005d

diff --git a/www-client/firefox/firefox-116.0.ebuild 
b/www-client/firefox/firefox-116.0.ebuild
new file mode 100644
index 000000000000..8c27f071525e
--- /dev/null
+++ b/www-client/firefox/firefox-116.0.ebuild
@@ -0,0 +1,1466 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-116-patches-01.tar.xz"
+
+LLVM_MAX_SLOT=16
+
+PYTHON_COMPAT=( python3_{9..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 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"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       !jumbo-build? ( clang )
+       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:16
+                       sys-devel/llvm:16
+                       clang? (
+                               || (
+                                       sys-devel/lld:16
+                                       sys-devel/mold
+                               )
+                               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
+                                       sys-devel/mold
+                               )
+                               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.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( >=virtual/rust-1.65 )
+       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
+               )
+               wayland? (
+                       >=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.91
+       >=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? (
+               dev-libs/dbus-glib
+               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? (
+                       dev-libs/dbus-glib
+                       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}
+       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"
+
+       # 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
+
+       # 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"
+       tc-export CC CXX LD AR AS NM OBJDUMP RANLIB 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-gpsd \
+               --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 \
+               --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"
+       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
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       elif tc-is-gcc ; then
+               if ver_test $(gcc-fullversion) -ge 10 ; then
+                       einfo "Forcing -fno-tree-loop-vectorize to workaround 
GCC bug, see bug 758446 ..."
+                       append-cxxflags -fno-tree-loop-vectorize
+               fi
+       fi
+
+       if use elibc_musl && use arm64 ; then
+               mozconfig_add_options_ac 'elf-hack is broken when using 
musl/arm64' --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
+       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
+}
+
+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
+
+       local show_doh_information
+       local show_normandy_information
+       local show_shortcut_information
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+               show_normandy_information=yes
+               show_shortcut_information=no
+       else
+               local replacing_version
+               for replacing_version in ${REPLACING_VERSIONS} ; do
+                       if ver_test "${replacing_version}" -lt 91.0 ; then
+                               # Tell user that we no longer install a shortcut
+                               # per supported display protocol
+                               show_shortcut_information=yes
+                       fi
+               done
+       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
+
+       if [[ -n "${show_shortcut_information}" ]] ; then
+               elog
+               elog "Since ${PN}-91.0 we no longer install multiple shortcuts 
for"
+               elog "each supported display protocol.  Instead we will only 
install"
+               elog "one generic Mozilla ${PN^} shortcut."
+               elog "If you still want to be able to select between running 
Mozilla ${PN^}"
+               elog "on X11 or Wayland, you have to re-create these shortcuts 
on your own."
+       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
+
+       elog
+       elog "Unfortunately Firefox-100.0 breaks compatibility with some sites 
using "
+       elog "useragent checks. To temporarily fix this, enter about:config and 
modify "
+       elog "network.http.useragent.forceVersion preference to \"99\"."
+       elog "Or install an addon to change your useragent."
+       elog "See: 
https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100";
+       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 ! 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