commit:     22360ce8feee19c35329047bae7ee1c3fe2d13d5
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 23 19:50:53 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Jun 23 19:50:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=22360ce8

www-client/firefox: add 140.0

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

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

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 37cb81f79d3b..89be666501c0 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -203,5 +203,106 @@ DIST firefox-139.0.4-xh.xpi 276202 BLAKE2B 
876aff68532546b5f95e457ee7fe0133cc8ea
 DIST firefox-139.0.4-zh-CN.xpi 464969 BLAKE2B 
09f3697729239c9913e9648d9caa8e09147787d03c35e83988fe457529937dd0d6fb22f4e67a6c8955f825a3f70b9bc7edb7dd9a55c290c6ffa856c36be171c0
 SHA512 
0f17aaa914c785df2f7c553c98586c5da02877a45dd8fcb8b1d6daa94bc14d871d89523cd9a1d1c96059632cb7a1a08f05e7375b38dea35952a87e681dc73b84
 DIST firefox-139.0.4-zh-TW.xpi 468021 BLAKE2B 
ef2c073b69572ee35aae9fee272fdd83ea0e3131da9ac78d0c37857fa36ffa5b18c83b6426e549ea82ce0cad0cc657de65fa8a52e0562353b3179b6eb56b2606
 SHA512 
b22bc6efaa430dd37431c97755d9eeb001fd7ed777e0d3df94d3f6a62e5d704137796cf54ab935d81630fc901d5db0319bdeb300fa7db7eb4158e41cc8c71ec3
 DIST firefox-139.0.4.source.tar.xz 644670560 BLAKE2B 
1fa263c2055905edc7ba132f2b148012d2d64e8c05608103a12a47be8108d39050dd8c0e26157e6e9331f28522da5eff33a299949e70724bc7b70414d01f939b
 SHA512 
fa5ae798b0cd485e0a56b0c57ed7f33e0d0ef921302dc0169eac91926194abe2070beb54239c81924f819a60b589f305f923970d753c07ba50acc36e1a492db4
+DIST firefox-140.0-ach.xpi 293879 BLAKE2B 
8ed2791d4b76e1cde22b20b9c8ba6d675be04107b5515399db6224a77fc6e949a7801b4383b1d14fc0a835822cee21bbd1c017f4a1f792814e58928f7e660ab5
 SHA512 
1a62bf38a492953f869e5bbaf11c16b324a97fdf168d115071939288428e8f684b54107afeb098e464e514d70f8f3121cb212a5057603c15e3eee6438d8ade61
+DIST firefox-140.0-af.xpi 266124 BLAKE2B 
02db3d4236cb56d34c777685b38e33e37f1bbcf822160a3660507a05c6e0c923086fd3fbb8211ea654055185d00112f972dda396777179ed4a5965c70bd7f447
 SHA512 
c80360ed3eac95f77a0a2df880276e949e804a2f704dc3a32aefcd03143037e585fbe6ee590e7ddab9dae9015161bd9a36e67a5fe249b3c3e5d8d20d95bfb09c
+DIST firefox-140.0-an.xpi 331813 BLAKE2B 
733e40b0472eb0433d507514dffe42d4b0a9ac054fe5115bff7b258990eae46c4bf74813d352e41d4fcc9a89dfdce404226df6c15e547cbdf72385ea8c4812b9
 SHA512 
a5ba9d5c61a6899a7cda9095a3a46a2cd54900e424d45ef3d49deb5d231f650a88d55838730af79b503238acc7cfa5d52b074a1b92f6f4e17fe8c826030e4492
+DIST firefox-140.0-ar.xpi 440814 BLAKE2B 
dd0d506c3cac2d25b2ceee795eaf3ed010c69d1505fc814e3047119147806855ba88e01b88b9f775ba25d1d47897ec2785416a15087402c37110dd4000d67d40
 SHA512 
37924ab001174ceea2295a739541fb32cba5a96eea7f03132bc1b9c95fc75f34153c5eccc74ca024d1210df08eaf207f7d0e9dd86a6e5553ab152fa9339ab259
+DIST firefox-140.0-ast.xpi 311728 BLAKE2B 
3d8785edcaba22152784990335e26121783014a9730fd63a302edb01a0841797598ae5581ee66213d0b4cea57eec88d032ef0474059241de6ebd1529c6f7b771
 SHA512 
2e7779162026726b54e1d8fd55351d89e8db5d1ae1a7481d0f3ecd2aab4ccb5d83696de07cdcdde8e2d6f31a163c1b64d09c91fd178bf49e43642ea510dc36cf
+DIST firefox-140.0-az.xpi 317918 BLAKE2B 
155a26ede15e3b39994e91bce31b067b171ba38e12009c752b9e8c5f7f8fe6bacedfeea000ff2c001811960db6e4bf2006c8c3416df8762bea06ed88ed6611a4
 SHA512 
a243a80137e4fbced185259a151b10ec7118a3d778b09350021b1ade92f61a74337b1abebfb82ff2ff91fb53c30912d3c4ee6cb397928bee30b50588d3fa1a4a
+DIST firefox-140.0-be.xpi 520280 BLAKE2B 
62688ad276317834fc679d00a25773252bf566ad14fa9856d2d39593e6cd754697366ad617aa19b5af8f96cc96c9e43cf2455fce6327289fb9876d260daf3e53
 SHA512 
f878133cf204d1f761bc2f98022f82d0987c9bb971e02738c32b716ca8319cc42f6eaa33cb3a74f82b4607566cc0223b5751f1dac75a53263e6ad251b001de77
+DIST firefox-140.0-bg.xpi 448617 BLAKE2B 
45517caf38f309c3b64f4397d31dc031e157c68117b6c07c86aa53dbf2dca5997e85bd744b632a22a2071fb86357a71445a9b81f2b58cda8ced0ba2021d3e60c
 SHA512 
09a8ea45bc07cbc5c72c58aca2610036d38ebcdeeacc3ee63e85450900fcd1b45d3d3e35f61efe82145b2e0b963d5e8fbcc54d12fa98ebeab3296dd4fc059386
+DIST firefox-140.0-bn.xpi 411547 BLAKE2B 
0d6390d280991f521f96911771d8db94845e00c61c231f026686508a5233b955103d4e035c3c62b92b8e18266eb011e335d9f060f6ea5fe93e8b8b6e4437fff7
 SHA512 
cb8e8ede68ccafc6272d67529002bcfc0a5fbd90e32d05722cac045e7d2fea0f8d6f29cc1d1466d10cfc58112ae149577610019ab026c1b68eb7c097cb2948fc
+DIST firefox-140.0-br.xpi 392877 BLAKE2B 
f2a8b14f15da01df773eafe263f441006eaa7a60001020f5474370d720bd989f929d69041e003369e27c428198c5085d653fea68f8b452558734e409ee5ef15a
 SHA512 
49aab638f63ce2bb370d39a07afec80637feaca448c23ce20d53576eea296e8a4fa89c70896247fe9a3bde30c8ba9130afeb087c20b2c9aeda8711fc1c678929
+DIST firefox-140.0-bs.xpi 385031 BLAKE2B 
73dd445919e7bf6adc5ac7409ff54574ad5e011c1dde6bb6711e988e2b570b638498cba7046ba0fcdb833a06160f208d02dbc845db9e1d53710c6d4910e41dd2
 SHA512 
a87b21de3e7228ad7eda1fd28d2635bb7da91f3a02806ee6f75a5505a9d60134c78ad9f219f3975e66de65a2adf5945c85dc016573c8e635e581d117e8115264
+DIST firefox-140.0-ca-valencia.xpi 357406 BLAKE2B 
d3144c18bc981a6fe26ab063f1a2122a116d5b082059c272cdf531c0ee41fd015a568ab067241c83d6048d5eaf72fbf95ee273efa27f07aa1d87d04407b7b3e1
 SHA512 
6b8ff84bef9d95e14b1b3e9883969d2c3cfb41fe16b836efe8616f0c6ff1f91645a654728e771e0b15f0f52ad481973674c7f5da26de9fbcc5de84557f94314b
+DIST firefox-140.0-ca.xpi 396795 BLAKE2B 
fea8d1cf56ac0995a7468b470bfbf994172aaf422ba1c9b23d24add8796d56b1bdafac71f92e4c374290153b64dec74e8b24344a376f1ada4679397ce87b3c86
 SHA512 
3d2445e4e55109a0b475534a9c6f138379ec510d1392fc99bcf5d8c035f9bfd71061caedd6db61a34b840a83a82c5037faf59dfdfc39a3a9049e5ba03d6fdcaf
+DIST firefox-140.0-cak.xpi 390355 BLAKE2B 
2a0a87c3787431e056b9926daa38e83d34d8cddfa4007bf36fd8af8b9de49e2267769ab49123a1eca9fac31c800a5ef891d28618756b08c630bd17e23e98a064
 SHA512 
918971430458c72f45550297b5c559c3681226a5a84268b717bd16a3cd5ef5365745ff6e363a995038d0c671f8b5737b18fad43f64dfa839cc1af29bed32ca42
+DIST firefox-140.0-cs.xpi 474970 BLAKE2B 
494db8bbea0dffe5bbc65c35903c08df6551c1da19030b7d671afc87f3e3428d53d417a601e54a5090b78497bd4aa10398b42578fe14477416668ab1b96405f3
 SHA512 
fa9db3bccdcbf077efbad9726ca4e81efe6ac7df69156baa4a0b76ee7bfaecff9fa2cdd325bdf6323854b830bd3e7a5e80885abc29e65c7340c9bd131d94815c
+DIST firefox-140.0-cy.xpi 441198 BLAKE2B 
0d2b12d3ce45ca0c0f63b08d3780949391c9b699f519e87208e88682fc8001a4bfac26fbffcbd3ceb7a1448f2696d377b2a0a461872e1ea232464da11139ca90
 SHA512 
7336ecee01f29bea347c242fdfbec4dc8a046b5fe3fc7e857026118afcfaea29c1af197765c4f100715a3e9dda829fc16bc1c3d6753123081c6ac134a31f1e45
+DIST firefox-140.0-da.xpi 430379 BLAKE2B 
2b4095a01ef2b235756b4d9c179b8c7e88cfecd92e633555c040f1839a557e9e66f38963206d30c6d12c45e8f2dc64913c59d9c33a26c15d26a19f59065f2c9e
 SHA512 
d192db5b734cb57faa8dcbcc069586c424e96466f04b8e76cd644704402538f9e6c82cd75f5f509c3d86ffca62e2efcdb332e8b5a9b3854cbf2dbce18019cd77
+DIST firefox-140.0-de.xpi 451858 BLAKE2B 
eb9932e7e0a23df703d5769759f66fd1534dee117191154907dacd1c4ee46a8d7da3249f2e2ca0ec4d5d7e9a5f476b721948c0435acb560ba10d265f2f54e061
 SHA512 
cec361d5ff8a22d089c4756ee2edfd1faf180225d0a772e4d2433a67c18825e2e5b3320cdde5306f8e7eb71a2938eef2c644651f33059dbcb9243562a6764b6d
+DIST firefox-140.0-dsb.xpi 465278 BLAKE2B 
10ee2d2bf5af73da6691c3b54f8aa6ed13e76020a7630abb3a805193a5827f3526d8c0e84414d4fc517d7dba98c9e9291786f430d95e521e0c161fe96b39333b
 SHA512 
1e0a7575f7a41d41aad4d3f1973a365a6d0ee8b2f2e3d2862dd9231818ca80f8839e49ba06051fca3206278511ca20099f54f611b1d653e9b6a56d6e45083cf3
+DIST firefox-140.0-el.xpi 536139 BLAKE2B 
dc662ea276937aa197b4433802479c196568916b06d540b82aede2828c4210bc2bff00dd5355ddc2ef73d88e798189d8733b2c870676a847a60cd0b3eaa01d73
 SHA512 
6f5e1b69d86bfe55d6f54828f0ff882daedb97e4fcbfdd65ef9cbdad01f9b730b41c2f73b9dbd11e6b13eecddfd3d03b71c8638ee7f9b9645a171d007646d385
+DIST firefox-140.0-en-CA.xpi 406749 BLAKE2B 
6d5769a79f5a739939fa5627f1fc38e645f4bacd5f42090ac4dea0d991dd631b1036074604c3ecd1f54aac6e8e804959e09029a9c8dc0805cdd3400bc84a6a4d
 SHA512 
f418ad501971e76af7380040a0abb097f1d446cd59cd982bdf77afeab122bb9951b2953c3414e5756d3521b8b70a2602dd07d81c44eb31c406fc66e5e82d2be3
+DIST firefox-140.0-en-GB.xpi 410669 BLAKE2B 
09e533f9efa7c87d21f262a0ee6a89147497c812c370238b796e518a4cdbac920b1d72bff17ed0c7d45e02f0e5234d61f1b33b6c9a0e085591295a5e07f36d47
 SHA512 
382df10160d47e52ad22dee849fcd8c1351896d4caba0bc1d28f32899099bfbb52377504ce64086cf733443b1f3c3d15e4f68c0ad5622ee163a9d11b2a91f0d9
+DIST firefox-140.0-eo.xpi 432741 BLAKE2B 
8b33dbbb053b20bea2374bf0683a1f93c785f332ec403a03e11e930205c2a81257a8057f7e28cbda5205e0ea7ad90c8d195f7031e70c2fd204d5d6475ff7748b
 SHA512 
ededfcc9eec3b84dfd71e94bb5f3a8393d1ed305efc70af16c1eff402299e8f3983df08877b9ce39adf160af06fc2d990edd932017f7cefb1e8647d9d824cebf
+DIST firefox-140.0-es-AR.xpi 444786 BLAKE2B 
8d53a164789b7cf66f80390fe52bd983dcfb1fbb2036b846ed2d3c2d1a9a27d1b88532ccb37fa98e5ea0bb812dac90bfb2da88ca0650f5c4139aab9ea88eb72c
 SHA512 
60fdabc16688c50280ee130a31670c248acb56c76f5ba365649ad7da196d84ee6f55fd686f131ec1cd24a4d05ad755717a67e47d801f76ba9a98676f4df5e554
+DIST firefox-140.0-es-CL.xpi 445551 BLAKE2B 
cd7b7f0a26f5b80ac02ee070734fcbd926e5bbe5c7204f8367093779c981b601817e8461ed44819a4a07f213ecf33bebd5436c6914597a69406a3069a6c22a0c
 SHA512 
a2af5448e0e17f2edac1078d754c741210f4371077df16a09dd2aa3474123df5814943f62c457d5354a9a75e842d423fde6d5cef138e18a00cdaee55f364b2ff
+DIST firefox-140.0-es-ES.xpi 446261 BLAKE2B 
920b2cf2eeebc284aa68dd1a3758d22f34cf198d292ec0dd3ece2e41b66d30c085671c3ac03370a48f4ebf957c324b1508107b4837ec8666848c262e9e72aa1c
 SHA512 
8654d38453e06a100d441a1a311fba86263755e20d229597a0af846ae52a1ade9adbb49ed0298cf1ff212edfd2b85fa6805c6331e9f15d8dcbe92c544530929e
+DIST firefox-140.0-es-MX.xpi 436648 BLAKE2B 
73da5d4dbf4d258eb44bade23475dd58903cbe4c7945c9209647810b7fe994f9fcea08687e378de199f009eb0463b05315252fac780d03718a763d8bca72087c
 SHA512 
a9e2d2ed7c1902f67f47a0bb98639a3067b8f6211fad3ec22adb30a9bd1f88a97b74bd1848f2fce84a02243a9c01bd297c8995f5b1cd7d91a4536d11e803746b
+DIST firefox-140.0-et.xpi 358823 BLAKE2B 
2cc5e576646d5d33be36266905d4ed2128665a478e3e9f777657bb9cc3c9b9601f3f9c54110fafc01c6b6efeadd32e47e12c7e36302b2cfd2f60b0e93af5f7db
 SHA512 
468cc78fd6a8bcb748464c4cb880340ef845a5df505a0fdad1023f404b14822b9b13c1983c21fbaf2405a330e04e953ff43186e98a6c32f647e46def672d3664
+DIST firefox-140.0-eu.xpi 410465 BLAKE2B 
963e342172a1553e4432b0531b2c433c5f4849ed2b0d0ea0db984290bf8de3fe43345e88185db7f698203d33703f41163ef5ef5811d514875750cb94e0c32600
 SHA512 
0d8509ccb6badca94399845cd3c72169e357c79652ba4366efcf5d25b190c05eddab7783c709b5996de12c19dbf871f660039535bccb091dc679ce5eb740d1eb
+DIST firefox-140.0-fa.xpi 421023 BLAKE2B 
1372d078edf3ba2ce1ff6c2570d1fbfd8d53475899b8f25ffd18fbd60710a27e41f93c0f5e810bb94ceb5c2ff1154dfcc8c2abdc3d3c636fca7169898fb9c51a
 SHA512 
06386a2a9a7d4eb7928d110edd9af7be77686e0ac5fcd31a66fb5b8a6c6d54c86816602c00b6d486e9b199d159daa00733cbbb74a3d8b2db2f3bef581f0c2923
+DIST firefox-140.0-ff.xpi 309683 BLAKE2B 
750960176fb9dac34d39d092ab13e6b3697f2e133f5a8b2fc7648fd584707e406e588182d4971277593e37878a806a32fb47afebb038fc13cf3e11bbd33db274
 SHA512 
59c7f326d2508c7ee0ca26e364731460ed973904d1ed2ea43e8ceabb945109cd98ee81a0a1f4730fb31007870308230a8466eb0185f3a07eb0e207d630a55beb
+DIST firefox-140.0-fi.xpi 428573 BLAKE2B 
5a2cb1d75d0fbb8b7b81fd17249ba35f18d5e20aa11157e4b275a95f18b16322b4c08759e301c41d7c00b35c3f32118291da098f0e94c942da1b81725bd7b2b8
 SHA512 
3272a8669de218bf15e9f26bfeceec405299983cc9371d0391f256ceeba9d568801e14639ebf92d9b434fa05b17561947ae7b42f806a3f441891a20dc88139e5
+DIST firefox-140.0-fr.xpi 457585 BLAKE2B 
b990ee194a836205d3b286f3030ab170c07dfe03f5cf14bf93a8d88386f43b16fa93574d4d99d63b9a4b4b6039ea238847ec62736acad88bb10f76a2087c31b9
 SHA512 
52c6ef062a2e759fceb6087d7cd3ed5a2063c0013d0ef804f6efe6473b08c2f57d582feb382e75a2ce64b74455f3b5c3608553655bfbe936d2507308d237b785
+DIST firefox-140.0-fur.xpi 451068 BLAKE2B 
b6f6686fa77771582843c4e21340e8ffd1c7f315366c353c770185748f4f300b64af1f096c885603579140d06049c29ed6ded6cb04f253c23f021cbda4360b1b
 SHA512 
96a7e6c43c960cd0b6b685fb6a186d19904cb024912ee28b0cb2a8f620270cdd7f0543f9a65473c843e2fc9f1f414975017e073c0bca12a52c533850cb6f153a
+DIST firefox-140.0-fy-NL.xpi 441365 BLAKE2B 
44590ca38cbaf2532243e9468d15b84ac591b76768bf6a07da428d6a1a84249a5d5bc6b6623638575c8583570205eba82a9d14c72cbaa1ef48acd3b60af5d3f3
 SHA512 
a2e73b064bf51631c3a3834f6655f59c7e0e5a153fbbe9d066d72800326074a35ae07e7e393b4ae57f7b18feba2f5fb02cb5c56ed5dec36fdf042c9e9412d339
+DIST firefox-140.0-ga-IE.xpi 314774 BLAKE2B 
31041e1d29b2f71e98ee0c3303da0adaf76c469bf77c34c98bb21927730a02a1d6ee6ea5da7dab9a6dfa378146c007ac5009a45f3aa1ea2568a80c44fb8b04fa
 SHA512 
e6887a46a963289cedd4eb92625b8ca9bfe43d763462438d364109ebffbf34f92dd686dae4a08338e1f979552c4c78125428ef1248d3eb256e70bb8e53f80574
+DIST firefox-140.0-gd.xpi 398928 BLAKE2B 
4fa34dad90f321cdeff3809218b9a689f07a2162a8c3cfe6964f232f43be07f6c635a7d4f4cdf7a98d7055fa342f0b505f62291816824c2373c030a7265863a5
 SHA512 
eb8c4e6425c5ce97051c09e2ec397dd2cf7504281c9fb1b8a1a657ffb7ce568f54dcc4fe9b1a2b140a65467654d6fb4f8629fdc607dbe3e93b44cff2eb94e211
+DIST firefox-140.0-gl.xpi 404601 BLAKE2B 
07a336e8af1680e28db323cc17c987e154cbbfa3481ec67ff57816775fd71adf0a8c9b30ba005eff43da1369fa69618c923a8a0d4f9d008cd34373602d0ab9ba
 SHA512 
f7326c9d336cab37d68e5bacdfd0a6cee856cf865311158b18c943b38b9e3d5b12b5798656f1a0158220eb0d3b76a95dea00a6a1f632c32f1c2f7c6283f6fb13
+DIST firefox-140.0-gn.xpi 448653 BLAKE2B 
4d6981b23e6f0896fd48be8972b745e68959569923badc97cfe266843a21e6a7dd7cfc28edb80d4e9ba71f8d1d7ad8bb8fbcad8edd22aacc74dacf89f0ded016
 SHA512 
7694f4d6d610e6fcd6d1d42d07a90c8fbd6eba5fddbcdbfbe09959f2322f0eaf4efeae08e9c4b252e19923a12efcb02f9f2c46c8f34622cb0e36291afdf53ba3
+DIST firefox-140.0-gu-IN.xpi 358455 BLAKE2B 
7c5fb4ba97ce0a9fee4885817ba3b7bc23723a8cd4c3b3c88ff89e7ee50ab51b724006766b4157e2ff462c2caceabb38413bcaebbbe00a3618413fd0abe1ef8d
 SHA512 
06cc35348bde3c612d2cc4f6b469680773959ba1dc59409edaf76ed2e0260d51f8aaed790051aa3f05a1355931f784b26067ad5a4b622387f8c6e7237117c8f8
+DIST firefox-140.0-he.xpi 443918 BLAKE2B 
409a150c68ecf3560fb1e690446df03c89108789e19be0c537eeabeab6921c125630c91b2f40b1057972cf8a8d1430b3881031ce44abe5aa25b7ca29c44c60c0
 SHA512 
d54aeb5ef83c3576fadc6012e29f65fb0c9fa0a65480c05b1cf91c9347e558af47d5c383b9c5801fbc3e37995e6ce5fab0018d589fc52e1d73799f2041abf730
+DIST firefox-140.0-hi-IN.xpi 376942 BLAKE2B 
3d955433c4931edf7b94d65c596357c04b7df02e3fd5a863990159c0c7c8763c3c889a9c0d04b10db9c046daa5a11196e0fa29dd454b3d6446d942a8d828e800
 SHA512 
7458c1d67c1d89d3bc44f01fad824742288fd462b38c7df41caabb86c97d14db944c6f488ffa89861f72366fa31ec7cf370f12a41f317eeeb5998c95d5744954
+DIST firefox-140.0-hr.xpi 433942 BLAKE2B 
215841621af62e260f3b9495463d5e2fb99e3868ca5553203fa7b604b0a2f3b9410644f2f952185430c8945233c6c999db91760eee925bbaf5be73a13e6cc6df
 SHA512 
e874151732aef5e725cdf4d62a4055404159ba7a79f8e370336280a3353ca2d3ccb10a8167858f10703f75eb956104fbc408610a09dbc3704b8d6b021fd28319
+DIST firefox-140.0-hsb.xpi 461886 BLAKE2B 
2d84d612f8ad3d7996d23f4780f97df64688baa48970bea04712be75d96a5bd2d63522a260c4380274448161e2e5176ceaa6efaa828c37c3a525d2034bb9f763
 SHA512 
96d6c765289e951a0d03b1b1efc8e2c145b5850f42388bd529592e72509c1a10d80e57c6fff5e1f2eee666d9d87da6fc075a5c7a4ce372e21491caa22c8d68a6
+DIST firefox-140.0-hu.xpi 465370 BLAKE2B 
2cff272f387dbdb905af6a81a95585cf9a7117da1351a16e7af894ee5e09277b0671ba238cbf1b7a6b400a897c2d61de8bccb6a081d113c5a556758bf2988d9b
 SHA512 
959184c914b8c0a39bff921ea2e896dd7cd4d75128277fe0b00b2d5c98b78aade3f72e0acd9272baa65dbc619d990c63d18e9c90c7519210c829ba40ea67b420
+DIST firefox-140.0-hy-AM.xpi 453980 BLAKE2B 
4a577636897ac44145e4d77286a00af4326d8b0bef93d1d29bb3bf8e785f954c1481a58dcf469f791ffde41b107c2af41feeb5a4cd84d21a93bb5dbac24f1056
 SHA512 
1bb2db2532ec73f6046e164356f3884369e1c299ef077109297246bb2f135ac0a75dcfd4a440aee68abf81a500b8af260b45c65837abf5492f8f03df18405686
+DIST firefox-140.0-ia.xpi 429316 BLAKE2B 
39816d9d5e66bfbe4b178340ccffe639311f938068cfc42be427cc9a3fb8479fefc199229a31500c0b1edc25bf35ea344d50658261e443889bdc7cc7de06262a
 SHA512 
b6d49adf28964b01252e68435b8090e9b360cbb1f80a8e1a3671082b720f44709f0c4aecd83e11f90fe363b24999a7e6828aadf7acb51fa7ded1f89e62377b5d
+DIST firefox-140.0-id.xpi 418234 BLAKE2B 
b0fb9e40a93d41476d9c0282c82e78e0882f798fe7bea9cbd6ef793e3fe7b0b9c051aa7cdc6e18aff9c7f07c1e3f5369e396f544ae497385c320adfa3e66f643
 SHA512 
4131ded1f2c5c45c368d981108b4a74f0ff2cdae7773636d14630fee9a1bbbdb53dc2d8037a42614798713b6cb38b34a24b43e46433e8c1f2cf1a993ed08bd66
+DIST firefox-140.0-is.xpi 430707 BLAKE2B 
bcfce3983c55562ef48140dff1164b5060dfbdd3e9dd82494463c83e086b46346c166a5392147de8411f1fdd0328c64d5e443913e7c1d1ac38d3fcaeff24f6f5
 SHA512 
cf8ace34ed68eff5115e825980d093cecf7c52da4ac9db7d69f792bf571d6b27f596591c7fba18ba7cbb0f93b37ebce9d7ae6da3ec728007eccdd4fdd15a063a
+DIST firefox-140.0-it.xpi 440147 BLAKE2B 
856a3a39aae1412014f188f88c80e9dd3c4a8e953f695b21dfb7b3138f0ca0d6eb889d90e020d8db230759b28c0bfc1544bd44b0694e446d74cf7a046debcf8d
 SHA512 
377d056491219f537cfa9dcb224cd3fadddf980edd1215c08b35f53f3c1a4571b25f15d33adbec28f2b229f3f694acae3bd21c58f1ee82cc905682e2030e056f
+DIST firefox-140.0-ja.xpi 480531 BLAKE2B 
42ef32557e4e78c6c9713912aab615b483e03a671f730b7be1b70053d182317b7bec0d95eab70fd8a7915a691c73bca957366cde7a698cb8e9e471ae7dcee3e4
 SHA512 
d66ed1b071fcfb9c4276e08ace545107b533c46c95b530f8099d11c6e174602bd5ca9fe91095d5c3334fe607dd5b57c5c255f32a9a87d40e3511c0f5d483b9e3
+DIST firefox-140.0-ka.xpi 493894 BLAKE2B 
60caaf1ac37c9dbccd9c33254a8462b5f256e0acd470a06c24bfb3823bad6ca76339ad36c63792a4efdee90dbee52b1b2399ad2e226726fa087bdecd37f0169a
 SHA512 
ddb5d983f312b87b66f3fb16aff88e7b871b8d21cf1ee3e727cd5b3e3c4e04e95c4c17ce057cb5709b83aa74eff46bd5b7f30754e19982d9b94e7cc4edf4b178
+DIST firefox-140.0-kab.xpi 419766 BLAKE2B 
7b89dccb72e84bcc88e72998c742d2688e5e88d7c4faf22e132f0f2f180078e8be16117129b46ade72d8cda1a458d43180a31885a15a238c2a65fbc017d4ef69
 SHA512 
9f4c2a7fe87149d10633ce73f1af3fb9b00829a932ca077a767bda6e6c32aff7d6bfaf36ad8509a119e5bd276926265e2d211ecb72c3c684b4b10426956e2e92
+DIST firefox-140.0-kk.xpi 500403 BLAKE2B 
ca1aabbb186c1fce9b6c6839008410cc5ea11f5e328603c15739b12c6eba6f9ad59d6833594009458d1cb48079638da1ec6dbee224f876da8248fe1c92ed6673
 SHA512 
06b091cb30bf6d98a7a4bc608cb3b5f822ed9d40f701b959ae74fd447655561d1f6f5835eb66ba2a3d2b03883b799db3804cea6ad6eb3c8abef94f9039ceebaf
+DIST firefox-140.0-km.xpi 348181 BLAKE2B 
19e41759ee9d6c100980e0f2205a0f5c0ec988f2f67955bc5ee8171ff7ce50a6a85d42297e4a73840871abdf1f303076f1caaef4c165d9bc6b68d1ea9d49946b
 SHA512 
dd867c3b939556803fe59fe22fd986093e561da9fd9fec4656d5e4f3b55fcb33be8020636288e767b8d00fef8b44190b4ba841377f426ea1db6f0dcd9e3035df
+DIST firefox-140.0-kn.xpi 331277 BLAKE2B 
9ce34aa27b54acf0404daa0703dd79c47f609ed8e6c3b73c0cbdd4e5fd9b6145f26efd9889c979575ae9f054a337caab6c6743f84bf572de76214e126f034914
 SHA512 
c1f91460f5a452f54bd67a1cf5bb400434802947f1a6093c50963fdc005f331b49b6660fbca48504a7c9d60a0b9ba9fbda6a7553e7402f1e70e2c2186eae4c48
+DIST firefox-140.0-ko.xpi 466749 BLAKE2B 
0aab50ea64d8754bf99e9854c95b12b78d621f2c921b12fdf5ff40554b3a33af0d85273b575710f6a167c6636388326ae2990e79f69612c245a976c9640d5bb0
 SHA512 
4f1fdfc24f8aab71735b82b42cc0819b969158449e678933d324db954b6fce898a0ddf4ea1075c2a5cef0aafbcfe374fcdd5ec4706338525c2627d930d966171
+DIST firefox-140.0-lij.xpi 318004 BLAKE2B 
97dd2280e121e36a14bb06ee7f6743edb32c7e76a756ca6fe5ff927175cf6d4ecca0c865a8e5750cda3ca3d571ce83c885efed985f43f69e5c1834b2b8062507
 SHA512 
d7ee664dfabadc059a3688ed5b7665442e7eac55ca66b6fbdabcd45124951223c2d90e89b23abbde03a54084578fbb2aa6ff9348b92951c798943de1c0e90ea4
+DIST firefox-140.0-lt.xpi 379461 BLAKE2B 
6773f355b83318685dec255d7ffc17d24faf037f9d996f43c0a3527a5dce43a65fa167ef54269f15ed23f5bc4b285cb604c6ba22cae561ea2c1314f3420bb8d4
 SHA512 
d553e4469f6fa8f0a0b601728aa23fce6253b97cdd3fe28babde9f69b10862cf8f99ae7a908294349d4ed1d159c474575e610d583f9ada127205989a0b5a9321
+DIST firefox-140.0-lv.xpi 384023 BLAKE2B 
2bbdf1e700288033321714c66d5ab7a2ed387ae79a0682ffec56a51a07d25a7e77bb9e4875f2a656eb486331740d34e0f36b57ea6a104d3eeda400417c2d72a9
 SHA512 
f749fa61a4f11afc027e111abf179b4877b002ef719946bcfb1ddbff9812b1f63067e67d95d36bb0471a8cf059d4417e156bd17498516b06ebf23fd15d215c4a
+DIST firefox-140.0-mk.xpi 316312 BLAKE2B 
ccbecbbea4d819833505c96c385f0c474355828d6dfe8e9b4a5f1bfa118c49bcdcbd8230809f534c35e02150b6ebf02490ebd5755b719fe9a86342412e87d84e
 SHA512 
ee1945d1b1e61d1ebf163a7cdd664e970c1fa4d6cf9a0ac2388a2ed9c2c753a18c815a1d4b996ff321a71a34ab7aafb930fa043291bfcc4bdb9ff368cd67bab8
+DIST firefox-140.0-mr.xpi 355751 BLAKE2B 
f7de690d1c8bdb880cb054167b5498b8fb6798acd596ceedcf8cf8880bb1f6c7640d9363b5657a4f2e3e5dafde0a359c2ddb359958a73b03982949d0b916f212
 SHA512 
2af578af5b507239984deaf8aff2ebe0b7083cbfde568a71c8e61a4adeb6350a2c3d5346bd8e36723e80fc8aa6a73fda25bcd42cc103c872f216c01abd39ab9c
+DIST firefox-140.0-ms.xpi 294885 BLAKE2B 
1914bb4d17279ff778af10214ce1ed11422689ecd086d4ae5d5d10183240b084c06a36fe0bfc5a346578f9bc6da079d3f387000ffc22e591cfd9a3a0439a0715
 SHA512 
f9adfd12d0c5303319b49f1688b528927e04d0098fef5ff315103014ba041283c446c07b92314b2125fbc3d3ee1ba54ef45c30e32ce5cd7288d8344866b751c7
+DIST firefox-140.0-my.xpi 342538 BLAKE2B 
b28c48e74b29ccfdc24f8cbd54b74441ba9e98b9a24ca11c1d53cd822ab321030ac7c31def528c8fe264463d0ecf69ea400899d45f69722361a4c1b8fef9e4b2
 SHA512 
93538b742bd623dece5d358ad278ee9933a223d485226214bc8439e429887108b2ffbc6abbc7a7fa2956fc55f5415edc4564824c9115e99bf1164a930003db0f
+DIST firefox-140.0-nb-NO.xpi 423623 BLAKE2B 
e71bd9be95407277397707c6213d7da376fed3e1f74f9f9fca09af6356eb24c3bbb3522fa0a76bdda99eac702c42cd662f203a29cd855a79a23aa0854802fa79
 SHA512 
bb57d20a0ddb8459329f70167341bb79e411889233694627cb12f74fc04174c08e4748b3ad697b5e994f4fae9fc18240481a619f733a7e311484b3c2a8a7f9b9
+DIST firefox-140.0-ne-NP.xpi 348487 BLAKE2B 
1c55f6a249c60ec15f633f981935c781b359c503dd500684348247cf7573cae63dd102b71f3e00cb73f82f11a41ca43aa627618e5aaa11cad22b01e3dae7fae4
 SHA512 
3c126e765786756bd6e563c15808e4b172c02c871c431fd7aacce4055a30f527bd38d58c9350922f2c75055ba6ce40592a8fe6e585be442f9a4faef1ad8227cc
+DIST firefox-140.0-nl.xpi 435435 BLAKE2B 
37db1154feebeda239e096c7352aadb745b292773d4f359bb5e85dd63221b009e92d054c965badf6e6f3669b1f2b3bc7f70090fcf72626e7df704de4960c51a3
 SHA512 
e041c6ad791efa70aa97fadd4d0100cd91ec14241b7302c9d6edde79302f0797a9128c25f16f600b314126088f00991d21d2886838d3b6c352943d44e55a86d8
+DIST firefox-140.0-nn-NO.xpi 427005 BLAKE2B 
71ac8ae1a27fe9cc6014947fc4d6e1f0162f302e523f65d71826f750a1614f36189f1ec7b6ec729c9fa136255d0382bee27b0499beb829bc82ad001d16ca1a19
 SHA512 
4d1fa71049912722bb3ce4a445df9b53fef60e63311122dfa7ad61ccb6bcb5ec7160ec2a1a6f9b6f2b314a6404b5209ba103beb75226cadab29b6e43c31df42b
+DIST firefox-140.0-oc.xpi 410441 BLAKE2B 
35d73a267468a45b0f11038bc7e174b5e061e84473541a2c027ee62492751f9b2ea4eadb19fe76223baf342116384276a118e86e69d42620a20715f1dc05be3c
 SHA512 
54707952ea18dd2126a827927511ede7cde3c560d2f4d17cede748b6f5a0f703f7bc2fdfb20c492ce1ec6f98287b1125b77a7a731575a3bacb4061d7646a71c8
+DIST firefox-140.0-pa-IN.xpi 491036 BLAKE2B 
762df6842453e6424f30c5e15bd9b9c5907d73819ce782b1cfc33b46113ef9fe655c9fb25004c86415e671639131b2e61f6ac37293a6a83b0f93c1336978f852
 SHA512 
c287d0f604b06cc16cd6fd45ee439444f1ccc0c533afb42b7c91d9ca35811bb7aa8bf7c34accfe6925883b26a7df52029ad58a8b95cfeeeae4677feb99809525
+DIST firefox-140.0-pl.xpi 459755 BLAKE2B 
2dec90a1e72a677f5734fd48a6a8b696847607ca0a662e022e681b2b62ff085dc169712046b31dac2b8593216b4210fe6eb1c5a92243c97bc032049de9f454f4
 SHA512 
55114e9f9971ec78d7f69f145d6edc92aa15c49b98df6ff2c43465a6a22eb6bed1a9c88b9e07653eec0eb477d55d38a0fcfc1805fc61359e28f0e6925752fdb1
+DIST firefox-140.0-pt-BR.xpi 439984 BLAKE2B 
2500e23c5800c98101b08795cf5f31571ee58aad705f38178f6d4a68e2b82accc74f8b9a7921be8171cdb23f4b4a2dac14d8886acaca0e47dd7a8fa5f8a2408c
 SHA512 
dde4c7e26977f7bfe552519e18d54556b62eeb4326534d9800ec3587210ba315a0d547ca269fc0ddcec203d6f77c041123b1bd191a155008858460da46f14567
+DIST firefox-140.0-pt-PT.xpi 445779 BLAKE2B 
5ef4a7df78c80250a06d39a07a4ffa17ceaeb5ad764e4581010ae357360f9d568307ef6693f9314b684d69f50c548f7eca29e553ce88e20f7f5727527a541470
 SHA512 
5c15fcf86bfabb0ab1885e1f4e316ebee8e77c4e5a1218c1544141f8eab506da76ef331849bc37216abf5b79d375a9ee6c024ba10e5d62fee3960fb6051019cf
+DIST firefox-140.0-rm.xpi 435116 BLAKE2B 
0a25bad5a1fb7ecd94e8ae9dbe99addeca7fb3a698452a66dc6e19c6de6e4467e7cff8973c5814b945ba43e6f756be096d08760a3b250c24afa8229c4b68f096
 SHA512 
9c5b1fe74bac1745ab1d9cfcceea82dfaa0c211b68bf17861d5b1544d36807e30e66032742f7ad8f17d482d1e51e23a5afb1556b5de8d35f1d9aa47f39319ccc
+DIST firefox-140.0-ro.xpi 365395 BLAKE2B 
f9e443942e62dce50d95303e6adfef8a339486a85bacaf89a0189bea81536b7b630f4ca5a5a29c64f5c9bfac357594f8a1de11120b1deec5fb2e95961cfeb4f2
 SHA512 
cdb553c1bc7f2b5cd3522895bc6d1661006288b1bde1108e15234e48f32e6bf301a633bd91d1dc5ec81c94c046973b4e9a24dbef00c21504fa72da3de1949b76
+DIST firefox-140.0-ru.xpi 524311 BLAKE2B 
a3d6648755d8f342c386d7d442dce2a796d39b687f42a60d36d294e8d9bf17bfe280b67071c32f2ccc13e31d685d4585fae3b688f1f857993e2907d82d0f63d8
 SHA512 
360d2ed4aaf13ae24c53c83f87d936fabb54c2bc3d145b7724127aae45f8339e8a7895e6b4dc5291ddd88502cd99b9e27b41176e8672cd39c177b0a0bb939353
+DIST firefox-140.0-sc.xpi 401424 BLAKE2B 
60fee032232090c3032f9e2ea87153593bb395bc955416710c5b6815aaafe1b34585147ab1c43a27c385a971043409c4db0214f86322926e38e4ed2ae36084b9
 SHA512 
7c19f3afffd11a0d0dc49f21c40527edb026e6a71eec9c3d8e69a662a299681909f0dc2fc8239fc9a84ccee27d0ee973da083f96389f4289bd9059c4a67c263c
+DIST firefox-140.0-sco.xpi 322155 BLAKE2B 
076c767168b6fb7e117fa41f2b6249551df039ecade6a1a78e2afc672575d09170c402d8e81278ef3cc06af4b5b88fe0403649aaa802dbebb2a3d672d625acd1
 SHA512 
d93a1a7ff2b4115ab4f8009f76109b5bb8dadcc47ac50d66681307b4fb3984d1a18ae81c40d6c82b017e25f629b4dfaa428a62010a1517afa7ee6c89f409f580
+DIST firefox-140.0-si.xpi 411053 BLAKE2B 
5f1becfd2a31cde2d74c4d5be3a4c6cb42b44280bd0ce64f8b520c710df2fe5f41a89862a2f80f7cc140dd67b62aaf0dde49fd90f9ab83f5ec0d3187b04e4624
 SHA512 
99f366cb86b13de741726402776af6490a67bad8d703e47b93e42a78a1a58ac49620f21f513914d1b9d85ba12abf6c27141b4561ed2b85b91c8b6644390fede1
+DIST firefox-140.0-sk.xpi 467206 BLAKE2B 
f85c34004b31d8a553ec05b3e990eb3b609aade941fcb2122c1538f42043649a52eb24ec0fa37beee7122fb31a854905b1ae0d04418bbf9a7ebddf0c451b3702
 SHA512 
750b7fb095904d0fe4b38a98b3a9364c3c3b46cbd1baf36ee3e6ae486a3fb2b30adfb686b60989025379cc53b191411952e4f447e6d5ee9388e8b61f4c86f3d6
+DIST firefox-140.0-skr.xpi 485329 BLAKE2B 
79514022365e3004fccbb0db576801ea47152b3c6f3a81cd485a3023083e1083c3a9bb65d7051248e44ca367c7075c66bea6c988c2058fa02bae2bced48b5cc8
 SHA512 
3deb806632adf9bbea4be6773340cec2562af3a556597ef8717073adeba70166fc0763256bf6c139dd1f901669a39c42c98d8d0d1d3b9c7dd04dd31bc14cd675
+DIST firefox-140.0-sl.xpi 440262 BLAKE2B 
1e1ad746938b7be1b92818cf29dbce411473acdae9297bf43bd2caf5f83ec699950a4dec45fc95714b5f02e9bf95834c74c2e0b59a64cb9267a3d27ece602404
 SHA512 
7a51db8784f757ae765d9b2c49bb4ccdfc3c737fe2699481f86ed6e064704e855b0d51013b04449d9c8648c99eafe1e28f74baf5f8472c6179c7fa8da9785b24
+DIST firefox-140.0-son.xpi 272640 BLAKE2B 
f0b6246ba80297274d86a9519810197fdc18223638d4dfaf8e5537e4a605457f65855bf0bb8f6e5f8c67106c93ee0eadc1da61cad4a0695f6cc78a1412296b5a
 SHA512 
3b8e40d11412d07baca32da02c27435e3044f92f33177d4d36bc4e320b79424aa8d6bc0d77be8d442e6a1fd8f7ac6c4bf99d1c70ed988caf9fcb97265795eef5
+DIST firefox-140.0-sq.xpi 452597 BLAKE2B 
e8e68e380e1122c9e69a51d5674288592a9991785943302566fc3ab1fca156a8a7c716bed4b88d3870b41f390e62cf8a2bb65a00a3ffe13f9731343b4424bb48
 SHA512 
1b929746ded257af3de6318495eec37f35b95fe593de4b2f07952cc2f74806525c1076be9fa29981240a498811cbabd0ee8e1989e878b0dcc653f66972b1145c
+DIST firefox-140.0-sr.xpi 449697 BLAKE2B 
156c28a0f087a1c32b2e70836f4a768bf28972c15bf3280cdedb78141894d2053a294f8e6596c6e80c9047e28de5381735ab016b44e51bba706282421eb31405
 SHA512 
e3e1e4dc414624640392427eb59a2fdc53eae3384c0d437893727d8b0171465151a21be64dbf1eedd44e6bb9435a8bc039cf6d4f3da7cfd06678f09e882b3d1f
+DIST firefox-140.0-sv-SE.xpi 435400 BLAKE2B 
94620db09e58da063a064ab53d4718d3ea32bd45e05dfe5b112e4196e30f1a1d4b26b59d5feeed24becf1d22784410e97d8cf7eaab4545480f0491d7e1179dd9
 SHA512 
35bafaa44c2152d773e436eae6f4f2aa3e2ccbaa6d8cb425830cda8f4a7a6d1e1b877417d6d2062a78e8475fa30a9507a3c3d8aec5f266c2b03e4998ffdc436b
+DIST firefox-140.0-szl.xpi 341179 BLAKE2B 
b48252a92577c0e9dd54490ddb15f831e297ab88f27f81f7560bd6dcfd42ce4c97d555df639ea433b535da5dabcd74175153b72ffee29f8660912160e17055c7
 SHA512 
be0558723fe2bd95a949329aa39bf79b5e8c255dc62137014f938f6facf9390bd5ca448234631cc2d6bf197860da26b32b7ca4478dc8d2df0162ef1cfe8807f6
+DIST firefox-140.0-ta.xpi 337516 BLAKE2B 
b4a5f5efa760e9c73fceccbca9a4a7c56ffdf757e542cff83fc3de70fc05762a072530669781c1dd67ee585c235a73479a40cb1daf8986444c2e02f7916f5e22
 SHA512 
82df68b14b040e9b1204ce6b1eb1f1f62abc6e72455d2d5ff2804cf405a3490c38c501d759086ea745884626df3adb6d83394dd1506223dffca03e11de3af848
+DIST firefox-140.0-te.xpi 381680 BLAKE2B 
a5fb26826b79ad19a22891fd3c44e080f23db63408ac855c176193982ef99d8ed26868ceb05253d965250ec4fb15d5c9baa74975f9f0e12ba5fd304d2816b5f0
 SHA512 
0406437afae84f61d083e50fd0f2e2d346dc275319bbfffc27115acef1fa3a6136f7194aca7ba28f587617c3b8f9f261a7af53b81a8bccc52a934df8a73cf664
+DIST firefox-140.0-th.xpi 502959 BLAKE2B 
a6d15051d2a72040fa720bbd7f6706e0e0e6d74fd5d7c6fbef45e252aa3add555c4d2fc625ce7a95b985963f4c7b2c18391203358f90190de0be9fbda31863d9
 SHA512 
997b1e7578ecc239f90a116a71b2c5e96625b4eab511ca156f9c62e7a0d08655f10cf43954a3fdf47920cdfa150d0c927e8507e62b29c6bd4419174bf7a12369
+DIST firefox-140.0-tl.xpi 356148 BLAKE2B 
eb4da107a4e62bcf2886eaa4f944b6f04e99fee3e87e09f2c7eb06cd1e81fce568b6d6f3cf549fe230c181842df4830e2e5f29081882ad6dacae9043d260743a
 SHA512 
735c77e3b28f5d814fb6526ba3cae1f4ba54dff8fccf677d49816a80858a323fab771f15270e4d67bd311f1d9c99b4ceeef13d28e2694b01b794e2ddfb4a6af7
+DIST firefox-140.0-tr.xpi 447910 BLAKE2B 
f600f1a3f6ba9606860df3715696104e9b4afad9d1356dc7af20c5899520457dbf380dc5eaea695b6443c5150f9e29d2495bfaf0626f3b3ef88b5d1dbca7c1b0
 SHA512 
13713f56f397306cca8c1ca5ea655f203626c46065bab734500fb831d0fe92da997c41468d798876b048b6cf1240f6a2b205145cea6d28d316c481eefcf1d397
+DIST firefox-140.0-trs.xpi 322013 BLAKE2B 
7dfc1644c22139f28c17eebb672826bf20f918d6e8880d080b3a1cf26f98f25c4b2d07dda6300231f3541009bdaed8345757c2f6a407a0eae27bd07b19b0f674
 SHA512 
3b12f132553c6267fec67dbccdd8aec3e35a1d99c320d7045dc95d99f2a83bf1c1e96b2d5ad25e5ccd941c8663d3cfa4cfe05ef77b2d052f7eef6b3f6d2a1cf2
+DIST firefox-140.0-uk.xpi 513993 BLAKE2B 
6d9d56f47547c6325578f9cbc27b3a62fcf8de8a5af043eecba2ad00b401c35c54db89533852d6ec7da5b85b30cf5dad3a1613de13a989137c08d18f47ebada3
 SHA512 
0e79b11dc751f71b38e8ccef0c8774861b1c449de46ec210955f4eea5d6a9dbcc73e18fe641665b209b9c70dbdd218ce830d7aded118fff1d88bd914408a43b0
+DIST firefox-140.0-ur.xpi 369644 BLAKE2B 
5d52105b2246f02a67b78ec3af73aa9af7f00f20ed7f04dd82934420fe19c342f1b4245cf0b0f8c06d6c4a5a4f8e4029d1be7f644ae6110b71d6b1efc9b8ae71
 SHA512 
f4b9f72ba445146f00dc217e83522514c2863e14ea7ef2c754ef06cec5dc43a864d9593e1c24a064e562e8679556310e6a916a4b687e7fcb92d3b4c709415190
+DIST firefox-140.0-uz.xpi 302985 BLAKE2B 
df40e9e0c203abbe03333ad2b4138f07c222cf5cd3008060beb9c26fc435e9889074576e89e222a48a42922cd3cb03abd5ee55240628b1e2921f166aa3a3b967
 SHA512 
d4f5198e55902156df0781d60167c065732e8a3e318e73d3dfdb9b5630aa70d2dff507343c2f4cf335569870cf7b6b9f894c8cb65e79ac3b173a8c95f861deeb
+DIST firefox-140.0-vi.xpi 468228 BLAKE2B 
ac4bd406a0361c3c73c80320525c898c379c4d140a62c7124004c3ad0a76953bd623215846dfe5f4f622e03d6ecb1ab8bb89a5b90c3cd2e88b269e3b8406db7f
 SHA512 
90aac938b370b4cb90454e1b959dfc66e02070c493f0f662cad8ebf20c8f5659cd412f0b989efa2b3b5b1684c3d2691e7d006b5a27b66ea3a824fbbe09088d24
+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.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.ebuild 
b/www-client/firefox/firefox-140.0.ebuild
new file mode 100644
index 000000000000..3a8f1f226e39
--- /dev/null
+++ b/www-client/firefox/firefox-140.0.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