summaryrefslogtreecommitdiff
path: root/www-client
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2026-09-15 15:53:45 +0300
committerJoonas Niilola <juippis@gentoo.org>2026-09-15 15:53:45 +0300
commit4d50fa65d2eb5012b680542cb900d41a38927de9 (patch)
treef13abb45e91e031fe185f1c060ca8a8b44182a35 /www-client
parent17e292f100e8bb47735e56ddd74067dba8dbd9df (diff)
www-client/firefox: add 140.16.0
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'www-client')
-rw-r--r--www-client/firefox/Manifest101
-rw-r--r--www-client/firefox/firefox-140.16.0.ebuild1424
2 files changed, 1525 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 1fc0b48c0e57..0610726cdf08 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -100,6 +100,107 @@ DIST firefox-140.15.0esr-xh.xpi 272792 BLAKE2B 621747179540e3c1bc82c1f7936732b5f
DIST firefox-140.15.0esr-zh-CN.xpi 460697 BLAKE2B 569ef8cf77be6ca18c30f10bb116b350c86260f494380820a470d08a77c6e8d184f7aab3138f7875ea57be186ec9d77374616556b04814b0546b259388e9c114 SHA512 feb516a613403f56b9567e4bf21effe7fd4991b52556203076a3bd0265bebac691b7366de27a0fc7a36504d663ea7c90d33cf70171842d4ac2b6c8611120680e
DIST firefox-140.15.0esr-zh-TW.xpi 463736 BLAKE2B afc6b0f77719b455c4be37de82804cf034743d6f426034774b306890a11f390f638a8e78dc38914082169205bab52c1ca715892666ae6f1d8fa1b1017ef221dd SHA512 f8b73d88e4a969c57c6462ce59979a84656d64146bf7ec17b295b4a9a76299a2a2198baad3707d3017100bd226796e6317bfc593e47c32d87919db56e65111d2
DIST firefox-140.15.0esr.source.tar.xz 640054332 BLAKE2B 2267af31f533a17ff8e77b79d635c408a00df9e936f110f19ad1712113689fdf2c3765807f803a4761ebb455e96c2163c74b2ada799fb46cab29cf70e231486b SHA512 c3a9c92776fc0fe4ec84e83d608822a84ab424bef3e9200de8e17f161369d13bb4a5caf5de326dded23edaf1c6b424d831218029786d4cfd1d857ee2634efeff
+DIST firefox-140.16.0esr-ach.xpi 294366 BLAKE2B cd0d50418ef804713fbee574c0d50f3f71ae1690386baf701788a15f26a88513a814837c989359b4d4e66f8eae761f0597d83aad6426ddefabcdee9ad84c57b6 SHA512 ff7dedd3cceaf6d5d0606bb5c1bb3232ede95b90a614a68348f60690478c0dd907a8275db9ddd4a44a29941ed5b97b46026b4f7740e7e6a3379a993a0407a0ae
+DIST firefox-140.16.0esr-af.xpi 266634 BLAKE2B a5847781895d56e7b293b6f36099b0d56c2ad04cc65de4f48d1326a824e65000365aaa8116c713b435af4a99073cecca4ecab23116a34ecfe7c308a281a40e7c SHA512 6126130b732ff96ec0aa489a1f880b90cabdec60ed8ada9bf7c6bc9c9058e1d467cc6e8e18d99dea20b1cb803a89291f3208b6a614e589a6a0f4dfdef3d72568
+DIST firefox-140.16.0esr-an.xpi 332292 BLAKE2B 6c3321e5e51d1133ed4d5659e52e2918e721885264327266e008cced966d5e216be92137f4b0a8be5613c1727c21dd97b1a57e59e18c946be074403d57db5bb4 SHA512 f716d2fd86665c96deebd96f9ba2c9938e9efed3e0d950054aca1ad23d542597307f9a6bc583824cc53926cf3a0c536fb967b9e7e673fcf1e4999ed1fb07c3ea
+DIST firefox-140.16.0esr-ar.xpi 445289 BLAKE2B fe02793ed80f69eb84e0216c5e5dcaca61d1417c5c239e74b8d7564b0a1fd1c1b95609dbdc60304b9990ab616395264ab1c669e4bc9717b7e8c2b8dac00be363 SHA512 1ab91dd696caac91ea60572463f9124344b34519c30523692029d4b1f69ce10cf1663b518e1c57735b5fccff8f70226c801b2399d813b4c3f390261cb0ea5e34
+DIST firefox-140.16.0esr-ast.xpi 312225 BLAKE2B 2181b84688a5225f68aee93a5be15fe95f1f143be3c3ef74529efe67c7df8f2707f58121bcafb27b8bf614098ff9cca45e01f8147595fa2155e54b2a528c69d3 SHA512 c82a08c8ab3628be5fb83f3b258d8d486db2ba8c05ee265b5a2fcae7679cb00a780f724fe89158fb2493b95bf2ba5cecd9fc9b96dfc5bd9d94982980b1778d97
+DIST firefox-140.16.0esr-az.xpi 318405 BLAKE2B acd23731f5b81dadacee737a6ffa40e2ac76065972d0e1fb188a479505c485e3f1dae0a71f4c6096561c9c07ce2f8a69f35d6c0c2c4807ab0dd4cc0278e27847 SHA512 57a309c78d1874f587df53fe7336a13042d91a76e47b7354ff46fc71b0e2c5e3001572b016312354849f4eaac194c106f1fb2e5560de356a489765774db57ba1
+DIST firefox-140.16.0esr-be.xpi 521203 BLAKE2B b377ee364231f61bf1a2c7855861dd0e1ea7ec2e69f7fccd9853e32fef86c2338c7afd42b7f1668acdec86f34936f7011e06aa88bdfceb8e61dc05b92c70473f SHA512 23823ac5523b5e30aafa9abe9a3bcc9c4b6ea16fa2ee99d923a590ab936d88d9fb23c0212ecc61445942806ca34558e9f28ff7b3387cb74105676ce1aa156234
+DIST firefox-140.16.0esr-bg.xpi 457552 BLAKE2B a22ce46e8fc45916244a5b50d8bf36eaca741428b1241dc7410afb1c4262741826d7871ad8ed749e53d0357c4ed46f1e8a3ada13fc8a8081632d69b0ee95f82b SHA512 0604fed32ba3e16ed7f52945317525d28601211ab8e349047647937d361ff1186148f8b88efd2c8b32b0b7e5d8bbc55ab7f2d1f47b0c8b23aca8ffd3fb8093d4
+DIST firefox-140.16.0esr-bn.xpi 413378 BLAKE2B 18e587cab172017d27bf7220090cd6020121f8ed178851257e2557bafd092c59e4a8f3e6bd531e3650c4f637fbfc58ad99f32fb57b5106477789e3810853a3ca SHA512 5b066936cb9998c1304e3dfbded22b3538f2c47036e8ea4ef62812d0e5643b04935eb7f247d7025796a3721d3479dc1249343875d1978547bc5c630a18707407
+DIST firefox-140.16.0esr-br.xpi 395316 BLAKE2B 066a488d50b8e24407f4ca66c40c23e52eac7721b3b878d79cd4037486247013c16ffa24ef3db2188b21cc070beb9ece9f8c0327d1f8f9de0bf47ef5a15f33ab SHA512 f64cd87418574416cbe7161e5eb887892c8142f70833b9869e1bc15a3504279b3297f4c3c34b6d9182e62c254f5b6a90783e776fd8022cb61cc3455d1ccd08f1
+DIST firefox-140.16.0esr-bs.xpi 447163 BLAKE2B 261fc9508c37e599f6c6802d925478ec3697b1cc21b01f66921062b78acda5735578f6b88c23bcb6cd12b41e4a688f190c63d4e4d134628a3876fe8ae4d2a495 SHA512 9495eb0deddc8674715bfcd408e413e58bb8b8dce3f83ad52f672f08e40afad7977d4f786735e2fb446006546cc81e647d928654e782532c2c4df8995bc2c227
+DIST firefox-140.16.0esr-ca-valencia.xpi 357938 BLAKE2B b527f34c95735ba60e0c5795460969e960c87cceecbdc2f2351ed9aaac69786bea53928bc5f7dc195ae77fc5cffe76d02bbcfdcbe50086d3ecdceaf31e328414 SHA512 daa7af22b68165ae5e0a0de43cb7199f417eeb5ce1878ea3eab940179095ab3c31d8c346d4a1d8f9dc94f4c47e048181aaebeed10b87364305dbf238aa49e3a5
+DIST firefox-140.16.0esr-ca.xpi 404832 BLAKE2B 8ce7a3d70b095708af1e78eb2b7064e312757d0b04de51781e5fd4288284990dae80d8a6421764b12fba5fb75d01b963a7e506a9fbad0b9812bc92046395a877 SHA512 39f1a4857106dfaedf692d20791ca06681d178eb4890595e4491f3a3bf1dbbed0e665b54c57b56295f5bd5d7adc8cd4fe78902f787e8a5c76201a787cad012c7
+DIST firefox-140.16.0esr-cak.xpi 390849 BLAKE2B bc67d24e59f310eea748bdd6d099e4afc69536804d1af8fcc8b435ff6ec11e00179752e86adad858b5ac83ebb2f20a6be1d4fb034173a145690bd7115809762e SHA512 36bd989febf343118a6ebdd9c552a6a6188fdf960c3b546436633556b0fb206d0dcc87c769eab8f28a13cf9ea25e33f735ed683bc0848f7de0078e0bf5a9136f
+DIST firefox-140.16.0esr-cs.xpi 475932 BLAKE2B 3156708c36975f7e440ae3a42936f352755ad9a32559d4cb50074cdfcb825d580f3b2603a67cb61485200c11d37269cf232779f77402547c0c0b0789b9c773fb SHA512 526e0c8db1e83637b2c03949823bd7501b03a939f6bc47a2f4858174f3dae730302a3e7850c5c56a166fcaaaac4eaa2e1e3cd5875a5b4c17b200132dd26c3994
+DIST firefox-140.16.0esr-cy.xpi 441968 BLAKE2B 720e44a3f973857268d0c72ee805b65238f5dbf226957d0e1588d585ad357577bc87744026f4d3121dbbbd1698980441ebd558c1b3c1e23dd7dd656e1383e04c SHA512 d0200658778189e80380aadea49a57cd1b259cdcd9c3ebb8b459164365b588bee6bdda2413700f379534e5fcd7b44402bf8e1b66357640d91b70a3ea5c336b2c
+DIST firefox-140.16.0esr-da.xpi 431121 BLAKE2B 5f1bbc72d977f526ba8afa15650ef8b0c7e74a40f325dd555320a6a27e84e011442f47df1900afcadfa1a58c5d3d5556c74793f40793b8054899d0b6c18404b7 SHA512 138d268432946bce9f34e1a01d131a9c4c6963233039b3ee21be9d76991f3b284ee6af8cdfd9ce8db5ff5cc5a44ff8ae0348965b4a8979c5a52c79481ccc7cfe
+DIST firefox-140.16.0esr-de.xpi 452703 BLAKE2B 2a47e5b360669bc8664aad10854e24f80f96b2a17ebf7f4338c9e4cb2ce59ac7f6c721bc4d36aa4cbdcc2f5edee00879b06a80fc3c4214d203f79afa8d106b8d SHA512 60c426d113eb29b9cc19132a97532bd1cf83d78d36c6282c07e7ce0fbb6ccbc21d682e97ef6bde73155e568868ccad33a9d3af652641b26ec7e3452d1c0b760f
+DIST firefox-140.16.0esr-dsb.xpi 466058 BLAKE2B 31f338f16c253481584d376cd1ec4f71c9736422f157d2f9181e4ef014ee08e1a430e9721b3a1c865abe4228601c836f5283a3e786f6810bf74fdd5b871fb8f2 SHA512 d08ca681d93c5379a0d2e30bd719b2cfd546f5e478fffbb45cf0866a6ac944bf28390bde8b81e162e77290d0db240e679f8b1aac6d683be540a8f4440b0efe00
+DIST firefox-140.16.0esr-el.xpi 536815 BLAKE2B 805a1b92df03dff23423033196e2970561074d95dd4585e9e5580329b3588d1ca87544d6f9b3c09ff5d0102ca8ac8cbd7296a38ba78b5276375207dc9f60c24f SHA512 ec19ee73593242633455b6ab49f7dae6a651bf6e051bf61b9ce485c20b253844c538dd4a64729a6394b31235c011f9d11b94c6b2be72af8973277ec88cf9c12d
+DIST firefox-140.16.0esr-en-CA.xpi 411057 BLAKE2B 5de8e0576d222c8e1c674d3eb94d9d1c72dffc43f1d473623472e333d52916ccb80a1d6b0b0bc29097bbe29c31e6668c7dfd65e7ff50d6fb0b5e24315d871c9e SHA512 ee469d4fe732dc5d596b48fcdcd297a4afb23fc0a7ff4e4f80ef64ec41f4e0cb01220c646bf8ab969ea36780b7eb5c0fd626b084cb8a448b1c3b5865ff0c8cdb
+DIST firefox-140.16.0esr-en-GB.xpi 411403 BLAKE2B 5505345b4622f84de6ca5ae0a9bbca7976443a38790bc9da5ec02b890748d7eccc1b635ae111fdd50e6ba79ac94ea28abccbdf46d91ac92f8477ec05715649c6 SHA512 1d9425628fce30843b71ebd0331be3f79a1b42d04c2f61998d646166366a3dfc331b23421ca0c9487fea0efc6a265989d82b9917ce5c807a154da558afe72a96
+DIST firefox-140.16.0esr-eo.xpi 433476 BLAKE2B 79e097fb2f871a09ca1636de8e7d16b7aa3a6f5448ea9ac53ee48a5e7d3b956fd2bb2a60aae0299af3f022cf861bd988a7649ee54ab3354abdeed405fbdf4a8a SHA512 756bc81bb1847462a8b7ccac9a68c1e1d6f99003154ac8b73fe30daf351a62e2dc7b2b54a28dfc6d599e2c798801cf5df856c136e8e7cdef33a23ae26ad29db8
+DIST firefox-140.16.0esr-es-AR.xpi 445517 BLAKE2B de1be3df659dc62d86e30e226a2ab8114f8b28aebb2c72c994c911cde8da90a3720ebefc8a7b8f840657ea3aac40f8f804677efb73bba995c2cc4bd262588055 SHA512 9e9c0b65c8211748726722e54817d0177fd66e517bb357e9193c17f96f78bfc5587e890668da0d03820c76db0e7a2aa3a30e9cb14d9f96cfbae262ce86b4c8ca
+DIST firefox-140.16.0esr-es-CL.xpi 446298 BLAKE2B 9f54ec702a59b079864c8f1fb6507cd6c4a62ed6dc979762fbc18563edcf125bf79d717a435f336b80644d78afd90041079739d96ec3c95f7d6a8b8cf392ed7d SHA512 5387bd8943f3ae5d09560dbd5f87e17a0a90377a5b9ad9bfee9d4c37b18d8c81bcf2c005691976f8d3fd38a70d19e9a7809ce61d289751cbead355bf80766a64
+DIST firefox-140.16.0esr-es-ES.xpi 447016 BLAKE2B 40f4d76eeeb5f53eb186887bbdd7930930eaec0a94ab2e4839f879e5a275ddb07d29e28ffc1a6c09419cb613efb7ef386136985206e721624acc8a5858fc9f85 SHA512 f4ddfedd5b045b8b67d37c5a719778ed5b93dd9fdbe15b52c4f64fddadd5a31d4b073b396d75a29cb2de3b321219518294a712478d7b7b6e98d651353e970e43
+DIST firefox-140.16.0esr-es-MX.xpi 446248 BLAKE2B a7549847e66c1b420414ee31a99af6d25dfbe1039102394939ebb5e5d81c93128dcf429ed32a29408522d47e8df9a8512fd1b068eb1d6f98960f87d54a3b23b1 SHA512 8fb9e8e04b6e4b1ccf9701fafda5dd6d413ab21cbccecb74ca16d44879e2e6198c5a5bbe4b325bff52d4ad72d5172f46381dd162aff72be61d89ff5c74a76347
+DIST firefox-140.16.0esr-et.xpi 359322 BLAKE2B a884fddc7236e8638273cf236276b66c8573e134ecda0a3ef228ba4f391d6dd54bc0f5046813e8a41641f6d8be09af5a7e1ce27fa11aae2c60b2eeae06267c7f SHA512 142d94d23099ce7b35681324f57af6f8550aba53c760b57f6dd9ff152c130794c20f63b5800cb543fb74b102f29a9df43019731a9dfe117e7b6c07a8c07738f6
+DIST firefox-140.16.0esr-eu.xpi 417304 BLAKE2B f64eb0d8066e6b0ca2fcbf03de56385f4b5eecfefa700e9a5508654f5c737c45004a55529f1ebd0abd827e82c3f194cf891e7f886ef54a42470eb67c69432794 SHA512 be11602a41b5e8e25f59ef64b1d53cc6947c3bea759138590589234526116b9780f68d0f692a7b728f6a33dda4ef0d1c9131bf4011ee07801355ec66a5825fb1
+DIST firefox-140.16.0esr-fa.xpi 421640 BLAKE2B c0423b8e4781a5747a932a889a7eb4a2a38afd4431588f433a38bf92fbbfbfa2b89e82d53099331ee7754a3fc64b3dcdb2f7c00cd935c51f2d4ad1f0efffee17 SHA512 adaf3cbd08dd9ea858e61a9f56046468da29b458e017437e69e6479f0e4215abb1ab646fd0786b99c7a52c9e44208fc89afef4789208a4641676d02a4d260bea
+DIST firefox-140.16.0esr-ff.xpi 310192 BLAKE2B 18df8b0da355e80fb1a446f6437df654a334b521e79f2f10f41df00c8fb7b895f970b4fbc006f0a72a76d9f07581cca9c164f726520f5caadcfbda2f08022585 SHA512 de63d622e8488e8d1dfc82e44b46af8060fa5aabea8d4086c851022a97babcb298b9d05efd2bf59c9235e0a85f105c202c083d7e3deb9e46dd19db3bb8094a61
+DIST firefox-140.16.0esr-fi.xpi 430171 BLAKE2B 7d0fc81e628a99400c1fddfb213a35822b5d68502512730a5dde301e537231ef14ea2a3d54bad6cc75d6d0b8ffa85cff6661cd842dcc61346a65dafb1f56efac SHA512 2cc39f4e5c2cc913672502f3b7619171c2413f46cbfc589d62506fdf45d4f93bcfdc63a3a01d3d9cfdcb53ef297ab8a0e5329e76cb29293c12aa5c05fa8d9a5a
+DIST firefox-140.16.0esr-fr.xpi 458446 BLAKE2B 84bd01672a24092a12ca70cc31810863d1c70a1874ebce0cdd34abda9043ebe807cad0c402aaa275ec8b7c65ea5e9ee18dde4acbd126e447527b0b2470da3c27 SHA512 043946917f7b5872e7886737781da12298f5e1359ff9537b345f4b3c1985ef5be90f2b0084525638b59782fb24aa70e52cde0a0b36dfe9001f4eaee98d4c0484
+DIST firefox-140.16.0esr-fur.xpi 451834 BLAKE2B 530f2f64f85fbed3f2684b9f420bd144117ad9f47247d20830ce8b74f081c88f68811618e737778795ad6a996f38de6f36fb6694208eee376ebd57f5177a2759 SHA512 e88ad9d932919490d810b922d6b4dd9957349232266b5654230c50c30e055d352ada4bd2c2472f4d67b019cfeea3ef85c174dd7e4a2b519ad9aed0bc62fbcbcc
+DIST firefox-140.16.0esr-fy-NL.xpi 442161 BLAKE2B 399c94eaff524c75c7e61cf493104622b32709b14eeceda5770fbe9c31025c0a56a180863ff96115ad3ed3ab5f263c4be933dd2e341dce4c6ee7d9a68cf9e272 SHA512 3b5f0a7baaffc1ed8c5c751e4ba1eb6459a134bb96c729f24b7cb9b544bcfdd0d3621d9b66eafd2514b5b8eba9f794342a7f63058888b20c8698cfaa911be8fb
+DIST firefox-140.16.0esr-ga-IE.xpi 315284 BLAKE2B bcb22551354d36e135d03a6bc86be8b803a2b625113d50e2b4cff58233a6b9149e1dac497f01db11a0e73ce37845647789efdcb085ec8d8eaf66b0b313216767 SHA512 ca57a821670dc9bfc114dbee8ce0dac17907ae93a01c1d549cc8ef4a06568624610235d6fe03f53bb787b93cf3d41a7df57ca571994a389ad4859f702f39f2f6
+DIST firefox-140.16.0esr-gd.xpi 399430 BLAKE2B 73eba3677e2221f99285405f7f4d4cc04284ebda792167a320d7e00d2e9d950158a63be4acef26d1236d9de95367921fb82af5ec6660f3578448cdf56c7c9c0e SHA512 8a32843baffacedf646c8da29e68e4f87e7f53be503ed864976040fbfc206e445424bb8631b4baf43541f53c1e0141a675f2b5358f8273ded21d17b8a3078853
+DIST firefox-140.16.0esr-gl.xpi 442900 BLAKE2B 9539b6118386294e4a95c649d43271103326dc7b95c6e89ac9233737dcfc75a1d6528e4ec3c0b3b7a71d126c10d64e489fa8deac1f2b6e2fb9a8f7dc95479d32 SHA512 6a2a1363fef3ff7efa3bf18ce3fab5468bea97d4ca32b950a42406f3e375cfbcac82deab69213482e4613cd4834ad1cc5587aae2b76170bcf4fbacdcc4b02c65
+DIST firefox-140.16.0esr-gn.xpi 451083 BLAKE2B 6d7b48ae8681d6dc0f1c3ce1bd511e99c0f01ec4a9945adf6b765f122ac8b8c068f9aa84796cc748df9d4b421908f98bee265112391a37f5752c09fa3e8f4d76 SHA512 799673a959f5c241c1d3547258406037a1e780afcff4f2e206f2e86676600a159128ae90d8013ee83336e0807eef024c3a7fcb666f97da2dd8284c2c574cfa5e
+DIST firefox-140.16.0esr-gu-IN.xpi 358975 BLAKE2B e73d3a8a1a8650a88793e0f9588a857549ae7ebaf75ee0db63d12c249764b5c95b3dd8d0a0f244dec60feb40c9eff2bd8a726133499596e89f70adb38c160133 SHA512 c9e0308e772a405937df9b93f23f35a68c203e0a97428adaeeaba7f046253b58dff4aad9a57a30a0e4902ab2b18421f4034c9e1127c64af4605bad13a1f73e4d
+DIST firefox-140.16.0esr-he.xpi 444989 BLAKE2B f1ca018cfb23f9e687d3c26fa15421e89adcc233075bf2ed0447f56d4f9e18449afba7ea4dac3d83972f6a3be96b4fbda7608237f0c43bb00a6ba5c473e14caa SHA512 b2c81bc364e6b6ded2598f993d23975235fa99c551b52cc828dd9f0dcf453b98ae2c11dd2176a1e6ac819df85ec19b4a6c5bbcbe4a618ab024913bc7106b16c4
+DIST firefox-140.16.0esr-hi-IN.xpi 377453 BLAKE2B 445a28cbe2dc776188b57fa9995443e1347b23c9a8bbd9f833a2416c89414fe6a2e954e3b8d08109f06b0f9b067ed8e759666cc79dea6682563f9d126d287b79 SHA512 962523cb0ec7fd4386509c3521b4cd719553a3f2b3354ead9ea4a7346e5a6932e7fbde36b560f54e74b7da0d2defa238f24d8ee534f7817be95e2d43e9b6bb9b
+DIST firefox-140.16.0esr-hr.xpi 437688 BLAKE2B 1af220c78e1551c90c14215dfb14c9bbd2d8b670d18939c80f0c2b01986c9f47da0c27bd274a8eae41442d39d96c413aea0db884799aac0ef8c34edf40a55882 SHA512 da74150e8a6370a73b5b0e1262b32aa877a71c6466e2724d506393cc613a7453bdb9ddb66a622d80f7dc13fec86e5bbd4abd52acdf42589964e48952583bc8a5
+DIST firefox-140.16.0esr-hsb.xpi 462688 BLAKE2B a6b1578c150d114456e74f220ed006f864ffe8307f4bd577fcd6c6884364d0e14687cc953578f010f1e000776da765d1d8ca1239711dbd117528a40422a0622c SHA512 c1d76c2c7077395d6f6eace34ed238cb427b855ff65d9c7f6918849b051690bdbd7360d6aa9bed227cce9f6f98efb91625dc8e1254e7881b1ea576647309dcd8
+DIST firefox-140.16.0esr-hu.xpi 466167 BLAKE2B 852425a258d93b0647b9103066c9dda625b66a6c7d79660c7f3f64bb1cee03f05a17466f0da0ada603e7a49dc632a00bb954c894c4a81b9e8482a36466e0f7f4 SHA512 70fb64b0233733f2d31dec5e9d20df00be33d9b8fe1854a3e128da1e0787329c0c7b048b559804cdb951d747ca7bc101a95084834f4d998dc4e005db5f43bc76
+DIST firefox-140.16.0esr-hy-AM.xpi 461616 BLAKE2B 724e646655d2e9bee2dc418177ae8dc31231b65f2d26bee68b3f3ffe1864d3e873f830044350212ae146054117d4f13b55b00c6b0bb0fa13853e1289b5779af7 SHA512 7197c0398182b82a3ca17ed5a6ab7cd3dd0dd5ddc27aaa8d19fd5a9624aa3283bf99bc28dd0bc11fc0b218c50dd71d4d0515a0c1241ebbdf69a55bbd4d8a637a
+DIST firefox-140.16.0esr-ia.xpi 430115 BLAKE2B be0a6af47b4720ec0e8c8c7df04871b69c70e5bda830566c26177246d426084ca5f44a55b3554f2999d638d86cfe050f4548fd2a50ba24bed00eba8b8a4e8447 SHA512 0b74485d32e92b0c58dedfddcd74a74613947af548c7cadb4936183ef1548fbf0142d0cb6523bfcc45d20f5a8b709cdf28e1cc544914312dfdd55d2a5756dd11
+DIST firefox-140.16.0esr-id.xpi 422746 BLAKE2B 6be32b6667811defbc360e6678578ae1e50c8d82d616eb9fbc330176240a8a7bf86b7ceb5322eaea078d3374f50cb56472df1fd7410c097ab7f8422b18e719e4 SHA512 a161505ee6a1e7ffc07c467e0313996a6aa45d831ca12ca45abddd8de8aff26b6688e7fbddf4b5c173af7ac991e0a393bbaadc6a75443aca81ca9cc54daca484
+DIST firefox-140.16.0esr-is.xpi 432696 BLAKE2B 67c0f8f98ce24d3f30b9e7fde167d3c17b1dc94eb4523c4cc5a016c1015b8a85d9bb215c9ddb7913fbd2b2c3ff99718f34c0e217c92e1ad5cdffe31bb69e545e SHA512 ce08c44e8e336546833ecd9ab4a40c004e52182d319fc3bd26cabb2149d28276cb1f03d7c5d9fb5983dd46cc77acfe55aa8404374d24ea8789290b0df6dae5c1
+DIST firefox-140.16.0esr-it.xpi 440900 BLAKE2B cb3239af3db0779f17d2f7949783fd3acff9d0129803c2745a4907d42b9f766fd20d6d052ea6db15fb336528fc3f29e27fc3a1cd7d61e5e297cd6e987b8c692a SHA512 54fde95c0f46c486590ba272d2c1aecd1b2a34d61299828f11d82b2b031ecf01dcdfb0cda1a679b6d01d51c309a5f713027188afd39a0597baca0b6cfeace3a9
+DIST firefox-140.16.0esr-ja.xpi 481308 BLAKE2B 0ef37ef14ab4981e02f4729a8c97ba76a81fc9ac591b364828c611aefd73ac89ef29b248f53cad224ffbeace039f4c9a2fd38673e48ab8bc514df1ac7ef5543d SHA512 f4fb34fc940829b6708f58a88d008ec44f7b5de7712500455c20f28a169434815b70f4802f8be6ef60b58d79e44344c344887343f41a63faa5f41b375318e459
+DIST firefox-140.16.0esr-ka.xpi 494867 BLAKE2B e648ac5f777d9da205bcd89d7d8a5035660f487cca7b0c020da1e5056242ac27f9ce7efe95c28537e68456511c9d99e393581858de8df68e1456ee34ca7cbc94 SHA512 f548c5d9615515acad70da11c720b591198409ef3d3d8153cd4105123421f15a7c84e5f439b49f7ecc7e17a9ab1f2647518c3b4d893623349324a44dbd056bce
+DIST firefox-140.16.0esr-kab.xpi 422847 BLAKE2B f234b73ce800bb4bef30641e015a1255f0d7b66a64097a58080f1fb2d47400bbe527b972f79bd2a7c91f74b820cb6b45c6df9ae90ba9c48ae84a98270b8cbb62 SHA512 87dd1f843e9c9ebd9cabdb8c5525578775758d34451bae32a03f9c3c6cecfa3a2d0e2d5322f8dfff4d9c311664975186a6818b8079a6a8fda4ca70237744c45a
+DIST firefox-140.16.0esr-kk.xpi 506693 BLAKE2B 285c0a07219861af11419b5d93154f8e4da5aff1ea96a0c2ab0b432672b0a9d1d4378f5cd0dcea0e0eb7f63809e1f346ca9d45b2ea9f59d3608aa9a8f876efa7 SHA512 8ef74dbc79d07bf4518c6f0e88931830bd1778bd75ba235cbcc759b8e9646234b9ba304723bd31421c110baed6d685f024a9588dfb9fa75011c351ba2f92318c
+DIST firefox-140.16.0esr-km.xpi 348776 BLAKE2B 7eb24a61592ab3165a37482e30243d485be10ebb65b2d74b1ead63719a838e2f8114135d91746334f81cd56e06657d317b172550b86c10a334ece0595b6953a4 SHA512 74458b9f24afefc0c0282167306420379d03feb90434ce3070f9a8e6cedc33e377290e5d73d20bf81cb0edbbebbf9344e6cabed62b2c9e1d528a1cdd374a5a3f
+DIST firefox-140.16.0esr-kn.xpi 331778 BLAKE2B 649cbf387148256021701803eca9462eb3c4f806f16f425e5d630e3b2bfb5e553213a9739a2ef370816d2dfe768167dbdc7991e62fbb43fd2a9e9dec62553296 SHA512 b9ed116da6cdf66850b3908b0de7f37cf0a1aeade2eb7542e33edd1a7c69b9eabd7ec3fffb6828b1ffbe9da1608fdf68ab95c2337975cf6c0038c2ff382b6c62
+DIST firefox-140.16.0esr-ko.xpi 467534 BLAKE2B 845f450a250136adca35a16a57c99b289d406f19f5965fcd585f3f86ecb2ff0716b761aa6f7b517f4756b6913a1a796b05c106f48e4b5cc9bec443cd1b32bed6 SHA512 50cd8b99e89dc1df0204914ba9acf668b774cd0e32727033f1a215085dc6a4e0398e78c482fc5a25c10d00942529d045ada6f52dc643f01027bc49877a604b26
+DIST firefox-140.16.0esr-lij.xpi 319283 BLAKE2B 31440ffdee7e56944cccea5f30b4a076d84404a54008c33b31f0b1a34794fed22c0ccac4a72f03a5850a0d474aeabab54fb5a92146a079471e297b4069f222ba SHA512 682b6e842f79a4f6928a349d87f43ccc8f8bb75adbd1e343de8028f3cff7d3fd99711e4378b548253c66364f52b95f2a50fadf33522f8988025067b022f25731
+DIST firefox-140.16.0esr-lt.xpi 379958 BLAKE2B 2db7b1718a78ce808d9f2e405f56b3b6d4e05f474911c380658963e7b93fa37221523ae86d3451036498c7febbe08fa7faa5dfd17a87253e7de11afe8350d20c SHA512 733786fb34b8699e6a488a8607a307e6c661d0b102b7407eb7fb0cba2b3604157e725d7f22062bdcf21ad7b3002fa77e9ec720df62e05e80304cdaf07ec2e763
+DIST firefox-140.16.0esr-lv.xpi 389080 BLAKE2B fa4dd22563cb03a3adbc76abe760922985bd5b38713d12856a6531cd8c1d49693d28e2e9268ef578a5879d22ebe3f3f5da0aeb0d7bbc44c147e14d8f7dd98d0c SHA512 f8cde209f2d60e32d1bef569d40bb4a1c55e80b0616ec0fb62f94baba08056e64cfb020e85db3050fe5d71eb6192b8bae8a17b8b031e409d491ae7f4e1730d30
+DIST firefox-140.16.0esr-mk.xpi 316840 BLAKE2B 33d8a6ea92e2900196e7c5fef6de72f840e4dd3ffdaef31d6995c8c26c06140b4eaec4a89d41d7453c3314fc14803806ebe1e1e75d30eb839cf1a31c74b4e9bb SHA512 76e67ffc31ab167b832da1424d4966baf602f6eb72561576fddca815aaa7227269be683d4e98189f047386e802789b9ee5b43ff74b39d47e769400cc158cc9c6
+DIST firefox-140.16.0esr-mr.xpi 356255 BLAKE2B cf97ef3151d1a36b946775a5a4f58294f935c89c419d5c9775f9f9d938bd2e4c5fdfac5e509bbd1a366e538d94d8d80ab7124df1a31ed273b81d35aa7d35532f SHA512 dc7ad6cc6d86c0ab6ad5ffa785fe8555702669ac89f26a6925f3d1483c934e83c29ee8c61fc82468cc5a4da5dd815f71f37bd63dde7a4d0cf636c8fc3fcf2afb
+DIST firefox-140.16.0esr-ms.xpi 295393 BLAKE2B cd560292b3ef742c42459cdfd6d64b433c67b3b3deee02f67793a8dc6dbf5190cf724fdfaeaac0c95fccf2607ed91ed86bcb8bbb06f5af19d86b939a7724d0c5 SHA512 6a86e79160ad6352496ad551cbb9c97f39c7beda1ab6f0067b137916e3f8469c0709c7267ea2d27383a7172adac5447bf9b6e6828c3b64a1992ec5bd11661a7d
+DIST firefox-140.16.0esr-my.xpi 343032 BLAKE2B dd7284387a518b574a173ab32d3a8ecf183f4ed79f0403435d6f7703359706b97ed4e1000f5ea5af2f36080141a8e6b8e467d98b81b0337c5327bc0d976e7f48 SHA512 78dc9ed352f8080213e93272930d88d5bc1d22325129ac7677348cb5998d8c41a86d5de5a52cb4c8af7ab48eca2c7c64f0551ab4e7ff4ef140a00aa0451efaa4
+DIST firefox-140.16.0esr-nb-NO.xpi 429335 BLAKE2B 3ef530874dc97711b1ddb856f7fa8682f049ab65eed0db6e423d7528407837de41180c3a2e6d2a03c08c9cf1f97fc52797851cc9fc8b7e53fe9819c800fcc4f4 SHA512 cdd189587637f90995ab48367f10f742785c12c156ca19704df56e8347906bce97987f75315a47b49e2d3c9cf5dda56fd70fa2e0d9ce96eee6e1495c7378a861
+DIST firefox-140.16.0esr-ne-NP.xpi 349026 BLAKE2B c87ccf30f3e3076a9ea437ac5ed361eb433d7b6a7a1d6936cef3c1a563882b69c6ad0dbe563514929ecbbdb992c5ce6aa1264eb844f0494b3b75a754612d082d SHA512 b30a1086c433c0a0cf3e30aae6ed7d811a1170cbc17a217b737e1922076a136ed73d5de31d95a03970d204a426eda7a2726acbb7987aaa746f3f941293ead8ca
+DIST firefox-140.16.0esr-nl.xpi 436190 BLAKE2B d54732386581b10e3998aab2f7fda30fd3eae3c8f068d712f9e9fe5fb1776f391eef033b59dc54b6887bb4ed41bd35d97d077f96adc2326b0eb4d46bb4fbdbc1 SHA512 448fdee32317301b39621c420a098b4c1728d7ad1e82cb1128d420079558c8f2cebf7188de38c1d0c0fb572b4088b95d1a8280edaadc1f2117e6710ae03680fa
+DIST firefox-140.16.0esr-nn-NO.xpi 432221 BLAKE2B 927ad93221ee7d03819488b093943db73d6f9f959706f3f6125e561e2523abb27a6ab2468d6ddcacd6c0cec955babcfb16544c1071abca66fb88b4560fa20f47 SHA512 b3ea94628d1ece6d1901ddc9bae8bed8e4c042f237e8209e4fdeee98063450fef405436ddc6e97a7a6dd62211d41b6b3b2d04338f9d3b4071bdc179569af9bf2
+DIST firefox-140.16.0esr-oc.xpi 410931 BLAKE2B 28dbf3e851aace771fe82747c6f6fc5b4d2d2a7221df58890f00008a0ae1bb93861ebe92bc42efcd4e350f1f119e79fe4a5f03cde5777f303e7490b4c7fd27fd SHA512 b460a040cb8212c3f5a95d92f2b288e5559f67ff0c70ad0264ddfaef3fec482b3649aeeab662acd66346411937efa9c2cb7053d961bffaa8b7d58e79199ee154
+DIST firefox-140.16.0esr-pa-IN.xpi 494405 BLAKE2B 54ec6eef50ab8ecc7c656973bb122c7fa72fcdbac99f940bc5aaa222540f2f2f9d923047d0ebc99a99690a8890973cc3975f05358e6ff93dbd4eb557690b6983 SHA512 4342c88ade4e1f6c2ab2dcdbb81e73c8331c7011b7805cb9678a68a4814aedef9424adc9a86fb9df240918e00bbbeee3dae1ed8ff82a0e08a4633b2bf61ecfe3
+DIST firefox-140.16.0esr-pl.xpi 460923 BLAKE2B 59ef61185919aa76e0154e42d458ef38c355a91e89a635b91cdc6f7c29f9cb6e8d199b3afb1e88e0de7ae6048714867007fbeef7a052c6d66a530c254700550f SHA512 fc9f70e9b77944548d7c963bc664f842d2ccd60fb73f07da0e7b305ebecff2336a518b3f2963c6e87afa9faf809b0a610d6ce89cd136994e2c363afa5f5bf64a
+DIST firefox-140.16.0esr-pt-BR.xpi 440759 BLAKE2B 651770b17258da8eb8dd307f9d1051986e2e7a03952a23119fded8657027015f105cbe9170ea8f70c77a4d638a13b23267c553151818bd27cbedf010f05f67d6 SHA512 a2ef2df50f8a1575af43c04dee04edf25a583d4008e81954cfde633f6ed5c074e5be5e000d2ca3648b0da1650fd8da94444437c6714f98cc8da7b560e7c7cdd2
+DIST firefox-140.16.0esr-pt-PT.xpi 446409 BLAKE2B 943f648d23e77aa87fc23dc4c21abb6d72427c67070f0341412fedc409d43dbcb166afe3c92262234f1b39e46893c40758a788bb25bf754e476c84d6912f8841 SHA512 467c4808672719ad0ec94c8c2565db6abaa39890bbf874200e03a82a8c454b2b03a0b6838c757134ec10afaf8a245d6f15708af182c3643a70405eadf0a341c0
+DIST firefox-140.16.0esr-rm.xpi 438013 BLAKE2B e7e4e7cfee3781175403a4a2bea19eb2325e3bb7c4dc2331848715811deebd688daa94ff04db330c4df3efe6fbf06c112935a3c8d360bb65b1a4c894c5066690 SHA512 93c5f50e009737e7945474b1b5a20ee72cc0190acf05f26fd36fd954e2fe7d0af2b7ef4c302e5c31e4eb145fd02209ae6bee4d4274de37a37b71c831006bae27
+DIST firefox-140.16.0esr-ro.xpi 452830 BLAKE2B ab4c7af3131b42395bb19b67c52011bd77a3812bbed45b41e3523de5aaab8d5ebc60e866f30fdd5052c8fcfd2eb89ed3c330a2e0a5a2160d6ceefe741e664865 SHA512 082a4ced33276ee3128378cd045ef318c9f30e20ed4f1db4090b4aa7ebd876a07e1c8b7ef1fe2e2d6d54dfb10564b2169642af1680b4c1949548a585016a65da
+DIST firefox-140.16.0esr-ru.xpi 525180 BLAKE2B 791f3d9e2375ca4c9bb7abfc6ef67c196bbe82641459b44646793723d7af5ab3640e77220e27892629633fd4dad35e5806f50b95e18acf85b7c857fc3ae3abd1 SHA512 63971a36f3244a150f39b1d40032724deb2cdbca39796ebef15f59a3d5e31839acb9f0272952bb43ae0b3255087dcae819573dec45f4b5c8c4c224fb0fb56681
+DIST firefox-140.16.0esr-sc.xpi 410464 BLAKE2B 06280fe8e2279a0c6539652806b2f63a4d47d3b20e4797366f3276a300fa91bb9dee08b848d8df12d1ef06b05d49c0b39dda778796ea481892002b30e6d174cf SHA512 dc99b0c1ac9d23145500c00fef0b42d25502e9e68a461088b3882081000e71b5a8202d6a01201479b07403bae9694513afe22868f7a31a004bdc005260b501c9
+DIST firefox-140.16.0esr-sco.xpi 322645 BLAKE2B 229e67168c6438b5e7f579919b799f58e3c22419458e3a3d3fe0e18be383b4c5d2673bbd001de7000058124f1e1d47160dd6ac2617b6d0eed07c8ee0657b1d92 SHA512 f371f19c32c432870c661101fc33d11e7e916637222b553dcba7539d1c5765837ec2ef4bb9d1ed167a33087e21861d279d311baa7f834f91b3a2b5a6505d1165
+DIST firefox-140.16.0esr-si.xpi 411606 BLAKE2B e3c28d7bc558592e9465928d2e3598f4b11d2ea2512660233840c5d91a36bafb4ffa585d1ea8abae946262220f790c39a07294e417914ba4c36d5b361e4e505c SHA512 c881f3c3bd8ae3d9782690366b5de5ceb048d276297825b2985e31d5daf3599fa6eb0c13ae29ae58c06f885bbe3eb30b2989f846b1660882758bc764b817db60
+DIST firefox-140.16.0esr-sk.xpi 468238 BLAKE2B b404f5ef5299bbd3521ec57f7087fe8045e16dfb06ca947384e7409b8795f3e3b9357abd54b13a31783fb4bb52b8b55924a4c56f08e81398c7fc3a72d8354961 SHA512 64ff833690647b41cc24723cf5aa54e0edf196e27fb1d5697bf5ea08069f77c4566b1c9368be9e7567a9610b88410e878b791d13d208e8e022e14cc7a04eb190
+DIST firefox-140.16.0esr-skr.xpi 485868 BLAKE2B b42d8839729bc0785a68b81c43f23f8c081d9c6fd011974bbcf5388605aa8ec67e60b8351343c304584753d6e19fdbf05dd457186af6f9c826f0f1ed10428d46 SHA512 7e2ead1b1749b35646bbe4b8aeab625fed5a8112fceb04ce1b684c69a83e35866bfc6566e15505a0f75cc80a2df699175923d9d4e88163edb004513e15ef4f03
+DIST firefox-140.16.0esr-sl.xpi 441193 BLAKE2B d66360bf1c1ce11a6d16245a9e476043c6edad69e00b1401738af024f4fda7ad198a3eaca9e86fc53e2be75784b0a16d888517a21c8d5f19bf8b7594beb3984e SHA512 5075e9f481caccc620488e53d98334f80198086562898fe0d0d60f0053ba7243efeb436835414b60b2f84c4e8ebf342033c025a0c5d2771e3acf27608f741613
+DIST firefox-140.16.0esr-son.xpi 273126 BLAKE2B 6ed6bcadc0d96303c2a0764d76ab43d9a9670ab803549b4b59999869c2b45783b38d3d3cbe7ef80821b3d245ff5fe298cffd39fe200c80f0d6163a586cdc2afe SHA512 717121e6ab2cf39af81e2b7d3d292791cf3d19ce96c5580c6d523e9afe7131ea760aa2f87cc6a8ae4a9ed626d6c8fd47153eb91a1a8e7d61c119cc2ae38915a2
+DIST firefox-140.16.0esr-sq.xpi 456015 BLAKE2B 0b5cde3909ea424586e40d8358e8519fae2b33d2bd25ae6e5941f046f38f1f4b55d909ec77f0f009b6d89cfb0698b2c62cc27cbb260dab76172278d542516ce9 SHA512 ea426ac26791aff6ef03b159a8211a973457004d10f90ca559e2d5042c46baf1628a8b87b2200d1e3cbc780859090608d1ce3625f2f9ed37b21c792a63b34166
+DIST firefox-140.16.0esr-sr.xpi 453365 BLAKE2B ba2eab2d2b57821f819de5b823a1703ab329b9b3e681a873fce4d6ccb06334a3555b5706e926680d945b3adbab0b8f11ca2c736b8d61166a9b0b1b4ad37d6e8f SHA512 88aa9cc25ff5d26fa1ec16ead13a6dacce53eb5c3a1bc833f85afa48fdba257b66907a58aef7994c6e363081ee3efac92ae7ab6d6e2f46b1424c24e313f6a454
+DIST firefox-140.16.0esr-sv-SE.xpi 436157 BLAKE2B 24a5b7929888d3d4b93eb07b8f18a2a2f87dc046ef07f437432ce922f3ab0b9e7dd298e9d13e215fb2c664947eae25602952fdd59998d8e7944937152081cf8e SHA512 b91c17b4a0faedc84448383a74eba30442f3664819eff3fb88ac0b20aa3036d679052cdec44f3bc93206abb3cfc4d7d3456525aed7168e87f6606ad11c690059
+DIST firefox-140.16.0esr-szl.xpi 341670 BLAKE2B 77a7d985d4a879b3bc1297ac3eef58d2a618c7c3308a5f0354882a8048eeeaed37bde41a7bf1c489fe68723c32c474641090e9de1930cc45c0b668fc3d19d211 SHA512 3cdceefcb130dc6def3702d10eb0df712290653d8e7cd571195de5a41c89f18a65485d7af6487619dd7481a556822cea0a5c92c068e9b6c51c820dde469884bf
+DIST firefox-140.16.0esr-ta.xpi 338153 BLAKE2B f41c5572c479fb111f3a3eb39327d174edc93852889fa11a038999e520fb6dd6beb5f98207a58fbb698bea1740aa5fc2c38f8a86321185fb42f3c1a720581f72 SHA512 46708321072ceefe20dde6c8100bee5b047e6d3c112edf9d5b42de8ff5f4270f1c8cf68b0966443c1de749dfe0f44dfd2133f8e652ff61577bdc0276e62a3610
+DIST firefox-140.16.0esr-te.xpi 382195 BLAKE2B f181d10af7d1637a8671eea27588caa1b7a22b63592c06daf2337785e67083eb7a7cfddf203556cda8b5facdb26b870ad0209214a0d144f18455332826beaa97 SHA512 a821399838bf7cc6e619b3d56df6dc913d4822f5c22fbd862864e126e56e13620817b4c0538d251ff1081ff9f78f0d01daa55d3f8ce91a96e8a0dc55aa3c62f2
+DIST firefox-140.16.0esr-th.xpi 505489 BLAKE2B c1eeb0675e808937259eaaa1f6c1f2cb5a50d5d62b7e770650ce849681fc705e1f90244397c48319227af4db53a1828c7eeb70018aec7b06861459ebb8491c90 SHA512 7f654f21454aa475697c05ca37b984f2e0995f304d502f709f46bd34952be8c23170ab6f2596e85e533e1a53335f26f8c60a7dd45b6e046e2c4b427e977b3e7f
+DIST firefox-140.16.0esr-tl.xpi 356651 BLAKE2B dd5e9de61fc967007fd5dfbc99e4064b6f3f7badca8bf550249dd29a89426f0d23b285ed3973a9db039bc9e4bbc1a82adcf9db15796f7ea72eb9e7b414200fd5 SHA512 89301d7ec2a9cc7325a98def64530574ae9e1ef0903bc36868ddd5396970ec040a8455f0db93a19798593c91629036a9b72907fa0ceeab9bbefca585824586da
+DIST firefox-140.16.0esr-tr.xpi 449315 BLAKE2B ca7efffedc4cbb1dd4216c25af1ab36987e4c766f68fab9b82a9c138734a379a41173afbe6a13d318b4a251dc620d51235f99f4bf413e38debfcac4729cf09bd SHA512 6f5c349d99afa5fb118bacad288946e3dedfca0b0f9d62333448dde997af83500d9ff0de26a199a3d2c82e205cc511fc3088acf5f92f5db4c1279f1b79d9e162
+DIST firefox-140.16.0esr-trs.xpi 324517 BLAKE2B 05d22c3b60d1f6edaa1c9a8472b300e4e82bda59cc98c19d5fe208485583a6e7e33a4519c8641f6a2449cc0fc04095b1b621d116c6de6f51d753cf5ee4041399 SHA512 f4c8a35b86b83dae2f890de86af74f0e5ac0582e95d8deb434c5574e816deb8a3f6e38c637e47b5a05058764f937ca60304a4f091b5b14b9c6a6ef87e4b8722e
+DIST firefox-140.16.0esr-uk.xpi 516739 BLAKE2B 94b87953da7367885a169dbbfcb253119ed490a10777aac255a16a5a1dcdf56382727d3ffebf379a761330681d8993dfa883ad761c8bd5e7ea40835e2fa90a38 SHA512 4b74e4060e3df666e471be45fc24cd5ce65b489fba64d0b59752db6350394c0a0ab3dcb0496798ddb09df2b37e9ed16fce873774432b95f7f75c472068375952
+DIST firefox-140.16.0esr-ur.xpi 370171 BLAKE2B d65bf8ad4617ff6be84c7068fb09a9e45bff4ab322d8cda5fe52f1bb2046eb619d138510a4f89d1742127334869c98679fdd602502b1f746aa8df8246baf16d3 SHA512 7333d5c38e2dfbdff81bc3a2b9a90039b7a07a3f6021909408ebdd25ed514732739b230b27b34a4a21a1ad93d28c375a264746df3671faa1c5ad2673538ba921
+DIST firefox-140.16.0esr-uz.xpi 303486 BLAKE2B 4a4a343c7b5e32d061ebfe83911790a23c4a3cdadf7f5a1708d547d6e5128c1e087a59400b87a7bd09901b17b806eb42885122bbecfc2f8b6495c2d421209cf7 SHA512 9289fee454004733605d030875475371f3a8326ed86074b5ddf17127220fc12a269fa0e0fe1d3a32355380b9d961b9533a4933444e639550c71468597c33ec71
+DIST firefox-140.16.0esr-vi.xpi 469146 BLAKE2B c00816579d17d9707b543618f027651b9c45341f0092a17347b50b744529c582d1a2d5ef8518045fc29b9624fef6f0da22c3bd0b60cc11529acc85e3dfd7c20d SHA512 f6a93616d3c60cdb527119ded4bd138de5befbe92ef62cdb15e1fd6f9e2caf91d908451f1c235766633a9ed3c204e316d3b484152127c34a13ba2347e589e20b
+DIST firefox-140.16.0esr-xh.xpi 272784 BLAKE2B 05c67c9bdabc73063a342a15a0dae2f5218628ac38b39f25a0e8f279049815131b227c47fdf396e0b09830bc2e6cf7e429cfd2c19f69f9719b105e03d79883a2 SHA512 ad394efa128d07d7263d0da76f58435ee25181c94fea481f7e6de55ff0cb1c7686e5d5c9130619f16f30fdb213c317a26365df921c0a4c27b58a0bf3563a3c67
+DIST firefox-140.16.0esr-zh-CN.xpi 460702 BLAKE2B 71bbbf07c6a388cf31bd1beebd9811809dd62e0f20cd869ed6f79f6b5d17ba2d4996860e3543de4f2c1234617842b17db35c814efda94e59d87b276a655781f0 SHA512 5341722a97a17f292b03e1c969d2089d091a7bb8d9e4933c0f69bfb140c1c0b97faf60215fd1066b123ebd89a321ab97bd724ef0c3aac5d910143843e014f814
+DIST firefox-140.16.0esr-zh-TW.xpi 463735 BLAKE2B 9d3ac24da76c0075809a33bf14ec59858ba6597b4897fb884e5af98d9360a47b97595bfaf0d743f5b956cd5ba5291990b859b740aee6058a1208b01ddf342baf SHA512 432e9f85644b4af01c971aa2532c740d357c31a05ab45026701e54e93d35b8e2a9957497478041eac2f18b32ba0ae79f5e35bb23f1e8883815a7b73c8d6d9dcb
+DIST firefox-140.16.0esr.source.tar.xz 632581380 BLAKE2B 1fb3bde4477e330cbe080ef322326095e905322851a32f097aff49dc55926a5502dfc06be35411a5924433d6f2b75fbd7891bafa537dad7245b5080393eddf9d SHA512 fabf5b481594a9a860b6ae379d2ee89ba291b807c94334ee15bad1fe862edb47c22e890d892e33d6a6ec57fce4ab12aa9c9c6fa4a501b881ecc6211ac04bd9a0
DIST firefox-140esr-patches-13.tar.xz 15628 BLAKE2B 824c3d42f2f6cf70932fe395cf11dfe9043e09e20d6dfd2bd64ce4567206def45424e82b738f27c71648f0b2d97608746d22565cf7aa35713dedd71a24cde449 SHA512 d4d59818944f6a8213598308a1095a0f3c9818e6c517587e4630056d432a0e9673ad627447ca18dfa884dbb35bc2921e54cfc63f9c5646765e0f66a75279584d
DIST firefox-153.2.0esr.source.tar.xz 807705672 BLAKE2B 73798f3bb282f39ceb302989caf74ca4385c9079b98c783f8ac16401feae820a7183fb35ece9308bb1e029356d1e7d6ebe745031ed4f0706de565fb3ab8903df SHA512 a8cd4784bb52ca89c0fe37404e894c044f6145c62e9fcdeffe621fde81ae4602078be575e26c90d83e5e47f26675d3ee897cd6a20027d09d4ba7d0e785ce39bc
DIST firefox-153.3.0esr.source.tar.xz 804997520 BLAKE2B a01a4e3efec1c81ca462b915e448750a4d76ec81fad4cb2b909db584cd14df7437154fde82bc6547689466e811dccf70dc8d27d1e76b00572f5137d653040319 SHA512 56a5e092f0aba91febf01d227e8068520513f632d09c5ffbad4cbb2de307d9066425f353a1b7fcf5648733e02a9b17cfc9aaed5e39d7562a6b143b1c9827a668
diff --git a/www-client/firefox/firefox-140.16.0.ebuild b/www-client/firefox/firefox-140.16.0.ebuild
new file mode 100644
index 000000000000..1ec4dbee2276
--- /dev/null
+++ b/www-client/firefox/firefox-140.16.0.ebuild
@@ -0,0 +1,1424 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-140esr-patches-13.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
+
+LLVM_COMPAT=( 20 21 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+
+# Minimum version required to build.
+# Max version supported by LLVM_COMPAT.
+RUST_MIN_VER=1.82.0
+RUST_MAX_VER=1.94.1
+
+PYTHON_COMPAT=( python3_{12..14} )
+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=32.0
+WASI_SDK_LLVM_VER=22
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+ HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.firefox.com"
+ 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 selinux sndio"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
+IUSE+=" system-pipewire system-png +system-webp test wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( jumbo-build )
+ wasm-sandbox? ( llvm_slot_21 )
+ 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.29.4
+ 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
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.112.5
+ >=dev-libs/nspr-4.36
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ virtual/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-3.10.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-1.4.7-r2:= )
+ system-png? ( >=media-libs/libpng-1.6.58:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ 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="17000M"
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -ge 16 && [[ -z "${I_KNOW_WHAT_I_AM_DOING}" ]] ; then
+ eerror "Firefox-140esr can't be compiled with +pgo using gcc >= 16. Use:"
+ eerror " 1) gcc < 16 instead, such as stable gcc-15.2.1,"
+ eerror " 2) \"clang\" use flag to compile Firefox-140esr, or"
+ eerror " 3) disable pgo via \"-pgo\" use flag."
+ eerror "Everything else works with gcc-16 except +pgo."
+ eerror ""
+ eerror "Follow Gentoo bug #975851 or upstream bug #2041879 for progress."
+ eerror "To skip this check for testing purposes, export I_KNOW_WHAT_I_AM_DOING=1 env."
+ die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ fi
+ elif tc-is-lto ; then
+ CHECKREQS_DISK_BUILD="9900M"
+ else
+ CHECKREQS_DISK_BUILD="9000M"
+ 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
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -ge 16 && [[ -z "${I_KNOW_WHAT_I_AM_DOING}" ]] ; then
+ eerror "Firefox-140esr can't be compiled with +pgo using gcc >= 16. Use:"
+ eerror " 1) gcc < 16 instead, such as stable gcc-15.2.1,"
+ eerror " 2) \"clang\" use flag to compile Firefox-140esr, or"
+ eerror " 3) disable pgo via \"-pgo\" use flag."
+ eerror "Everything else works with gcc-16, but +pgo doesn't."
+ eerror ""
+ eerror "Follow Gentoo bug #975851 or upstream bug #2041879 to follow progress."
+ eerror "To skip this check for testing purposes, export I_KNOW_WHAT_I_AM_DOING=1 env."
+ die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ 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="17000M"
+ elif [[ ${use_lto} == "yes" ]] ; then
+ CHECKREQS_DISK_BUILD="9900M"
+ else
+ CHECKREQS_DISK_BUILD="9000M"
+ 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"
+
+ # ICU's subslot change should trigger rebuild on Firefox if it is updated 77->78.
+ if use system-icu && has_version ">=dev-libs/icu-78.1" ; then
+ eapply "${FILESDIR}/firefox-146.0.1-icu78.patch" # bgo#967261
+ fi
+
+ # 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
+ # glslopt: bgo#969412
+ moz_clear_vendor_checksums glslopt
+
+ # 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
+ 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
+
+ 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
+
+ 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
+
+ # Avoid compressing just-built instrumented Firefox with
+ # high levels of compression. Just use tar as a container
+ # to save >=10 minutes.
+ export MOZ_PKG_FORMAT=tar
+
+ 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
+
+ # 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
+
+ ./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
+}