commit:     6d6541f7a2dcf4311cb5028e2970258521c50c99
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Fri Apr  5 10:55:06 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Fri Apr  5 10:55:28 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d6541f7

www-client/firefox: add 124.0.2

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

 www-client/firefox/Manifest               |  101 ++
 www-client/firefox/firefox-124.0.2.ebuild | 1424 +++++++++++++++++++++++++++++
 2 files changed, 1525 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index f32746882e19..a2ff1607e386 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -301,6 +301,7 @@ DIST firefox-122.0.1-zh-CN.xpi 633790 BLAKE2B 
dab2b232aec155b0a304f2bffa000424f4
 DIST firefox-122.0.1-zh-TW.xpi 635798 BLAKE2B 
f098894718db43f15999844f4756921e37f40a4926f1a3ca717b0a7ec7b5ee9e9319075eab50e01ad51a849b2cfd39b06732e4c510e09b0809b8a0bf9596d39b
 SHA512 
748744b619608a9bc4a28e85fe7cc8ec4a17c7e4af1e3a5ab5a74a4ac265c9e4c5c4f639a06cdcd1cf6e5fd57e377929ab31ce46ffea576d0f7889e84e259d01
 DIST firefox-122.0.1.source.tar.xz 533052916 BLAKE2B 
ea4346b88c7f3e7e2126eed6b0f4b1460e70fa430944a7263d42ac762e10c8440967ebbae25ceff15e7afb451e1a890ab7e97ff60619a465152e9ff6a7691653
 SHA512 
1d4fe1ed351edd748ede2ef6448798a32de9ed7a075a54a7ed5f7baa7b0c4c7f932c2e29f443c9066829e39f22a1dc94be5d00cc994193e949b72aa4a1c8ba41
 DIST firefox-124-patches-01.tar.xz 15092 BLAKE2B 
1a4d952fbb8525ce1e100a738f6d309284125625b8f1badfe687caacdcd309c6e6e4cd1182e9647f93204055f35bc29c202902f229520bea10fdd1eeb066e30b
 SHA512 
b2cd5170d5db60ebfd2b24e8a55a46e5890b26a50a398e63880d8ab276c2d601be6b7c40de59f1f6ddbd3160f80b8664a2f345c64addf55a6a734f8e362fba53
+DIST firefox-124-patches-02.tar.xz 15432 BLAKE2B 
d6e16deb323eb5f07bed1da70c69cd5035a8258f92a7485a1f4850ead8dd65ac666bc78fb2cfec3d736ae3c58b895da1fac7a5fa42ebdb707345c4f117ac78d7
 SHA512 
b0239b24a69007db00dc74ffb4b2fd93db4cea75036d796569dee5ed5897697ccee042766ce7add0da8b2ba7854f0f7b7c896342d94aee57de933c58d3750fa5
 DIST firefox-124.0.1-ach.xpi 457263 BLAKE2B 
d079c15f56038073e5d440483d96d974e124b8843aada2e89326cf1ce903bf1719a7410307f0b83702aba48b01b3e1cae21ee7a01acd05e4d930ed490965854a
 SHA512 
9e295355e1d15097055425d0ce856aeffa7aefa9a5732a48721c32c13b50f3ab6b899e1d47a3ae5f8b0b5e66bb426c387e4d23c8d98fc09d3aaeccd909615306
 DIST firefox-124.0.1-af.xpi 411557 BLAKE2B 
0a84f9f12b40646b60ea3f50ac641004ea8496c7a0ec9adfd49d7d8e2c1d3a6e8eb5ed37df5ddd5539bdeb9c69ee1db392bec2f688883a766c0909bad7f4768f
 SHA512 
3c851bff524714844227ff90582203fa861b48d53f7492042b3738be55d320b53d81633c9c769d8da918c92dfcb0f9589972c7bcdf1444342c833ef09670eda9
 DIST firefox-124.0.1-an.xpi 498968 BLAKE2B 
29b2a9c5296c19170269181c8d87400eb96241ae6f34b4607d66e2b9721ace30ae9fb76b60e4deb63cfab33eaf1decb2a3d6b32fccbbc03bd77e810baa1a3e98
 SHA512 
ae8691314a58af492f2ff3a4b9f07fa2a46b971bd1481906c5dff8051aeefbc8297261cf4967e0a7d7fb45a8c503e21b0ee66566034849ab335776c624457e1d
@@ -401,3 +402,103 @@ DIST firefox-124.0.1-xh.xpi 411003 BLAKE2B 
5c92c2443e73de2736a42f578f70a69c570cc
 DIST firefox-124.0.1-zh-CN.xpi 640174 BLAKE2B 
42edc61f18a8614b5cb6b28052a5599702929d9ac2fbf7b7bd90cb5fd415cd82c7b70b8e68ed317517747aae0e1f201674e29aeb9910fd710fd7c1f1ed87d788
 SHA512 
1bfe2db372bd42ecc9acefa378c033dbf499ad39bd5da9b4e351de8aaedfc4876cfabc02fdd8f8ffcd37775f561391ccc1ac5515509dd2016ce9a73580932232
 DIST firefox-124.0.1-zh-TW.xpi 642122 BLAKE2B 
de00e146dfe60477f04ea28cea19351db0e168aad3d4869c949065248c11a7b6b2caee687d3b8a4f0b09a4019ce2d7fffb16f91c3d31f0fb0f83071650e70551
 SHA512 
588d3311e820a345e27033135d7f9f3838bf949f0c7fd9f68a09d7a033f15a239e2eaab1db42b4c4560eee21503e0c57d3e69a1492b27c602b49e0e0beeebe30
 DIST firefox-124.0.1.source.tar.xz 545772696 BLAKE2B 
b986833fbf28ebcb5588a68367054ca7a2f51f69685349ba65d25e118c90ded55c6e626842bbda8f00717ee55aa784c808e8f09855de423234a592ad23d9e9bf
 SHA512 
282c45e5c468419536dd8b81c8ea687b10d8002d7521403330e6eeef49207143bee88a44c3785748d461ed9a72687606f5da14f4dfb98eb40a5cd08a4a12722b
+DIST firefox-124.0.2-ach.xpi 457255 BLAKE2B 
17ccf91392d831fe07e4c4874628a13766384531b6d0a5fe54f800cf325342d18241b3b4ff11d43ebe116284d6e921a09c50d30142a7623fa473ead89fd6042f
 SHA512 
f42acf587564905ecaa0538e5c5aed39d90bb7de900368eaa50aef6524823c59ed58da0d284680988c3df5eac6a76fb40e3ac7b5cd0342e5613ef6336d87c483
+DIST firefox-124.0.2-af.xpi 411565 BLAKE2B 
79c20abb835b2c02a2efd16ffb2a671e6d144c3e5b27d481026089374c11432be660bbc63a1e0d70cee469eb8c0bcf40b2e16518cf63d7d19450eebf181dfd31
 SHA512 
a9a02a570f7fa85e0f4023b23178b33072c8810f98faf05bf2c30d9a31acab7c4da3de65e1181ec0861afb3b1bd0f3895e15fb7c51e569965672a4d5b488c78d
+DIST firefox-124.0.2-an.xpi 498970 BLAKE2B 
bbeb7f904d9e355c521dcb8e9e47f354abb77f8fea03cc6b17504decff53133e1cc9ef7524ee68bd6dc0b8adad398ba7d241528086e92cb9d07c1603462ee88f
 SHA512 
01a7116931539dccb79ba2ace11787c7bdfda819b7ac412034a06f6768468540fb8213d7cc169a375b8b81fb467460424f57c871846e4538b2d482685e665d40
+DIST firefox-124.0.2-ar.xpi 598799 BLAKE2B 
ec863c0ab0c81dae02b107da4ae66b6c79873ce6bf79550ed2d64319081344c8ce79368d393e24ab7055b334bbb438c1d5618818312812533b4840a85ade1b83
 SHA512 
45eb02ce19fc2359ff37bdda083aa128d5c29f3851ffebc2cb2a30b0a736be33a2d881fd14ee3eeebb7819f6970885e5b3482cd7c7d2ab5780720fdf2a35e88d
+DIST firefox-124.0.2-ast.xpi 489747 BLAKE2B 
ea3290199a6b0bccce031a03735865b16917fcb53c18fcfc649b471ff2b69effae40eb8d9a76e96b25da940305e76ace7a780766fff7508021e87e67002dc08d
 SHA512 
dca07b30a3d911c3babaf376fedc0c296b511002265111dd011f5c164eee4eddef59b95e8ce261419441024499a62caa728f2998ab27b6d40d59385b5ba67376
+DIST firefox-124.0.2-az.xpi 483726 BLAKE2B 
70360548931a0aef3a9a80b9a0dc454b47c863d395da5c011e65888e311b30ad7d00688bf5745e3f0b436d9b578e560752fe247c5b227b08285f388fd143cdc0
 SHA512 
462252f781a0e64a041138a0e07c1fad50780c8f7882d4e13e6625107623bef3b917445af6cd377d69bab52bad305057c5fc7eb34810b181ba058dc28fa3ca1e
+DIST firefox-124.0.2-be.xpi 696936 BLAKE2B 
c4c4ccd86e7268f785b2b1f9d204583d547544c6574f5240fd4c58c5b4a1194082e1a17b84fdde0bafc62387f5f62197167da48fa5f587b5298b7fd41ad6512c
 SHA512 
0be05e367f2ed107967ac7d8c34c8ec246a359b4a03d61b944384042b713fe228ba80263a571afd0649164b627c977c082bde80b338f0cdb12300a854ccb81d8
+DIST firefox-124.0.2-bg.xpi 596459 BLAKE2B 
f6d676a6cc5e59e7156ccce5edc64f3a659ecbdcfdecb6c8994f67799b009779a8919296a30348157c45bd118d6d6603e191af1317760b93adb0b266e5d522fe
 SHA512 
1e0caf825a54c1effdf2067aa20d8ab079ce39cc261eef8d99d85148bdf64bc8d4ba4caf45d343fb2e9d793a2ca9f7cec034d024d7233c78fed9f9e27ce4ae1d
+DIST firefox-124.0.2-bn.xpi 574087 BLAKE2B 
dd33c1665a89f0b2c73e4791bbb3db9c16de4645e598718c3e4a40e4562f1a258403591a43ae9a9a633b1e873f1fd855caf99f6c817da30ebe7922c92889336b
 SHA512 
b1c8bcb90252a7b9541c227be377ef8fc0150ed4c2f3ea42f300b8010fd2658af13940ff3c0b39b0acfa539971141179d176b50a2764f2075ad31ecaee12b6f2
+DIST firefox-124.0.2-br.xpi 579512 BLAKE2B 
bdc327166b6da57af25fa25078b0a3ceee8d1576e06ed76db6b2a4695a8d397326d6f144d814ce86e2b70c6140dd211daea3ec68b252075b0617a93e9d1c284b
 SHA512 
873792f6920d18a19544ef97d5c1c084c2ed5fcbf4b3939afbbfbdf7cd1a671f9a390e16c5dca76f47c96f84c80cdddf3be8525fd684018e28f3e598474cc7a4
+DIST firefox-124.0.2-bs.xpi 466315 BLAKE2B 
79394ca083e22e3f3e5e0c41906af3bf983e436bfa1530cdcb1e538d267891afdeabb40ca052a4e9019956be9378b2fb144e9926a40b292f818aad58df412085
 SHA512 
f0d851512240569ec9679aacc5b39a6e9a80c2e41728c5cb3a970b4e6482c3a483ea976e58ac97cd272fb9a97bfb65886c38a4dbc75a4efdc736ba0f2744b6c3
+DIST firefox-124.0.2-ca-valencia.xpi 538973 BLAKE2B 
1b272ba4d19c7a8bcd30755db1a236e86403faf2d06d972cef468556feada24f5365e2f41c87b35de3b53a0a16424e0a93f14642e23033869554fd464b5005b7
 SHA512 
714d341ea70495f2e80fd5f2d0771cd2a9f10397584f1424ce88088d527ac4fca7fdd1280317adc030eec0eb61ee3d46ce214a74d33a9bcc691f82afb0c9bf17
+DIST firefox-124.0.2-ca.xpi 577127 BLAKE2B 
40e164ee558304bd7f4d1fdbf894cfb09cf1ef1a4992ddcd6421a8494438c33ff5d4b09bad1e2a7108d8b08b490c526e4c951ec3203a2a1498251d27d120bfe5
 SHA512 
533251b89a42d9460b3f90ca63d5432fe73a71ea79d89d89c993cb04ff4844705439746b80d911354eb187c2156e17c4a14edeea4bce572f13f969ea4dec1f23
+DIST firefox-124.0.2-cak.xpi 584191 BLAKE2B 
94ac0612af970f74b2d7b8b908932f94361bd15d9c721788ccf99363f563ee1620760fdd0c5e07d09e86c4ce0a3f21c578fe1712c197791d1de18f1ff0ae7f61
 SHA512 
7d56cba939f896bff8d688216c5ed1b3d40a00126251712337723267712220cca0b7b9e7717d0a812aabc721d8c2c79d20cd1045e2a0d80eda83a5a632bb363e
+DIST firefox-124.0.2-cs.xpi 640185 BLAKE2B 
eb43e546f220dac2aac77738a0e3c9b48a0f3c6cee50379333fa908e4ae784143bf9e3f0c4f7a7531b2e08feacd4409d21f2080ec6a6973c91c75e7afbd905e2
 SHA512 
cdbe4f7eca65137101fe1029b8b2fc614f6e890432bd533d8f5d3615f1a0234d1fac3474f7a84dd1a678c81e1ef7a0b79842f774832c733a7b79e0c711a076ee
+DIST firefox-124.0.2-cy.xpi 607557 BLAKE2B 
8333305beb2b40279d67c7d52ba0cb8820c3629e38c2e107698e1d03e84639b287eeb6d94a7e7617f0c56c42631807626d46217ccba9784bd2527a2404940cab
 SHA512 
d4049a20e8a6182e498c2a17e5ee44d8fa60e628936b81cd965ba5261c1589ed37a56f0b18e7e6cb9b8a39c68314ca7eefbbe7526c8b6553e6386972276f1a53
+DIST firefox-124.0.2-da.xpi 596587 BLAKE2B 
fe49f750c55bc1c1763cc5f100377a6c9461d462cbd07a87a0fea2d5606c91bf06fc4ffa9fb02b1e62299f83a2ceb6b3b2c06ef92802e381d63d38ed28b1ffb2
 SHA512 
3c06c97e4a7cf01c478682a5d9bae853cee437eeddd18a5123919900bc9df7bbde395722cde1343734eb8737b0fb5f0c3ed0cc8412be4529d302633ba4341ab7
+DIST firefox-124.0.2-de.xpi 617699 BLAKE2B 
cc783c541223f834ecf1a1d8652fade443133692eb8e40fa5e14cf72c957e2ca864ac9c1fa9b8f671075a192042ac52dc77aca12ae16a7b6cec69203d45cf06b
 SHA512 
000288baaa3ccf3819dec45641f57a8ece0c1acd56129570bcc74465b9aeb9f44608c353464125406afff9eaabf6df3a06811d88286e3a829a4afb69d8c445e0
+DIST firefox-124.0.2-dsb.xpi 634051 BLAKE2B 
956c8aecafa7db07311ff87fb46a65ce93fe597d2ff3d42f8322ca4bd45e83f68be87e4d26ad487f2071bf8d7ba7bd2aff5107081afaba269b2aaf7c571cb3ef
 SHA512 
698a465c5da52c8a55357f0504d97217fd082e1c90ba101c4d801436a80e8c7ba8914d9388c9958223d88fdf672a77dc3341ff1f86868689fe29b2acfc664a94
+DIST firefox-124.0.2-el.xpi 714179 BLAKE2B 
eae2a0fbb09780a69d05735d99432aa766b8f7068352278fb2b4b08ee4b49bed1f1e0b686f88ccdad0432db30d9984ae86bc6e930683a1e498811c0a0c3af2a6
 SHA512 
db5b232cb159fb2f4367215b0542ee1d4d698c9c6a122143289c979f4a65c3f9c69b41f523d31664259326e721ddfc0600559ad131955e28ca04ce393537c215
+DIST firefox-124.0.2-en-CA.xpi 552853 BLAKE2B 
540b3c85cfe47bc9b494600334db0ec8578701d2d9d5a78fda8357b4911bce89ee6687581787439558e3b9039c2b5ba427c40b387f4608c75f5a9c701982d470
 SHA512 
33b85a60bf6df93633f83e4c1ab334c5a5b68966508de7584d57ccfdf6e1e55f62be7040421928d9cf268c403846c03e4c104853b8dc8a88db71291d4d211060
+DIST firefox-124.0.2-en-GB.xpi 570065 BLAKE2B 
d650d94b8354b80d29d2ecc342687b78f375b26d97e6635554ed84cfd12277b019366486bf68c177158560512619bd55d4c0dd3251150d2a783170fc313fc001
 SHA512 
22184d8504d5a22b3a549cce83e985d6d25b91600de1ff4e1164b8df533c67b1cd4e11da1c8d8be72d05c9b5afb24067a5632dd492d85af97267c3ed06444aeb
+DIST firefox-124.0.2-eo.xpi 600155 BLAKE2B 
b49018b71f91e4c7c8e35148ee48f56cfb3605b64277307885e8f2156425f2523beb443b64588473972f30d14da9fcbfaaee7eab29942b20f1a014ff7dad8e24
 SHA512 
1f054a1e2d3f8b84191968c8965a4ada33291c5561ff534ccfa1e01fec1cd3a7ee72e259095043def52a06e6dbb02f170dcfa7b9bb1bc1e9ad91839c557ca871
+DIST firefox-124.0.2-es-AR.xpi 611788 BLAKE2B 
9fc4f4fb5525aa41a1d8061c7a7ff2f3fb6a9d168094e7c82e99e35ef8e5fc6cef615c8e7bebdbb8dbda47fd5255dfcedec76158b93eebb5c6ea18ce289020c6
 SHA512 
d8b9549cfc678389bfed1c6ffb401f7b1dd6fea37e469bf8c71565b9b732c788659fb365a4c4388573a11515271a6730db967595b0054e28dd616fb5054eb3dc
+DIST firefox-124.0.2-es-CL.xpi 610709 BLAKE2B 
c04371458ec0c94c1a98ef70845369676a4ae5a8848626adc3a9376ab34a7a931d91495a89ab6e7e548d062caf4184a144dd324f4abdf11f5b22b08391e4d267
 SHA512 
25d3b459fc6c17246b7c04f96674039da868c5383675b7404a001ba9c596ddf8c5f66ba1351ada56550c240b8e34195f4c65c1c68cb76b22241229e036330c4e
+DIST firefox-124.0.2-es-ES.xpi 605675 BLAKE2B 
5fbf14abde93c0ec9d2941e9852a5ffbae8cfaf477b77627d7a863791ab4312f8035cc74ed98d449b4a08c9466a6d0463921a14fa898c7e60bda27a9e1e22558
 SHA512 
b24a35464888d5b3a46909aae749852b4b85acf9c27aae6dad01534060b9ae0950a53874c5b41c94fd553749980547f4d2d90e3396e0acdf496a7036ecd2073f
+DIST firefox-124.0.2-es-MX.xpi 584181 BLAKE2B 
7ab20252899f1af9cd6187ccbe5b02a72c45870daa17b67ea343c6f9d0f30b2c18fc31d11f8163dfbb31983ff26168c6e4ec1d3a082a81c6ef7c078d7c86504d
 SHA512 
d1ccbee7d76069387e8cb55fb843f45825dbf3af0b5ebc752f689b69e885d88563441bf781f34edca54de8df99bb38c1292e9dfef69526f8fb2e0cbc043d6ddb
+DIST firefox-124.0.2-et.xpi 532343 BLAKE2B 
7f80387b09f3140f4954bd9f97abf6de989ad8cc8bddffc2ebc9bd51425f4cb34ee71618e851ab7a5381f8d3acc729c94a4c01f3102787c9c34e0ace558ffa87
 SHA512 
b2b291f1d356141cfebb5dbb1d2c5376600ff972d9f936b41deea5472cb3609b87d0a21941435fdd1a280abc5b1c3cfe5c2fa88d190fd35a6499c3dd604ab1da
+DIST firefox-124.0.2-eu.xpi 585776 BLAKE2B 
836b0e41b6ad37f1894c58367f084b6c42e8cb6748195c5963175c523d83da11791bed668c44825d772354c3045ce0d0686be6770e9ae80df617e78310d0821d
 SHA512 
806ef686c3ec2f36289f1d1b3947ac40ca509f0fb275ea65bf152165cbd602b45b354cc9c48e30e22aee113d8c6aa1a6e657ab7bb5e27fe708c6297fd28fb077
+DIST firefox-124.0.2-fa.xpi 582557 BLAKE2B 
cf8ef01764273db2147faefad652723ca5a619ae9c1a42feece5971b2863396419833f560802ad41908dfaa8e76cfae80fb51e5bdbebca0a63fccd0b06375bc5
 SHA512 
ca1d384fec57b61e00bc89f81141564354d23a6b20111c49e4e74299735e40f243948df3211258c84e150130d8465266f78ac67efa0774d211cf39dd75996b1f
+DIST firefox-124.0.2-ff.xpi 469176 BLAKE2B 
01007b7ff9e49f87e3c06299cce27269b9aa9abc9bd72bff0319720b755b84405988de378e81c60b37fd3b91ddc70109f50fda3e4adb44d3792a07d2e9de74d2
 SHA512 
cf76f84312d48f5e5a70be7a23e547a7cbb3c7b3b8ce76ca145d4bc48bb8a54b75c7d710d7838dd13ccc2ab4b53137427a1e08f54b3987beb168249bbddef64d
+DIST firefox-124.0.2-fi.xpi 592095 BLAKE2B 
0e94ffffc2e029b338c08e11d53f3e6fba67eee7a7bfea8d8980ebdb46306bdccfa153059f66179dd7905b3d2b2e9823375e3118d23a97b6e21e69bf49484a8b
 SHA512 
be1bf303f07b79194dcfcd4d7c1e6155d3c13e39c290ad813779d7d65fa58cc1329b38bfb71cfc23364b83791e9ea80874bc6ef00344fb6f2ceb1459a8f71dbf
+DIST firefox-124.0.2-fr.xpi 621884 BLAKE2B 
0a9a21660af566fdeebabc6e217e9bef22026f46ac97f37ebbebf0b3aa9da8265e2b8fa52589562d4126c14f29a3ac80cae288466d1c3408e082407082567261
 SHA512 
a447f0df57c9161bdec7dcbbea2430ce22b51297a8e2b9815ac9b6e3606fdccc79b7e60a5ad34068a0a6a584dddb690e56784beffcb075c5bfea55aca242f538
+DIST firefox-124.0.2-fur.xpi 617363 BLAKE2B 
f2098f559962f969c8999cb19a706d192e03c642b1e68800a488f38ca8f670d7a0a3ed351ddbf6b8b811dc4278ba2bf12969d04bc6a88d7753f4df513ea3daef
 SHA512 
6e9692d11af8fdcd8a31955bb8966293706d0a5036d9400faaee9e9e12530b30b0cc127712dbb533426ea3b8d2214918ec72c7e315c0f2929efb699862c09b16
+DIST firefox-124.0.2-fy-NL.xpi 606666 BLAKE2B 
24f033e8520a68d5e594fd5c8a8cb162ea68af041ccbdf90b7b2042b520435dd46375bae968a25cc989fab56b01cdd17eb221c71b75ca6fb5a0090e53e77618e
 SHA512 
ffc4683bfeb7c6b4862ec9434582383a34e7155ef83ae1613b796047c03f524abe85cdd8aa634ada881865339615bc8e20f7e73a696a0266a8ece0b3eb770723
+DIST firefox-124.0.2-ga-IE.xpi 464732 BLAKE2B 
80ed500c3aca0b702e8be150c0a71c4bce3810a7126a27256b3e9491a51b629cf73ed8f55646c4aa3a8896f40548943de8f0e9aab803c0b69ceec47ffad2afe8
 SHA512 
ce8aa2781772e45ac8d5f03bcaa5b3b2d718e4aef3e5e17ee0ab6973a401b801db46ba826b8ec2d3d410eef7ab78affba5d6d325bf2d2eae2e271f05f722be3a
+DIST firefox-124.0.2-gd.xpi 584018 BLAKE2B 
eaabc701392f24f00c6644d18aeb0d0e1f343975db6ab61bf34399f18cbce57d90718d6abc63d5b21d08cc25f515ca4da549300bea40a4cf12d761e73e3bac78
 SHA512 
f5cae8378ee27385b981357503e832b9ffe434d3f8a552934f4657055d7e53499189a90efb53feb09084d176272cc344abba981d17bddecfeab0ba9c0df2ab31
+DIST firefox-124.0.2-gl.xpi 597048 BLAKE2B 
c9a77391e33b057236d95b38d4ef3efbf34c542249b3b8334d0a97c04aecf90df544dea516431edf7c6a331b06eb322c4aa9711a470c5d388af34d0c5cb0def5
 SHA512 
ea93afb70af13fd91af2a92d1112e20b6a7c8dd6fb84c5172e95d3d74e7936f3e3556a29864bead8c97bde84ada8f3367e5a9ca00812aea2029c827b06add8b6
+DIST firefox-124.0.2-gn.xpi 621056 BLAKE2B 
3e94cc50b7b33637742b7e3aa8d7376f793400a7e6ce266704c3ff25625fafd18a4e4e4284ad48f9f1525623b71c05667cf3b245ebf47e0b657395858c834122
 SHA512 
bf32126be2c9e79b4653d3757ddcae1155d4cf6cc917f3218dba9448fea87cba5dbc9652dce49bf466c411229a17a0ad8afbb054e07137a1206e7fac5c7e21a3
+DIST firefox-124.0.2-gu-IN.xpi 520056 BLAKE2B 
cdd54d067f827e85c05fcb6c9bf7b662bb3e2bb4923b63a31e36924d0bed236f09adf90629044038b681933c3314d16ba0e9a39acf38828de7b8c15c61bd8060
 SHA512 
2e4560faefb15aad3ff19f5909f52a5d4b6265e5eb2abc953113a1969ad35250cc1b3e48a9adf27ad6e6204e59f043418f7f2c5db6b71becd5a5b64f7d401e7c
+DIST firefox-124.0.2-he.xpi 616172 BLAKE2B 
c574d4728a20d95f0f09cefd1e11b1442d715bffa807bc310cbbfb812ee3da44f3cc94d03f719c958a6796b0b3935783145dd9589dbd91e58a73f90fb88ba30e
 SHA512 
498c61a37d4ab18b7ce9722163eab17c4934e669adc2e934b65700f5bf323e04c8677ccca75b064f0ed315fc49ab6e77791504925b5206c591872578324490d5
+DIST firefox-124.0.2-hi-IN.xpi 558182 BLAKE2B 
be7b8deca2a0aaf2ab0a3dcda97066fc76720a1835af4719de55b631b0c1e6f60b5c98fcbca95b51103cbf97d1abc984af90aade8ccffbe8179144b668cd8a11
 SHA512 
fae1ba48bf8c82cbadb762057289e4e921add2c1a2e3ce3bb1b7729038336b36ebaf7708f907b24d2c9f3b2ab58bfb77c707fe90dd1d33efeeff411b24895b8f
+DIST firefox-124.0.2-hr.xpi 549496 BLAKE2B 
7b18cb9a9ebb4ced5a2eb98f9dd5501fb745d6e55df143c331af1cedcc67db467ad13713eb77b1c9cf70207569fb49a7e794b4305f86019a59939b6f9d93b92c
 SHA512 
d6f559f3086397cee39112e2ea87ca96daa36f658d7e19e537838071702396cd7c1e4cb42370ff44b78457a207efb333ac3a5be704eeda34929bd110b76258d5
+DIST firefox-124.0.2-hsb.xpi 629696 BLAKE2B 
9a6f36a61a6843d45f006fe26165b5e9f1f902035764dc2db19a736a8762fd1b89931f0f929dc81a3be6cf325b4960c95c511d0343c7553134d0391c01259121
 SHA512 
76542cbf5e59448c5636d84b7a1af34877b3483cb1907e8d9e5145a8059419a430febce518c3b8868c6ed087e0d37aa99e7ab04326b1d04c60972726204146be
+DIST firefox-124.0.2-hu.xpi 633303 BLAKE2B 
a30267d27ca8b625c5830db59c5fda496b92be1b93634f76665d282069eaa0683192302d1aa66fe6b48b78f13045426994ea63e3b98e927c95673300d3726c1a
 SHA512 
1bb5128803c476779b1a7a259ac1c59a50703cbe1ae07987eb1296141b2ebe0f0c334c3a32016e42b3b818902f4728fe99d7bb8251bd7784e4b30e21f9b69b4a
+DIST firefox-124.0.2-hy-AM.xpi 607891 BLAKE2B 
a9c7fc28bddcca108701159eb2d286f6af37985fa8240470410abded20aa01ed4abc7198f9fd74295d32f8737b2eb7202c6ff88315c6706cf2ecf1e0e8437f82
 SHA512 
c14a5fcd1996bbe5290a626cfdec3d9d9dee49e44f1c105c0431cd1d568ead214ca2942253d672c7df09fc77fef279722877917185bba27ecf26b8197ed4b907
+DIST firefox-124.0.2-ia.xpi 594010 BLAKE2B 
98b3a13b0f42cfd1210fe5b77f0db12a34082809afc5752e74303458ad798aeb8fa6d0d702e2a45db1c55eb302ee119dc8b751d8028689ab9de3b1295949555d
 SHA512 
df1295c2ec83810e67611516acb1ee790593f5b58058067031607c8412ae741bc50820fddd082b15c16d6011d1dc685ecb79507a476ae3c1e1d00327be019b0a
+DIST firefox-124.0.2-id.xpi 566763 BLAKE2B 
ef7065b6551bcc5226044780ec6ce4c09704cd3f11a02c5fa6388da2c6258b3ca33f55b720fb57260e138421efe958e5798d96b89c0363cd4821180faa4aa2bd
 SHA512 
087b1fb159902a9a06ebf4e64e1a78e66dacc86fbb30ac46f30698779676a2dfce041fed504367a1eb6a5e17a16fde1ea1a2a55be0365c78a16f04db4f8d0feb
+DIST firefox-124.0.2-is.xpi 600747 BLAKE2B 
827f1f9d0bd800b066ff76e30ffe41ccdefb94e764ade69deb4c5e35f68cce6476e5f42a4afe32fd1973192b0f51deee1aeb227e67568da33e5e62025c51dad0
 SHA512 
42370d399a5394a340a83173fb51152fbdb15f1d6a507e563a5ef9f43b2efa6e182c39b6dd630f013bcd6100e79d0ba8fb93a777fd97cdc25001fde01d05cacb
+DIST firefox-124.0.2-it.xpi 551729 BLAKE2B 
06724af6d42da8c67db0e1602f1fff176a9b0eddc7047ff363630b78615897d69bdc388fce189f8ac7aed09559f81cda0b0a54be608b7f9e952e4943a4e47e4f
 SHA512 
6876bee18ed9e14074522076788cc3a308305a1919eec4f81ec4adf64ae007add124ce9b667c7308cbfc815f9281067d0f1da4995a4487be382da46d8af27d0f
+DIST firefox-124.0.2-ja.xpi 662254 BLAKE2B 
3c144406a9e71ea162e730e1654e2cc7bfab35ca50653ae3e3501a477dd55b4b46aa1a60acec91a2db382bfb0f5549ad60acbbcda9715fda07cb0897df0a4c69
 SHA512 
52b64c2492d187e7113ff979356f6fa6aadb4f17795d74390b9664d3db80c86ea5d1185b5b745023ac33bc461365e16d162a7aff76d7333d13d35e6d77d51645
+DIST firefox-124.0.2-ka.xpi 652848 BLAKE2B 
8729b644b26ec7675bf6cf7e94a732d87ce819e305c5c3368e2f97637440f78f533637c62bb51df81ad5b22630a9a3199543c27d8bf6d0e1129e998e8e36fc87
 SHA512 
88bff601af66c22f8eb126f429fc0cdfa323645450d25f5855b109552db3ec54ef03c0ff26dfe4834ae7063cf452b26484beed11553bd1e61d6a804c93551e51
+DIST firefox-124.0.2-kab.xpi 594394 BLAKE2B 
dc6154a1b9a699842d4196df868d7ec75a610f23235a11ba3aee51d17dd63e55731f797d58d87b79cd84bf356092612efe746fa9743d25980c39111cc90001db
 SHA512 
6bbfe7b0716e983ddef68cfde52c1c382d46c23fd147c312c07cf32e61ee59d013c0d4188d7e0b97feef45b95099615e8c53f6340a7b1d3404fd8016b3008c8e
+DIST firefox-124.0.2-kk.xpi 689599 BLAKE2B 
35e8cdf1d2337ff4f34c3fc8c6a225ecfb02000a143b872d9a6d41b6f31054a63da7b02abbd7e6bc1f1b20270a1f8ec5f0525fbec82edad6f17f01f1ea618d7d
 SHA512 
49b423ca758d5d17a0be61893b94db1e0a0a4b82e5e04213f39cd88b1becb0d737466034230a351202fd5200ef95dd0f81468ef3214b120c4b2d6a64ada515b7
+DIST firefox-124.0.2-km.xpi 518437 BLAKE2B 
efb005f82123994105be8523719cb59e3828d02d5c7d2eb2c42d0a57d710afddef1240405b270ca4a742c24625e672cdbd2ca14c76f32a0f89dfd99b07e42ec1
 SHA512 
536fda68aa0cd688572ab12c69f6d16ab0af6f10913f58e38ae77fdbbd3ac6ecde5c73914a8292dc899af1788079742f3359f79e28c593f61c5b25fd07dadabc
+DIST firefox-124.0.2-kn.xpi 484307 BLAKE2B 
11e4d75335e13cabfaef01b2f24871c8ffb8372dd52cd8f0cec9bdfd5b1a0c928b1e589f6388cfa7f6f66bae217eebbfd0892aaed2c1977b4a5175fbf1b7e2fb
 SHA512 
4f9884641a5d94c3216acea07391396a3dfe1b58eb223f08beed58a37a166299035f7e735cb2ba33b9055a8b2e9154af5132bd9a04d7368daac424473231494e
+DIST firefox-124.0.2-ko.xpi 644460 BLAKE2B 
c1fe0c9d910d29c9aa5a041be8f78f4d781305833c47b2c03b0c788184299fcc20968bd691df4743f006fa7328e212d66ca984477c81a1a4d5c83990624fcc1f
 SHA512 
070b97338a5e8a95bbdb738dcdf0bec525fbe60d14b5c090037c81e21a08983c60f2fe8fafaa962ad5a97ef57298ba267917414c66a97386c7763a2c14931bee
+DIST firefox-124.0.2-lij.xpi 477138 BLAKE2B 
4a2767b630af6de8fecf5e1c652e1df0b019ea414a175987e382bbcff879ea7fb4be721c6959a57359e368d2616f17e2fe4986f58bf7daf9e836f1002e63aea1
 SHA512 
db529e9e5657eed3e1f1db2690815ab4ba490d547870f3c335784692dcaf826673dd41c6b16ff7589e4d729e94fd882de08eb3a8598dd445365346501e0eac66
+DIST firefox-124.0.2-lt.xpi 565318 BLAKE2B 
534994785117886b1fd34c6f1860842f4d9726d17fc0fd9e05e7cad82d3ed48fb0e6ee63b9c059b034f844b4018f3a4ab858a0a31a3a282bd5b14f4b764eb811
 SHA512 
1682df7b61015ca1dd417f418c33067704d9d257dcbceaf647c37c82babd87b33f279623a2b3e316c7ae2a50f7cc9bf675dc272aafc16dacd711054d43c71a03
+DIST firefox-124.0.2-lv.xpi 462857 BLAKE2B 
1bd532754023cd7a201ff2ca61fd3749c0b46b691e9724d9f4d84ef69a0291f7f2839bd35809cdb196b9d2125bb7b55e63c20b24e33d5be77dbc815098cd3eaf
 SHA512 
1a4088a39823f0c54e96f485a4f557f594656459f0b778e0007213026df5b215a37009cdc20e825927d543989685ac1d6085a79683777340d9b028530be54c06
+DIST firefox-124.0.2-mk.xpi 486003 BLAKE2B 
248f11e61eb64e887b5793e51739b75de387d4d8d18f514db71e16a6d75e4df4628216aa4d36a0af51a97515618cc26789ec7d961c984bcf0fdb9e4390a68520
 SHA512 
085f6cb9206864872fca2616994664b2047a828207a81ec8e0ba97ac1bdf1edb733570d8b60b07b377f3db57608d5dc68d15cf0a5eedb3d2312d332b4d280267
+DIST firefox-124.0.2-mr.xpi 525108 BLAKE2B 
84918f32c64967856d6b3e444fe12c218291c0784ca31e7ad79a5bb5aabb2bb285e91af52e8f52deab6e79dbea1fc23982518d56faea95a9e61ddf9ad328db7a
 SHA512 
4b93d04e1f243ce87138d7526103e21c9a777e71f1052ffece379d1daf0f5cae6f0e7a4682839744fb284494ae73932f6f8549e58794cb159c4f207a7835ef2c
+DIST firefox-124.0.2-ms.xpi 442792 BLAKE2B 
a9e994978d22d94ae62215eee160f20380993a2d3f0d50d92186d365b8bf9206ddf77c9ffb2c2f4861b912534880fc55e7e4fd93e37dc788fca32555636b0f81
 SHA512 
8c214bcb95539aa5a9a430af455c92808e5f1654830ba704181e75afdff0846ebb3fc9bc40c24c2c2a1514108e85126cf7134265dd4f2886566b6eac7df3684f
+DIST firefox-124.0.2-my.xpi 510097 BLAKE2B 
1b82950bdc30116845267bc55e2a150341b24477c50ed8293396f29151a3e9c640cd4437061547e467f2aea4f78e10b7472f654f788fc7bdfad08c13d8b4662a
 SHA512 
666483025b85dd3b0d29cd4b93787acd112d252112999f245b147c3c61d6ac9a8ffcb5260a5a5a84aacf8406a3f19f351b9943a0665a552e853a777ec3e9da3c
+DIST firefox-124.0.2-nb-NO.xpi 592048 BLAKE2B 
f4f0a66d5964a89a04142a712a3b385d92d4f4968afd67c32f5f93f8d82fa6f69c7e29aebbe2e136181325307070b5dd8dd8c5a8937879ba338eee7034e14d2b
 SHA512 
328daf05d02e075d9406bb937fbce877d5911222aa8c8c68d3eb493f7ccafb38e702dd2cb9fa873cba28b9021a93af5917efdd5e72f2253d1beb061f3a13c129
+DIST firefox-124.0.2-ne-NP.xpi 489213 BLAKE2B 
79e4fc62763fdccc37c166f38afd310c2d5bc3c213dfecebe7d71fd7bc8cb7f95b3709f282c908666ce5090efb0a38a3f88fa5ef2576658ba4fc6d08613e5493
 SHA512 
20993887de43855e7c30668a043bca9d6834f742da36b1117824c6334a37e14c095bddc51b7ce29d9f8c1ba67a2c7c1b4584c2c5c0a39b0da0e67f897e25add8
+DIST firefox-124.0.2-nl.xpi 600468 BLAKE2B 
a5a87df2e9df6b0f4c1e53ba87ada7f46bde7394855c61ad6b4b3851bbd392b588e08d3377aeb5e6d6993e4913713d09d211b920d8179e58c72df61013ec3fe8
 SHA512 
6daef12bba475260bd925bd1db3bf32f678abeb6876bede729a8808c68dc6e65b6ad2a5090d4d9a968409f253c8cccebaf54f13674f3f5cd68864c12452fc5ab
+DIST firefox-124.0.2-nn-NO.xpi 584693 BLAKE2B 
ca676606f2f7166246a8566c1bcbc35f7c44d2801e8903ebefbd372c66db06d1df8713381691f6fb5f4b846ea2f1237e392e14296d48a1e00e45d304c205926c
 SHA512 
da26e8d751e850c533eb9caf93b426e14d38e680c567e13d1cd2075195af1682bc03293d18eff8beffc3b5c8bfd16d6fcaa05654d2d63f10534ec2955f93aa20
+DIST firefox-124.0.2-oc.xpi 600442 BLAKE2B 
49d8f868c8d751101d9979c575f38447b17e0b880d42f1cc475edb7d8ec1fe1e08223ee4dd70efad6860a27026da8d6cc6fb90d56547caaba264429ba1a6bd23
 SHA512 
1577eb225dd993b71ff0b5963e567cbaa83b97806d4bffc4f8fa57abdf43e93fa41d140bf800eb3cd7c5806cb59f0392fd959ae1c3a06d1e580a18e54cb7a1bd
+DIST firefox-124.0.2-pa-IN.xpi 674686 BLAKE2B 
f22a4f21869daf5d287165d09acc1f62786a2a0970cc445aa8e83fc980b093130b4101353d0f1e77af8cd5d76244c65032e38e602fee1cf3def3164edb31dfd2
 SHA512 
238fc66530d9c34d7cf21894c0ce600d9a235b77dc9b7664ab9140277a2edbc29c20272eec510415f4e885d49ceb6157981c6a46db35f9ca3e7480c1dc169ab9
+DIST firefox-124.0.2-pl.xpi 621246 BLAKE2B 
adfc0996c4b410249e903e45d2c472c77045db74ff31c6e1ea76e497a32759a5f79cb343ce7a1dd069f13d836605da0356d418b84951dc734c6351fc675121a9
 SHA512 
0bc118672fc0505ed73f18f7f5f7e0f061dbc3ff28fd958c5c27e51e6da3e468b0f589905c9baba1d65791f2b1ef5cd0e37ba3f9cfa8008b601ee65c842e6417
+DIST firefox-124.0.2-pt-BR.xpi 605308 BLAKE2B 
e6afeb842a5d74059bd1a72da341e1a58ab38b98c1db90085011e8686b818cddcfcbcc630a7b41d2395739411e5ba93125961593637c1f1e9853385798d85253
 SHA512 
0a4e4a8db9ed4de3c331fae98d3a9d201ce5dc40f5ecb6f15fb6c569d6d9517d333631ab1518db18444d92577980344f163bafcaa1a5f1ad0cf6dfb3717f9704
+DIST firefox-124.0.2-pt-PT.xpi 611850 BLAKE2B 
c8c9865961915ac08c58e0b634480c9df91d7ab8cd282c303786a5489bf8e64f8e48216eabd06c398bb0872bda6d3c60a18a5eac264145d02635840072a74136
 SHA512 
5883d843a49fdba79596b1d160e290e886186dfe32f37e4e68a27e34ecb2387b6e83add2d514d9490fcffbfad117bad3f40ef78272073e60bd50f7fe8bf8b69d
+DIST firefox-124.0.2-rm.xpi 598307 BLAKE2B 
26bf7439a08dfa695d7aaa44e2590b4118a10732e4dc2b854390e42c829c5c8491ad606732d6f4aecdad83ba8aa58d2b2f9e5b8fb77ab1fd7f6e0270e5436e06
 SHA512 
523d03d710dce8fa65d7b70326cffab825cbe88b56d9f6cfc5365a50de700896df0edf1da196dc282c2ac2cfa9d15f8113e624da777683237aacab6f7c4bd08d
+DIST firefox-124.0.2-ro.xpi 542510 BLAKE2B 
5f1776fe56423c5f4d4a8ecad94f39b9b6253dce0a0bbb069724f83e44bf4ee1b2883b31c7d6ab33ac55f5858b9f336b5c98b3beed7c90b4f795ad0eb5debbc3
 SHA512 
8d96f4aef94a2e63cc7b00aed47a590fdab007a57c405451e9c9f14735c35e860903d50c2e790dc0f9a3175904818130632e5178f0ac176533a32908ecea0110
+DIST firefox-124.0.2-ru.xpi 701735 BLAKE2B 
d42653869c44df2fe3bb36eae1ba7d9c4707777cba4bd974b5597e789ba0226d8ea8bf1b0dee60e9ecc44b49bad07172286803a99bf77d9379f3104c4501fbf2
 SHA512 
be5cda4232abe402073d4f42d8e9c535d21c068428350c777e37876284db1609a155a3d3c10106023ede39433a044d8ef4aa91d2df0c07424f11df4fc11f4d79
+DIST firefox-124.0.2-sc.xpi 571500 BLAKE2B 
f42206e37bf137b58ba8d068b478339e68d3b9127d67e8700b6208a31429a2156087f363cd68baabaaf161a92c7e189f0befebc45e1b8bf4d5aea40b88c2402f
 SHA512 
4ac5d53358de6ffc24feeaf0569f2e7d7658de987f29ac83f5ebd8a106b698bfb4ab37cf9174c24783d8f0b25184323d64fc37b6315ffd5671685eac8cc3e2aa
+DIST firefox-124.0.2-sco.xpi 504482 BLAKE2B 
fc0651773c0ea9422533698f299d19e5d61e36cd285bf3178845a16d0a11adcb463666dce5aebe0a45e2cc16bc301391015498242bc072a90a22af2262c5861e
 SHA512 
b5b22f3b70aab8c9a2b119bae1780c288f0f34e6eeec77d5995f61d1d376bbfb120a4a816f521ff648213e268991c0663914e79a6b1a55c65cc7dc8ec73ce298
+DIST firefox-124.0.2-si.xpi 598356 BLAKE2B 
8ef22c49498e336c5d5037608e63b8e34d70319d2a2c25280e8ef492e88a934a4b1c09fe1192c010662ecbe632ac401f1fd9be9ecce38a2c44b62648b7bfff47
 SHA512 
2e63777dc1c58b8621af8eed0314123de5cf32b6d0203d245b175ddcfa7b543068e0d0e87170b1d3574f06567c55e3e6cdf6d64ec2e00d47e031a3f84c64ad96
+DIST firefox-124.0.2-sk.xpi 635463 BLAKE2B 
987f6cac09f22c972172d2f4cfc421233013797bc5c56adbf2ff96ab128d7fd45200dcfc828a5838bad6d7acbc537451eb0e2ffe280795fcad1b8c7f38e34de6
 SHA512 
7cc091b49a9caaf0c0a9833c0d2064bb096c0c5c806c91e68b3b8284fb84764bc96b7de962b4ebd15d2a09f5ed239d65d9acb06b2d9a0322625e84807a7e8bb2
+DIST firefox-124.0.2-sl.xpi 601279 BLAKE2B 
39926d54e0d014a3b86bba1cc0194fbd57dbebf2cb25edcaccf03edfd4a54e3c09643575589ac5045959c39b05455aa7e7583a3ca5175df8e7e6e40dec16106c
 SHA512 
33d556a8a56db7586d431fa5282f63857bd2007929e387f188ff8ab5e9999eb5b9eea28a22ce115b079e88027a2634430f5fb9b36c85e0949676d6e8cf1a43d4
+DIST firefox-124.0.2-son.xpi 410250 BLAKE2B 
c568f5ef0e5063ade87d6101c74d1f44aac2091e0aebd17df040256a16aed461ff10f5ef4fe97b0b217eb8648dd21ec0c3e059f58a7652a4fa4e96430113c96d
 SHA512 
3ffb78cc387557ca5b0f94e9328a413ebd6ed796453765f8edcfb86889b6d0d03ceff74f5083fb3bfb38f720a8d4922ce610f74892c8f34aeb25887e57c4dbd1
+DIST firefox-124.0.2-sq.xpi 620804 BLAKE2B 
72d667be20837d46fd62b53bd0927a05c3bcfdcbfcb9b94f942e4ddab25be86af8ce9d67efee2ecc699a8b5a74d6d8e25d83c84e2627177e9e1dd80c98ddbf3c
 SHA512 
8f00c7f63482c7f7e8b796d95691c079aef52dcaad8ba85671ef4f22838e477dad885a581b3dd68cb33eb393a5a3fe846779db773ccede1362fe17d5846ac721
+DIST firefox-124.0.2-sr.xpi 631737 BLAKE2B 
2d1cd53855e1fb8b90036776f57fbd3fb3596a752d2a2fd0758d0a92fa5afa8173187feaa45a7b29aabcfda68b5a23d845e51b34f087862231bcd47879926107
 SHA512 
b6f993f5c39c24e0c40f64643c35fb7523e4b89cd8510a8574053af47593ebfd065dbeba444a5dec21691ea65d01f9f25c5b4fe26a07713d54d98b176fe5cf1a
+DIST firefox-124.0.2-sv-SE.xpi 603117 BLAKE2B 
03e079b48688b76fbe27ce1f735cc4b28d43a2957b1eab9abe987f671a8e3c785ddb293e1d06be450c2fc247ceabe83b6110ea9cec85261ee71186809e3e99d1
 SHA512 
25d7f79267ccba690aa75f7cebf7dcfea51dcd018541d600c04ac5dedef8f95d886fd34e1d891ff3c718d96666310e42b684d8cbbfa8292dd47fc8d4b6a8c5dd
+DIST firefox-124.0.2-szl.xpi 519293 BLAKE2B 
9cf82b4bf8ab10c64e7e58d6f666bf2878494b272ae6e7512d03820ab18f61849643767ce8a512a32738ecf0ce77dada713178bd5252c9e97cf211c68e39dbfc
 SHA512 
98632ed7ff33bb063f6832c6b4f3a674da71500efed134eee22171bee64513ef72ca91ac7ca69ec3dd22405f3a6a0bfa25bab3deea0b488b1925a502f991a032
+DIST firefox-124.0.2-ta.xpi 500075 BLAKE2B 
55e079cfd660f50c4cefea56e86bc70ea601b93405080b306cd6c1cc1565bc57b68a693ea0bcf78612740087b37f1c059c68962fc25d0be483769a88dbce4e64
 SHA512 
68b91d6e8dfa91cca90fecef8d82179a3611c9ab440ef2a0edb409fff1de6175ec11e8de096cb670838e3e9e2c2b18b152f2100c9958ddd76b5d21029dd031e6
+DIST firefox-124.0.2-te.xpi 551831 BLAKE2B 
0498c6bd8f026a31d0518a18546183af98885ee9a753eb476e37b3707932e6db1348311131c4626a47d0121b9672d7667d16eb1be4a845a9b6333feec1f92330
 SHA512 
cfc46e4684d898c5615950b4414005517061b1a665ff2871001561e157d8e258e4aad56dacc93516b4bc6817cf6eeddac9279882705fbc8d95bef76010f90cbc
+DIST firefox-124.0.2-th.xpi 677236 BLAKE2B 
6c09109b2d39c511b54bd9974d6c37c49d019f63d456f38a306100ddd110fc123959b700466831d7abb2b9dd8cdbeb40919f266c1473aef8fff2424d2f476ee5
 SHA512 
09984d194a9366d71230e19f840d182c36ff6a2a26a3e5eeff46db1bf33dc3143e9f12127e393d16e45536eabc6e9b2526fbae8b134bda4ed0d871368003dfb4
+DIST firefox-124.0.2-tl.xpi 527127 BLAKE2B 
608669d87474873ee56c4b9c4355920d0860491087269f7a5477f9c2d1b04c81a1124b191fba19fa55fff658fefb2e9765fc1bebdf91a1147240cef46ce132ff
 SHA512 
5672cb540855ad20af7e36593df2b5a40e91c9c2ec3f12e1621d219639829bb035f8bae7b8931cd1ad70cc1dc71675d25da81ca62303696e196b152bce8565b9
+DIST firefox-124.0.2-tr.xpi 615930 BLAKE2B 
f0518f639ff634cd152d7dbe2fe50cba4836ae41cde177ddb8ef9235c1abb3b6edcd386cb517d4690743998283affceb19ba7d2244ed2d9b3ff95b7e86ba94ba
 SHA512 
1f4f5cbea3a8b6aa3d8822caef4786c14bd681218f4c0dc9662e8c0e1115735c35126b5d9617e6c8a56cd52ba66ca3c7749d620b65ac5a927fc1e81730022d6f
+DIST firefox-124.0.2-trs.xpi 497069 BLAKE2B 
7c83db698dd4321c6ca9439a997dabb29df6aea45e2846dee78fb8844db638b23e060990af6a4a840c5a26c1da00c68634f3e0f2a7950393d0b0628ce695857c
 SHA512 
c8b94354aef9119f6c273c1f631ce08d3dd332d35cf641483825fdaa7a716946fb969a97fd45e59f32cfdc52f81df7af5a68c4bd8cea20f93751662a3883fcfc
+DIST firefox-124.0.2-uk.xpi 694223 BLAKE2B 
31075fe5f36091d6b6ab0adcd2835061199b7cd9eac69408eba7c8037375650d146f659205d7c9cf577bccdea476ba0967f688bdd6f0cab736b407eee3feba24
 SHA512 
f6993359def2975f1a1a7ecb128fb6197afb322ba7e11a400c9e351d1a06ca1006eae7205b7ac36bd7fc2e5a63ecee534b416839788167ffe0ffb37d3b3b7857
+DIST firefox-124.0.2-ur.xpi 553210 BLAKE2B 
48bfb22f5e76f34d38c5ad03ca41ead6f09fc9fa3d018588f36fd1aeb70ed9f10ef70b1fc10882d9d5f948e04970d9bf251623e3deb98ff281fb57cb512a81db
 SHA512 
cdbb7739899be716f89ddb87ce5bc769b4434bcf4223b498caa821748d1a897246591f477ce34323edf35500e9f0f05d4f947d737101178f92737ef8247b8dea
+DIST firefox-124.0.2-uz.xpi 472284 BLAKE2B 
042a0f3c98fe2de648badb7b1011c6ff268efdd57ab63f39eac08e9ba59f4e7cc7532fe8b84bd6708e49b485e9921f3564d5386b6af3471da21daa2b1fd78e9d
 SHA512 
77b3f6f18159e031f130dfdaf2c45e7c52c88435586bda9b49b9c7d177b79f335f03b39ef45df7a1a3bc7b5b9865739e3322647de457b67e33a7a8d4a7ab137c
+DIST firefox-124.0.2-vi.xpi 638584 BLAKE2B 
9b0818957b987ec56229834b46ced5d1279b4d90deb94a299e3bc5f4d10c9c685bf933b3200b44e9c9a43b49d2ba69eabe25571180b6888b15992be55fb81beb
 SHA512 
efae644efa1b7dcae8c500afaf84ecc77738f14001230d7b7ce5248501a8258a1ce3dc4d00858a9cf71b37be1720ff785d03c3cf6fc1fc34a4f4db98bc2b4c0a
+DIST firefox-124.0.2-xh.xpi 410993 BLAKE2B 
cd7436a833ea5672766a60441fd44ac8be56c402d354853dda5bf672b6aa1ac7a1c0785e1371fda3d14b9bef772c81455e3fde71fcfaa45072d459c33b251524
 SHA512 
2a102f27f3f2cc60db5ef778f61fd16c8e6b9faeaa6f92c928a67024b31680b50211f8016e4a5536ad6bb1148933af151b39708dad0b28425b14d20886636649
+DIST firefox-124.0.2-zh-CN.xpi 640173 BLAKE2B 
981d6819da6600b28fd3fb10b7adc6fbd14607eac0ac718124ee4d5befbf139e140d731a87938e4d348b9aa258477e82b86ef66b07ed204790e9ce859d9befa1
 SHA512 
d659578ad68bcc0433ea6f03f272fbd9dd6292efda0a2d84a33b987858e54deca10a5bc1d8bd68c721bea258a57296fc93e29fb72fc9fa0286afe0ca65d364fd
+DIST firefox-124.0.2-zh-TW.xpi 642118 BLAKE2B 
56be8d7c6c780688b0160ec0bbab7258ee9d88b1087a0faf95b40f11dfd18acbf676eedecef7a9c45a5fe82d09f5f9a815ca69aab4a44fcbcadb81bb6909671e
 SHA512 
5bc8540068fcdec6728d743f123db6a4d7936b63b1dbf1a669d1dc7745b9e9ba1512860408acb3adebb987cfbcda0ea8c23eb998bc3e056dee5799092a0a8fe5
+DIST firefox-124.0.2.source.tar.xz 555223648 BLAKE2B 
eaa35c3967514cb9f9ca48e32414bdecead3147a3d5ba8e9648be32f04b5d9e209ce71e02029851e1654c66d5cefd9a7b1a2a0fa68558a856c2ae3b1112d04d6
 SHA512 
8cf340de6e34812f8ae3363265859a263330af770d981c3dd1ca1e7e0cfe513604d3e68184d4aa1446569aefbdf359d561fbc200faf19a5ed020a1709d9ef10e

diff --git a/www-client/firefox/firefox-124.0.2.ebuild 
b/www-client/firefox/firefox-124.0.2.ebuild
new file mode 100644
index 000000000000..1616b4e0f124
--- /dev/null
+++ b/www-client/firefox/firefox-124.0.2.ebuild
@@ -0,0 +1,1424 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-124-patches-02.tar.xz"
+
+LLVM_COMPAT=( 16 17 )
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info 
llvm-r1 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="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack +jumbo-build 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+=" +telemetry valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate"
+
+# "-jumbo-build +system-icu": build failure on firefox-120:
+#   firefox-120.0/intl/components/src/TimeZone.cpp:345:3: error: use of 
undeclared identifier 'MOZ_TRY'
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       !jumbo-build? ( !system-icu )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:esr
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       $(llvm_gen_dep '
+               sys-devel/clang:${LLVM_SLOT}
+               sys-devel/llvm:${LLVM_SLOT}
+               clang? (
+                       sys-devel/lld:${LLVM_SLOT}
+                       virtual/rust:0/llvm-${LLVM_SLOT}
+               )
+               pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+       ')
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.26.0
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( >=virtual/rust-1.70 )
+       !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.98
+       >=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? (
+               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 )
+       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= )
+       valgrind? ( dev-debug/valgrind )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       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'
+
+       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-r1_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
+
+                       # Clear tons of conditions, since PGO is 
hardware-dependant.
+                       addpredict /dev
+               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
+
+       # Workaround for bgo#917599
+       if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+               eapply 
"${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch
+       fi
+       rm -v "${WORKDIR}"/firefox-patches/*-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 "Failed 
sedding multiprocessing.cpu_count"
+
+       # Make ICU respect MAKEOPTS
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py || die "Failed sedding 
multiprocessing.cpu_count"
+
+       # Respect MAKEOPTS all around (maybe some find+sed is better)
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding 
multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py 
|| die "Failed sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               
"${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || die 
"Failed sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed 
sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py 
|| die "Failed sedding multiprocessing.cpu_count"
+
+       # 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 checksums from cargo crates we've manually patched.
+       # moz_clear_vendor_checksums xyz
+       moz_clear_vendor_checksums proc-macro2
+
+       # Respect choice for "jumbo-build"
+       # Changing the value for FILES_PER_UNIFIED_FILE may not work, see 
#905431
+       if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then
+               local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16}
+               elog ""
+               elog "jumbo-build defaults modified to 
${my_files_per_unified_file}."
+               elog "if you get a build failure, try undefining 
FILES_PER_UNIFIED_FILE,"
+               elog "if that fails try -jumbo-build before opening a bug 
report."
+               elog ""
+
+               sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 
16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" 
python/mozbuild/mozbuild/frontend/data.py ||
+                       die "Failed to adjust FILES_PER_UNIFIED_FILE in 
python/mozbuild/mozbuild/frontend/data.py"
+               sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE 
= "${my_files_per_unified_file}"/" js/src/moz.build ||
+                       die "Failed to adjust FILES_PER_UNIFIED_FILE in 
js/src/moz.build"
+       fi
+
+       # 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"
+
+       # Configuration tests expect llvm-readelf output, bug 913130
+       READELF="llvm-readelf"
+
+       tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF 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
+       if use telemetry; then
+               export MOZILLA_OFFICIAL=1
+       fi
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-disk-remnant-avoidance \
+               --disable-gpsd \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-wmf \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --without-wasm-sandboxed-libraries \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${ESYSROOT}/usr/include" \
+               --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+       if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       elif use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--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
+       mozconfig_use_enable valgrind
+
+       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"
+
+               # Increase the FORTIFY_SOURCE value, #910071.
+               sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' 
"${S}"/build/moz.configure/toolchain.configure || die
+       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
+
+       ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' 
--disable-unified-build
+
+       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-x11-only
+       fi
+
+       # LTO is handled via configure
+       filter-lto
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       if tc-ld-is-mold ; then
+                               # mold expects the -flto line from *FLAGS 
configuration, bgo#923119
+                               append-ldflags "-flto=thin"
+                               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
+
+       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
+
+       # elf-hack
+       # Filter "-z,pack-relative-relocs" and let the build system handle it 
instead. 
+       if use amd64 || use x86 ; then
+               filter-flags "-z,pack-relative-relocs"
+
+               if tc-ld-is-mold ; then
+                       # relr-elf-hack is currently broken with mold, 
bgo#916259
+                       mozconfig_add_options_ac 'disable elf-hack with mold 
linker' --disable-elf-hack
+               else
+                       mozconfig_add_options_ac 'relr elf-hack' 
--enable-elf-hack=relr
+               fi
+       elif use ppc64 ; then
+               # '--disable-elf-hack' is not recognized on ppc64, bgo#917049
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       if ! use elibc_glibc; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       if use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--disable-jemalloc
+       fi
+
+       # System-av1 fix
+       use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+       # 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
+
+       if ! use telemetry; then
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_CRASHREPORTER=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_DATA_REPORTING=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_SERVICES_HEALTHREPORT=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_TELEMETRY_REPORTING=0"
+       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
+
+       if use valgrind; then
+               sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g 
-O2"/' .mozconfig || die
+       fi
+
+       ./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
+
+               # Install the vaapitest binary on supported arches (122.0 
supports all platforms, bmo#1865969)
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/vaapitest
+
+               # Install the v4l2test on supported arches (+ arm, + riscv64 
when keyworded)
+               if use arm64 ; then
+                       exeinto "${MOZILLA_FIVE_HOME}"
+                       doexe "${BUILD_DIR}"/dist/bin/v4l2test
+               fi
+       fi
+
+       if ! use gmp-autoupdate ; then
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       einfo "Disabling auto-update for ${plugin} plugin ..."
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to 
disable autoupdate for ${plugin} media plugin"
+                       pref("media.${plugin}.autoupdate",   false);
+                       EOF
+               done
+       fi
+
+       # Force the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
+       if use system-harfbuzz ; then
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
+               sticky_pref("gfx.font_rendering.graphite.enabled", true);
+               EOF
+       fi
+
+       # Install language packs
+       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
+       if [[ -n "${langpacks}" ]] ; then
+               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
+       fi
+
+       # Install geckodriver
+       if use geckodriver ; then
+               einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} 
..."
+               pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+               dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+       local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+       local icon size
+       for icon in "${icon_srcdir}"/default*.png ; do
+               size=${icon%.png}
+               size=${size##*/default}
+
+               if [[ ${size} -eq 48 ]] ; then
+                       newicon "${icon}" ${PN}.png
+               fi
+
+               newicon -s ${size} "${icon}" ${PN}.png
+       done
+
+       # Install menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+       local desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if use wayland ; then
+               use_wayland="true"
+       fi
+
+       cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+       sed -i \
+               -e "s:@NAME@:${app_name}:" \
+               -e "s:@EXEC@:${exec_command}:" \
+               -e "s:@ICON@:${icon}:" \
+               "${WORKDIR}/${PN}.desktop-template" \
+               || die
+
+       newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+       rm "${WORKDIR}/${PN}.desktop-template" || die
+
+       # Install wrapper script
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+       # Update wrapper
+       sed -i \
+               -e "s:@PREFIX@:${EPREFIX}/usr:" \
+               -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+
+       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
+       optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal
+       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