commit:     2c053bbe89752d9418b27f28eeb0e22eaa946db0
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 18 08:35:12 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Apr 18 08:35:12 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c053bbe

www-client/firefox: add 112.0.1

Bug: https://bugs.gentoo.org/904354
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest               |  101 +++
 www-client/firefox/firefox-112.0.1.ebuild | 1379 +++++++++++++++++++++++++++++
 2 files changed, 1480 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 8b31b2b43ad1..0cbd0ae4e740 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -98,6 +98,7 @@ DIST firefox-102.10.0esr-zh-TW.xpi 614579 BLAKE2B 
f43efdbc63293629474fb02f5cae5c
 DIST firefox-102.10.0esr.source.tar.xz 479026088 BLAKE2B 
b4d8eaa6d72b009d12b435781c360f043bca7554d8b069b8d858399ece03f20703d7e36427a3f92d0b801a94b1c3f132904f21e51ba4118116bbfa4e5668d651
 SHA512 
f2b53c35bdd22a3de6f32699b832babcbf499667197c02dd50cf0b6cd956e0f4471f420938c2ab72f0a0686ed99fe74e3184afe9b5f7169130879b8f8fd99f0b
 DIST firefox-102esr-patches-10j.tar.xz 21744 BLAKE2B 
326f206dfcd5b6ea2f06f5f537505e23d358f6d7930f7e72fd8e54af88d97172170999c246af888278143810df42be9414541e47feb48b60732565a4ee38579e
 SHA512 
5efa50b221abedbb84c1b3d19d8ac089ac5752448e8c90c6aed9f43bf3eee876b7e7050a1678bca65f6b23734c4945b016bf059a3921ad7290b0150538111bbd
 DIST firefox-112-patches-02j.tar.xz 17296 BLAKE2B 
c47545a6eeec32c9a15aa0a5f9f4535e186a2b8e7c140b10f9e8665b90f9d1c74673dbbcd3e0e6e3a2232fe060f340884dbb431d755bf21537923efb4bb430e1
 SHA512 
d90c8cc81f5c885bce35d6872162eaefa529a37db905424eba2e223f3f02a22ecf63b503550df77d7e73b539573f2169b2f6c99e7a46623be1492467ee19782d
+DIST firefox-112-patches-03j.tar.xz 18620 BLAKE2B 
fa56645d97a4196ddbc2a39c3e700be46059d7c03c33957645426922cc7e83883ab7a4a75bf5e959ebeee8ac426fb88da6c149a478b8119280ff3920393bc5af
 SHA512 
1b7106470a6d80842cc5e0006ada324c429e43298186c4971d403ca4e880d175c690352d9db2826925246f1ca4a3939859356f1564bd193ad3fd698787d164be
 DIST firefox-112.0-ach.xpi 459577 BLAKE2B 
3adb567d9b02f04e869236b7863d2f7425fe721f0c26bafd21aef30b0a761fc7dc0aedc7abf99429d6da19c6c33d4a7669edb1531526822e20d54d802f2bd92f
 SHA512 
e3a0487ca57ba731bfbacf7628f497b623a68324d9464a73d18e36d3331dde434d05b73abe3d8864ce684d4bddd4d20b73ee53c397dfa9f665360dd612c7fc63
 DIST firefox-112.0-af.xpi 423010 BLAKE2B 
6f87c4cc3eab518c111793860845c34b3131d50500211b0e5b813b376c8a13d5aee071a40e9172e2482994234d4d5764e14a24bb68a9ae8b4b86e8bcb6f0b97a
 SHA512 
000fd456377692eca76efde709d8526c599a38fb9839018cee726ca6359d3356f42f8620b892a9082cd8dcbad5c6be1346c7ef9bfed0b97910f7a343dc0e2cac
 DIST firefox-112.0-an.xpi 503915 BLAKE2B 
2e7e5fa8a7ade25e28edf32402a3132333019938d315483bacd3156c7c1cdeebae037d144f67a04d3dc16004012d0d855b5091249f83ebb55c84b680c903cce7
 SHA512 
45915bb76a712cfd437526f59bb56ce7b493bdc636f783cea1f7e4809d178189ac4622b733465147c82fece78cb49a5f81bb3ef91ee5c6f4ef55415bba55b672
@@ -197,4 +198,104 @@ DIST firefox-112.0-vi.xpi 606042 BLAKE2B 
3c184485d465c57e0904d0b7a1bb8cb424e4ab1
 DIST firefox-112.0-xh.xpi 421625 BLAKE2B 
0903cc3932dfc29e474ba105d043f6c583e369890ca6696d0ea2eb503f2ce368a038e4ee75642f9cb06854d266ed80ff37def8b38bf87eb31449ea52c8c8b4f1
 SHA512 
ee13ed7e6a413ba34818cc40ea9a8806cee6cf4d08d8621f529a6c70918bb4c66aa87f2d951c547a832c184da27e079377ef5630a269a37768a93eb40cea122a
 DIST firefox-112.0-zh-CN.xpi 605650 BLAKE2B 
1d6bbc286f03b42259f474f89bdb20a4e77b762876ddfe4e1295d8c760ba9db38059e10e4269a26734bff4518c51cd9486d101b551fd3565d8bf6ad72ba44662
 SHA512 
f36708227a660e428a2f4a9e74eef73e43eb6ac5964ad7b7e2da57814ef57aeac4218ba16463262f440ece718b4aa6286643580dddb6c4de6d31b7176a28fe87
 DIST firefox-112.0-zh-TW.xpi 607191 BLAKE2B 
8c26c2d740e210fddff8a2c4eae20e71da4f5403e5b99e795a6b53ebadd35276c52b40154afbe39ee18c949f444b736857be45f7848921d333ab655c2dfbcc10
 SHA512 
2a96611526d6fd33f921af2ffba3c491d3521885e51d3d026d3c2f583e71a478383ce0582d2d2f5c1dced236ae4dca5a00be58c2db4cc4f8d105e842b571e3d4
+DIST firefox-112.0.1-ach.xpi 459591 BLAKE2B 
8c86217426f182f317027e62e9b9e2d01dc422dd055c202b186867e07e9c9b1af2a62ce91e55c6b673bff73671429053cffa83206ac71170b14c99c5b39777c2
 SHA512 
2e0bd92d47a18fe7e77989e8c5146adb25db37888bf02e6a1d413e3cd1a1e19bec3350bcc8b20a9ea8c3a350261c93de5bb79a46d7292fab14f0f549e64097a7
+DIST firefox-112.0.1-af.xpi 423007 BLAKE2B 
c9c687ac2c4c679c798b5dc6423bb2e93d8712854871a0c820658a12605c665b93f9f9c78e5f97a4e684601cdef88ea90e348aaffdb1040d320edf634e090e4e
 SHA512 
761ba8baf814c67291d4c331e5b64f0750a06ad3c49ccacaec80dae08aefd7e0bcbac96073c438d5afcb7c610b93a7e09c65ab525063d470a91c051d35db9cf6
+DIST firefox-112.0.1-an.xpi 503911 BLAKE2B 
c57f8be4ccfe819c6ec5b77fd7958f841abeb1ed52296b27847e7938dddd877d17020ec4912203f655fb929a0b00921e51225b5d3500328f505b2baaeb1dee16
 SHA512 
d73b72e4f091ada36ab2f07cc8b6a47d628d712b1af42c4687d4b0aead48cb7d47c10ccdf71e191a897cb6af8442b7b4118ee61e5a10f368060448c3c9a8ab9b
+DIST firefox-112.0.1-ar.xpi 570950 BLAKE2B 
56e7e194ca7f158b76be1fcc253d5b10cca7763e6e40d8080c4326fa8bc2f24243326247635a83c26f3567b2b6d2b4bcc03708d417398a5e2231272af66116aa
 SHA512 
0ae6e170b6ff5efc02cf8adca8daabd7c9dcbcac14d2ae4692f1606499b8ae45440ad63325cdb86cb7cc5a4173c78d132efb04b838dafa0aca74ffe75f4a26dc
+DIST firefox-112.0.1-ast.xpi 489821 BLAKE2B 
6b80d95a0cc7cb0240f4e83b29bb813220e8a7bb9f6388a9c4575b022a21ea7064784314584f6e1c18feacb991af2dcfcaa001aeec3bf1c7411ae74d3e4a59e6
 SHA512 
94a33773a37139aa4228fae6b3d4d65219713f08849eb58e736f1915b7336b09f6093c23d8543c2402eed211a3481870f94a00b9dc8c90fd5d0adaf5eeaa13b6
+DIST firefox-112.0.1-az.xpi 492295 BLAKE2B 
cdac54e8c5adde985f6bf005bc0a3e8d017b83f008915260f33543f97f3c97eeb3b10b32cf9ba355fb16707d73a3678c1fca1e03e8f757f946978622e384af72
 SHA512 
66d240a105733aff33721376043c6dd3ae0c0c260c8ba95d3442227be7d7a59500c69732929e72808092ec17bc31d6852f34b80049f5f35420ef0034693fe403
+DIST firefox-112.0.1-be.xpi 659305 BLAKE2B 
9b0179957ec9395ebf397db317d1cd4d9888ed041dd63d57dc79cd3446f756e185f4937dadc5062c6203d977a993e3a5c6ce046790ac2ec4c139147c43a662cd
 SHA512 
e0d111c828301f94365ab8fc300817b8b662a6816ca07e7592b5b923924e32ca1e74ee797781b2273a970df3f08296a03857394bf3196796c697de79b5cbce99
+DIST firefox-112.0.1-bg.xpi 588441 BLAKE2B 
93bac9b10d0bd85dcbb5bee3d854e811ce09ff6620c6c7f5245ae8d3e445f90f0e7621face2bdcc4204097ee1277c668d64243b5bba9bc674e26ee3534a8ffdf
 SHA512 
ba378cc67a1ad42e47927ebf293c45aec041716f69519a5ab2f01684a82e678dbb9b77c2225428ae299ad63c0c36fbe3e05734b90fc62270b782572cddac17e8
+DIST firefox-112.0.1-bn.xpi 582019 BLAKE2B 
35091c7796b7b9c92710ed546d39e1b088037ff2e686d0451646ef70e53d88feb35fcaf3aa0fe7a924e14e891378fb6f68e63eac1b0563f23fc0f79abae32e8f
 SHA512 
066645f7da80a8615b5e87e8e2017bce6f91ecb93055fc53cba35597b97dd429de1a0055c080fa7380aa925ae86228a44a29388c9bddee5888a0902ce656b468
+DIST firefox-112.0.1-br.xpi 548363 BLAKE2B 
6b9dccb14e24a61a91a2569af430974c818d781cc9e8c8fef54a3b8f68ba4db1910f414d125d8cea5b15bbf226c92d1d464ef12b171d86e4c9224c4e44c11180
 SHA512 
ea2fd290ae5fa173d1456af9447d3221ab3acf0d96bea0f3af115eeb237317c3295c12bc2c244784f895df3329bb3056720cb78e05cffcd6238711f7fe029333
+DIST firefox-112.0.1-bs.xpi 464492 BLAKE2B 
6dfdff97c8395415d8d4016be80f2088b8bba54675932d4f52f4cb2a904426db3eba6eb55a64987b1896a2c64ca40ab0ddf171ca7acfad49a50d45d65b75cdc5
 SHA512 
a30008f01c82447caddc056fa44273655c4fcd7859f5a1fbd16f8d308b77d56d879359709d8b353e133078b7d4425f99d4d72fe4062ff947b7e7eec77712d135
+DIST firefox-112.0.1-ca-valencia.xpi 542849 BLAKE2B 
10f824042799de6ee2a23f762fb3e5fc6a676492533754741cd2b0308571acdb875bbb0860509eb136a5059723e21eb9c6f80f87657467c73ebd9b3198ea194f
 SHA512 
416c3029ec6a249138a3fac89e1617d226bc468019a14b85dc2d5e0b3d04c4658723519c9cc467d48527a7b03302c610eaf2ccd738ca1f3798c8c88fc0f33242
+DIST firefox-112.0.1-ca.xpi 558784 BLAKE2B 
21e0b9d586e37d6e1ef9c670043a42f57a34aa0e77a54f2a67df2bed53c73f29346c5a11a15b3d08b555e08bef05c4d88676217fef71c87924f78f48c7eaf0ce
 SHA512 
71130a0bf516f1695881ee8e1d682508763f39d2a3efaa312e6b578bef5cbeadd3c71d25e4e58fd244a6ea34fa4cc02ad22d0f184276e5338cd9bae26d910bfe
+DIST firefox-112.0.1-cak.xpi 580297 BLAKE2B 
e681ffce08c54988a645140d6a22e50e9662f6727045720cd88beef5539409f88dce65664a7e13b671a9ff7fc83bd02e521d361f199e99092fcb26179567ebc7
 SHA512 
86a04b0f5bb4669a81826f55d3809b0b7f2838a0a10880b737652d37b43917abffe991a49bb317c866f9ecb63dd8aeb7200ff628d2c492bdacc47d8087a19ad3
+DIST firefox-112.0.1-cs.xpi 594686 BLAKE2B 
536defd744f4b5ac7f66c68f05377852e61d8f8ac4c68ab3e9133ca363ef361721f6aebae662873f91a112533e5cb402d35d8cb439a04d5fc426164f9ecd1480
 SHA512 
32bd19ebd8b2549e86413f67aecb83c8fc8a7f9cb47164deb5022bdab4dea9c3a0694246fa58e9fb90bf426a3cdaf70c8ac54e6e02e99e5ea183ca60a25f0b89
+DIST firefox-112.0.1-cy.xpi 573564 BLAKE2B 
93932adde3129c85801612628fa498f7298ada4ea7d09369c600a61e7d4aeba81d84759fe9b4b8d624c5892e8ecadabde4ffaf755ca62f4c2c743e3bdd4de2ce
 SHA512 
c1163ada3025270b2d2bb07d7e385c4cf80e9f8fe43fbb33a7a1b0d50ca2a401db480efbb09977819f935c8b50bd42da9565729b7cdbda0c37f1d6503b08d60a
+DIST firefox-112.0.1-da.xpi 563263 BLAKE2B 
ca11b4adfe2c43092199d6d892a6603daf9c7c2e78c5588ac1318ec0e53817a6d53a988ce6e187013f213bd8ba50d99cf2e32538e6a515d4b5a58c1906bb9811
 SHA512 
8190c9a7012f85626adaf8bcc6d8ca7e5903daeab3ef23fbd15dc1e681ac8ad367ebcd72dc2045d10584c1bf69148bc12c0208951f66873259a849adcfe03e10
+DIST firefox-112.0.1-de.xpi 584792 BLAKE2B 
2eeb6fea0847d0788aeea2262fa005a641d32b23da0506252b5a48c8c2a8549e5bd6f25056a49685a55d03ba8a631df7879bdefcb39c8b9cdb4b2c2b71ff788c
 SHA512 
9f4eed538841521af91c293d4c3de242d12de778e46ac2d7b5fa77a82b23c26e7e5ba7f9b9847160e7d19685897685613a2284d1f1e857646f8ed6892433d169
+DIST firefox-112.0.1-dsb.xpi 593196 BLAKE2B 
1eb8e7e8a88756ebcb37dfb113e730edf00d04a79fa440796050c7068575088bdebd2bcaec3080a0817fd96759353c5c137d2c63edf1c05cad3540f4e902a7ed
 SHA512 
3cf3e1782ced21e528c7c35d43443a60cb53dd93f5f7f40aeb2109f711e997ceb092a81dd1eda3dd3c8108aa48a03624f5688efc61462bd34827b1fba0112ba6
+DIST firefox-112.0.1-el.xpi 674357 BLAKE2B 
8e8d2b35ee001529c77e279b20d523eea3a01b65a378248d03e0060498b347b17089dc0aab119b1bee6bf89b8326a7ed7e2b694c8b686236102a203043946da5
 SHA512 
f381e42326f5791025497bb843fdbb304d8c961c6aec2cb0c107d2ed992dcd6fbd5983952b21f42066a392405f3f68b65c28f79bd67a9f8b56b5f76127cd40af
+DIST firefox-112.0.1-en-CA.xpi 536335 BLAKE2B 
f92e18ed692fe7944a106998de883e68f92b6801a564b6d9b1a25c5fb15cfb04a35b27f8ff11464a083783607480820f22bc4f18a351515b95c66fd5ceb04952
 SHA512 
dd06dd274d992b5a1bcb0a84c489284e13c48464e6dc809570fad51d29002eee54475b98dc1b8889a5ac7a373ab5cf33560c77304488f8f34d1d26d8978654ba
+DIST firefox-112.0.1-en-GB.xpi 538969 BLAKE2B 
5bd6d1f4023d15b9c8cf09877d708f30363eeee1e04c5880760b8eec51f0fd98900d608b2d3cb60459d5bdec19aecb2cc032f73a4c73ce63e711da52b10f1842
 SHA512 
ddc74fb0e87376a83a05d5d8748410542b3d7aa1a64900a0669f22bb61c961f3ac63b17cf726328ccd8cab78f3d5d516b7ac2d1ada9543d52099a893e22c19bf
+DIST firefox-112.0.1-eo.xpi 567003 BLAKE2B 
46a9ed0872a27dfa0c9c9567c2a6c00b322aac03418c33f5fb75dc9ac405f74e8d6438ae904f4b805453d7ae71d50e5ee7ac97bb2467feaa5de3d11b57ec064c
 SHA512 
2d57af09027aea19336d737f19cc9f6309385723f8de4998f06652473f0443f7f79595aa337c3fae2748ae51e8e7f19060a0e5d65a5fe42900326ed76d8c92a5
+DIST firefox-112.0.1-es-AR.xpi 578701 BLAKE2B 
c4a7168855a93590631f5b485dc535704fd6d5731dcaf47d30f026f0f2a0cc28562d71a444c08633462d9d0aaf3a31b934f4c0a9f462eee2ac7f9a39cee0be41
 SHA512 
2f5d7067cf4340570cb8020972f8ceada26f55c937d07bc980f35f1bd9706f9ff4801b7a3a977689df0cdf0dbcde4256eafe7eddc93646705c9c5e47dee47fda
+DIST firefox-112.0.1-es-CL.xpi 577896 BLAKE2B 
f41e907859d0a516df9d25417ba6785db287396b399df78f1c620ba3b9a85a2c8d3bc1f93fb66d74c6ff11a36720b8464b5a3cc66381e61b633edb10da5b505b
 SHA512 
3d9d03cebb1841e92206466c2846e1de82e0da00d586c10c0fbe5305a78da92f078e9fad62b331f2c675555a7996473f88eeea5eda1563325270bdb33ed8e9ff
+DIST firefox-112.0.1-es-ES.xpi 571750 BLAKE2B 
f10ab5eac9b641eb9641dcb0155fc430a726054e860498b9e6bab772423d3f6ad95a375c9ab52403b126810e01af18a3caf505d21cacaa528055f777b9e30dae
 SHA512 
499015b9a97b01874e8dc85eda7eac09da1d10936786a23e10702a941c601a7bc7ee8d0f97ac69e01cb2110bb71516dc59ed73c7bbf809c4e5ebdfd1f8460cf7
+DIST firefox-112.0.1-es-MX.xpi 579869 BLAKE2B 
d9d2950afd21f5968c56250292f1accb2d3610133b306655998cec4508ad07f0917db4ffa85d07331d5b9ecdb058d7f7282ed568db6b59bde73f42fa070a7ed7
 SHA512 
e0b81bb8b2f67baa59cdedd0ebdd81785bb70d018aa39a08b7ee0247b539e613c9b20444f2183fd498db032478b58d6c538dff7868a41bd91580d0fda2c87067
+DIST firefox-112.0.1-et.xpi 537334 BLAKE2B 
5522e915282444202a436c31c962be72f9e93d8561c42f3a6ad2038a1dec0e5fe5a0704910e06ddcbec036211084455b8a68d1a75fac301e87059aff23bb9e41
 SHA512 
92dfa8baa4a5cafbcb7b6d85b392ca54787dff684904e2e4458fc3a62126e6ace634e63e0bdd1c6bde553dcb8a36e64308f835cf882b91a10c31330f2fbf9bc7
+DIST firefox-112.0.1-eu.xpi 565999 BLAKE2B 
0da845c6b473d62267eb0df19a27837268ee91b22eafd15bd5ac87f15fe757931b1e07db212d47bafa775443f2d060e201d74dc9a2de7f9030b407d44e4d5bea
 SHA512 
154b81c07554d5699f644713f5b55eef68f6326df1159e499bef31e6d376a2d716fd59fa1b16250e307021051a3325f06875b133484ed2ca725e1480b55e29f4
+DIST firefox-112.0.1-fa.xpi 581823 BLAKE2B 
7669aeffc17856861d41ebce9f30409902d4ea8d28f3480f766456042b08ce91a1cb644b8162e9d4c48c7e3408737f8a5420fc9c5dd4a80dabdf340a30ecc355
 SHA512 
629447295e50138ec896adec9bab59c9c563207dd3277c8ccf80f313a0b161e474c1ccb3662915f2f96ec837941e83f4c0ad110352d71c9ff209f1e070760662
+DIST firefox-112.0.1-ff.xpi 476562 BLAKE2B 
02b79388dafbdc57a228a4314418bc509cee4c706df2a50a7fe87ee8268116721ed4157dec71344cc4fe626bb5f78e52cb02acc520fb4e3c35be0dbe9ef25eb8
 SHA512 
e24f93b7c5624c252e6b09724ccc224ff8096980572b7a91bbff1a36f380d5f0aa4b5c40d37a640d125767201dc2683d54a284b992cae8282a4fcc12bf3e6285
+DIST firefox-112.0.1-fi.xpi 561263 BLAKE2B 
7a24828bc3abdc98112ba2050dec07d972ec7bc486d43d2ccf8aa31f1de1592b2b6ef4ac3ed9374e18d38cb81aa108ac812db3cb89e5aa43bd7da68f3a5d558f
 SHA512 
82c7424e2cdf17b6cff016129b78e258c46488e30a20577cd2a9272cfb9999a29e223b9ac2ef3f6190c105c59977d4842f736b827dbf75cd2ee87ff28f9421ff
+DIST firefox-112.0.1-fr.xpi 589434 BLAKE2B 
833b6cae4825d2062f489d11a7e547a51f673eda2659817db09d98011f1b6902c68f0f42c5ebdca3fed682cd60e1522931edeb3b13d6b1b4a17d3887ed808b52
 SHA512 
071b2a70be578d72f38ea1cbb902bf3a6460053d8077e4ed97ef98f29d438686b6182e03673706ad6f631e94fafec18f7cd4a057ba15465f1bfb84c8da1dd80d
+DIST firefox-112.0.1-fur.xpi 583058 BLAKE2B 
b76d0e4a6fc1f58f41ff19d508c366036f3ff7cf950b464c669da0516c70e63a45d0d897227afe39017920f5ebbd98f77f0dbdd1b5ca707b38e93224c406d1db
 SHA512 
8a044b24d76c48e6d12fdb3b65b0459da0c5eb1c8803071dfb2983f2fd39ebb6fc7a6d1ee5b2e15060cdcb39de69e164fc1cf3d4da5e97152ce6c613fb22d919
+DIST firefox-112.0.1-fy-NL.xpi 574242 BLAKE2B 
5bd46a7d4bf2d4a3e9d978ddb209f1e0cc30d28f211021be22c384aefe372112d0dd85acc529e4bfa1b8a89e9d21aa542b548cbc5c024315cf9e341f33ec3027
 SHA512 
f78be49ad0c07dc098becb0efb887259c65166b4b1a7e9e3da57d356cc430f19e9decf62d06bc65c2089778bfd79833457014e0e0fa320fda040c035e339ecc3
+DIST firefox-112.0.1-ga-IE.xpi 473205 BLAKE2B 
ffc27e9ba118d524a6ae76308b8751bf8e8fea871e5e7413cd1551521bbe3e46e39bd1a762ad021eeed197de9dba93b0b02af6324503aae7ba92cd24a85a7239
 SHA512 
d616a63aa18d8f32638d3362ae73b1d1c66fe4a544059bc4f904f0d6c83de6a65554d2021b13e6fcdf17503b01ddd68177a2ead3a35e7fe1da25dc9001bf813a
+DIST firefox-112.0.1-gd.xpi 551292 BLAKE2B 
26a4883e0abe7a56e40c13b444f2bd66d6c5b145298557b314b888ec98240e63640ecf47cc44e8d0485c13dc98a2e5facf828bad14b73364f9ecf7d1d5935d7a
 SHA512 
73d57de3d316c9fd72b335c9167c08c6517d8f47887900f0c7e31bad335d243b24829242b68a3d199ef70057cf14fb1e9465982b36f12312ade7ae72fd07e6ee
+DIST firefox-112.0.1-gl.xpi 546179 BLAKE2B 
d2b97ff88994fefc588138bf0184188419363e2e7b2c85f78cc52ed29abe47a0ebc405401a679d8708c3c13742222805637dd88833be90f3e2b7eeedd2ef2e4f
 SHA512 
d244b64cb21ec47d0807987bae638fd9bd5806d059a5a20633c27f61b28d283eff4d9e5f26928890bb0186ec026bedcda8c0e5d91a7a5dcea1f35a8b3f8f8835
+DIST firefox-112.0.1-gn.xpi 589197 BLAKE2B 
0b96556be9f2f7dc00729975b4024e8f0cce21d95decd14b7777066656b8cdc21c24fca9c37edda5cecb6beb7a0ebbaabf66e371af6e4e6439f5c1106339b825
 SHA512 
1237792a946cf65d2528f19b60a6e280f3bd8befe5388686a9640daab19e8bc982260ca11852230bdd722070773e14e6f79174b4f96963d75374ba9f88f0c464
+DIST firefox-112.0.1-gu-IN.xpi 531466 BLAKE2B 
eacb66747d0d1a23914193c98e3abc37ef4d2d7bf7617adf66a7ab437090186bf8355450f09dfa45f46fea1269a849d6f07689ca0071784fdaaccfffcba57fd9
 SHA512 
6c0e9bb1e87abdbee60648211c394d08f417af4a7769c48c49e51b385b5017de567cf4c36c4b2fa784f048060cc40e4fe5872e5c6024aa34fb0ede7a90419642
+DIST firefox-112.0.1-he.xpi 582096 BLAKE2B 
b27671191eeb8dd74e0a69a900948c272b9b37bd025bcc47724e61cf18b66e7e896de18c67bb2b8ca1a9258697b3e5ed6d437d8bf6aee5682b85fc39c7860651
 SHA512 
a74fd8233e694d435ed33a6034e93728943d54a50d38382fb377c8afb7f286d0713d70ebbc1e7080f3927d42cb4020311feba09b96fda616437131fec1e24de2
+DIST firefox-112.0.1-hi-IN.xpi 560533 BLAKE2B 
c76746923aa06596bd588911f4f3886f5483e69af3e86fd54bb9e25db088957457431ad99b69fdb4815b9640038a640881901fcd7f6e1ea9850ff1b0910ef965
 SHA512 
bab7ecaa31387b8e7e13cfa66b518fb520b2edf902e0d2754b34cee0f85e25dd1999028e681e5e2f7caebf2bfdcb76b92a1cb4fcc7d2049cac5c0155f0720bbc
+DIST firefox-112.0.1-hr.xpi 549242 BLAKE2B 
b1454909a824e3c3c59042bcdb3ac80279c22c3b844d417580e3fa0eaaadd0bf61d401e9285ee937e258341c686a8e57ad9ca60ae0c5983079338d2dc6f58701
 SHA512 
90c077aabda3a88d09743aa3bdfcd4d374812d4e56c72fdf356b603a3f2f345956afa6ec32a88ee208bee9eeb644bce81a9283cac75a76f296ab468ac1bc596d
+DIST firefox-112.0.1-hsb.xpi 594281 BLAKE2B 
2a6e17d60a436b9b672574b8d8899a564a69eb71811a302336901692ec90ab69ab981280285a8eee6dc8357dc29edd35e9446ba2cc3b04ae33d2ea8da180a57f
 SHA512 
a7452e41305b5f7396c5c0de0d6e626f73c4f26233bc1ac14fdfdae008007bf501ef001e7845f183ec9ee89b7edf34fe41ba615f7dbbce9e2c7317e36c7473b6
+DIST firefox-112.0.1-hu.xpi 599393 BLAKE2B 
3876436684e4f6660cd7f9be2efecb08bac128264e780964f704c49b301bb68648c67d2e9a1ea916193846a9e4848fe563eefec1512c03754f9afced172aa3a7
 SHA512 
60e7589cd9144b74c22c6cbc9ff4cd81d432eeab89d7b4a339b15eeb20c85d5f78e3cac16429e0b8c07c19d0cb146ec7afb3ac1b4813f2e209eee5ce537ed473
+DIST firefox-112.0.1-hy-AM.xpi 600437 BLAKE2B 
1fec4e8afd0bb9e0c91897ba70d16893696382043a1816e52dc509055895083966ffbdfbf1bc5eb4db7df070943b7cd0d19cf3d2abb7335b10619a0dc561f2b8
 SHA512 
6d7bd384225f51e09db737a30184b9359e55a70a4209c1d85e65a7aee54b912daf0cf91876c304fe8fea16a5c382051fa491477bb4e24478204d018e987f9986
+DIST firefox-112.0.1-ia.xpi 562613 BLAKE2B 
f86308092d9e670d3607e468f61d8f1776dace99f8750bd7d0d425f7a9e9e14b384369776d40b54784722ddfb5a8320d8f022a1a84c891cfd45f5399dc3f6c74
 SHA512 
1c8fb6ad4a03e12d5d585f2e894c39b1d0093bc808df21c83aeab97519c19e521613e35cf72d02310e221e5b06703e7019950f529d6325a3e19771bbafb6c8a0
+DIST firefox-112.0.1-id.xpi 558185 BLAKE2B 
9d16232196e5df7de731c24794d7311553b86ad1448cb5a8dbada430636151b6b3998fcc68874fc55aaed3b6d23bc92208be3ab3e136b6cfba9e0b095fcc1e99
 SHA512 
e9b5f5d42169fa3d6efcc386d5eb7586328372ca9dcd1e95679ba1927f682899ec93e85cbc038df5509f73dfd0094a7b330219ad0d6b4e9858537585e4a281b4
+DIST firefox-112.0.1-is.xpi 569042 BLAKE2B 
40bbb7ce827ec601aeeb3c605cea3bcd6e7893d6cd20b4e9b91b839138888d50e590c48aed03daec8532f66d7c2ea4806d30124eeaa41bf5f19a818f8d6bb5df
 SHA512 
7399ba1ff5b3e718ad239983e61d24734bfbf97f9c3922ba3c2e91d3e5adbe2cbbe45fd31311e501d6e7a7b77f8b372999aa764d7eba884a4f044352a4bcaf0c
+DIST firefox-112.0.1-it.xpi 500350 BLAKE2B 
34a48b2e9edb20bf7751170e01b3018521f029d06edd659701ade458efb9603a8db1975d5d6c1b2b891a741a7d18bf5c89c1b9c2d33fa134dcb221dc0f57e2cc
 SHA512 
fd96e381fc37b71e103324e369a32ccfc157ea797af060e8a7c5f0981660a1d60d5e45cc8b25dbe60404a22328290610dc5a420cc70ca363852ef2f54a8360af
+DIST firefox-112.0.1-ja.xpi 624649 BLAKE2B 
8d141fef63f2ec24fcb794e367e1a402ab8a07a02094e6b46bb8c179a0c8a5bff3d230ee98471621a6707484440d5a8c502a9514d6402a98736152b6dc355c09
 SHA512 
5d674fa26d1318ac653156cadd17cda88398ef5f9b4553ca88e49a4843153852784bb73ab1e991688bbad9baa032a19ab15fa69c70703edce2fc18d7c7150f86
+DIST firefox-112.0.1-ka.xpi 628720 BLAKE2B 
d5fab0c1dd989e96ce3b91ea2b55bf3560ff0b295335784796004d7e181b5a345680d36d04cbc748ddfd4320335faa022840514fe4d8628ed39339dbc3791558
 SHA512 
6545f95711ffe4a2dabcdd852498fbd32e57eba97197c80471ee6b0f8deb8461f71578524a79fb14efbc8d9995c03286e5cb504f0b823e251193db0c522cf3ba
+DIST firefox-112.0.1-kab.xpi 580367 BLAKE2B 
fef2998aa04110fecf1a049db9e0dff44e947b12e66b843ad012d5b5ea461eff89f5a647a3e4493155b6ebc67ef86c8809e7492ef30f7521f7d3e09fe37b4115
 SHA512 
8cf6dcf3d7bfeea7ef265e62f9a9d06f43d7e7e53a295f88d2fe30470db971aef4cac5fde7b981e096602d70333da2634f1de331eb3803577e47bb5e63f6f89f
+DIST firefox-112.0.1-kk.xpi 650646 BLAKE2B 
75ebadf8b6e5b7f1d64c67f80ee10092689a28db07f9bd1bdd434731d80d4f660507497e83c8fd5dadb73da44a3c33ce2f86953f130ccdaa977462d67c91c830
 SHA512 
9ae5f7265b05d649e84c262c2348ee929d8bfbd03183c30471284e3b9e65eb7cee1469a2b3fdc60548be074735503cfd742b40a6b236c6db5e2f8c187273105f
+DIST firefox-112.0.1-km.xpi 533366 BLAKE2B 
34398c398d3611528091037900fa5d4a6494ec6deeee0c96058316e1f08958a1c94f83182c2200995881f955c4f78468c1d733b025ddc8cf9c09d118effccabd
 SHA512 
8fda3821e0f30c5dbd3769d008bc7f0a58cf04cb6256c5cb07a7af14e1957d125b05c7e8ab3e30dada94241707e950425f29cfcb8f16c754e708bbe7035806c2
+DIST firefox-112.0.1-kn.xpi 498731 BLAKE2B 
6e39d001b7219bd56dfc4535ac6e52974dbd64bccf292a68521f70b0a735e936ce188ed41e747791abdf297e93b70efaef8eb56bc1037f83b14f46a14abf62fc
 SHA512 
a617c30f1cee711cb423c3ab781b120d5393444a4ffa8e0fe52859a7a872161b9de345a454f9eb3f52b2d6455e1eb2342ba9b56256f8eca61894b8f637532c5f
+DIST firefox-112.0.1-ko.xpi 609822 BLAKE2B 
a7681fa5bfd494fb5dc948fdef05a69b5b5601fbd420555c53063c75dc3f98524803a8a6313d5ddefc4d3d31e6d023e54d1914aad57ef9b79b02dd3ad91cddef
 SHA512 
04c656c175b50299ae16cb65e0fbc7926fd9bf1f8602aec871265a3824178dcd540256d5f6e8680607231c3be07740eda73511d5afe076f8e2354d934523027e
+DIST firefox-112.0.1-lij.xpi 473595 BLAKE2B 
3fb9875400b6ee20404a68c7d7771b0fac053e0296ef9989dde48446829baf2cc3fd9abd886301f7c0a77d590abba6820c0435bf1581b7611816419596d6c138
 SHA512 
3e7074777235905899a2bf0b05d456a596fe59805913a94312b50b1a02ed3046a7f1808d190152e125af268427da07f01989e495a9d32d0dbef92984974605a7
+DIST firefox-112.0.1-lt.xpi 569453 BLAKE2B 
5631ee8896587e5e0032e8b021e8e9d3c27781079d54b1bb3edaa4a27d439fb3755068a0d7a5c3f24f677f03d1fef7446759d549e5f94553a0e02f8d9816b5bc
 SHA512 
3db17015955786809fca3a92d55405288688af6b1e44993a0c73e0d69fe6bd1850f94f3e48aa5826dcee191aea28c0c994c2712bda2fcdbc4ea217c7e45832ce
+DIST firefox-112.0.1-lv.xpi 473273 BLAKE2B 
34dbaba777aa04f6c2d6e1b15cfbf2f6c157b9c184d40806a509c309f42f20a063287068ebc06a0601336f64d8051fdfd77b805932548ee59c05d38c7018d490
 SHA512 
619008fe96d4fb0ae1075f061a7fda500e09008181df7d5fc031952e27ca9fd7c3ebb565a6611cb56224611f854680ade61e1f5e27f529cd22ba5c08fc78669f
+DIST firefox-112.0.1-mk.xpi 488931 BLAKE2B 
95389c1636976f5135872fc065f58c9a1d2ed5d68d8bc2ce5122fa48907a78988b510f77f3b261bfb2227f0378be87185f59c192bbda5b5e5a3327e0539a806f
 SHA512 
1b19b310e150ccc6241c64e3c4769afff92b30974b86c45d3649dfeffa1e4606f72c6dc10bb1a541ad5ee7f69073e85f2c73f781b8aab6812c78d391a2201147
+DIST firefox-112.0.1-mr.xpi 533814 BLAKE2B 
93263f7360a7d8832c3c8bab10371dc3a7a9323c154fe4df63218b753666564d61e60eeac91fd0425f4363297dde4911503961f6bf94057dc5993b7fb2932f37
 SHA512 
4462c82e9ac268097ffc403783a5f0335200798b0f39918de5ee93652241f5db7da4d157657a5bbed851eb3375a33b95122d1bc95989cd5557fe98c704dfb405
+DIST firefox-112.0.1-ms.xpi 452945 BLAKE2B 
f40f2868df62b71c03b1035b2f9245d524cf070636c3262e6c5bc3a5d390ac88ce60020a2e7c0acddb8846036084ee96de85a9b00c0d229f4f493486617c8f9d
 SHA512 
7434a68d140e0a06ff53bc70f96ef902a4f0cb386016e5d5da449da4ce783567efca2c9737d7c224333b533d3dca403e46d531959d5969234309af8eae129913
+DIST firefox-112.0.1-my.xpi 519346 BLAKE2B 
18eebb66658ef23af0f897e2b65b19cba81c8183b61310f036898eaf00c2a3694492b01db84dd4fdbbc9f1742428d6d46839c49bb0e53763f6e8380a05c22339
 SHA512 
21be623fc120d9558e112d0a2a1a1e7dd93279f2030bd501fd4dbb81f8c67ac01f00d13c2ac83df1c7424139627c160bc1475accac58e3130956715686841a19
+DIST firefox-112.0.1-nb-NO.xpi 560426 BLAKE2B 
f9739cfb9880605cce26e05b2d8132e2a69036769165e811eca44dac308684ff3de0cfcab100ca5be3a033ab36b119afcc351cf6fe6cf0f98cb0176d1540834b
 SHA512 
1566a849e922c2e9765c4daa0b823f194f2466946eb8c7c10201488db29b15ea46ca03b1e9dca2a1c3b0d353b9f394bd14b54fe00b9ae9d1c8a307f06d270522
+DIST firefox-112.0.1-ne-NP.xpi 487137 BLAKE2B 
a5489c0658245be585253bfc5d8a16f3963b97c586bac23080685bf808fff5f131ff140b5a93ff8e8a9e203384a0ba59a1c4e7555d268c2d367badebb6660a20
 SHA512 
139b8cd51d76f0aac3d9d89ef739a59b05b5357453ef0e8b630aec02589651ad42c3211d7ef134ca7780b530bed58267ebb0efdb330dd502a4926945c2b8d185
+DIST firefox-112.0.1-nl.xpi 568249 BLAKE2B 
e49aaa613b1fd5a230c4fc2b626db9859484b33a4e326a3de0fefa29e62da96b6287393642b01fb8f83591f59053b8baed06735f463eab4c2718bae2e2766c4f
 SHA512 
5302d1cd8f7817d8b3962764887acf9cac7e3cb1459be91c6624bea9b07e03dbf8d87ea7f0b77da9579319af24de69c5e3191ac90c868429ad66cfd9e79f1d36
+DIST firefox-112.0.1-nn-NO.xpi 562958 BLAKE2B 
7742000be8d9f0a044f17f4e7648a841c44fca5d6c22253209d4e38ac289584fe580fd69e23b7dbd7aed0dacec78974f41f16e53455ce1d2840db4ae9c61491e
 SHA512 
66bd4cb84de9de849f808d728ba2a88b972040730ff6581f3de69d06e7b37d50fcd33e1c4a75b356205f6bf57e1a9d6d342f415f5bfe63fff6806bb8f0fd74b5
+DIST firefox-112.0.1-oc.xpi 584384 BLAKE2B 
a8e5428c09f1bd50f2fd2cf84f9b1fde0a63195762ae33458e24d292a260b9c4843d22345bfb7fe5a28cb066da2981f027834582ed279074680a11f654e156e2
 SHA512 
aba73ce401a80a39798fb7aba78651176b2d65e4681630500ac8287d091a8afd66ed6930b69153a4584cfafb670d307041694b892d08a7d470a54c2c88886915
+DIST firefox-112.0.1-pa-IN.xpi 639403 BLAKE2B 
a3218e31c179539de557d88723bb456206fcaadba3576b98c47b1a56383d3767d442da7496efa95b90db04f2528931c66f7b31947debffdbb54460d43ee4677c
 SHA512 
ad1fa013cacfa5d7e9fd47c7ad3493438163a187784cdedc31643b9aed7672c2c57a0e8d128257dcc674b80ff26702ec6af2fdc4f68eb9943768b4ce64447e66
+DIST firefox-112.0.1-pl.xpi 591983 BLAKE2B 
463993f4337faf0e3e68b668e2e46f64174cfe60a52b89373430aa84573241f96c52bea3d9c32acaabd61aa5cbac2f978b0f4c885a38a678bcb89cda55789c36
 SHA512 
f46c9d328e5cd82307dfea4494e2e06ae73dade3a3a437f257994d30f121aa9defed2f2d6f0a7195b000301c7d0bf4e37542bcce7ed130b2d18c9fdb71f580d1
+DIST firefox-112.0.1-pt-BR.xpi 572835 BLAKE2B 
b9efa0aa91a4b762bb4f558174d768e3420b8e5a181015cc2ab09ccf49c5e4c2a978e2cc6c5b0731f3d0b50322e56bf381ddc6d6c23b3c250129592daa097639
 SHA512 
1404846a5005bd50a269dd06deec89f6f18f9944dfeda2cb74d33d2acc5000582768a6d3530d88ece16058106027c46d077296b403f04aa6a9e70f362295fadc
+DIST firefox-112.0.1-pt-PT.xpi 578347 BLAKE2B 
ffcd82169747ab13f1d3a984cc1091a57e61aae077d2926681d6f0e08892dfbb94305555b6a5bd718bc73462458f3f51dea51e000dd9979be6e891bd57b872fe
 SHA512 
6780a653a9a5762bb811c77a50951a89a46c223db0c45bcce346a889bcaf7f2e260f5ba177e08d026548288892597f7b48122ffa86ec064448d95a261f6401f9
+DIST firefox-112.0.1-rm.xpi 568717 BLAKE2B 
946a092533cbc53cd8a393daf07619882b15dd94329601a872d192d6a82cfed10db9e563ff620897c5ed4b176b083d96285a5dd6ec3ffd3bf07b0f2dc13f400c
 SHA512 
fa93862661ecfa89683715a46f4695b707880e3664e0fe5ef2b985038201a1f3c3bb578fa615109cc77c9a28e64847f28d2b9300aae1181a7a52dd22be4008c1
+DIST firefox-112.0.1-ro.xpi 537912 BLAKE2B 
f55a80a7580861f603d5f756e4028c4234d57da60fac1eb00a7ca244298a2fcbc664a004e80b50144f75089a738125586fb44f966718cf624e7215a831cfd0fb
 SHA512 
94355f8dcde5026482db042227f83923e2a492d82be695553e247850d652ece3322a1e604a20ad0a3ff0e1ba69ef8ed4445a700f46cbeae1fce9fd205e892716
+DIST firefox-112.0.1-ru.xpi 663831 BLAKE2B 
c605608767ccb496334ade287874f783baebacb794e5c53381ed3423db17f5194fd66b4b20d1210a09139fb9cd0eb4a2cd99c5df138c4d2668dd717c8827037e
 SHA512 
3828be5baaa42d666f390494777e796bc5a632b3998c4f4d9e5f6d11267e36cc05290695f43fc2697b8cacf165e81690c1f10db94e0109c560509c663fcd9bc6
+DIST firefox-112.0.1-sc.xpi 547977 BLAKE2B 
1eb3b8eb4fe424a1dd983545fa2169586f6cf5b128a38b9de7aa700e2c6a4e14ead19af553d87867ee326e40c1d2b7e44dc72a7375e438766dfd1f12792ab1d2
 SHA512 
1d281ef058dce44a46b7613c0b7f3a69f8a37720633ff8f056432b875bd2b01110713014ab0ecaaec08ef461e25ef725e329e9286a3c0e7d66127b3b47d635aa
+DIST firefox-112.0.1-sco.xpi 507899 BLAKE2B 
5a8eae3321bc66ef8ad0848ed55a638b06ef01947a96d2985a9be84cfd3f8a648754ae35be57a07015ab6705867393c6c96d257bbafe8f5e3929ead104da4ba0
 SHA512 
2852be2759ee4aa0b3538e307d41d27e9b1bf422c014c92d38caf1bfbf4d215a7cad7cedf6c94acd77580aaeea30daeba1c1fe5079e7680811e05dc11ac2a131
+DIST firefox-112.0.1-si.xpi 576300 BLAKE2B 
a80f4485d2dad228cf1303dfeee4a9d9bee51f00f7c49815c1dba225070a0104e069aa59588b8ba03a0c9a4028f20622d4bb060d6a5600e4ca392f9a4be0ea84
 SHA512 
c3bcb7d34b07e60bbf4f1d99d6e0aa8348d4006d4a7f8727b66cbdb26ba7483eabb70df999efc6ae02c0d73926205045c8ba937a1f087d1acea8cb8c39e6f44a
+DIST firefox-112.0.1-sk.xpi 599879 BLAKE2B 
cc9135dddea8105a6affecf5bf8370ec857efc7ac5263951900f36266f70ef01f8a5d296ba1e9b4bd269f7689bcec814ab93c63c3e88bc6896b2a5be47c02cd9
 SHA512 
b0094d8f4c1157e4b4bd5bd85ca4afdbb6104d37442c42bb76e2b15de0378f09e68090f7cccf3b6d9113a17580fdb4df854af5bc6da14d669e6d57566eb4b846
+DIST firefox-112.0.1-sl.xpi 571234 BLAKE2B 
8f6c7e41b60d287177b7fab8830afa3c016eaccdd53e0f1ac8a348d0e58b3db8406c09b61137ee51c79273db92a490eafc433e750d6ce1a37b37f5488e14d486
 SHA512 
5bdcc008dcafad09864d35050160f036f185a67877a72457d3fa8b842502c286131ef18c7b839cbb5bbcbb0f68b4a6f6dddef25095f43308a9f94300182d51a3
+DIST firefox-112.0.1-son.xpi 424790 BLAKE2B 
a0ce4ce89fe8c510025f712241d290f3be6042b7f37db556780a317576bda00a0ec8783917fabb10d494d5ac00f78e3910600d5e1079608511e68b2b1f60c737
 SHA512 
b713dacbc15e6be8c98d3b5f1ea7b6eb7403a0abd5c24c8cd8b299712bc8d5f25f01abc860a57dd79e73bf2f56ea6899e2cc26f941321e33fd5b393775672334
+DIST firefox-112.0.1-sq.xpi 587589 BLAKE2B 
7ff18f8110fdc0f2f0a89e726bb9b2585971f3ef2d3f9d478d6812d33484fa7216440192009b71fb1c5039cac70cd53f564e79f0973c0f9098cb05b555faa9d4
 SHA512 
643b6f688b0b7244b35700a23279c928678113057cbaad882a2702a735c08e2d7f94ef813ec95bde7f4bbeff5b61559eb89897193c2c674d73d74176e1853d48
+DIST firefox-112.0.1-sr.xpi 625890 BLAKE2B 
222f0cf02d2725e4fed748d26c65ae34723fa6d1554a47e3456c4e3d4284328bd20a3ade56be26247705cb9f00a9f4ab6f16b14d39a268df89c7e6a3baa98e1e
 SHA512 
2aa01e904da20cda4dfdd2c3be7a4f189112b5f19ae104d152cea23d86cd98ca429fdd452387c4e383d38d7b098ec9b42dbd7bea094978fc2aef08ba0e16841f
+DIST firefox-112.0.1-sv-SE.xpi 570227 BLAKE2B 
206e7fc5a6ed0bc1f65b03dd0568f2ec759d89083812b4f2666d2cbdad3ef238c0c7e2182ca7530bbd75d24537cb43a7cfa936d45cef20c4e5c44a76ccbb527a
 SHA512 
1cec94edb609bba1b73a433b8dfbbbecc1c807ae78f9aee34e6e170d42030dd504245da673d72723071412f24a3e1101b3d184b4407ea5eb70bfc284477fa76f
+DIST firefox-112.0.1-szl.xpi 520787 BLAKE2B 
3144d8441ce7b0a80187b12f2f3d655331ea1c07b3cb31c4dcafa408888c264720f4d95af3340fd8373cf66ae1ac71ce81b548abd6c9b777367e6fc32a9e7ccd
 SHA512 
30ccec463869964e93dd3a2aa27629076c3f2096741410b739637d4bbd2af8db9bbb866ec86acefa6923e818dcdf5b56953eb787052035fa1a13a4b5820356c6
+DIST firefox-112.0.1-ta.xpi 510937 BLAKE2B 
c8e0354f0d68276bdc5523430fb17cbe748ac316ec698ea478367c4cf359f2647ee92c1bbf5ead40fbd72504c24fc9a671c733217d7160704946fbdb80774889
 SHA512 
3107b50a81309afef20c850c4fbaf337638945fb9d5872ef2219f364b5bd44fb3eafee77d65d101694ac5c5578f245e4d535748daf09eebeecdcab171a090d91
+DIST firefox-112.0.1-te.xpi 558908 BLAKE2B 
0b3765d57013e0338f8c07bf6eab511bc805b35dddb286b6a71dbc2917618747a86e965c38489995728e4adc2271b0d7864a17e11505fac75375da0da0947224
 SHA512 
11556eb92f885e95e2cb994b9cc61c9a1a0397394450d044f3411a079b1918bf7a1024dd1c0d1728812516bbee081f20dbfdb55976bb0c2aade82c0be0fbc478
+DIST firefox-112.0.1-th.xpi 642639 BLAKE2B 
786c58ff814767a4c957cae3bf18a5eb773cf3d29b2649810aa6aa2cfa4f3dd9881926a633bd8232d08901ebaa4ba61c39e90ebe752d593440ed24e86d1b2baa
 SHA512 
63239b89ee741f5ddc3ae7cf002d39f4b0aaaf2623cb26d488ea34bdfccea1a3af9baccdc4bc6064435575c8295fd72cdcc64840f6b8780adc41ac51c625dc91
+DIST firefox-112.0.1-tl.xpi 530630 BLAKE2B 
076b5c51eae82e2562388a6f7f8c44f69a17496f76cecda6af2aa56ef449ddbd3bb230b63a4ae17aaac64b3f24cab3ed678f020dadc7b586373c92dc3016f9ff
 SHA512 
3b130893edff7b31205da2083080bc6caad35e03db24020610e5923111816a1cad35fe220da32f5b397e2a6ab2f985759c66f538796b434daf42f5d1212d798d
+DIST firefox-112.0.1-tr.xpi 583010 BLAKE2B 
f42a7e3095d51ea346d605224f9c4e1c952470b6aad5efe09122110b6418c0fbb517ed482b28af1038e5e1b09126f7d964c6438fb8e2f4788ee6c5577b6e2943
 SHA512 
8c2133cd9e23c7130825142dfde85aa6346e5ff33ba61c006a948ae9185494509916c71a91bb0040700c2e8f57a64ee2e03ff6a9d9ca9299728415080093cb17
+DIST firefox-112.0.1-trs.xpi 489988 BLAKE2B 
df0894509595338e3f5a73fd6d13ba1bb4035dc3774bfac9782c1c7997fc15716e052a3db10d20b94b0ce0503df2db2685641ed16c326432e85d87f47bb91dce
 SHA512 
1f4d340b50447f1ac940f238641900420b0d78d5d4981821363940896a35c1128f741ebda308b3477fb1a95bc8740d8704a63444f8e6f5b7a5634f834d7708a6
+DIST firefox-112.0.1-uk.xpi 657033 BLAKE2B 
e06f85662a0b13aa6a002e66281980b11dad13c9a222115e0dc5f4e2bf7d56bb211a6b640f3bd8cc143b78e4dba9ee175e6b4af4ae73fe9892df7b7a767a97b3
 SHA512 
521df8626f9aa2e869400f2b6b389b5020180d5e8a790e4ad5dab1b4fdbbc6cc8b1ca2a83c1ffe85531b5c0608524597fed381c8b9504df7738cab23e5d23218
+DIST firefox-112.0.1-ur.xpi 560846 BLAKE2B 
53cef49439a8e00c213d724c5f7f65c5412f898589cbbe4dbde04e686de7a94f3caa02cea3b6e4b149061186467dd0d10116c9982e1106a6e96650725ae734db
 SHA512 
8b875de7daf4b104f5de2d75d9f19612e644c436816d4765fab9abc4148e61ef1c8fcd4d564530be47c6ed6dd404d0011befb962efd588de16735795514055fb
+DIST firefox-112.0.1-uz.xpi 481182 BLAKE2B 
4193b8d90097aa97874f30b0d0b4e685dd6d1934b1c0a3f5fa3ce5a6329398416ca778f96e26479a36306870daaeae5555494b66d0817eae715cb666fd1f47b6
 SHA512 
8484b4c4346b30f10e312c34638b2c2dfc25fd3445201966a3e4edb87816975b9a2119c7bcd236e17bea648703512290942ed92aee987a0d3f5b3680697ea6ae
+DIST firefox-112.0.1-vi.xpi 606041 BLAKE2B 
d2848c641cf6a5ff0276b3268c753d3e883df38a937e0a12e8484fc56079f55799cb9f2cbe2a6785f901f83c07ee5e1363d8f3a14849d645f63a1ccf5642c3bc
 SHA512 
e8c393155b2ce668899d5ce025c0733487338ccd6ca9ef3c2d4d72c39231e64b906a27b4e3017649f51fce3530e42be2ac72d0e1436df1906243aecc7939c494
+DIST firefox-112.0.1-xh.xpi 421619 BLAKE2B 
fc2c90a1db0acb8adb63ab35db7dced4add5708c34599c102123e1558804c6d93fb9e802e993717425863497c36bb42eb093ee6185f284bb74a862661ea22b0f
 SHA512 
914c3f3704eed621fa4b5d264a670c8285b90a9676182a53344ad66d8ae6ced40988288eced5b2022fb66216a7b299a9b0f227f1cb507cb20521db34056f755a
+DIST firefox-112.0.1-zh-CN.xpi 605634 BLAKE2B 
f7e38d12da2aa3abef33b368722123eb41751de3934da769a5aad61a3a6e72edf44555b0bc46757a23fb01b44bf91fd4e0adebe048aedcc76001ee161cc8c6dd
 SHA512 
1987f3d5d83b339aab0b9958064f927b61cb9761c102f008339b08b14ab4b11bec34170334a3d4b7fae6c8c7e814bf1ef181f25c66fda0938927fddc37deaf2e
+DIST firefox-112.0.1-zh-TW.xpi 607189 BLAKE2B 
95d3484406e81f2e82e3e6aa4530f3dfd76d80f7927dcfe56471f830bbdb58a07228e136690308bdf106211ff139400b639805ca07421de26497aff27520a149
 SHA512 
b42d7e2ad114fbd50ff74969012776ba26a93ad4ea8e9b777b1c314d28cd2e65fedff6e5fd4ab10c0bbc6aef8e28a99d72d9d10da98fb7cb9933e52f291b45f6
+DIST firefox-112.0.1.source.tar.xz 506649248 BLAKE2B 
99f38d96cd3d2bc68835ee0fdbf2e9e3ab54324409092cd11ade096d8cf678e1fd69087897a4a4d9c4a30cdb08e0e14b881ef834028dec7598ee55eaae301f80
 SHA512 
23a5cd9c1f165275d8ca7465bebce86018441c72292421f4ed56d7ad8ada9402dc8d22a08467d9d0ef3ef8c62338006dfa3bcbddf12cb8a59eafa0bd7d0cda50
 DIST firefox-112.0.source.tar.xz 497250760 BLAKE2B 
6233ee202d000ddd5b0a2eafff09226abf2cf097ea3e1184442ad34e92f6fd408f1891a2063e459d419ba074218596f48c95c860246d4c46d2a4fca3df27a78a
 SHA512 
6b2bc8c0c93f3109da27168fe7e8f734c6ab4efb4ca56ff2d5e3a52659da71173bba2104037a000623833be8338621fca482f39f836e3910fe2996e6d0a68b39

diff --git a/www-client/firefox/firefox-112.0.1.ebuild 
b/www-client/firefox/firefox-112.0.1.ebuild
new file mode 100644
index 000000000000..9b54c0545337
--- /dev/null
+++ b/www-client/firefox/firefox-112.0.1.ebuild
@@ -0,0 +1,1379 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-112-patches-03j.tar.xz"
+
+LLVM_MAX_SLOT=15
+
+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,whissi,slashbeast}/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 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+=" wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       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: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.89
+       >=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-72.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= )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libdrm
+               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-lld ; 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}: $@"
+       "$@"
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+}
+
+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() {
+       use lto && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+       ! use ppc64 && rm -v 
"${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch
+
+       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
+
+       # 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 ..."
+               if tc-is-gcc; then
+                       have_switched_compiler=yes
+               fi
+               AR=llvm-ar
+               CC=${CHOST}-clang
+               CXX=${CHOST}-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
+       export MOZILLA_OFFICIAL=1
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-gpsd \
+               --disable-install-strip \
+               --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
+       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
+
+       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
+
+       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
+       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-flags '-flto*'
+
+       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
+
+       # 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
+
+       # 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
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       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
+}

Reply via email to