commit:     6faa24b4cdcdefa24c31b959d2e6d9a15e8834b1
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 11 10:55:35 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Jun 11 11:17:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6faa24b4

www-client/firefox: add 115.12.0

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

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

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index f50426cfefff..d4ee267b60d1 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -98,6 +98,106 @@ DIST firefox-115.11.0esr-xh.xpi 414784 BLAKE2B 
0c0e12593115bf6bda6e94c6adcb9a565
 DIST firefox-115.11.0esr-zh-CN.xpi 650822 BLAKE2B 
2c47112cad4d9ed8d66f6a6368c0939611d717b9d8c0d0bd9668f1c4c60b4e813cf1f81424d092aff8e139fc0e53171382f60ffd2f55b75c438f00904747f03b
 SHA512 
79d7473f7ff7458f8570c0fc3fa8e192c9b355c32c6df9f8c4b2ad626e3616d56ce1d83792e53a275d83b977e8f292b56083f50154ecddd3056be7140af60eee
 DIST firefox-115.11.0esr-zh-TW.xpi 653644 BLAKE2B 
ba76edda00ede0457a31267f6efbb12a38fdab0dcd8e90da74267e2a0f08a18744edb5b5d4ab05ba9fc26e8697961178e5a74b9c2637b949b9aa8588a2d34c3b
 SHA512 
029c0b0682de91445a784bc0b5bfc8813b506ccfacf65ce6f33703519a8491bfd9bcfc76815e8e8718b67ccb78479cb6328538850c6ce67b1a9670d7f6f7abc1
 DIST firefox-115.11.0esr.source.tar.xz 506015444 BLAKE2B 
ced11d0665215dbf0aed710015a1e27863ecb8ccbba71ff6f6c57e1789e54c3c7c1940507db86ff2d8eea4d323a9ca7fbc40eaa6eaa7b0ec922ff69ffad64886
 SHA512 
0f3a87c99fb008088afd509d9259f893fdd44ea6bf6a5e69806fefb8d355415e81b9e8832a392acb9d0c1c50e4add7f1362a4aaadc35e1d9c2e55baf7136aed8
+DIST firefox-115.12.0esr-ach.xpi 458871 BLAKE2B 
2248f7c3e97a1dbdd8faec8473763af575fc26a0a1ef6fc2f0d2d8994e2692dbb5eb6a304f58ec26ac856ff4d025e41542b0ef51652bb4bdb8b3c454f8e187cb
 SHA512 
10006c2ac7120eebaa0070e067d48e5d841d17f66fa8dc6c7b1060888d9db324ffc46cb112c4924224b61812bff232fa852f75f5addc910b2240a83b30d7411e
+DIST firefox-115.12.0esr-af.xpi 415033 BLAKE2B 
9ed02f9444f6448f6d83c9dff2c2b3774742e3286230f2fbc5fabb01a3c754d0af61dd6d462e551bc546d73f2e94d78e591c199323545d1e8fb675d1ea7d1592
 SHA512 
caf804b635bccc5943c5884bdfa377a91b219e0b896fae6bbe1f087841e5959c9e3d452837f6461f24dc08f660105a0c950dbb639f55f6b6b1d18b6fbbe687ac
+DIST firefox-115.12.0esr-an.xpi 499416 BLAKE2B 
5d80997630dc31824a1a7d0ab948bb0bb7c986f84a5cd958dcc7a36d627899024d2e8b1fcdbb581a698b909aec8fae93c198c25808e37c63ef35911ccc31a831
 SHA512 
7128bba55aee22d753ce5b06395f920d5b389b4f0ae73c49458ba6ccfd20c79fb4a8cc4da670f4b7b50666b9d5dd8ee9983b28feef80d211cc74f83265a96d5d
+DIST firefox-115.12.0esr-ar.xpi 605448 BLAKE2B 
0ad4f9bc350d3045163958bc0436f2b1106def071c7cfb7f4fdff579310637ef490a9eb76d2718f1d02c5d354d2c3b707f687915308501427fa3ba52c2db5e3f
 SHA512 
9267276fda3fcc8d189d3c5885b1b748401e634ec5e9c6a70461702058cbd85d385dc479a89168311783662eba94e3eca2bc82f5c2e76d6efd1e96ffa5a440d7
+DIST firefox-115.12.0esr-ast.xpi 491178 BLAKE2B 
b168585a78d30f93026d957c49aa56e62072bc1b13031d8c4b02c4da2b56e17aa2f0045978aef38a6ff4af4f7700c2301369e9c646ba50e5983844a9d4b77709
 SHA512 
f68b577e9118218c4a3afcdc9332efc1f6acb1522bcdf062f8ba5fba471305a26a817fa023af03e11c9df975771d23453ac63872fb113bd5dc04fbddf2eec28d
+DIST firefox-115.12.0esr-az.xpi 485943 BLAKE2B 
39433d83487517305966792cd6ab1da29578d192bea4e55dc8b0c347ccf68c060348da5d5e19f22a3371dce7773eff0c78127c8b551d76aee6ab4b061dc61e1d
 SHA512 
6eee0312d977f6f7666a7b1da08ec1bc169f53d195b1b72e3022731f1f32b24b4965b96076d5dfa9522724931d7d4b92ceff94ac1e89e54fdec695ca735b6e2b
+DIST firefox-115.12.0esr-be.xpi 708816 BLAKE2B 
154af6e9a5796c97fbc1243fbd478126fc212f39337cc373392cce67eeb2074f0dd45b3c8bcc140a986863ed098cee2d3783aaf996994870e61a05106a408099
 SHA512 
39bdb8c0641c3a47df9191e6a87f24bcb79ce253d84493b97a1bf2ec96a07da8d21ce079e20d78a55a2652e10b53d55b0dd7d0641d6d11577ffe772eee03adec
+DIST firefox-115.12.0esr-bg.xpi 597482 BLAKE2B 
bd00820d9ef5886c3f79d77102e14725c5c122d25e287438a374aacc04184ec559a4860ec4b0fff5a7ec6f9cb0da889a16101a8cd3318331971ac83c858ccb2e
 SHA512 
70c96aa87b62cb5a62f398d8da8efcb2fbb48f3bfa1ca863edb1805830d09e0c91e2a219d0ef15ebb450376cb4f2255a96ef84014ddc5545797e41759b934fe8
+DIST firefox-115.12.0esr-bn.xpi 576198 BLAKE2B 
629984fdd10b5b633cf1e6c580da7e7744ee16fbf9266b086d26c458c0cfbfa8a31ad51cba94b0691a6aeb11a80ba75ba6437e5c5c99257ee8174ca4d2fd7525
 SHA512 
a21d7cd4c695510707e669c7ee98dbf39fb6bcb36f396d51fa42913515f45f0fbabd011c5cb0a649a877580282426e1226c93b45995a6c5a6a399c2b64dc50e7
+DIST firefox-115.12.0esr-br.xpi 583261 BLAKE2B 
c1ff94f26b3ef4f6459d2d571994fa1465808b8d7555be1c833bb7424c6edc22b5beeff4bbf728457ecabbb954a5ec00a4657fb7782e9de86964a16c4d7ee1e4
 SHA512 
ffc2e8c1db04d1c60c797322a685b3dee07cbd0ac9a0baa177966191b4ce01990bffdec8e9f224fae41f22ac57b895018a4c1696695179c6b6a25addc5d762f8
+DIST firefox-115.12.0esr-bs.xpi 496138 BLAKE2B 
c24fde1d450b49534473c3f8a765d758d3e4e03d87aee04532a2e31181042d87ae0eb1e46e6ab9127ea990f63feced030c368998f146471397a04266588014de
 SHA512 
d849e3b61ed2822a4250b874a386f9a348431318dd4ee60ccf3dc3c6c28be131a0f4504b8f2ce07a044216ccf310d94c4f359937319213d73324ed39ef562e64
+DIST firefox-115.12.0esr-ca-valencia.xpi 539116 BLAKE2B 
7cda7f974051c78dc4ee0af93dda1be9e73f1c1eecc44097fbcd5d37a5e3f4fff92a859c99f7d41f3d826e38a89cbf022d5b500755128d7d805a32ccfedb29b6
 SHA512 
08ab75fcd349c4fc78baba779330c975908625cfb5c0dd6bdb70f35a1b261b6276b9898291bdc7fdc7153faf0d069f466c0302b0dc360d82c40e21b09a5ba1c2
+DIST firefox-115.12.0esr-ca.xpi 578636 BLAKE2B 
7e4f0382c0b227098575f16a50b5d8e32fab616ec36cbea905292750a315094089466111aca6a92659d73fb447da2393d9a51d893a6d9194fe0f4808bb9ffabe
 SHA512 
c73b56efb677281e2562cd6ee1101bdd2ba02480839463a759611f80cb32285904e9714163d9d646a2e0c13cd52c28c22952de70efa781d5d825b82afb49be86
+DIST firefox-115.12.0esr-cak.xpi 586196 BLAKE2B 
79a19c17a8ee7153f37db50a1e628fed20c5b299fa62d62d7642afbee461f90997781ab2bf24ff5ca7c750a6ac32370026e9058f39d89876808c116dcac37596
 SHA512 
544b1e77224bfc69b4c26893d996f0a9ba85806d592f7abbe945f3ab970fe2c4e2201e3c24f6f939a408e96d44ea40744c01bc11df722ab1bdd1196340ee7340
+DIST firefox-115.12.0esr-cs.xpi 652720 BLAKE2B 
5a66970d37b7127a4dff31d3d31d57761647615e7e19c0c12029d48c7c39590f5e9a5afbee138da6f02b06c8c158bef97b3cf506cd0e4c43dd90a60101691c32
 SHA512 
eff4635f9a3e96e143c171d6a8f120631c0244824e1fad9fe3cef3e2d2ffbe1e2573e9f4134622ad67d6de87cd9e9a429688024a8a3bea200c9779a7f7f5fb04
+DIST firefox-115.12.0esr-cy.xpi 618131 BLAKE2B 
0516c1cebb90157040ff87e82804d0dfefb7cf117086b2ffa84abeadc74d2295073a868e49fa4541c61c97a9b03477e85f57faa29637f85ba96ea9634b05ab33
 SHA512 
77dcd57b4a8a4d630be5953f51d4804676eeeb49a3817756d6b967504d5cdf62f79481c1ed64930e860b5ed9cf5244bd90e1caf01e4ee3115920bb290135e4a4
+DIST firefox-115.12.0esr-da.xpi 607127 BLAKE2B 
466503bf3dc57dad0254f5b4aa91772ceed8a768b2ed39b4057b9e92d66d19117a3f6f6ce87a77407a4421c3349e033fb98ef3c83b927b4dec91ce24c40accb7
 SHA512 
f223ba174cf06d04d64893fa5b11123f14c8c8d8de584a15a574842e5b7dc9a3478363b14260ff7f98427b5fbec67fdbdfa19b00d12058393befdaf734f97d70
+DIST firefox-115.12.0esr-de.xpi 625998 BLAKE2B 
431174710428e888d43a15d7e27b328bb584098a5cbaf5ced8698e5ae21cc4d91b47537e026a889fd3aff0ac061453d2129bacdbd8c989a7980e102f3ef68794
 SHA512 
a5c7a3938962dd908bd30188064f878a307fa182c30bd38692c66e6076221afdbac917e365230ede4695d36354b83dcd7f68976221c63feba24b2a90e5f054ce
+DIST firefox-115.12.0esr-dsb.xpi 645214 BLAKE2B 
c3fbb72b15f431e22512d44bf39c7d30a68e0394d2f5e33c26b758330027b87e8b15e5b15ab013fee2bdc68d905e8e826af21bd132d6d38728c10bfb8cb39839
 SHA512 
8e890f3e900ffad9bfa3052bc083350c67e7e389252df5e8acfea3bc2ad9e1977273f02a13aa3fc2f17e49f7f5760e17a13b588c4472598addec5f083b389fa9
+DIST firefox-115.12.0esr-el.xpi 726149 BLAKE2B 
8365d9da2f2a2011f95a6397b4c938303a7bc38102a642bb256194567f2e09572f749193c9829952cab9e6bd01a9b136f9157cd2a4b9aab3e4a3ace099cd230e
 SHA512 
de8653a03611bfbc257cd7050fcf5367fb69d17af2845a2ec59a94a7d708831cdba4020c377b3daba59e401985bf44d07fe3584c8c01f4254a05a78f589c28d8
+DIST firefox-115.12.0esr-en-CA.xpi 577358 BLAKE2B 
f365b4b9e25a412f465440031bf9e433c7942176957b6eca9060dc7da57199d090c4a506e3585abf6a718e3a4f6ae21dc8e365fae2d8e26613b3351b9bebd13e
 SHA512 
f6a455a7f5ecf80b72d58c1b5f1931d6461e9ac186e304486cd16c993991f7f9e58cdb4105340ba7e824be3877af4a839d561ebbc2301cbc0f9b30a7d770b7ed
+DIST firefox-115.12.0esr-en-GB.xpi 579687 BLAKE2B 
f88d078b8eb520728fd9fa518a6da077f9eae3d088ba8cb7aaad838090500093a9393a275999b50ad31171aac377da8f5897bfcf61504855fbd4b21e86a70208
 SHA512 
d165c1cc1a28862a469e96e9a292d3df5a7a2e55613686267c716c622ee17e0a51491ffc805064563b828bdaac34d689da03ac87f84786a468f12efdeb7cb4a3
+DIST firefox-115.12.0esr-eo.xpi 605209 BLAKE2B 
6906d490d8c13bd423b238860399da80bee4aa5181fca598bccedd034b1a49f511c562d9850c4ba534cae3e9d8d7472eceea2298a949f69cea1b46067e244bc9
 SHA512 
10dcedbf2c40f7661d3165e48529e6559956c4b1ff8a146614d3297d11d9629ace243634612050c251fa05bc05a9e5ce5bb5bf7f25c41a0a7b9d383044e64c77
+DIST firefox-115.12.0esr-es-AR.xpi 622322 BLAKE2B 
1fa446092a46c5195dec1139110f53b241355e9f7bb9c56c7c900dfd68275f6cf38c98d68f64e8ccf9a3cec53896bee1a34125293c104264916a91bd05c669c4
 SHA512 
61d3a34021e9e41674d8590dbc6577308461d1ab67a8835000d05f5d791479cdd0831a76bb114f2f9ecddf73bff5460e4d22ab59ea73b8f685d107813d113326
+DIST firefox-115.12.0esr-es-CL.xpi 621619 BLAKE2B 
87ea92bbe5f2da0adc6696ddd8731d62a7d010b58c582e626b858140966f553ae8031933029b0be5ae19808f5fcf4865b57fc6786998ecc905165cbf26f939e4
 SHA512 
8353bc5ce2b62c76875cf85acfe4554392d976f6a682a3fa1e80dccdcd77b61276bb6b714d6a540950967a77a246dbd60002741232affa6d7b6781e04b0c3fc0
+DIST firefox-115.12.0esr-es-ES.xpi 616452 BLAKE2B 
70c2bf47a57e7c0f44959f0d9b5468823d72a1ad7a05f5fc7085325ddb2c988feddc8087beb86f56397e4e5559ba4955a1f7f1a5209bb3b4cd489c7ba8d5d511
 SHA512 
3090a0c5a749c4c9a35c481d78cc326d740fa8362e9814128ed32ed1239d21a578165ae7c3049824178c66b390d1693a5e38af3482a231c96564392cbd9ef983
+DIST firefox-115.12.0esr-es-MX.xpi 584262 BLAKE2B 
700c89d082e048252098759d7fc0b3fee4b2295f2aae7ecf36e9dc147a6f52040cab7224440579cf78e8216bdeb00caed7619b0d709800b29fae2517778e18f5
 SHA512 
55b11e012d4ef5703629c303b8e0fb54ffb1729a15051683641ec9f22abd73e6b84c608487a39ac264548f35fc6d2673e1d922ed67ac5166222ca17927fc3769
+DIST firefox-115.12.0esr-et.xpi 532914 BLAKE2B 
9121f60a81f1937398a298947fa2adc163a8a667e6d779f5f15b3267f118bb759dc6361c9f2fd92d13aa0b1eab9cb694497225bbf61b924595d70e56e6c82962
 SHA512 
7297dc581a658a33dbdecaf5d070aabe45125104812a493d9516f3fea3ae83e134a7cd9e7afd80823bf23d5dcb614225ec53f56cf70eeba2a4e3ee86cc887ccb
+DIST firefox-115.12.0esr-eu.xpi 589120 BLAKE2B 
a14bacaf147e8f3b8b06e963cad14e9b28d17c0368ab5178ef56e44959020c38e7543365d0ee2f11e69fe582bf1a39ed0540cef46bbec4db27ec65c45f0be458
 SHA512 
c7fcbcd436cb93e919fe6be78647746489981b8c6d61a3dd8902d37bea4d1f4ea44d31c9b1c5690d1d874d5bf1e9bfd4c7b572b5abb92afcf2bd87aed47821ab
+DIST firefox-115.12.0esr-fa.xpi 584206 BLAKE2B 
02c044de26628dd9765f9d4498f4b93e4b88d2545b291fd8292fecd4388d749adae837bf81970d79332e4c0eab2e6bc077af057db9a1b1e2fb5702b01a3f95f5
 SHA512 
5821002c5b37aaac5a33663ab4f19edc09190d78dad3794240f59b0ff7c971fc35a0ee057f7d8d1bc44a3196ded72a4891270d9e5ab316118bacd5407daab420
+DIST firefox-115.12.0esr-ff.xpi 471598 BLAKE2B 
fa6df59bf6d4ca71f0c033b63d7cfa125e221ca9e8b9af74c1895551ef5fe242baa71b4d2b3a82eeb3714494bbcc33242c1dc92f1d6a4866ccadf370b2196bb8
 SHA512 
c52b2b92982b6c7d98deaa825754061ee157b72a43d0aa9cfbf8a38e4d12c6ffafa8a61513eaeb0533fe4a86bb3f3b40eb28b1d7148e7c23d10a4a15703c600d
+DIST firefox-115.12.0esr-fi.xpi 600787 BLAKE2B 
4268db3a28ad83b6ee4e1b780575cdf92008e65ab49b59b64543c524d48319fb81622bb5e39c2da8c014d05cfbd115565c6dbb5785b2fd6ba712e56147447497
 SHA512 
18474b986f7e18581ad6a18024f95535ce373bf8b4cdcac71642350df035f0ade203c3ef9ab7fba2496f1090ce9a13253a9b64e88cc5a6296999350c827a320d
+DIST firefox-115.12.0esr-fr.xpi 635427 BLAKE2B 
cd44bc5b076ae9e596c5db692d9d4e9d7471f37ca3043fa08d75eb3807fe8921663414bfcdf8ad65b19c100019eb3710483c411db651cd3b5666a7e7e4b91ed1
 SHA512 
c8f2419e3fb61402e2736cbe8cc3b9db7f1ce7e13247f7290e43609f7427620624d2828ebf9417641da6b44c1f883853f0fbec5499165204cd85a01ecba2a5d5
+DIST firefox-115.12.0esr-fur.xpi 626940 BLAKE2B 
28b5ec2beaca0c3a6454536ce5cd302a63d5b0a15ee57caec09ac422b3d493ea7761c8e9ad6e473e753908857766d92ba9b2e56751d597a900b161fe50857414
 SHA512 
43367025eb82a7e1ccedce36858b19566fbec741904aca6a5eb21ab5432c489c8af98fb4a0959e3614e694f194cdc65c72bf263cace3ea86d11e11731725e5d3
+DIST firefox-115.12.0esr-fy-NL.xpi 617947 BLAKE2B 
1ee6bff1636334f498297bbce1353eccd1b03fba5f2e64679061f2393b2fd31d59249c3f58d40660b383678003923ac442197c843a41133b8517200f2203b92c
 SHA512 
d877309f75c8368f3dc2b3a890ad92b4961ad6212b9eb43675d4efd49425566b264854616f2ff98a7496ab783cdff91b8ca1ca324ff2ddf981c6255d840a5da3
+DIST firefox-115.12.0esr-ga-IE.xpi 467493 BLAKE2B 
d3c7aac9a3737811521d246e89055d2eb8aad1a5f4faf28306848cd841e59bbc958f72235e918817bcdf72e015ea75f3a326715b33a50bc91d184977d5b4732f
 SHA512 
0b895ba289902d318d3da95d9319ed481cfca4720ed7bb13b7d3421e076c167cfb5da7af30d5af107f497f75d0e511fce9b4c3d8b38dbdb922a5e39c335ebc86
+DIST firefox-115.12.0esr-gd.xpi 589810 BLAKE2B 
26c7446bc4f249e15a889a3db07ad02a09131e8a587d7db4530181e83842a82c530ddda26516e2a1c0d5f96a8a11d91dd194622dca447b136a79db4481321122
 SHA512 
6658d35b8029bf432fb843567e52ff6cc061f100ce25341b0ac7f3a4b566c9219b72c54053bf7a2c69ba2597dd72f868f27203fafb06ca5eba0029b8b361e37e
+DIST firefox-115.12.0esr-gl.xpi 599816 BLAKE2B 
39168be735116715fbb469a094d277a35692ea3494be28307cbedc5f8ccba7bcc403ca70b4c4022424e0e5bf3440a870b26dc47baed566139b5b27759a6cac3d
 SHA512 
f0bc9c0ed2f9977a01895e61804d095a3e4ae99c355c3395b0ca289b274806c8bf008f40e43cb85d1dfc1c491f428fffd3e4aee24fdf955b3344a59b6d8faf7f
+DIST firefox-115.12.0esr-gn.xpi 633581 BLAKE2B 
a27213cf8d4298592fb16e80e9e8c015313ec1a9616fabb1596917eaca54921fcdd43f092b4d945c05d00c427367bd19ca34261778846494fb6e9c5b18e788b7
 SHA512 
5bd8ab0cb3e1c723a7bad96f53abe0cf6aeaacb2b09a529fd6ca5182e66439b1e14a058d221ecd185dbdee12455fe87a9d583993b6b107264565e37325fb7075
+DIST firefox-115.12.0esr-gu-IN.xpi 523240 BLAKE2B 
6eb526c39b660c1c1fbc9e1a1c103e76484720f705f148986ceccdee4e33488f9c37d3d611536214a97c5449afda62f92b65099b1e8305d826be87eb6acb4807
 SHA512 
e48eecc85c79b77e511981026dc30e6689c30157384b3e710eaad641b7f0f7201ee2f0c03b21e2794304846eb33398ecb3b714b1c54fbebf50bf8272bb7e50e3
+DIST firefox-115.12.0esr-he.xpi 623933 BLAKE2B 
a33953714107b57c0375da6cb06bde852033eae513c925b9d58ba0ff7fc9d6c902a5975076152a3a52978623507f80544a70afe4e4ec72073cf697738416aa41
 SHA512 
71986c5dbd1968f44637f0907cd26a4c260a23e6152dca6d73861f9567ffc400a2be8dc4c23bb7f37e57470314a600d4e00adee88b5c2ce8f29ad93c135e4d9c
+DIST firefox-115.12.0esr-hi-IN.xpi 559922 BLAKE2B 
80fd1df96fc7418169a5763cea79b4df9eb956aba35f9bbcf1dc1bee2d420f1dbdbcea329105a05a4cb65ee68b2568a57a5deb8255fa6330fc824031713b2216
 SHA512 
d9d1bf8fc878bf77fb5413be8cd579b520bca8ae22dd61a656bf2c85454ca240f2ec71b4f4a4fd269e79ce550c18738a4de10de537ffa6190d3f290d770a987e
+DIST firefox-115.12.0esr-hr.xpi 550268 BLAKE2B 
d6c2f44b9a25b876dce5f96d09e6021e0670bf70b56bc47ea500bffc6f37478f9edc3714a5231e7de50fb70f571740b10baf58fb364cca25e5d8b2ca8695bc4f
 SHA512 
da176d51f5b03958a6355361280533e0b6fff627028b5f559903965ba5813926155ef6fc8f58c940d8cc781c74dfd708a339c12fc019ca280e0746cbf73a5159
+DIST firefox-115.12.0esr-hsb.xpi 641205 BLAKE2B 
ae41673eb7d4c385c1ba8aeca6b084262da47c494f8671114e34a791b35b3c153928932ee69a95d68d59368317c3188c277f55988d80e6167d8c15cdbe3ef76a
 SHA512 
2f956505757ee6de39d2b95c889736a5a4c1ad9a4dd742ae569c648e7528c3e5157f126326451755a8a6eed0a761182d540f0bb31cfaa29a14c91729f900a1a4
+DIST firefox-115.12.0esr-hu.xpi 644337 BLAKE2B 
32fa1a01f76912f642b975bba0186fec6c5cd88c8530fdd9e1848214af3d54322fde37adcc80840869745b81dd7d83ffa6300aa3683d655688e8bf42a34808fe
 SHA512 
12c9b1c9edd025261ceb4860b26a77895dcf0766dffbf41bd0a6a96673d9ea58990e2586682682cf64eb90080b009dce68a1ed4fdf64ec11f2d273a24d1ec554
+DIST firefox-115.12.0esr-hy-AM.xpi 645152 BLAKE2B 
cd04323e785593eae5c56f4aba0bfdbb28e4a94a9d4e611d42b01bdec9a87c5151e5cb67384839bd236ba5594e7291bea82312f298f85dffc982463219e56eb8
 SHA512 
dc12ec1a589ba093d1091eb29b2b0b48bdcf1155bc051592b9bbbd26cd2afdd57d358423f132cfe46f45ff44ba4b4ba7980a3355fd9545d718e69f7e0b5b5967
+DIST firefox-115.12.0esr-ia.xpi 605553 BLAKE2B 
01b5097e5c81401094d4cb7bdb3c57f3e00cf0bd98c8b36ca90e79f19fa54ab1e34ffeeaa83e6ef64bdd6b64e1407fe65bc638dacd3c31488a77447f1a76d7c3
 SHA512 
284bc4e2251947bcd820cfce92b34c0c9c728d8b4f4221919229117bb8699650394e27da16b51655ab13b97652f05bcda8055646f227e570ecc10f8c2da42b67
+DIST firefox-115.12.0esr-id.xpi 567417 BLAKE2B 
357ad9499048eb6f4b3da70dbc8ac2b8c1f64748ff8a6d4ef0c208ad5cd56e291e48b04405dd7dd8f75d88fb071bedd15685ef11402324f7b46115850211cd47
 SHA512 
5008d1379e40accbafc9db3c3ae3d1d45548f0013077f1e7ee5fc1c9b56df27d1989a77c916dba265e3ec5a331c77ae49f2752d35699fc5b7794503379619528
+DIST firefox-115.12.0esr-is.xpi 608078 BLAKE2B 
ee059a899f1a5c3e710f4fba0366d84b49e65fc0d77b5506217d91e3f5877198e155965a787ebb9dee9afb1ee231ad2895189dc4b9d90108ff14e46d6e6a8b0b
 SHA512 
fa92ffe6001b56b3faca98625a1e7fe5a222a44de2b6e83a321b66bd7dd39e38e3a0f36d3815cbad462479ecfecdaf6f902d12321f3ad1b81d54958fe5d99f14
+DIST firefox-115.12.0esr-it.xpi 561851 BLAKE2B 
e3230dbd4fdaa1afb4694152e73f998643d1554419ccbf637aa47c85ff2e0bbea1c4f50eb8c1bf40673a9c6fae6a415bed2ca049f904dc52424b0d113dfaef8e
 SHA512 
f3a90857b024bad26b5273abfff622c759aa68089b5d00794faa07aaed4c2f49082945051695a5004de2a9a8bfbf5b958aba5f73704461e76910e490ef7036fa
+DIST firefox-115.12.0esr-ja.xpi 670993 BLAKE2B 
8d1310914d31e402f9fbb3f3f3a1fd904f9b736bcad9341ce5d5bc3f27bcdffd5f434bfc1000d8c31e3b3d0ec8bc2cf4ce801e5901dccc37378f9f1c668e3e30
 SHA512 
26097d5a04755d60fd6f18bfa1cd27c8c2d351ab92d287b62e9180674b005bf39d7de5b850eff3e103a741a7109e588f2d94726c989abb4a82c2122ae06340b7
+DIST firefox-115.12.0esr-ka.xpi 657820 BLAKE2B 
31f9752edfbb027b4c6b9f068ee0ebdda7c9d26b284fdf7c4cad8269841c61e9feffd4b9546f2a1dc3af71f705a7ec06f55e74d60f3a3eaefcb615800755a0f5
 SHA512 
a42cc532659b8f3e1372d4d98dca251ba47c64278d926e0cf8068946902ca51e323ef1bc06c53687eb4edc105af2caa56047635bb3908ff6ebcfc6ab3fa32e41
+DIST firefox-115.12.0esr-kab.xpi 598730 BLAKE2B 
d1f20ba4c5debfbcb76bb154eb41b33a64ff8ef954bb0789d25fe449acb7f124bae5c09f4efdbb23a4e64b8c07b6bedf1b5847bd360ae569f1c9d75261329ec9
 SHA512 
48760c6d052e6b8eefe3bda730f29d21a06c06702a150402278e41a9320482969554121b68f4fa420e8f061286b8d76522b7b35cc4931c02f1c02b7f6813cde9
+DIST firefox-115.12.0esr-kk.xpi 702225 BLAKE2B 
bed8add659eff79184dcc8523bf1e6b39baa9d3b3bb1ded3ae404ecbba8fb2d89a4b47c69afd2d40f126bd7583ae73efec31e1f10ae14e57819362cadc5935e6
 SHA512 
6ae8dd80ca2ba6905063062a70bf427f73ca60bab7bd9517da6e06ff2f9e524cb92dc29de0ff10fa47ce6e9b2826a3f543d468eaa64e1a500a05cfa3cd7a72d2
+DIST firefox-115.12.0esr-km.xpi 522181 BLAKE2B 
3e853fc451b11b6f134b15322aaa9bbcc5ec152f024a5febc96ccc5cdfe30afc14d61025c1d2a3517011f15bd56649c596b8a87fcbe60c7dc57dc35f4a0c59e9
 SHA512 
bc548615441db4483f5637bda5085edf725d325e3697f083ddfe9155cba0c5c382e71359f0891267f16a2aefeb0b2c01db1380a05a7cd33bcb3f689e87f6a6e1
+DIST firefox-115.12.0esr-kn.xpi 488062 BLAKE2B 
3547425eaadc0a3e5b95d3ec9e89e168c98055e0afe307ba87546ada2ce34f76df873c902b66998426d55e78d3aa2eaf5077fce1f59431116e654b134193b0b8
 SHA512 
3d43878e8a3c0d8260c55ac65d7b196ddec38702d822f8848b99bbb9cd3d525d7e1fffa16a434bffde69af1b7f08375df2b9d0ef7e0a1eb218a19bfdc46cfe98
+DIST firefox-115.12.0esr-ko.xpi 656094 BLAKE2B 
da7d15ac55a04e4e7a68c5b1b62f57868238ecfa13f555aba1fc58aa38378d06f8b423af66e3b2253d67398e769e5d97d9d5a896b26e3c8665ac4a6e41f13ca7
 SHA512 
6a5e1ceac7eabe9da1024b25f75ffb8e23cd4a367cd13924e7b24f4f171c2c1c86ebd52919f9ee4b769e4b08370ded8bfb6469ff2135cef80a65ca85d0132952
+DIST firefox-115.12.0esr-lij.xpi 478978 BLAKE2B 
05aff4c58a8acd2d0703b6355e3a19d2035278b5d6a671f1d96bbe19235807d495b63e4c2613cbff99e6282c6bb8a4a9a0052b6d06dd3b3a710d198b47d7fb4a
 SHA512 
d23f0ce15355b957aab07fa7da1fc2f4418880e294c8ff9bdaab722219f846cb16eac59966e3695f1d18652421815bc1c93c6c5560b9b0fc98dfde0f01b640eb
+DIST firefox-115.12.0esr-lt.xpi 566073 BLAKE2B 
00fbea5033fe10b3ffa3d454b066564c0cafb6f99187aaf9a5d0e04dbf228f039f4ad140be62a2191e0d489fdd9d45d04b0c680baf86c2c0d52f5fa9a86474a2
 SHA512 
dee4b2f5fb4d0c38bafd1178dc02d667408d78960a23a6d787d40f65b1f417019ebdb1f846ef1613c6aea169378295192db3c4f419ff6d4286069bd2313a49a0
+DIST firefox-115.12.0esr-lv.xpi 568042 BLAKE2B 
6887011df026b5ec39556130e04079a63b0ca19d542561a4b8350897f1c804cad199ba9d592b7dda504e37eb71e6a9ad511781fa62d01986f056bb1f66ca6dbc
 SHA512 
dc3e3551982561135a5738010e487673dec819558a058d01c03732697c41984a289c0e32c5af99ebe583ccedc0d1c7c2f125e9cab2474b7be7e0d1998352fea7
+DIST firefox-115.12.0esr-mk.xpi 489789 BLAKE2B 
c7155681ed8fc7ca7094ffef892d502159058fb45b455c61b55934f3223e1c9388688ef86d2ba33b235ce7b6fd1042713ee384e075c689cff961a98b510849b0
 SHA512 
c6fb94e1cd672f86ef5aa320b53e43af954b201ff9dad0829e0041f2cfa12f42b87b5a939d81aff2951731968b6bdb8420d2ca990c0a58c2bb0dda5c9cb4023c
+DIST firefox-115.12.0esr-mr.xpi 526719 BLAKE2B 
f11d56c8ed3631dede36868d6d788facaabe9049df84d25f10d2b41c2106b7154b0c199a68a45e96bb52fd0c6924c19f70c4317a13d7fc14845c22dce5642a85
 SHA512 
58447231c8ca153eed5cd326595a71f96e3c0898ff176308dfa033174c8b00cd7314052905e606bcdb75e9037fb995e702cb5e67ecb680c763ce75cea580ba6b
+DIST firefox-115.12.0esr-ms.xpi 445363 BLAKE2B 
e7743a8b57dc3a19f5e00e055ce1b099827369f46300474f7ee444f4a7e364b363efbb8661efc211505009881cdfb2473ccca2532c681150bb658338d4150c10
 SHA512 
67875307c653525c6b4b8152d9132ab58bd50f326b65fc292d8d93eb8a9dcabe9892e245ae2e064796260ccf0076c3bbbfea1a5352f9b8001abfeb537850c854
+DIST firefox-115.12.0esr-my.xpi 514775 BLAKE2B 
0a7cb3535ee39260dcc2b71bdc1a27fcab12ed311bf314cf560a9f7cf98a9f48630c85258cf0ab4984ed55646ae29c0910fabf94cef1999b3069cb05d59efa6e
 SHA512 
1a68926827a90051d9b8eba1127bab25602cb2cc918d0a6a45289829a86d9a5c9912c8908f04408430340f6837f73d99475529b531cc0ef232cfdc5ad235a32e
+DIST firefox-115.12.0esr-nb-NO.xpi 600618 BLAKE2B 
feb61e57a7dcccb0a6f73a5e96a9dab2be3e2673068b73b3a0a24f19cc6b414bcee45675e969359e62da0d34a6f1b06bc9494832799a861df395dea42602c743
 SHA512 
f549f5b04bf5974968c4c84e695d7e77c9706050203e54dd33b68a6b018a759e4dff43bda5c3fb3f88181d3e5e81311ba4ec14bbe408c6f7cd25f578d0559c56
+DIST firefox-115.12.0esr-ne-NP.xpi 496372 BLAKE2B 
1601a98ba8dcf6a88ae36fade10e9bbb5a3c033cb5088a0894f993412509e4d7bbf8fe2166d677d86084fe425fee2c4f199471b2bd63851aa9f3eeaf146b92e5
 SHA512 
f7ebe4ad55d10c5d8276dee7ffda939a714ece6e2cf298353b30eaf0da30736ff6907f4defc657b6f6cd4d7695d9a4597c5b83db6ea5992a23fbd4ba18e55c21
+DIST firefox-115.12.0esr-nl.xpi 611724 BLAKE2B 
24b2f590d8fcef596ceb0609ee4559451f5ce26cd4547ae017d2988376114d211ad1049275678ea88459aeedb614ef57a350fb3fc10d6b234dc30a0bf178b29f
 SHA512 
f7e151153abe0bcec2574e4e0893171d558313ebb6a8a14154fd715542a19de915fb9e1bd13f9a65437a78d48426b970d80660da7e7fdf68a7afbea2d8965a7b
+DIST firefox-115.12.0esr-nn-NO.xpi 594059 BLAKE2B 
4f066eadf909af50bc65c7f6a0be47a41361855500d2a1907278b2d64c3f4365fa4d56b9703cb5afe63f43d0956f75a0d4d0efc2ac39cc390042e7bae17d6050
 SHA512 
467bbb01f038d794a93d25c2bbe54fa3751103709c4c98c1d0f25ec95fc66423a92ed277c74246af4bbe19f22d3119c0a05fed9782cc415e8d198e0aee45f182
+DIST firefox-115.12.0esr-oc.xpi 605602 BLAKE2B 
2da16eabb741cb0e143941a8c102ea41577836e741bbc0a4bb65a554f1ab3f883e89a332711ee4c305fd5e28810c93e7c0dbe520594964ffd0f61887ac556fe2
 SHA512 
3210afcbd762ce8195c8c414310ab57c40d3f0a714997bfc563a5ec74ef24230a813014b7f32a914ac0af18f3d9387ad62eeabd8fc6f193f6568aa1824d13351
+DIST firefox-115.12.0esr-pa-IN.xpi 681664 BLAKE2B 
5954e85ff291393d96b937c62049df700721229a411f9b5e670ec7e91ab4ae04c73a4610faa56c0cc734ace7d2a6df9cca224b0ff2f9183a0fa087673d14f9bd
 SHA512 
3e96a6cb5efba763b0cb5ccf8cbae0bd0631159652fcbf9773cc2a0461fa17153051773844c3706a2fdb048996343745d86f805b38ae61aece99a4197100a7f7
+DIST firefox-115.12.0esr-pl.xpi 629679 BLAKE2B 
d3037bfaa95161a023bbffdcf0ad82947d99c2e320bc752644b316ebbf96ff34abdd4921b0d355d5f71b6ad3520565f668d82bc2694459b80ec8eaede5f6e39d
 SHA512 
efd22b8d52c1f62397587fdb0d5c1583e2b3401f2fc4fa22aab8f360c617e158a026c973523a358103da38eb32497f977922fdc9cda1fa359e9463df03639fa8
+DIST firefox-115.12.0esr-pt-BR.xpi 616408 BLAKE2B 
b2a6696c1a3d2a070a3cc51bd988e5de1870a093d9d04521fbd4f0d8cf6e5f0da3813efb351796dcb2fc4d9d10fd6580951f8f6ec6b3ca9f6c8c2954cdd254df
 SHA512 
33da0f635add28d331d45e39657fdbcd19fbed34968153e611da549adaf4a050fce645f57e5b4afc19b8e37b7c5176e9a9b7eed7a5283353700b769fe1403e10
+DIST firefox-115.12.0esr-pt-PT.xpi 619994 BLAKE2B 
1579c6410efa1364ef127e4e3671b8039ac6c73e36908573c17ef7d0bba09a1fe57ca4044ee06c35c75da15eaaf473928e076e99bbaded85f3465dbb07aac2db
 SHA512 
b6db207cffe7d70ba2ede24e6abebe20fa2971200e4a6366ac345f855de49eaae50186dcc9ec4a5058868fe5df6a5f3040904c1cb83d10e5f8606e5180216360
+DIST firefox-115.12.0esr-rm.xpi 609314 BLAKE2B 
700beddd7bdf72c15b2b1688386098181ec97d596d182f4ab3660a8d8263c474f081311de1eb236e17032e19942ac2ea65073328159e16699a41c6c0dcc975df
 SHA512 
6c944003c979275afcc63026fc6cd7a9b2c7e6dbfc123a41a3bb3a9a0a3aa9ef28c693434d8acbccd148f258a855987ed23d0b70dcedc4ad63fb98da68763cc8
+DIST firefox-115.12.0esr-ro.xpi 543397 BLAKE2B 
cbe1f6a6b1a145033e24dbb0d06579d87b77f06c612a9afb3f07e9aa2fb9d8d2191ddb09ea62dd03b534ae12a874d915ef842eb94ffb7319aa1d31d24430bb01
 SHA512 
f960d840e658f94a7da8e93971ec6e848ec29ab8ee305033b8ac16d4b4f6531265e14ac6e26d494541ccee661b8ec34af2e18f65f05c5720a0fbaf2c0576e099
+DIST firefox-115.12.0esr-ru.xpi 714560 BLAKE2B 
7ddea034c138222a51fa854bd4c4f96196b225a5de54de80572398abc032cd96cdf1a8c8183f9e0e3ab2120e5b4276efe5839544b63a33a92b670a72791b7d50
 SHA512 
d099f908c2d7fb5d1fedf128a8249990e06a4307f2d039cef7a330a871fca59b353c648ac2ee4e1e4fe33469a0184f67a1b41f1c3d45dc5f9684e16f99732590
+DIST firefox-115.12.0esr-sc.xpi 571850 BLAKE2B 
5eb2876a1d79909b5d5325de6c4bbca52adc73e1d94f99e79c51d21ddfdcb88ad49207dc1316dc668fa8ace10bba05aa450a1fb7a3882d0bf5cd88aed5172d13
 SHA512 
1199d3c77a5daa53cbdd45f3f0b73bea9ea574dea1d075445bcf595bcb71c038fbcfd3ad039d4358935a1a15bf847edb0bd74d85fe3bca2ab1e878b15107da4f
+DIST firefox-115.12.0esr-sco.xpi 505558 BLAKE2B 
18f13511bbf39c308eeedc0050a5ec476b186488c1b55e5957531bf85fae2b4526f3e256aa259a14d6713b9897d0e8e11973a245cd81df49c520b910aef449bd
 SHA512 
c664b37f91f3058ca6cf8e6ba239b5fa5cd2bb02c637bcac1babaf47bef804da13eb57c5bf7c2a9dbfe31653d10da80e86dfcda22f870cf9c39ee45ffd850492
+DIST firefox-115.12.0esr-si.xpi 600749 BLAKE2B 
d3bed487ae880a6d90ace0f97444e7a0daa00033b1554be20b37f85b56e27f5083fae90656f9d4dd2b109241b98f95fbb4c0555d3e068788960ae816c573197d
 SHA512 
57a7e1b0e7a2925eb0923c23fce5118502ed5bf6c94bf936e2010ba67154f3d2d3b87fe4a27805677aa860eff520cd1aa24b37c372f6df68795218950ea0e1b2
+DIST firefox-115.12.0esr-sk.xpi 646006 BLAKE2B 
a97451b9cdf098ebef7ce6d3150248b3abb6c5359eea90ae182b5397d79b4a532ab6d0cec87be802bfba9e68fb79797ae995b4ad7e0bd4ec47db492f7222be46
 SHA512 
58453df0e6ec94de901d28ebca0f42dfcea4b7f5473ab24eba7665ee4b5e1d270a9b06f34916ee4ebc5c6a6cc7fc6cfadb7257c022355006041af0a00beb7d3f
+DIST firefox-115.12.0esr-sl.xpi 608033 BLAKE2B 
12e6fa7e47bb620fc35d7880278298d5ab0b76458d784147fc3e94dbb43c81e5854bab008cf75215d5e1fc016e58521ad9bcf98ccdbfbd68b721c544f88f39fa
 SHA512 
e90b83a7b034ecd686a20e61bb13a75eac7eb1b1754d3f8fbb212b5c5ac56d8e3850726ade8783f718a9c12917d6eab8b3c0ab90b6c5935c7ddc70ea2c1090f1
+DIST firefox-115.12.0esr-son.xpi 413554 BLAKE2B 
d33d0599c7c539622192801ca520ab94994894f6e7e6aaf695c874d02b796332b99074dd88d34e7f9b9259f0bc7c7bed2a9ce125802ab4acb77acd33aaaa623e
 SHA512 
0af418f711b55a30f23628e1e6a30a2d7085f9387d94a1846a058c0a65ec3e9fb5eb3538787e7dfcfbfb21b0a83f68db171af12fd86c12e389f54b68083da330
+DIST firefox-115.12.0esr-sq.xpi 632212 BLAKE2B 
d44c3533469b83e810b059762f7fb35a1fb167cf1d25481b9d25ad7b64778ed55f99a02c9c97bfd7e549d3b8991a7ae13cea383b62346b33b72f426ac67a06f0
 SHA512 
d820013522cea7a3f1d8ca0f01bb10ca54a60c47bcf0656f3b67ca92af20c16eab34de0b959549955893de7729af756141685143a201a4ff3b639ab75e5376b6
+DIST firefox-115.12.0esr-sr.xpi 633088 BLAKE2B 
cd4fcdcf629916544eb2b02e81f07dec839ef38c803274ec08c49bdde6e2b1a4b4ea996e4815910aed2c44ba9eca417d2826fcbf2419ceb01b3d31f876c9a90f
 SHA512 
4bec34fd8a9ccd06e4879ff91f26d930d23b596bf687252ebd22041380785bea972f80b78d0c7e916279e83ad25ff6919b4d520036fd889a4c2c48b580a859a8
+DIST firefox-115.12.0esr-sv-SE.xpi 613558 BLAKE2B 
8847633c1cb70d490876ef756e285635b66525255d06e2b5ef3910633398aae5fbb8e0c286716c5afdc2e6e1adcca33f1a3779cb4b14bbfb374b82dbc0c76fcf
 SHA512 
959840826ce6045a04538ee2712f41ea412552b2eaf7575a9e740c577c617b0a654c56b2d3004e31cf82e6321e7df788a6136d084b3f8bf6a25b0a8a9001e766
+DIST firefox-115.12.0esr-szl.xpi 520870 BLAKE2B 
84798ff084f5947de5a478173b8c9fa7381dac599ba2941ffda29ab93e9a06a034d29bd7d1c64687adeba6cc1dc0719bc57b8b4a2f6bab86c4c6abb71aa9f4eb
 SHA512 
89f9cb39bf50b4e5f8d2625d6fc9fe27ed78374f418f998285e3e91e95bb97d87bfaf4d60acbdd10b5b819da9fbba2d651e4e8920adb00d9c683615a8237d0f8
+DIST firefox-115.12.0esr-ta.xpi 503485 BLAKE2B 
f9656c662d77ffdcd55d2a7574c102e4793719dc1209761115134c7f7220bc92d55e46647ea77feac6ea8e3a9faf5e33af41a0ebbb60a01a449791e386effea8
 SHA512 
be02cfcda94b55b1db43d26fcc509721c0874d9263d5c43c2bf7b4d9669db7a82857a411825903ec0888a4f12ef92c6bd64e6678d1b3e274b2411cff36a90a3c
+DIST firefox-115.12.0esr-te.xpi 554471 BLAKE2B 
cc08663d339317fcc41ff09c095ff550b950ffd00605063fdb2a483272de41ba0a568e3a39e8d9e1dd0b14fbf4cb377030b20d2acba97f68f8b250deacd43a29
 SHA512 
6805b0b6121b3477f093bbfb397f3996b05a2f27cca82b8e1c9514db9505bec1447e9f6eff9985f47459bbab1c8e44c1dd1155a7dd1025dea8a3876619f7df9f
+DIST firefox-115.12.0esr-th.xpi 689156 BLAKE2B 
9d2f6ff9186efbb2755a291977d9a6ddb88278a077ab96ecd916761ab5805b3fa4053a792d792a0698b78ae48c4bad210a5bd07e83046bd54d0c24573914c7f8
 SHA512 
277a35fa8da2fd5c38a974c957113581c3a02b745fd42da0d9f363881a30c08b7f170d9407ca13d6320d145551dc1af1d15360f9f11b7931ce54dcd8cef92ba2
+DIST firefox-115.12.0esr-tl.xpi 527660 BLAKE2B 
f98d74c172ace927a7a374be58d4ecdbcbd344581f4f90a0210a14b7aaa34ad4328dc58c2a592fe922cde4f37ec78eb5de3ce6328ec2547c44ddb029aa239c0b
 SHA512 
2d5f64549ee181fdd631f5c44a3a468f3a6e2c43ecaaf44143359dcd57564429403dbe96093ee4745241e9de175d9ead74815f843c88551a73f0454bf30d2fe3
+DIST firefox-115.12.0esr-tr.xpi 625253 BLAKE2B 
9a44c7c5d1bbacd35e5ce22f6ddb42f6b833e88afa35a9095ba054d6c462703b55ce632d7f9ce2df3ec4de76b4eea0ebbbede17a1aacc1833cb012339566955a
 SHA512 
f386ae6f20ed68bd1230cbac2234966a3f8143abaec13ab3e7f715140ad8eda0974f0605e533b9368a48423c6104954ee7699bf718e8cbff98d91ef52bb1c675
+DIST firefox-115.12.0esr-trs.xpi 498538 BLAKE2B 
375100e00403acb0ee8bb731917cf65dbada51beed0addf34681070e12bce92e2f20b288e4902b841964ef0646217a99fbdd38afc432bd803b7ab3fc3628ea11
 SHA512 
f02b761eb806cb41ad0ec6b34b9b21f5247bde09233de9121f8ca8c65685a5cacf025f0c51ed1c771d8fa91623aa5dcebc8766caa72649dcdd52a2833695e207
+DIST firefox-115.12.0esr-uk.xpi 705540 BLAKE2B 
a4599de9bc68587f414b0a7286fbc2f7e4241cddbd040f1ec3a8aaa547a52b44b9e988317f7bc4f12156b040d20dda4f9f1fe47ffe68f9382e9161c6f6f8176e
 SHA512 
f202a7a81b9d83429e81220447cf5c63aa421c27284129c058bae4caa4419e4fb776728e5205b4ffa5f42cea7ee8d9b927f6507c70b084ab77a95ba79bfc5455
+DIST firefox-115.12.0esr-ur.xpi 554720 BLAKE2B 
6d61762afd12672d996487ecceba9704df02caf4214e7e82c6692efa47aa3e4d0c3fc6e8e8a5d0400c3ae51fd05b7b9aaad8bad81c8d65378de13f645133810b
 SHA512 
6ce12a4b000306c13fd580e44d166f7436ad8fa6e7dd1276e415e7282d9d883cb72a1cc909cd40f43c8300c620c27a89ee3225be191f2bfab6a6299fe8f327cf
+DIST firefox-115.12.0esr-uz.xpi 474522 BLAKE2B 
7e8ee0b6449b9de464c3eb91a5b36e45d2b017551e476602881d2fb39380bdb924f8aaff930d206a0827ba1175afc23f8001b21c7572cbf1156cf492113fd43f
 SHA512 
4b309b2da6c579ed58d5d15fb2983286eda8289e286157d95db9d18d735d19462a5fd25371cca64dc93c8d8fff4f60a25a1d8a38fd71851c819d265d0e60df31
+DIST firefox-115.12.0esr-vi.xpi 649117 BLAKE2B 
db2fd349e6002cf67c8e2967421c8179cbac733af9119f1ad84c63723c8b39f53d0485fcd0b013189fb77aa15a5f68a661160971510c84a4689b3ebf819c44f6
 SHA512 
e44259032dd9a1c49369a74746dacec494d111316593ff70cffa1904787c7c973b23e66ff92c0abc496a0fb3d100ae2e74ef7377ff0675c39e62e9250ff4cbbd
+DIST firefox-115.12.0esr-xh.xpi 414802 BLAKE2B 
35b5cabfb1830b21a34e7c57357fab5375fdae9cb655c7985b6b468008f2e8e8f5e40efb8ade25e92f64da9d6201827685831098887e976ddbc61531ed7da954
 SHA512 
468c745bcc6ee0e72c057484ad6dcfb84d715432765b1aa7071d8a08d4c7bb15f8a86cafc32b3d60de32f5c61b8372dd3aa0fdfafb4b5c2384e463419bc23979
+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-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.12.0.ebuild 
b/www-client/firefox/firefox-115.12.0.ebuild
new file mode 100644
index 000000000000..f1d995d68c42
--- /dev/null
+++ b/www-client/firefox/firefox-115.12.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