commit:     00f4879cea5cf4a3d5b8aeb16ee08c46adf7c8c0
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 30 14:25:51 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Aug 30 14:26:25 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=00f4879c

www-client/firefox: add 115.2.0

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

 www-client/firefox/Manifest               |  101 +++
 www-client/firefox/firefox-115.2.0.ebuild | 1407 +++++++++++++++++++++++++++++
 2 files changed, 1508 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 18e3feb3bb5a..c09242403e8b 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -296,7 +296,108 @@ DIST firefox-115.1.0esr-xh.xpi 402425 BLAKE2B 
56169c2f4e12909e5e83c7cbeb2edc13f4
 DIST firefox-115.1.0esr-zh-CN.xpi 595483 BLAKE2B 
51a3408f8119f025ca8b68cb64a180a233b1cc3966c09c05fb75b82e4ee0dbc203b63405d1cfcc590f045cadd25c72468ba0495f3c2140f9e8cc7da5718caa7b
 SHA512 
6bf3d518e98df5380eb38852f495740630e969f77c9196be84bb804f361a3e0ac88f325d195e0c8fe20733bce9ef54c9852f3ffd432b7c6dbbff3af7f5e38fa9
 DIST firefox-115.1.0esr-zh-TW.xpi 597818 BLAKE2B 
e56d1306d9a0ca2638d6ff3ef5c8553e5aba87625ac00b12a492ea98738dea3e12477fbf668535182743c9096d40f645a92f7c69bf47dd9dcfbe06b0ce98492b
 SHA512 
8e9c3ad02d885c080ade555db078ad9c714fe5da6cb44320cc12ec508e5e1060da7e2990de4f3bcd3782f77c83d965c4664af8b228b3d9222cad8563a85f3f75
 DIST firefox-115.1.0esr.source.tar.xz 507060904 BLAKE2B 
4da0535e05e193d0d7509790f3a6b0f8dd4dd809bdfab14da357ef06ce2b665d89a5620994393d6bdbe6a8fba1db55157063b7760fdd2e75f2bddca86f9992b4
 SHA512 
b2abb706fef2f1aa9451e7ac7c2affa0cc92cf2b0c6629f106a94c62017476380c7b6f406861fa468f60ea898d8402f534ad74844eb3932741fbd981cec66592
+DIST firefox-115.2.0esr-ach.xpi 441069 BLAKE2B 
fe91a5aa23f0bdd9cb171707175f04ec166d5046accf690ba38e1e9f3a33b38e7b067d6017951fa1bc6e1ade37db140b9d7e9ead2e8c07bb138e2c3c8471d908
 SHA512 
9a0c363087447b9fd88d1574e44b4343faa1fb171555663556ec6befd07ee654a6e713f8f6c0f8504bfef719d1d98968d26718fe07528e7a4627e97286457132
+DIST firefox-115.2.0esr-af.xpi 402484 BLAKE2B 
11c14ae381f21ab8b4b6a02beaebcda9ff7eb2fb4bb9de43dab0cb91a143ff9f6b7f196e60cde42412aa510fc61dcc3afc709dcbaf0b463a09b5dc83ec3795a2
 SHA512 
679b81820d76f722f9df18fe28fe51d88dcbdd9223ac28c17978093877a6205dbfce6428d153bb2706e6871851bb6c840482a2c32795cf07de8c960512099371
+DIST firefox-115.2.0esr-an.xpi 482928 BLAKE2B 
b0996e341becfe4da27aeb5ee148489bfa3c996841336c27ae0b223c663841dc220b99980fb2fe0a9c59709e4c35b83e7c76492b97fcd711b3cf551cdc2c0cb3
 SHA512 
580fb01ead5396dcd62e5faf524ebef1bce4baa23b1231a11186d3a77ef70b64b66725d900f998184270e5f5f948cba778ceb68d2486976fdc0ce284ee72c6ab
+DIST firefox-115.2.0esr-ar.xpi 549543 BLAKE2B 
0adba33697c32c6b8f0da52d24c0bd8a53742c58db45bbdc73249d31656472c42fa8b4a24505f9c4889e79e83f7f0ea60692bb45e43265f0d9d9175b9fa385f7
 SHA512 
df555e23bb9b49300c0cc77bcea3ae15a2e29a62f44745507454fe478d408577c637951a82c5131e5c5dd686b5f1bc091990c964062a92f93d5a9e7f05293e8f
+DIST firefox-115.2.0esr-ast.xpi 477350 BLAKE2B 
a084f665090392de787a3eeb902c068ed632a71cc96dee79f1d7baed25aa7fef61fffd1b360c0049130d3bbfa682bea0f49ffe947836780967b78d50aa322dbf
 SHA512 
100aaea526a25740c99252b7bc2777de2fe82c2461db41714b816d3603d80134b66fbac48e3dc64d9dd853cb20f597252cfb7eed28cc8d6a75cd4c22069d678d
+DIST firefox-115.2.0esr-az.xpi 470734 BLAKE2B 
9cf3819c5cd0c67cb57b6b7a5175fda8680c2886d973b1eff5e728567e7c8c3517aa96d94966314892188f3b82c0e136743c0128a7d5c1c7040729b6fb16bf16
 SHA512 
a1f0a95bd11fcf807cb32dabc72b32912fcfc2fd39d2f4f732ae4948865fc48b95162dfd1bfee2dbab75d46441b8f61b6f5658bae1426bc3f446cd82adde94eb
+DIST firefox-115.2.0esr-be.xpi 647108 BLAKE2B 
08e60e7b9f2c36042a5b13538c8a56dfb1a6902904d525099aa55fc7d65bf0c88f6d83d667e613927cc28b40efbba4b1475ca5c8ed11deb3ce739b8237485197
 SHA512 
f0b211300f7f10123959b644e52e5923db8ef001fed421e793f3de3315ac752643b6fa9645a8b2d45d1fea7bc00c8cf4a1d3156f09f92a1a57642eb430528c44
+DIST firefox-115.2.0esr-bg.xpi 564174 BLAKE2B 
8c5e49b876791aebfa65cc0cdeb9a98623036d3aa978a6258fe23e1cad18130c31052b25738b76e314c74910030505dc16119ef3a0fe73f8fc602f0a0d7c4500
 SHA512 
7e139abc2c6381348438e02f794d3c9d757d98c270d790cc9916a35a3c374210a8ef050e110132d0f13ee32e462ab818ada4cbd42ecff0dbee6dddbcfe3f3ed8
+DIST firefox-115.2.0esr-bn.xpi 558429 BLAKE2B 
e12d68a08604c5409df65f3c7a6af58ae4329b79d64bd0f14df2b7376607c0265ce85f58420e36ff8663e51228a002bbdc1f1afce83c30033696aa89c094929b
 SHA512 
c2cef85f422c2eef9a00d86eab2c3ac8422b6960ec95eae9acc3de99b85b322cc5e3bd985ea844f7e0a0b8fa34889c208202e4acaf2f8adb0fa53759fe061628
+DIST firefox-115.2.0esr-br.xpi 534379 BLAKE2B 
9cc405c426312f1326e85ea12acdb9a89ba7fbdd4aa0dd0c465c8556850275d0784f5e40f461070b1b8cf18c4d6730678c5885139df683b171e67d92fc2245fa
 SHA512 
b08de87e38268debb21bdedef0098c0e7062c8854b028a29112f6d099d4331ffac212b719cbd4276897bfaa751bc5a7d73ce6381c9d2d2ff25bd338d4557275c
+DIST firefox-115.2.0esr-bs.xpi 441266 BLAKE2B 
fd52edfe194c93e73e80a2c36f9ca1a5cfa4a22ecd2d91b227d92b8979efc08eb9b147d42f6760870b64248f3583c58b76eae0640d6484425d93d8cf5ba23c3e
 SHA512 
ba017999ae3732ab0ee653e363dd623dd4125f5a9eecad171ac1f317931bff093af15e2253461ab064e85daa975a238a8b59e845beb1b68847f3ce2aea558763
+DIST firefox-115.2.0esr-ca-valencia.xpi 521962 BLAKE2B 
4c5311fa385e078c788335d876aa59ef4960adb2ab2533cbc5702455efca50efed20fa27fbb1850ecb2d470896eb6398a318b6693077f806b3e6d51e42e9efa9
 SHA512 
c6bd2e7eb3eed3b107b26988e41c197cecde858bd025d0428441b9c732da18638a8596d01785d08983301c319145c1e8a8c9a4ada80da4c8cb2d38edfa02b438
+DIST firefox-115.2.0esr-ca.xpi 545489 BLAKE2B 
3cbe2859ca407e4c55b8bcc3b3a04529e5e982642bb8640891051c48a21c2b58e6aea7266131d8fe5d5f5e416b90481ee8d076adf8410193562a0b22987a1b19
 SHA512 
155fd6751f8ef3c750eb2815f3b61d10747196fc36e35a36793f3d0a3e34cf4770ec9c071063f481d30a45a8263ba9de58c77135b481124b14d87df01291069b
+DIST firefox-115.2.0esr-cak.xpi 564581 BLAKE2B 
9feaa595cf05b024ecd3fe36a5513c3cea9e386e8fcc31191c2c9fe6e65a70e848e47d108fd5e290bb586506ca7fb00644b7edcb5b663d92a40fb37ad95f5df2
 SHA512 
8f0adb91ae547a9f0e40b3d82cafc0f0d142db8019baf406b6aab1bd2f0d4793b9c9ed88b8301431c5a24d0ba045bfc74ec1ffc723545d6baacea3f6c2e21ed8
+DIST firefox-115.2.0esr-cs.xpi 592259 BLAKE2B 
9507be31e2660262c115ea0e194cad5fccaffdf61fc7360601a78d7fb6b75d93321077402b335ca9208ffc57f27059bbae9bd8c2830ad74c7eba425e348f62bb
 SHA512 
04ace8487fb904439f875bfdf0fc9ff152ff997cf34a2b5a134ea71a7d16a71db9272d579c160b61e709b2fa48236ff9899c7cf52c9f8dd94051c594b3c1c966
+DIST firefox-115.2.0esr-cy.xpi 564696 BLAKE2B 
a4cc97d5a8d73331cb54720f32fd1083bc8d2aae5c5364900e1abac3ba05bb45d81c72fe1b7d98323a7917bda6b38ad732d9505ee76a6e0ef7ac35e417a123ea
 SHA512 
eab3213000ad264ab3bf16d7a0458a3e428874dfa67e5176f1f005e94b381680ec2756833740937c29e47d92dca52085ec4c22fcf804a24b1b7af6baf71bce6b
+DIST firefox-115.2.0esr-da.xpi 554015 BLAKE2B 
16ff814c0b73a40e4435daedc22a67fb94e439a82ed9d80f809f3bbebcf3f227bcafec7d919a68e9a074eaaaa6c08ffb31e716ef3048e70bc3cc58af531c6701
 SHA512 
308130e37cc855a751eefa8767dde179ef62429aaeedd4752a3af77ba9a6eb23c8b8b3b48ab44046e942365bab950d3f0f96e7a3ce3b943944e24bc7148d3652
+DIST firefox-115.2.0esr-de.xpi 574623 BLAKE2B 
1527de786fc7f5d611fd4c99874c9d69fe5b95872b6871b50ce8e1ff809288e65f0a76ae37989dae7e6e7b7d0f57391df4cdd4cadec1d92d6144c25acc986f92
 SHA512 
8bb25f5ddc88955c91bd4efa194ad47b44e234cd7cf09c8353b734b61249d1939848c2ca0395be817c3a67150e45febcdf788b0f2e619360c0f3ebe5518a190e
+DIST firefox-115.2.0esr-dsb.xpi 589341 BLAKE2B 
029abdd8ca3590ead2855f1e82325f5c7633d1705fcd6b3432d12cc44d5086b5db80e54c3f1e4c5ee3c0a02c0ee985d151df3780ffe424cfe4449b2df445ae80
 SHA512 
58f50862c94c1feb676c3027e341c6f33796b703c846246e81f6b68df41514634a639017850222b8769ab522cf718cb6a81a89f5a9a7ad3c93195f8ded2a32bd
+DIST firefox-115.2.0esr-el.xpi 663772 BLAKE2B 
5daa1c6a1b08939984f2bf0d27799e4fd372b91c3fd6175e8a29899e41e42c4256128869498b63d885cb5631ed22e0c15fee8ee88559d6ceb1b6f0db2cdb6817
 SHA512 
a8fb0581e1bf62a938f1d145db6768e27a99a57f5fc1ddade620e70b5cb2af92ac1b7fc5683af485c4e04c911b469904eabf58f6d07f7a3d2655a83270fc8059
+DIST firefox-115.2.0esr-en-CA.xpi 519418 BLAKE2B 
0d6e60d9b9bbc23663ab069799e63db8e3c9c1ee46369a12776bdb9164dd339f395471bd33b7decdbdb402b91e5d2f80d5a37d5fd1efc5088dd2af20cc86d65f
 SHA512 
7eed2a01da71b2614f14a3c25dea14e78267e2fd64d3db892f90c934df25b6b06eb4c96133ce0dcab309079025d64823ec89be4da07b7effc4fbf8e70bbd7685
+DIST firefox-115.2.0esr-en-GB.xpi 531045 BLAKE2B 
01109441d3c2efd3186b02596985ad846e0ed80b249ac096dabed9bd7ea0784baadebd4de2ef5824b6fb81c99aad5719e29f426e7f25c584b3458a07063c5dcc
 SHA512 
df1978fb781326c3c155192ff6ccfcca072d152112b4e66d2878a1bdd30f2b4f32f249f5161d0249016f1fc79ad18aee0360244bc8a91faac27f950ba475064d
+DIST firefox-115.2.0esr-eo.xpi 556385 BLAKE2B 
21ee6ccb18911df753bd89bff0ce3de29dfb79d87e7efa2af7c2ec47ae6d9b1302639df72144e5a4c8ef0b166fced1af3d9665d8fca2fa724a4540cd13cf6d93
 SHA512 
3f2e9fdc718e7756c16082d3565b89f1254fb88f7157f11b0c76c1d8cf1bf5be81ed8816f0aa091fbfb7aa960d7d0ccd421d7923d9902e47da743603ad0efc35
+DIST firefox-115.2.0esr-es-AR.xpi 568962 BLAKE2B 
1e8f9d4a13cf613d58a5765addceae06712ba20b57f9bb86a3947d3ec6d0f56b9757c4314e31aca360121c529902e9f550012643b9ceae89688100df375754d2
 SHA512 
281f83326efd213646c027528cd42cebc255a658902e69a4fd793595afc9ec185e0a942c296467d4dd4493d6173cdf9c821abc9194a1035b39a522da7933d630
+DIST firefox-115.2.0esr-es-CL.xpi 568610 BLAKE2B 
ca8c925b98ae18b9ae67f13e76fbae899d2f8e11998d94420b964f39a4a24d92816c682a51b43a9a1e2b50172cd4438c213b6e5d009fce9ca42525c2709d42a6
 SHA512 
f39739bce7064326165b9c3b77a8b1e525110d07891316648a28882e2364b3434d05900813601fb4184056f8760a7bff4f57fcb8df92ad65c3c621aaec5af027
+DIST firefox-115.2.0esr-es-ES.xpi 562051 BLAKE2B 
56106f2ccc2922bea02a0e6e51bb05142ce67e8360175405d68aac4d8bcc359a4c6da3f3a3ca809cadefc5fef267332fc88d65be5bcaf68c775a2b0ec0e48d96
 SHA512 
3e76ae09f24f448f68fc9b344d5c15f960ddb8ba3d1945ff605b581afb6d8a4625889157f8546d2daa48039ef3e7bd7a2418fea827903a3526386fb6585e9f83
+DIST firefox-115.2.0esr-es-MX.xpi 565317 BLAKE2B 
6c1fa829b26988a8f741fcff7939f973ca10148d4ae6cd643990c09c4fd132e27eb67d0097e79c0e7d78ed54b58f45bd1d9733074072f90db2037695c95c7057
 SHA512 
ec927e079b10d3d4a78ddfbe36ed3290478381e201845827a04ec2ae997dc819c581bf4606f9dfa1ada385ad82129f3bdffba7c0e3a01cbe562b8a810d4b6c8a
+DIST firefox-115.2.0esr-et.xpi 516136 BLAKE2B 
634535f56a2d0bd64f24252410659d665e5df1cb07ad7dc6a6362bcf13c1ef0aed9b3ea56842fc9a39976c7ff7235bc8b725e897a4e59a0d3cde64ef53b6db64
 SHA512 
7f6c6a73ba1fda7375547b7ea67fc083827a40e06069a97e405cb9504106f39bbca35af525947d20a6f6b8a9bd6291df1ecc983c62d6eaf96256cf2bd26d8c7e
+DIST firefox-115.2.0esr-eu.xpi 551626 BLAKE2B 
cc43ae6b729c7b4f1168cfecd7bc3c8600d3d3ef0487a3636c9bb92ea5b0172d0f80f45c45753a2f6f00a4eaf6ab5728c485f064b88995be5f832b972f0ea8ae
 SHA512 
a550267ada41cc344aae5e307a0045228a51304f6b2ee1c98b8e2954068ad624c4b788105e110d238027faca4cfdaa8141d4329a07622a56f9d9af8f147b4568
+DIST firefox-115.2.0esr-fa.xpi 564539 BLAKE2B 
d5d8e3139dc0887662a1c6135219f0b71fda041973cd922f05fecfe291f99ad875153e63f086396dc312c8f8f2d45bdcf01d40c13e69c433ac657270a9963642
 SHA512 
878064159e96a002a6f9cb4ac75974ef142129ba0731b225a80e8f1541179ee9cf293ea8d8894eb2642e585fab29c959788b81a9257aaf6d5dbe3648f9fdf908
+DIST firefox-115.2.0esr-ff.xpi 457110 BLAKE2B 
03bcb50c97e0f06a18809692876e690bd02d22de6cc3a6fdd5fa2fc0cde65213d42c4a30eded001f13c93042893b79f0fe6ebda67cf6a92bd3835fe56cad6111
 SHA512 
befd10bd6c0c079c673dd8db6ace1914cc8433812b47cfebe3c4f63ad68d51cf23089493513b04ef3632ba6cab74aae9acbb33ec94365c0aba01b45113c044e7
+DIST firefox-115.2.0esr-fi.xpi 551247 BLAKE2B 
277d477ecdc1586af3a3128992ca90aada3363a314298fa248a4f4f6b80ff41070a7bb76503a69a5874ead2ea8ff31c172d2cfef3e4113b2b1929bb8c7d4bcf5
 SHA512 
c3a51439553b3f6fad8f6f4cede9e7c3898c1f92a0c862959f3f916dfe0c9eb5eb45422d1e9d248f31548af4785c7fa8580c7fb4742af69de6b2c2c339c75611
+DIST firefox-115.2.0esr-fr.xpi 580607 BLAKE2B 
5d7586660fd5ac0c0a02a60d6ffdc5d1b57cc15e047339af57e3ed3da3acf3b7bfef45638040d1670b57c9f781d025c3489680135d21afb012b5d53d8583709f
 SHA512 
b4dd6701aa9691c1bfc7e0fbcc36c22705a5e91f25bc839be9bdde2f46a53d2dc8995821f5f82e3defb6a29d31084a48d120a15aaed993ba7b5c690ae914bfd2
+DIST firefox-115.2.0esr-fur.xpi 573081 BLAKE2B 
6252c69c143f611581672739efa54ffc7233f617e86f7b4f61c0adcb2ffce7c464e9b39d381d724bc16ff8482a66db9510cde218e646cf390583111281bef8de
 SHA512 
6fe888bff0593c9186e96929d2386552e1fd04099a30da6725f757b8542c5b39adfa6fa63f352cefec7361167ffaf091d16d28098229e7e5b2b177b5b5fbaefa
+DIST firefox-115.2.0esr-fy-NL.xpi 564936 BLAKE2B 
a98b597e865fed8238e9798ca604a6ff01ea0ce578e2ccf5abfa699da991ec6f7be4ca46e05b1ca0ec7e7e8308ac803d039fc5840eb12b6b09ff17b47667bd8c
 SHA512 
9ea620096ba24a10dbf7102d6731304413cd2a84c9dae50ab88e6ad0fc770ec75403e28b64cfebc31cc06d131007f7460660129954a8c26d1778918c3610bde5
+DIST firefox-115.2.0esr-ga-IE.xpi 454336 BLAKE2B 
2249f06ca1defc3b5919ca624c6bfd0a4a2d656272929884ece9521f4512297ae6005eaadf5d9722172e4022d57305afbdc2a435e1de5562e754114b90d15d1d
 SHA512 
c10fe63edd7609281793916b05c0333a597bb37513a81d38a259b8995e79d2fb13489ff0e213126cb9b509c510a8c264038558f62ff3c17ed7bf948c549d8435
+DIST firefox-115.2.0esr-gd.xpi 566963 BLAKE2B 
1a51369d3ab587b59688b28c0c47f54cf83cc602d39cd350c31b8c0e2d9018746fdc76938940f311c8d053d5237ccb2541e399cc5e6ffda4f5b631fb1e69936d
 SHA512 
7a479e3db42027744c199aa1eca2a32a4c6c784d8073763d5120dac5986f8ccfdfd9e410e0dbc2858ca8ae46b1d669aac30c5d8c29ecbff603f3eb435aca0fff
+DIST firefox-115.2.0esr-gl.xpi 565485 BLAKE2B 
aebb11cb0618b3e0486a0355f7e206e328791fe94f69d48fdab23a32ef2e6e6bd1677e89f124d37699e3e648109443641b4dd32c40bfdfddfe7aecd6e0e92b96
 SHA512 
9849a854dd8e36d7d5272fb9808b995361ec3c7194b6a3e9022a5211f56f198ef6fa8c0361678cc9765e922c1dd612c5198a279dc31ef274110bdbf1d38c7aa9
+DIST firefox-115.2.0esr-gn.xpi 577574 BLAKE2B 
de23b9125758128f1cf6daf86d286cbfa98b70fa7d279f5ab3bc7e2427064fd799e8d92ae7c38b57cdfe89b2cff5082c41c5b0e54e125b961951d4f949311959
 SHA512 
b3cb4f8c63f2167c9edadf969daf6698c3b1f64133d8b157faf4cc6771c80c1ad5f3b84094ba7b407da795ad9fdd628bdb48832d4561c05661c58085a9eb7f91
+DIST firefox-115.2.0esr-gu-IN.xpi 506687 BLAKE2B 
c318daf6969d1339e8422ba32c3b2ed53c8e00f70b102257d878689f0ba4bf9637c6158dfca8224c5b86e6b96d43e6539d2155ea9efd7daefe4a68176c681e25
 SHA512 
3c880378379f147c00d0f3dc1b4166d36848b6b18d044375b273df3fbf6c86579842012dd3a4292779d82b730079b40ab0d7c37526e0a614e0a9b0629a85fb27
+DIST firefox-115.2.0esr-he.xpi 574383 BLAKE2B 
a34b876509b9148ec69684745f828ab101a774d4b73ffe726a1a71b6b4c38b06ed11546e3a5f58b6394c65286f820851188b2d003d62d4ee5d52b07cc44a60ba
 SHA512 
efe18f3747d3e4d31fb7dd8ecc9c24b93260ba62c3e71f5c1e240bbc566197663fe32f97e317f91aa82157412c9e2770bf484df42bf33ca809fdf0efc9fc938c
+DIST firefox-115.2.0esr-hi-IN.xpi 538827 BLAKE2B 
29d83a4010567e6f07a23e545fc750dc5641b420183552fe3d1e70fce81c509591839b60bb0f7bebe280bbcdd4978c82ff2bf2c65a76f7f2bee94807eb2f6d53
 SHA512 
839940299160ba44d5605ba3923b32e9ec5dd4b649da3e0277b34d1c02cb9d85eccf5424fdd3070ae26046fca94395388eea2801956432bd80c22057242d13c1
+DIST firefox-115.2.0esr-hr.xpi 531647 BLAKE2B 
15ba781b7db57455eb0f08897482abc26598bf54545399766c1f3d5e384ee649aa9babb3cb3452c8b25f582255fd86b0c76f8a8ee89139b7df08476849b66133
 SHA512 
ae47bbf5f1d5a2a12d77bf8ce1ae732f4a33816d1921e24f790388457314824cb5fe79b346ce008c820cefd5a295caa4395714a13c0c869af47da603107b7832
+DIST firefox-115.2.0esr-hsb.xpi 585520 BLAKE2B 
3dd2bf60470dfb7a28f995edcd8df29caec44eb612db5224f0de7295f3c95b770d4d9b481b6c9c3a2ca2d56104129718575642cf615cd58587cf0fc4472bd2cb
 SHA512 
62798d5911ecf7cba62b08d348d3a8f2c2b431bcf166caab1e1bdc3e4e38f1ff4d4830dcf6e64a63314a85ef6784f563c8974b2f6bbc66ab474cb22b85bfc449
+DIST firefox-115.2.0esr-hu.xpi 588978 BLAKE2B 
693942a6b21d7ee74659b1482bdcd6affd69c04c2f7da5111914bfceea2ae3d4ab80f799c7a3c0475d1e830c3b7c6ab503fd5c250282c2a8962d705747447c60
 SHA512 
e487311b1474e636918eb02500307ea6dff85b6849b8a6ab63b0da9b2319233a0186aa9614b8bbd38f97865b14206d743a6261a280e2c71ea3b8714c6e012929
+DIST firefox-115.2.0esr-hy-AM.xpi 579200 BLAKE2B 
7c8883bef488ff010f85ea9bae21738f295cc01e75d76c37a62dba07a6863ef3caefddaa44e3606473a15bab951b36f8aec0fa49f91134f372f922521bd6ff59
 SHA512 
94ac4438121ae1ecb6af95e79a83ccab56c49af1a5637da64e117dd11ea92ed3b853e2032c7490f57dc4618cb5cb312920df4099a40e58ebb86d8cc1056d0a95
+DIST firefox-115.2.0esr-ia.xpi 553073 BLAKE2B 
0e4a8931687a919140a87a854a0758b63a69d8a350bf844180030cc84070ce10e797cde03a6c5aebf8a70658ccf772ccff1d0456553f969101d5ca4e9cc8cf54
 SHA512 
009e4702c112f938789a0e86983bd558d7ac46c2eb047ba3b90a8f5e62d7addf535f7849613c991197075d53f514db1bbf85f1df20454f3ce6ff0ac32b4fe33d
+DIST firefox-115.2.0esr-id.xpi 537738 BLAKE2B 
bf26b96a91a054f5cfafd7245805606feea8872b570363713cd65534868001bb9d6c5807920d2388f8f091db858dcc9dff830f3342c5838ee594098f94561a46
 SHA512 
97c40004ce5cdd48b22572c0c9f1a6f092eaff5e0d26bbf04c9cb90ce40742f45d20b00e501b83327cc37d1ebaf1638721c7c58946b91fe7b7547ea33e2b1d57
+DIST firefox-115.2.0esr-is.xpi 560800 BLAKE2B 
1601757383555971370b2fc0a246b5b5ef2ef0a4761081193b44c32ae633de9a5f886b756cfc852a6f2589d7b82eabef7ac2273fe89bb8377755ced63237e6b1
 SHA512 
c23687ce08ecad2470f922718bc77ca20407894af67143b42f12557c815250b856c9bf177c8d2d241e0f88ee81e09dce594c0f99ee4b77880b4b9356c2873874
+DIST firefox-115.2.0esr-it.xpi 507475 BLAKE2B 
e14a1c2573084aea471898cdc6fe89c096c93c789483579a633e01bc644d19685e77f1711bcf180b4229bd5bc5ca8003709f4d8dc690c72241a9cc8baff3e7d2
 SHA512 
ab8da0bfb7138d1aefb6579b2b2ef282e36efac56ae42e3a41b70e17e8ef4678f2ef3d8ebfd7b33ac15d389642ae9f52a539ed9a63b8bb0e9c5832efab2a1625
+DIST firefox-115.2.0esr-ja.xpi 634409 BLAKE2B 
a473378bdec222e2e5340cb547d23ac4a2ccbbbed252f2f71856595a6954207fd08e3e16195f76868cd7ace75bb5d5d98740e3da519c36c2f0eaacd0fb32ea59
 SHA512 
8500be22eee242b0b301f96f5dac9dbed65fa3c49e4aaace6ca1eec059eefe98af0fb339cd0b6c675d3489a8ed02aedf5effc7505aaf7b9a6b872ec9f267de27
+DIST firefox-115.2.0esr-ka.xpi 610753 BLAKE2B 
a49c2c354554845eae247afecfd5f563da887c42b04a866635422ac4940a70252dbab005476027d455b7ab58e31ff0c7604c4a1ccc919c6507f81809422c4307
 SHA512 
ed08c9b19766048705de83ad6916091d33cc5c02106f13bddf861973fb1fddb641978548a009c4850b975158b8a07ee201a1bc5bbf1dd9c380297129419a4005
+DIST firefox-115.2.0esr-kab.xpi 562651 BLAKE2B 
71e483e73d643fcb9216cac184de163bb244648643159b1d26a02b69e96e6cb6ed9d41ddd2b702ef156490985f0ee3ec78a5cd09bdf3e305b35af3fb443d880d
 SHA512 
66b2361d73719f6cce647506cfd9e3fe904cabc7bd97a93d0c01a37101fe949050a9f276731bb6750cee5179389e1580956b8eb0ce6b9fe6003eb048b98ad4a7
+DIST firefox-115.2.0esr-kk.xpi 639134 BLAKE2B 
dbfae75e626b9ae67adf937e866bcabfd7d0cc4fed29b5e1fa9cb60d9446a9c0cd67bbd14d2c2a52f57bdcf37e956b06582a5122273b6ed0a9d5b6608b9af897
 SHA512 
dca21f4300fc5047c41663ab72e65d6d1569858b09c14d5045b2efa8f30ea1c21507c72fdfa1a6e3d9963b527e6d54951b80b045720e6cd5a629ae15df18e692
+DIST firefox-115.2.0esr-km.xpi 508123 BLAKE2B 
791dc1cc15d6a2b61e8a2eba34b2b612d5d41ec4f3689e795e17e42f5ab2b34c7b7b8d68ce7a1436332bbae78ad1aeddc61b17d0de35be60d5b71e5db79de0ef
 SHA512 
ef509ca121bd7f6251982cb6b850f638fe74c7e6b903f5ccef9838e5df22376a7c29a70e8efdb8f2608465d951639c160af24b964dc8c7316c1ef86aa99dac8b
+DIST firefox-115.2.0esr-kn.xpi 473773 BLAKE2B 
96754ca39d5a5e1d484202f7b31779b8a17d813df1934cc7df1203883b38317b3176842dc5e60ca9c76e37b9043f9210f1ace6fc47081f9e34f0fcdf498ecd44
 SHA512 
0a6944add7c6df4de696d833412a2603e317b545bf8a37fac35ea3725dd467eec52d93f699e44282da69c102e858629e15719f3e37270623bfbe188ddeb0c3d7
+DIST firefox-115.2.0esr-ko.xpi 600391 BLAKE2B 
7b72b79f7aef38c0b5003286e434b2e6ddf972c6a9f8245ed4e9f3a2a54a587d400803d3dfeec7cf7c71f4dd0424f9e347c2d0a6b931bd2ac6624d4e73d87e69
 SHA512 
997de3908da3147c737e3bfae9ea6d377351ede33be5ae3c2c8757312a70480008b88d6564b4eceadede8608822bbbe4af6e242ebcb91289ca3a7b95f00b9ab2
+DIST firefox-115.2.0esr-lij.xpi 463743 BLAKE2B 
464ae17aa3429ea878e428ca7c684c65af8eec3c320cbabb6bd4d357260c46e612a6be9fb4eab2482cf7c3aa9d59c4273509791a1c5d09a82bdc31ea68dea840
 SHA512 
920ef4675129230c31b21cff04a539324de0e29f37f027eb49abadbcb91efe0fcfed85a67627968f8275fd3932a75b3ecec20abec78e66b15589b728852d66be
+DIST firefox-115.2.0esr-lt.xpi 548306 BLAKE2B 
0c2ca65e1788f40223052054d75354cf1bed5c3b2b53d0356d9203e71fa37a4ff89a9a1d59ef684665a2b53b0a3cd64b96cd98b99573a1b359b99516397d03ad
 SHA512 
67d7c0bbc036de68d13ed21d41653fe0ae24ab08bacbb1383234fd69957e0452fdf6c6bb23da05e5b4aefd8f7c8685451346698e9ca9e56c311393e1e97f7859
+DIST firefox-115.2.0esr-lv.xpi 450738 BLAKE2B 
54e9eacf95c7518f08a8737b5fb6e39fda275644f94173c23e495e51604dafb29b7974f6a6e2f1c0240e0766908a332b6530894a81c40edd0e687d277408906a
 SHA512 
b17742b72f2217da3cecd72e2cfbb3668e2f919ff10f2b8bc83d758367cf5f192a333f30006abc671ac9a7d64ac14a196a1e35a893066e38827a3af11952aca7
+DIST firefox-115.2.0esr-mk.xpi 470105 BLAKE2B 
7b70a73273c50986b958f5e65363c3a71c028139c0d228f4ab831d358001d103bf93abb3aed89907ef6c72b00320d202c2ecc182fecdece845459e85aa463b1a
 SHA512 
41a8ab8ab6140b62f5b9f5d1a40a0ddc47f58914353cb14077010263c6fae609cdbd29d518d8302db6e4ebb44c6609e0c96720bd7d676b27f426c6717d78199a
+DIST firefox-115.2.0esr-mr.xpi 510465 BLAKE2B 
02c8d27733b5e13fd869d4d1467b379393a74d15c4cb8da5908da371ec648821cd7ee54fae0dfe883fb32f2f1605e3726e7e213605b24fbf34d1da7fb7b61f6f
 SHA512 
cd9ec7a8c42ca0346bb5fac198f79e059b117b71b351b72245c1a7ce71fd2713f013ccee62fd479ad3a40b1ef2be53455ea84a66194605fc457b9ad712f2791f
+DIST firefox-115.2.0esr-ms.xpi 431282 BLAKE2B 
f82da4049895502393b3c6371090d6374b0c6aef04e30c3913494c3c23317fa5f266dae494bb1ff9a5907c02656a1a500099a6f1197151958a8ca93dfd4d9b12
 SHA512 
392f3f634f54773591b6b4114e6482c9c97797927f687246d97599c9b7ce87f2f8d45ad920c66af348af665165b58ee74026cb83a53858d024e68188d3a95643
+DIST firefox-115.2.0esr-my.xpi 493660 BLAKE2B 
f841b501843e6a08e32312465b19aadfdf4626879fd1ad894909bc12051856002065f00e3e367f0e4e436335e5e031cf4bb118d4d428cf3991241bc1dfba5792
 SHA512 
e345085a1efd0e70b63eeb9b15c696365a845b3f2e3a8f6f4ba1204831402916014f610cf583e596761d8c65bfe38797b3b77be7780ccb9cf015041275649c06
+DIST firefox-115.2.0esr-nb-NO.xpi 548975 BLAKE2B 
52680b7669fdc9442e3a3b1cd48854120d186e27b1a3b8dc53f3404e25817dab573fa2fdfbbe473c5319442b2b42c735ffb9b24c8da7b1070f3549090e888bd7
 SHA512 
239ada6c6d9bc538c43cbde105ff811de8114b395f9b454f3d074e73f92334165190d171e72a8548f0d363492c841c4aae76f513714cbc5e2c34345b5bb27c21
+DIST firefox-115.2.0esr-ne-NP.xpi 469000 BLAKE2B 
ae8566b930facbba0a5a9f013cf4547c17c968d85c7da3517f196d8f58f9e20eb0c083e3e0240e52dc176fe418ce26c468cbcf4f56dc526909996480d92ea66d
 SHA512 
a3b46359c10239feeba7eabf0d202f2c8619f18978fdcad4d263713373653237bfd1aca5b11b609c1a1c767481c83cc1b783295ece276a9b5f18a6b1ada97a6f
+DIST firefox-115.2.0esr-nl.xpi 559198 BLAKE2B 
ac96791e355d8543ef11ba9c37a34ca3cb2913de757a5070965424970ed3ce831c0bb4cb5453626a788c476d2b766807deaff07e98fa101f357a7c550fb2b2f8
 SHA512 
e9f807dc3e31f11dbb6892c9e8b4a5942ca56fabb57f3ef5663f20563454ccf1ff77dd94da639e076b183c54283920315d468c51f7b5b6b7d73f337d24138c22
+DIST firefox-115.2.0esr-nn-NO.xpi 551977 BLAKE2B 
f2c3d50178f9e6d19e86ed6474e96857068dd5a3e00b9df2b4d0287a5b23f0e1205be940896d105b4b11a1ba2f9314f9b331c801b60343810b5f231cd406bb82
 SHA512 
251349d03a588c1dacd4280cdb4dbc5683139eb7bfabe0da099c2403f640a00a84c86b5a40afb36bb0702ce66fdbad1c1af7729bed4a9c1fba70ee68e92dab7b
+DIST firefox-115.2.0esr-oc.xpi 572144 BLAKE2B 
bb28836a256cac9f74176e2f515e7a64a8ee47dfbefa3a04c7101b004bd2c4f85fe88c31b950aa419cf992d9e07f62596215486abf5a46915a8e3568a0e874ea
 SHA512 
0b4219acbb3912ea6e4a351a68f4bbf3ebd0140230fe67322b9349d1bdacf76f1b5ea52babc647bea2c572dd3daf8a4838edbf4e58319cce42e46c1c3cf0a8fc
+DIST firefox-115.2.0esr-pa-IN.xpi 626117 BLAKE2B 
69a27ad8d4027394c157e7c3eedd2dbb56af1e1a6696d6cf3abfa0a3ba5ee0854ba9f33310b089c6f4cee33e0ebd17dc8adfd46ade387bcd8952af7c1a7f7a3b
 SHA512 
d00b5323bb5d101545a9ececff7e35e9a8e513ef6e7ed804e55a3b616893213c55370b2235b729e14d283f694a9b209e925f3bb28a095263b79ac9250622b28f
+DIST firefox-115.2.0esr-pl.xpi 579829 BLAKE2B 
4ec50ace60536174b2394a8227daffefebd6b42f21ee89d40f12f421354fd8f7e69adefd6ed6006ac2b4da05a8cf32ff887a22c1fca35d415a29ccf29044f82e
 SHA512 
2094db03db570b243c5a7a63bc82b3fc5784fb4be7e2477eeddab77dc86805c503669e71aac899f079e397f3543b590f628502340bfe425cf6c784224b247a45
+DIST firefox-115.2.0esr-pt-BR.xpi 563951 BLAKE2B 
dae37ca273387d943fd7a09c930516e5b10be849a3b8e5cc42012dbc6a26453500d26c933642cea97900af5de51e0c5be8f5fba9040e57fb80eb69046d96d487
 SHA512 
a6d6ed3b4e0254082fa5546015823e1fa321b430335c57d31a5861cd38bd3dddc2965193c58fd2d79a12c4e9f34dde583f278a9ce7e4e4a49a1eae628c0cf102
+DIST firefox-115.2.0esr-pt-PT.xpi 569067 BLAKE2B 
52318706b716d57b9612172da653180eeff3688326417a82c49d79e055bf0fb833624bbcf92b24209038e9f50be9372d578ab7e270d1d6f47edf5c0c34ef38dd
 SHA512 
07023fd3dce85fa5c7941566a81a39af084252ce2d4e25d42593eafd42cdc92c6b14c6fed83e140529752f59b328aeb4a569cb2c6c903a9c550a74b687929dca
+DIST firefox-115.2.0esr-rm.xpi 558669 BLAKE2B 
53af2f0bc60a74937d4488d8d8df0e33ea55bd6356e8e12fd751845a5cf3ec889dd29793f430dd98b79b6fef677d8bae83f9973bd03f1c5b2eb804381fb6afe2
 SHA512 
3b5d0832b7824c5956110bcacd7d07e4fbe8756a84649aca30713cf39cffbaca080c12232cc0bc37566bc402e2393646d5fc3ed536270f6982842a0e15e3080f
+DIST firefox-115.2.0esr-ro.xpi 524805 BLAKE2B 
bf88f65263cfdda2cf532b30065ebedf12ff5230960c723f7ef5e8ef9db296ff442a62b4c2d3759114dd3552c7162767ac4b600b630e023287f22f6d04797780
 SHA512 
8ab5a57cfb8093b189ce269f380ca1267aad2a84053ea4654934254f65bf1a00952aed96441c36e75af16ab97e075daa4510c177988975dfea8a907f4c6f12ce
+DIST firefox-115.2.0esr-ru.xpi 651421 BLAKE2B 
81c69ac1267ad03aa4c008c02488ecba5283ce01bf7b2ae304284cd4152b8ace90af7e64027506153aabb3aa5184143e0b3d2edf5019f69b035d63ff4632ed65
 SHA512 
51ebc1c389f9159675a76a246ab9c74aa94e2c633b7f65202e34a6e63a9151937f45fb63f37fd6f2c00ab44b47ac8ab3dee4469fb18d75ac18ad483c4eeb1ff1
+DIST firefox-115.2.0esr-sc.xpi 535151 BLAKE2B 
beb4aab822e99d28ec512fabc895cf8e55dff93669ddac0557f8d7a88b07986c963e800e50cb2935ab01594573e87b8d215847314ec207674462cd747fbf9400
 SHA512 
83f7ed6f68fa7ec59b517e2257421bdedf13056004eb32eb63166a92fa87e20e39224dc5e3cf367d97033dd41c49906577b93579c337e559ceb9bb8f3d47dd54
+DIST firefox-115.2.0esr-sco.xpi 489685 BLAKE2B 
395e1dc15d2aa37b636295bf35dded5a765fd40037eada65f9a787021e0b99d6dec076e9ef5c6714bd113921892980007b8534001a43a514c51de0fa041d0e7c
 SHA512 
598631f7acfddcf0cdf4a14c0c4e8fa4ed0610035974842dc5aaeb313910148e24121804505f44ab54181206e284b96bbe6cb63189f2ddcb06cd5630e9ee4f22
+DIST firefox-115.2.0esr-si.xpi 569016 BLAKE2B 
5fa695cff7865119845696921d1498cd4f3413c3be7ba482c641d1cbe236012819ddb8990b4bb270fb9b253253191d465071060a5783a80b597a8acd42e2ed95
 SHA512 
f5887b32ff1a5837735e49792c00fa322b58bab9f3661c48f2b650fd140ba1e681d976841fcc92331b01bdbdc41db72c1651637710ad211321375fbc746b8319
+DIST firefox-115.2.0esr-sk.xpi 589725 BLAKE2B 
763f528474bd0bbba637c281e3a63043b9d529b8142a2a8be6c0623293ca2d3446ee432b9069e701115f8d8164f7f76bec0f925a3c8ddc58527b80f3a89e1aae
 SHA512 
a9f6f3c3e432a05971688e9a4d632ea42cdc4adf73c2d5f3ad6bbc4710741ea4c2a62e6febbc41af59b420ac0d92bf547dc6417d2cfd723f1ca98f3f87e7fa16
+DIST firefox-115.2.0esr-sl.xpi 562528 BLAKE2B 
983411d76a3a8b33006b60d98e5d11e6cdc86bce0551a6a3def84a618a8d070fb28f6a85727ca737da31a37eac6909c18211da2565a61b0dca4e109c10fbbb7f
 SHA512 
41de86a5586d5f20e3aaa1e23e7cd3d906caf38febdf2e023e26e7ddb741c548353bb42a86426e0710eccba65e80d0ca1e4e7504b75fe3966ef1e35c1b552441
+DIST firefox-115.2.0esr-son.xpi 400974 BLAKE2B 
0cd803936c12e036abc176db4b1b2d2295dfa8b46be8769b7a2d079b11f0ae8015d041f041966ac15c0e7cbd2442ff03c51aa67f5b3403a3a63874e68bf57c4d
 SHA512 
abf1c40d176430b271efdfa567d075241abee801da0bed3b1d2745514b83c1d80376577825f1248f0bf621241cb7e7a914b41d49591ce0733fe7ca34f69ea309
+DIST firefox-115.2.0esr-sq.xpi 564467 BLAKE2B 
b8d4db7b613b95e2bcd01c80c45110d2c6a828f8211f64bc22eefd61f072f321c576e3f67ae236db3aa8c0222798d9423dd0a39c818b3581a7605facb1543492
 SHA512 
bc4908cfa395354aa302442adc9097fcee5d16c6f16579109927b8da54fda75af6ea7f86a735f6c60e7665667c84c4fbc01ba4200422c86f266c2b221265637e
+DIST firefox-115.2.0esr-sr.xpi 614009 BLAKE2B 
8d955aced39db5a51db4477534287aff21f64ef6519e245fb04c33ebadce259453892735b15285f449ba7c49f13d47b8bbd15d06662edd0b264e8eec890668e5
 SHA512 
88311611f2fb1140030e19923912baec6e8ffd432dabe316e559a5903922e32c509f4c95b0b204a5fadfc7850e8e5da2f304bc82075bf158f0db362e4fd80c2b
+DIST firefox-115.2.0esr-sv-SE.xpi 560559 BLAKE2B 
f6dd8304e709b3c7153d0a363006398a67ba2d5bdd5f7fac5b5478ea9dcbeb832dd406d3b92dc088a12cb37cc1034da3dee36e391d75d54f4fb00b456a5b96f6
 SHA512 
636a07388a0735b3ca332809e0fbb1a142f30abda6e36b6703a42a5e50e10d3a4655eb2b717ca71f7468b69025cefb8e2fd13c1f471f48e1436259226e2cf3af
+DIST firefox-115.2.0esr-szl.xpi 504134 BLAKE2B 
769622a46a1d4d240e847aec793a53c24d15ab6fb7751916d354ef867986484b6fe35354d80e44121fd0e2ad0ae2797716747efd112468d478b32db4af7856d2
 SHA512 
e8227f7ad84028e890d440bc7e0d623697ca5907539d9204e5a07cb11f2cae1880b672d4f9e1d1d7b76c1a94e657dc72a6dae5d80f70c13374c0609acc2f4a46
+DIST firefox-115.2.0esr-ta.xpi 488865 BLAKE2B 
9d19be09cc4ac4c4c194f8ddf6bea0436f1188f56870bc181056957ba1c0efeb4c9ef63015f6a2b94ba22ca92881138808d52ec225d3aedbf216e55b1d2b267a
 SHA512 
1f2adb5df9c6260d2af8573bc6641787b41e302b50fd7dea248acf6caaca1b7c72b7f1f08aee3b4df082c8199e863b0442b9b9439fd13a0cce156967414ff763
+DIST firefox-115.2.0esr-te.xpi 536158 BLAKE2B 
a9ea648a7ba5ab2aec2d5c4028729545bd6d09d26caa31d223e717a72fdb0ed9c693471155a8c03bc25f8f48fba2a6515c57ff7759db74cfab02342956dcbd82
 SHA512 
617c743b532a2d0e58a061b0cd0d905e2fa3f1e07f0c33743907249465673a8422a539216a539e05abe08598ea20eda2e7a0069ad875e129913ccc34fba21c31
+DIST firefox-115.2.0esr-th.xpi 632059 BLAKE2B 
63c4a31fb9659741157e74b0ada1b06cdb941498500e8e9655673cfa1a91e2c7ba9cb47a89e0cc247c7619d578abd40da2e9ea5741d1e262d172d2dffdcb6256
 SHA512 
d0991fa8b12df7f15a346f4bd1bb6563d013dabd6b1c591ed2c5d2e0bc29d4d3c372dae92e17a610844f3c96ac0bd526aee3391b3a4edd891c8e553c9fae5475
+DIST firefox-115.2.0esr-tl.xpi 511430 BLAKE2B 
50e725101cddb8d3e11ca9ec9bf07d634dee7f74f3759dbd79a54907316013c39a3a57033c2218454b6a0045e72379ba30d511466e64bf6bb4280a03f5fe2629
 SHA512 
35dbdcd5fcba2f50fa0db22325015dc64452999ef0abe8feb8c343fccd8360e7e45f298da22d08ecc6cf28c068a6614ae43c1332a9d12b078b74949bc2411e44
+DIST firefox-115.2.0esr-tr.xpi 573254 BLAKE2B 
d3c6b1c058389c60fea75e74bf449abe827b9f960360d30acef024b983e16da6ffbc3174fc5c0792ac55bc080b36e41cdf9b81402973140b2812c42cddae1afb
 SHA512 
2c1479f9ec723dc1db7ab691489add38255aaa55840c11681fe4e2199940c873938924d4c65ec646904e1b336f151965d294160726bd845c3d85f74f6058d031
+DIST firefox-115.2.0esr-trs.xpi 479677 BLAKE2B 
62b3d7b8a130fd65e1c57df8d428ad32699771025ff1eb36f2000f0cc292dd7c32434156be53f0148aaf81f705dcbe55e71b11386bf6454c931ded37f6d9a5db
 SHA512 
63bc2d7e96e13b078527006457db36398e5c81c54abbd59d545b11bd2a5b5d4f87ffe5efc303854cf5d0d51fd3b25a76d4d75ad0a2307dc2de07cd5dc2dfe8cf
+DIST firefox-115.2.0esr-uk.xpi 645034 BLAKE2B 
cc9786b8d2d805cf73f8620dbabdc2380f78a25375a32d9b3b601538f8c5b3c1afce6f0ea525180cffe59bbc474b71a325291cc4c6780c25e2dba3ddd4b00f91
 SHA512 
0000271608e8708face76695d288436e18d95745fc81825c39764cb77bd35d99d44eb759a450c346aef0698380945113f2f32320de8f21cf40a16ba9b1724e7c
+DIST firefox-115.2.0esr-ur.xpi 538790 BLAKE2B 
c0eed937cda899c8c48409fe5d37d34c28f9763ef63e56ddad50a57bf6ae9ac2058e8a5aaddca3eeea37c29d349ffafcabffd85d5859c3adf5bda0003c91e9e3
 SHA512 
d4929d225d97a818cf9e189e57d2b72cc8c0f10a386eef030fabaf3a4f9c935a64c3e83918a10de3ce89ef9b0fd68aea0c61d1bbad18cfc484105d41845d118f
+DIST firefox-115.2.0esr-uz.xpi 461771 BLAKE2B 
2dd492f0fa0af6a223ef63a2d43f1409efea0aa6276cd36728c8168440698402dd5853451ea08cb3feeed126e2fbb9d42da170e85556f10c664a561feb12b81d
 SHA512 
611d2e7a27c778f2e23a4209017f1dee82b30e0fe9316fe9e6bd3a67fa32b9aea0f9098c7085c75697bdd167190136cff611ba67a3aa3a6909911bd5441fb1d9
+DIST firefox-115.2.0esr-vi.xpi 595545 BLAKE2B 
55ce65de87530e52fc751fb598c9a086728f0e09e1aa1e651d5813e485916a51444489a941f95487a40dbbe14f94879470793834445384f6cedde4eecc720abb
 SHA512 
599535b0d6ab71f7a375c0a851537d5dcd7a1e83088a7eb9e95cde3a3346f08aa0105b0579657e3a181773ce61e69e2c6ba319f7460c68013917be15b3841ff6
+DIST firefox-115.2.0esr-xh.xpi 402421 BLAKE2B 
5d45c37abea39263c2065580214e4a62b143c7ad4501221c9129b17f5e34dd4d66dbf06ab380ba1f1090895867ca6dff850983e830ab8edb1037c5adac7e62a7
 SHA512 
c9faf3a863e98f8b75cb44ce427c95f2bf637ce330603aebe4e9c305abf04cc6002853c74903b114b066bafed7de760d763b4d97f40c9571207551da9327c7d0
+DIST firefox-115.2.0esr-zh-CN.xpi 595490 BLAKE2B 
25c4d573da19934dae62f8a8535222b9f8ba202ce9ae288c5b43cea5fcd3b4f90df4609661fc2b3593c898690fe0f8e92864c2e0c4a9bea6b8cd20b6aeea9645
 SHA512 
94e97e86fc3c609530d058f022aaa22188ad0af0320a75dd1bd43639c5a289faba50cefa68f666264da569fc9c5ccba77481e40ec55c2495cd8f4b9cf2768a01
+DIST firefox-115.2.0esr-zh-TW.xpi 597814 BLAKE2B 
26953b3979ece7e5fe69543453b327799062798b474da14fb07099bc3801aa0eb3aefc1f694ab27f2b4dcab539d2c71d6ae5892ebb8cee24fc79d1d3255d8f8f
 SHA512 
92a64faf2552f7fd381b62348525209957d7cd8121c70066391d7a5a23c2f84d44c2ae26db36c8f4d0d4741083fa9bab746a893be5954fb3f6329ec2005b1094
+DIST firefox-115.2.0esr.source.tar.xz 514055028 BLAKE2B 
3ed4a46c2179b0595ac5ee1619f965f2c84e5b4f900341a2b93fe5dda7c81acbdc878763c0432564dfd84d99776cc8defdbba4cb9a317be8c06b3b02f6ec867c
 SHA512 
df3b4efd9607e8eb4932717760c865eb31ac7a96246cb4385190c33316c9595e0793a1f3c45ebb9674a9ba4fce98d83f71b063bef09ef307d92d1cd78d30d812
 DIST firefox-115esr-patches-04.tar.xz 14608 BLAKE2B 
78143b2ed2f0c71bef84c26ebbb9f29912e6d8bb2f513cf95f5d97203efb556cb339bbb1f61666300786eb5b1f93294816481a0396bd8acc497c9f51b138376a
 SHA512 
f6b07b9f94a79c766b864c4f73044dfd6aea5faf16e742202ca78f4f6e0399a71fc3dcf4d40d4dd67d3f13612c26a5e1a5f845e6892901c0ee6168aabf131f79
+DIST firefox-115esr-patches-05.tar.xz 15000 BLAKE2B 
e6e6918d182100616095119f1da7fd6ddc8fa3dae236d075292451f2b2ab1be7b16620eb17f01e5c10fc81324c81b25c596b9e99e7d7745a7ac0b22a27ae3e97
 SHA512 
ccda6860d885837c59e7ee4612bdd72dedcbc0dc5d6cf7d40dc6524591b67a2d165a251a13662bf1dd3995ffe392861a73bc08bc606a2320de5a5d8880086314
 DIST firefox-116-patches-05.tar.xz 28476 BLAKE2B 
cf57f0d52afbdc30469d8bb64ba34f6aaedc0b77283906f36057f08da103c127778663b1826dec677784b55798cf2b62f16791c0f430e2913dfdc5970db65b7d
 SHA512 
eec4be4d3aa19249deb94619b9e98a7582ffba434a51e0595c89e0e02d7c3867ee2862df376093736751652902860c58725b8a73ed8d4f8171a9edbab0ab5cdd
 DIST firefox-116.0.3-ach.xpi 440326 BLAKE2B 
56cc69127cd3b8abe717bc2a6636dd41ef76fa8e0cf69fdca067bdf14bd9926584207383e040c7eef527ae7be3f0f05f0a30b608550f6432bd3d46cb98a06a8c
 SHA512 
4d45e59a30d7fd47366c3102472a15fd385ce9d1ff314eb91df45f0683d319a9ea0b9c6fbc261015f017f1c30728a6e6b3a8da9d49b7972abc0350d604fa5672
 DIST firefox-116.0.3-af.xpi 401615 BLAKE2B 
f3f77e3b4476525bc25c9fde7570afc28c62072ea7f3e3c44e0afd2619762eff5563d4ede3b99a4ffdc328eef4375245e405ba2499841f56291485d423dd6755
 SHA512 
a4ae9689730d18a039b849a5e19c06821a36b59db89d838f0dbec5fbb75c8b17578cc5ba162d1b0976c7d770df352d6619a6660d2f9d372d222e99179888a3ca

diff --git a/www-client/firefox/firefox-115.2.0.ebuild 
b/www-client/firefox/firefox-115.2.0.ebuild
new file mode 100644
index 000000000000..c2cced93328c
--- /dev/null
+++ b/www-client/firefox/firefox-115.2.0.ebuild
@@ -0,0 +1,1407 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-05.tar.xz"
+
+LLVM_MAX_SLOT=16
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=yes
+
+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="esr"
+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:rapid
+       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
+                               virtual/rust:0/llvm-16
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-16*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+       )
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.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
+               )
+               !X? (
+                       >=gui-libs/wlroots-0.15.1-r1[tinywl]
+                       x11-misc/xkeyboard-config
+               )
+       )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.90
+       >=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= )
+       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}
+       hwaccel? (
+               media-video/libva-utils
+               sys-apps/pciutils
+       )
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+       MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+       if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang && ! tc-ld-is-mold ; then
+               if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+                       einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! 
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use 
LLVM slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               fi
+       fi
+
+       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       af ar ast be bg br ca cak cs cy da de dsb
+       el en-CA en-GB en-US es-AR es-ES et eu
+       fi fr fy-NL ga-IE gd gl he hr hsb hu
+       id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+       pa-IN pl pt-BR pt-PT rm ro ru
+       sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+       # https://bugs.gentoo.org/587334
+       local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+               fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+       )
+
+       local lang xflag
+       for lang in "${MOZ_LANGS[@]}" ; do
+               # en and en_US are handled internally
+               if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+                       continue
+               fi
+
+               # strip region subtag if $lang is in the list
+               if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+                       xflag=${lang%%-*}
+               else
+                       xflag=${lang}
+               fi
+
+               SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+               SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
+               SRC_URI+=" )"
+               IUSE+=" l10n_${xflag/[_@]/-}"
+       done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -ne 1 ]] ; then
+               die "${FUNCNAME} requires exact one argument"
+       fi
+
+       einfo "Clearing cargo checksums for ${1} ..."
+
+       sed -i \
+               -e 's/\("files":{\)[^}]*/\1/' \
+               "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+               || die
+}
+
+moz_install_xpi() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local DESTDIR=${1}
+       shift
+
+       insinto "${DESTDIR}"
+
+       local emid xpi_file xpi_tmp_dir
+       for xpi_file in "${@}" ; do
+               emid=
+               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+               # Unpack XPI
+               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+               # Determine extension ID
+               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
+               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
+               else
+                       die "failed to determine extension id"
+               fi
+
+               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+               newins "${xpi_file}" "${emid}.xpi"
+       done
+}
+
+mozconfig_add_options_ac() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_add_options_mk() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_use_enable() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_enable "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+mozconfig_use_with() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_with "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', 
and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold 
linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+       local out
+
+       # Ensure ld output is in English.
+       local -x LC_ALL=C
+
+       # First check the linker directly.
+       out=$($(tc-getLD "$@") --version 2>&1)
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # Then see if they're selecting mold via compiler flags.
+       # Note: We're assuming they're using LDFLAGS to hold the
+       # options and not CFLAGS/CXXFLAGS.
+       local base="${T}/test-tc-linker"
+       cat <<-EOF > "${base}.c"
+       int main() { return 0; }
+       EOF
+       out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version 
"${base}.c" -o "${base}" 2>&1)
+       rm -f "${base}"*
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # No mold here!
+       return 1
+}
+
+virtwl() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+       [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to 
be set; try xdg_environment_reset"
+       tinywl -h >/dev/null || die 'tinywl -h failed'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+       local r=$?
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+       return $r
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto && tc-ld-is-lld ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if use pgo ; then
+                       # Update 105.0: "/proc/self/oom_score_adj" isn't enough 
anymore with pgo, but not sure
+                       # whether that's due to better OOM handling by Firefox 
(bmo#1771712), or portage
+                       # (PORTAGE_SCHEDULING_POLICY) update...
+                       addpredict /proc
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       if use lto; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       if ! use ppc64; then
+               rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+
+       # 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 ..."
+
+               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
+       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-legacy-profile-creation \
+               --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-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
+
+       # 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 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}-esr.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
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+               show_normandy_information=yes
+       fi
+
+       if [[ -n "${show_doh_information}" ]] ; then
+               elog
+               elog "Note regarding Trusted Recursive Resolver aka 
DNS-over-HTTPS (DoH):"
+               elog "Due to privacy concerns (encrypting DNS might be a good 
thing, sending all"
+               elog "DNS traffic to Cloudflare by default is not a good idea 
and applications"
+               elog "should respect OS configured settings), 
\"network.trr.mode\" was set to 5"
+               elog "(\"Off by choice\") by default."
+               elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+       fi
+
+       # bug 713782
+       if [[ -n "${show_normandy_information}" ]] ; then
+               elog
+               elog "Upstream operates a service named Normandy which allows 
Mozilla to"
+               elog "push changes for default settings or even install new 
add-ons remotely."
+               elog "While this can be useful to address problems like 
'Armagadd-on 2.0' or"
+               elog "revert previous decisions to disable TLS 1.0/1.1, privacy 
and security"
+               elog "concerns prevail, which is why we have switched off the 
use of this"
+               elog "service by default."
+               elog
+               elog "To re-enable this service set"
+               elog
+               elog "    app.normandy.enabled=true"
+               elog
+               elog "in about:config."
+       fi
+
+       # 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 use hwaccel && has_version "x11-drivers/nvidia-drivers"; then
+               optfeature "hardware acceleration with NVIDIA cards" 
media-libs/nvidia-vaapi-driver
+       fi
+
+       if ! has_version "sys-libs/glibc"; then
+               elog
+               elog "glibc not found! You won't be able to play DRM content."
+               elog "See Gentoo bug #910309 or upstream bug #1843683."
+               elog
+       fi
+}

Reply via email to