commit:     9cf1ffaec0324f5ce1ff417ed7db01b78d1e0e09
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 27 09:25:07 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Fri Jun 27 09:25:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9cf1ffae

www-client/firefox: add 140.0.1

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

 www-client/firefox/Manifest               |  101 +++
 www-client/firefox/firefox-140.0.1.ebuild | 1399 +++++++++++++++++++++++++++++
 2 files changed, 1500 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 3f316f63a33a..4ed9e043f749 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -404,6 +404,107 @@ DIST firefox-140.0-vi.xpi 468228 BLAKE2B 
ac4bd406a0361c3c73c80320525c898c379c4d1
 DIST firefox-140.0-xh.xpi 272294 BLAKE2B 
decf08ec9adfb6444f70faf3fcd23884bd6f247ae6d1e25456c37e098798f8cccf26ab1ebe6ba1b239baacbe760b221b991d09546b0c24c1ddbe3238a77502f2
 SHA512 
1dcea760d0938e1ae4bc40da3187eb8308fab681437e6b58672f8c539501d34fd3b08d72db5341f2eedbf542a81b22c21af21e2524ab13d649f7d37a36c81a20
 DIST firefox-140.0-zh-CN.xpi 460045 BLAKE2B 
afa622e32b6e6db4a480c6cbc641f56bf2374f1e120cf3e702d755bab9af2b73b0e229ae851e181918a0c88d62e4ef24500ad2d6df38c83e326b8777baf15971
 SHA512 
a1d60dbf4861dbbbb98382f29627c6512e73eade765380719b78a79652767a15169e56a4694a7e78cd0fceaae70e0f391d8d43c5b704c59bb3a07db6e5010616
 DIST firefox-140.0-zh-TW.xpi 462983 BLAKE2B 
71c99fc9fdb098e3914f997ae218ac80044784c78df3b713eee3c6ad9cc62e4a1d7a7be9984e1a893f37e4205aab8f317f010bbf1ac7f46416abe52678845b08
 SHA512 
3f6b52814c7a9ac1be6e4c18a95d42a85f0e8f89df6eb38cb0b600fd7f3c3b5bed696375e9e1d9ce80b4056cf68848e3ac293c485d3e60f77c7f2592a82cf316
+DIST firefox-140.0.1-ach.xpi 293871 BLAKE2B 
cd300dfb2e7adec70a77fabf7d4a4bfe5ed1aaa48c5be8524b002427115e552ece1742a8d343bfd8e785fd977fc733116b4c555dc03457484d5961d6765457f5
 SHA512 
04f2e966269895a3d4a4c67c04979c9c2d508e685f1a97b5302ff1d5e345e710e76f414491338e17be1beba1b443ce0cb938b2ef93f93fd577e33da903baba5a
+DIST firefox-140.0.1-af.xpi 266134 BLAKE2B 
82da0bb8521f208d5358e9fb2aad7d48edd2bf22f7ba631d2f8c0aa6b4b795442ffd3362e842f92409aeaa41a9505eda49e52a112ce4cb8f0049a6800f5b3b5f
 SHA512 
ad0da5426e359413ba30aaef9294184d45561147f7c127bd8913579dd6148d36f8a7c33204edeec4331cdc3779cb795513ad51a9d225c61eb9a86417771f9140
+DIST firefox-140.0.1-an.xpi 331810 BLAKE2B 
50c5b1316559cc7d07298327778e3bf6e8a1156da7c72314512293a86d4a6aebaf8258b5eed9158a414263b7070c936cd48b924d43fd72699726e968bb79f641
 SHA512 
17c25c4f2fe8dcc14f8f65748f59287b928170956a6421830afd9fc462c067e58008f6196d2aa86d60ad464a83083e3493d61f2b4c9dc5dd4164e25873d9d821
+DIST firefox-140.0.1-ar.xpi 440806 BLAKE2B 
b569cd17945abf988f050f8059458747fbd4d508cf9b9668455d45f650c079ca74c1e51eddbb216a4b80c97839f11f7e68b20b11af0defde8495f4db46374e36
 SHA512 
870c4fa1d337bab0f5c926d4eb436bb9b95a405d4357cb895c22d506a54d42260e832f85cd5722e4a71fe27deca5d3fe708563e4a21fcadae743c19fc0486f02
+DIST firefox-140.0.1-ast.xpi 311735 BLAKE2B 
470f8fda0789e96a80a090acabdd3661e83d2e694b471e035eae374dc974aec562a3469a85d0141148971431c5c9a8ee91c95019316af36d000b8b8d63825eac
 SHA512 
c8ef6726f20a0fedd24cd69fff597eaffa3db9633d2e025bbd752674df9c232dfa663064d55439b49f4259e87d363a153614223af1ba3366d718105d5ccb11ca
+DIST firefox-140.0.1-az.xpi 317922 BLAKE2B 
9b9813053b3164d6214d5741f1065a01a0e77f89e6e10bd7a53a8fe8acdb4f51872d2aeeae3edb58ad8a7c1673b8bc4d401ed987f264b8ebe2ff4ff32ef00f77
 SHA512 
2fdbec65b99d8a35e4ad8ee8f9866a73b35842cb0eaf60f7f76c4aaa6f82399fdc26d602fb7ba595d97422db5c022036160e3c70254db919dc4923670eb23bbf
+DIST firefox-140.0.1-be.xpi 520289 BLAKE2B 
fa2928532cef6bf928d6bc736d3321c7d2b650fe0b3427bacadd9df1417d711a46f5f41f73430c6713a3077b7ccfd6b08cd5546a11ad97ae3b128a270522c3f1
 SHA512 
bb72eb1a65de788af826ebb8c99cb704da80b4cb206b239aaf035b26751ae292c9f00dec66dbd9e5b1d1cf77edb040b4a785471d1c864321805423dc12c724a8
+DIST firefox-140.0.1-bg.xpi 448626 BLAKE2B 
6b5042c88dd8d1dc84aab0755eb15ba96c476b2a02d9d35864ec49135a6494a40a24efb15d6da505e0a1258810e8172191abc3915299a4c47f5ead0069fe97ed
 SHA512 
3abcc3a26e34f5a21410ee70662c5925015bfd3b6ceb27d15a5834a124bc01c49e474b2a558b56f9c9b45e87ef3023d85cdfb7598134297a3686f0723b3e19cd
+DIST firefox-140.0.1-bn.xpi 411540 BLAKE2B 
21fcec1b765ed0565d2800a89e34891a8caeac1440b51009a9f6e054b5107b9e188aa7e7e1b6204bb9fe88ca9b317854ff26b30dcb951dd32b256239a5cbbb97
 SHA512 
feca0f91635d7fcde74a92f73f5170a9113018629d8bced28a03079b01fac3657757fa210cc76db8b3f0274e9dcabe7dc1b028d4bdf9a43e2196270198b475f3
+DIST firefox-140.0.1-br.xpi 392871 BLAKE2B 
aab35c1877bc57bc6d127a18df2b9a44dec49adf96aa707691c02e08cb16d5d4e389676505354437ab6ea108ddcaeaa13aa0e26e1fc341f98edbef4ad60f5917
 SHA512 
d1b88d7b565ca85afdbaead601b34eae44682c7d3a9ea0d25143ea3ceac29012c51d78ed0b0f8d9b83212b75b6ea11ab2d2a2555e9806f11d6f574efa6d3c04f
+DIST firefox-140.0.1-bs.xpi 385033 BLAKE2B 
b9fdabeacaf5d9c9f5c6d4497e64ca55b5066a093565038dd16886a8b60e9cc16a372ded39cd1deb9f9b6e5b4393eba511917e49e87f47be99dc859ce998f023
 SHA512 
bfb2867e61f81c5b7a8967fc245748f74c5cf82afaceaaf947c232c692083e22cfaef288d83fb72528fbeb0c99af0770a3a930b1faff194e9244d3ce836d4fb8
+DIST firefox-140.0.1-ca-valencia.xpi 357398 BLAKE2B 
71872e59ba0873945cce7f63c98b544b3bdb4ad6dd5f58ce4453822be71622978ac7309a8db63c8d1a5b971c925be58cbe64b457ce5d44a0244f4c8908d8ea0c
 SHA512 
c3cb70897eaf380f164fa87717937832e38575131ad1844c0ab7e921d4940eafbef549600fd535bde1bb9c2d598cf12864b438dc32803d0322f327fdf196c1ab
+DIST firefox-140.0.1-ca.xpi 396784 BLAKE2B 
2370cb4dbc2db24f3dd2f29ac07f5e0c52e9fe1fcfba44ee213b421af759b5b2d2fa166875c4d101e7396e4926030483715ea7b39a395dcdd933ceb756246300
 SHA512 
4329aaf3873dccb6249d68d3a22a5a9b09a80f40a2f1996f8d477d86925bf0cb53876b0ca56588e4bd1061ec9f5ce11e44470abcd655eb78a50bc988fc6d20b2
+DIST firefox-140.0.1-cak.xpi 390351 BLAKE2B 
fc742f79b0fea30c2ca88dec63c2eba4b2684e8cf124792ad7cfd8f8e74589ab15ac4adcc70885d729134cf5b624f1e813dbdc2ce0293b62f9659fd492654f9a
 SHA512 
3b173e6c98ff97c57eaa4e7c9c40f4f513c97bffef304d31ec1aaa0d4b340dbd3180832dd209a88bba486573e942f40714ec2a123b270326b7d5ad33e8371c3c
+DIST firefox-140.0.1-cs.xpi 474975 BLAKE2B 
79817cdcdff3d73685ea3fbf75a760ef89e9e9021bd114bb2e6a5b5b4935d05c99898173ba682664ec08ccfec6bc7e61a306af220d4aa4d895e3677251043ec8
 SHA512 
0c54f3cdb68cc4c474e708bff8459b2e8f597894c816e585999b18ab67f1c6d5d6a13cd6ad0a4546f9f2ebb2c8c1bcde719ba3ef6d54d13f5cbdff5e45313c8a
+DIST firefox-140.0.1-cy.xpi 441205 BLAKE2B 
69376d9e6d5abfadc2cd1d9601450ca310122c921faca9e6a90d2fc95d27cae3851b25adf7a2d6cf2248c3fc77cd289178cd8317a9c256cf8ab5b33fb88b414a
 SHA512 
c8b5b3b0722c217d63321496703582c749c1cc78a5ad6cede996e74061b6867c0e5d0a5616b4562e6370ef006047a227e9d74dfe535d82f9431c6438912451af
+DIST firefox-140.0.1-da.xpi 430388 BLAKE2B 
95dfdb0272c31124e27d0d97b28f2bb93fa77d0267a2814ca98fd013c32e24dad16d69e925f71fe91f835ca9f2719b10e6d55b0c0098559ccd62a05e2a4c93ce
 SHA512 
2a9a27fa0922adc2787cfc914b535fb9897b52fa4154888f4e5241a6640e1d39b76f813e3ac9c399c25172adc37340f23847a94844f2a2d050b54236985f7676
+DIST firefox-140.0.1-de.xpi 451860 BLAKE2B 
4e1c33719aac303cf63f1596ef5dd9429ef44e887a1d5e91d7e46e1abba34bd779f12176353f1d78e501cfd218ca20d17777e1fbb483cc7406808976e322b61c
 SHA512 
7ede329cb60a29c91bc352cc534ce9c9685506f4d2c0b4926348a0fb33b7b4d0f5696f2c7972b7281b8619e79386b0688460c2b90a631a21e4263a99351a4391
+DIST firefox-140.0.1-dsb.xpi 465276 BLAKE2B 
2b80671ff30884052488f62eeba11357e8706aca25fcdaf33e90acf7e96e92fbc01155b984c62c4750cf268481fd77ed7b141e4718fd0c2e5f40e429eed6eaec
 SHA512 
a20260e6814fb313e1facadaa067bd3bd1c7c502a654d48d8fdd4cd869bed7c5937bad396e08daee58e0b8f8a0b850e03183d6ed129e5102f5588fdac10ff6a1
+DIST firefox-140.0.1-el.xpi 536133 BLAKE2B 
f60cc7d910fda93eee615bc65b5d42ebcb8256ed978fe5f043891671c0b84d87f423f7169982d3a55de8fad0c73dc8161cc5cf17c73f549842a29dd4b216e880
 SHA512 
d561931122134fedc209b74b97b69190b598cc6811583a6ab605eb5d65c40d78be614339510d2f095e45e09578c6aded2526cf1ee76c8b4a0a0609cfd2360119
+DIST firefox-140.0.1-en-CA.xpi 406754 BLAKE2B 
30880c76be352b102d2df39ff386e84298468919d27fdaed35b901487e00abef48431bd23797f7aefd83bb6f22ac7e16b1aeef51e9b13eb6f1edc6d1e613212c
 SHA512 
8583b41fd379049535738ae6deb3e100a05280cb0d286255320c53b254654ec8fc54eeab73ddcd6b8ef97528d61afa89c3a49db4cba554711433e2491fcf61d8
+DIST firefox-140.0.1-en-GB.xpi 410670 BLAKE2B 
2ed93701d773e206bb461a832396f20b7d6fd07d94c84144fa89c46f01e17511dfc25c9518a84a3c99fec20c69545e45c955ee6ad94abe1ca096eee675bdc382
 SHA512 
03e3bbc27547ebc18fca46b706c3d5262be2a59901b024df155145671df375a4d13c51309348fc784966227991c16fc1e20194c32ea28e01ee2125c8362f65fc
+DIST firefox-140.0.1-eo.xpi 432737 BLAKE2B 
e0e32d2ea90e85ed908884bc8c7d1eb9e877a460b925e400aba7df7c0e46ac270e602431dce08c4484a79c15300b951f686b5c09ff996af55c76f757be1d21d3
 SHA512 
dc2bf6690e7b02184a807c86475a5318b2f7a285993949d7dd99fb5c881b7ebed1c85f707310835ff90e650d986749fe16a5a1e07240ba8548833c506283cb54
+DIST firefox-140.0.1-es-AR.xpi 444775 BLAKE2B 
0f5fe4c81f7239fe160932cf4967a4e0a98efcd144a3d18bc2a2d1646060e0c39aee8c20c7816c2b9b54a1105a5cd575b436eb9d9555155cb04fafffae84e758
 SHA512 
644c22485627eef596a2ce64ce59016c7679e16b1ef53123933afdd85a4471b3250a881aa435c69c498cdaa78fd53ce436d60a6538141a80e0dbb9403ca9b73b
+DIST firefox-140.0.1-es-CL.xpi 445544 BLAKE2B 
40daaf03cc2eaed216368384129c7db409dc021e6d9f92fb39c527fd6faaca23ab98dc31cd6281141c6788003c72521c71e13a0316ca8ebd2062d999ce4d164a
 SHA512 
db809bd0b91606a5ce91c466c9af7033f157a42d6fe14979553490934847fe953914294754d0f93f6ed0c37712b4abcaef85888c0861a959b829591bb6bdd509
+DIST firefox-140.0.1-es-ES.xpi 446254 BLAKE2B 
3253c31237e4b9eae6ff36a6d80db422388bb4bb36aeccb5b58a95542bdfc2d3727c5458e83349503d3400e075d8d9e9834ab5c416755c2d0c11f506d8e29760
 SHA512 
2efe10b77926309cd42e95a0c1e9be88d6e2b33b1296310a2c2d7fae90cebed18e23ba918e4ca0b96002e7fcdaf3c6261185231aff3e6deb80dab051bf4c2e0a
+DIST firefox-140.0.1-es-MX.xpi 436648 BLAKE2B 
ab391fa16e7914d6f77d441081796cfeba014b9cd792a7d19d548d39d8ce9d898ac2a2fde8cc6ae6aca975cf4e6f3fd8f60c4282f6ad1746a59222f61ef9b684
 SHA512 
a0b7fbd652385b97ecd36629571ea74eeacd92a0f17ff48d66dc28c565bb70848e0fa8995d6501d642afeeebe39bff7e01cf022beb5c00ea492ca449ff932812
+DIST firefox-140.0.1-et.xpi 358821 BLAKE2B 
84e69a300b4f28d158518147eda3b791095196b103a61f5048201fd6fc22661054fc28cc1cdc80eb2701b65052277abc728950165b08941d2078b829014fba87
 SHA512 
7ea2a4967533b85a4e2eb18d455c266aa1734876a8ebdc9af5b595d21298c48907e44f4f9c0b4c954b413ff449702c688c819bf517fb7834f037fa3352bfd50d
+DIST firefox-140.0.1-eu.xpi 410462 BLAKE2B 
1771dfc785882410a1b82615bcabfaabc2e147d3993999a818254ea033c1b8a54092ca3ff77837fb99c0a48449027235e92944681877fcd5170a98515e8b2f32
 SHA512 
42a30bdcc3787909b1ed473f911df4ec7b50c306576de723fed9e765ede4eefcdcb27947c6ed96b8c20356e25e242b27aa9311669881b43b3651dd53c43df870
+DIST firefox-140.0.1-fa.xpi 421028 BLAKE2B 
7b7b928f3d016265884e075f72c0154194b92e87d25f44fa49732f9c7e38769c0987f4f4563731b4528c4c88912d5986a07b451e63ed4d5db81d969fbeb0bbc6
 SHA512 
7645b50653da3079b6769d5620f71dda62801770ab3ac087c839540b462b24d54ae93dd98f107be21e15ab9038e5c67cba58571c687b0b92fe739bd8192e7815
+DIST firefox-140.0.1-ff.xpi 309696 BLAKE2B 
b97a36e54f81bb96583bdd0e525a5c52b1765dd4526a4306060a537761af2aefe38733bed83b4191b89f6b54f88c49882fa032e1a193a25e18a2f27cca6e6704
 SHA512 
167be22619e3e06a9336d41906f73df1481f418f8f533b5785900d07f89eb45389cb53044f6888cef5e947129f59d5d8107101d064cd174cbb6516cae89ad243
+DIST firefox-140.0.1-fi.xpi 428586 BLAKE2B 
86f203ab168eb59913c8d1806d5fdaff46ccb5e56cc469b6272683e8b3777260d8d5278ea3b91e75dc9a691888ff6ed5cf3f3f485d5b91b9bc35c431adb4b384
 SHA512 
8c98b2299ae95a41eb9a9a76bda303bbadf1fa398baeb019f2bb4a7de9655a20614716a724e03796657ba3f98d536a35fc39615f828cc5fc10aa82409d0da685
+DIST firefox-140.0.1-fr.xpi 457580 BLAKE2B 
ce5cbf4cc9c9239df33867c92f1085927a421d3b443d2cb15d0757c0da2468bd19b285a28a6264f1ad384b92ce87acdc210418439142796ce68bb65361ce3802
 SHA512 
e49a208cd788a8550ef6f24dacf891f5525d7ed143b6f722befd69694e9d9a9d09e6e8fe57c2f33239c915fd043903e2d93e7751c82b6bf80005d6ea1e3028ac
+DIST firefox-140.0.1-fur.xpi 451052 BLAKE2B 
2ba0fbb9b8922d93ecaac8bc6403cebc1873e60ba2ff3197d86e56868d2137b41eb523ff68af53d113c9e652c89d646783fc35f5c70bba8c91fa9773fc5e84a0
 SHA512 
231a2b9693f9b903b6068fc4ebec60b27b98e1d129d1a7a23784a34bfa633cabe26ec66f90de89a410c5aaaa7721403d01809f75fbb30f0c4ac7e613429b0a16
+DIST firefox-140.0.1-fy-NL.xpi 441365 BLAKE2B 
60b87c3c298fb029bb4228bdfedd30eb951dc2967681ea5b0aeed9f7b0c7c0494891821536803c4d87b60cbc2c5bf1bd2fe85b6eec5065933930a47f4f42121c
 SHA512 
94bc0f70b58c65829c9ea263a4200fdb0d8f96c2ac43a4c034f574ccb421f0bb076199515f0e1446638fd1e8abac0d579c2e22d5effbdb1c505ef1319137625c
+DIST firefox-140.0.1-ga-IE.xpi 314772 BLAKE2B 
b24e9d679e51a3253ab332ab18b38e531870a6b71723a78557dc2ea3356632f830882d3eed3bfbde620a2cd835b947edd31353eb23b9ec4b0dd21bc8669edc91
 SHA512 
37a2c79b7a5b4615c33769872e8445264c3faa4c5750f50992d8a30a74c6482d75dd4fd6c49d0404ce6dac70e27b4e3c9924978fed93e3d811efa9c53ae80132
+DIST firefox-140.0.1-gd.xpi 398929 BLAKE2B 
467494946ec9a1d6296ea45ab410826cf4c6d283f5fedde34e021f4e2c3184c838318f10349b58415f29886cd7590fe768f4293a9dd40136b30e5459df8877bb
 SHA512 
f9ac229ea4c13a2a3d3c963af7bc9767f51e23d48b1a615ee12be9e167f2ee491d84f44cedda888241f1ecc006b0963e32d9c7ff09cc572228eaec424f28a6a2
+DIST firefox-140.0.1-gl.xpi 404602 BLAKE2B 
b58388f380e3006bd5770a797521c328662f5b5c9b8dc63f1f37d754d385a732696a4be81ee51c438f26984673c8c40ac60ae643d5fe60eae9a68afe405984ea
 SHA512 
d1b419e95a7bb0da7e7ab8f81aa5060ae52dffed389d2e343871cc2afbc3809738a77fd5af125a8ea399a5a97efe35bc9e22ffa67bac5c2eaa17832be5295971
+DIST firefox-140.0.1-gn.xpi 448662 BLAKE2B 
b90ed19b94e2ab3037f907afd996a384b4383aceb809eecaea650082b92869b295374f65af07a6d175ab0033d7c741b0af915b7c9c9a0e0b13bf740354a607ee
 SHA512 
0aab28d5d0938697f77412a3919b61007c8ad938ecb9fa6492d063bb276ce6ce9b649b6dccaa2c2831ec95a2178e150b017863a09a65192c449049b937762b0f
+DIST firefox-140.0.1-gu-IN.xpi 358456 BLAKE2B 
f9f6a59d29c4a36174eef6b22df16eb323df064ef6d18916cab34b6bf60b2e4fd76836c2c7a1f99b4aa0665766514806ac8a5fd6aa1f58bbb5a8e83fde4d7fe9
 SHA512 
5a350c287568dca946e229a80184a0d8a4dd24b419a6be86c8eb988702fd2edb5b5b32b4f40a748f6145947c213ba16805328669ac6511c9cd81aa69399a5199
+DIST firefox-140.0.1-he.xpi 443917 BLAKE2B 
d3ec4d7828cd42f5582ce66b36a12b180b1f8ef948a9cefc632621b497c8e8ec58540625b57657780d7487fdd93bb1d5a9f35fad24ca680a2f06b839e1b4b2b4
 SHA512 
cf84c6792c99a735474ff86bf86a96014e21674a58f783d562bb4f0002bf2ca9190b230149cd95eb5c673efed6115e21f2554122c9ec21ffe01bdab8bd2b8ba6
+DIST firefox-140.0.1-hi-IN.xpi 376949 BLAKE2B 
5c732d5dec538a2a85bd8feaab083d2043749104b99862a5b5f2cd7ee129a59d30ececd89380d61304ea3aaba2927b6e45421e2fc0641f72695cf27085ddc6e5
 SHA512 
2e9e5ecbaa8acf63fd0560320bfa6e9b9d221a0eb76886fb49979bbe2bda103a312da0d39f0b7aeaae90b065da924d1a31d4b046191369e25ddfbd6961d6f062
+DIST firefox-140.0.1-hr.xpi 433949 BLAKE2B 
b49ca3a31c8fc2f57f06c9898db2f2ef578323eb6824ea0d655098b351a0a23522840180365f97334ac90e580aba41910062ca5b344e9d76d204e3d918cb35e7
 SHA512 
6d5cc6f88a57c93bbca3e7c17cd3cd9a5c7b8e95a80316d45d9bf2ea18081983bcbe9c4b88aa39d60efb447e82cfa8b1f48fc77f2ed2a68bbe31d269abed230d
+DIST firefox-140.0.1-hsb.xpi 461880 BLAKE2B 
568e85369517c3d6d34aba8daae1a144d1fb2035db6533e18e9f25559a7c0330bdd5e20a244a2a37a2cce0bc93c8c74e609c9593136fb95edf50d1ceb098ea7d
 SHA512 
7de0b93e7e6a096d068153713698ce27bc5add41c20adbeb128ef4d4ac46c73e379aa9c0c330e7c680a9fa4ccd09b62cd5537c39ef263e72f7ace75af90294d8
+DIST firefox-140.0.1-hu.xpi 465375 BLAKE2B 
12beca6692fa0df484e3d82ef69a56544d42d0a6c5ee352c06c2018c255d956ea7b14098e37a9a7148a28c2fd3110b4dd835cc3d50d585b51438f98161dea69c
 SHA512 
73d9e6515620f853216c46cf4639a84acd03d76c9583c442613a5515be0b9aa32d902000c7df8a3ce567792aa2a122800ff1810e016ec21a66520bff76e8afac
+DIST firefox-140.0.1-hy-AM.xpi 453986 BLAKE2B 
52a92702dcd46e6f430b1748b76f6bd332e4451fe4c95e94ade2463f52ca1157c6b0c5979ea111a96443d96ed596f3c5fec81fc06d853360bd2a2ace5e786fa4
 SHA512 
e77e3ef1b97d740a4c00c3d09253668796b4617eed4d614bac72bb874802737f85e6b58984bf2a83f8f45411f691226ad8f92b6452ccd7e8238aa86eea5b4790
+DIST firefox-140.0.1-ia.xpi 429315 BLAKE2B 
6e5cbd0ecbfd2c57d96471bf11aae35b257ebb5ab6e5e13f83cbfb2ec5950903fe42eee827ab578de05ec5e54232f018e4213b20fedb404a79a3a714ea2c4855
 SHA512 
1fe7a571fb510f1c84977a974fc2d3c3b6cdd5dc1dcdf9b5fd1fdd5bbabb1d754b68e5b918fa2b7e9af0dc263bf10754bf19df6471541d33e5daa9f7f93746c4
+DIST firefox-140.0.1-id.xpi 418231 BLAKE2B 
1af714fbede0027755a6e5b0dc396e16f8ff6709bc857dc21b47543408021b6549f74d73dd8071cfa834e18911c0d6b14eaeb7b33479a2bbe8a1e97fff8dbd62
 SHA512 
522152cb8f9fb843ab623892a3466795af45692ca571e13c32ae99e42334f8bc7265fbc7bc104607b7a5778d71a6f26e9f0a9c62565bf30ce683b018d7507bb0
+DIST firefox-140.0.1-is.xpi 430709 BLAKE2B 
4c0e44b99d28da19deb3c2f872f13fa2fe57a2dd393737b1fc771cde5007aa1978ed62a9903bf96058d581d14f5976a109fa296d5ea2e99bbd0acd63eba0d412
 SHA512 
0f3123d9d4244e383e9f0e80b5dd5def93065a4c02ed208f3e24752ea51f26f608879533eb0d71c9ebe8b2617e2ef24f76edbcc51ee0e422941a6326aa520ef1
+DIST firefox-140.0.1-it.xpi 440139 BLAKE2B 
0234d89500090d8310c72ab38164e4e9467fea73522145a28a747c62f61dc8cb1b49efe65b62c3c1a8ee109a89d7027056a9acf745e55999ca7cecbc63757ce7
 SHA512 
5916c2c11132a87575f6aba1c430b4462eea8c851d5b938195cd6f49afb35f074b8c141d02fd190b2da92fd2f2b09a3e06e4b38ac11a28eabcd15346a8a10ac3
+DIST firefox-140.0.1-ja.xpi 480525 BLAKE2B 
a7d31988fe5ac3a45f9efe723b506bdd7988a191dead486682c9d105b648c5120972239a92d9856014e44258113ceaba75d82e126ee697b1a75b4bd1e36f0374
 SHA512 
e0d2be2b279b95e8fb43dc3615f2abd74e8d84fcfe0e2a96a589d2a7faa317bf27718416f3e5c50c24854fa18fb5d4bb829fe9b698d49d3b6344e3e2c1e1810d
+DIST firefox-140.0.1-ka.xpi 493899 BLAKE2B 
60a305815cc451a462c3e039b18874883e5d6d9253546be891b30e526068e8db2fb1930b280d6719224ecd0141bed2c7f4c1ef8fa1c80b6ef3a443d44732ea6a
 SHA512 
e5496818a4ab4ca847b4646701d88513d07ed51f7d4b06cff44c2b005ee24ab96c0360fda2af67b7b8c486cd14efc8ac69f6421e86e838045e2412d55cc086e3
+DIST firefox-140.0.1-kab.xpi 419765 BLAKE2B 
4db8be6872892d12edf40c08745429850533373e6be764f19c2561d9d81474dc344dfd5bd051d2db0f727449b19ec047432124afdd5eecd2668e5974c98a0aef
 SHA512 
4642205e91c6439fd3b4cbc944ca0a50a41d8963c0de6ca5ce738fe9d080f9501f9aef4fdfbb4c0b2276dada86c7a8f323a358a1931f2dbaf7960603ba5bd5b9
+DIST firefox-140.0.1-kk.xpi 500403 BLAKE2B 
f166b078a75fdefc2b66e7c42c7ff7306eb1129da8f605eb54fa196c968c82300340278808114a6605b9bf2b69e3741fd076b274d148db4ae10e935cf63324b1
 SHA512 
172cbbb1a50fbcd3f23872fc896ba150bc06025f2ea350038fb64e94686aed9d8d0e7ff8edaf647180a7cae4c08d64fbc1ba81015b8562a3223173482582013f
+DIST firefox-140.0.1-km.xpi 348192 BLAKE2B 
bf1dbac464b15b189d67e31fae6f1d01a687e414db4c3cac6c65b73dc1ce2f6e65fe77dea07e946dc9dee84c300db17c21d11cac65cb0bbc58a51bc158386cb2
 SHA512 
5901349a8e6f74c27c9a960215cc132e73141c8f60c859084cd957fdd4407a655a12ddb999c562d9d7cf590088fe81ccbf6f1c371f46674eaae94ff4e14a4b1a
+DIST firefox-140.0.1-kn.xpi 331268 BLAKE2B 
04dbaba9d72e2cdf6b7187b4f8516bbde91cd459ea713a29d12662180355a3222560cde024a634b976fab749ce560f538160764da07a5b73a63919590bb37a46
 SHA512 
2429978fe19e62d718bb06f12629250f6e5ceedd5061a43ca4e2d662ddc4969504c3bdb2a821f8622466f30116c47f62142bc2c7b479595dcb4114aaeb09e39e
+DIST firefox-140.0.1-ko.xpi 466754 BLAKE2B 
4c8bf01e494ddb73b78b349fced409dd6ba06198da0145dbf0338338ed8a0cfef03973c24529b2442721046656a8c04fe8b0be33f295a3e0807f6889ee83fbaa
 SHA512 
201d5a6fedcd7df757ec898542281a245319aff5b7092b895c088e7a16a9eb8e9fecb3dd769d07b9387a07617b507ce7295ab95daf1b1f07d20a5dbcbb97d654
+DIST firefox-140.0.1-lij.xpi 318015 BLAKE2B 
d39819edfaa2ba0483c85f22e6d9650acaff453c2d12eae7bcdfa5a3876057b81e681d51b212b77d14c7595ce263b4ab9f7c91a98c34fef99f42de2273b821b8
 SHA512 
27fca5d598983ae104b86606fcbc10e22074ea6a31855ffea5c05a40a4b20974cf1a4c955c4cecf11fed09eb04d82f7965f3ae76d4033c9c958bdacb25bc98d7
+DIST firefox-140.0.1-lt.xpi 379450 BLAKE2B 
c02670f6f9e2654397fee1098c870adfbdae902e4ca654eed9f645f1912a6ed9c5070f453231010e6891aa5c64ff5e5d17e119a70fa0c29fbb2793873a5a2fce
 SHA512 
91ef5dd4b7d07193323fe40dd10aaa5f44ecde65d91099d45a6539f24e7efde3ab9c7e4e2ec2950c5ab9ab5cdcf1af3883703e6abc75ef362ad48cbb8fb772e5
+DIST firefox-140.0.1-lv.xpi 384037 BLAKE2B 
ff48fdb98cbe7e657393564bf9c8d67c450078e9f3e10f0fbbb6d308169a67cf5cdbf10c9e7824eacdd5a3f9fc47e9a0eb80ef5a90877fc500cfa2e2797204f6
 SHA512 
f835737d5977f6057009d2537352e48003ab343d7fd8bb01e152d517fbde8e344a5f18be46b70c1091c93d48ca6bd490d126713580e67f180fb5f2724ca7609d
+DIST firefox-140.0.1-mk.xpi 316312 BLAKE2B 
3dfb5d8401442138ccd0c42ebd0e0726728c650179c569d3a07fd3937e12c537cac5a883155c0126684a3f904c0adfbb6bcba3c8e858aa22b26a7c11e3e46b2b
 SHA512 
934ae9961dd9d805626657abd5fef0cce9433f7752c4c5a29d4a8ba20de66af07eb48e2f65bbc468432754508af0cef174236adb0611c8b522c893fe9ce2d9f1
+DIST firefox-140.0.1-mr.xpi 355745 BLAKE2B 
14f4bf629f2fca886592c981b3fe886b9026497b536f37735d75ab23f8518e09eb7e1292c3a783075cbe6996344ebeb163ab31d01a7f6e0179c5a1dcdefd4ad5
 SHA512 
22fcf2ace66f0db54cbf4b5ae33f24633877b1c4cc75bd15b82048599c0b2fe0806c25247acd5ea4884d62b9b161a0962afdb1a168866feb9705fe62cbc294a8
+DIST firefox-140.0.1-ms.xpi 294879 BLAKE2B 
070f729e2ddb1fdf94eee9908b2575ecc2038788f0e60016676e3f6ec9e414bdbd8e88eefe9e2c236865b01b0a96c98211bf0e84f1a98132fa4c46e8584ee411
 SHA512 
9469d5b080e2fb5f0e48f8c20873a87913153abcce0112fa7a9473697692130868c8294d441eb60103244a3778e401a842a86a7fcf9116612a8cadeb944695d0
+DIST firefox-140.0.1-my.xpi 342527 BLAKE2B 
7f90155475c5316eca6e0e5299dc0f262de8c4ac77522d360718a58443df1708a3a65c8403b53f8ba7ea2e8a3c9ce357398f9eb287d92bd433e6c41e31042727
 SHA512 
c4f851da9708ef2e866b5dca84fa153c60cdf495c25c7d6a0ae31ff040599c536d0b90b395cf3128624f6445a1614dd44d925a25a184b902a29e4cb571ce5179
+DIST firefox-140.0.1-nb-NO.xpi 423618 BLAKE2B 
9a79acb788cbd88da0356bba6bc6999c0046bdbdbc1263b36d4bc23898d6e7db488e15c0046d08a92596375043e8b34baa782cc4dceea9355dd42d305705010f
 SHA512 
8525a37ba59a1ea6fc64940d46558db66f811284d428898227bec98c2a58073e51f3c12c3208cb9b932665421cacc5d29be91d005b8a86a153773243075753f2
+DIST firefox-140.0.1-ne-NP.xpi 348489 BLAKE2B 
516516c703d45a1ed482a6ac877f5031486a0b5d716e8d93d06b6302e750b90252a59e265ba2e20ce210f1e8665a1cd995b1bfa5001679eba766bc226532b046
 SHA512 
01db66466eca2e46d3edc02b8990166318412a03876c2ae093867b7137ce5ba58b564ec8d3381b17f00f10f72cb9681cdff5420cf18512f1812a85bf1d6a6ae1
+DIST firefox-140.0.1-nl.xpi 435432 BLAKE2B 
28cb7ec5746dda23aae94efc74c9c6d5dd0b26df390793b33c1ad5bfb733e8e405896d094a63c6d6a9e66350a7eee25440b8be49ee1cb15fe9f754c7d8488aa1
 SHA512 
cb5f80f5918daecd0725ce8a1b0a4d8222b39475ee5825486f3732ef040d8374ebc596a42df1bd67a44b5259e96498206c7fd231470534090e427466ab0e7dc7
+DIST firefox-140.0.1-nn-NO.xpi 426992 BLAKE2B 
4d35e7e790f0137e3c54a81e87469fad90919597c1f82e73b3ccdcbc4f80252743fa7006e4046ef7f71ca0790304f46dd1c863a1a568aca076ff68fbe13b4f76
 SHA512 
a1e159a099c7e4cbc4bd40e5257b81984973a5c58b01db10cd66d12037b59fb7fb72d5ab0ac1408975cb4d59b4f0f0c4d1723b938419649df74b39211dae3163
+DIST firefox-140.0.1-oc.xpi 410442 BLAKE2B 
23d32845f5f7e8e1b9fc097780c1ac04c8290ad6645fe3a7ed14b17a7c982f5f5ac68fb2c1f1a8567e3ca559cfcc1ad2772a549af07070a8a3dfa8f2567bbb3b
 SHA512 
3e5afe329427834b6e13d05c0855ddf27154a6bcb3781c27b76183a7762584f6d05c6381052a7895890cdc624a45ff21e61174c6fa2e43235400e1161195f115
+DIST firefox-140.0.1-pa-IN.xpi 491033 BLAKE2B 
a2fad1965d483036541e3dbd118b23d49bcffdecb45d8b9003b25cae8661be24bd10d9f831c184df25fe813c35547c544726e3428d59f44b0b777af2a6a9e954
 SHA512 
da90885b9619779e606e8a240890e9861400b76f7904b3bc23c621c071cc54c32b6d55fbe3ee04c6556428f32b67097925a53a67cd165ac4510f9b91f88dda3b
+DIST firefox-140.0.1-pl.xpi 459746 BLAKE2B 
95833abff087d09114401462c0f27ddc35a72f9c9b657902ee13034015640a527902865accc0f53214b08289fe67871ee0b97182109871562760a74b7424eb1a
 SHA512 
62567aae87e84841916ef7448a7e44330d0ca51f8e73ce1b01e948c7b00e1e9fe424eb690818c94c5056378af4b8101b685c5d15a2bf246fa8055b0d4aba454c
+DIST firefox-140.0.1-pt-BR.xpi 439986 BLAKE2B 
af05b794d0771fec71fa5cb3d9501a5d7c74226fcc8fbe4ec7e48b59e647c939ef4d51adcf8ed98b60089e4d2bb774b2df847a26aae12466dc3bbfd62c001b41
 SHA512 
41e4dd6d0513cf9fb02e228b594da07e764571a0aed8a12b4fe40994095f484758533853599e2147d3aff197471e18a96a2aa6880be79d930548d9337560f315
+DIST firefox-140.0.1-pt-PT.xpi 445780 BLAKE2B 
fa5321aba9a0a5416ef5b35485779f869a62b97934fe3f425ecc48c27b6c84c88c9dd5059fa00863427356ab270c3205a4076f6870556de2b98d276acb891ab2
 SHA512 
18538440858301ec9c35331414b26c408f011a17c296bc1ec4b40f45bf36a754fdfe1ce874280fa98f0bd51c884f553c0be05799509e4e0573512138b0c21484
+DIST firefox-140.0.1-rm.xpi 435122 BLAKE2B 
d2b325201a80efd9032970fa9a1ba639a2c7562627b3e2007b8edc945cd609c3930f90d15e22df3f7cceb4474dbdd15cd50999f6692a2d760992907b1db7f731
 SHA512 
2c69e872ad4ec8a86c5a1f6e0240bbab91aad8fe1f6913daff7e43a7c6200fcfa9e37d9e59dcb3e83191470506f4a8a7c5107494efefeba9f5a5a6dad19ce7ef
+DIST firefox-140.0.1-ro.xpi 365390 BLAKE2B 
ed1b3ee850ac430f796e56f05e526b2b6e6f515869b36ac5f3e4e00e26185df59f4bfe4fa9213b976a67ed79d56348f7c359cda7e7ed71d2046b628047c89e83
 SHA512 
ce0fd6419da503a2f3242b0b0000308a0c780c83b03858e82fb99bc90c4affa6a89ebea3572f3ecacbe6676048a12bd43544ce9333cee912c9b6aef33b0e473c
+DIST firefox-140.0.1-ru.xpi 524304 BLAKE2B 
13dbc27bec822bc583915ca0745ccf10d249a45e23c57ff6554e37e0d462a2fc9f233015a643ebb655a16a1722f3b6d5b363004d2fd59ad2883ce6a29a8765aa
 SHA512 
ea22174d9ad7774250ca9ff858d0bb2b60657b22b4ce9f991b91da190e2971b0fb34c940e698ea12f18139f58777c3c8891ef67813eecbcd1002373781ea6652
+DIST firefox-140.0.1-sc.xpi 401426 BLAKE2B 
40c7d282fbc0900d40c020f8b41dee63dd4d23fd2eacfd39f61238c91beaec2adf1f48dd54dbeccf8bf6393a25ca0df1a507cdf540fd6eeeb7fa7757b1e18560
 SHA512 
635e2798340b6a52f020aa15112c7518b47b9a60a143f561f48634eaf43ee36cae65dee93c5c35b94c2da78ac9752b710af62f56c28dcf6753ef8bea8939dd40
+DIST firefox-140.0.1-sco.xpi 322156 BLAKE2B 
cf8e19e0cbd1a7ec80f21b6a7dd3e24eda5a154a99a10edb1789383a4db209c7c3b6e35aa2bdf1e6c7b2ecaf6fb9142027f4d85bee779a3dab768b3b7cd952d6
 SHA512 
fda4ed78bbc7eaead636f4c915d36a57a2797801cb45f16f79903640d01b45ce0aa7187f0e3c7812a90f861e104e9e0591c00cb0c5ebf0d21d5ff3b7d039976d
+DIST firefox-140.0.1-si.xpi 411045 BLAKE2B 
647c47685d86e5af787b77b7f777ddea9963512b46af126972e3cbf822d9c62a0b4ffa08163d04f72af45dd29b8156b7093bc1149b0119a5fc3c722f4e057faf
 SHA512 
0bdcc5b9ee40c50c204d6c851e69c31e04efd5da182285db12df9e1c527703f3c0422e796833b4f9ff3e6dcef7a03b99ca7f310b6916f0752f9221fabf1e0577
+DIST firefox-140.0.1-sk.xpi 467208 BLAKE2B 
ad7f93f8de1d2c6500bc4e14c1e5ad328bb02d74f4ecb7281afd1516e57ea7d14899d7e0d6d45ba6d0033041e874c9ce4798c43f5827ec0c37ba2c627ee1ab06
 SHA512 
9f0148f66e00444e512965550f6c3cf00a675668916260b52bd6e273239dcdc0f2f46dc43320547f3f0ababe98ee4e98baeddadf6a9a31dccc1ffbb96c6d6ff7
+DIST firefox-140.0.1-skr.xpi 485334 BLAKE2B 
4eb17a8903914684036ff3d8474c57e2c0ba64ee105777f20a4258c18c1c89c76ff634ccf1c463615b4eafcf033f9af35a80d6e9bd93b4ec139fc921c41bef56
 SHA512 
89030a3157748dbd499dd1acbc4e73a8c5916075347381bc148394ba503aca0200f01a4ae8e9d2aa1f5d370dc7be2c6c93c657da10edf7170c4c7235f9e14ad3
+DIST firefox-140.0.1-sl.xpi 440265 BLAKE2B 
cf6962190c5d752d5989bc3cc20f4d0337b0ba830b605bdd29a4fa0f77475ff46f78358f0eaa60d1fc50f6ac13081fb1494119e3f859ab9dba6dc089d25ab444
 SHA512 
b727a761bca564cefc6afe5f0d464a8f8e66a202206f6ec84ac80b52f523837773225763f7896ce9fc858e2e327c027301d236059102ea50c435857d9f784919
+DIST firefox-140.0.1-son.xpi 272628 BLAKE2B 
cd4f31427a18dae0cbec669ee8da6f71bba0ade0c695b3e5c6dd3368f041ed9d719ea059bdbd2d939a87d3e9175d08dee86addba5c09796d98d728b8b223bf3f
 SHA512 
ccfb6178c43dd7769f8ec0f066b03bcc20a88cc4ca32e67f2c23a9baee1204500f8f7c85acb89f9cd60e1894e2a8ed0812a12372faf912feea445e99f846a0a4
+DIST firefox-140.0.1-sq.xpi 452605 BLAKE2B 
66a605ddd8658861931a5559ada964266899843d34e61a47df225d58fccab19546e2f216dcbba7890ff5f4e0df0d92cc66a3459fb507107f9859ed39e375464b
 SHA512 
fd558d7b070beb354b7214db4f359df0bb37d9f8ba198a37f6ae3e62f17935230e4e992dfa4ac29da1a2cabee6cbebdaf9b0c064169ab5aa395623cb443a4777
+DIST firefox-140.0.1-sr.xpi 449686 BLAKE2B 
0e45454f6219470d0602e94e719b93eeecdff54ad8decef806e6b58cc015f9fbc5f95ca491d6869c10b2c67fd8a46c7b5c3eadad1441aff2035b6e28232f8306
 SHA512 
553494d7e7eff29a768f3174670b588f5d06755c7976ed33120b3c5bb7c797847a3b2b84f6f231936aa1f67729620419ba6ea407ba3942f0d407b5adcaaa8d99
+DIST firefox-140.0.1-sv-SE.xpi 435395 BLAKE2B 
ea5a6fb5aa92fa9177d10fef30bac4f7119d01ab26013cc708315becaba32f3c307a9bf76ba360705888445bb9ade1f3ebba8e1afad1b41be7595634e402812b
 SHA512 
550c96bfc39bbc96ab79a5429e77d29b1a12a460104e58844cd0f840ab904b369837b2aad6372646be4037d99274d0a5e123b125c83aa2a4fdbfdd1d5c832b0b
+DIST firefox-140.0.1-szl.xpi 341182 BLAKE2B 
4f04ee265323031fd1d72f141f823d8bb1eed6830d7de52367d0a6c4870c0796a2539feea7f0cbd993570c5da005d42074066f141253d8b0a891cb829022c3f1
 SHA512 
78da45ed5d9bdaa9047fdb06342997127a36a56cacb049fcb9b507e744164abe96d030c6bdfd9facd12e55f250fad45085082d209a69a526c8b01aac66b73a01
+DIST firefox-140.0.1-ta.xpi 337498 BLAKE2B 
e8407a6429afe9be21d845e3a163fb980e7398c991871e39a3390db6bac16814241f17013b794dca9742c1ed5af3c9babd9d88cae0c5fe4c238a5c360668ca7f
 SHA512 
5cab125c0b92dc9f8ef7f57dc41ee830e1952f62d2e1a33ff2f51a7807fbd3e31edc7bf9b6e5a5e8ca7dd454604142817e5d50d339d3325dbd3b6fd6020fc3bf
+DIST firefox-140.0.1-te.xpi 381676 BLAKE2B 
ddedb46fe2bd464a194e33a113d8a34b05f23cc7ca90f7fbf14545475241655fe2e10af820aa54eeac140555697ee4f44f8df0117c0a2a5f57643a6e2b61b401
 SHA512 
a8233dbbb91cde8e7372eca4149fe495b467e2548bc9b36db71ab36f057db7989fa7a6389de2672bfb54da3fda9688bd386af17d2a80d66cd3a5d0b5dcae3e86
+DIST firefox-140.0.1-th.xpi 502954 BLAKE2B 
59f049a40acb174dee4bcfee79ef6e2207b3b79c5725db90b20c581f115f3d4a58036b2290924803cb55b01666fb14d7d5a4d5094401710d932173d69aeac912
 SHA512 
f58268ea2a8c0188248b61aff014fad8bcc5d57337f373320d5d2418ac9fc5cb9753c7898887ed84aa856bca62fe233b069536948c9573c99bdb443122ea821d
+DIST firefox-140.0.1-tl.xpi 356162 BLAKE2B 
945f1092113b69e0f04831e164d9947d9925812e6917482f2aa9b0b92c0af6c6f15b96341d2cfdaaf690736566f57372a9e0a96b6c0f71873e90c76c4113e2f4
 SHA512 
b2aee355d56568862df2123fe2398475cbb2160f050815c1a420521173c54333367e1453b7d2554e443c8f65671beea68ad72ae7565af86405efe023c705e9d9
+DIST firefox-140.0.1-tr.xpi 447914 BLAKE2B 
175e1707d93c6b40738f2c6e1760576eb1f5b0846f7ca4d006efc3984afb5095fd93b915c011841e57ca8b062f98180ac453eb2ddbdc12ca5d096eec5a37583d
 SHA512 
8a16cf5090d7920eb243910c0f2f503a7fc9d6624296e0d955f0713f0182fea91fc8a36aa5824e3ca83546059a49a8bd72d57632b3d57f2c3f1b6521a12faf99
+DIST firefox-140.0.1-trs.xpi 322012 BLAKE2B 
4de0a20869643c2600a60f4708fe6bd84933147689965615d1510b9ca55d4a65fab370e72a28d07bd09c1813f45453c5384d8629f683e30767892ba4a9303490
 SHA512 
33718b8aae1f251202a69dcaca2d7eae88c81ad1837382c0c2057a1b7bf229e0e7a90babd3f89738e532316ba62b59faa6f5865e8bc36239e16beb75f50bc643
+DIST firefox-140.0.1-uk.xpi 513995 BLAKE2B 
cdd2b07bd28dfaebff0b5911133e06eec453bb89e2ad168988efbd4941ebdda80134ce1a43ecb209ba7b77fde7b139ee2fe492a8d8f4f0332a0ddfbb7ccd3c93
 SHA512 
2e1ac18976b4e46f4bcd742b8513e07c17adb600d2917d498478cf32c4a585452761722d70f4152398bbc757aea3e4be56b439a9e25db0e94c5e2266925b004e
+DIST firefox-140.0.1-ur.xpi 369649 BLAKE2B 
a1bad16813864a21b94cc140ac7f99b2248e357d3bd1adffaaf6b7a5cc48cfcdb2473cb299a53ee4cefa5d146c67f733a5bc04462cb56285135102222e125ed5
 SHA512 
a3d792a5facc340ff6fadc5e6103fad7c734a37a5bc154aab3627f04be88e000ecb93c093e874e23d98e537822f31200d1b3d4928092d4d823e0e4add543a9b1
+DIST firefox-140.0.1-uz.xpi 302993 BLAKE2B 
868a909f8b016f5815566799808ca68d5be0146857d171b4f7c5d2a633699811474bb4d7953e9b30a845b3fb7978b1c9429ac673184e1e4ccf351e1e4fd89db8
 SHA512 
89ce2fafc0420258eea2f1630eb4d23233bab9ef3d3ff5acf33d297b3599a5e32d43129859184d8b07c258a2f62c0f85b1d54a30c9d7954b17c137100db8f552
+DIST firefox-140.0.1-vi.xpi 468225 BLAKE2B 
cb2c6e323208b70dbf95a49bcee5922028549f7ef60051f52a1db01d2559740d53a88f529ebb71b83e27ca3c66d513e6f459e8684eac6fe505ca55ceef26fc6a
 SHA512 
f6e40c27e022860e32772a571b791242eb391de548bac818fc5c5dbc1796415bc150c6b695d0215aad3ead849dc1b4ee12a7dd817b08094a1a8e0283cdcf7870
+DIST firefox-140.0.1-xh.xpi 272287 BLAKE2B 
5c4cbccb2b0f8c0ce69f84adb70c24acec731e57a2593646056bfbcadad044578ae687099582a4178fa408310af8456a88abc8062f59146f57da72756d567886
 SHA512 
572f0a555b48052393df3ac6a0d27ef6b09af9dbdfefd84cff9de187609a34181ff3760d6b833d7c7085d14a4726a290a2ecb2ff2be74fe34ed6d9d252709c99
+DIST firefox-140.0.1-zh-CN.xpi 460048 BLAKE2B 
2d3bc33d7b266a70406c1780c2b9f3ca72733a52adef831dcaff3b04442222e0cb3e7660bf8e196a2789d0fa04a5972cb75e085ec4fc8ecb6fc1f4b84a028e3d
 SHA512 
734fdc9560886ec944f804bb7f1bea786d1444c7e4aa34770fb6897aa8639156edac30af33f7ff4ce3044479d4b0cdf5d69c76d28a0128555f771e931074000d
+DIST firefox-140.0.1-zh-TW.xpi 462993 BLAKE2B 
dabdd791aa484cb9fdb22dc35b670a18211d62227333e742e1607f510167a71210e2268ea9dd184795e6d882cde82a8a510f252094b9e38c02b749336ec6c1b9
 SHA512 
d373466c233da9493f98dacba2af1d3f884fdeb430368123b8098a809b1436ae12f18f5e44868db86f43259b52cd6d693d20a6390a2411adfc763705012b137f
+DIST firefox-140.0.1.source.tar.xz 633875268 BLAKE2B 
5be32e347d2084aca99afa44bb50587b1085c3efb82021a06471dabcf07f18f7bd967aa740b69f2b0ab93bafbaafc13e7eac23c028f899a78217da5c78b07eda
 SHA512 
d521405f49a38b8449a24f90e5ea14d4337085918779d93d282cec80b2627f381648529d6f69930eb6e90e37302797b0049fec5846d25dc40f556bbd86d55ef1
 DIST firefox-140.0.source.tar.xz 639951312 BLAKE2B 
588d290e3ff70e47a0235ff8abe22c17a76c28389ff9bcbbfaf05efa9fc37ec29a5f64c2fb736f270f8b0c0467c0ce7ba1b5c7f186c86ba1528a4d362ff1c2d4
 SHA512 
ef209827a422bab443e2b6fc59ac16f0ad99293b3c8f10a978f222ac8da5ff568b2fadfb97784feeafa4a24883d44ea2f34b47b2bb19863a27e00d2d787b8ad3
 DIST wasi-sdk-25.0-arm64-linux.tar.gz 115160800 BLAKE2B 
1ce22aaea87d0720d40d46ebdd96508c8fb0593b53c4489022fd5a1a9afb043a26a6e162a992d73454f612f2b6ab01e17a99c189c0c8b8c2d2d68fd96fabee1b
 SHA512 
ef4eff22c1efec4dc5ab199d09d93ee0004f9fa67b32cac0030f8b6a40def10f714391cec8e803c200995dd8bfad3ebad9ec79b4195aa6b2ea61ea47a8b9e61f
 DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 
07618828d4c25d67421aa72d38fc49bbff9052b8ecfe0fa9f4207e71880e9c650f458567cfa5bd389d5f830fcfee89142a77d33c29e7bccd1da7ddba2bc47b95
 SHA512 
716acc4b737ad6f51c6b32c3423612c03df9a3165bde3d6e24df5c86779b8be9463f5a79e620f2fc49707275563a6c9710242caca27e1ad9dd2c69e8fce8a766

diff --git a/www-client/firefox/firefox-140.0.1.ebuild 
b/www-client/firefox/firefox-140.0.1.ebuild
new file mode 100644
index 000000000000..3a8f1f226e39
--- /dev/null
+++ b/www-client/firefox/firefox-140.0.1.ebuild
@@ -0,0 +1,1399 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-139-patches-03.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
+
+LLVM_COMPAT=( 19 20 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the 
non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.82.0
+
+PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=25.0
+WASI_SDK_LLVM_VER=19
+
+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"
+       HOMEPAGE="https://www.mozilla.org/firefox 
https://www.mozilla.org/firefox/enterprise/";
+       SLOT="esr"
+else
+       HOMEPAGE="https://www.mozilla.org/firefox";
+       SLOT="rapid"
+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 check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 
multiprocessing \
+       optfeature pax-utils python-any-r1 readme.gentoo-r1 rust 
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}
+)
+
+DESCRIPTION="Firefox Web Browser"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}
+       loong? (
+               
https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
+       )
+       wasm-sandbox? (
+               amd64? ( 
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz
 )
+               arm64? ( 
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz
 )
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio 
sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg 
+system-libevent"
+IUSE+=" +system-libvpx system-pipewire system-png +system-webp test valgrind 
wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry 
wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( jumbo-build )
+       wayland? ( dbus )
+       wifi? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       $(llvm_gen_dep '
+               llvm-core/clang:${LLVM_SLOT}
+               llvm-core/llvm:${LLVM_SLOT}
+               clang? (
+                       llvm-core/lld:${LLVM_SLOT}
+                       pgo? ( 
llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+               )
+               wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+       ')
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.27.0
+       net-libs/nodejs
+       virtual/pkgconfig
+       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.112
+       >=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:2
+       x11-libs/libdrm
+       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-libs/harfbuzz-2.8.1:0=
+               !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+       )
+       system-icu? ( >=dev-libs/icu-76.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-pipewire? ( media-video/pipewire:= )
+       system-png? ( >=media-libs/libpng-1.6.45: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]
+       )
+       wifi? (
+               kernel_linux? (
+                       || (
+                               net-misc/networkmanager
+                               net-misc/connman[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/libXrandr
+               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
+       )"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+       RDEPEND+=" !www-client/firefox:rapid"
+else
+       RDEPEND+=" !www-client/firefox:esr"
+fi
+
+# 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 "llvm-core/clang:${LLVM_SLOT}" ; then
+               einfo "llvm-core/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 "llvm-core/lld:${LLVM_SLOT}" ; then
+                       einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+       fi
+
+       if use pgo ; then
+               if ! has_version -b 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                       einfo 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+                       einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               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+=( skr )
+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}"
+}
+
+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
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif tc-is-lto ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+
+       # Get LTO from environment; export after this phase for use in 
src_configure (etc)
+       use_lto=no
+
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+
+               if tc-is-lto; then
+                       use_lto=yes
+                       # LTO is handled via configure
+                       filter-lto
+               fi
+
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               if [[ ${use_lto} = yes ]]; then
+                       # -Werror=lto-type-mismatch -Werror=odr are going to 
fail with GCC,
+                       # bmo#1516758, bgo#942288
+                       filter-flags -Werror=lto-type-mismatch -Werror=odr
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif [[ ${use_lto} == "yes" ]] ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_setup
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+               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
+
+       export use_lto
+
+       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} == "yes" ]]; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       # 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"
+       use loong && eapply "${WORKDIR}/firefox-loong-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"
+               elif use loong; then
+                       # Only the LP64D ABI of LoongArch64 is actively 
supported among
+                       # the wider Linux ecosystem, so the assumption is safe.
+                       export RUST_TARGET="loongarch64-unknown-linux-musl"
+               elif use ppc64 ; then
+                       export RUST_TARGET="powerpc64le-unknown-linux-musl"
+               elif use riscv ; then
+                       # We can pretty safely rule out any 32-bit riscvs, but 
64-bit riscvs also have tons of
+                       # different ABIs available. 
riscv64gc-unknown-linux-musl seems to be the best working
+                       # guess right now though.
+                       elog "riscv detected, forcing a riscv64 target for now."
+                       export RUST_TARGET="riscv64gc-unknown-linux-musl"
+               else
+                       die "Unknown musl chost, please post a new bug with 
your rustc -vV along with emerge --info"
+               fi
+       fi
+
+       # Pre-built wasm-sandbox path manipulation.
+       if use wasm-sandbox ; then
+               if use amd64 ; then
+                       export wasi_arch="x86_64"
+               elif use arm64 ; then
+                       export wasi_arch="arm64"
+               else
+                       die "wasm-sandbox enabled on unknown/unsupported arch!"
+               fi
+
+               sed -i \
+                       -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \
+                       -e "s:%%WASI_ARCH%%:${wasi_arch}:" \
+                       -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \
+                       -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \
+                       toolkit/moz.configure || die "Failed to update 
wasi-related paths."
+       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"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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
+
+       # 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-geckodriver \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-updater \
+               --disable-wmf \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-packed-relative-relocs \
+               --enable-release \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-ffi \
+               --with-system-gbm \
+               --with-system-libdrm \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-pixman \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+       # Whitelist to allow unkeyworded arches to build with 
"--disable-rust-simd" by default.
+       if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; 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 loong || 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
+
+       # riscv-related options, bgo#947337, bgo#947338
+       if use riscv ; then
+               mozconfig_add_options_ac 'Disable JIT for RISC-V 64' 
--disable-jit
+               mozconfig_add_options_ac 'Disable webrtc for RISC-V' 
--disable-webrtc
+       fi
+
+       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-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-pipewire
+       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
+
+       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
+
+       # wasm-sandbox
+       # Since graphite2 is one of the sandboxed libraries, system-graphite2 
obviously can't work with +wasm-sandbox.
+       if use wasm-sandbox ; then
+               mozconfig_add_options_ac '+wasm-sandbox' 
--with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/"
+       else
+               mozconfig_add_options_ac 'no wasm-sandbox' 
--without-wasm-sandboxed-libraries
+               mozconfig_use_with system-harfbuzz system-graphite2
+       fi
+
+       ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl
+
+       if [[ ${use_lto} == "yes" ]] ; 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
+
+       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
+
+       # PGO was moved outside lto block to allow building pgo without lto.
+       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
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               mozconfig_add_options_ac '+debug' --enable-jemalloc
+               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*'
+
+       # 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 loong || use ppc64 || use riscv ; then
+               # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+               # see bgo #917049, #930046
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       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"
+
+       # 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
+
+       export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+       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
+
+       mozconfig_use_enable test tests
+
+       # 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 [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; 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_test() {
+       # 
https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html
+       local -a failures=()
+
+       # Some tests respect this
+       local -x MOZ_HEADLESS=1
+
+       # Check testing/mach_commands.py
+       einfo "Testing with cppunittest ..."
+       ./mach cppunittest
+       local ret=$?
+       if [[ ${ret} -ne 0 ]]; then
+               eerror "Test suite cppunittest failed with error code ${ret}"
+               failures+=( cppunittest )
+       fi
+
+       if [[ ${#failures} -eq 0 ]]; then
+               einfo "Test suites succeeded"
+       else
+               die "Test suites failed: ${failures[@]}"
+       fi
+}
+
+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 llvm-core/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
+
+       # Add telemetry config prefs, just in case something happens in future 
and telemetry build
+       # options stop working.
+       if ! use telemetry ; then
+               cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" 
|| die "failed to set telemetry prefs"
+       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 icons
+       local icon_srcdir="${S}/browser/branding/official"
+
+       # Prefer the upstream svg file they use when packaging flatpak so it's 
always up-to-date.
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins 
"${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
 firefox-symbolic.svg
+       dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg 
/usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-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 exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if [[ -n ${MOZ_ESR} ]] ; then
+               local desktop_filename="${PN}-esr.desktop"
+       else
+               local desktop_filename="${PN}.desktop"
+       fi
+
+       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
+
+       if use gnome-shell ; then
+               # Install search provider for Gnome
+               insinto /usr/share/gnome-shell/search-providers/
+               doins 
browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini
+
+               insinto /usr/share/dbus-1/services/
+               doins 
browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service
+
+               # Toggle between rapid and esr desktop file names
+               if [[ -n ${MOZ_ESR} ]] ; then
+                       sed -e "s/firefox.desktop/${desktop_filename}/g" \
+                               -i 
"${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini"
 ||
+                                       die "Failed to sed 
org.mozilla.firefox.search-provider.ini file."
+               fi
+
+               # Make the dbus service aware of a previous session, bgo#939196
+               sed -e \
+                       
"s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox 
--dbus-service \/usr\/bin\/firefox/g" \
+                       -i 
"${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" ||
+                               die "Failed to sed 
org.mozilla.firefox.SearchProvider.service dbus file"
+
+               # Update prefs to enable Gnome search provider
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable 
gnome-search-provider via prefs"
+               pref("browser.gnome-search-provider.enabled", true);
+               EOF
+       fi
+
+       # 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:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" || die
+
+       readme.gentoo_create_doc
+}
+
+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
+
+       # 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