commit:     e1d3bdd0032d67d12a24c2f22d8c486cc24f6515
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 16 13:31:38 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Apr 16 13:32:09 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1d3bdd0

www-client/firefox: add 115.10.0

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

 www-client/firefox/Manifest                |  100 ++
 www-client/firefox/firefox-115.10.0.ebuild | 1400 ++++++++++++++++++++++++++++
 2 files changed, 1500 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 3136b53ee0a9..a4b4f87cf8c2 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -1,3 +1,103 @@
+DIST firefox-115.10.0esr-ach.xpi 456937 BLAKE2B 
a799c3a58f4b4b69d670ec8ec206697538a90881b8e76e73cff6f2e5d41d2d5c48b98920e771a212e966e3b965fb016545d7ec160d72c27bd91d357c3d2bb4bd
 SHA512 
587d65bd7470b568013442e862415c2e9b0c4e7507d49a2edc2afa87558d8bb7adc94136199973036aab91de2bba09da1d7c0a380935095e3f1cb6db63662c0f
+DIST firefox-115.10.0esr-af.xpi 413578 BLAKE2B 
dbda1ab867f2117fff3a486ab14e169eec344cb7d33289b04141f9d78d6e605825ef15469318f20e66471593bfc0d0258e30fcb83ca4097d3b4678eeef912d8c
 SHA512 
fd2c945491824987fb9396ccf28aea0523ba7d5b85e070df49c8a4ad77111ad255810f0ad47dd91f90ac98cc99bf996592552967f26de5baaf01cfb0f93e1efb
+DIST firefox-115.10.0esr-an.xpi 497259 BLAKE2B 
c237abe162437a2c2d95584ac6c9992973f0174cdbf0e6c670a6c92188c6bb0a41489c54b3d2ced5c9fec2d3e665fb01dfff6e256c541fad2c089e3a1823a3c6
 SHA512 
72296dac1190928664247a59635b668195bb6a2546199cac7dda235720b8d53cbe416c8a713198992f168b69ee3b32cb7e037eca0de2d5c4de4be5de329d43e1
+DIST firefox-115.10.0esr-ar.xpi 590968 BLAKE2B 
5a2eb799c057f93fae132bb188886448cd48fb827dc995e37427fabc37ca3998e8e43e3cadbb9b19e50beb1ba2b5fb3da589853b3a79584471cdead2cd529e5b
 SHA512 
eff65846b3c8502d0c21eb19e7a65acde2a32b7524de167207ad448f5dda486e93cae31f22b8d74d71cf8fe68c8b4cbbc25c6af12b5121df6b221219721a5400
+DIST firefox-115.10.0esr-ast.xpi 489197 BLAKE2B 
1f1939404e32c6394f1dd7af59e64d8869b559c7101a956bf89be352ef77a7c06edb9f1ae5625933d3f6ed3df83355e5ab61e468bc37a617e8ff4c86c1296e6f
 SHA512 
88363db442fd3368125dda3862c16a4f0d5c15c846e2f03901cee75ba1863b063d0d3a995b048459b044048924cb1f05452c45511e372ee36fc7c458904d9abd
+DIST firefox-115.10.0esr-az.xpi 483841 BLAKE2B 
7f7e88cbe36d73bab8cf803b1013a191ccd9c3fca56a9f1ad66839f1c00b84130a33aff7ca6f33dc3b061b044614145f7e65423d87d9476e9b3ea7c77cc953a9
 SHA512 
a003722d2a444af42fc1c0544567ef53a83a8bc520af792a589a4ceefce8adbfa61c383f141ab75cabe52b470afa9c3e0240e16569be4bf6c126635ebd1589af
+DIST firefox-115.10.0esr-be.xpi 691067 BLAKE2B 
bb6685ce69d6c2e0fc449a59a61604eae9a63688ca5d4270b97db4d52501c183b241937bbd5f1979590428a29b26ce184ad0ebbbcfe4a066bac0e93c6a620040
 SHA512 
9c525cb6e59ceccd09bb82a6243dc0263a9077c8498d801f356a7bb038c5ede87ac3c54a20666c52116634b2651c5c97df81a2cd4a7cd8ab3dce386a0bc4d895
+DIST firefox-115.10.0esr-bg.xpi 588688 BLAKE2B 
7b872998fa920b8a7fb83c7ab0ee4307eb510e75932d3f2a4d6c0fe4d0d54d1f2a5de7cf17742f1c7eb1a52b3345cd542c9de7e103ad6ed0e08338f8581658b9
 SHA512 
c3e6a40d34fc5462d5a0c01771ba2cd923a17b590e301bbeea92f179f186aab62a7a9a15beaf70943f950e22205e64f0c123bba10209e79c26c7af645de7a2ae
+DIST firefox-115.10.0esr-bn.xpi 573624 BLAKE2B 
f15ccd9638f013668b096696f6a9bcb8d6c3074fe1e9c08b0097e0da95a459fd3ebd3c9b14a4e1ac0c978a8b1f9abc281d6a48f5f81a9f8d930ecb95e16d16a1
 SHA512 
8c61e24e06f8c375d742c55d15bcb09736c79a4b44a8f0ee56738b7cce0a61928d2f64a602aad88b9adf78e0834fd6c1bb4427892eae1b134574bd996dbd5db2
+DIST firefox-115.10.0esr-br.xpi 573720 BLAKE2B 
f42a5071c28230e326edce797dd667650678da4cb7b78065a1775a287adab5b9e6f3e9b493c66a3ae0cc429d81c17ba6ad799dd62eb40e045e00e2335c135a0c
 SHA512 
2c58752bb94198ae0e764f2b5144cdb1ded817852e913c4213c52d0234ba96c7b86624b8f5aeca74b94538e70ad9173c6738312ea04c6b91e3fcbbda577bafac
+DIST firefox-115.10.0esr-bs.xpi 463559 BLAKE2B 
54b29c5b42151913bd39ddc597f4cdb7021f8465b5d4d04437556887d1c3fa89cb6b3f6b2a1a27ad67a8a42b470dca9133dac27de802c427e3cc124e3dd5baa7
 SHA512 
bf8577e997465788e1a839248af1166b335d78786fe37ba46f8fd5de6ea24847cc6ed2382e85c8c35fbb0e9c506176f91ae614b082ffbc064f9cd82fd5683f53
+DIST firefox-115.10.0esr-ca-valencia.xpi 536870 BLAKE2B 
9babf4070ae55b9f5f7f591a654cea166cb531a13d1d581f19502b43737cd0f613552b5646c3a9e333744650630b1c8d5c332a6b1c4a84ed0818e3d7fdc3268b
 SHA512 
bb554f7d331e9f48637c8fdd7f2ce31e1c642733a14c63a0119bdfec55acbea564e824030a85f994816b5311b2aa22341c920058b88a9e07965fe0520d573920
+DIST firefox-115.10.0esr-ca.xpi 575781 BLAKE2B 
43121178a75db2bacfdbc8e1a403cb19c09f36a5c78bc7c8c4bd40c50bf2987528f30dba053a35190a4fef49bae509fed23628aa7e264c5361f971b60826185e
 SHA512 
eae580ec6d0665d8ee90d7d615f318f75c9451472f4f123f30805384570c4b153f462ed53431e0bfcaae70aa8b2f716d55eed487e141731ab657e94b033fe684
+DIST firefox-115.10.0esr-cak.xpi 581676 BLAKE2B 
1837aa46af8593b40e0a2f9a425a1f810896ed068fabcd36f3f90f6140e3501639680da847863e3cc3f2aabaa047a5cdf21f12bd5c323722cc3c93143924a3e5
 SHA512 
db9329a937aa5b682af189c14db6f2bb43e0f3c05101ec001849062718b2d666a665683e6f40e0606c776340efdff6ad59f4d162f2785938e2fd05ef8b58c49f
+DIST firefox-115.10.0esr-cs.xpi 636805 BLAKE2B 
f6e242459fe13f7ca1f1932ca7a5cd81bff06b1d9f5d32081b6d1895a5ada67c3f13d1ed8adce883e8dcb7e6897528ddec0b79b31e06d6369a03a8a90146b15d
 SHA512 
7c2f2f776a30d0539b7f19994beb6b67ce08243fef02f71115d1e354a2a286bc3847ff60bcd8e63a724bcaef39dc36d8f12178d8d7800cd730de5b2ab007e672
+DIST firefox-115.10.0esr-cy.xpi 604777 BLAKE2B 
47a337de47905c8639fa1a209018e0030a1f0be8df419b4533c8d0de630eaa827dc6aeac5bc6e4650da152d447609fac7b818e49bff124eb4f11e5b5cf1bf5e4
 SHA512 
5454b0800eae28fbed4e175f932b4054ac1ef3a32824a67234bda83d78b8e91e883eadfe960492242e7d517b37838e17ba0fa8b0dee4b7d7b865a5e9228fbe03
+DIST firefox-115.10.0esr-da.xpi 589842 BLAKE2B 
51922963e1e1a2e6a6db830dd6616485cb62fcd53631c67081162c6eb406cf65bc83fecb200485894f7a7fbddff4cac339fd43be88c3ded486445b491db96419
 SHA512 
b642fe0fdaa68b45cb02afd796989fce4c62795c0c3e67b86bbe98c1285f2c11b2b808b67a4cd95062f14a6b387dffe4635d58705b86d63891d1d542ce588038
+DIST firefox-115.10.0esr-de.xpi 612032 BLAKE2B 
8d4ce782aa50e0a80dd88bd7ea7480bd9cebe4db217833afdfc5637189406194bf455b3dd538c73717ca71160c9a1b2ddf015b4e359514ad480531d2ba81ff2b
 SHA512 
9927d9ec3ae385b41bd4a1932f1c6d39e137ac9cd95b76237520bbf0c0cf75a124fb9012053e85949522ec21e5ccf9737f1e04bf12143877fa3a28f8772de35a
+DIST firefox-115.10.0esr-dsb.xpi 629491 BLAKE2B 
a9560315b92c0c932245341abb55ff54fe4fd1347036fdb268ba1906b904d545373661335d34999ee50d7c149cd4a27c491e8cd3d58b064d3a2f76378277f6d8
 SHA512 
130a3744b3eb91af789217a9a5d9923868e48de2fc18b54b2c8b881e72692244b7c86dff23afa4b534e47c7b411bc4b355b728529527173785921cbaf8d021cc
+DIST firefox-115.10.0esr-el.xpi 710466 BLAKE2B 
cbfc49457ffd7ffb706dca977f617efeac72259da72e9597e06b75d54589df10983b495d7fa4f9a179e1d1a539090bb2a9ca13121a699fa6ba9c331c6ee086c8
 SHA512 
828617e54ce0f6d55608e09590b8f2c3d71dd74047cee7c4a03d53e243f2140f45513343646c3fc67c198b12f28a90af5bb64e646c041fe9da90c16a28a72f63
+DIST firefox-115.10.0esr-en-CA.xpi 551682 BLAKE2B 
a9d7ee9620ae9829062e17a08e75a1a03a95ed7baa7caac2f360661f3159b0f31b57c1052e50f801428b40b6083e4d923c8e91ee9701704ea03982e09babff72
 SHA512 
9c194bf287e18ab5604093951d650b661b25964a0e8a8c4c30cadf90594d4bd0639d81dae11edcec43feeea13ecebf0243b4800100fe2f14f6a56891b78a8637
+DIST firefox-115.10.0esr-en-GB.xpi 567046 BLAKE2B 
50d779f2b8fc5281bae37f0d5300f67d5639f09dcb1818dbc6f7e657cb1e11acf4780e6d362d61701ee0626a20c1e7571b13fda5f5be7a6fe18dc5914d482e4e
 SHA512 
99288d89c43a0f5bdbd11a7eda5aeb8963634377fbcb9d460b325155de5ada3080ec05052d2d2df88e0ea7538270920c558b54796c1104d25ed634e72d671e71
+DIST firefox-115.10.0esr-eo.xpi 585340 BLAKE2B 
f8487a7f6afe1e11b183f4ad530daef0221863da592b914277e7c865eded1d503efa2839b7df11706b20355cd9c2d614cb2baee92d95f60c9066473f2725063b
 SHA512 
2075814b1c0cadd6a0c5410db7c1b736f94a0ec95b44978435efb195303df5d9583e05c09e9daae3390264257d26a79112c7e12978c226eae0caefca765a6097
+DIST firefox-115.10.0esr-es-AR.xpi 608560 BLAKE2B 
28a431613260c57ae030b3f0ed6b3983f513a1ccf7daf3cc8201829b6882cce222ecda5b88243bc1c42bf99d2a5dea3d6ac901d07bf1192eab73982edf06901d
 SHA512 
131e316bbb2ef5afc4f99b076093a598848082b075b5b1c473c586a736de7d6aef22dc787fbbd9fe0a29313ef27b2a5d20d931bcbf1d8dc43720ec86e76d3f9c
+DIST firefox-115.10.0esr-es-CL.xpi 606528 BLAKE2B 
fd37f70b044d5debe76178b3e35a8030fc98a119b16aebb29caf7dc548d829ebed69d3506d537bc2d9ee5238cf6e3d525e71f815028a2961d743c3b9597058c5
 SHA512 
d81f054281a69bb94d86978e064327d80ba1249d8c1f7af7d9d038f37a9119c8d4c5e714ab745494a077a09789fa5e63006c84c0d44abe3536534782bcf8889b
+DIST firefox-115.10.0esr-es-ES.xpi 600506 BLAKE2B 
8286ad644d5f21e3ac8e9f5e36dff847dadadf16ac229c5de9587b4848860d3dcb5971a2d88eeb5e9ebc5a69da9019d326a2c8088ef85abde67797e716fa96a9
 SHA512 
541438d0e347b3833dbba4cc59dbfaa8162bed2ce9d2754b13aa51a1cb9d8f23aa1a9c3dcbb105cd4e54cfa340b11a729abf72997f0c668f7b219d0492050ee9
+DIST firefox-115.10.0esr-es-MX.xpi 580254 BLAKE2B 
032b0710d39085154be40eb6d99a4aff0e338f154b7e9ec164ba07b23c1209cc9e3f01e35935f64c59cc2f8f1bcb8589bf8fc8a2b1a200aa4feebbf9269e009f
 SHA512 
d5184a94e817a8f168725301345f0867fe48230a83df598c07cb41fb1d631b6c6fcda75fce0137dc46fe09a6f08ac0b1dcc7e86c21dce5b8178ee1244df03757
+DIST firefox-115.10.0esr-et.xpi 530484 BLAKE2B 
ed297cd957a52a8675b9728e466df0542e9c0d433ec13d056bd5511d0c919a6e21fc6eb5d07cbac26d7e01b87b5eff11f436a1131ad00810bf8b8fa202300640
 SHA512 
c917422c8b29f2bd73f86e0d5f21707044a9049cdb1a9aa94dc47902f33f079bd4702d7c8aa3f8a70b4c7807a168b07c2fde461004651decd920bdba0c02073d
+DIST firefox-115.10.0esr-eu.xpi 581872 BLAKE2B 
4c12b9c9ab2edf0eaa5684b04496f2fa480436d5c8e4044653674b5fc9a1d71b2cff009acad885183e3255c40ac71bea9908856aae7ee656e22859ffb9592c4f
 SHA512 
beb587fffb50a82f5691637ff933eaa8a2623c6f7db12dd00e81458bf2acb06491475113ee6e45971e9f34590129e338d662a99521acd0c647f8f172ba707c0a
+DIST firefox-115.10.0esr-fa.xpi 581583 BLAKE2B 
68175e93e23ea75e60916408f930c88ed7f16c45f478af4a9fff2cd66a6d14df777742a27b3272e1f07d7314743f238a3003b45b109aee03ecca5eda5a4a08f2
 SHA512 
291083f1fefd4af71169c4ce2c1c5c9163eef9467edd53a2beef61283463c48b409b60a45139f538bfb76232484f16844841b377c3dca282143d6bc515c552ed
+DIST firefox-115.10.0esr-ff.xpi 469359 BLAKE2B 
bea8791b1364e1db63eb042eeeee869da735226b9deb045024c1be3720069d23fedfb6344096efc5e87b524abae05f0f289ae2749982778ec91f570a5c45b74e
 SHA512 
a46a07290fe7a62e01113a1c8d1e073fc313c5844b92b567cf23dd30239f4d610b0e5e3be180fcfc1dd75847647aa7c0114ca30eb579c88393c81a6bac91a800
+DIST firefox-115.10.0esr-fi.xpi 587616 BLAKE2B 
bb997ffb30e0f8cd5f945c0613498e0ca41c2cf9daa46d973d949195be6b41f1cc140ec92e1874021e6e4628d02a757b5d47a8594420372811519427f342418e
 SHA512 
3bf802d539a17f62bdba647f6a31f8c3f401cc10d8d49a0ed4c4b4b9788dcf2294cf1ce4f4736dab635575eaee55ec5d811349c724b38fc0b7119a7b69f86b5a
+DIST firefox-115.10.0esr-fr.xpi 619224 BLAKE2B 
a8d0ecd88bec5e248265a7c68100fc7b8d09b749fadf3327ae70a6b0d7a7164f166cd0c3b7dded0f043bae3074857bc65ec383c6e73ee88c5b0f6ab4a57ad0b3
 SHA512 
eacf92b7c72ef1323fb206b4499d0b2f76cf7cc24dce7a8671b66263b1709c28502f0c49543f1ea0e1100a26d2424f904f0f5ed7683c4dca3a74d5466da03442
+DIST firefox-115.10.0esr-fur.xpi 611576 BLAKE2B 
620f6f61fe5b361dfce3508062d8fd82e9419b1132e21d950b85272ff112609a65c2a2805d75998f306515e4066d0258dd2e8200db6137da3947c58b64ff6d60
 SHA512 
f3caac79e3d28b0e2b4b02019d4a813828397adf30c1095781f5ca307da993b3bf9a68ad8cfc736c88b5d536ca27d10bdd0cd75cd989dd9ef38a3302a93f8291
+DIST firefox-115.10.0esr-fy-NL.xpi 602857 BLAKE2B 
cca503d979e6a833a7b1582832d523e36fea7a592489c595469559a9436d17096719dcee4e8c27a0d43843a4fd71ead16346bed828f585cd8f03927dd39e4014
 SHA512 
365b2a4a74cbc3bb177735d260cfe9ab0c4ac69fb39bdc6ef01d42aa19023a3f060b88f521996bcf7c23765e6ddc7bf6739e3f098f8539bf31368df12d845a3c
+DIST firefox-115.10.0esr-ga-IE.xpi 465830 BLAKE2B 
4bc6757d1ccf7e129966349216910be0d6bf623bc157d2ff044f732c11ac29a485b926f3080947e5fc5a33e1dbf5234c190bc66f1d87d688fe5b90d7b6b2365f
 SHA512 
298a4a85f966d990f1c03afa9a7bfdae506af4dee8128fb3fc586541a53030244a8a17a04e7929e53cfc44ea6d452afa7534883bf314a7ae3a2b7eb18155e711
+DIST firefox-115.10.0esr-gd.xpi 582164 BLAKE2B 
2fb587aa6fef8c07e65c3b2056a50686db66be323a99b81f7109cf6c0349957f8b26a221cd1878825afa56cb2f42cfb6a7673fb351b9359c3e954f78bc2212d1
 SHA512 
a44db48e95024ab35a0944eeb47aa43fe306bc0138654d3c8f73975808891a3498541704649b97b8d74c7c9786bea44825aa9a957da328f115b30fd7f1ae4bc8
+DIST firefox-115.10.0esr-gl.xpi 589963 BLAKE2B 
5b7e60d1349fd32857154fe9b8996cdf487bd076f16f700286cfe497a61cfd74806a2ef957684bd3cbcef8c6b698d8456666abf0830966df6cc5722f008ff013
 SHA512 
c7965e666b7e483a1fd20d1bd2cd303174922e0d0eb626ba4b25913107a63c28657ee8738d7811217dc87ccb37558a5cc8f031cfb6d82a3591fcca7f424c880a
+DIST firefox-115.10.0esr-gn.xpi 618634 BLAKE2B 
c28b22229215e65d76bb54b090b542106a58e6a332879c6c0942e96e553d28fff6515e011c167f85b5dc3b313c016c23e4947fca2e0e5db64b0c7bb75d88912f
 SHA512 
324fc01db968f49ca061a31d5d81568d0ac66a1eece2341a2c9a5f5d0a9e17ba3721d0351db33f9ce96e3a950a467ced09d12c60186b138656dc553ca98750c5
+DIST firefox-115.10.0esr-gu-IN.xpi 520701 BLAKE2B 
dad59e19a09ffc589a18c01a018440108aaba47c44512f03426025b505cad9cdd51610f714463f8d3255a76d28f404d65d63a6455395c1a842e2386aaa45af16
 SHA512 
720f4716be072ab4391a8e4530f15f280de1e03aef5723461d144bc89b340a65965f0b776221d366d034379ad67cb8110389e478bc4e8dc6c0cd16a6012a1220
+DIST firefox-115.10.0esr-he.xpi 611047 BLAKE2B 
5f698763c3922ecccf936c4e1785819b10169fb8faec34ef25ba8794f5453fee1b73df12aeecf36fbb901d27f5727450300ad6c8cf4a39f3b9d6102bcbdb0dda
 SHA512 
b806e67bc99e703c3cf32674cbfae0e981bfc54991a16f0a802657bfb215ebda50376fb77c39d71d677c4ac15a034d7d0927095ccd28cc425f11ee6d39932ee4
+DIST firefox-115.10.0esr-hi-IN.xpi 557476 BLAKE2B 
a15da23b8209a255ef249834d54afac2d2c00b57c44b56a5e20973aef76be59f03f6e5c70e15804d44f1d22de95ac7829b86de9dd6fa2ec30d734cd01cdc206e
 SHA512 
641cfbf83d3ce3d59d0baa47c0c7aa1b04fa76187fb6a9534033e899837db9287bae882ce77e4ab19ce34921c248f246bcf87455d9dd81cd35f9ccd95eef156e
+DIST firefox-115.10.0esr-hr.xpi 547617 BLAKE2B 
fa5bd7e3b075e9d5b0501710028178407b5094af7034c2f4f4d272c191d30ab9cb80931a7a5d7054a976a65cd170cd5310f256d296cdff77db12cfaef0841adf
 SHA512 
491b2e9a813a9066b9d7ef7681e462410f285f8c4e3a8b1fe1e5d3378038512074a450858c96345115acc68758ec95ea1703b474befe7a5c631b1b5d59342d12
+DIST firefox-115.10.0esr-hsb.xpi 626662 BLAKE2B 
5006c962f13bd82aebce13227b3d14a1d08270c39feda551efa51d9cd994fc8834ac9a14612843ef566f44796dfab5fe14a9461a4879da6df47ef61bb4d10770
 SHA512 
0617b4bebdf5053fef1da1d069b860f7a74ba874014516d0b4ea2b634827ba32a598ac2a65e75fc8525526459831330b9b09129f01692b08d3b4941de25443c7
+DIST firefox-115.10.0esr-hu.xpi 628672 BLAKE2B 
ae9f9c8ca20a275147b53bcc804c42af8a941211df480ccf065b83e2f99fb65484f1898183d876ea9b40011abe740c963f2186a15ea6d678a17e82f2de8613c1
 SHA512 
7dc4f0838a520a1521f1fb9cc82f2efb4d8cfb5f84c4001d1d836a698403c7c7b4eae4c21fa7f253dd12df90e8261d2b948c594dfac84547a30a326092d9afb7
+DIST firefox-115.10.0esr-hy-AM.xpi 598332 BLAKE2B 
1320130cff1b8ca094de10b29da2071e97fc4ce1dd09e134d88b92e6807deb0ded7191825912aff37beab0164d3da6c7dab429115b74e036a9551bc7a8e65402
 SHA512 
48f3302b23c504f9773c342f4475b6783961465e6e21a390a30f82e7e87e396850c43b0ebc9ef90cd32cf9ab0319cb7deb291b87b7bff59fed6d1cc6386de3ec
+DIST firefox-115.10.0esr-ia.xpi 591857 BLAKE2B 
4077422ee634c49b94da3df499d068dc9dffb8b7194f16e58c9e9c8cb061d995b553f8ca19c41629e25404520a7d35dc36a3433d200c529044997ccf81b5bebf
 SHA512 
60fa493cfc064e38f4c4a01e381ebfa5eb86da2d3081f87799d16251263310e2e920fa8137bfa30777d878df1d5115c4c775390e3f0c9f0ca41a687ba7d3b827
+DIST firefox-115.10.0esr-id.xpi 556343 BLAKE2B 
a93f65a61fe3528e3f854cc3c5b10f723c85a0b767c7fcd8c3a5d97b4e3703b44c99a95c7968240b008cc1b029692193d739804c34c0500b8f0110e84f80100d
 SHA512 
7a6bc461c9f816cbd30e90aa60788c32624ae4137c1828968105a967f67f7573ac48871b41d3235365d572603d712c0aa6671f106ac48914c58f2e2a4f56d723
+DIST firefox-115.10.0esr-is.xpi 595869 BLAKE2B 
d2d230b1d2c4b847bd4f9b0d1d43c3741ce4d5aba0947a2dacfc50b167abf22f38e7e5ed3183589ad10ff5c45455ae3bc31554482049b21cae6b7d9854abe23c
 SHA512 
9cbb13142d5b4197d44e17a532fef1cec33d601f5f5401e5edb44072483fd44323dd97e5d203d6d62a4ae6813e76a10e9f5ff71ea3828abf9a1276e1f99d2603
+DIST firefox-115.10.0esr-it.xpi 548740 BLAKE2B 
b5ff1f764c41c25d2fbd296ebcd1474f21a1baf86055c169cb822bfa0f5b31c3138b3ed61359d6fee2c1744eb5be0c41390f987c2afb357d1d536e75d96d0cfb
 SHA512 
34a182440a4b854d59c2b69f22ce2632171b7880ffa25420801ca8fcb633c1da199ff1195e0de94dcad76425b0b0d845f11f2b46eb0415084f2ed7e95293c24b
+DIST firefox-115.10.0esr-ja.xpi 655159 BLAKE2B 
ce37adc79b3c62b6bbf6a0f0755817fcb824310d7e80ad4b525ee1a46fedfd719432f3f60932ce56fbf06f508af5f43c43d1234abd694fafdd80ff5f6461068d
 SHA512 
94fb87ef185298c2646a0285eafb08f46f29e6d0de34e40bec95b2beb6e1cf1ebdd1db08b46d42304717ac7fac312c06249080bc9f2e9473fc3ddfa9c918f88c
+DIST firefox-115.10.0esr-ka.xpi 651913 BLAKE2B 
201a52d9fe5e7e1caa01506be82b4cf29e1b530728e589903c44c2f0f43179ad7f7797f3c222c8e27896dc7dbbc4854dae9d5a7922e926e25764621e5f5e6866
 SHA512 
3b25de4ede114d5e7571dd799d846113dd3a78a58ea91e144b81f4bda76a3a9c5293450af35581b2cb3845dd4aaa82fe4ce5310384989528c7ddc7ac73256c18
+DIST firefox-115.10.0esr-kab.xpi 593080 BLAKE2B 
047e199db96d5c668dd20cd9b0766fcd22f811a79a68bf50a093e7e1bafddc7ac7507c8b39c13c92f476dc998ddb4b6f34b50ef2928807ef1f53b429ed01e670
 SHA512 
c58d7d359eae196b55e80b3004f06615d3645993a0870137bb0aa490bf6abd3846dd352ab8611a480387db9fdb8bd0fcac95bb6b1f3a1115c38599d1250dbbad
+DIST firefox-115.10.0esr-kk.xpi 686582 BLAKE2B 
b7fdb456422d4047487ad766239999aca17089b1bbca8485b76630b253abc43bc3d37c7b5f4b87bca2c7f0d2b84289178c6867654f57d477c9369b03f19d2bcc
 SHA512 
251dd83768114e8a7f32209aa6470cf17deb33eddb223a9b3a562f5cceb760bac885bbb47eebed6f561dd20801c0b0d90052af140b98c4b64839844666db232a
+DIST firefox-115.10.0esr-km.xpi 519947 BLAKE2B 
22178cb7f978a2cbe38645333ffce5b73c78361859e2290db7243fd71007da728949754c2861a45cbd4d296fc8a9e8badab145a67ebdd7e00a5d0e4e79f521c1
 SHA512 
56b764fbc3f2f83589dac56e2331cb4f93df7349a992ab510d5e25b1459b890f0d11831bf2e9ca818b4c01e83268ae2fcdd50ceea7312994a15469eedf29523b
+DIST firefox-115.10.0esr-kn.xpi 485818 BLAKE2B 
77cd062a745621bf91d59b02d39d23490533ec2d4cc018fea2cd042a1a93965c79d4b834c53aa785abb3371ec29e366a1d9c5fcda81a87f006e5e5ed9d672987
 SHA512 
9617bfc68b297a8440ac16ce2b517241a61dd746844552535ef2482f07922f91eb80228315da847b0664f84851a24a938af2f80dfc8641c53ba5816bd9bb6e94
+DIST firefox-115.10.0esr-ko.xpi 641342 BLAKE2B 
47c7cd8b35c3d90b5830e56a74667b08105c4974f2363bc27b5db47c6a7a51b12bda94d96add3a9fa0a7c8c4a4621b5b84601c2f3c327484dd824b87a6b0ba71
 SHA512 
2ccb63b7d167458502958490c078f34bf56da72f7668e835657cd3ed39d59ed0cb1f05275ba8746a3f065c036fbe09ba5f34a0744f64d969844b70dfd2b1762c
+DIST firefox-115.10.0esr-lij.xpi 476789 BLAKE2B 
4aa504e5a774d1b76692ff132a1af4d73d7b7869a2018d207607e4736f52cfa6eff3940734eca58063aac89ffcc819846394a740cf6288626f4b184ca1772b02
 SHA512 
f6ef22d34977355cd715196186aac82136d0e14f84597a0119855997f72678488fb5d0ee4fdb4526e363d8942663ce1b3256907a439b85ee1705d426b3cc70b2
+DIST firefox-115.10.0esr-lt.xpi 563124 BLAKE2B 
9f3c2167618cbc99dadae9ae61e22e3b72aa770578d6958acf71d9e14636734c160324eca018d31558f00024e8aba7166abfe101779414b5e2abf0c7ecb24539
 SHA512 
9f0d9a47949e254e3812c58d5cd1721326f964d01b8a810064cd6f5f7b7a0af8baefddd8a2a26f4c59949558584b6f5db3849acc2c7e8cacc73963ebcb9d7cd8
+DIST firefox-115.10.0esr-lv.xpi 462809 BLAKE2B 
df073484ee5f8abd1ee83dfffe825c5df715f47f6d5c7f1ab7de60663fbe1588f963474e4908794f0ce19d8e85ec7ff54ead88d9f7087f9f552cfd00081e0d0e
 SHA512 
6bffc172fba410843057f09114cb6cc96428f9bea269985c510f7e0b92b568aa56ff3f85678ad4ba048b52d0252ce46c3f27e147d7016ec6e1277f3e1fcd5d3a
+DIST firefox-115.10.0esr-mk.xpi 487303 BLAKE2B 
3046372dd67efae6333739b9a33433e4a3b60f421bd11675a1853ac3a26a58e77c74a23e413d514c9907056e79cbc24d44847177d7593ff86ed962b8605ae0bd
 SHA512 
d26c01cc23e36a26a7bb4bc551df30ec80331f2a7251b9d82f6cd6e8f60496514e834be68dd03bb0632bacc880b1a55343b3b78778ae0dad72c5332daaf7992a
+DIST firefox-115.10.0esr-mr.xpi 524680 BLAKE2B 
a45aadc291b64407660f1d51a43e27cee2a4ea2541878c3cdafd35185b72422c20149b266e6c9ef90fa6768abfb1ac22b3bc77ed86a897bcdda814a153123d08
 SHA512 
fa1f6438a20d19fb98bfe95b62c75a961984a1c9a052e2bd497ae75dfc575d312750dea89113a37cb56cc99a4655bfcfddcf9d4e034facea845574563901b46b
+DIST firefox-115.10.0esr-ms.xpi 443377 BLAKE2B 
fa129de6ee1857095db3792cf31a995e01ccad32bd03ec746a46aa7926908188d6d873b152b58ee2a118c3e15d087e8fd390e4701769f7743264e79aee6ef9d7
 SHA512 
820f8f93b1fef6b496c22a8c0d0230725af29f7ae76af71629596b57db26e68f82e48a313c67f767c01b561493869707634db0498ee4596fb17555993c299f96
+DIST firefox-115.10.0esr-my.xpi 510866 BLAKE2B 
2e7a7ec5ed9a482e41dc6acc3d3f8a562942a7668a861be0956fbf932a842a5112d6caa277080dd1a64d0bef9fc08617c8874881e4c8d6893b7b44b2522c72c1
 SHA512 
6fc3ab00ce40f3802ff7f1f74bc06fd4f93ea7763e45a0f5f6f6914a8af21103fe9bd4a16251bd78503b7c1318484ac49897aecdbd97b5c8363a725dccb7c6ad
+DIST firefox-115.10.0esr-nb-NO.xpi 587898 BLAKE2B 
f202528864ffd4411e0a2ae2a48108e31b0a37ba512df061deb7e125746b9231436f7a1c38adfb7435d72fca7ebd8088addfc4cc73abf0a76b852a83ff46eb3a
 SHA512 
2fe545622fdf38f50c67c53b790497890099746f919f7fecdd799adbb6b541d4f1d8c91e55739708a41bae7778eddeda597c9c18ac32a972ca8368f320408c13
+DIST firefox-115.10.0esr-ne-NP.xpi 482022 BLAKE2B 
a5f8878dc9991d124e8a1d67e98483fc26f9dfafb32072a8ded597fe7d0182a8e7bccb1614db394b573d0862d61891f70063935e091b513348588b49a6fa4266
 SHA512 
9f372ea20c21603f64a649a458c17f664aed28a954ec7040000718b705b74c08f1cc043c281d9af14caf50089f98b4dc65abdd149de6b4e929d45c8078362d06
+DIST firefox-115.10.0esr-nl.xpi 596847 BLAKE2B 
1f82ec382539392cf162ff54fc357e64a3d1ddb644947065e804365f631ddb8e670ed2512c3fea48b7dddaabef1704a5ffcfd6ed527ec9f580b5e7acd792fdec
 SHA512 
3b44abc4531cca3979a6aa53c75db8a75183f19e1fa241c9bfb444063236cb5b565c95a604ad7a2f8e4201b0d0db6074d96fe74217664cd369431505f7cfc16c
+DIST firefox-115.10.0esr-nn-NO.xpi 584085 BLAKE2B 
62b09a10f8ef60afb1d12ba858c3b32132a6fce96049721d9a0a6c818d264ecf6c2e02b70bada8f9ec35b83f94bd417035074cd9cf06c279057dc389cac0758a
 SHA512 
ab8bdfbb521846f3baf4511a4d9dc0bbe2a7f41afadb6669648df04e06987d72ea8475ec8cc1ca40004b51b82fc3a1f04e0028e1d3d19ccfca4ca9dc2f5b9c9c
+DIST firefox-115.10.0esr-oc.xpi 596873 BLAKE2B 
37a36424ca5b38e9ee3d1843506830909c1b214eb5a6db9f265ecb85a088cca2471ae878ad67020b24adf8cf6fbeac7e5b186bdbdd8a63cedbfab22aee844699
 SHA512 
af4ae2ab2d1210db3027af39b51dbd90c467eafc84c03ce8182b942ae0f2ca97ec0557cfceb4c2a96ef23ce3f976b3d9a16805c62c6a46baf07cedfb3334fe40
+DIST firefox-115.10.0esr-pa-IN.xpi 670643 BLAKE2B 
ff24cb3d43d69caa77ac1eb68eafeef5fe0ea859f14710e514d9ea50ac024e92f471dacf0c14da0406622096f46cb05c8163d49734c00931ccf7c9b3132f1523
 SHA512 
a21f18a371c15495540facecaab6eed789835cdd715ab603797112e31d11211c0eb0e09ecc4bad111748358c00ab6d4e2f95da944bde81fe9350e29887b67e82
+DIST firefox-115.10.0esr-pl.xpi 615680 BLAKE2B 
e0d3965b96d349fa7cb8690334cf7bfbe43a55a6ad5d2aa322731a241b0bbd9152b54055633da76112ca9dd178985360fd422b51dab93eae1d5cf042a1a30567
 SHA512 
e94521e43918213b969eb45f4fee8c2cdefa206c3dc4baa0a65da52bb92feb979775f4b9f9d98ddf04f4eb7a8daa394c4d8070f5a8a0febd24a96cfd41f03369
+DIST firefox-115.10.0esr-pt-BR.xpi 602114 BLAKE2B 
b2e96292fc0fa9deaebaf84ba103b3af60806bfe261ec81dd554ab80a5cab7a9e40c3c086795b40afe040deeb80b622315f96b8951e040a5ebbaf7ddecd0bb61
 SHA512 
feb2ff4ce4b5e4d85b2fe3408299740c026244dc919551bd35d37068dcd3cce1b937ae97d308dd9d1e843a3b9a23bfdf3669b683b6eaadd79b215de687f7e298
+DIST firefox-115.10.0esr-pt-PT.xpi 598023 BLAKE2B 
a1cf9e8a576c0157c3f5aa3d77c6a901f29a1855caaf8a50557f61cbfb4e03da633cf3c21e2abf0924d5026c8bd167f92c44112e6280cf8c43f4d7cce5f63a9a
 SHA512 
49ba90a1273a807b34703a01140a8bbd232146211c77789b5d1ad5652d188a2330f817d81a7253573eded925addc60e892823015d8b305ce0c3dd3e2ca8e6625
+DIST firefox-115.10.0esr-rm.xpi 595706 BLAKE2B 
12299b98c43f510d2b6ac00ebcdcc8917e91d6862e63e80dd3d157b23f0811644db8903780af90ede2d75a63e68535f6a6ec1bd31387182466c55c86e0631088
 SHA512 
58e07a9c01b4f2d195dbea1cbd4a13a30b1c36f2f0622aba46de2c289e71baf7bf2d5e509cfde550a9104f72b248877fbd4ed4e8b2b55ad2e41bcaf802f09367
+DIST firefox-115.10.0esr-ro.xpi 540135 BLAKE2B 
f64ba0e7394adac48eedc8fc510b65c7937fe19ab5e44620cb001787e13dd2915bb0ae2325f32b2bd17ce5678e3ba433ade5ba2ab1481813c0972ace184722ab
 SHA512 
dab11a86fdb19aaff8b26e5f31895b76543a0e9b103ac9975260e359f259f590a3b6715b673619c83d28cfc38ad598f815ff1ca66189268a01a0e2ff0f6d072c
+DIST firefox-115.10.0esr-ru.xpi 698643 BLAKE2B 
0b746f79e8c840ca82937cdea01ac9968fb5649fb31ba755f2181dace0e60d6a2853c303fa7723788d94f1ab2f5acf027fa5664ce897ccf679c58582d222105f
 SHA512 
3a22fa98b9947808c46a14e9ec4cf833bfdf9fac7e84d97fbabdba336b28fd6552264c74adff812d31422821987b7d5bc5bbd094fd736182a455977edf415bc0
+DIST firefox-115.10.0esr-sc.xpi 559173 BLAKE2B 
ece7d9a454f881aba1a14436fc21342ba7debb4b6e78c6764c204e1aef8f75cbab00b60a1cbefe6bebae313caefbf9cde1fa368d68c3143c21bb82a1d79367f0
 SHA512 
0f593d55ac19300513ad6dc04b624676136d246f22a8307ea34c3557c7c190660717e106018137da303187ba50ff0eabb356c36bb0e7b9866d8c31c8863a8035
+DIST firefox-115.10.0esr-sco.xpi 503579 BLAKE2B 
679eaaaa96969fc0ad3426dfe677355031d466779bb4f9558043d83afd750295536b9213e266ce5af28055b6accfcb0627f88196c32713a508ce2525e5870c57
 SHA512 
d956d54de232194b9cbbbf2d0e075067b0a0e7c53fccb6d9d73fc94baa3b84cdc7ae25d9f8410b1367da144b7fb4ce9dbc9f4fa1fdbc5b99c1538aa310f839a3
+DIST firefox-115.10.0esr-si.xpi 597885 BLAKE2B 
7f22723c96772e3476c4dd904e32473c1b38feed90f4135a3f61be06d89f592f3867f99dd9596092cdd86e1e9d4f67f147b80e62ac8c166d61941857d58c8cd8
 SHA512 
921dec163467f25b6ae55ca3ca1c316f2cf33b2277ab89e0e7886b675345239b38b7ba8e6a2ac9514d17f728df99509ab3d21cc73d3eec1febbcd87b6d37db5a
+DIST firefox-115.10.0esr-sk.xpi 630376 BLAKE2B 
978f6f589687ac61a240858a9f05f16c038aafe24aa8cd6e9228ecc8b43f354700f7e54d9d83f8e40c1d40fcd00f40e5aa4c162021cb179cf741933e84773d25
 SHA512 
48b64260631a00f997605ff98f705fa954d16bb16de72ff2fa466ef8aeb4a2bcf60480aa57828fcf759cb554c5da959954ae53a1c9beb88a5467473f8d7c1c71
+DIST firefox-115.10.0esr-sl.xpi 597704 BLAKE2B 
64d37abf3d9a3beb29e59cdeb51cee34ae4282148ccbfd031f72817161f11025473e3f5d3f289382508d87621ee9b6be4c20335ba6f7c59dcbacb02aacd6a409
 SHA512 
f205fa87ac433902430e37a0ca44bafba39df6965c331301dce56207118fa1d2d13607cd433f0bc34496c06ab013023ad538595f2a27e8af4135c973d043d796
+DIST firefox-115.10.0esr-son.xpi 412091 BLAKE2B 
407dc2bf210b203a9d37f1aec654f6c04bb2f293caf6bf69dc7efa3ea3334a9497ee597cd09f0bf1112999e77f60bb11dba23739a44dd350c654596542657636
 SHA512 
46682b81d0e7333e57799c3738afac2eb3946c302ccbaee3164672aadc712d4c4e1700e0a92b389796c7513616db8f947fa5d2bd1ccc60aa32cf7295fb708b1c
+DIST firefox-115.10.0esr-sq.xpi 615534 BLAKE2B 
5094b055b665bf19a50b95f3572eb052e644f059657535050c16876b758eb2c5dff1cccfd1056c40703099bf62085136ed41fdff30700e34f0439b48271bdc74
 SHA512 
0bc82c799a5d9b6074eda835cd1fe94c8d5df6e08cc488bc24ddcbf12c9e4d3f3c5797059773e19011d951b670e1a909fe0b0118e02bed86dd5c4e089a1c549d
+DIST firefox-115.10.0esr-sr.xpi 630486 BLAKE2B 
9e8f7ffaf00ba44a93cc182907ca53ccaa1ccad062b9ebf841ba8652e1548e9acdb1c7d8236ca9b2dffaf64069308e8c92b159132d49655cad3ddf3ad642e925
 SHA512 
c9b1f055b00f33ddd07643e8c30dc83fa23086e347e6f2ea32eb9bcc1b4ca4765ca588247bab63ef56e273f79f085848bd4df6f3221cf177879675c36b8c3d4a
+DIST firefox-115.10.0esr-sv-SE.xpi 599917 BLAKE2B 
18b189aea66cff56eae3a08e1bf4d7e4f727dc464b9038e5db1a47906f987f9544b2284a1619469dacec164903e88adf7a363813cfeaaf769ba08149e212a791
 SHA512 
5e282c41d53010329966282b44b90124a2329a290a8e9775116dfbd0ee2416c0353b78651ba4d24f70920a79f6c96734394446cca3a855622eafa575f4420089
+DIST firefox-115.10.0esr-szl.xpi 518601 BLAKE2B 
a6e5dda911576bba7363c90ad7c64edb2a1ef9f3687b2adf21989534626eea486cedb20a2ed2c07c236e3398c957e35051047d3c1842255538ad5027d7bd695e
 SHA512 
de21c5a996618e57abdafa9b943a0f5eb60134995dbaacd0d3ca609d6a63cbedfef6bc9b1509cc116accde9eb0776f82689f001923621af5df04c05fe5fa9509
+DIST firefox-115.10.0esr-ta.xpi 501438 BLAKE2B 
0817fad6187721e3d385a4e7a478048133258d429ae46d79a20d8b31bca5efdf30e29c93ce03d917a43582d7e15ef81d39e0bcb5ca9dcb50f1e483cfdc7a4368
 SHA512 
f3b55a6d37e486e5925e2a3d8711112929119d007b33bd81be06c476cd5ea863d6783b9d4cf4473618284ee774e1e976e3daeb10db0638ac02bc1a6714c3b93b
+DIST firefox-115.10.0esr-te.xpi 551802 BLAKE2B 
71d28a424cbe6ba753d9d3b2a3dac8a96b1de29be807ff4741cc4e62a7e1b1aa7e130171dd4432f16c5ae8fa8b0414114340f269a64556c631adec410c69ab77
 SHA512 
9a72aa4bc873b92dc5dde5ceb7eb5203e1f3c2d5f2a48020fb1f236c923b7ffb88fdeae936cb7abec4b9bbc03c290cb8d6aa0b3cb3b2d4cf041e09a6b755886d
+DIST firefox-115.10.0esr-th.xpi 671605 BLAKE2B 
5d5f4281b1a594bbc8fa66cd155598d29dc317a51a0112410c0c8efeb99347041591968933119aa117d12bb5f59487a62b3a03fbcefc1e15448072ff15a740aa
 SHA512 
46b2cda107e02848579a60981ac686df5a445ed4450b5e3b2f040c164f393808a9d412e7b62ed98542877f80f57263ee6471abdbd3b65730a90f10474c7907ec
+DIST firefox-115.10.0esr-tl.xpi 525552 BLAKE2B 
062f2f70e263e0d9682132e1c4e00d1d8eb2f24150d0ee8f1ff9826fec57f35652746ced46f814fbd7b92be9f7a408dc379f7a02df4baa44458b3fa761e65dcb
 SHA512 
5f349794aa78bda010bc7c22f0a8768eda04543ba4fab0181c43fbf3c9f5a9cff304f8c225f5375d4040f875175ce031d4791fd17ca732e44bfab5278da9954e
+DIST firefox-115.10.0esr-tr.xpi 611465 BLAKE2B 
b3d7effa5f1b56d1e2fc40f9dfd7e445b4589c3cd618ea258c3a4863b17764ed6d5e74496c8ba7c606dcd4f5af1b47e5f1159a6b14190a464724a83609dafb17
 SHA512 
cf1f1e9fb206882a27fc01105d19acaf8b6e768b82543f8e5c7f3fc239613693f3c7ada229bd72588e3e36d52a6b921b297b21cde40e25195c1a12953dea95d1
+DIST firefox-115.10.0esr-trs.xpi 496288 BLAKE2B 
4ed669319b42b0e6eb59261235a7289e7c91e3fff72dd46dbf2e8c2d3a869b5505d0e05a74683b5525e73687bbe015aa0ce25aca2d6b8c2532ef40b2fe9a8f0c
 SHA512 
a0aa6aab9e79fb8c72d1b47bd6d6e8cd2562e2ec20e6fbfe04e28fa27bff2ed6e81154805aa26b893212f4473e8e9ab327aa4428c64e7d3ba3ca1a45597df34d
+DIST firefox-115.10.0esr-uk.xpi 691161 BLAKE2B 
3947b019a27c6fa9e16bb81f910c067aa821e19cc099856c360e193a0babad6a834077962288082cafed5700104f382c24c6104e58a6159c79887824b271181d
 SHA512 
9c2ee95dff1964f76140b668035ba1d6e664163d7a7b7e54626cf8c72f72d54c1b2766c3c260025d941d535548b16ae44d830563aa708404822a14c71fad7bc9
+DIST firefox-115.10.0esr-ur.xpi 552294 BLAKE2B 
aff668767eb96e3f73ea8a348e6e9b42177f93eb3a72fcd10461fb1b3ae3b3f83ab11eaf7a29a202121291dcb2c8fbbea0226b3f5ecd09af4c4c13f83f64b84a
 SHA512 
41602d981c5179d23af32beb7aee74cd1bc77076b5f6683325599abd163ceb1ed2c546715001e4d6c689b4d32e2656dc35ad709d8aa882f4855752176cdf2352
+DIST firefox-115.10.0esr-uz.xpi 472952 BLAKE2B 
7cf576fcfa54b7ae6379a271e52f3d9ef361437d00f5b58c4d1ef9b95eec3349f3c5f86adcef3aa9acadc1ab494d577e281b2436c7ac87ce921afe60ed414df8
 SHA512 
2b497c0d12c57c50c3f82413b2c910ab73d23b9cfd6eaa32e6a05d5bb3dde1705d0c30aa5f07d1bf65ab2dda110428dbe5fd384291bd2ff211a0e1777fe255d1
+DIST firefox-115.10.0esr-vi.xpi 635921 BLAKE2B 
9aaa16fbddfc39ce050861f34ea556f478b3f1ebd7f1bf1c16b824c8327d1daa083297034d5b6b530b1ef32d1aaa3ec03c3b64523a3a292cfaf4736be4a64810
 SHA512 
02c5eeffbcc6e8b86af07cde9610e805e4608a4f248f02dc232686e3dcde05bafae238dccdbc4239a273f140546c1cb89f32b8d4b7008baecfc1f042bf147fc2
+DIST firefox-115.10.0esr-xh.xpi 413331 BLAKE2B 
91044dd10d764a276c14291cdd1540f4c6b4c6c12057c1ab7e91f9c233eb56b7ed5e0c17a09f939dbb445d8b1f5571d2619628f4107c0595d76dc1ba58c4adda
 SHA512 
64db456904b4669958ca3b1fc340e3972e5c7b96c13dd9a2d9b1b208bf4fed4713f1c7e007f21a291d4ca9d3ccbd6993d102c90e29ba37042720505f1a767011
+DIST firefox-115.10.0esr-zh-CN.xpi 634778 BLAKE2B 
461d085d9c6d259f4a3564c149b9300df48ce1ab0ef9222ae25594c3cbb933d2559fd2deac806830f9107b872169a18edc22b1dd08b985fb28f21cd71dab1429
 SHA512 
cf9db5ab2029cd4bd7cbe02012e68759433b3d0cc6cd1fcaf5b6774e9c111cb65f577f128a55b0989869879d4e4f24ea11ccc86bcfdb05181b0aaf9b65b5c0b4
+DIST firefox-115.10.0esr-zh-TW.xpi 639166 BLAKE2B 
8dca774967abcc50d6408eb7a05013fab8d942c723e79dee956aa09dcbe1370c4087f9809623a2fbfb616c029f5c002b116a302e04ef2efc160964c193cbad9d
 SHA512 
0f3d1f2e14f5c70f08fc6fe25edc4ad07e67936a90820a8f432d48ea3aac976bf528b267ebaf285d1d394d9a3b57106d9dc8a389389ca4a4bf93d5b0a61b5c44
+DIST firefox-115.10.0esr.source.tar.xz 507826764 BLAKE2B 
342d5cf4d61b3efe3dde6a6e53f064739d4107690f1d101915ba8cf2214f518aa8c7490903e20179f0874a3bd62871723e877e8f789d9816f3e0d9227d751eb6
 SHA512 
0626e2c68ce43f24dfc2b9216e2565537ad8781daf4195d53420e1b78d57d0f6360fbe56b0ddbedae3818546c72472c85c1ff2b208c123d32a0543e666f42b65
 DIST firefox-115.9.0esr-ach.xpi 456930 BLAKE2B 
c041593a7778b2e17309061405f2efa8d969eea14c5e4ae55d1d7f50f8210c94c450b3ae2d667e577fb086ac729f8efea34cd57127b3fccafca47493dfc8584a
 SHA512 
840bf034625e3dff62c701c80ebe5af04bf92be54de5950be46589118feb74a4c1fbf8d8a55e34309da62cbbf94c9c863d528f0448bc8540e643bef058b7cf56
 DIST firefox-115.9.0esr-af.xpi 413586 BLAKE2B 
695f26da6377cf4db1d93a065156ef590fcd5663e69e96093e420f494e354e184769344791b24e13fd00a29bde9d14adc46936209f2afe9ac330b7f55e098a3d
 SHA512 
b7c4af228dd86f1913b06b0ffd2a0fe022c206ab405ffb0e2f224f5e891aecd539e2a5c90c0b617ad94f2a683fbe9dbf1bc52c7b45bd5e0557df86862e8e0c6d
 DIST firefox-115.9.0esr-an.xpi 497249 BLAKE2B 
f77fba39585ab36a89db1bf1faeda9c110fa0841638334be65ed7e472d80f0db903351a8ab7c9e8832c596897f6ff8827fc1583c0399c68c43c271746b809a15
 SHA512 
66176fce34c1fda1e58e31f89ec1d2591ba1428b3755d5045dc763c8c186ffbb7ca3e0d29f7dc9492263169f3a6c73a3a918b957265cacd23518a166add4413f

diff --git a/www-client/firefox/firefox-115.10.0.ebuild 
b/www-client/firefox/firefox-115.10.0.ebuild
new file mode 100644
index 000000000000..02acdf4ec7c3
--- /dev/null
+++ b/www-client/firefox/firefox-115.10.0.ebuild
@@ -0,0 +1,1400 @@
+# 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 )
+       !elibc_glibc? (
+               || (
+                       dev-lang/rust
+                       <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-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
+
+       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"
+               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, #916259, #929244.
+       if use ppc64; 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
+}

Reply via email to