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
+}