commit:     2132eaa6af0e7fb0ad14fa852fd1e5c80352ba9e
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 10 10:21:56 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jul 10 10:22:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2132eaa6

www-client/firefox: add 115.13.0

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

 www-client/firefox/Manifest                |  100 ++
 www-client/firefox/firefox-115.13.0.ebuild | 1414 ++++++++++++++++++++++++++++
 2 files changed, 1514 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 8629aa9d46c5..0af19ce0958d 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -198,6 +198,106 @@ DIST firefox-115.12.0esr-xh.xpi 414802 BLAKE2B 
35b5cabfb1830b21a34e7c57357fab537
 DIST firefox-115.12.0esr-zh-CN.xpi 650834 BLAKE2B 
e5b6e072a8609aa65c988dcff5824010276c372f12938e860aa50c5d0cb75de649a1cf2e035c275419435ca69bdd95550130c6de4e3fab80231d40b5ada995ab
 SHA512 
bfa4cd5b8ca8419a0ccb19ffbb7fc7156283bbb784944bbdf1102b631cea372ceddb362cf8181a57bf8587bbaaa28deed78c0ce288b4d8a09145e047ef82ed95
 DIST firefox-115.12.0esr-zh-TW.xpi 653669 BLAKE2B 
e5b95c1f07618ea7ccc285e77eb92ed92ae3573af29ec29aec33e1f7e516fbb7df060de47b0f521df816faba193575f619cf937ef378f594f347dd7235b393ad
 SHA512 
030d7a603010447d82d9670babda138f44f39b7c1370c0447124dcdcf4bc90086b973ee8664406b4d97fa292cfc692ec31732e9fead685a4fe1696c324431045
 DIST firefox-115.12.0esr.source.tar.xz 505219784 BLAKE2B 
6d2cc80daca9977f73ea0c0fe7e7cac999f2d7a99c324332d69d9438a6d954fe72ffb35e4df4c2a86abcdc94231c4847bb3e64dd612240f8a6d86e63abdb1be2
 SHA512 
d98475061d870e0f3aa920b7c0b9b0c1cbdb3f4102f760f1d1c5ea3e45e216c673c8d3662501e7e78af4950a003a519e94b57e9b1eda8d615c159cdf62130e89
+DIST firefox-115.13.0esr-ach.xpi 458869 BLAKE2B 
766ff00e9e84e3b51fb84ca98219b606bf0cf5c5b7a3217a19653db39dabd16d8f8819d1492b216b18b2a9fdab7207f79f2b56c71b27cf51b1ab8959f5855aca
 SHA512 
629bc6c9cbc00448467a1590588c04e6264713669e38f3b3162586c2bafec5908780b76d794b20dd8b511e6b0d652ab81b6a9d015b0637d2f63937d071797ccb
+DIST firefox-115.13.0esr-af.xpi 415050 BLAKE2B 
2ff8b6ee58285be981cfe3406a6dd7d7f3f5f4a5fec849916c1c0cb415962de5f81c020a26b9965fd8492db4cc46f5120b3185c7d62dda0e1cbb94a7f68a4d1a
 SHA512 
c29eb1c6f2baab48a6a1908071ba42281662709f717b0cdd9fd54d5fdaf4f4e34c23a0c7a69daed957957f9b651b554a17c7573cc5a12d4676c7f97b0bf9d68a
+DIST firefox-115.13.0esr-an.xpi 499423 BLAKE2B 
f72367ee01c38c4958c4416c1a3f54b2dcca90c93fe17311065e47e9c465a3cf2c3e363baf8720f7a261c3f92be5e4622ecf17ea4dc0cbeda40695a3d61bbf62
 SHA512 
2a6f4da626d74cd2dc05e3ec42fc063c631bdb6b70413fbc66ce7b890118219501e6e237b53f51393d9b12fef81f39afac7cc4a3d4f4dcae927874f10e006701
+DIST firefox-115.13.0esr-ar.xpi 605444 BLAKE2B 
dc393bf862d39c7e72dc1edc31ae1675b0f907ce5a37c8eb8278b448c63215745a3533177a8e6b71b774b829a5947ad55549eb71c90b6a9e98d3d46d6c50b06a
 SHA512 
ec5da67bc4e210a9887eb503b1e27933e3cf63489f0c31290a7c949ec6299b2135e1e8ddacffd7220c2e16da4c3d001a2eec1d4cf80a8693d94eb71001fc8823
+DIST firefox-115.13.0esr-ast.xpi 491184 BLAKE2B 
5dcfcc1dcb664c78d71e22e8f38d13ad80cf6602071b601445477dc33887ae1883761e6c536341a59d195422884cf5d481e9a9692c9945672debdf654e78292a
 SHA512 
3fc92b689f80672c0b5a97eaaabcc242aa42cf3e33aaf9c93e444c45a7e0dfd97baf139c937e11a50d35ee960bea91bbe53125942209bc1f9face75288beec3d
+DIST firefox-115.13.0esr-az.xpi 485937 BLAKE2B 
f65761f146ae48b0704a3ab4dc34f45ac4c7374313fcfeb838c1f23b577200bc243f2f7c2fd6ce477aa0a85ef0425f26bb30a28c84904385885b32bb41736050
 SHA512 
380d055cb9b3919061a8e23f804d39ce24fbc135a0d963911b256ccebee57a2bf6af99f24b4acd7c70c44b7e3f9ca3718701968cd72b16c39f3afc225bd0b395
+DIST firefox-115.13.0esr-be.xpi 711827 BLAKE2B 
16dfcfe555f23037b2d5360c7f3109fc69d10003e6de4a087f8aabe48639039396bddb06ae7da2082b45cf188897cffefa6bea4366816db3a1bc8f3dd3d3863b
 SHA512 
fff6b8c7ea887208ec541822a1ab073f0303df6aaace84c6c0cfa682a538906d9a67ba103690adbda920dd0394d5ecc249765781f1304e6fc2ae266a9ea86ae3
+DIST firefox-115.13.0esr-bg.xpi 597471 BLAKE2B 
d475045b3abac2492f4316e21bd1892eb06656162ea6bfe93bf34a1f3b052373f72c85ca33a20a7c7afb35543ea4e1c9a520c622c11f287b0b1ce049ca34a203
 SHA512 
82b83fc0891fc3c4101fdcf046516f466c9d36227e54783e30252bc0f8d1647394f4c667d1c473c4f7568a0094a84c1216acaa32b9604704e7a0d4bcebab2d1e
+DIST firefox-115.13.0esr-bn.xpi 576186 BLAKE2B 
68de38e08f980f61f9d228df018c9af388622807f032e98ac453a2cc0fb0dc22ba5cfa0421c850da2dac70d30f2bdf37ce20e8f08fc42c1a35b73e0ac23669c5
 SHA512 
21110dada66d3dc26bfe92f771b487fc39374af0b17e6cb66dd68c0613471dacf1e04aa59fa0c3c6d870114b85d0232ac339143de561ddf346255182e83183ef
+DIST firefox-115.13.0esr-br.xpi 584021 BLAKE2B 
aea8cf321ac9625979f6d77643b9a5cc83dd965d7124a18e447ed182fe5fda37ecf5654bcfa5368df9cd63574a9376fe9c802c5dcf3a72a5d1c3cbeecf0405eb
 SHA512 
0e58cfdfb3154caef8dfd3e4d826e58eac33cb8d296cd362c715bea383dcb74bd4c37363d23752a29614abd5542f76c3f78a6c5f31d0567393073f0d8f806532
+DIST firefox-115.13.0esr-bs.xpi 496142 BLAKE2B 
59f4515d37ebc787b2d612d9aa556ddac4c5f8122b2e7d0e783add521215d882bcad4162ef9faed133d47d3e60bba6cc5d6c9c9ff7360811396d620ad63c9fa0
 SHA512 
a85ddc738c814514615b9d9ec4c3671ffbdb6bc8885131305aa55ab592b1041fa5c22790204c1f79c788f8af5f1fa9235cf211c3df863e2217bc409b179443ad
+DIST firefox-115.13.0esr-ca-valencia.xpi 539103 BLAKE2B 
349e7c4054fd3e87a4a0e60424a9cb9d3c0187c3dab5fc4a4b6cf858eb302c66d170783260a8b6533a67666e5c525925851e6adcd28c561eb73ffe5e99e70f1e
 SHA512 
2c604454dde3d95c2b37aff51d80011d10bd6dd26b0055751239878d740596167ba48536289289e34a0384a7344c042b863aba4e204f631a995a9d39e4c99d47
+DIST firefox-115.13.0esr-ca.xpi 578624 BLAKE2B 
57daedb34bcea839d5000b18087627b05a03c4d7151dfa62ab1b36a430d1381ce4219bf5a54d231ce8ff5721d29006ee4e2d0186c897f7b2db80f2b48283b5bc
 SHA512 
489a62c1a98e5729bfb5e76f5ca235c7afec3c20d3b973f3ef2d8760508f866e5ef377f3e5f7ce2fe2b573e4cff979bac7728968ea8c1765ab68fa2953ad29bc
+DIST firefox-115.13.0esr-cak.xpi 586161 BLAKE2B 
cc408805fcf450a1318edf8863e2050afaf5b91fe74213bed8fd37357cec4bfe98580ffd7c9a712aed0b548b04938f10890272c8a75918a5058671c8aee1fc99
 SHA512 
9861c6e7fb57b2bd3e24dbe56769de03c2ff0d41ddeb39ac81158b0942b11749faab41312c92688722ea58f054bd2d4a7d7a79199f7c3418ecb8c2ee1e786352
+DIST firefox-115.13.0esr-cs.xpi 655607 BLAKE2B 
2cf82a0a42f53b6c5568a83cf983eb1f62071cd97dcc8eddcbe003c316de66584210183ce52e1c9cbc1338f4f0e39c269ee36a909548d43335ec432f13f22dd0
 SHA512 
65cd2a8c6ec128385c04e831bcfd91f4802838b164992dfdb568e2792c9308f49258f4ef8b8a13dafb1e313d369ac872628c04cad7ee69d9ae7820642c370627
+DIST firefox-115.13.0esr-cy.xpi 619969 BLAKE2B 
9f82972e92e4b3847ec1bb50ebdb414f61b9753765c7d0825c0eb2086de41d08772dc66e26afbb609edcd276e8af74b6742332351d35397de18862df212d0959
 SHA512 
8b0ac22d9499f211f7cfd4e4ab4e6073ac6fe3f566cb9f500f036cfb66d40770b42bca8f71a1e491eab4a91674bbd1bda75c34a8c538de51c40d27456c207cc6
+DIST firefox-115.13.0esr-da.xpi 608727 BLAKE2B 
19ddc06716926eb8eff49801ad7592d77e7609ef693dde5003329014549a1dfccee25e8320c7b685b519f60ec5a4527b5e8c109f561fcfe98db0ec06438119d5
 SHA512 
8adf6d2a81712a5928eed7f2cc06e1fba86e7f69e10c7dafb337f5fd5fb29c7444b5db98f3585079015b98bc4ce6a3fd41d5233c2280375a77c934ed1d5f2481
+DIST firefox-115.13.0esr-de.xpi 629623 BLAKE2B 
189f478aef796fb348cca80d4d03c1f8315996de52bf08583b92b80daeb1e7c64acdee3964d1ea4359928e13f7d4d8624d49b95185895174b34ba95bef1a022f
 SHA512 
f21a1ec2622adabf3ecb3b8d0ae8b5744e1d17ff2b903293121f0454b28d18cbd90ee2d6b960805545141e2914daae1f6b17fce50c4a536a3cd56de234e2d8c5
+DIST firefox-115.13.0esr-dsb.xpi 648138 BLAKE2B 
e733cca2cc036b568258f48ba62b2fd6d152762eaf2a05456a9b7596265692df095638e067466252f8777cba5c52a7d17bdc7e743bb819139e7f90eaea0f1480
 SHA512 
bb76262dd5265674f79b8a61064f056cb62259ebed55ea2e2e2e026ca9fc0f80dd0bdee9fa5884cf0650df26e625de448e3605366b374229b441a2cfa1b14293
+DIST firefox-115.13.0esr-el.xpi 729621 BLAKE2B 
73f1609e92aec59fc5e2d0d3f977f76840ed19781142e67f5d4c3e5e81ede8744b3316f74b97e052895775170b638986b9f264d7ffdce7e0bfe3fb3d4f2709c1
 SHA512 
0ec261dbcd0ddfcc4bae0d404410f51684cbee3e80d1846b6c15e35e9accf56377b1263b120a0cf7fdfb23f1459731dd8e62ea90798169d1a767aca4dde6576e
+DIST firefox-115.13.0esr-en-CA.xpi 580169 BLAKE2B 
ddd65e8df09c0abe16d55480fde4d7f84377103236118137936cc1e5b8337c65c00119fb2b55bebbf7aa63d8b77dd8f633545f095528f949aad1207608f0dca9
 SHA512 
8ea328ff031092ed1c28f76d521fea12b665ef3fd31d7589b4aa0b2b3e92ab36998621ed5f9ebf1e64bcb8216cfd5659e45aeaf7234ea03ad7476268e93ccb7e
+DIST firefox-115.13.0esr-en-GB.xpi 582349 BLAKE2B 
cde45b48a2c85831f8cb00f36d15816bf4b9f1970d4930d1d4bacdc0d13fba4d1b38a02143d96b252a8569e0ef9c49782697840b01d068cec085297b18f7b259
 SHA512 
5586a5e366b9e550c9e83a9916e7abe03d0dbbf78c48a95aa305d43371e7015bf35c14d7d14e2c5648f00b20f81050a86259ee55bf341136cfa0c6f4a5e4f2f6
+DIST firefox-115.13.0esr-eo.xpi 609842 BLAKE2B 
b847fdd018c4811f9d5dbdebfc75b9960fd7546ee2286cd4898af157de24c40ca3daa2bf2ea2a613bb2ed892c0eb6b2c38dc59f844fad2d3604a23793ba53cda
 SHA512 
b039bab4f62624b5c8a8b3766e0f3fddeaa19391dca1af6d14385e496fae41b2d61785ecd84ece3ca97c8c8de290dca4a9b45763b45230c0e558ee9386ec5cf6
+DIST firefox-115.13.0esr-es-AR.xpi 625238 BLAKE2B 
a805fe6bfee5855d79ac6de0b6320f08f4d559525de8a16efbfe9c9e3603edad1a49c67a62c9de7c3c6b13b1a68070ad07d7b133667270a1e0461aef51fc03fe
 SHA512 
6b1a16a93c2dad80391afa9f8fb469ccbc79312a6394f9dd4c00bf32a85dd2e41065a44b4344d7d501d73bfffbdaf8188e8d7345aa926e6e86e5c59ce99c6d4c
+DIST firefox-115.13.0esr-es-CL.xpi 623465 BLAKE2B 
4606593ab9cd4e8c92915d0dbe91c237f0c5b00c5271255fefa8cac639f235d97937bf98fef26bac6eec089f6a1168d970caedd219496f179f260c35a707a198
 SHA512 
fef906e8323b2c3a62010df983d3db4dab9fa7556ebc51a5109c11f040b11ba336c025c3b32d26f07d52b69f88195cc83141fc9965590d61ee70ba2f8447400f
+DIST firefox-115.13.0esr-es-ES.xpi 618304 BLAKE2B 
dd001755d1457bf4187591922914fb426e2ec7ef6a1a86e4c0323f3563795a130ad29fb1c2ae4946458ee0282b4784e0ad63cb9e1c38c6b9cab2fac4e748f306
 SHA512 
ff637b66e777e2df0c9fe0561dd464733960d38584081eaa07f74e3d46a0f040f670ef507f2180ab9b25a710e950f8f93cb3436a855b957ca092ecbd42f0f805
+DIST firefox-115.13.0esr-es-MX.xpi 584255 BLAKE2B 
4bc95b99500a5c729ec3ce4ad2d4bd170222d9e3fb9734b743280ba99aba5503596d68caff19f0580384bb6c51c04464ef1501bd46654fed155b28e7b5505e98
 SHA512 
bad7d867372f98c82edf61427116cfb9c09b121bbf43bb93c61fd60788c68cef7c97793f94c01f92f2db443bdf3d9d5edaeb3c47734c7d47ec4bd22e6a363a67
+DIST firefox-115.13.0esr-et.xpi 532879 BLAKE2B 
e65d4a7675ff2971e2dc550ca296b45a62107d732a81f1070b4bd2266961f342bc9b5dcd309c4baffb3279be8bf61734aec14aa5ce209b2d82b773148632dc42
 SHA512 
50f0b61145127f511743371332311ba3a2b18e473226f45f193be46146a0c0af276914c59c3612236b6989a6699bcaa901437d3cfe5563f8cc579d4e36ddbd48
+DIST firefox-115.13.0esr-eu.xpi 591804 BLAKE2B 
1e5ed62b53f3b7d6bf465968bcec781447b8d39049368672d86b7eb43bf7b019c1d19bb34c991e9022f856b348ff00e7f2d7c5fae71388231b7e2c44fb1b6dca
 SHA512 
4def2322424a4d61d44ab87e6076868b33a390006ee3a47233888de5e67d184c103b990eefce790628161a6585a63c023f702d7fefff41e06a0d4ed4647e9dd3
+DIST firefox-115.13.0esr-fa.xpi 584193 BLAKE2B 
c1de53fac8982856a128c7825aaedb77267903f4ca3cfbe8ca9ce88f0a418d02e144c0b6a2d70606c39fa9dc758131f01af949e5072809da1c704830c60f5c95
 SHA512 
d3931ecdc5bac7c3bef39420d5d9a3b81fafdc4cfd3eb7b798d78a7bc5dc3214bdb18bffd5f947cec858e1457c369f445e9336ea28f6d22b28bedf56e4bce6f6
+DIST firefox-115.13.0esr-ff.xpi 471600 BLAKE2B 
d651f9b6b3b24f948084ed2379b741c57a7d7c1706efefe952959b70df96f65a1d74aff0972e5bcf70aead42f286e3ae5dca4b73abf7f7132f9580292008596a
 SHA512 
b0e323bda0bfee0925a150196b961d0030216882af68d9d66a8ffaeae56b679e79dde27fe4be8cab7ad60a48000847042f8b1274966f47d0a5035ec02e6584ad
+DIST firefox-115.13.0esr-fi.xpi 601957 BLAKE2B 
464af892e7acf5fe7e1dde0f5b35b380b302008237f2fdb23acd4db26c55724f5d327688bbd58f410c6c9585672b9e3f7404e246ad1a4009191959c3b1dfc16e
 SHA512 
2beb3e0b7730bf3df85bfd9e62457b85119688a68b704f5e430264bc317eb7b0580b895a792d21057e799928a2a3d2f5f7aa0bc0dfe9ff8b6dc1933e82a6407a
+DIST firefox-115.13.0esr-fr.xpi 638171 BLAKE2B 
efd3d5882516db38a35d998ed61fd11fa73758f38d1aa8768a6ff1fcef390346cd3a54359076da60be0e1cdbf8a4683edcc66bf427843d26c533d089f90cdd18
 SHA512 
6ae30c58ad81b408188d5ac938f4d3c5fded4940eb3c2a02313670daa5992c029ad9cdd3b831cff4d06f51b73f06083e4765bcf329ba10ec596d2d18e25a58ab
+DIST firefox-115.13.0esr-fur.xpi 630143 BLAKE2B 
b1d55fa9cfc3386f2a4adc35215375f647b20619581831eeefdaf32acc540ddfda2a71ac04ccf85d6cc152a8dcbe7c08654bb4e66d264ca4748f330ada0f34cb
 SHA512 
16dab1bf6573fbbb3159930298a855fc8699ef5233f34e3cc877125aa8e0ff8eacdcd58dde7257face95bb19f7493449e85f8bb3ce685dc48768a484b63b40eb
+DIST firefox-115.13.0esr-fy-NL.xpi 620747 BLAKE2B 
86bd94876344234d7f47610de7f530d6c0c4b45cca233334838acc62d917016f6954b283f8fc28b1567bd1c1ada3577e41a334d23733fe91ca98a9c926c3db68
 SHA512 
8bbc05ec34f5716aea3d10c370fe0bccf3e9d8fa64935ada974f5166edb393957be02ce0ac89bdf544fb1aa24c96152d6b06ca34c07c5369f8e7dfdc052044a3
+DIST firefox-115.13.0esr-ga-IE.xpi 467487 BLAKE2B 
eaf02d92932eab627fbb4b9dc4777adad0a4de79e87a8a7e0a6adb7615dad928c479060702a164bc82a9d98f540470ac9a45137f5d6209e20886edc3c7497ca4
 SHA512 
8f6b0e68c57d866315226783599422c6baf494b2dc7203132d95d5017ae84de925671361ff72db85d6b3aad42df832d35c5c30008db0956bda93a68b32062312
+DIST firefox-115.13.0esr-gd.xpi 589810 BLAKE2B 
f1cfeb41696849dbcc44773194519930b3cdbe8676e960124f8ffea1dae9bd6c530bb6f5859a086d9e16244ae49a89c0d895a96a879a8f9d361e466f5b117e7a
 SHA512 
fd5066007811fce84f800fb76acf5f02f6386e8fcc351a4b9ea153fba8811c1292e14ec778268255d818813309ee81e46151081c466aa0b85db6aafb8dd9571a
+DIST firefox-115.13.0esr-gl.xpi 599812 BLAKE2B 
5ca1db00fad370d8577f3744c9b12156a05f7dca5a9fb0a91c854ab4452024e86b7aa7fe3bdc98aa1f671f45930fe6f0b7779342f20687eb0783e6a71a29c595
 SHA512 
8d89f1114e81cc216886cad85accf19fa6163cd9fdaba122f354785417982ab53046605728dc311f3091852407e9b687defbfca3cf4fec3fea30da643555e7a8
+DIST firefox-115.13.0esr-gn.xpi 635256 BLAKE2B 
db1f84038d0f7a5e0443b478df3d42e1ec36241bc458bdbc7918438e94af01cd83ab94df22338b63009705895c564e2c33738332fd7acd0e6c988636f4da8c05
 SHA512 
60c8d66c1dabe613355d4277f163f5e35f5d9a89b5a2c9527d7eb0d0735fb3690b1b874c4920a6b165f29862736002038b9674a604f152ee0961bf5882185af7
+DIST firefox-115.13.0esr-gu-IN.xpi 523232 BLAKE2B 
cc45a0a05c169381a32492ca175cd7b054ca4d2990fc781bb0fbfb8c56768dbbc4db56e45950cf735355a57af6ecad4b2f06046c05409388e93de08437078b81
 SHA512 
73862171a464a5a480308b614bb264ccfb51b96c4a3a02f145f76836c0cb8b0c0cfbc8f0b7d536f639ddbf43a0f56437cbd366319b64b3b7fbcf69e01ab58ce0
+DIST firefox-115.13.0esr-he.xpi 626729 BLAKE2B 
58faeb11b0403cd420a7c67edbdf177eac59a7bfcc3bd722ff07da99f5e5dc6aa6d2ec10631de857e8818ce7899a3b4fadbc0e857a604374c148332684672b67
 SHA512 
b6fe3216adea48fa1fff8a5a564916f47b6e4c557f3df090064f3378b65ea8bfd99dc3c12db5e2a40cd868a7ca7b2e72fec77549b43696de4afcd7f644a161c8
+DIST firefox-115.13.0esr-hi-IN.xpi 559902 BLAKE2B 
a826402bc9ac502c12926f05345979e5380b10d4817f9bb865815ee9ae1cce84622577a465987766a6f96068eb0b6944709b848b84c0ff21291dd817128e3a37
 SHA512 
f461f8cd826967ec83556a2c2fe60c5f45ce194aaf632b85fd241c3442f6d16528256e6e3a6f9f7c8297daaea5b216fbb52d237012229c7cbac7dbf07f3f96e7
+DIST firefox-115.13.0esr-hr.xpi 550267 BLAKE2B 
19b332c4e6941a95b09090d27fa9c0b4f95b9dfc8da512d1ca7eb65bb76a70053384331e9ac171b336ae15aa55c5c50445af86ef8b26aebb0e5e8423eff570b3
 SHA512 
e380014b905b1fcb92d6c4715eadc7777b011c7832144d27e6f462dd63c72d5bb3072b1ecf13fc9917c7f73602bccfa32133cb747b130307bbebffdee27a9948
+DIST firefox-115.13.0esr-hsb.xpi 644212 BLAKE2B 
61e3f7a19bb5fa12ccbb525f260defbbf1b96fa63f01356e69069a01b47755595be471453bf429b9d5a04b8793d266c6a153a8e81eec427f0637ad895ae5c057
 SHA512 
d91861b2880f3ddc1a76dc42d3d7813ec325aa6ccc6c6d725a93f71269aee0c8f6e7586380b1683c3741f29d8d5acf2ed119b7e0561d2679e92668a6442c0634
+DIST firefox-115.13.0esr-hu.xpi 648263 BLAKE2B 
157fe516db5a356be123001ba81e21ad8af7aef42848d6f009b49dc23cbcc84538bd4397bc5d0c2dc1e3bb3c5f84ab8e09fcad2cd4ed04a81e108173b3ebdbf6
 SHA512 
fa3cac33a4bbda77a7f2e987f5b41c9746196b5165d83ac9072ef83ab54bba2768dd06d0d4fdb39ee8f5ae89644b67153a1f062c7c9ed0585e512646a6e56363
+DIST firefox-115.13.0esr-hy-AM.xpi 647113 BLAKE2B 
0b07bec9f4810d9ee9283c70fc927262c53fbd7caf8f90209e0778e449414918a959fb86db27338ccb0129b10cc93a052ad7aa83a17f9f5f8eaf2e7a6da68b33
 SHA512 
fa6d691f57842d5c5de51bf6c5e3b30f979c048022ad352465bb324cc2fdd03afeeacd611d500f118bca6d516171f7476da8eab270f17eaa49a856f4fb73ae6f
+DIST firefox-115.13.0esr-ia.xpi 607449 BLAKE2B 
e5cbc8dd0b6e8d23261cf07814909c8b4c98c74f395c4cfe4dcf8c0019ad9327fecf90f6e41a2af17a1de8ee28572ee384925ed82736f935228d7e9513fde2b3
 SHA512 
bff9484a9d06d1bc716ff4a78955cfc5c46449332be4ecda2ade02217b8a0c61ef46226999a60ef78fd9b796277cce7312476408ecee0a0ee30c8eb738f684ed
+DIST firefox-115.13.0esr-id.xpi 567403 BLAKE2B 
59a0ddb6c863e76cce51913a088631243a381422871d483e44162718d1a300ef96aced587fd196c38db555549126ace8a03a1fef598708cbb747f2be2ff8b608
 SHA512 
88ac0af91f33f40f6290538c0735c1dd0ff02214c6a5d4ade78dee4f571838c7191f91e5da7f69c5da831856f13654290fb1d735cfa257769c812ad7165a3cf4
+DIST firefox-115.13.0esr-is.xpi 610523 BLAKE2B 
6e8292d2342d6133da1fac45e2b39314aaae6a14a037d00c8bf3ef4f7ba37a495a37903d04821034b5425b372f0b7d51e2891de43bd2892dc793099c51809fd8
 SHA512 
a6ee6eb5cc54cf2cb86bcaf872bbef7932056a19e7089d6ddcfad4b9364f26960446463039108aee18677b12a0d55e5829146f1a9c877a279daf61bf63c12cdb
+DIST firefox-115.13.0esr-it.xpi 564030 BLAKE2B 
3792406c14c3e71b017cdc44616b8409f7961e0321344cb88d004713c67f25e12e45b79793a9b33bccf1c59eb4e8b2c4365f9dd8f3887a3deba5e148d7ec8cba
 SHA512 
5c013eb2a09b2f52157e99d64c4799cf075690b1081be432b77c438c10a462571b609410edb97c67b7bb584659c2c043124a3012a1643946da98c28956b662d6
+DIST firefox-115.13.0esr-ja.xpi 675128 BLAKE2B 
4885bf5364f743e5022859747150f57706df2d61aa197c4a31209a4b849e0876d925fe263224eab795c91e1a71016a663ad106630a12b97579650cd48910b76e
 SHA512 
37b85ac5cac28a6ca144f5bc7bc49c8bb40fa03393d2eafcf690edd0c80251a85201bc2b673cc06a6f88c4caa5d05508e9935cdb8eb4953d31820e95765c88bf
+DIST firefox-115.13.0esr-ka.xpi 657820 BLAKE2B 
4ba19d5a966c63519bcaf9f0e8f8ddef940c4ff1fb53875c0601ba5a9a629435111a6a39c9588a163802291367985e6470e7085c18989040f05fe250d749c189
 SHA512 
58bc1b2eabcd890a575dfa0c73b603e66b1a9bb66ce627aff73bf29998a65fcb098fba09ef02312fe9529d8028440e2c16dec0592c870254fff3cda9a22167d8
+DIST firefox-115.13.0esr-kab.xpi 602472 BLAKE2B 
99e709e4520810fa190ffae5ceeb1aad7e8599bd5581594ddbf801a6a4d3c8758cac0a58acf80880b29754c23ad498cd912b889f8837e3eb9addd172111b36a6
 SHA512 
fdbeb125f941748d05963059823d3f307fc019cf81cddbe686b4fb4533b8a68404cba557e2477be5d677f33aae5b461d48ffba6651111baa22c5f00fbf42cc2b
+DIST firefox-115.13.0esr-kk.xpi 704884 BLAKE2B 
6fb7a75dfe0ad53cd62a72657c506c934a286896ce65a419595a3b3be02b8274a70d30a3514f76ec377446917793e1521fe8dafd743842e6f7dac17e6c95c330
 SHA512 
f9de2a014b9b68a2bd6dd5c54e9cc44060330b2db60e24b071987cbaeb4b0d2a35cb828261362d7ea6a6f1f36e38a8491de3c59c42d5be9fcd93a636a85806e4
+DIST firefox-115.13.0esr-km.xpi 522176 BLAKE2B 
180f5100d856c994fe994ec18fe39e839c769940bc59563d9cb51d2ba3afe85cf5caea31e7b823ce74592a6bf3917e967ff4a2c6d8f5ae90354611e25e222a5b
 SHA512 
8df61f23a7662f0f0714445088a6a2fe6b3a14d685300dcfc9c6f124e985c63a214cdb37863a35fa0689a7dfd63ce0b9823e318daeb1e7f5929582c06c7125f9
+DIST firefox-115.13.0esr-kn.xpi 488053 BLAKE2B 
8d3095db3b6bda67ecc5a43a1f24cc87f4ca6e68fe7e7e4744d79792a31b1178f51f478c8abe91fad54aa6d0b80401433fddf0b76f6ed3902bb9c71a43b5936e
 SHA512 
27fb76a454bb6337b77361024db3b99a754af35caf33ee33556df422bf968da4422dc727450f4d3d93814a1c5a112edda6f6d1d289d3673e81c0ed5d7c04cc99
+DIST firefox-115.13.0esr-ko.xpi 659151 BLAKE2B 
02a3dfc31a7cfd3ad2b2162c4f94b0cfe8fd4d3d4be505f450fa0d8a63a0922f8c7e19be319bc8cc0a14061f5f19cac8bf6e9ba4f0963d2060fd25e7a13e9553
 SHA512 
3728938278006a3d77cfebc46643f0cc1e6d68a2deeb8fe68ed999daf2f9e3c0d343599c1292a8a5f35d97bdbbd88865f8f49937792bd84782770325f18f473a
+DIST firefox-115.13.0esr-lij.xpi 478954 BLAKE2B 
0f32cd0e790ce6fba97a3e69cfca15c90ac0542d31b19e67ef9fee351847edb791a0c9268cbf091beb4766d28370c841417ea73431b7aa319d5974c8ad49cc29
 SHA512 
eddd6415b91d1e8f8683a8cca72dccca5dba7dab395eee279fb7950653f69e1f4776373b26d9221586b966e26b3ee7bca3de10785f6d2966cf2d85700a04f235
+DIST firefox-115.13.0esr-lt.xpi 566055 BLAKE2B 
5e61089ab95df6d8e4e3d28e1d628ff3d77fff138738c842af050bd1ac133f9fa44bea2d1dac594a7a3dd15e4faa0fced07380556a8bf4f94ad1111f9e448103
 SHA512 
946d6d680f02b68eed5c18019737c6913f5ac95ca10741da30c6d31658b4a0eeafb6789627d1aeff88ba49d9c6ecbcdd4ef6000553ae7571272b35bca98e35aa
+DIST firefox-115.13.0esr-lv.xpi 568096 BLAKE2B 
602d9cbd60bda98a73e9461b1566f09aa849c0ae632bdc6d720a18e53b8ed4126c64aa5769491ed9ce31bee21ddeb4a0e2573323d67249e2669d6786dc0b4776
 SHA512 
d4bf23bdb67c1dd26c3714e58386a63900c9d5e7457cb2d7828adc6563883fe621cce299e26825f71164258604e88d06711cb008c60d80d974c56e04eb54ac70
+DIST firefox-115.13.0esr-mk.xpi 490305 BLAKE2B 
02f7343fe8b6f809a97e18669cb9954d4440fcbec49cfbb936d989fa308e8c93b430028fa1f4f091478df89fc3893c620d332c18c2ab3c86aba41566b6da5cb3
 SHA512 
849e505174770b9c778ed088b353149ca5506df2baa070ba940e57a62d0df0c9af4e7d6854148c979e7cbcaad0394f3a3b80bc0641f2ecedc1020adbdd9b6ef8
+DIST firefox-115.13.0esr-mr.xpi 526721 BLAKE2B 
d7b1bb8b185a759d9bfc4e1bab37d734f62ee1aed59edeb9829fc63eabf541e4e15532dc8f03d152fb9f61e97ae4f17d3f695ee5188873551e45fa8d7bb72fb0
 SHA512 
a3e482b320a01684b5391fbbdad2a2e06fb30b023cd46dc449919b23a8f425070b7e58a91535e2b973d63f0d5af8e240dd13c12d52a6fa0342829ad5e328f703
+DIST firefox-115.13.0esr-ms.xpi 445347 BLAKE2B 
04d1927c6e63253b6e90a61a61dadc424cb22c6e82c0e0fa52ea75152927c39d30c82f0bf71e4f856cacaaecb72607ea69dec15eee97f97fd3a092baee184c93
 SHA512 
de14dbcfc4d7d7c8e23f08a45807c7ad7c3120e2bfaa0372b7bde17d4e25b27959946cbff0b855357de1756bddc5e70b35a003aca4883353b3be4a6ab5fd8b73
+DIST firefox-115.13.0esr-my.xpi 514775 BLAKE2B 
2b63b9e3e434218c2e1e6a25d37bfc0791c118d7259881dd55293fe65746e869c4acd384912ea05c6c03e2dcd2d18a10a7074ae4a2e57de80089d33bc8e6e666
 SHA512 
c124401eda391d90eddef3bdc56d24ebe730292a1c14f3d8e9d3b61f72cc1485c9141ea2c21fbfc1b3b1aa295abe634c4191c436da24180f21ee0cdfbd5ccab0
+DIST firefox-115.13.0esr-nb-NO.xpi 605932 BLAKE2B 
265de1bd0688894c4d37da31ed7902375e916c697878bcea9dd7b717a496c0c265de77d5584f8299587ad391e94a95c510b5f7765fd3393eda088c7c132d3e4f
 SHA512 
90f34d609a5d010fbfd0c02de3aac179f017c7233020a5d16235b9545404b4887e9efb4f61b570de1e22855a3312125aefb6bcdf8f6e118ddb31f004ac3bd83a
+DIST firefox-115.13.0esr-ne-NP.xpi 506844 BLAKE2B 
2570f7be21faad1868092897d6f7f5bb0df4f6bb7c04b1650f147c683f033d4740f0d68cbb4fe54236ac6264196ed5de783b2465f51e09b32ac782ec9089e711
 SHA512 
f64c0ee5b11d2bd0926708fc45103c2fa6699d0563f2e37ec882e9f84fd4c2e5a2d01f1fd10e2bf9e3cfbe4f6ff00c4a3b0fe4ae4caf3dd3f50428ad03e91f7e
+DIST firefox-115.13.0esr-nl.xpi 614615 BLAKE2B 
ecc15b9423b69f01487b79f451190079d82bd4ad9bc98c0a907f4ff9ce2ade07c843dde8435b1046ee84e3dae4949628625a7c0fe3aa9b7f446ab0756e96caf4
 SHA512 
ba72ddaf6d6cb2224f4bf0dfe56155a714b1a8eb496ff28a233425c9f8676391ef134364ed588a08e469d1de92a7c0321cf1be9aae7782df0ef15eca6afd87dd
+DIST firefox-115.13.0esr-nn-NO.xpi 606790 BLAKE2B 
2519c4a7074600335f699633e5c5bac1b6c762ec60bf547c49f9092ef1f5d42a074f94f2d855693e245a7d21c31611837a4e1858c6d6f5c590d95f678e07a59b
 SHA512 
2c4f34b1426a64307d01553b726a5c55a1c1e087caec3536802864054d32d61eb5691b78e8a5f0bfe63f8f4539647e51a000ac549d9b23385ec7eabcf19ebaea
+DIST firefox-115.13.0esr-oc.xpi 606292 BLAKE2B 
1f8fa30994be906dbb2a1bcb79b8dfbcc10876c8b83dcd55a733c6f230885fcc654e1889c91ed41bf9880e5e20a2f94841c552b4f9784ab7a77fc775418aaa7d
 SHA512 
f5ca41eca0ddf6d560bc07da87ca7c0da1624a3c4e2d527a604186138e55a5c0a30b7eb44f00f05998f07ba2278a31988cc528cf1d4b7f1a2f164c4fdc109ec9
+DIST firefox-115.13.0esr-pa-IN.xpi 684777 BLAKE2B 
35ee56d12532e977017e07fc1bdcdda40061f0e88c0ad2c056399d4ef1f7ea2ed6184370d038f4e6a1f8c698242e5d59fccf1abaad9988ae237e330b3d99bbec
 SHA512 
abda142513b7af1a9d5e156fd4598887435b0313b345e5786ca647465de31c553494cd7ac714fdae8b7b3ae40221fde749e03c83fbeee3534ccbc24860485fdf
+DIST firefox-115.13.0esr-pl.xpi 634143 BLAKE2B 
badd7fe2a8310cfefee95d68119f56e66357d5bfec75ce2f6a1ed9469ca239779e0804377a06fea7fa0fd1959f75ce06542cebff1b45ff899d6cba71bf28c967
 SHA512 
0f9d5423dc00e93b900b6f90997419d70975d6a07a39a6f2b1012ff7a0c4c2459c41214f05171fce61ffe4fbdd393f0bb906bbf8dbf71343895e463ff9517127
+DIST firefox-115.13.0esr-pt-BR.xpi 619344 BLAKE2B 
c27758608781d90e9392e55196e2a8cd4f0e124cfee08b07c4d37319099b3a0b5eff98985215ba769a13fb1ed877224a370eb6abf221bef8369d0c7f908a746e
 SHA512 
e061106433be87e7b2d47bce894241f261f87a5cfce49415c2430417418e978876b45157eb3a3786e338a7b1ad359c672818274dc7e71465023eb10924a9d765
+DIST firefox-115.13.0esr-pt-PT.xpi 624305 BLAKE2B 
4985553c3c20285d14577e5dbd671582822336a59b469156ab7ac8170ed153dd331554ac6ffbe2e8258a3cb31aff5f9d47103d6ad88547e9117d78f6a7f27d5e
 SHA512 
7b51efa9217440b5938d4f484625d13562e65de57b6d4c9ac53441031977c6de52cb36fec5d98f0ff2d541b3e2fe2bc854968747bb09e4c5d17ae94b11bf5e5b
+DIST firefox-115.13.0esr-rm.xpi 614076 BLAKE2B 
1cb280402450164c54ece4914f2f74c1c91dd8d0cb4280d6a3310f21245e95cae455f64e67bc8c26842d3e63a75400287545b8031304742f9afa7389de6e297c
 SHA512 
3fd88deb77f0b85c92bc42b4641699a39fe63c73d89c4febdf0237da1c91f7d13b4646415df48e5c448b49fdd1400fbd817af068518055591d09d1ca39a7829e
+DIST firefox-115.13.0esr-ro.xpi 543381 BLAKE2B 
a5510154e4bea4a52bb8a7c777d1fe121ea8df1b4ac5225ac80d4c31614ed208f9cf51045c51eced7f03e693ba8710c31b60dc9442f95afbe85df8ab51735ef5
 SHA512 
f64b2a7a0413b006244216d33d5d1ea68762af265417633898f1757aa62749581af103c9aaea6be807d3804c5c42cb44e2bf853d8cc8332a5dec4f46a6cff074
+DIST firefox-115.13.0esr-ru.xpi 717996 BLAKE2B 
7d77b494bd1a6c1454987641a2ef53fa2e5c57c614e5c7d16b6381e4d4b8a22a39936ff71bcb1c1746802e1239b1de5b52da12e104f613806f9d2c622394802b
 SHA512 
8fc13b6b19545a512404c9c653c2515bd57f85a39305fcbc97dbabd20bcb61681ad74a8a0c3f1253333264c868746e45ef6de4d68ae5e921d824da8c790615a9
+DIST firefox-115.13.0esr-sc.xpi 577968 BLAKE2B 
8a68b16991112b6d7d5207b93f810894260ef622e8c36900428a3091628943a551dbd293e02588819d58f3982bbef53dff5b3f3bb6c11b25ad9d92f44531374c
 SHA512 
becc012cb67cba7b443d149e910ac8dd72f4a6b1817b0df013659317caed07d251f66b67d63ee2af3eaaa6961d0acb1732886c04ca0b32e6f70df3c39acab0d2
+DIST firefox-115.13.0esr-sco.xpi 505561 BLAKE2B 
734e467d5c4fbc367986517704b7be49cc62ee686fbd940ad0ad8ad8c54a7bb6a9662f9481b162aa0a237b5ae237d63486c4da015a90e3ab373bc8a1c5ad0bd5
 SHA512 
3e99a48f4e9ca2f9838ae795a8cd07010ae77534b58d783e3d61c4453ec195d796fc7e9bafb84b6c88a130d5fe1544ea4e49359678dd67e7d11d10e646424847
+DIST firefox-115.13.0esr-si.xpi 600739 BLAKE2B 
f5ab27d31b4b359aefa3e1d7c90cb2e7e7540fb1ccbb1b0a01029aa26b9caf98ba69da1976a9dd4baa33b302b75a159f3cf9cdf9f3156aaea10e3b20cd3531c7
 SHA512 
6deb90c6b4404e54e53d08680b83d32ff2c0fc30621a927f195ca326731cc5a6588c68f73a3b4a7c2f9b6c56f6b11bc20b3484094a09246eab9429e7515e1d96
+DIST firefox-115.13.0esr-sk.xpi 647869 BLAKE2B 
4fde5492f430e5411a4e3d30606895d92991971b762c27fcf02a857465fe2b0505452c422e4e70b0183ddc7d3b4d99852f336dc7827aac2e8b75c212e4769e56
 SHA512 
66d359c11e4b03a7d948704e110b9a104e0ddd20269660d2222df759044419d797feaad6b5c2142e223d8f743411528cbd01aab1dd869b34aa5ef9fa19759b0c
+DIST firefox-115.13.0esr-sl.xpi 612807 BLAKE2B 
8e6e8c9854650a07c89f2c42ef3b144301db48bb51a6485ba934ffe0a03a97636829559e490f16df98da61a52313779b2ba83ee4abd6d254731e47fdc24fd6c7
 SHA512 
14b0475e8cba4c852d7437819cfe3157c5a0e2454b804c86fb95bf5d6f46fd2a853060d7247dd825d547d0d148277166130964934d600740c6ddeca23ffa0a74
+DIST firefox-115.13.0esr-son.xpi 413545 BLAKE2B 
d211c0defa803d5ad574811e1b2e50d89de5fd216dde000a0032e3117dcc5a31211d30483a89b1f9005073015946b41beed2b39173321e62eba90cef4679c28f
 SHA512 
5df04e32c22f70be9ec9a7c417e56da210314a8aff0d4aad43d3670bc516d074e629a04ffde567f4fc12d8cdf3179a69099612263c8f8b5a84eddfa510213026
+DIST firefox-115.13.0esr-sq.xpi 633666 BLAKE2B 
393b74e8e2aabf71ce6aff3e34732f0cccebbf1426ae8af3803cb8d74d4ce9bdefa250f978f8b3c2e0cb2dfe8861be7f766e741d40c2054ea0e7ca210f8b7804
 SHA512 
fab2db1403e60595d8a6003d10cc564d618e8d08fffa613617150cea940a4ad3e28947ade5eb06a831d8830944ac8415185be6f7a40dace940347b533f9026a8
+DIST firefox-115.13.0esr-sr.xpi 633079 BLAKE2B 
c664db59d9260155281397ce14e45fd9c1ac680a0f231f170ea59ee6444ea753a4da7f7c0e3f290b07d2d31c1f3a823d6d87dec4f8268a9838e38f27b030a3ea
 SHA512 
5afd139113a720d45dd35621d57b77c12cb47f277a264b1b78cde6b24e8a596b44b7de77e6ffec197d68bc1eefebdfca101a3892e736d60abbdd21c8317acf09
+DIST firefox-115.13.0esr-sv-SE.xpi 616310 BLAKE2B 
3675c4619b261c8fb39ba86b1b0e98dd92cc099d0f1c80b28fb6f329f46d8eb4e21a4e7d54d71973aae4da752eea10387ac7154d567b28ed91917a4e99f02ede
 SHA512 
df200d8b132cd29ef433db0a4cbcd39af2e9426462272fac0435a407cf236531b2b589a6edfddfdf12fb4d446ba02ace0b43bc1c3844f93aaada1f131a0f294a
+DIST firefox-115.13.0esr-szl.xpi 520874 BLAKE2B 
a75babb4e8f358a68b3314ea93bb7b1b35b8af2888c3c45b51f31947937512a40c12ebf5de60f34854c5660c6af6de032b0729ae14a34643516d6e59462eb30a
 SHA512 
6f15aa350fa2c43f78a7d86ad324cb9f1580a9f98933eea8b3a6f5340a5479041d6a427f0bc986fd5ed0b2f89dc2ccdced3de4348663471a7ca5a43ce7e1e161
+DIST firefox-115.13.0esr-ta.xpi 503475 BLAKE2B 
820f1168e8212254e3371d89e5186f45ce5af03b4e4362dcaf800e5bed203e1b1234a53cc81edad150ff5d63f555d32e44d07c0a92e469dacdf4d03d022b18e8
 SHA512 
458660b1267ae3077fea493cb04f8eaebd92ccbc07ed59ef18205b63eccc1598497d61d36a3de62d68fa6188eaf4251cbf54e3335cfd1cbb3a1aa320e937b92f
+DIST firefox-115.13.0esr-te.xpi 556610 BLAKE2B 
880f7e079db8f982d2f802b8f085423e52b211b5edd0985b0fdbe06059c28c56fac67c813c586d3f066a427a3be2b1d74054a7fe462ff36eeca8306cbc7d5289
 SHA512 
2f5c455a7e02ba35761720481d261fa45f53bc87c9ad136014295088ef69e14e6d9048b1865c30183250d5c58cec5825e2705933edb4e85f84ea9c8f72739fe0
+DIST firefox-115.13.0esr-th.xpi 693258 BLAKE2B 
dd7b5361e45aef24da696e102b924c8bb285ad44348354b4f6563f30db0aa7d25e43e1a6ea56cd87d115be4bee3086dd2c6754cb0e5be421b9ca68f6186f7e88
 SHA512 
25e6be57c7404f6d3c3597b2b42bebf86092b7a4884b7538eaba8859a883467894c4712ace0140ad02709a725f82ec24cd131fbee07fc95c553373cd417901ba
+DIST firefox-115.13.0esr-tl.xpi 527635 BLAKE2B 
b060f9268d4cd0b34e847e36c531fdb50c319664fa970709a1d25d7ae37f3be1bfbbaadbfdc7fd77dabc03e79b234d575934bdde1bf4d5e6acd96b25b3d82c6f
 SHA512 
39aead037b172ab8c7ce5a0a0d145c88a0ae527afb86486161418fbf66bfc69f91d7518cc9609139c1352eef35a6b91225bec4c1037cbd4c0d28161cc1e19d63
+DIST firefox-115.13.0esr-tr.xpi 628068 BLAKE2B 
b87145bc56034116cbec9f205916710cd7b17548aa5659e23706cee1275cece01f293976d172ce883e3da679de0af9170b3e6d1051b964ae34c655fc37ce93f0
 SHA512 
f804f7ab4b75c478a1728bbd817c33440e4689a85b0c711a8c4406757830d8db951a33ca97808f53d46f58e51a565d3fb9a2619ab09d5daae098e90c1b7a3bd3
+DIST firefox-115.13.0esr-trs.xpi 498534 BLAKE2B 
e3ac9ec8b32f2018715915a77d6920f025c8aed1ebe763fa09d7983872b7612427b7b8d525927f492ca2bf2861241ecd7e1140e433601e0eb3a429a13f0e92db
 SHA512 
99781758ca40e62f30a377395eb39f66bc555c87e930f5a971a26c54941a4117d1470aa95a11fa60dd81df293f94eda81221a40c5359320e5c8437bb5e410673
+DIST firefox-115.13.0esr-uk.xpi 707201 BLAKE2B 
6d3569869d1c7cda327999dfc2a26276db656cefc6099e3055e17434541c36db3ca1e6e19e72d2c1ba96382e6c0879ff7a991a2cf5abfd49ec341de0d5163f37
 SHA512 
d98b524d66ca6b79c15138e9005f3720fa12fa46411ec92d39e8f2a382257c491f0d2b3f2cad32e81e4f7ba12c4c14bc5039b90065261fd386019e652db3ba09
+DIST firefox-115.13.0esr-ur.xpi 554692 BLAKE2B 
207b1ccbe283503df572ddd269a76238d7f7e8823be88d883e8ad91fce110e1d7100740056deac346a84d1d33a2a30782ebd8ae2a93aaf43d28fcdf2a7149988
 SHA512 
24e59b1f18cbe9189578585889cdc01c707877ed0657e4c5b1cfcd06abdd0b3a0f51c1e919056685e5c3d69d899482cf2e5616fd8cfab2a83fdf74e994ce9096
+DIST firefox-115.13.0esr-uz.xpi 474520 BLAKE2B 
98963dd2b408996a31274b1093b1e8da1c079f831cae08079d1efa9ea368e6f13df6cc7b2659ac20ec8dfeb2e632ef48a54c5be421787871526811bc6ac17b81
 SHA512 
c610d5e417fc17d2e23a5f5ca5cb0c2dc0474d8eb6a9ed058fdd6b2c465998d6ad0488fa379b2d0ad8bd77aeca3c94f9c9f950a52f9cee9394e9a6437fd3c1cd
+DIST firefox-115.13.0esr-vi.xpi 651765 BLAKE2B 
93e864245191507874b83fc34886e79739da74867a2d5cafd28e60e34765b1be0a04eb50a0336af1df70c97a84ab040c21a06898660b457e8b557ced29533d6b
 SHA512 
268af1fb6863dfb280440a44ebabe3926871a85febf4f45a2bb1fdc126508a361d5cecdf326cfaead3257b962d559e0c47583d91355e966ac37ec9092ac9e71e
+DIST firefox-115.13.0esr-xh.xpi 414787 BLAKE2B 
b1f1d584ebcb91b1819ddab80c6933f9335d88441abb0ce539fcafb5fb5d505caa15c14a3cf5c3c9dc2cfe97fc3df2747ad1abfc99a97d2c7c03a75726c5aa6a
 SHA512 
3b95f8f7b0b5cda517f826bad938cb88457efe249a0e5225068493f2fe0d644a5802e8ff85c06ccf9660135de0330452474833e2a297bc97e48238152883d328
+DIST firefox-115.13.0esr-zh-CN.xpi 652628 BLAKE2B 
482eb1d85b53ccebb3bdc4a1c04d4eb12f8760cd1851a7cec986786db626f8f545f46ba545d6e3e4be383f1b751fee1a0df836b485e2f0841c659c8a035dbb64
 SHA512 
6ca1d36a0faea8710c0dcf802391be1888ff6fdeb2d20af2970e63d982f551b64cd5ffbb2ebd187d0b2f4add2f5ab1f3ef9d82f149beaaf6d309da6425ef4b34
+DIST firefox-115.13.0esr-zh-TW.xpi 656755 BLAKE2B 
ef8244f8c0d65d2c604a5a11caf4f493992dcf2d32aac8bca36a8a17ef21ca4050c3406b565822300c0333df2950ff6342f7ed05b02da1243aaa3fdedbd396ef
 SHA512 
c62f4dddc59f71d944d70250dd0337680c789000f4df188d71f3fae1cb272c34b85711218a53727324adf190e26e1667a192b612d9f1d3a437f24e1b27eb9ed0
+DIST firefox-115.13.0esr.source.tar.xz 510571488 BLAKE2B 
e2b00965a92cd11da6c81daa8b6c652dfccc9f0f7d066bc17ae5fa3ac3aaaa021c4489a9f653127f5516e3d77cd7174de328343e22c4edab438e3fcb9a859178
 SHA512 
799cdf2d0494003a5addd0da703f53deb9c9d6bb6f6c95d40026363382803e2d086039c7798940a1f35f4cba111f2e8e21bde8ac2eac29fd9bd6876dd8d3a85f
 DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 
1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461
 SHA512 
e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c
 DIST firefox-126-patches-02.tar.xz 17408 BLAKE2B 
631345d33f0d3c5fb09657c9f286b9a73554fd6c9229dc065fbda482a853cf6d83ddfca77d8de44e650a147fcb0cb4add2b9dd6198851cf11bc0198e959f9112
 SHA512 
21c3f69c86fbc028b94947f1dec301c3fb829de53fa7d745e7b8e055d6fcb5f35581a2488340fce29646e70ba671d6b271843d4336b045b5b7a7b1881611e45a
 DIST firefox-126.0.1-ach.xpi 460828 BLAKE2B 
b15137e1405cd3d5fac4817b25f35e4f263779a354ddc94c5e3a5fb1211fb3a4154c666b208b39d3ef51c762a0cb64a12cad7c7502c315e6f4061a0f70f51511
 SHA512 
01c01d57ffd56c5f98f2e2cd24821645a7e0d04452bdf77a57e067d2aaa54c3115770e1f038d08262acb0737e570ef680f4c20e20e28c16753a5ee8d9697904c

diff --git a/www-client/firefox/firefox-115.13.0.ebuild 
b/www-client/firefox/firefox-115.13.0.ebuild
new file mode 100644
index 000000000000..f1d995d68c42
--- /dev/null
+++ b/www-client/firefox/firefox-115.13.0.ebuild
@@ -0,0 +1,1414 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz"
+
+LLVM_MAX_SLOT=17
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=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 readme.gentoo-r1 toolchain-funcs 
virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+SLOT="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:17
+                       sys-devel/llvm:17
+                       clang? (
+                               sys-devel/lld:17
+                               virtual/rust:0/llvm-17
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-17*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:16
+                       sys-devel/llvm:16
+                       clang? (
+                               sys-devel/lld:16
+                               virtual/rust:0/llvm-16
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-16*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+       )
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? (
+               >=virtual/rust-1.65
+               <virtual/rust-1.78
+       )
+       !elibc_glibc? (
+               || (
+                       <dev-lang/rust-1.78
+                       <dev-lang/rust-bin-1.73
+               )
+       )
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       sys-devel/gettext
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               !X? (
+                       || (
+                               gui-wm/tinywl
+                               <gui-libs/wlroots-0.17.3[tinywl(-)]
+                       )
+                       x11-misc/xkeyboard-config
+               )
+       )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.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
+
+       if use x86 && use elibc_glibc ; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-musl-non-lfs64-api-on-audio_thread_priority-crate.patch
 || die
+       fi
+
+       # Workaround for bgo#917599
+       if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+               eapply 
"${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch
+       fi
+       rm -v "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch 
|| die
+
+       # Workaround for bgo#915651 on musl
+       if use elibc_glibc ; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Workaround for bgo#915651
+       if ! use elibc_glibc ; then
+               if use amd64 ; then
+                       export RUST_TARGET="x86_64-unknown-linux-musl"
+               elif use x86 ; then
+                       export RUST_TARGET="i686-unknown-linux-musl"
+               elif use arm64 ; then
+                       export RUST_TARGET="aarch64-unknown-linux-musl"
+               else
+                       die "Unknown musl chost, please post your rustc -vV 
along with emerge --info on Gentoo's bug #915651"
+               fi
+       fi
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # sed-in toolchain prefix
+       sed -i \
+               -e "s/objdump/${CHOST}-objdump/" \
+               "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py 
\
+               || die "sed failed to set toolchain prefix"
+
+       sed -i \
+               -e 's/ccache_stats = None/return None/' \
+               "${S}"/python/mozbuild/mozbuild/controller/building.py \
+               || die "sed failed to disable ccache stats call"
+
+       einfo "Removing pre-built binaries ..."
+
+       find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) 
-print -delete || die
+
+       # Clear cargo checksums from crates we have patched
+       # moz_clear_vendor_checksums crate
+       moz_clear_vendor_checksums audio_thread_priority
+
+       # 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
+
+       # With profile 23.0 elf-hack=legacy is broken with gcc.
+       # With Firefox-115esr elf-hack=relr isn't available (only in rapid).
+       # Solution: Disable build system's elf-hack completely, and add 
"-z,pack-relative-relocs"
+       #  manually with gcc.
+       #
+       # elf-hack configure option isn't available on ppc64/riscv, #916259, 
#929244, #930046.
+       if use ppc64 || use riscv ; then
+               :;
+       else
+               mozconfig_add_options_ac 'elf-hack disabled' --disable-elf-hack
+       fi
+
+       if use amd64 || use x86 ; then
+               ! use clang && append-ldflags "-z,pack-relative-relocs"
+       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
+
+       readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if ! use gmp-autoupdate ; then
+               elog "USE='-gmp-autoupdate' has disabled the following plugins 
from updating or"
+               elog "installing into new profiles:"
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       elog "\t ${plugin}"
+               done
+               elog
+       fi
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               elog
+       fi
+
+       # bug 835078
+       if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+               ewarn "You have nouveau drivers installed in your system and 
'hwaccel' "
+               ewarn "enabled for Firefox. Nouveau / your GPU might not 
support the "
+               ewarn "required EGL, so either disable 'hwaccel' or try the 
workaround "
+               ewarn "explained in https://bugs.gentoo.org/835078#c5 if 
Firefox crashes."
+       fi
+
+       readme.gentoo_print_elog
+
+       optfeature_header "Optional programs for extra features:"
+       optfeature "desktop notifications" x11-libs/libnotify
+       optfeature "fallback mouse cursor theme e.g. on WMs" 
gnome-base/gsettings-desktop-schemas
+
+       if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then
+               optfeature "hardware acceleration with NVIDIA cards" 
media-libs/nvidia-vaapi-driver
+       fi
+
+       if ! has_version "sys-libs/glibc"; then
+               elog
+               elog "glibc not found! You won't be able to play DRM content."
+               elog "See Gentoo bug #910309 or upstream bug #1843683."
+               elog
+       fi
+
+       if use geckodriver ; then
+               ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver 
is now"
+               ewarn "packaged separately as net-misc/geckodriver and the use 
flag will be"
+               ewarn "dropped from main Firefox package by Firefox 128.0 
release."
+       fi
+}

Reply via email to