diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-08-07 12:37:21 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-08-07 12:37:21 +0100 |
commit | b8c7370a682e4e29cda623222d17a790c01c3642 (patch) | |
tree | f6caa14689bd00a5760eadaa381ff41e50ef3c1b /www-client/firefox | |
parent | 8a4997a7e2d1e36c089d4d76935b5a902d98d3d0 (diff) |
gentoo auto-resync : 07:08:2024 - 12:37:20
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 514 | ||||
-rw-r--r-- | www-client/firefox/firefox-115.13.0.ebuild | 51 | ||||
-rw-r--r-- | www-client/firefox/firefox-115.14.0.ebuild | 1393 | ||||
-rw-r--r-- | www-client/firefox/firefox-128.0.3.ebuild (renamed from www-client/firefox/firefox-128.0.ebuild) | 31 | ||||
-rw-r--r-- | www-client/firefox/firefox-128.1.0.ebuild | 1376 | ||||
-rw-r--r-- | www-client/firefox/firefox-129.0.ebuild | 1412 |
6 files changed, 4617 insertions, 160 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 8de5019ad6d8..c9dffc64ae92 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -108,109 +108,415 @@ DIST firefox-115.13.0esr-xh.xpi 414787 BLAKE2B b1f1d584ebcb91b1819ddab80c6933f93 DIST firefox-115.13.0esr-zh-CN.xpi 652628 BLAKE2B 482eb1d85b53ccebb3bdc4a1c04d4eb12f8760cd1851a7cec986786db626f8f545f46ba545d6e3e4be383f1b751fee1a0df836b485e2f0841c659c8a035dbb64 SHA512 6ca1d36a0faea8710c0dcf802391be1888ff6fdeb2d20af2970e63d982f551b64cd5ffbb2ebd187d0b2f4add2f5ab1f3ef9d82f149beaaf6d309da6425ef4b34 DIST firefox-115.13.0esr-zh-TW.xpi 656755 BLAKE2B ef8244f8c0d65d2c604a5a11caf4f493992dcf2d32aac8bca36a8a17ef21ca4050c3406b565822300c0333df2950ff6342f7ed05b02da1243aaa3fdedbd396ef SHA512 c62f4dddc59f71d944d70250dd0337680c789000f4df188d71f3fae1cb272c34b85711218a53727324adf190e26e1667a192b612d9f1d3a437f24e1b27eb9ed0 DIST firefox-115.13.0esr.source.tar.xz 510571488 BLAKE2B e2b00965a92cd11da6c81daa8b6c652dfccc9f0f7d066bc17ae5fa3ac3aaaa021c4489a9f653127f5516e3d77cd7174de328343e22c4edab438e3fcb9a859178 SHA512 799cdf2d0494003a5addd0da703f53deb9c9d6bb6f6c95d40026363382803e2d086039c7798940a1f35f4cba111f2e8e21bde8ac2eac29fd9bd6876dd8d3a85f -DIST firefox-115esr-patches-11.tar.xz 49440 BLAKE2B 804f5b7434fdf671361f8efbfa3e63cb8b14fcdea39a444ee04cbb4ff7d7deaea74ede239843c350a857eeacf59a69145e234070baa3b05b6d3e1b5c8835f23c SHA512 5e2c88374f14611a1aee4fa191ceb2e66c1d440c98d6ca9d17747290f01f1a713b71c71cebc37313c089524aa6155bfce08c8931a24b71b28de54913cfccd73c +DIST firefox-115.14.0esr-ach.xpi 459031 BLAKE2B d3cdbd91af8e9d03a7624b1d8374dbd31edf0a619851422403e8fef616ee66705a186d8d5eb84e449965298a7e81abc70c1104d2138241d07948c01cfab022e4 SHA512 84c30cede83bb4075950375748ff2c48a799829d57de6b8bac6fb38996242a6cd42f71b716619e7f66120af4a4063342d78762b8d954cf49a9dce355dc1b6e24 +DIST firefox-115.14.0esr-af.xpi 415184 BLAKE2B 76b0ccf4cf4969e4007cd770b40a2fa486145d270887a85130c63f3443c85f1134b5f396a1e5f53211180ed27b5e63f9f1a4117faf2fe57a9275f68d0f2a30bc SHA512 d8427668d07571007968f476758907f0dc2c4ca3424331280477791df267954aa982ec5f26885a7b7c174fec3cef946d326dd38c59fb39e80942befb74f99503 +DIST firefox-115.14.0esr-an.xpi 499580 BLAKE2B 61641d853bd906600179e58047cfff47d05a0ef760a072de84f3905bca08400036423c55e1b68ac6ae06dcbc983e99d0f1db73d0a9ae70e0d8cf6889ba6321f3 SHA512 26d6c2bdb55d070b1f74a74564e8d8a45c93935b532d4532e133a3a3b4119d18ff0d609a703ce4136d0161f840a6a34a2012867a4ca0d596c693a2fb396b7fb3 +DIST firefox-115.14.0esr-ar.xpi 606291 BLAKE2B 7cbabd7af93763a04f6da7245929d8cc71d1913b8e6e83879e878238a4de82fb341ea6800818f60ead1e3047f9bfd51d4983d3b0448fcc1a7304bd7bdf0903d2 SHA512 d727b6c0230a2229abe77b47ab12dc8f8b2b2e3dec7e05447de3a69d0e54e636229e158bde032c8718b034c3866c0f5d20d797de5c60b075b669ae5c01bc065a +DIST firefox-115.14.0esr-ast.xpi 491347 BLAKE2B dbe9b24006b8684f3bce6642ff4287449e6aa37529b62222a15930a0ff259f19e982c0b49dc18165d59a579261d09eb01a79d7e4a5d992d60baa8615b638f179 SHA512 f48598254612eb31c49a7680cd76d7ec19810e7f456d49994c7876ea69a71f2b2ce202b78d4edafdce03e9fce380d4594d42fbdb77de4731f8be3135236477df +DIST firefox-115.14.0esr-az.xpi 486093 BLAKE2B 79c846b33bbd744c5bf9799bd5f27af5b473465b73160305cd290228e73564a9425318d4fd5e8b6b23f32cd88fc3b26d52b2bc6bfc0e09a096b4d9ed83c41d17 SHA512 a56ebb803dcee256ff69fb5aad02b9343c1462469292ad581732bf1827492c478c45c730bfd62245bbdd5d21ef89e2ac3381f1ffe4eb66dc65530bccb269ddba +DIST firefox-115.14.0esr-be.xpi 715663 BLAKE2B fa47bba709eca24f1043727aa1ac8bf657925bdbd95d788d88fef39f9d2725d1e3586a02e7239fecd0ad33ec64fee65b7cae54f3f499d56b6a3c73a87fab6690 SHA512 07ccf8b64ae69d6b85fab6f85634a4624920bd7a6025d0d781f74f9ae734bbbaef4fc8b817f2779ca0420696518aee101610184b197927e4023ed5d39a26c227 +DIST firefox-115.14.0esr-bg.xpi 600412 BLAKE2B da2f5d0bf9883c493e69c2eff9f92dea95f8f91d47686aba133b42320cc07a494ceec0479e7aae83f8545f49efcc2f0d2c117592ffa70b0a0bb897aa808b287e SHA512 4e957ba651437a2799d2aa40fdcea71780a0489d47cde50b2f3f242e3d01477ae3ceb82c38bd267f818ce35c5f39241efd1fbe40708ab1d29ed5cfc8b840e4da +DIST firefox-115.14.0esr-bn.xpi 576350 BLAKE2B a1557db1ef6f4eaaae58568b20c3b98af3e5a88f9ef16b6a2e894afda338e60f51983eba1573f71f5831f25f5c871ac3cae3be9394dbdf5da5848be8eb3b45d4 SHA512 ca0e3c8228e5644e7ee3123cf73525266071e395fd02a98b78ba59708ec13eeedb52652132ce1389104733ac7e12ec5b3e2aaa0e22d15fb6d626f18f0e3fbe39 +DIST firefox-115.14.0esr-br.xpi 585003 BLAKE2B 7e3f3d54a2e0da65c77842355448cfc802b6e99708cb6e30585c83f094a392c61e2fc28212df0c398af2831d98144933cce9dbb365f2c5f3ac46a3c5a833931f SHA512 cceffbbf37c5680d31765a728779d70ec15269ef9f9e4a6a006a7e308c8116d3c62cd8041823cc2ea306bb93f5ed811226ccb8d57b6b981718c6d5404d9150b0 +DIST firefox-115.14.0esr-bs.xpi 496792 BLAKE2B 67f48379e0da2dce9f79b71c157b26310f7876e42add689e21d03125fdf365721858a0e5e6ed54c34bde4a0cac960aacfedc623451dff9564ed73e4da0792709 SHA512 1e5afc91618224251521ae4dbccc0fd76f0f74db0bf73198e91a6543142f523ce017532241fdd113344dee15922bdc29fb59c61f8d35a12efdece203f59f9069 +DIST firefox-115.14.0esr-ca-valencia.xpi 539259 BLAKE2B d35b8af4c76d7fd47830fef0498924fa5e64b1eff84f7585b616ffa0ff42bfba673de28b5bab79662df6d9fa240918bccf1fd5a3d72ebec05abf944ba9006e31 SHA512 538a962bb31747cb45f231b8349edf13b271bc5173c4d3821b96888df1ea5e6040906cece726fb41e0d2a84fa783c8294d364db0ad3c9434635f4680a2be878a +DIST firefox-115.14.0esr-ca.xpi 591043 BLAKE2B 8fcdf43c9505e0bb92a39e9ad29a57e68d4a63bad4bbc0af6cc9435db6c992470a782fcc45521027846df6a62adf4f500cf8c9a5d38c474481e7eaec9be45f66 SHA512 100f449d402ef2a07258e51995e1814de0d5aa518eec4a92adb192e0da8e104d4ba80dcdb0cba9cd05c3f86a3adef57c3c9bf72d407860e3ef721358519f5f67 +DIST firefox-115.14.0esr-cak.xpi 586727 BLAKE2B 358433fb5af26a6a0cbd5dc8eb62f9b576066f7919792a33887badc9be4650ca374efb75af7b93de6f1d1ee2b4023c7c44b533ed3e477010d8415e0a7867401c SHA512 5532e4800cba9ce81db2b5aaef2b2ae63b8bb81e67ef0f3b9325a232142c8af4f119adde724ce86584f233fc33381af61d53537e53cb1f84af1dceba50813f49 +DIST firefox-115.14.0esr-cs.xpi 659577 BLAKE2B 3bef6f542b6e14d7b7f98ed0456651af9526d6404fee99e425f21cdd526da054ed8de70834aab630ca4747f14beb720986581f763f45d8e54ee04a6a8b4a613a SHA512 fd1b5fd41e035405c1d4ee9a912798a15cf913db05d9ee36b2f649566ae8e2b8b320ce60be9c378b52a44e9aaf95ab0f41f07858fdcbbceb9250633ebf38da8b +DIST firefox-115.14.0esr-cy.xpi 622581 BLAKE2B 725001b5f81f708b3199b814855de72ca541208c14db2a154c3967f7288611b1ecdaa2c1c6d7af904cff73acb56a447983d8b5462dfbc3a5d9168eba4985ea5c SHA512 9a17905b1835fb62a2eb229efa5042dd44a7849d0d920d6ed0f991fe59bb378d41fa77baeb73f4514e7071789f255adbd7439dc4cb4e2bae57503c37e9f2abc5 +DIST firefox-115.14.0esr-da.xpi 611181 BLAKE2B 83880036dc3fad3e5fe36b8a4d3c9d97b606de13abcc04d20ce6230dca542ff933138788da4a3890d588fe006699bb79e1a71269c4a3ba48330c6755d13dcf22 SHA512 44581cbc73e830efcf2569c18b3dadc065fc58940b6549d0ad585820eef82bd10f61f3bdea6c6d2b174dead037d0d5e4585ba3b319e6b80b038ed1a7d00803f2 +DIST firefox-115.14.0esr-de.xpi 632366 BLAKE2B a37b25b10da4f20a83ce34e88c17342b3408e72e9e092c0264424f6933e4307652f94bfd260828332ed3bacce262b8269506f8966504d0b2822da0cbfd4c3139 SHA512 56c7ddbc600d432dda6d82498278529d9e98cceee0229b6ed0d28a85b88afeb7ff0f5770b7e7adc9013305fe4ac038e72b9a6b1cfa32739b7fae1c6ce970a2a2 +DIST firefox-115.14.0esr-dsb.xpi 651470 BLAKE2B 578d5fb47e7d93c43d586f8eb4eac788f88c6ab31e74a444c7c73059ef8682b92516e37d3aa92f241cbaa2bd49816feb3f40a16ef5fe448e3186ec1205f2922e SHA512 01d28c3faaf2cd5930742eb0dab1a3cab26d3567e57f696d3776f4abeb3e536fc171db39c0d21728116d88df41ccd5ef799c445d5c395937403726597eebbdbd +DIST firefox-115.14.0esr-el.xpi 734624 BLAKE2B 0a24ee3276b1bbcb9f8a0b038434efcb28179bd0a717b73caae3a9a83ede8382493ca0976c2c6a50c1972589bbd84a465ad9d4d93c78f052fbcf684b45ad23d2 SHA512 3515cb0c752543a0c6bb0f0901a03037035d14f16ffe3769398428a945d53941135069eb98c92fa0608c33ed3d0d993577c7948bf790d8d533217e75a9be0d28 +DIST firefox-115.14.0esr-en-CA.xpi 584146 BLAKE2B 139bf423194360acb87311cd688b2d1359dddc25e3576219124050fd91e204ee85cb109f27aff1b16086bf8b5c776d216b4b95e0464cb5eedb1b2c26ce24bd73 SHA512 dac0e30a16f6c899bd1b1d104bd6c0f6a73b900ecc039b0b7a1f32c0649b76d9be7db200419779441272bf627fffd6026ac0cd28e89254aa61255608aad57623 +DIST firefox-115.14.0esr-en-GB.xpi 585203 BLAKE2B 51c6c2956b8acae2a24c1e86b817ae7e883e20950a9e5ee49dde27e825ab8b2b95115f4e967854c6803a3ab658bedf7543e3b1344912899368f1bb4453c9c537 SHA512 19e63882b04e48b94e4cf40b0889df046aa231d4f298d68073c8010556da4a7ffafe991911f04bc00e3afa3097ccab12b2b8d3d9d78dc1b6b5b779c7e138ebd6 +DIST firefox-115.14.0esr-eo.xpi 613404 BLAKE2B b1c8dce95f4f9d0a423025f47a059c12ffb6db5146e9e3a45928f420b7e5ad26658a7e42d0e5feb662793320314ccd0153aa2c912cb047ab22f3c1273430e5ad SHA512 b175dbfaec4b193b6bbc2eec1ca060f9b2ae99c33693fa55af9c3b4fe9043c8a946b7be83eeecde9fce884ea54a566cfad93f04026c9b8b684b97a2ad942a8b8 +DIST firefox-115.14.0esr-es-AR.xpi 628392 BLAKE2B 1b2ac634b032d17d0005b33bf8cd1492042390b382c6acb5d8b7770292b98ceb428895a0e735588d30832396d5343f8ff5a0151154a6a1d78e91b6037a4aa293 SHA512 b8debe613e9b6b52a189c89c000682daa76685d0c0b1eb85b66ba6c3f31fdda54f0fe0eee51846a9687388154f275afe332c46826384f717f421b8e9613baec3 +DIST firefox-115.14.0esr-es-CL.xpi 627708 BLAKE2B 18a30708b1475ad4b81de6a13cd13b1186a0ade6bf4c85d1b1c78a8464c147d2d69567346de452fb36d3b12b6991775e5c48bccc657e6ceb4f0117a7d37f50d8 SHA512 19016f66db9ac35cfaf538077c9fe743c8d7a484b36601652ccc9c87ac48f96e54b9821dce4229cb1294356887fe1fef5f5ee145f1ab18ca21246f758123f55c +DIST firefox-115.14.0esr-es-ES.xpi 621485 BLAKE2B f5896113cf4643706baf8ff698f682d3f58b5dfcfe95530bcbc676edfa44b98a3683075b53fb40ddf89073b26e0c6cb8b40b3b0e41d48457ccff5beec0a1467d SHA512 4b1317161f284d6361b2a87196a700b04a8b8d8e76344659230cf929a40f0ebff694ac25fdca5d8821dcb220986da6ced187aba235fd48d467dca38b3ebeb542 +DIST firefox-115.14.0esr-es-MX.xpi 597942 BLAKE2B f7cba71d74831e33b27d78330f17734a87fda77ef6330b28f23a03c7e91f445c2300119b7e5509986254bcad2a75e441153d4dc90cceb38951a58ade2cf7317d SHA512 d4b3a147f7d5b08e7ae0b21d1c011aa0a3507675333578cc51ade9cf951c081252f15e90678d73ae1a76ce23502e4481825da42d5286477723a5e9c691c017c9 +DIST firefox-115.14.0esr-et.xpi 533026 BLAKE2B bd9cb5b70eb28b86a39b87cec0c6c40c3313f579cc63029c7c4dec85ed65cb8913e892f106a0bc66c8cf9fc4ff5ae84b27161458c3750062fd107fd9f0b02cb3 SHA512 abe36c2dfbc210a8588b3878be0b4d8d967dfae89f6c30f5624f12cc495af2c4f953e696f0c21b4baf03bc3553a9a9a23da469e7de3b0d78c161c8d667630dc9 +DIST firefox-115.14.0esr-eu.xpi 594661 BLAKE2B f59c1632cb76097f479289abf2889b5116c7c91519246f121a2929f6b76773d813a32691d572982b47162e4e9fa23a012e744286bb5245587cad0278f2e9ced2 SHA512 2c3f432da86d6858293bb2535680d9b2b5f69e24aedcc28473a222d56f613cad9a16ad0091d38c98d3788433d1c8401fd675468d7fe8c2105d711e9b52b61777 +DIST firefox-115.14.0esr-fa.xpi 584364 BLAKE2B f3f90be59396f6312109fa8cb44d3df9ffe270e52b1dc10d1c7d3eeb0bab421cff49ec654a9b47663a08f3521026d83cca577ae6a7f68c661341ddf0407778ed SHA512 b8b3e2be0d09e48f6c08fde82a63daf3a0351943418d189257586d30d243198b52e73d08b9705288d0d0fafee6324cdd2f754a891006963d2a86ba4933029e4f +DIST firefox-115.14.0esr-ff.xpi 471728 BLAKE2B 6c0c944a34dc1fc191e6ecf0d850080442e4e0f21bc742b4e660f18955d8587078181e5401e965912565408ee9fccde4f3724fbef1fc1df203cb1fd88fdfe095 SHA512 4304e8f634242019ae98bf8f0556454dc49cb34758296fea8609438cf0cc34b70ad8b07c900f12f5e8955b4d3953ed799a063bb04a4cadd90a46157c88e2fe8c +DIST firefox-115.14.0esr-fi.xpi 604633 BLAKE2B eceeeadac2e189eaf323ff12e3732554ba39e63d145675001b5c3493a41bfc6b9eab7021941930fe3f517983b67026db879e5b871901e264af13dc479dc281a6 SHA512 2d905561c3e2f2740d26f18918a5ce2a6e4be00b5622b87862884241afc7bb00c573960fa4ecfa7caf60a9ad0c078734e6db7a1c73d1f54be0fe67a229e4118d +DIST firefox-115.14.0esr-fr.xpi 640847 BLAKE2B 002d89781dd01e2eb8ad942f7c9b3b59e320d4f36db4917e6b6d66336f9a384deab51016cc125c3c8d4fba786f30290c6362d1d1996b61f34add6e402516b964 SHA512 a9b7f514f94cdefc335dac4ae1443d29f69f20f295f5a0b4ba8c9f0fb48c52b33d18e0d0529056f2996e7a592a7b0aca4d6be7ab935c589be3747a3b8dbba01d +DIST firefox-115.14.0esr-fur.xpi 634487 BLAKE2B e062bcf73ff424f11cc9fe3f6693dba6b54047d81eb9f5669ea64f6146e398d5950214a4c14e2cf45c1856bbdb4eaa7a0177a4a0227676aa2e719f357fb6920f SHA512 c892016f14b8bfde7913cc16f698327f2c9317f58c0aab75a8186d74e83c83ee15f662749aced43a4f9ef4a8d4d1af7c810cee01f0b95e758eee35d3a237dff3 +DIST firefox-115.14.0esr-fy-NL.xpi 624086 BLAKE2B b94fb81dc426c331b513cbd8d9a30443b20387f2d646c7f34d67d4fcb4b74b7f88f3d421c5be42a18d42ed412f896617ef38cfa77318b29f972fc51fcd341a71 SHA512 7678aafbeed6a9249cb8e579e4d632f890fca6569d8e93d58a085e283081870966c2e3085a728568de80cec40c4c6b6dc310375fa5c633816a26ed5ecae96238 +DIST firefox-115.14.0esr-ga-IE.xpi 467652 BLAKE2B 9de569fa6982014b97b91c52760c122a297707623597b56377c9186ca3e919458a6592e7421fbe4a30713a1849b70fc5c9b34b41b1746f69ffddc5093c7b1bd2 SHA512 8bb3b021ce8cad7daec7421029fcf1759df120b6786846ead5cc102b3973d079a67f1f5d8be0ca47767c051c2f3a08b5e3048a34f15c3a7494158fb90f0702aa +DIST firefox-115.14.0esr-gd.xpi 589971 BLAKE2B b33304a93bf02acff23a0d82159278d7836bf98ae4c614f369dc78e113891885793ba90a2516964ab91fe489ea877496998406b4a8aff08fec9574419681cf10 SHA512 ee7108ec5a1db3d8a61bfd419cbcc8864eba3594e4854f1d6a5bc3a9fdad17e4c224dcbbc61d5fe735973db9be794050b26c4a77fe7fb52158e9fdac3c779863 +DIST firefox-115.14.0esr-gl.xpi 599992 BLAKE2B 4044e5c5ac52e85e88ee370e7bc487ed853c0e58a47631f7f3fedc052b126f92f78bb8c0031a21ff208e80b37e666affc37de661263923135d9da56c954289c7 SHA512 74ea13705f799b01593bc87db9dfb75c73b50ac5fc427c865cdb389b90aec65b94eb4e164b660ee57b131784972563da2512a748396a023e88e4c39a17349c2d +DIST firefox-115.14.0esr-gn.xpi 637889 BLAKE2B 0665a757acacee9a030fa546c94d0fd350ee4dec238a92ec8cbe7c976926083e88d684dfc540d12e55816a90c38b001ba1716925e25bc90c161b63e1f3d3dd57 SHA512 56c9ef4cfa6d21bada86316374a815ba0ceb400ef8166f36a6c4bd7ca77238de2810ce033bd7060cb86e58b978a78b4d733ba284f3b5cf8a3548bce024800fa7 +DIST firefox-115.14.0esr-gu-IN.xpi 523387 BLAKE2B b79b92750f2386fbdfa22728012b29a3ebfdef408bd4302a34203ae0ea1f377b763835a8094a7e0cf80bae2c45cc04a57382829f4f88132ced77fc600b3554e2 SHA512 3885f121fabc94fd02479274f9971f89eab474b7cefeb9229f2778e906f468164fb997ac389e11c9c6519cd54dc1873add41f575a74b098dcf055ed8e0b299fe +DIST firefox-115.14.0esr-he.xpi 629103 BLAKE2B e34add03acbd44b65df58818219570606c37f36fdeb2ab89bfc9fafda6a09b22690178560c7abc0f7c0ee292a8c239f4536c016e5b48e4751b9363b082a05b58 SHA512 873c0e74cafca7355a5a167a1b31e87b8297f8c9c4ba2e254c928f577d076b5a91594805c15f3c519c9a22eeffabb6346a2305b4bdf2e0c31f7acc6772acfc57 +DIST firefox-115.14.0esr-hi-IN.xpi 561269 BLAKE2B 05c600f60d87d18e92f15253a9e7e1c5227cc72ca801b6792830d677e2302d51587a50bb516cc10541032ee86ff9c4e08f83a453b070fe8fde773adb6c56a840 SHA512 10ce058cc0c11c5275678e70fb0c52d4492094c33f1280e6736cf7996fadb0cfa755c3f1794f1bf430c7a5d192e581acfd30750310222668b750d7272fabda39 +DIST firefox-115.14.0esr-hr.xpi 554542 BLAKE2B 31ab9cbacc301896c04e9bc6af5f7790e0dff5afd97954eca38ce88610d4416dd4460bb317b5bf6477655105047d83438d785645ca7d2bc089040f59a88f4a31 SHA512 c8f44530f924650ded1666893206de45262da013a0ab81a702453c71d3e0f521d929422d58d0f93ebc414c7ad046005bb469ad3445729be91cffbf5269a40987 +DIST firefox-115.14.0esr-hsb.xpi 647506 BLAKE2B d069eced2dbabee333fc7bcfd037053ccbf44b529e5df8808c68a82c9caf5cf9abe360adb41af69faabf2e78d532a84e349996b6ec58e2309a72224f65458e0b SHA512 016c46a9f98a454ef7bd1eef6acb64089d370fb5be14e282c2a7855fe7af6176488d8b545c3d0253cbddf19f791640846d31181ca08a0c29d333581d54e5a591 +DIST firefox-115.14.0esr-hu.xpi 649871 BLAKE2B d4f91fd3a4a486ed7d27b1646556a6a0ceb9996f0561a6447b26b64e0d4096ebb271a1b2152c554ae0eb3ca1453d1bb6e81d9fd76a4dc801fa64e28fc6407298 SHA512 444bb1537bd514842e64d897bf91bac1681286e0c38da1b13faf454bac2e3da25aa22916a82bc7f1c7ec0e0772b64a6629ff4524e33db9e147ffa1514780b46f +DIST firefox-115.14.0esr-hy-AM.xpi 647653 BLAKE2B b17c62f320b2b56a927a38c5bb6c8977d610de6cec0dc4fba7a597f2328be8fbbdc20084a82e6698d9c9537f771f1423c14f3b2dab0817026d607411582ad417 SHA512 d07c177dd93fc86866ccd4ffb29a3254755d5e589b3dbfd7c64c1db67b72af8fb7e762d175356b480199c004dc56a3b2b18571dfd4655d62047b6c2f3ca1c514 +DIST firefox-115.14.0esr-ia.xpi 610850 BLAKE2B ca1c700d0e59e60309d6830ba5b4eb92c801db757f582b7be1bb19e99389a54b363957a9dc1427dae5de9e3844ee4bcc9f3470fda1c7f6c7fd66639d0911cd42 SHA512 82608a06e5a5b611cb44e8765da40642de08027d4701bd4d3d49525d1b677bc79e78617dd576b893d0107b6e199b955d95a0825285f0d5f3bc23631c526cbf6d +DIST firefox-115.14.0esr-id.xpi 573439 BLAKE2B 11f23b9d60eb68adf2e82e58b697fde92523eef3c512314eb99c2de0b6c1650067a74dc28c59f7dfb283a65eb70c9001820d6051c47943c94d0763e385d504e2 SHA512 749aab83ba76bfa26df1591cadb4b8c062b26b0294ac687915f88ff0af754214fb5188ed378e9a538121f4b1bce613f1493496bcbccb886313603a89009fdcbf +DIST firefox-115.14.0esr-is.xpi 611649 BLAKE2B 1a1320c2741ff7014019cd8ab21a92ff6872f680d192e86823418312e44c78f43f5ebac597544fba4f7e02eaab6ed84e9e99a7ede1123915701cb850163e075b SHA512 cf9a08de49f692cf2009da9223624ddbb87dde0fce9aa66ff5ebaccffafb9adba3dc535cd7cd6ee6261bc2b888a2fd359e4620e094e0b8e1c49db36bfb581dcb +DIST firefox-115.14.0esr-it.xpi 567123 BLAKE2B ffc8b952963706eaed137e8519363d37f9e0dde7303c985050ba97ed902ddde50204fd7d108027642b421002ceeea5715e7d1958f48102f4b9685aca01159911 SHA512 5301fa6fed8588af4279e8c014095aac345a7264471ae489268e4032bb0a65d377d5bc92d473b2221c9aac11652bfb2605842bc5339251cb6d4c7fcac83807c6 +DIST firefox-115.14.0esr-ja.xpi 676024 BLAKE2B 3e01ca2e7f19b907707379eff243e60d08182fbc18189c8a63dc496fb91dd82adf0ed6ac070a5a854ff469d1a5d6ab2c37d8fd311ac8c63545a33e90faf70e7a SHA512 4b952c730f17d7e7c111fc767c1ad56a1b8e48ee411ca164f066b7cfdd855a5e6ba3747165b7948c55cba47f33c846caf1ac98d27309102139557666b3b23cb2 +DIST firefox-115.14.0esr-ka.xpi 658003 BLAKE2B f5568bb90e4e88416ffd4a7690157a85fd20e839555c63620ac15b995cf304e6d0fcd5631cc68e643fab145070af4995ecff47ff3dd40a67fb6703eb14509177 SHA512 fdf9a5b61d00ed5b0b13e259c63c6df40cb370aec64154c4de3b0fd246e0617b16bc40d449b2b4c41fc812c618e075d1638229f2c977fee8cda1285af101094f +DIST firefox-115.14.0esr-kab.xpi 604019 BLAKE2B bc0fe1c6c536da6e7f86841bbed4a4f6b9ed32639115f3853165cb700f88c3506f00be975388b04a23e13094cd23762f12694063787d22f558e7a783ae7cde55 SHA512 54692ae86b20a21d50ad14836413d655098172ad1ca9b55cafb6868269e4b6ad2454d846485014d66e20e16405f3f20234c2b3606668fd6af4389a0407a90f65 +DIST firefox-115.14.0esr-kk.xpi 709063 BLAKE2B 1017781b0704b6310b714a994c370d3bb2666ab96ec8dd30c43f801f8289c040aea63570051357f78f980462e7ec45b68a1fc8d049bdd582314a2b9dc852af06 SHA512 4d576661caa88f87683e8c8d84d59cfd86bf78380ea947620466b84a21506bf8e72f663af8c1b1ac034c592231ec3a2d61f32d7fef069df397641c18ebdab220 +DIST firefox-115.14.0esr-km.xpi 522336 BLAKE2B 238d46fc86fec47c8bc5b9132d8b9e4e15e8414be0161fbb95df71d26adae6f403049f1a68c461cd6784f1324742bd2e408a5906698812da78a66c8fced51ad7 SHA512 56812b9665000c3f341ef581e733325cdfa2983ac0725d87a736df78c110769b23ad33fd0e22ccb07a1d0c925a8952745e1723584114ffc9ea5238dd11ccec28 +DIST firefox-115.14.0esr-kn.xpi 488190 BLAKE2B d4bd3e1d421ff138c80e4b4a88a199ded4cd2e39dafd5f1a60a56793a890f920a9098d1471c53050aa3074967aa01c0d6b6ed27f900708139f32a325aa99ffff SHA512 2e19950a2d272df23f455dbc003a5bf6744612acc3c1e51d639151fec3526179be22449f475835ea80eb8fc58bf5d84404c8aa41949dfb51edb4a632ae2741c9 +DIST firefox-115.14.0esr-ko.xpi 662479 BLAKE2B 51706d65cb1fecdd9a711151cf13edb9159c9e374ea55c2af3f5522ae504a4587dc34c0599429ee9cab19ae636ad65b49575dfba870329b5b252ebbc794179a7 SHA512 8f9bd6c99e6d4dfa63a27a08be6a90eb042e6ff0b1b316bbcf01d9554e4780100f450aa464a990cdafaf8b6fb7de4fb2bc8b2b04848f357c4033b9c3d4bb9735 +DIST firefox-115.14.0esr-lij.xpi 479124 BLAKE2B 554507a4d52edaef23b956837d1d569002b16175a8ac42c2ec2c9b6e17e31889062fc4337b4929d39ee6d0b2d61cbcbe7a06c16ba9ac3d56238a9cf4e8e8ff69 SHA512 648d31632291fd2bc33d9791226f90e3b54d45451ca605d85f944d160f4aa304c32e275a0c01545967ffe0f1af1ac91c3a6b95029f6d6f3bdf4fd50d5199426e +DIST firefox-115.14.0esr-lt.xpi 566219 BLAKE2B 63bd6c0d193e8a47b73513eef871f0a97339b53e863b57e2c6b5a201f316de7fcf17c3ca58f978d35496d0a9c1effe6cf21968aeb753f88e54081882167e51f1 SHA512 e4c5732d3598ead21c459102e8e681a7c1df53d848cec210c5d82b7cc9f3766c9585fd0ee9a285363ad963056f4aaa1413b65cf165a4a8acc6af275dac95df80 +DIST firefox-115.14.0esr-lv.xpi 568815 BLAKE2B 64330302cb66bbbd824cacb26a1cd4ab9830882a227c16b79d53792c07ff9f97d1d206031558bc75b5a8aed84f19ad65d50c709722fc7988ecccb74955e67d15 SHA512 d920edb043798ae135ea2fc6cd15c341f8a539efa5d1641cd81bfb2402ca1892e4c50cc59252938d3ce093a2bfc3928bb279cff592814fd8a68e401179bbb6c5 +DIST firefox-115.14.0esr-mk.xpi 490539 BLAKE2B f42eb12b43d30538cbeaea7032d2eeb62ae0365ea0527aa84d3508dfb5648ebd4503dca576ca23c40977fb2ccb6722f0743f30ba445069ede7d836d333837ef9 SHA512 652854851ebb5e169a32ae02512f0cb35e3550b8a162434adef53492a4694430e8ae407b11af1050973e2b43b66f4b358e1726784ed8ca17a8156c33b6e72ccc +DIST firefox-115.14.0esr-mr.xpi 526891 BLAKE2B 683816818bcdc6eef5df6e5a11684afe1eb1e39b3b6ade94ac42e538fd8c18b32f60a624946023462b91c07fd6b3c77fdc965cdaf6bc8b8ba22fbfebba288fc1 SHA512 aa9e428033a9c4cc6cdfd9c7e978f8875b58504a19703db080f04246851daa10ebb9a97e2fea89f9580da5ede4a95f9dd9203622f2d171780d624df7c1dd5e64 +DIST firefox-115.14.0esr-ms.xpi 445507 BLAKE2B b387c90cbb7462924b4bb17786acbd0f80f0b8279cf6ac43a7d1e414e9bf0c9eaa82bb738ef8deb884ab784aa1c42832aee9f96ac605094b94f8886b9481b569 SHA512 7d8754d3ce46bf08e6e9502106ffcf521e3a97892ab9ed11955cbcdb41485c12e1f5616563e6435a6039c8b24271f13411d78c1f17e7f12a53509bd14507ba8f +DIST firefox-115.14.0esr-my.xpi 514931 BLAKE2B 7c44f616d4c3695bb9985e7abb5a971197c7a600734a52725de99d6fbf3509d505383464bc060f5139be391abc2b6f15aca16834cd19fea23dec8f813e779f63 SHA512 7dec261cb51dfd8da697e4ad8796788546e073e4edad4dc005b2e9c389b1c0926c233f8a7cee78b12debda7ce30d3f781f871560d1db010a8a92a88f3eb1bc51 +DIST firefox-115.14.0esr-nb-NO.xpi 607322 BLAKE2B 528d2c10ee5745a61f8f48f37cb2d04647421f73309d09afb99fd2ffbf4f5105c1fa037aed0d4985c32972e6b150dff2c22ad16910d886348cffa8f74343f766 SHA512 2d961f2f2e1ba741c456fbafa203a57e4865c243bfeafb673c543b66d2b5772e445630756085be101744dc1785edd07adfa5cc6a7f52e4650e43eedc0278265f +DIST firefox-115.14.0esr-ne-NP.xpi 506995 BLAKE2B a4af7cd7ccec4cba47b68f9cdacfdff30160eaee7a900afbdaace4bf99a4feed1fe9933ba5ca0e8b6dec509c7247c233203e69f132b32e06b59d797aa8a5d061 SHA512 f105b09e119aeaa89c02ac1743549da3471b4c001f390ecd19f7560c6923966c43a7bc91727a067437c9c1e73939550b99add1bda39b8816a9e7dd56be31e7c8 +DIST firefox-115.14.0esr-nl.xpi 617752 BLAKE2B e5357db8d35b801444461d9492be5492fdb588fff96730da7a423d161457d8503f4e4e84cad41d6e6effeeefa6a75c79c5d2138691e3146035a366ec8f190361 SHA512 3d49c5a77cdbd9281280acfeb0e2617b07780fef2455e3b2ca83db7d4322bda2f22602ea4a1c1119ea8dcce434e5e65ad4dd7da30a97c17e38d084139b42118b +DIST firefox-115.14.0esr-nn-NO.xpi 609738 BLAKE2B 93f5ef14146592a29f8c3e068646c7dbabbb59e36c97e6b0dc8337b72b5c16362c06ccf7d0fd8ef5de5b580377b5e1f499489e8347c360b562c0bfc613320321 SHA512 f3fd98c37cbca58cbbd9067d2e8cbddf898f0edc99439a6d4371bdfd8e31def2cccc454f3529fb69f69faa7ce30ec55203bfbfd13fac4f384cf3446c127c4bb0 +DIST firefox-115.14.0esr-oc.xpi 607907 BLAKE2B 3058c2bd583163655ade26195d131f3fdaf8a6d795720122f3f490304121ba81e28d82dd267d694c0e465be704c24c3286055a8f032f7aa026251216e589ff10 SHA512 7ea2ed18d2c228b3c59965a645825501f2478112d16f10706963f896db0ca58b92573e33b3daa6503cd80e9de79feb15cc8138dca8ff9373f02fae0921f1a370 +DIST firefox-115.14.0esr-pa-IN.xpi 687709 BLAKE2B a8e5b7c85f7a422e82bf93abdb7127261ed31de1443e3c38faea5436a84818a23752371bf6e69bd496c9bd2daaa8c2494bf840450d8a4bef0e43298f698f153b SHA512 241e0fd7aa15dfdf9afd7ff7e442e6d6483e380a5eecb45db3dca182006ccd9720ccdd781f9d4b0392e1bec87dba921cdf90c3d91e4da5394c2b9f1932a86587 +DIST firefox-115.14.0esr-pl.xpi 636473 BLAKE2B cbee9e8bbdb0609a14196a296cd7a62af69ac1c21e97f0144c1c277a861f628f3d5f4210574c12d6c2f5d84af50268cc51f41fefaa8e0f0ed9ab90c7e46cb8e2 SHA512 1822a35cfb7b596f9bb722a7d912690e61cebd1fb03532ad562d5b8d9b8567503c07c18db5e46c2d4c617605a10b8266d1925b2e8cea554ba422d7ac66aacfb2 +DIST firefox-115.14.0esr-pt-BR.xpi 622538 BLAKE2B c175443d04ef78366993881e44ce2fe7d502ba6d645c29dfc00a721a3ae4fb271eb8a5397b098ce46156afa1993168818d032abe3a82b04003b70b6071cbc1b7 SHA512 4fb9a8e11dda271281acaba2a8191776f3ae0b521394f635fdc817d6470c206a41a1f4a0164b529fd27b94e212add8539525dc10bec300e161c2880224b24116 +DIST firefox-115.14.0esr-pt-PT.xpi 626594 BLAKE2B 77b22853fc1b89d3c10c8ee8bc17a62c0d191e93633e1b0284eb54d65db4dec2be3ac61231cd95806305cf176ce321d942b6a62cd9f263b880cfdadaae6bdf58 SHA512 c8365d18e7c74a29a6bfb807cab483ddf247bdde295eccff4b6989c7ea8b1cd9a6ac38c64ddaf7271289dd2546732737c9e1086f1c072f7114dece729e8acd38 +DIST firefox-115.14.0esr-rm.xpi 617340 BLAKE2B 729c46a8c930747480a36ef1ff2a2ef76348850632aad2656a4d4ab3e32540d0285f180d286f32909d5c3af4ed22e5b17757141b3dd3ea1fff1c4b34635e8842 SHA512 93ef502160472b92812ad2ffd60638cea57ab2f958674e2d64dc80981df937c90754c3a801630901f3f213a8ec0fb49ac36e6e4021c847dc3cc7edee0a2af192 +DIST firefox-115.14.0esr-ro.xpi 543547 BLAKE2B c84ec8010226d0aff906ed7bbaadffeb7a98f958162ac4792e0b3b85b4967bdb5960c9d57f28820f24d0fde8c3974302fb9c248a0656ac7f2596cf38f1f69afa SHA512 37820627f22235d0f51fff3d5d2972036c54e8917725c062be4239c82dad9350d60b918d57441e13fa31fb1ec11c5442679d63777fec932c747c4caa21806aa2 +DIST firefox-115.14.0esr-ru.xpi 721756 BLAKE2B d87db8e24f05cd937f231b68cf62eb84fd6b61d2b3b5d4bff32cc5688f09b5a3ad78721b03cc1dd7c7cfddbe5c48be5d27f1b7a2c3e11173b495e8d0f591a804 SHA512 e6ec2e7bcbfa72c022d99ad7b9a3e66ab92df99ef9ab9c4f4cafc49219e85471ffe761800efc0faea0f3ddeaa173b5e3c347c2f5bfd4e6a40a5b08c7f26445c5 +DIST firefox-115.14.0esr-sc.xpi 582740 BLAKE2B 4d506e0af2b00ba349135f73a0bfc0ef0a2eed61cb1e06be46d3b666dc2c08ed161321551388d78fc2ab14681f8c26279eb5d599efc2cb29d9e0748ceebc19b4 SHA512 9f8e12168fa5d4f1fec863480cb65f28c4d1361226d6a99ec563fd91b37a56786cbd7e79292eb37790ab60e72be053012c7b8e72ff40eb979dd1a714b43cb4b6 +DIST firefox-115.14.0esr-sco.xpi 505675 BLAKE2B e21c14c72ed9b70bb05ac7f77e8bcb6ac73fa1d779a743962f98757230127898386c99f93690720280e2f0bf705be673ef2860ea8afbbf7ec099052d7f0da600 SHA512 954c262c019af656a6c60a89bf2621b7771901dc7d7f384cbea5c26cf28a9ee1e6173c6a51790488a796a5d3d993c52fa6068e19523d45a15fda8a6982154fc3 +DIST firefox-115.14.0esr-si.xpi 606453 BLAKE2B 1ec602cb833076ecee3e21edbc5d5029a43aac672273418ef47bc2dc5f6c5a60657c7990f8bc32dfe28d5603ed45dbd609e101ba275dd49154c566e95ffe0563 SHA512 8ca2ad8593de93375433e793d18a020fba5c513f6f88e1f7e33093831948cc0475caf54770f7e8b4d7f65f281ecd647671976264148645b12f33690362a3880f +DIST firefox-115.14.0esr-sk.xpi 652373 BLAKE2B 6244f925342df2e072ded925fcbdbe8e5d292d9ec7c2c24f763dba0b422d20d3f0317b1c27ce1f9b2f4e1f60e8a16c16c78f4ebdb96823d5d0aabde1b14e83b9 SHA512 3cdbc1d6fe6b73092984546d2a44705663b51d52813415588d862ba6184be9ebe0013c30252d291226574ac6a54d7f11019f7def9cf94f78da6fe7c54fd42d4c +DIST firefox-115.14.0esr-sl.xpi 615213 BLAKE2B c487d2cde75669e4d56238f6e0f8f5f58da5f09d5a18bbecf83a98e81ecbe0ebf88d0804db9eed98a569bdd163472a02114cd9fd6a72a95b4cd04c2d4ddf9bbb SHA512 dd5f3a85e5b9eb1f99a7c961b64c1b0044f7b26092e850b8f87df722f059bc39ff9239d1c329c559f13e2e1ffb5f4e06c1e3cef01366d4cdd5309147b7f04915 +DIST firefox-115.14.0esr-son.xpi 413692 BLAKE2B 924f1b1045cc6f828c6874621b8bbc7e5c97d8dbdc74259001f75dce8382fba3d4fae0ca33701c0c9797d300fef24f8a23604a5664bea4a91537cdc6048dfb7f SHA512 fba3003ad36310bf0b6a6b1a3acdbbdd2b02065974b93ae8f3133bd4a98e794108abdba8f5e147232e1809b0fbad5c27237349d3b7b42841a4959e06937ae3ba +DIST firefox-115.14.0esr-sq.xpi 636142 BLAKE2B fc7506b73b48ac394a3695b6c29db36146b06e6d425561ac78dc2cb3459f74c6da5f582a24670cd87605703b6d7761866c645d50da3745ecfd901b90642d8300 SHA512 234a4cf5fee287b7f622be3f1e60db56910aca7f0d0f377644e31648c1c5d79243b476c8c3381576e23726a0cd7171b8f2269b671d0d783e8d8a545f0e7b5073 +DIST firefox-115.14.0esr-sr.xpi 633255 BLAKE2B 62b2055f127c25535f79d7f7ba0db82c7f9df3fed5282c5cc7e1aedefb754ff35f461a56679f818211fd12d023c21f51edf510e7439a081240276ca3061a5f73 SHA512 2c06419d1ba68f114f6a285e9625e33a91c9d23ae5dd3babfcbc37ea2b9e593a34cfee380c2bcb24170ffbaa2d9b58a90bf32c2b8945018ef33221b4dc544d00 +DIST firefox-115.14.0esr-sv-SE.xpi 619432 BLAKE2B cc181515d876603097a6eb7d829268e232f22e9d879b95465fc1e3354092bc183fff299fb6c5945ffa84f8adc4860ae67b0031a7f7a437739ed17cb77f5b9f9a SHA512 4b01f6950d463ef8d3355e42e3d179e7063a038b2eb7b8f0e52054c42ce583fb50cba1229800d24fd7a2c029947df358becd27ccc2ba949dc03fa46e390756e5 +DIST firefox-115.14.0esr-szl.xpi 521053 BLAKE2B 3883fc65e38785c513adbd8d5463c671e13059155b235c068f33a18f2fd160fb522cd2a2ec325a67dedbf264a8ce896369b398dd900a06ceb5452d971784ec85 SHA512 2970a5b1abcf66638c3d8771c1e6c13a3cdb0ec83f6d3ca3cd13e618017bcfaf5866e0e55fd5a148566302d09cd76fdac8705a4dd7c2b53be91f8cb8b41f152f +DIST firefox-115.14.0esr-ta.xpi 503634 BLAKE2B 97bc6b471fcb762669a596d9922b21c368f9dc8b3a819ccb742aabef9a075a1b34ceaceefb065d14c59873fdd04ceee14362b36a9c4b71a0930cfae0c8e35ac9 SHA512 d2b74b91f29280a2d1433db39d0932c5cd2adf9bf95235a123b60ab19fb32a54f4affcebc3fe4d6cee8461ff3a021f78244613162b3b1f711d288af8ecc86e1e +DIST firefox-115.14.0esr-te.xpi 556771 BLAKE2B 46c36990da3e095a10397eb84a3ddf2f452c90419b40811c8c7e37b306278837207eb4895ba713d150964ebd04598bf81c9965431c8fab8ec001500a7b79650f SHA512 5e66d0ef2ecbd086a77334b9eab704b49bcf9cd21e04753238aa11896d412688d8f5e00a0ecda84cd0f34ae587bd0ff428059f9cad67abb989da2297e00601d4 +DIST firefox-115.14.0esr-th.xpi 693414 BLAKE2B 64d4566efacc3ee77f55c427097fcbf42e4d8b4a8ade04ecfb929d508b99a5eb38c7298e58a828ba000e8c1cbeafe55fdb2e10b29518850a098124f8c9a56a40 SHA512 9bba5f9becf97b19a66c54084993a76230d2a7702e1e5919fa5b644024032e01a1122ee9d23fd3e7dda3044981390124eca68aa50f8fbf00b6976da7864472db +DIST firefox-115.14.0esr-tl.xpi 527805 BLAKE2B 4c48ca896adb310d23ddcbcfa202c3e1cd9fde154c74ea4eaf65436ac60f8c159bd61b11e40d3560f0ae4ede039b1ddc10e6d1df4f4afb11e0b41becbb05d6a2 SHA512 4e1363427d508782b2c60ffa4cfa7e405bf75511100753b071fdf04ecf3c1b457d32163f95967aa4c7ffe63256be47045acc795cc1481644926f3a3917cdd78b +DIST firefox-115.14.0esr-tr.xpi 631878 BLAKE2B 97f62d96403455f0e8fb05e7ad51fc8d7b2b3b78f505727d84f73daa405a60e4bffc95f8c805bff5fdb48b1e7784b237ccd21becf2fe148d0a1e2ae4522b8ea3 SHA512 8f6ead0554372fba5ee5827e8875084764ce1576afe61bbbf3a4244d6c7a331b39d101bfa4bc6b36570924880faf8225b8932eec11e02c9cadfac8877c76c8a8 +DIST firefox-115.14.0esr-trs.xpi 498681 BLAKE2B a0db9ec8ce8a58e70b6b2d5fe9747f94060134445d6eeb2f1d717695bc0035c52979c4e686899914df83c166e5de2a86fef96da9c94205d818009155f9cccfb1 SHA512 ade05aee24325d65028bd01a118f4d15e2392d0959848a389446ae95155cfb2c5fa75d56fffebda558d34213fb1df68cb4154898bdce3c4fa4f15910cca0b5c6 +DIST firefox-115.14.0esr-uk.xpi 707291 BLAKE2B d94689abbcecdd5b5f8a0d6beb38a6d309a9c0acee356413ae9364ca9113d1c32865928776da20bf005b7afef0cfb1da2f6084eecf25936faeaf8d9a7d8574e5 SHA512 5c4ebcac30d73d45936433fae32ecde20b5278a3dabcef0902e7d1768462480486f32d72f102fa076a92ac2365b7d297fb3b7491c7318071133685eff2712d15 +DIST firefox-115.14.0esr-ur.xpi 554822 BLAKE2B 45953adccb1abf2140cbd3eac5ee38de7e787b611fb958d97cebe8d9fd7db2a19df409f0d2442a19557558a0bda1ac134a06cdee328b5da5aebdb93432c713a1 SHA512 92adf4abb3216d3a6019a4c49f934f7a6554eb0be337d0d9017db69a80a258d8398f38395f1ac26858b54bd896058a4cc0001f3d35c80ff15159be65668039f5 +DIST firefox-115.14.0esr-uz.xpi 474694 BLAKE2B cef2e1413d5539d326ec410189cb423e332cb3da6c94243dbe665d1f855a202f2b46fe0c32f9e6acf6361f8afaedb9d361c839be7fcf3c1b7d8e54416d67c6ac SHA512 b041196f3a8c76f5709bba81c68540c3cadd06a8e3bd8d9d2f5451ab1e9984abb6845d07fdd9a9476bd79fe7d38c14738937822096a8dc96bd78ac4f25ca622c +DIST firefox-115.14.0esr-vi.xpi 654030 BLAKE2B 50c98562477a14b9335085facd70c57f5d864d33583687d16e51a18f57bd901a3a6c1bea01339a7a6c0014553a13402ae285194b681a654b7e658ea481d41217 SHA512 3262737b0bbc75cdde7a46237bdaee241510d5497ec2750da4a5f658053a8fbb60bd237de01932fb3940295bbe7019228b76791dc083232cf56c364bd00c8f38 +DIST firefox-115.14.0esr-xh.xpi 414958 BLAKE2B 1af9337e005c4e0f41417b5ef8531b5382d19eec5bd21fe04a8f2cf78b814e0cf465e1def6ed1264820bc655e8913012351490babe27f6189e136f3c14686179 SHA512 482f64c4d78028f4e8425c03471a9a52fd10f12954d3eb4a51234765c4b488b8647789fbce49360a6f7d3a7b19cc7bf4d311e327b909ea198021d067cc3e0a7f +DIST firefox-115.14.0esr-zh-CN.xpi 657110 BLAKE2B f47b3c47f1cf85113d54ae55ee271d5630aedfdf8ead93a642a183a8c2c3be6a1bfba773041f4bd85196bc0accf86c43933863719e9dbd8cb010692fef9da197 SHA512 c6d950a9f7b47a4e354ace74f3029fd81c2eb22a9fb164fe8516faf3c1d3151881580273c29a6fb3bbdab3ba440eb78a6087e5e7ceae26fc230156def218529f +DIST firefox-115.14.0esr-zh-TW.xpi 659310 BLAKE2B 2f552df1a66f7c4f05e598c55d977058fb625aa256f3e252e69a3511a34dcb294737a5ae44f5cb836e595581aa6886e5a37488fdb9cd78915eb152fdc40e9092 SHA512 263a0bf61992005d76570f13c3472fc7ea7d04dfcb3b5dc468577c6be6d95045d7d0ac743fe636650e3dcd056063ed9cd6e25983d8fd8f5078fa68c774d8dde1 +DIST firefox-115.14.0esr.source.tar.xz 507310580 BLAKE2B ffca6b7dce6ae6a470c9d5506b4236077b2151732bff811aa0bf0367be80aec5ea4918ee5dcd611b0e19a025156def3e9524a4f5d741343e9fda5a2e693e15fa SHA512 dd40c1fd3cf454dbf33a85d38e47bb0e736ed89b829643653e239f43232441f4e9f3c7876f058ff2e6f19daf2b50a8f2d13274e9a107d8a258a6067d1fc43f54 +DIST firefox-115esr-patches-12.tar.xz 50732 BLAKE2B 821ea063bd14085458967e33570bb28a1457672d2c210368507532024db25dfbb7d30d37084a2cc60a4cc34dde453669ad9046c664e7e8459a8c7fab33485068 SHA512 e80b0eb9a4efa8e6a872a875a31e384a5d3ac2f7000a3d12b03cbe2dff43baf8e3e544b7b7baadcb46ae714e3709ecbc53742b9562fcb1b1caf85b037b5ad501 DIST firefox-128-patches-05.tar.xz 19380 BLAKE2B cb3ed0eeaa1ddc1df936815c594eb3b7beab20b3560b52a63436b74a191a0e6e8c05c4d65084ae00dcb30ffde1907ad8194211717a50fe55e8e23ab306d8ce9c SHA512 17c723e120f3057de276863d367d25111578cbc5a333718f230ac3bccac178361ebd795f67b522aca199e17b8ed298d070020884ce6b5b4a0b89a60370166570 -DIST firefox-128.0-ach.xpi 463921 BLAKE2B 016138341e087f6afd53c82e0b33700c20c341491e6b12f444cc7d85aea1f0e08f4bfa7395af5cf888984f57a3fd6a41f5df39fced8267e0bd0388753a1ad994 SHA512 b67378c13ecd5e0c7e570b69c2f267232749ce71c97ad987b3e6b1215b84ff934918d5fccbdefe99dbd5a331917b8d545e9ccc8aad4aba25329231ad357a9612 -DIST firefox-128.0-af.xpi 417369 BLAKE2B 434dd6861e1b378fff90cc704a7cf63b90de4f54d6b8153ad9051beb0aae84c37686c052624b8d38f60cbf6885162142f5f2a126bcf2a238cccf63bc7194dcd5 SHA512 e3ef703a909fa12d944c80aec83c9d8ddf8c49aab18f62c2ebf6f4ad08d17e17b5494b472480a41c510e522994db0afe796259879668bb319c4fab27979e2970 -DIST firefox-128.0-an.xpi 505732 BLAKE2B d8d25160fd99b96cdf051a30ecd1e5aab3a50b22e3f2cf78fc8d3fb6d2405dfb38181aaa894e09d288fbb9f5417f0e4a70832bee1a53d27dda24928db2742933 SHA512 f1c09844a27b803f2b46ff4fd2fb27f2a4cdd6e2527b4bd8574e7a19af408d168ebea58ff830436497e3c768c3023282a24fdbdd23f96cea8bc6d7fdf626a3da -DIST firefox-128.0-ar.xpi 610516 BLAKE2B 0a121e72c5ece69b04d91d8b1aea42603bd266105d7c35dd9ab1dc27ee9523c4e6bc65f1115c6360e3594c7b76e7878ac53ab8d34791deccc3a1ee1c5321c51c SHA512 4244a286d4e4b1444a18246ef0a0c04292e91e4c8ef9b9708ab58eb0ef005902d3654e0712c8c0bffbf4b0f1504acfc2a2694ecced3bcaf544b6701cbdff1775 -DIST firefox-128.0-ast.xpi 496179 BLAKE2B 8f3cb856a27d7224f02178adf69980d37c42259a1aea3fa0879ffe703f8243e6e5b471374e57be41360149527e008db56d343aa8503a8ad23366f72c68cd0974 SHA512 0ec6e85464756c3defab9cdf19d792e4a65fbf12e98e6179fde725a1868be8813ced98c76beb8940d0b41d371b70953270c5eab05edb732d869b1f7465db75f7 -DIST firefox-128.0-az.xpi 490622 BLAKE2B cd88d8bea3e2ca3e8c14c6708c9caece0d3623ee4419e35ad7d974885da13cb9367fb88ab68cb51f43b8ebc354a1061709fd1cece931c71ba547a1773aa28499 SHA512 98a915c0c891d361c16c57b7ebb43650dfc55508ba8bd9e91189b29a3f6be4314309ee97546c8782b688250164c009a4caafd01addeb48c0a002ad8d96758b0d -DIST firefox-128.0-be.xpi 712861 BLAKE2B a80599b0d3cff27e4bccd6246bbbd7ee877995bde8a3232b3ed2def5ed593690671a5cd05bae343469eedd40747933440eb4d8e713dcbd7a3c8b04eef06987bb SHA512 9d745557d57e1cc0f2ab57f5e57c152ede1df78bce322180bbacd42996658cabde09e773b9f52e1ec4d1f69117ccebd549b1364a22de6a87f3eba5b48e9e820c -DIST firefox-128.0-bg.xpi 603668 BLAKE2B 6615e062bd290606e917bd2643ba98afc3d25e0b52be0be6378b86b48b8a9c293e0d51a3ad46c8ead0b93b0c16fb469f28e81c865a9df5e2b0371c714d21abee SHA512 83ad4d590ce2fe9f738db9ef5643a82223f4053d5bacc6dc03813cc5d92234ba9b435ded3fff8a92ca42a3ecf77a305445dc3c3a24ff3f052975d0cd88851847 -DIST firefox-128.0-bn.xpi 581366 BLAKE2B 02a8b39df8d69ad3e7c1c010d0da12fd52850b1abd02c1a2f8fcfc6fed6b0c8b221b804e513a266c64b1b8fcc870abc317d4e298486a42447ec7543964519842 SHA512 e552017471b93571b2a1589dfbe950733a8a7880b2570b1581c9b4099d382e99dc558e10b6516c13fc2354abf1a9ba612ce131437529a7257cd10e030adeba4b -DIST firefox-128.0-br.xpi 587967 BLAKE2B 681dd47acd14daf1221c1c3ad832dc17ffdcf9fc7619d31c86b319ddafd96ebd1f8b1175095c881c951291b940c74cb9a2f84bdd4ea617fe053942eba9b09e97 SHA512 476aa7e2c32338e3304aaf7848b6e25353912cc39c97ba86024bf32b89c71b0d550359bd4092aa99866dbdbb09c6fe5ea4fa6e6c4aec335db381344b203989ac -DIST firefox-128.0-bs.xpi 501822 BLAKE2B 60aaf21e9f214a4d3fd791343abd9fa309c4a47b275c18ec9c7b0b65f09add541ae16fea4f382d334671e9193cd1aca932a14d22872889dea46d27dd7b361500 SHA512 90f7540b85cdf8b094150ff73994acc738a1ae60762fc97af90600c886d80651ca12cb778d2dc2e2f3cd7c120dbb1fbf6ce37ca04168f7a4c6eb68ae9fa04f7d -DIST firefox-128.0-ca-valencia.xpi 546032 BLAKE2B 36c61ac442037376329194ad5cd0357f2d69b3b77ada0e10100d63a6532ebc1b6fa57d9121debec59d8db540f9de8cc46a47e352d6524815c957dcbbf681b417 SHA512 e1d5cde5bf3b23b864a4862134de08f0cb46195aa487f3da54ade878c11e67e6f19a521db37803fd7ce7dbaa2e56f4fa603778065ff3ae5ee78bc687f49c9c94 -DIST firefox-128.0-ca.xpi 595961 BLAKE2B cec1470d3deffb3b1f9205b1ccdf43402aeea6cc6fd24e9527a1856f3ddf58d4b58b217131359d7ddaff4e0db92b42428731d3f864429084adadefe2365bd44b SHA512 824040406afc6282be2ef89154c221852aba6ca94b485389e80faaf9c227f8c310b22981629710893a25e8b8f55787dc1362b0cabe5a8e15007bd18f984a96ec -DIST firefox-128.0-cak.xpi 592927 BLAKE2B ed66e64503f6e075074be84428c0641945efc9a585664aaa49ab01d126ada34f7839f2ffcdae5c04bc74998593b170ec5bab1ebd25fef917a2a1b22ddd1f6aa6 SHA512 8f6e7420c82e29e02d009b88e2d13c6b523d974a220da112895a22b606b7120548fd805e33b76d9d35c941b9c1525bcaf1adc685f90f7281241977567b3991e9 -DIST firefox-128.0-cs.xpi 657124 BLAKE2B 4bbc7b1964229a8117631f2450fed9a8685ceb8f69fc7b793b387c2542ad3b7f690c5e08a4abdbeb78f54c9d14226b40edffa22fef23c4f2981b33da4a027c62 SHA512 62a7d271d6ae0e09e2f61b84c5caf604261af40c552dca4b97638a365c926b6da861239e6f1d059bc27fa1f7b1af48a9376db09ea203c37a28d378de9b14b7b9 -DIST firefox-128.0-cy.xpi 622268 BLAKE2B 73fb18569ad98825dfaed13bc7b76c1bcb014bc2407bb9e5fdcef5b66b97b2ca1dbce3dd9d6d54443d563ec564c41dfe189fc7835c23442c0aea7b0a48149477 SHA512 d9e804e5bc0dbbaa0d24e5fc6f65a9eb730523c2dabae51908c033dd23d4a6a642867a12ef384de1fd9428b1c7ee2ee56c24b552753c15ccdc2d5d013959005e -DIST firefox-128.0-da.xpi 610709 BLAKE2B 5a1b63d36c88a50ee5c58cd14bc2a6d2b86140357e31062239d1d786fce188263a7d62d39da10ee2adf5d92f99b406a6f92f6282922a24245868e41c03f658f5 SHA512 a0e60cf276ec021ff76316c206a94d599b3c6b7d1cf4533a5e8cb0948db04762e641282b8c18cbe4cdc725a19b7d1e9d37c98f55bd7c47fe4b45b6271ae76ed2 -DIST firefox-128.0-de.xpi 631918 BLAKE2B f7169c465c1efe2558e2b30afe87f32e5e61d114bd3e1a12c2c2d7f2aa96fddca8e60bcb34bbc1b62ad92d292563c130af1dc063199e215071a10acb79d22f93 SHA512 b4debd554dc591657857dd7952695b49dfc2b9b190dd1c6a5dd4c3e74cebe3a36863ef5c07c1137389c22c19faa2c67d534798860877d781fdc06ab4c5dadb55 -DIST firefox-128.0-dsb.xpi 648454 BLAKE2B 6b22831d5aaa242a9ae04a90f704424a8fec239e9757b2b5f0718e84719821e946bdb70992865e9b11ef9f996848802217108ffbb475c3966152962ee0ea2f4b SHA512 8dcf4bbb8b541c1b47ce72a599de945f2bdcb358d9a87ccc48dc18a0bc0d6992d5f095b7c1821e7e0c9f9da5bbfbe3516522101c168d34f08a1be44a9d6a7581 -DIST firefox-128.0-el.xpi 730463 BLAKE2B 0f2e15a91ea01451dba9f3454d64518974bcc80aac227e7794e2739763333499739fe4afd403b7ef9c450e34db68d555f5910efaac02c34ae8b94ba9f67662cb SHA512 723d9826c76407f8e82ef8cb1fb6009f43ee3fb26976bddd30c8195b0425cc1e17bc64d0d9c4cac0ba05091c9062fe982c6ded251de2978fbaf5ed1f3b29ebe4 -DIST firefox-128.0-en-CA.xpi 581050 BLAKE2B 8f20e6923ba2ee9394dd9e53bc7c1ae1130f7434f491c91d4c46e0277fe7d47fe20f497f19dac29acb0b673be09c901ab76a140cbccb6c9d3e887c8e15e9ddec SHA512 c9daccf0344fc25483a76885e87d624406fa3e7398f8770f7460650faa9db5ed854876719f66ad254ca9aaeee97a6fc3f7537a08c33cbb0294c452077680d668 -DIST firefox-128.0-en-GB.xpi 583199 BLAKE2B 74ec322c0ec6d881e5446776bf189c4749e72d4fccbdb3af48e3efc3c3a2204a0ed862635998f83ee08ad59132b9f69a0c378d0a6642c36e7fb2828f65c7f664 SHA512 2b304fcd92652afb9627130ffff693269aeb989f4b716858a0042ec2b6d315e870d9e2e3b8892f7c1e50dafcaef2c341bb5405844f74e6f8cac0eb14fc72ffaf -DIST firefox-128.0-eo.xpi 613599 BLAKE2B b57b761f3941d317082c755babe1b37c02e1ebb6a884f2264929271a54e4788e31c47d2b0330634dba545362c535b4f8c3b6eb53dadb93ef72496ddc21703ee3 SHA512 ffd3515adff03b94d1adf6b926a908f270f88170184c799d0a15281577973d34f33a6f333daf51ef45a762c87cecc1a1b592b07311e51cbce8646d0c3ff0c774 -DIST firefox-128.0-es-AR.xpi 625743 BLAKE2B f218e24beb19cfe71042d12c7b21fb0dd6c6143f4113f658ec71fd5704fb27ad6e60e9467cf45b9053ac6ca711d86183a5b958cf3bbabc5a26b94cf3c72a4cf7 SHA512 1a792b556f9a6f4d2804605722c84eee98df5b2700dc877ffed5a4df60d00fa09293aeca863cfa9ac61e8e99e15c98576e1839fa37f02578a021cae79699f382 -DIST firefox-128.0-es-CL.xpi 625032 BLAKE2B b5fde2d84c0054f7fb90310b3b7d5dc10f97484f400eaf9767b0687775fea92882686ac0332e43dbdb7ad8a329e119033c39d0a3dafc807e45a345d4dc689e2a SHA512 f84722b92be1b26fd26aea20c9361a12a3600d0e1614a330ebedea85b4e0562f788ea474e39e0bdbb1a2d243274f760a7f4970f9e7cd80e271a9944ee5751322 -DIST firefox-128.0-es-ES.xpi 619471 BLAKE2B 0386ace5612e79918a3bc397e50b8ffa3d4d38296cbdb232afefc0e54f540fd760069c6ef9ac97770d948a2aa1949efc922ad8c7f7b6adc4cf488afc8980fbc8 SHA512 2b00a5145cfc0785d63dad9ca34a5e46363b93d780b2a22cab1b884cc3b097ecd1a53572bf09b27706cb57a57174608a1bf67a907850a4efbd68c6aaeed5439e -DIST firefox-128.0-es-MX.xpi 595787 BLAKE2B eb08bd8898552977a2a2ca4c9c988eba81838dbf3dda36de97a249d12e9d4cd590268d49379232dadf74e31ccadc410a25941ffc5117568802cea0e00e37f28c SHA512 4424c8af301ccda624b2e7d7bece4d2a4e4f7527d37df16fbad12eb8404b4029f452d203e2c83a886738111b26493bb711c696ec9deaf8856b337d59af751aa5 -DIST firefox-128.0-et.xpi 539386 BLAKE2B 0cfc855d72fefd52b4512db4c31cffab2d1dd0fdab14d09fbd18078e053eeaabff8066449319134d90557ab06f9091eca4b737780d16753c9b92572e7f361611 SHA512 7abf688f471efdfee82b542a65714dafe454c9c16f4b870f575f7bd84fd1be28c93b03d613868ac839cc167162a9eb84cca2a92e439a0b02c172b0c047002a14 -DIST firefox-128.0-eu.xpi 596447 BLAKE2B 934c74c1ba8778f96569e3518083acf7ae61aa5d4a12906d8e35ae0f8ba18022707816d0b504c8278398b3742edc0f566a280095a2fc74f07a10fc8d68214810 SHA512 74a7f72fe904b94f61960f3a5cc949c28fb504c7de2163caab1950a3c90ef2834a416f04f4d00e3b58ef11a9cd0fd3aba0b89f9f06cda24a4b81a45a3ad0b87d -DIST firefox-128.0-fa.xpi 589848 BLAKE2B be6ee30128b376cc4713abdf10dd8ca699f5968ba56a886be73b4f57633427cad50282006675c5962623caba8637668fb2253adbacb3e03199ae156869c18117 SHA512 cd6863a691e3c8a6fb6bf82a7c0b6deb60d6ed4ff921e0eef256008162533b932dfde2bba479f00061f8d1d98fc065a6fbfcf9b99a06ca1ff0736063cb7aabb1 -DIST firefox-128.0-ff.xpi 475894 BLAKE2B 0858593e5bab9b6e5508ba2444704bafa754c60ee352d25042498db72f51bc48a8b6bbb66b9f9f58d362030cc1c83342cd3f03e2c0764c432aac5c95117bfcef SHA512 f4e3249bc16c5d07958fbdde87b1bbfa244e61f58bfbf0db6c74693ffe01f9046a413667850b28fe5e632e5146b153625d25e5bc3486fe0da1d15fbc458b882e -DIST firefox-128.0-fi.xpi 605631 BLAKE2B 451255bb1fdc8c44eb7745b6279ba1ce303840043a8a16feb63ebd2f1d604ddb85192cf00d7ad4e1ca6d8bdea9a226614d85e392d83c9656bda544812f01ac83 SHA512 009df840b731e5bc4e9281153384451fa9e0fda32738324fa29355634587c1c3501d857ab40df6d13767dbd5156e055ee76c0877769aa214a8fd898e7eb4d7c4 -DIST firefox-128.0-fr.xpi 639018 BLAKE2B e0cc4d4b97a158c867838769ef88e74372a97720141ea9e1a9f6e525bb7337a104cf071b73b5c88d4b2d81a87a4e96f163f461fd6e1bfacc8101104c17dbccaa SHA512 c2ddbfe62b5326e4a9742d0c21f82015a444b4135336f99477721596c6b53a15f7cef35622e454cf3df42dba07b4a90c6391eaab09d3888e0914c6fc9ea56111 -DIST firefox-128.0-fur.xpi 631588 BLAKE2B dd16c24a1990b5a3baccee97a40e3f107f0498ee1dea49ae6af5b60d6722fd35f208033e68ad4a428950bcc6740d43e38f762e74612ad7d5146222e7ebd01ef2 SHA512 c867baa9ada38dee47023784627a4f52294105555fcb620c78540f4e296241bd7a4d2b0af554d7dd9af016cc0718e5787e9dc76a6cce7cbf827941c86db37a21 -DIST firefox-128.0-fy-NL.xpi 621390 BLAKE2B 148b842ddaac3c71f1cf6276df11e41b3adc66692a640901abb73b9936a2f9d7267df3e0d0331cca6552db93f61745574da42b5ca64ac42f1fbe9104707b5fc2 SHA512 de7aeb47e3bbb574d9dcc9946058efe0bc950ce79512fbfc1a9f4ddd8ed9918fdaa3a49c8ce15ab4618629ec2174e276e11b7caa12d19119389eb3019d167e24 -DIST firefox-128.0-ga-IE.xpi 470833 BLAKE2B d3bbcf15bcddfa692bbf4eba085a81ad4ed91fcea53e644c076c2ea79e96723447a0966d86865c57827024b88bc3d990d6e19966d277701d69015f565b57740e SHA512 5b5843ba31342bc659ecbacf4694b064ae90511b780c194d533701b34859d672cdd535796a361dbc3fa395a60947c179aafee950002cb340dc6a92cca9026941 -DIST firefox-128.0-gd.xpi 596427 BLAKE2B b3603e7147e3a021053f0d9d07d77122264dc4b296f478609cefd5644ebb00e224da8ad328e342723add321c344f1e7bafcde0c43e1775d40d7274396fab6f01 SHA512 5c033afe75120fe5bf4e0ab039c1c2deda81eeb5473bb7366ab236ab676f380452becffaa612c093ea1950e150031f9b7dfb7ef268cd12a7a9986ed967e5ce92 -DIST firefox-128.0-gl.xpi 603933 BLAKE2B 1766c5b75d04875e355e626930defdddd2b556fa425bef3c3072922199090385b8512819dc1e51da7180e459fadce338f48c1daeb7a3d41ad68c6cef1ec2f0a7 SHA512 d3474013cc3cf4b1df6d4a610fedb00c9cb866f463b0293c48f916950cbd50910f363c710c825835a6969ee21d8342db0a83a8047b646aac0542b78f618b8378 -DIST firefox-128.0-gn.xpi 636448 BLAKE2B 6ca741bf7c0a6b47f0ebf65a603ea8709da6fd3d26c0e3b6e09f5eeff330b2f11eeea67965d5f089a1701cdb7f6eac3b7d4202f1f9974f94f52a08af7454fb1c SHA512 a9eea16028f9389a4850bf525cc782c8dbe20785781ebb9d7a07c8b10274ac4bc1e87412d2abfde95bc6ff57ea5a0cc72fb8cb2ba14ae06d154486851a36d1f8 -DIST firefox-128.0-gu-IN.xpi 527179 BLAKE2B 67c2c09cd7b3c714404ed31708aaf04fcdb3ee12274b003aece748973751306064c00e25702a2180385efd69167a67a98a53d54f3d3b6db358946b2054a8ddb4 SHA512 25aa0dcf80c78aaa82c6d7d2d7462565ab51376bcf6852078757fe69e5472dbf0d0440d56192a042323c3d06bf9a0f7af0c49d24b0a0a2a6b2d5af25087f8a33 -DIST firefox-128.0-he.xpi 629896 BLAKE2B 87677a10c429ed51a2c7f4dec54189a8c323f7333730ee65e83f8c0afa4b47034f06057cf32902c4734c5ecd62ab5bf9ea4a3a9147a3043fc6845358b13e622c SHA512 2648eb80a505a9e11cbab14c978dfcf74fe80479e45d161ca2660dc60b16d239d27688021fb90026965f3ede05295eb0b4fbf8fc2465c85267cbd9f4e7596003 -DIST firefox-128.0-hi-IN.xpi 566639 BLAKE2B 5664464e903e7ca880bd466f30c682c5e32dcee3c0ae28154c63e9457fc406b0ff84d5397ed96d131a9945de930a1168f3f1cca38112c0406dc7dd26c57ceade SHA512 bfa5e59944ebd74346c21807ffbcd2e0ac6a28efde6f6ba3d2cc34f136c034d23f2cc0f1665dd3c7e12221a84f61182b59fd3d4fb67bc6e0e7f54f27c7877565 -DIST firefox-128.0-hr.xpi 556613 BLAKE2B e7ce108af8b57c249bd16a705157297eb4b6c0a08b9af3acf2813e7d6123e8573294e0d3b69a733008334fda53c57f13bb57a5732548e586f5c5864a1051ed05 SHA512 a8af34fe1f4999562751ad9253c5e36c88dc337a115e14f69957258ed22757127acaa6f2cf30d34406554852cc962066bab60c241384d254c65e7f781a684463 -DIST firefox-128.0-hsb.xpi 644493 BLAKE2B 1af31e45908d1eaf7a6864c876f090bb202a2b61372c18ee33b2445984724454d8cf13d32934866a94a09253459f28e02da774868b7d4cebac319f0548255956 SHA512 e11d7abbe73ac59992746aa230ac47868b7da8de3b0a7e3ba29bc7a589c97720b1e1012e47d24b91c215e21dda80282bc28d6fbe5cf7a37ea66e079b753db016 -DIST firefox-128.0-hu.xpi 647705 BLAKE2B 1aaa5da0508e8d0883cd53e58cb5ad53dc137d4dc82a1eb84f30ed875294b64f0c53a4cc461e14f9940e493c9b9a89fe049220b85734cfa7e565bd0294fd3631 SHA512 d26aa2dc2688fdfae43f9fd706ee762c22c69d28b96b90c783ae70ba7209bcfe354ca21a9502c54b1153bcce3b7a4f2bdb125be3555ad56b1c1514ed7b22e66f -DIST firefox-128.0-hy-AM.xpi 651430 BLAKE2B 22dab366d5e9d1d953c4cbe9e6732da640994130d4c4ac1b11d651d294528dc194e5e34867d0e637623ba9cd88c9bb912bbfbcd2c960cc52acedbbedecc336da SHA512 96a30fb4d88fdcc9ad93df1a99213f0651aa194ee50b02abf339dd062fb57de8490c3646104d5e7d877ab581e6475bf5beb36a37f1723e8a53bec91c5ce255c7 -DIST firefox-128.0-ia.xpi 608974 BLAKE2B b550056e980d29436b3cdc62caf29cdc827255e6bb3d46af683bd2ad334688781dbbe9a853dab9e00f9b6a538ecf215edd25646daf00fdf8ee0e394df0653f68 SHA512 e05eaf1681ddb23989c039e6e01b370022937babc2aa59b7f6c59901cf22f91e2fe99dc19579b2a8f27485712586b2f73ae9078108ad5a09095be4f7a4eba49e -DIST firefox-128.0-id.xpi 580043 BLAKE2B 03e0b9a6845ba89d4149bf9ad35fbf1067c49a1c22e95085c23e537bca73174cf78564c056bb458c8fad66b752a73252ccbab9fab5f8a6e79f3925b2729c4f82 SHA512 9b517ab3ef018452e4df9ef4547bd3e4aaff194ff452bd32f3b0f42d2ccd1af6963e93603c82b452055abbbe54e85276d0c664dcedbbbe26090d4fca674cba9d -DIST firefox-128.0-is.xpi 615187 BLAKE2B 327ad1c06a9c327b676683d6d12e509f5d10bd0a06bec3337b3a0ec7ce907e4938e8bfaa4459be3a061e888672fdd740aa39c9c06620d651694bf829ce18d201 SHA512 2b84332c4d8b44b94dd8ca6c834f85efceffcbc4a84cc227e77a2df4ac9652396c577402240e8e0ae295637a05a4dbda2631a73fedcb43b9d607948292fbc40c -DIST firefox-128.0-it.xpi 565256 BLAKE2B 931784ba2193258a3b50a62d7f6bea4655c8d4d1edd2272706fb1a1a7faff133047fb9dadee4b204f98d040b25069c378dd47ec0e6bfba11661301ff14993d2a SHA512 8c6f1656d0f5a7df709d6c16cf830e0c4b00ced4faa4ef964fc6a13017c2a0c660f5ede974f278197635ac0904d520ddc95864553850846432793070320e40a4 -DIST firefox-128.0-ja.xpi 675101 BLAKE2B 464a570817d4ec5cd5f2177350c8421aaa604fa80122877cc1f53da6875191b7f5b2daf495366af03a3efa440aff0391e822d14f573c1c7fc40c615c50b05efe SHA512 24afd1abdfa5e867b86feabb45d892b6eba306588d92055808b80e9e8e52a25b8521f2f6a0e2517f1dda1cf1846c346dba26e7b9beaf1971dfb23ded3e2b3ef4 -DIST firefox-128.0-ka.xpi 660538 BLAKE2B 831345cef7849f5bc87f67127e1635a9e1db1d527f446db4d5c53316f180af5350cb968a35a312da82ebc7a0b41618137435d3c103cd21ddb9074d2ca628e4ab SHA512 3b6acb3a0c94ca52ec498364d85cae5b0f7b9f42278db188ed9c8823aed01ad86f74cfe1629f02337853371a916503590f95c0648e6b7f6beb5831fdf0ead4b5 -DIST firefox-128.0-kab.xpi 607380 BLAKE2B 5e7c182e4d581660e2ce5ce27160e8e7bb49347e829ff4c673051fb37f1fbe459cb4024326029de7dce68f4776071c5da1e4aaa31f35d1bbab2cc8800a4c53bb SHA512 e4feebe26efb0426a8f9ba4d80b5d3cd8d221eca9f32003d125d1d966d38639953ac51638375ff855a0c5441410220b63fca7bd624c14390bb749a43d185c250 -DIST firefox-128.0-kk.xpi 705161 BLAKE2B 26c218d8e3656e79bc528319fc075b97bc8f1bfe4526410a70d6ef5010f5eb2088e972a17e125ce23efb733ea381399bfaf2c5c7cf8fbe9946e37ea53c518a53 SHA512 ba6205e1f1f2c1e3ab6d9e0b059634d4bbd0fbb97091faa357a2174b176f4500624034cffc1da35f643f08aca8c982496c255fed37703a2689f5b1b113535259 -DIST firefox-128.0-km.xpi 525722 BLAKE2B dba1383d444e847ff1fce3c6a5e614799176f7bde0368f3fce9d5a8de4ffd9f1b9047340ee559aafb218d83a2af61b2467257c8bab10a847722481cf90a55ba0 SHA512 529b887dff551c687166794a575fa55074663d1ab029c10b429cbfe4e98350f8bc8990b2f7d525936940ea0bf6a2ec26a3b7df3e11ccaadc587c51b4e73c2c1a -DIST firefox-128.0-kn.xpi 491095 BLAKE2B 356fdd4be841774eb8e97d92ce5ee293592bc86d54d88f3acfe4e1f91be491bf5751787c2490b71a193152e9025bc0cabd00ba44a3b52fbc7af7d1d322191ef8 SHA512 1988c5cc58726533dc54fd2db5959f1abfadd36ebfcf2fb92fae5c00401f46d96b8e0afac1997ecb2db8fa50ba685cb4e74d69478068a6bf3151963a1197afe8 -DIST firefox-128.0-ko.xpi 659215 BLAKE2B e654e50b94ea63ba518ec089906582e7aca1d8a75e696627f9e69cb78ef3f5f1fc24155d58984c4266ac0f21bcfeb763b796db3bf65e3e51b7fbede20e3c0e44 SHA512 a7d2729d973ef69d253431ee2f08e889f8a35c3b8c550e1944eab06ab2ede4f222de983f385184a4f6fbda3310a50ff1c48f3f2c4c99a3e5d3850614e6d0e425 -DIST firefox-128.0-lij.xpi 483940 BLAKE2B 2c66f9e5c397b619ea3d0128e64aedba7df802e569370ee688a31f7b706fd73e73af91c74e0c6b4366b99a781377d3cf9add7f467ed9e5e177a99f907b30f036 SHA512 46511fea4ced3315fc26b41dd55beacdc480bb771d7f63d9a307ed8574a943fbd49a18bd038a39f32f167ff223b0daecbbc568e05ceb23f838609ed351f6da07 -DIST firefox-128.0-lt.xpi 572515 BLAKE2B 3b4dfa0fb0928cc08776fa3096f8ae16b8c72771bd636b9117cc53d571c0fb2973cb5ec98c6b1ed16866fd2a8102d5937bacb73cb0f4413048c21f2116d44397 SHA512 42b31e2a95b5c6a0e38bd9916bb7941eabb32ffaa2651aa13df4276bc36f3176b3f656709484e72f975dabb1dfaf2643d5a1475eef634bcfc2e345ae489a7109 -DIST firefox-128.0-lv.xpi 573655 BLAKE2B a3e25cfd6ab234ef9561220d532e4bd69aadb0cdbebc63144b8a7cfa92265c3abe9712ece40032cceddb4a917eda8b2cbb1574471d7aa0c752c4f15c7fe7328f SHA512 12aa8518c317b124a231423cd0360a7502a55676db931532945187bb6f580887e86101b62a9ec18e21afcf404ab4d5a71b7320a4463684ca52dd5e6d6058c178 -DIST firefox-128.0-mk.xpi 493700 BLAKE2B 9fbcc70dd96de86ba285db4ea487d04e8f30be0126d12193fc0b47e8620a37adb7c89439523c2ba2dbdf091a4be57295d34aab19a8343da388075a482a0cee0a SHA512 ece5ea80a73f3662fb9119abefbfea0527ad5d4d989da36380f99e01d138eb1a1d1b3858588b807a5e866e51596e1face331c486b42234f3439456e7f62e0443 -DIST firefox-128.0-mr.xpi 531935 BLAKE2B 26f54771d851058a5d8ff39ca2d49f26e5829909a5360b183896ae41cf242efff21b4e316b370543d0d4bfab2c2ab82c723f9383b037186cd4f6d15be4be0894 SHA512 397cedbf6abbe8bfb755e29a0c32a58ddd6ad0fbc352be179b4160b7301ee1d4f52e0a129ac5baf061543f79d06042360b92b29edfa96f4cd64ed75b61c65341 -DIST firefox-128.0-ms.xpi 449580 BLAKE2B a7310ce8c170f512a922dec9b8aa416f4257ef56cbf35e3970faf9e427615506ed5fcba8a9a207ed3143193931132cdc9a5d98b9eb14b72013ec8c2133287b90 SHA512 6979122e608ae629fb95b215c86137d7f428a9c0e2fdfe279bd0fe51e6e37646c73c59abf78e0c6723495abbb55e1fe3bc088b97e62ad18a22a3122a51e21fc5 -DIST firefox-128.0-my.xpi 518482 BLAKE2B 18c6aec8b327b1b1c4fec03a6a773b55a0eb32016e625bc61d616c48feb9044a950e0aa6041e98d44c7464708e7fca45f5f55d83e0e3a6c7e3636848b93c676d SHA512 1fc374db949908f877170a9933358a854fef3df6e77b6acf5d1d9cfb398a69874ae3823962f88c47c92813de2a95311960a350abb8c11f32922a4570da3424fc -DIST firefox-128.0-nb-NO.xpi 606490 BLAKE2B 08aada502a1fa02fb2d97186712b79ef1ae13ef8996f43b04be5c6823ce85d878000fe294d40dfcead9f4f116bb1827c02003986d965c0c5bb5f72a700349e42 SHA512 328d53604251ac54b252c38b3242735467704c75c82809a8acfaeeb5f6e6977b3211a24ab0af6e93f2f71e0043b54e7bcc20b000d94ad29416191827c04f694b -DIST firefox-128.0-ne-NP.xpi 510771 BLAKE2B c61b0f643f321646f8ce7693914402bb0c68572fa1a55d3d918d6dffae3873df6f348f6782609d385ae84bff47e210112f1d330f8b87db3a234e6bec6125fe73 SHA512 89e2e34aa8441a8455304fd909308d901f467bd7b54aa297ae511ca0102bae41f6608e3336b099f4a2a0f2d9e54e9bee76e30d2eebfa5f5f7f1e8303f0956954 -DIST firefox-128.0-nl.xpi 615102 BLAKE2B 060719c32c1cc6abb3d374ef2485257f948357236248125a8c7e53718ab233c60e7beeb7a85d49260f7dab329e8daab7256bc78b3a54aa8fb87db6473cfc0e5a SHA512 caa0828667e8a43cd3987f31ba137545640f7ab714d39fe94cecae4369d180158246db7f91f463a1b6eb8ce79ef1d02a42db4590f8afbfb4ed362cd313e5e464 -DIST firefox-128.0-nn-NO.xpi 608951 BLAKE2B 4a1cff01fe60efeb1165ec2da737c1e21956a4bc5160086891922f208614ed1921bf3148d2ec418863a9f5bb484962389155a48fc0418d0ac9bf4dd5231d1bdd SHA512 cda0d637fbe71760fcf73c460defeed0072c1d5b2c4e531bf5d42940d7491bfd1da7cb5c889e859425a50e48abc5a965d8aa6391d8cc35fa08956f17fcae993c -DIST firefox-128.0-oc.xpi 611284 BLAKE2B 85c6e71264b071d1441b23db0519dfaa3720c2e6853f21faabbb25aef9e7d312aebb33cd42487bc455b5fba91e73d157e6bf34f622439c724a14c0053061d692 SHA512 7f808489d938ee33e76c5bb573247c500ac63f9bc5ebc400128a19907e549802a0999fdbb8116e4ebb3445d32c34ed2312413726cac461fe898e1bd7e733f1d9 -DIST firefox-128.0-pa-IN.xpi 690605 BLAKE2B 8f5b22904d07e1664330f61bc1bab04c5159234afd576c4dea46343f7d2e2ec8dc9775aad5abd907d9710aa7d8f3a39545f6d84df3656274ac03b42cd437654b SHA512 e6ef3c55b34921fd14c82da2f1aadf26e7a8521a617cb6af8ad2217107b8402afe95de8d70c1832f8f3ca6bdab290f1ed60cc174c2717f941c90bc72bc41dbc1 -DIST firefox-128.0-pl.xpi 635626 BLAKE2B b1ce0e6101a6347df61181200dfda9c64401e5768b6d38644a344535aef156aad3be3eaa3b0c805383891d8cabb83b32126e5f66f45972fb7112da5dbbfb137f SHA512 5d81ece8da283acca3616c5f6bce8e6b4b3b08ae3d588072fbf4a7335b030e941aaf66d62654a6fbeae36d9fa1ffc04918f816b82d3ed71e1191cfc2d4b4942d -DIST firefox-128.0-pt-BR.xpi 619824 BLAKE2B f4c17660ac81962ef908182d784addc1f592db337409dfc6dc645c1f5c7c7e9c505ce077838bfb4315a1bc249c3404983de256ef2449caaef73515fbc2f13ece SHA512 a1b8d0f7b81a2323db19098d2f9626ef4c61930deab6ea105d0f66829f7b058cd0e595c3097756779df4ee150100ca9a4d06e2274edc203973294b1ce7238359 -DIST firefox-128.0-pt-PT.xpi 626034 BLAKE2B cd2d7f68b58ebb295d2b7b25729e9c589871b0ad80f10e55d99d260c3e64171ed2be33095a3565e854ffa0ac7e220505058f902a6909b0a8324173803df88a0d SHA512 1f30508b45a5cfeb5383a069c35cd01cfa2339858eb269cab085a4e19532681511c14b81fcdcf1c2e0b80420dbb18ea2ad235aca46d53423d162086b3916f2eb -DIST firefox-128.0-rm.xpi 615679 BLAKE2B d9857a9a9b9efdd1d1bce1c5d9eeb456d5cb36cf66472362ffdef5af4fc340adfef5f998fcdfa9010a1c494a591560557eb1a65e3829125375c78c21c40f97e3 SHA512 c55632e4079187baff1dd985f98074a17639672959724495582a33d7b545cd3d1f4039022c35d09815a38a62fdf8d1243c08cc0d9b60601f80a6e6a9ea1d4cb2 -DIST firefox-128.0-ro.xpi 549650 BLAKE2B 3cf57fbe58a1f8675b7b04ad4675a499b9d0cb05bd283b2e31767684bdc8f709e81618b53afbdb1fb9400dbcca8a9f2c2eaa165eac8147bea35f9ad04b223fad SHA512 eef8bed22d6f7c43e7e613e019d1c61f045dffcacf78ee80a12b7976227c46778eb8814e3a89c2a9a4be9ba355f6aeba1c2d389f5ca0dfdf33129427b43f3590 -DIST firefox-128.0-ru.xpi 717691 BLAKE2B ed73f89b7d576d73a1a28e714b40d313a3810315afdeaad90f6ca419a6b7e1508d618bc44fbc945c66c7721d632b427490f1e7aa56d7bb6ee5697ef453be1268 SHA512 189e6e0af8fbe921599409e7dee9a61cc21d998d4776fa7b73f145723244b4598418a35d62f18b2c543d38ec6f372365d64fc73a36fa339264a25a0fcc4212c0 -DIST firefox-128.0-sc.xpi 584914 BLAKE2B 4a878328ba2f78cf983b150ac0fd65c9a8da2d668414c5ca16304b646cb53ae333828a066bfcaee22788dd49b05f205acc7f9255de9cd59fa46912f41f6477eb SHA512 cf1e629ab935d1262f2d18becd0214fdbb33db0541e5a8bfabd5a7d8b41b387201d38fe8770835d62ce04200bb67f5572d928c7bc11e5d057ffe9d181417ae0f -DIST firefox-128.0-sco.xpi 511148 BLAKE2B 20306a0c5cd573797a5978817a9724e30983f4c5d0bd2a5cd89ce25a5675ac75957d00f314fad4bddfae6218d5591e29c0b866a87a1fb9dac71c4e53b28e72c9 SHA512 33ba113d7300ba9308c3dae216a9544083f22aa754997025151ad560083b3832b77b243f912ea9b069d7ee0747305df57294b07affb047dc90319132bb34c67d -DIST firefox-128.0-si.xpi 606047 BLAKE2B b54752f3cd674e9b7761a94c81ba4b59157a13c07822f5272e94eab58763d734db6c598804e237ad9ff1311e06e85bd96447960f8135f97e03a0c9e5469bff4a SHA512 e6ec86b16c9ee4da0993abbe5a7e9bda90baa76aa539e3b1318cce433896381dddf9d874a77f800bd93cc083cca422e3ae4672b17100b1ffabc9c52cea178149 -DIST firefox-128.0-sk.xpi 649995 BLAKE2B 363f8507927cb7f2372fa51b4391030bea837df26bfbd0265daaa26196e7b85e01cda39d039f1832736e3d52775a736805d04792a16f430bf326cf99534702eb SHA512 90bb5724c474e33513f4047f3a478f2f74cfe6f8f5a565edf40bad5a4e4e227255401c10e670a2db134950f824ac573dfc927bfe7121321b8ca5807571ecb066 -DIST firefox-128.0-skr.xpi 707175 BLAKE2B 94deb377fd0ccb676865c8a72c44fac04af6a8ed1030ff3328ae69aa95a548e346801f7f8467bffccc3815dca162197023b689a021fe92e10bc4d009befa4daa SHA512 972635c3ab85f4a93c1cc6bedc9bf1d4c4aa6650c80b5d74fea59efe13df272bfffe7a24bd247ec15d46373d1cf7d95056c68a5568b37aafa31d97e98ba31b75 -DIST firefox-128.0-sl.xpi 615568 BLAKE2B 9284277640e177d7f209b82e4b00d733dca4a75618548c0144458f2b072720e270958bcc81203e9be678d14bca203618a8ad1fb90661b3d2d2b10d55412c7df7 SHA512 123648ba73f740d65535d93bb2ee8c242bc657936338ce65a6db7743c595570f5b96aa95b52518134922527ccc7d778a1239706d7086d0ac26328b48c61fdda3 -DIST firefox-128.0-son.xpi 416260 BLAKE2B 92595a58ae205d1619181fae205b3a7d9f661c6c6564000198c9399a9aa4103c4e5090e7a05d644eb9b5cf2db7db4d6417fdec3f56bb6657992ecb0a89cd6cf9 SHA512 02e64b150e475b765bd4da5045e487567ade0d9ad3efbf8ca953a6d575dfd2154d3889b3b3252ac6c016b3be977ae05d617c4342b51ea5d0fe90014d7dfeea53 -DIST firefox-128.0-sq.xpi 635525 BLAKE2B 4e4bac7617e8bba1906be9f056ea3fddf1dcf1dbde11074c9202de30b41282f1415ab3b55709ab1499d67f38ad26be78d165638d07779268f8dcb129a7ded324 SHA512 8a6e25535991f9c2db6011f22af25c7ebcc721b9b531bccfc87fadce54cfa60d8945a1b707f14d0cd11679089558ca87b37e97d8d167f14fbf4d8127d674d071 -DIST firefox-128.0-sr.xpi 639179 BLAKE2B 7afc26f9af6e028a2199e9092a1291c93a327baa278ac547be39e82135de55ea001c07073026a2c2153e65b11991c355e649b66271de100b156bf78bb14580f6 SHA512 5094e5db62d2a022c7781166168162ec260cc31963038b7a07f35462c96c8f44b177870b94da6116536e36c0628e96286a011a528e2f43d2d1a0c41ce4f4b0d0 -DIST firefox-128.0-sv-SE.xpi 616852 BLAKE2B 5f82acfbf78ecbe2df0492b6a741334207e7d950050bc7c5faa0ce78579eeb3fda3108cd804eaca706282b8aa21ad0f31e36685938633e3f395585a5d056fd87 SHA512 161366bfe1f335237c88617c5889db6d1587f3c24196001249787740657acc52f0ffa7aa128bb509a4802071235ebc2da2ce0acb005aeae57c9895457fa748a1 -DIST firefox-128.0-szl.xpi 526232 BLAKE2B d79a0c3777905a6a5ce7cca637ebab49ac307bc94e72cc6b1df32b672b21a24cc26b46db591d9ef3b6330741b486e7bdaa4e5541c1fbedf2f2e3cb29349fd328 SHA512 85a4072de10412a1e13bed240a6cbd9f3a037cf4ebf70a28719051354f3c0dc6a6f254223a424f5af5f8af6bd5e0baebfa3e8fe95f0750cd6381c1e6ab43a614 -DIST firefox-128.0-ta.xpi 507358 BLAKE2B ce2b278b49ec31e34e508f944ae8e6fb94e17199cdc5bd2add5d02760db26ff63e5370dcfa15649b3b3cae74b624d039dd68effce96b67274cb080971456b996 SHA512 5e4cdd408d64ae585ca7296c2c4e7f759e322b81913cefb453f700eb659492997b24f6ba7be7347475c3a14a0a9e1ecc2fe19c808dad0d57682465f4423ef77b -DIST firefox-128.0-te.xpi 560876 BLAKE2B dbfa13be40842db1e208021befd460528f6d95554d92b1e9c94d1cac7bef3546c786225d751c26868438638fbf846d871b2173ecbf830464b941f511cab855fa SHA512 178c4bd996b14f483881f678fc22b12c6064918e26ac4c24401435cbf454d2523d1ed15e112f723490586aede99fb78728a089d428ef5fd60d768a883d88307f -DIST firefox-128.0-th.xpi 693405 BLAKE2B 79de5f26ce012239267fd7900089a5b424eaab2dae31a383ceb0ad8a62907288b0af129e8bb93559118c21f01feac4f2901056303a971e6f32f5ff4b51d40cdd SHA512 fa5e1e4c0ebcc564c5810530b7959b5e8a887b2de252d641e73cd7bd2300972cd78b4212ad267b85b3de52cc018ad35d2d828007f8b4859c33fd33ff4649c278 -DIST firefox-128.0-tl.xpi 534025 BLAKE2B 6aa35320e39dbccf14f863832185d8a1db19a7f5e7c0dc8e86d4100dc314b2d29a9113697c1a6ab7e073523054e85c68e1989c8a20e0f3cc153c01bef603a2d9 SHA512 1bd64d2513d54794d6d41aa194fd88feb075fe651100bdbb01be5ff6172ab349c00c3d15b5efd4345c6525e648a66336e5dadbf4d0a86164c3998b7f1bc572cb -DIST firefox-128.0-tr.xpi 630012 BLAKE2B 92522c3b5ddaf027da6ba32f84cb3e80bd23cccd94ef7c78b8aa0f88eebe88ff3a4791e772f76c16b62967a9cea46da341b3b2ac37f870e92bdf3fdd56fe5a46 SHA512 47355ff3d82e19db9ae20f16eb1630a2ec255b0219b569606cd6a3e5053ef5aa6ae7a484f70707d25d89f99a5fe5025e25176189605f1e90efc1fb6e6b7619db -DIST firefox-128.0-trs.xpi 503824 BLAKE2B df7e070b45c41c069d76a3d7a1f67f0d034d39777f61a54fe8127f723a603c99c0addf69bf52edf1a3824b54b72dd3c5b31a4ae2c16a476a5fe2f979f02d8032 SHA512 534114666bb1a131ef4ff51f1a114156c09924cf7f8560f278c4783a45728f0df730e4b19f01ccaaed4c6453ef757608975d695f17ea3ed9e6bfe43155a39236 -DIST firefox-128.0-uk.xpi 707195 BLAKE2B 4071217517c8cf7c51b584b51936515f249fd383fad6132b9637c296fe911ff7dc853700cc49b266e34d5305ed7052b9908c5250c50869a9b3a2493a9f90fe20 SHA512 886c42192240ffc7dd8294bf912de1e56ea82e17e5e206b1f521c484557d42f9f2a3958ffcb114ceebe26126d045bc4bb7cd52c0c076e83a8a07394c0e29cb69 -DIST firefox-128.0-ur.xpi 560339 BLAKE2B 63f996dff257c66e0f35887984df64771426653eda49352696f379090b3365cf737e6a4e8766c4234de8f0921caa481a69745d2e94f167e35c1b7a7e6097abc7 SHA512 9f65ffbdf069de89f32928812f311e7eaf91675ad40765fcc0b88a4bfca86aa9242c7207b49874cbdb39fe31e8f6b110af2af176ea649df3b5fac07538a75723 -DIST firefox-128.0-uz.xpi 478619 BLAKE2B 03ce6a56af48dae306d7cdc8c8a34a57a2a436207503c5c94da4c38359630d56356b4c52d59b3518d4efed2bbc816fb34093321e0b9bd7ee00c9172e8cab4464 SHA512 e2a7d96d73664fd85acafe7d008cfa22d283e2742dd98f5e34f00129c00b2cf3f3a7240bbf0b01ecfb5fa49a0055d8d4173d6e8eb929e4d24bf764b5f1fb9202 -DIST firefox-128.0-vi.xpi 653927 BLAKE2B f2f804cb08bc000c1c1975c5b641b068a8677f7ab51b707d877f1333766af927584afdcc5a3f817a3d72a4b9f486d96bf75a4cdfc430e53dc19dcd8819720221 SHA512 16c58254dee12ce09b4aa603614053b08b50e7eae55cabc9709828de233d2393a84ff1f7daed39f58d17f570337caf3acc3936bab76f83b1fad49f3bcdb4befc -DIST firefox-128.0-xh.xpi 417021 BLAKE2B 50961db41b3ea9a1cac9f5ca60ff7c69c262b7f7f416c63393ded69b3916cb57fa1d2ae2fb6cba03ba8d30857bc2c596c6d6c2d88f7b56cbad49f3ef353a70af SHA512 fdf7e9bb3b76842c4c135cf2d82ccd2dd744967fdb7d9202474e69e1c6f4e955d0ee234da2f63ebc706fa22a7de363655477b406e9cd9524e33a7907f680c9e1 -DIST firefox-128.0-zh-CN.xpi 654723 BLAKE2B 55a9f29335f9d75f71b01aef5b13afd7bc4d74d334a85d97c89212d8e127c9732f494afa39cedcab6efecf59997c967e593478ffd48e6dfb25e2aa6ecb0fcf58 SHA512 a9f11798976e69b2faf44dfd2bcbd1294b0c771f9673ba168c2e0a351a1df346c3c74670fae9ed729cc37f1dc4c19df92b20e977da4d60a8a016383ff9192d32 -DIST firefox-128.0-zh-TW.xpi 656867 BLAKE2B a0a83d940a8a78a8436f5b708d4443ed448d0b676bd6c52901d58c557d28c4cd17c54bbfdc8fbed8cd5b8f522da646ab80927bcbf516ac572db0c1a53472ee07 SHA512 1617aa2937547da420fa95c40cef125898967912c2d1030488ffb4ec953432df75cacd2af7a6907684491ee3f52e52b1d0e855759a141ee2cf605714d0e80a0f -DIST firefox-128.0.source.tar.xz 560761840 BLAKE2B a50c7ded69d86c9d45475e701f83295ab6ccfc4eb59d9c91379504bc35dd0e7e1fb59e8c7737684709fe62969b9762e2960fa90607c83f9e8d637b78e60f56b3 SHA512 309c0e2a0bea5699e6daf4fa02300ad7fd118d2c02c35cb5fa97a5fcc6e250cc7aec34e50fe872b8fd516436bfcfe37ddf33c9d0f9291860388cd6f3f08ea9f1 -EBUILD firefox-115.13.0.ebuild 40710 BLAKE2B 6d1aa7f38c5370a656b8a224f71ebfd929d1751adbcb8e0606fe6aaf59a5c19b880a4c7f77a313cf374125e6ded3df02a234db3f08e6dc6470bd7c79e7b5a0ea SHA512 33c6623fb27a7162f52b6bd0e611162c88d556b7bb139acaf2de526a96d42fcba6704323320fb61d78096f1969e2d36fcc528c45e2b09349e0fdc703b0b3f406 -EBUILD firefox-128.0.ebuild 41898 BLAKE2B 4c4a0ac73a0cedd45e36f31bf1b4c03afd2d03dde1952b94da30d67dd7d9c6b2b185402e78fb98d61df3340cef76bf6400f2978afdb29bf9c2de5c5cfb9f6939 SHA512 5df135666c3a5275d58584c436e06402baed020e1839aefeebc7bc1357227bf42020122e1e4d0f7d4f0a26531e503e379c1ef9d5b73a0ca7152adcb7d03facf6 +DIST firefox-128.0.3-ach.xpi 464070 BLAKE2B bd1e92adb3cb6f1f4f61e9c1a168190c26972ef846fcf45cd14e7f29d6b5940611d6348fd6b3815f356f80bc9ccf5143775fc602cbb2035ab33bd77391721139 SHA512 8ad9af4e2c693130d471f8bd99f32579cef658317dccb821521069c130647ec7e7a0cfac9d8d82c8f3e3600f22e080ec4174bd8bf7f7cab6107a6a0ecad1936b +DIST firefox-128.0.3-af.xpi 417515 BLAKE2B 45b368d5bdbabeab7cace3e29dfad7d2cf4957fbba446a9ace922c0f6cb0683de1d634a9146dda7367a376b6802d6579d2f0ef1095bda24886a3fdae87dd6ad5 SHA512 a7d2ee5bed99cc18ed47be14c0421d84a815af7f870b4307517f9ae3929c81d6f2f7d646aedef11a3f91143aeaabd57a7f2386e92bd6e176849356690ba009ce +DIST firefox-128.0.3-an.xpi 505881 BLAKE2B 0f9ecd72aa5b4bd5af3a659002b9956bf9bcfdb3a709b5f698afaf393e6426b3606ad6140b861e5740edf40910b9d1d07dc6eb092cfb1d742b07dab209803295 SHA512 b3d16a753b587acddda69fe1e55967c88ccb3624a603be4030c78048385aaeba74f9b2379bba447a5e0495f3d1942fbd6f5ad6c41ce2080ba762493036528266 +DIST firefox-128.0.3-ar.xpi 610860 BLAKE2B 5176beb66f9425c5996fadac95cf17c9377840d0e6a6dfeb4161f51f6538afa0fae0188be85f802ac0be5e20d658fd0687c7e2ead170525476335cc8890d100c SHA512 7e3490a77ccf13b0c2f0e625811439e0e4004cf0875b8177822c6fbeb999fe676b24ffc613ce4debcf7ec0ad3fa05dc7b8a2aebccbea41683c6b5c625d640621 +DIST firefox-128.0.3-ast.xpi 496342 BLAKE2B f0abb0158c2fec99b922402eaf070252096723b2cce94ac815f458b01ce4a671c1152875448ef138ad38ec6b4d33bf0f8bb294ca0efa8558e639462167cc6e50 SHA512 6b9003ff4b47041ddf1622c1b139506472ecc86c3445e36a6936134a04635a7d3f64609e5cd4222757ef7d9b32480b6478477b2dcf8b12a4d4d67514db6d859c +DIST firefox-128.0.3-az.xpi 490772 BLAKE2B 311b1ba01f7eb728c8186dcd08c7b65578b67086003b696f4e08cb10dfb6771d35c9c88d25cd42ed8b3f75445c6e4ff88930c9346f832519245afe24008ff256 SHA512 335d130106fe22c540528ced5f2277d6315cfbe33072a76fbfde3ce225543c3013311aad452ffb187554b575c5f3b656112f343c085b83397d9be8a70dc74b20 +DIST firefox-128.0.3-be.xpi 714336 BLAKE2B 1b48e36e40f5ea942afe17a751d17be28644b75ee9bafce2f1d33e00ff3d8f9850eb5f146a3e5ddfcd613b8f441c1000946ae22ddba74127ac317762c5ead1bf SHA512 5ef69e53b8aa687e05d223df109c84e559095a725524f0d0d23fa1682858072237510e4263af5ecbd4dd7dd28924d9c177bc78db247d2686eb1d8376f71241d6 +DIST firefox-128.0.3-bg.xpi 606582 BLAKE2B ec4c722681e6d15e01f3fbdfaba5879a906ab790c09b295f4bcd7aa6272a64a2a3714d4fcd60fe28adc1a8a469d9842ef95ca158ce9d0a31dc52cbc26e7d6413 SHA512 6c79c587e32e57b5640b09736cca745f5e536e115007825de1c14ed822ed5a9a0b212cc760dfffae8cafc6b792b887483afe105a3b1c5aa42df0bde3ad80639d +DIST firefox-128.0.3-bn.xpi 581536 BLAKE2B a7dd44af2911ed3a24f738e6e4c29fcb2789658bad7a52389e4647a2afb57e2741a8f54a282d6a540fe27fac9e424dadc1e79b3838508f52ab8b71bfbd79468c SHA512 655bc0615a83481a4803916244d3ba6666501712f8c684a01e51c5118f70d3b5b7a1c8f7658843c554d7849cd56a287a2794ccf4bed28780dd2590e843be17ae +DIST firefox-128.0.3-br.xpi 588930 BLAKE2B 6b453122beb85b5462feb48a38bbe0bf968dd69df5d08e322286cc0b7d42ce48f603e29da0bb1b48d63ac9ce46192b391fe237ea8ff37789bdb007b422f7830b SHA512 65e7498f17888ad8352751493d9de6303140dd0a1ddab5336e4fd050975aaf6e97f9234b91642b87de585af19c54e4312e3fb71e3f2cb8af14ca56aad0d96686 +DIST firefox-128.0.3-bs.xpi 501988 BLAKE2B 1f04823572f0aea757d5906575d0c3c8cd5d6089503f8622e104f00da971ce5c44a436bfdc0506b1c93194a54d1335d4fe353c377614927bfa9348d4a2e3c7b1 SHA512 4875b5a5f46de9325a7ba0973a4ff050704fb99dfd2bf2c196541b7a9b53350fd5216c17711010ec719037b60a4440d4b151c5e6fb3ea8ba33b49005a6d6b639 +DIST firefox-128.0.3-ca-valencia.xpi 546189 BLAKE2B e1a59c44c5a00703e906dba00317636fb85461c4635a44419fca74320d4f07359e43806d5a3c19fc2f5f8e8f298902dfb40de8e346514ffce16138b802f2f6ea SHA512 93c0068c48e44dec07359ea8904d9f6b8254d55544a46f8f814a5f92eaf35b3d860cce864c0a2c60bd95b6cc107fe4beeb5e9aa7d7a746034999dc9681ddd138 +DIST firefox-128.0.3-ca.xpi 597111 BLAKE2B d99208ac1f2c7fc9736b9575c7826fee0f1a4588488d873aa689d66b328d569b8ccbc79e7c1c478b19b3d86ca40d1143efdd0eaa7bbcfa091d04614639d689fb SHA512 c15669049e0b2f62524d5c57af8b8bd48944b299e860b1c2a55cb7c05718a03297fbbbf8b3e4e5bc2292a817048221ef08682b02a9cae485b8c2215db77621eb +DIST firefox-128.0.3-cak.xpi 593083 BLAKE2B ab040d4397c6c14b2590c66845ddb32e04c9e421f63630924c5c8c42218911b80ae2d7e4d8eebf4b1cdb924e1908c7ffc8198344b015e8e4353e6fbe260f9298 SHA512 028f61bd1cf887d51ced7e5dc6034db5a4cb50f2c8304dd6d6146550eb9aaea35bb1078e6c29129979a3e1c5e12e9f204101041ffdb57e335ea5120248339b44 +DIST firefox-128.0.3-cs.xpi 658964 BLAKE2B 77440f97c2def843531d0da78d2fa187493781902415ccb8f1ccdbe54569204f63f9f786d60011ece646201adaa6bc405c6156e04492f4322ef38786898f1bea SHA512 facad91e1587788e8bb052094690529fd580e6171a0dde9b3c226470acc31717d154a1d1947b004aae7fde2b7f96ecc05a481cc88eb2e3f590fa9bb61b5567ae +DIST firefox-128.0.3-cy.xpi 622920 BLAKE2B 4c6832f17b962bc303c06493eb5611a512f4d12c49154b7659c081a9ed6fede434c55d141ac37d513dfa0d9ca8450f238dba269461529008dd240f92fe938f8f SHA512 784cacf3813c3c9c5e1f3febd408d0100f3579d3eaa4a7fc910a6c26a731b3bb36f885df89a58aee291f992e105e231e444a2e3325d4ca56b9dce77b5740b9c9 +DIST firefox-128.0.3-da.xpi 610842 BLAKE2B 9015d327ac2a263a0c344cda13bbf68467038fc5fc0b1eae05aa8db86c38026f7e69f4a34a0877a12abc6a0e56aaff009bdb1137f28b6833d4313eb5835f439e SHA512 ea6e6dcc0eecdddd597e94d4400cf4bbe152329b5e5a2b02f61c9962995798ee4f009ec5df709e100c9da4200d98a853cf865bed38e047113f44bffbf20940c0 +DIST firefox-128.0.3-de.xpi 632474 BLAKE2B f86ccebc80756fb5ff83a8a56e1e05814605c3e6caeaf17f4bca1d828b51c0f99f18254484aa6ccbed5aa265881c2ffdb8e12efcfcff5fd444e64d2f35d2db3b SHA512 5a92a77df3466d3604fcf51cf73f6c2b76d64353e81f437413a1d3405ac213c2dc987f77b6efc3b5b048d794884fb08e456a316fc0206ce1f3f13e60aa88c522 +DIST firefox-128.0.3-dsb.xpi 650816 BLAKE2B c96a1a12a5afaaad739e05e0e319440d4cc69561dd7f715153753b4c93a2f7e26708eb33a91d7f83375af6d5757226f6e93fa9ae39439d8b462fd66885227ed4 SHA512 e4e590209c249797a9accec4e7cb1c74a5c40f33afc217e03d9f2ba0706a15110aca38179e0968d89fbbbfaa2ab1acb6a870d8112c70756ee930c2bd4c0b9433 +DIST firefox-128.0.3-el.xpi 733070 BLAKE2B 8b33f0a93ce6afb660b2c6782515b52534e39a136dcafb7b93b706e2b6f6fbbd26ab62797b0f6e4a837f9d52879a43babb8c26ea0cef987a149078f3a45dc637 SHA512 d002d58c81cf7de1c54d979ac7423f57e1b581a76f1671e8a74369b78cf70d5937a5ab52bf842ac73846a06ebec5f13c1ae03a9b31b2cad17c95a6a966350c52 +DIST firefox-128.0.3-en-CA.xpi 584678 BLAKE2B 8387203395cbd953bf19962d2afc473e95237bd2c4f41be9dbd109ae114bd51c2b91edd948b6196835a3a4d24f49ae4ca882799ed39996e5aaf82c4ac837622d SHA512 f7c5f2aa5f06abc9b01a9ff23983bd66d6ad42388f84b308586b5fd9819d863d525ec28e8657d7e387404fdcb397ea08e71ad850b0e27b8d71f89afae52d02f9 +DIST firefox-128.0.3-en-GB.xpi 585259 BLAKE2B f30f63c71bdb7d4836f87aa7b7b4adb45c5fdbceeb24e83b5176e261e50143045fa678a06098f0abd8636748aed74b9bd95dfbacc9edea99c88a747fe6eef34f SHA512 cfa76417eab21bd6daefb52c9527838ba18903ed1def71e50a873a038ea947d33acddf3c6f327e0fb82cb30b80440ca7a166ac5f43b0d927465e3f79d046f060 +DIST firefox-128.0.3-eo.xpi 613700 BLAKE2B 45f53a29dee57ba65911bfee5197f0a6fd57e16ea33a550a81d19bef57ba3937ea87a023a8bd63db6cf96d2f8ae93965b8572274a6e3c852df7b42911fdc7277 SHA512 3e68dd24d146cfbfe0e647159dab64b74e772f0978ee0dc2027e2b7c16601da276f50c782a17ae4a0e2c67816bbb372fbc98f1d1d1d08758806589ea86e1ab11 +DIST firefox-128.0.3-es-AR.xpi 628031 BLAKE2B 41f2e8ce30210bf5b16ef41294c851e8233090a6d96676ff664369633dc9ba01d23946316812c1b7443f7195f62b7d7e07281e69b84bdad7f4f77e97620eb35c SHA512 11a5654fb99b6802bc756f2854ef8feec159bc528d7aa4886c94464a072a9c09117effe751446e9788e317f7ce4f782e9b43ceb965261b48d11aee936117b362 +DIST firefox-128.0.3-es-CL.xpi 627301 BLAKE2B 8c25642bc62cbcd3196840296acb71e91dec55c8ec92b2132a1dbc83868a82cf64675720bb52c9fd3069cdadc961295e93dbe3ce4cec0cd2c718ef154d42fb4b SHA512 5b549095bf4f7bab34c1b8f275d088db6196a6aac05061125bc8be3dac755eaa3b5756422161b7afec5e47d31a675738ee9421a296909bba8b28a6c055fd8282 +DIST firefox-128.0.3-es-ES.xpi 621076 BLAKE2B 8c65633ced118634a2d948230e9666480dbba8184b85d85bc0e0f932c379143c0318dfac60f94c5b589d10197fe5c9fe24f9850ce43115ed2a1ff4fdf5a04565 SHA512 e9b04d2b405efa09474b9b61ca371eef0d26331de252256ffb92f8a504aafc1466c7463024903e6b918663465afd8535e1e9ee5f238d83cdf011f35ddd62ac34 +DIST firefox-128.0.3-es-MX.xpi 604994 BLAKE2B 13514fdf5b7cecfeb365f4d486da91fd8326db66d07a8360416f0e364ea01a4c5abe14e54272f599b1877b4c5ce4dfdb4393ac986da14407d0f547769e1f1b2e SHA512 5e0046b8b9da59a3f810c2040e2d4d928d0706e168374d2bfe5970c42e619ceb07d9b4720d53dadc96c47559fee5eda22d8c68c536cb7df4966c825e24eb6457 +DIST firefox-128.0.3-et.xpi 539535 BLAKE2B 451d9a8605d16f53044271e98b0920ca5b2bc099e142c087cd5b1df5984c5f8291f98236e5f0f4d73cbbfd061bea7d2b0c9b55b2ae4ea094d333d1cdb0e9caa8 SHA512 11cc2db54e703cfe221baad2412dda92603cb7111ce6386e8fc303f20bad116f62490b7bf456a086f0f275475f74e77b605d55787539d33c7d23017fc851031c +DIST firefox-128.0.3-eu.xpi 599329 BLAKE2B 8105442b04a5c9eb520caed777311997c5d6f60793f2f3347bb66189a1275e4f1d47b7d9c701538e97248f884d50839769fd5bb806f6490727e4a68900221582 SHA512 656350dff1b95f1e101ed9be60af3ab0c939d74b7af4f36c2523504c83c0e5cbcb39541ae553d7af69ab2f705b48cb33b9881df6f34568fd7f474d046d0ba651 +DIST firefox-128.0.3-fa.xpi 590030 BLAKE2B 7b2dfacbb93ba1e3b667c79e5073414c629db63595b519cdf4a9c8ce6bd104ba9a1208d1a44fd9f73fa25a242842908db5e5ec36a44ed46cd31e8134a5d26357 SHA512 e2a77e4492e71ef4881b774f5b6e1fa98ca67acd5a8a388c43801c2c15309966bf3539aa2c2f2902ba70707dba1735fc4e4a77343de005bf41e52927bf785862 +DIST firefox-128.0.3-ff.xpi 476055 BLAKE2B 931afa781fa667af22c0b51fd59b9a1ed312c7db3cb91a42b74309198f2a71c71b70a0df6768084e39077b5115fd908561d58b28c2f6d8b0bc3f1f8893a073cf SHA512 87d744541af7e9a05c843fb7040f30c8b316a41827f152946114e1e63d9fefd47d23b326892266c93bb8bd1c4795ec547049e8a1af843a1614d4a109908c0279 +DIST firefox-128.0.3-fi.xpi 606457 BLAKE2B a207329da5efdafb981ebaf5316504edbad5180377765bef51d4cdad5a7e0e1b4266dc0e7bba922b593d9955fd25dcc5661abaae5d1337a3eae67abbb2347644 SHA512 e6194ff84a353244861ecff3a5082c1324daa59443f2567db76ff5984b37309889f287e5393a1ab7607bb350b9508b86f842917aad17a3a109731c94f145c839 +DIST firefox-128.0.3-fr.xpi 640303 BLAKE2B 5f3d77d8489322a04611d9938fa4db843d9d57caf65bb18ea95317bcbbbaa43fe97a937c79ba9e3fe2ae813da6a0d8315e2215e0fe9232e9f4b9e4606ae7bb52 SHA512 760b277ba49f85b9053ef8eb7d9e6b9a2a8b324f5c74f9d6fa937fb6b8186a7a08816485b324b17807f62155c763b6a6f27587229b562c044216ad538e029513 +DIST firefox-128.0.3-fur.xpi 633990 BLAKE2B 0b005856dd524faa70b3df7d2f5f5c7bba1ad4a7e6eac96c854c7ee34e015434fb136fbd15ad6bf4ce9dcb112bd546599939101359302d5703a0c497b06a75e6 SHA512 ea394254ca7b055b99f3f057c61345e22d6f23e511d41ae513fa3aa8d77b68de436bff8decef917c211a5b9f26221f520dd7b52a54ae250704b476e0d05d8afc +DIST firefox-128.0.3-fy-NL.xpi 623727 BLAKE2B f5a1668fba78d69fd366db423e07603b7209c9cf1c28ec88d3a9042fccac16f8a90ae7a6b7e3e8c3271541c98869f0f82cb965e4738747f0d04c53786f6af514 SHA512 c6fb36046b321e78e4c59401683f6c9e58c343d20935c29fad34f89a8974591776494ddc78eaa9408a3d6e4303bcbd0f1cb80b131b416dcb1be45860832cb74f +DIST firefox-128.0.3-ga-IE.xpi 470992 BLAKE2B 69047a8ebc01e503f4a972d215081b2c9833209f2ad714e0f2580727f7c080557b87137f46af7d0d04221edbd3888581eeec1c57ce30103e17258b279f4e003a SHA512 db94156443a1b7b21778ced1e574fbe785013d63ddc186aef0619aeb15839d3d33614e701d5261801819c469490b14950f28da9211f50a90a04a3d70a5eec88c +DIST firefox-128.0.3-gd.xpi 596589 BLAKE2B 7f8cb4e09c817927fe2d6bc1e4253c0e6297226c67051ed3c4982155519ce25f8c87d36ac42f51bffc24a838a7c1158275447d19f7623ebfbca35e37cd3b9dc8 SHA512 321075e3b5feb6cbb27b3829837f1fa3d53c59b2012330b8e170e46198da30b181a15d96da403952f9da210e0bf32659c01b46b1cd3744756c6b19b582d7677f +DIST firefox-128.0.3-gl.xpi 604094 BLAKE2B 96e4aa3efb08935d34e15b946975482c271bd9ba871ca00dd7a3c4996a16045b58d224b8183d9e5c3d8393ef1e3627e9e14b7a89f1d8b3cd1dae9ee819dcf808 SHA512 b8d450fe80e5ec0ffa0c0090cf62a5ece4e9643ef1d4e7b6052fa7ef3e20a5d2b61b5771f14a990942bb13cfb7cfec9d11a04ea1f578b1875104a7177f8a9789 +DIST firefox-128.0.3-gn.xpi 637427 BLAKE2B bdee578c515ed1a03e123c50b1ee8a63e6204fd46e67a51d541394b382238b6f35c97a524b16d9080276e75ef024cab834a36d95950eb930312c577bccaf5794 SHA512 0e7df3485b0168a0b74ca9cb59ed80f633b097f53d1ddee826d95831868cbb887f17e8560cf0ca843ef183760481e57d3dce53966dcc40c2d7d0bb428db4f197 +DIST firefox-128.0.3-gu-IN.xpi 527344 BLAKE2B d06eb237de22b1977831568424837eac47305cd8ef0114074c9ce2437a4f9da003b820bce722293b36303c23ac3b0142acf1231719573472f545740b78ed8892 SHA512 edf17a82f01afb28aedb484287fb70d35fa62341a2c65dfc2160c8962522b55146bac85f565049343059feed02ce22f067e1217d6ed10071d8a09301f18289bf +DIST firefox-128.0.3-he.xpi 631587 BLAKE2B 38694f10578228bd18f3e810a667575b3a004b02a84de07449506c6c4305d67101c4a7ed31e9d93fbd9cc8ee2bd79d2b681c4900d262d635aaad8d4f71cf2bb8 SHA512 2a2da86b5ed0015f278582dd6c7f61a7966c078cd5af77eeee107ea5e6418914948586659a0786b418fff0f23292404f48165622d9d5e518251c1a15be372364 +DIST firefox-128.0.3-hi-IN.xpi 566770 BLAKE2B c77643df28520e35b163d86ded59343a228ed88e55566e035d45d4d1af165a63390d9720c6c2e516cba69b33f0f692062a0971d4a2b3a21ac19981b0456f82cd SHA512 6d1b410f653ea49e3356c73942e8f3b6791e9c74ab54611d1b24a1e49374d67ffceaed239ae90ab580cc02a02925e357a87e780c6a1910b17294eeecb561252a +DIST firefox-128.0.3-hr.xpi 559805 BLAKE2B 32717e35361b2471c9ac163a1bbfc08ba05ae47db26c773ce094196024dd9f80fba173738532a58d07182822a8f5f309d08861f6937b2986b8d0f1298cfbbd2f SHA512 ddfca42876ce1702e1b65754a1411f66392efb9cf7ad474ee892c29a372d5f05d4594d52b3a4609b0f77e7e4eefc8e38c790a462149d34a8b302ae89178925bf +DIST firefox-128.0.3-hsb.xpi 646889 BLAKE2B 2519be9e83cfb86f8cd335926f8e3c99ec9dcba8291ad247f86a0dba7d86d2a71fcc4adcec735195d57f6961290cdf9e766d724cdcb66a84e4ce0d99d90da027 SHA512 9c3432245bd916f09da1847f3c80291151bbdb4d38926411e672c04609d78c0dd79b625eb8650edd800ab31f0419de261c171709f7c7cc6df6d4ebdd6e82bcaa +DIST firefox-128.0.3-hu.xpi 649176 BLAKE2B 707fb79f74a5b46ca6de44e6d56112c2a49c34422ec95ce6d4f978bea904a2a3f017c88286be882b2c174e7e057b610753c030889c5c54c3ba28f7c42a810cc8 SHA512 ffd814aedc6e9aebca5c0209ea01d2de21b562734ff2264bf21b45d2c600d7c46d6ff65a6ac2aa250e7fd8e6b7272478af859569fb6a1afba7c893b1099b9cf1 +DIST firefox-128.0.3-hy-AM.xpi 651598 BLAKE2B 6e90a64ff88c240e253e06a3fde78fb4efa95883f7daec20982ff7402898e3ca1a3c6eea098a27ca6cd15dc84d066eea4f36784f205c95296bf2b8655d5cf167 SHA512 ee664c2a7a60782f7ea3e32b5e1439b9e4f5b37e8da28f6c05d43779e896e2dcc99505ee34c690b50ae478bee1a5f500c9049ae79fb4475c993c2a1afbb1f3cf +DIST firefox-128.0.3-ia.xpi 611216 BLAKE2B ff2ab5c4bc21204842145d7a459dc09f99209ad49989e94fd28c0f5b1b34389a2995af3f63dd639c436ebabdaf2cff99c6da94dd3b30f1c3fee385966dea64ae SHA512 b7adf46f3a17caeabef6b752f3ae09095bae922cc1646ebe06edfc0cca31c82357ae466ad97603d92e611a5f096ecd6d973cd2a38fbdd7f28d2ebd523a11c61c +DIST firefox-128.0.3-id.xpi 580206 BLAKE2B 75d9bd05b30b9d052657ad9d261d5999a60b7ee0fcd80d6e48b45f6019b6c834fc1ba12a32613ba2f255bde8f8165804135f7005e79940d83e44ad2ce87c9ae7 SHA512 43d18cb4d09145675ca816cca910feaa7af41a34cfbf35e42df2d9d3a9b862c5818fa8194ecdf184e4f2ea19e6ef0c553b0145bc19f6368e28ce3e3ec62f8cfe +DIST firefox-128.0.3-is.xpi 616485 BLAKE2B 94249d9d33c13d2d43b14032a1c60ef8d2ed59490e8249fa60787a2da489137c38a57a086fa857d215473669a7dbd022c50f73425b29f7ce6d47dd8d013663ce SHA512 3db273effce357e5bb4916c783b8129e10c976cdab39cf0e0c5b79b59742265ad8f3b477030500de914335ef3df167462d3d687f5bda27023f637e610adf2ca9 +DIST firefox-128.0.3-it.xpi 567318 BLAKE2B 759bc1e76eb91b0897554a8ec1756c5a34e5a78a91dd2239b89153b2d72b403c06a6f63a08af2ca875764bbbace1c319e36173f7bd76866cff0f14749e0a7658 SHA512 25c4765ed40c64ffc550910572e4d01ac39c3aec1d76b5b6527f6c2a48e8854b8e3182154b3a09c6c12ea4dee6389df9e3417ef8084ef96e9a1313a39b58ea53 +DIST firefox-128.0.3-ja.xpi 675632 BLAKE2B dac46fcb428768d09ea65fe3aaa73ceb6517a4f14dd2bae6f0ec0f9dbbc9ef2647f0ab9b63d8607c8931316e973a111e54bed6da825e6a790abec5b3497c8e2c SHA512 a409699efa9053660a123fdba9c78969b9771775621549c0ee562f8ee83008b0119e4bb25315325b4e456412569c57d3fba64289a9c614ed5b4de744f8ba50a0 +DIST firefox-128.0.3-ka.xpi 660713 BLAKE2B 1c81c2351081db0783938c6f0b8512847be4562e67763ea8663fe542ac25f3e48f99edc39547270a0d8282296dc400c65b8f16045795ffee80c085dde7c4b646 SHA512 68d45b09e7da2be9a835e75982617c1219bf9ffa4a3990ede1dcb7709d58959741ad78a258082639377f125cb5cb9cc10c619a3697bf367a3e8555f5a1b47d4d +DIST firefox-128.0.3-kab.xpi 608748 BLAKE2B 345bb1a7f7d2acc5563be97434be928eae6b113ff9ceb6645f834208354beae6f21ff82a6ca7adc0c8eff9fc75c0bd89e63f05b634deed0d8b1cb299fb4b23e8 SHA512 3f5637cd8013626ef3a0cef44f205f021a8eb1e7794e1a84a4afdd836698d72327fb94f4b2c572cc5da94c7f6a40cedff1d573c17a222732f1884f987d4077a5 +DIST firefox-128.0.3-kk.xpi 707825 BLAKE2B 2ce39e085bccdcd6a1399867bb42e0a74dd4bc2e1508a6f51e5c8ffe4b52901062ab1cac3645c1704569dc1177f58b457a84a6c1c98982fc00a34bcfed112f6f SHA512 f4337887809f5f02a7fc229996bc3a15fa77d79ef37463e396eb74c9fe4a56a9677e312ca61e6a80d3b29c7f0111f5b8d0916e59905858682b3dd77f9cb98fa5 +DIST firefox-128.0.3-km.xpi 525884 BLAKE2B 912b0436ba3b7b339673cdf7c81f79e441f0c442ad72cf9bb27fc553ff178dd4cbd7b519e481632b8295b13ad8bbdcddc82bbefbc3fbbb315c2f73eb6750465b SHA512 508fda7db4e760393936493133faf75dbc426fa14f0f13d5084a2d5fd7972eebf2f500eddd567f7eca215d9a638748e1145d7a3c824de15b3679935b412a8aad +DIST firefox-128.0.3-kn.xpi 491252 BLAKE2B 3e5c41b6ec15d880e1c8f32c96aaefa1fbcc015939765fdd6f15aeba7c01e94f2d52f5d4fdf4cc17ecd0abd22920a572354b3a12dbd78f7bb9e77ae9afcaf3e9 SHA512 c2e1f572ecb7e222d32e498c49421fe4f7837ad1acc4671822a7a54c0191fe9d6d356d8b2b49f607f2319d9bd6155ac6722a4446c95604fce4bff85bd03ef453 +DIST firefox-128.0.3-ko.xpi 661599 BLAKE2B 57d7bbfa64e2ba94edc7cf797d48516279ebabaa8e9699871edc428b83b9f7970c6210ff13dd5b8b2916403cf60c74eb9e357078b6c5e5027b982e16a46c05ba SHA512 39a3ac1e689d58a016793983659e164073943b850962a72e96f59ac4ba9300b3238aab77366c8497e4a0a1d57cc5936336940d0d123a9e2510c612655e1c03a4 +DIST firefox-128.0.3-lij.xpi 484092 BLAKE2B cb59f07aaa69341e117baa9985a5be36232101066d519e240cfc6e819520ef676ca9be09c1b9972182a73446d59bbd5c605171c0f62b9d29d3df2d3745d7b5a7 SHA512 a10a2c3e950245f7cfa5ac79d66ee58efb29988eab3f2bb2755ead5eab3287ded6291d3b3e23fc74cdc32f227e4f71eb0525cc46899caad771550ac6a4a60e7b +DIST firefox-128.0.3-lt.xpi 572684 BLAKE2B 3603ebfa2cd0ff6d451eaba407a832db725fe8e6e82af9e0465a6cd9249982d1ad6798c22fdc58ff3ec69b77b6aace97b76618b9bd7ddade2efb52d0a9f907ab SHA512 862131b2bca7a61b11872ff5caf0322b1cb61741ba3927bcbeaea352869a7929949dc93c0a9eeea05b92c0314cffab9a9588087ba04072474fe189e180bff937 +DIST firefox-128.0.3-lv.xpi 574392 BLAKE2B fe46033315e198e87469837608e674c8c0fff0a569e61e74a778870615821ad0446946cd6fe8e28be68c37292905444f31862cf01cc61a5fd7c15c09ecd05a20 SHA512 f10537c5997cb222dfa1e23819b2a12f94744748e6c4e7266e0f9cc8ccf56f0fc6011088e223f5bd1a8407451d832acf83bb339b9191223efe7042ca7857d38f +DIST firefox-128.0.3-mk.xpi 493840 BLAKE2B 87598e549efcbd16468d7971f741c0cba877f0cc4396d20d183e49243a685bc557a0ad851bfc5f6f4baf65b27fc7a00655c60192440af4f76dc1ffda5117f86f SHA512 b142a6890dc0a53baab76d667e777101ecdc07051a61247a10d8495c56a9966da9893e92a2f4e25a205395bddde12afc621b725a911ffc76cc3459f3252c97bb +DIST firefox-128.0.3-mr.xpi 532094 BLAKE2B a7fd734d1db3bf102560748af542e1b46f44d461af49d60f575dc5a227590eb7b4b8d0fa8699cb0ab02662e40ecdd3f082348dc7959ec7e780da1b3b10433b6f SHA512 2a89a64657ca0280f6ce854d678c23abbc0f162694a59676998987e7eb80ec7e990984d48e2cffc571f18c9d500e324c77c77e0ce3519c2043ad38d9fadf66d0 +DIST firefox-128.0.3-ms.xpi 449731 BLAKE2B 1fb71d1d685d717ff9422bd1ee20d705d81406924799a559defad2215e5d63cbc3da02f0716291db318de811ce47afddfb5d233350eeda7392c9d1de34f9e609 SHA512 58abfe466d93e551029754a31f91a2c2e6a8cdd453efe8e74f602b0a3fca27f80b3c35111d23f930a93d82548b46756cfa8ee1aaec8023aed27ace891e8d60c0 +DIST firefox-128.0.3-my.xpi 518622 BLAKE2B 2d090409ec509e341d5e17de3f792d087372fcd028d790b71939b8334b41f4de87a1c47380ea73a3205dfe166703524d0d49a02a3037db6c064ce326b18628cd SHA512 1c3252f76dbdd69de40b23df6645bfaf47970a4088ea48642f6354a87f02cda82d9b05e0413beff6192ef87c497c642d9901e8c836cce626380d0343fb9a066e +DIST firefox-128.0.3-nb-NO.xpi 607049 BLAKE2B bc56de8a276e2d76091239d735a96c4df9d0b1565ca250062288bd1cf751a4a67cac5a368aed6036d5b80a8c7a548904b09add5ca9758b075b10bbfd74ec374e SHA512 a7df37359438c835ccc40749aecae90576cbc3c647fbec7742fd7d510cc84f46a82db8c998098ba96394d8aba12bbb7fac393c3dd12d07e24252b526a854e969 +DIST firefox-128.0.3-ne-NP.xpi 510942 BLAKE2B 216913e673179e124b36413ad702d9ec7dda2284675b6257f234a5ae6417c98013b6c86f096cb91d1be5a1952b35122af1d1ec02caa2ae7a065a69bcc03dc3da SHA512 ee082c60f564dab5ef1e83a4e2feb26fc311567254e0b1a8caa74c5ad0179c4bb93ccd541ce05a657a85e04af2d2d13f7e250cfc77174db68f460c7af2b35158 +DIST firefox-128.0.3-nl.xpi 617411 BLAKE2B c89c8044d76a0662594709ad3cfe600c1c5abe7276bf8fd91db5a205d7cf15e24384fc294e50768ade1a5a73272b5ebbcfef2df7c2a7f304a4b43a6a4d02a328 SHA512 e883b264861e35a7fc5eaa0da2ac6aa51de858cb3d91a0a3beb1140a4db9bf6bef214362305906f5d9174441aa84728314031994503393d009900681fedac45b +DIST firefox-128.0.3-nn-NO.xpi 610252 BLAKE2B a3d2d7760c7b7d47d34964a0314d23c66a608252eef4f7409062955cbebcfc33ecb73cb85b71761ce72cd4a9770aaa8b229c6c43004eb98609286e7f76b8e472 SHA512 67fc048770d1957432156ce3fc9c97eb45d22e4fd7aed2f282f12e1d60185b6891ca0ffa21ed0f32a2763cd009e4df338581b2aee36e15258cf350818868c892 +DIST firefox-128.0.3-oc.xpi 612809 BLAKE2B 34c0873944523c5aae085ee2decffbe08837c2e81acd049ae9b7b36dfffc6863dcd2d0b89ebafebe3a181af31998c34c4a19782ce0b617158abce6c495ffdb6a SHA512 593b0b6834e7d94189bedc91d77d562e6838edfbeae7cfb4f8bdaf52694b1bd7b0f2ba927f927b27ac8a6489678831ca9298c3b0ec6c1a270379e9c9427dad32 +DIST firefox-128.0.3-pa-IN.xpi 692032 BLAKE2B 1bfc754b0d9007f76e3b901aa5393a2917aa0c3b750835df96cc47b9cf3c922c84bccff54e7a2b63b8f77a5eb10ef388268148c8a5fca2509972f047282b1060 SHA512 a8fc7434e7833312ecd263e4f5562bf6fbf5a3025e9575b278db97535ba76740bac2626739c3b58c0b00132d61fd5302621272114c74a60b3def1a3cb8537b90 +DIST firefox-128.0.3-pl.xpi 635776 BLAKE2B 1113d75c1948f7f18adbc2da3569d8c7319341cd49d157eba17992f3ed72b0644c7dba0b0f3b2c385fd6bf7980f23cd5c34c5388e97d6076b501c85d0cb3bc36 SHA512 5ac939b0081fa7c1415f52f85f89180a96abde40571df0a9a479876e346c4ab758af25e2334d3d9fa5a9c516382f1e8788f7c99409ce7bfacd14b3b67c1388dc +DIST firefox-128.0.3-pt-BR.xpi 622152 BLAKE2B 5992d51887d7989051bd60d0925a475899ffa8012d6b3f2421d9dfae092367a3a0ca505e9e6c601a275c482e7166d7f17dfda23c59d6538fe7941497290fc5b5 SHA512 fbab54fe96f778703ee9ccf5b5c160979171266225c72da30b7a52bb35c7b4274ac3284f72088212ea70da1630d645048231460f409b904ed4b3994e032bd875 +DIST firefox-128.0.3-pt-PT.xpi 626182 BLAKE2B 8b183aca56b82f58f3556427af3681c1c0dc2e3c1a76d67b1ebb6b5419947e5f08441e18302c207f698c7565d6cba045c25583be56c770a56de60a9715c07ea8 SHA512 98c8416be8020ee5d9240fd04ac653c772b9b98b0aa05f0300445c2dfa858e8c35c5eebe27ac89c3c220be58aac4593e6c3f7136d613e3cc98224cfefba43002 +DIST firefox-128.0.3-rm.xpi 616896 BLAKE2B 5429ec89787901f540d3db31d71664772c5748c297dd1765411bca8cc2d51e1b22a618e15528b11aa33fa93583ea13f0374fe1d54ac0bde896164ab78b37ff57 SHA512 f18b79781b9fa968ba73451654dec8b942fd501591d6106c5105dc679ec90fdaa93f29c976778aedf9579d4226a760099e18b28eec5a02c14e4b85ed887f65e7 +DIST firefox-128.0.3-ro.xpi 549799 BLAKE2B b40a49d70d64a1582b25c64526c826cb260de98e813babf59473133ff0419fc3a58c29bdcf1d565f744fba5168bb01883b8834ad689f31bf65da94ac47155ef3 SHA512 dc73cfde82074a805bb8e7d2c61e5c2de2dce28c5ed9334e5568ea21bfc5a766afd19a0eca576ce64c65d7aa85a34fe8f6099cc32b2c0afa48c62217b0297d69 +DIST firefox-128.0.3-ru.xpi 720402 BLAKE2B 0943c618aef992664787cc5ff017317642307cc14d21184ff5a3ec98e28417aac9c22c976f63a0b4468de4b6fd2e57afb6f998d7e6c1f019f4822ba7723f0f53 SHA512 4f4aee7c7f2a42a0c58f2e8cc6cfaef5a1cbd59332809aeff66735ea11ebcf79b74ee4943c39273d6ab188294e8fff8b7844752fea7848370d852300c958153d +DIST firefox-128.0.3-sc.xpi 588574 BLAKE2B 7d33c96b2c99418e75bd80a2f7cf1329001cf9d79c79cdc88874795ac17f3b5c242ef58cac4fd90eeddf090c403ef6812b93eadc640047965cb174751edc4fdf SHA512 e8cf30bc97022c809707ac95b9c15996496487a8a39f84c5b6dd8f00be82ca451ec9d96a779c087b980b19696a807daa672811df76092835b70de46c0cc980f1 +DIST firefox-128.0.3-sco.xpi 511285 BLAKE2B 75eab6a274672dfa625f2ac0a1756b9323f024b08780f3ea69c355c1fa85fbb6caed245bcc308620cefcbd04f1a781976d6af74f3ad3f913c45d0a1a5911ed24 SHA512 5f0dcb78644eee646d1bbe3edf86be60cec115cc6524b3700d03bae29998487ab69fe6e3fae6b4375f5c570e667265dd1c7a721182775ae1ea0fb6906fe9f5f5 +DIST firefox-128.0.3-si.xpi 611295 BLAKE2B 16802d279bf3632e518e3e46bac1d182cf1b1648e0e6c150e27e17959e92041e2bc377e94b990d66d71cd6a0b9e7104dd1eaeb00a6fd7e629e8d25277fab8131 SHA512 c85fecc2241629e49158fbdc4aa6312cb9c638984e9772756e65c591bd85b500345848d17f9cb74bde41d997facb40edc982de57f1799c3c48c39039be5005f6 +DIST firefox-128.0.3-sk.xpi 652438 BLAKE2B f368517d3fca5da608f7dd5930b71271abfbafa8204ca1bf471a34bacdc6b07c9fc657a93e7956a037a9db17448bb49f14b28afcb5695b5720db18b3a3279570 SHA512 26b2f72fa22ce32016b4d21a1720170d56f76e969d31b72c9ade58a66cb7390f57083aefc05f5862bbee62a445b05c78ddc510a07277dbb5ec77b9be3f2e35b0 +DIST firefox-128.0.3-skr.xpi 707656 BLAKE2B 2329f046dc880f0816f6e6d600d2e8d18cb59051f247d6591625f0ab0f4055929bc2af76256fd73d48b892eba681901895f1c021967d0a5fb8a4e72d67278d98 SHA512 74c8a291d1f0a18ed23a15921a2ccf398278288a224f399709907bbb16f1d3ddb99ca268a8917edc846ce01b415ddc54305d99a8c53f5cae8514478c86713296 +DIST firefox-128.0.3-sl.xpi 617396 BLAKE2B daad5f91bbb5e8bb89d0af35d8ec13161996c2679436a1beb5ad41fa67f8ab322d66c46c44b46e7e8600db5111cba116524b09fd658a4a2c3682a29e3b30a9e8 SHA512 e63ada63e8218ed4b2fd1c758d2ca8300504e6a5064b80f2b59d0a76fd17b2d11b43b2e5899bfb5bf7a0607971d35ee7b0af2f8d1c9a9486d2588e7cf2d116dd +DIST firefox-128.0.3-son.xpi 416404 BLAKE2B 86685fbe19f40bc7afc376d56635cc87c6224b4d00fc5ab7549bdf21ce7021e9daa60994458994511d131a6888c3a59101341102a4f6164335f0bf234a65f1b4 SHA512 56a350ad3b1ca0b9a5e95c8e0a3af70a7eae12d72a2f2a335d827784941904b94a45373f55a60cd5bd0bcba3fe3532650370d60996169b7ade1b0862fcdbaeb1 +DIST firefox-128.0.3-sq.xpi 636981 BLAKE2B ed38769559df3bff38eb30a26b3825438f7b54168d17d3537307eaa687e7c58ba5538a7e81ec2f289b3e1b7360ad0c7a019cd8a7d49b30c2732897052812c46c SHA512 f698b489aca4fc639d3721c2b06111854c7be97672900384e118a25b1273e122b303e607439ccc850946f6bbed0c8f4e801c6cbc48cf953a1f05d8062d7fb8df +DIST firefox-128.0.3-sr.xpi 639353 BLAKE2B 145dfeed9830d01d0a8ce35df69aed7f625284b626897d683fa9ba8c01921beb54d13e479036aeaadb3449af9fd8758cbb9b3764d17ffc2462d726c2679ce4de SHA512 c5f6f347315f789fdce11927a0b139f0a43cfb93289bea7794977f158e4147d5f47c67d5c8c0e3a87e055d92f5b466c9d164aad210bca4d18fe9efb062d156ab +DIST firefox-128.0.3-sv-SE.xpi 619123 BLAKE2B 4e192f20586e54061ae120326c759a565318d128ae0fcf1cd0104faf709042b0ae45184f940614cfc4c2bc8dbfa23b2298522a06c3f9e1c7812a0633bb1ecbe3 SHA512 b2595d15df36bbc4192c72d274fb1f8511e5098edb8eeaedd26df10059ab542dd5694d1d3bb429b6610badba5c5528059e015a07f41ceee30efca83f65e00cfa +DIST firefox-128.0.3-szl.xpi 526394 BLAKE2B 23b1acbad3a06051efa3b53b1ab43532774e741e2459e476b5f4bae1b66cc9e6d8fcabf708a2899470d6f94392f0f8bf6b41c1f9dcdbddcb0d6dcdeea2ec126e SHA512 898794f23ae188436d35ff05d5f4c7e817c7f7537c6056952d1a06abd15746628a2841d0933d00fc883cccf2e0268f104c271b873c138593f86373ebbb93bb61 +DIST firefox-128.0.3-ta.xpi 507521 BLAKE2B 21e1004fab9d36739a84dc2bed6b951d2b084af7479061eea23fe78805a76849baede4612bc5b4f18151614a434cf84f9cd34fb6806b0c38662517c27bebf1c1 SHA512 2a1fa7ebe9a2043a592e4601a6c300779e7770298d2c2df0a0113cf12bd044cf90c3fa7ffb8eac18260a1ad6b25bb2da66b0ea6a490310958193b25007591d7f +DIST firefox-128.0.3-te.xpi 561028 BLAKE2B cfd179c8db54f5c98cf3c1d9552d98e279ba8330b6610f64c9d1288b0fe33c39f876ec888d27e4465c233254433a55d3b0aad6510d9e115d8e3f6f63fc274ec6 SHA512 0e4d6cebbd33433eceee64eab8b40f1e36bb344e15e55328efe13177fb63fdc275bba266688cb45e8481ac5e713ff3e5317d4daf4ee313e411bf5b79bb0bf854 +DIST firefox-128.0.3-th.xpi 693562 BLAKE2B 0bbbe31a866de617c80c22ed199bcf09b93fd36c78aa0b4c7ee1317fb7aef4540947e8e6caa48a7d116b790eaa052bbd7b59ca642772e8ece308dc579393af6b SHA512 f8358f8d5011ae2bef783aa2171b42798eae4dde7f8ef62391769c12c392ebf367c3f9a2a222fde1aab22066e010de7e04ccbc1f660ead14067b2fc944d4808f +DIST firefox-128.0.3-tl.xpi 534190 BLAKE2B 40f1db1b12c292a5e26e97715f0f77a6eb5513f679c21bcf99406bbaba4dd533472138f13cc2be631a402a1e4e57ee932267a061b33d82ce96fd6d30400f2129 SHA512 3c44d168d8890390b698383564a8ef9750fbb6fd0caf344c4f3deb91249aa0093b891997657a99b62abb694ba097f305fd65abbbb600f69ac3e653ce5b37230a +DIST firefox-128.0.3-tr.xpi 632468 BLAKE2B 0e7c7151e9be548471d07a56b93925b0f7217ecbd7d3b2ed39d8052473644865bd42c53cdb796161672c2b84133dde6c8db70a942daf1a88077810ae0a38afbc SHA512 2b82e6ff9af985a59eb58da37655064e036211a7d1f1e7edad5c9fe5a898ff30d949bde31a151b0748867c9b6e9811a0f6089322f7f0898a90865d2df966a2b8 +DIST firefox-128.0.3-trs.xpi 503974 BLAKE2B 34a4cf3546aee4e4cbdb971eddb640909f45186ac6e8f0746d5cdf22c580fe75ad760866933f44ab8accd44973e3eb85cf2ce5326151efb8cfdfb7b1e92681bd SHA512 56d999fa864a8ae752e011b1aca21f68141890d8182af58d03485cc77f35cf257ff3e98b95f1fe4ec096b6ae641729209f04e8fa1f9d3c0b842d264dc0fb7a77 +DIST firefox-128.0.3-uk.xpi 707283 BLAKE2B f7864313a5bcb40f1bb2bffdc6daad3c82e87184a8e4d6d10a18a9d04da6769f402b1cec85cb6ddf8164ee312e8ad686c0aca5d07537d761d7d5153061ae6bbe SHA512 200a906734dab6adb054ec835b9cf378fd7edec2021a9979dc7ef910c179ab04434a7941c2b08929a9a7a238e423ba02b167e2673156da66c29f981088df1a32 +DIST firefox-128.0.3-ur.xpi 560478 BLAKE2B 0d85acde4aa9e0576aad590fc0c7d3799c73c6d89f9f1b8efaa8ff32f2c889f71382bec19c526c6ee2af0bb86ed9c518ee8dcb8c3b5ef4a65514080e73b1917b SHA512 0d30c97debe0bd3690b6938204ee5c079df0df3cac7ce5131bd316b62a048690a3511fe553b44bb6fe0871582c689940f40e5f6e9c1408d8ea739f48af7d4975 +DIST firefox-128.0.3-uz.xpi 478785 BLAKE2B 45b321b8143b10099a1246aa99f0f72dcf83c1d4846f7da1b0091a26bbe4ef563aeb51a7501795ca1f2e64d8b3e2dae4a83b6f121dca47989b6ff9d35da3a1eb SHA512 12ca3b256fce234c683d9294dc612dcb50c5d69d2ae98e01d9e5fa91987fcd13f4d08c6be103cd9c76e39f5776f2a8de02c122971e34fcfb0627f38502729bad +DIST firefox-128.0.3-vi.xpi 655581 BLAKE2B f9ef15bd809f99d525792ab9785dc15a892c6118c283f15d79357ed3687a94733e70272126c947e26f7007df74142c5aa3e3861c454c08292ce18c327d9350d5 SHA512 0d23d23da8cdcbe4005fabf53104d4502cf6bce0e13ea8c9acdab8f5e0dbb01a62e3987ff83fdc0f99a2c8c5b00c6fced52b44878440d5c4a100bef370598220 +DIST firefox-128.0.3-xh.xpi 417171 BLAKE2B 9e0f3da87a68da99ca52353ba8caccf0993ef27fd2661deaa78687eb6158e0a70c4ce2703390b9f0d9855a7449636dadc1e4cf8cb1fc146ed768eb65dc8d8d8c SHA512 82504106fb3908a4d8654addad204506a44529658f00cc9f4efdd9fa5bcaccf340642e1f5f5c36353173846eaa9b9c8483b4d59bd7d43c31c6d03c21a650ce54 +DIST firefox-128.0.3-zh-CN.xpi 657105 BLAKE2B 85d43be34cdff7ba76c8b9d7466678904b913593abaa4538221a805d59012cc9d4923750d41302057dc768b59a21ad8ea9af367af91c85924368821f303a7036 SHA512 8ff9a0c898c344182c1e0eca16b3adb47fea59c47a71ce5e1fa12ef02275e9204919eeec552641973704bc4e20b5f405bf6152192f4fce9d756c975b67bcb5e0 +DIST firefox-128.0.3-zh-TW.xpi 659225 BLAKE2B 5f7cfc5d21e1a98396259b46c28ca5531fc50e0fb0b78000915ccd7c97c1885aa53866248a9d8f0134f706bd5a920c63a11937dea304eb7b6c8b5dd00d9370fd SHA512 3afcf932e426fd3673f90fd1f8fb7f974f03d1821da6907768d50f755c5e59a0c80564ba7884a925d07ca2f53ee3980f11e802723c2a07dcc1c731aa650456bf +DIST firefox-128.0.3.source.tar.xz 563698520 BLAKE2B b717044fb0af090cca8adb03eddf9d1ba7b2e46c25d78de7aa36298d3b6466cf57b0a1c6c72ae369c5fc3484b9da9a79b902529350f3329b5f7254386dac9271 SHA512 52a0a1a6fa653f5a621a9e16e1937760c05a5ebc81a058ecc16b2c3d29d09d418dc5129deabed86ad2f82abdb3100969478a67f48b11616dc3b3e3698a1acf51 +DIST firefox-128.1.0esr-ach.xpi 464065 BLAKE2B 168762d0890e65d5ef0033a96d0b9b00f1b12df24a2f5debc56ff8010421cf2e2c561cc7d105853338244edcbcbf3a3a2a4f174568740f4b82d4dc11b164bcc1 SHA512 4f4818a789f7da04a71fc257317e9d2341ead3209c815e25326f13be1501aeacd7da77e86e4bbc2560d1b6952f91466ff1fc90efd16f02762c85ab06e461bac8 +DIST firefox-128.1.0esr-af.xpi 417524 BLAKE2B 81d764d8e9ee71c91d5876c2846929927af76ac51292598abc54926b0688eccb2d5e0e035cde820bec2d4d9b810a9f5aab1f11745e7573f398b8fa2e2d198933 SHA512 cff20507dd71d3076d44f98882f4dae05bc247f45d7c977baa8459b3bcfc1522d3791df2cc150892b838191b46656824e525f3d54f673f61b63013cc17906002 +DIST firefox-128.1.0esr-an.xpi 505891 BLAKE2B bd5a78cb39ee1d64ae5a97a87a97ab85e744797b3f5aa33e4202c0e6b8c2ad987f23ff93cacb707735fc790e8811955cd9b3b2afab0850545df5650283163799 SHA512 e60c790ce037165dbf3f437c59c5f75b5a6365fdde17a8cd6e6898be9f1ac3139c0db1613010dccd8d1488d53e7b4ce80586010d268ddc0d7b43f031c7492f5b +DIST firefox-128.1.0esr-ar.xpi 610859 BLAKE2B 6801ff21f3d89fb5681c83c6f732094699138ef8da82f57e35f7cdcf7d2ed1af8a269e7430800ea0cf3d14beee3220fa3ba10a377c9f674a0e42df084bbad85e SHA512 fbfdb0564bfcacad1e3bc42179f2c4c72f87e8a68ffd9dd7ce473516960b7410e523bcc20436510cf4c61fdfe4b921d1ac7d2397515b5a29153a45a91359afff +DIST firefox-128.1.0esr-ast.xpi 496343 BLAKE2B 9190ceefe857d5f37421f3c47f4af0416ba6d582722df2cc251c2ea93a41e80cda0d6ea8f0c8ec1dec65b96bfbbffba4ecbc3781e1805eee2e29313223349bd5 SHA512 1e2ae9f2745568722c14b3024be2feae19b5cf5f1091c249db20cba8ed8b8c2a692bf391cb485a05f8f0605375988fb022e041b37a08cc11ee8f13dde01ea97b +DIST firefox-128.1.0esr-az.xpi 490772 BLAKE2B 5d1c22a683d50204d5a616eb104516712669dcdc0be033b9022a6e3c3b64ededa01c01d8531988c6c07314babf60650f5d831c107153fc829c3aedb9ea7d4a94 SHA512 87c7875d5c86159b7a5ef993f5518bbc29f308f63512de394aef8749186a233dc77eb22de39c9c3f4b4cc2a01058f36ced37fdd8d1b7b9390fe49e13f4d49a7c +DIST firefox-128.1.0esr-be.xpi 714333 BLAKE2B f99bfe0fbe0ecc51ccb05c33cebf28f6c59819e6e6cb22cf4a0aca7f44ecf6dae3d0133dfcbabae234b5b1329cd956409affd60e2d4c30b5713d42e37822ffcb SHA512 fb234cf103b4a33e07db8df9feb577de5e775367a0c4391b75b33dea4b383d36b78d81e470ebd116b6c7829835a28322916ea027e54b63e5adf2dc42f7e2c12e +DIST firefox-128.1.0esr-bg.xpi 608726 BLAKE2B b4cf84e2c42db2b03bcbdbec5735d4c7cae57b9b46e25ac989ec81e4e93580d9ad35e18341f5c8650597d6a1168aeca6c111268a2cce9d9829a42399b6266c8d SHA512 f0d386d83273f15a6bd7ce1d397df99c33095fb647dbbe8c460adabaa63fef91f4f76c0c2c94a910148da0409a5587fde1e2d47184acad4686fd29300f531205 +DIST firefox-128.1.0esr-bn.xpi 581527 BLAKE2B 004da3ccb9148220c264610abf7a3999f810cd754cf7a88e98f103a62394dd92064fa240b5f0e45c9bec3b172998b632f4b77f90af773c8273880b9cd824afc2 SHA512 67f708305f0a5af13efcba5b63feb2873f30ee04fe4ed1889728b7fa248d7c54bd748882ed37f983f179d9a7a60ea0c0d2888b7a79e37ab083b49892523aa468 +DIST firefox-128.1.0esr-br.xpi 588931 BLAKE2B 6b3f93b744cf5727f5bdf2ec23a54a296c55c9c3fd8b3a39495f4811779e1d5f17d0320d273767a1e4418f5a9f81ecb7703c38c8d5fa72580b78b3dd3f68ab20 SHA512 eb90a1cdbf3fc0ca05e5ad4a2cc34ad2632b552ba60d9f875e957b1df02acd4266164e687e38bb5baced3ea5529fa2531274240a286c59b2b156d4233462aeb2 +DIST firefox-128.1.0esr-bs.xpi 501991 BLAKE2B ae0c29b7c8374d9edf23fc17a84dc38c7ab01489e63842d95267ff3845749918949adb15269fa8adee48b04c48d8fa8fd4678a0875227b17fadbceaf0184b3ef SHA512 4ea880709c17ded436da647db2661d1a760b0920bea7e450785d652fc7eed3ba306b122b4d6562037e12402c4c72dc3f6a7042d61ac4212987f890ea378b56e5 +DIST firefox-128.1.0esr-ca-valencia.xpi 546201 BLAKE2B 6be32d6c147768cf59748cda25424db00d65e8431ca915c539b6cd16ce8078fe5554ce1770e3d4d8d535ad84b9e5445d20908f10795efd04f9708b882c004f5e SHA512 c54d8975f8162bf176cb8fcb424e38f2a3f68195447053eb7da22957b832a2009e68c84d271f06983b026234b87db909c5a3008ba851a504d94d31428d8e33f0 +DIST firefox-128.1.0esr-ca.xpi 597099 BLAKE2B f8b2ad5b34a8a79c330af3be705d41959560a56d52b6a3a8439f184e1afe6462009ff20177f63a920a6c0f127b1c94362ff86d9fb2e121e4afd678d7aeb9a74a SHA512 46ce42b570e5549e4f17358dc1d77cebc1b511e952812041a17401e06c01ea0baf7f820a91598a19ba5f7633e63f2a1849979345c005e0135cbbe97239e8f0f7 +DIST firefox-128.1.0esr-cak.xpi 593081 BLAKE2B db0c26f5031b399d90e245525bb6a49a9c15b2931edd9f0d2c10139e66f64afa79f211a2f7ea32985fa2cad55dcdef090962c65aaf9215b14ea17ef0a5f31445 SHA512 677032ed8f304f6079f89fdd0ea405f61aa6f755042b7cd07aa47c90ffbdb0eebca1dbd335d3f9e0d776f4bbbdb0c62af69e46b105f3b61b6b102ea17776f5c9 +DIST firefox-128.1.0esr-cs.xpi 659606 BLAKE2B 4cc267b9f85f6f43ed7b32186a4bc858a9dfedda895748604dfbc0099fbba9acb79e1862c8e5d5bfcf264b20503b8bc0f0061fd41fd80343ca082ee0f8a9c014 SHA512 cc17892ce0dee036c2f1746b11cf9574ac777bd4f066c5fcdada3d41746c4c906dc6d638d6ea42600a14eeb14f0d61d34a4355d9651e013cfbeb36befb55685b +DIST firefox-128.1.0esr-cy.xpi 622910 BLAKE2B 1e22a51b1340309ddfe4de58b9c35d0bcf2b81b0d8d4b73662716d6a1425a84e142234190f4907e93c5a1a76392d6d83b7df51dd5cc19346d841ce820cf8f2e2 SHA512 8a968aa6257a297443d7a4e6c5fea8ca96d418a97a6d5907ef3886b9415ed4290aa753faeeeb3150be795b8b6ba374e2d6f632f3d72206bb922dee1d4177f025 +DIST firefox-128.1.0esr-da.xpi 610845 BLAKE2B 6a0db984ed3da34ca17a2cb7c55a4b9bbc18470774664f0d327254c7bf48f1a329c696053129ec1fbc310c0c062cd20273ce39adca8285ccfb9ce70f951ee906 SHA512 cf08dac95a48345aee7134bd2248002fbe4b89e5d0bf29b5ff550749a1c92bb5ed73adf79ef380aeebb6f958f8d34637d52227219b53ee9b76e94d489aeb8d5a +DIST firefox-128.1.0esr-de.xpi 632487 BLAKE2B efa678d9bec473ce3e1d047d35887073c0f3692d2a3954336c9c1ae8a9b696e26377a42fd566e392d0c9a9eb3f3c0cc2fdb91b296951c74cf5bdd3db1834cc81 SHA512 083d0a1f77f31facaef09b9254787f78a1fc0fb0160ca4620b3addf9bd91119bc22ab12b115e85b97ecaca6830901841ccabec936e4eaa4be4dfc6ff8daccf74 +DIST firefox-128.1.0esr-dsb.xpi 650897 BLAKE2B bdcbd25f85809e26674f44015d2d4397d5915533ba357db56be51a760a6fb2d5c0921f1e0ebd426c33d84539b350ca2a31ab829fc52477c3b8acf7aeb35c4503 SHA512 4578ab4122ee04f11e64ae5db01d8dda622240a67e108946ea1c257e758b92368f4fd1c7591356e65156f57a10e301c478abb5c10f36af435f528f5d11c3ea9a +DIST firefox-128.1.0esr-el.xpi 733066 BLAKE2B e5101c7b474f2e5b02dca8742f9294b2431f8c64c133089f9a1201873dc61e0e6b490d5262d7d6a0f6213e89bc4dd758b684669c5fb69a1583d3d8125d4bc175 SHA512 41097ea9ff228d929b52cfd9398f4afb8d7d9b575a66f0075aa8909774d9c41ff161eeb1cc7fedf2d026f5b42610041b9a895ab42f3f1b00acc5b4b83248a1f3 +DIST firefox-128.1.0esr-en-CA.xpi 584673 BLAKE2B 79a8d7d7b2b1e589bf394aa2f40e6be1ddab5bf0e7f2578e4c66dfb24c44dd32ee1caf93e41183e67086f9a94e91c9e4f87f65197576f8b3e93d5a6a42bc4be1 SHA512 853ae27b47cd3696a751d025a23c01630e786bf59043f3f34f374180047620d3a548b8eeacf9b0fd479888980d5923ab61cb19f447b3a6816f220ae2f3b94e6f +DIST firefox-128.1.0esr-en-GB.xpi 585478 BLAKE2B fb5dad5f68e9d01147dfe7effcdda827b9a0151d9ceaccb53dcffcafe1530313fe6b2bac8ba83d3943a497ca71700cd8c8187f65f55a3e0be9c02b28ae6aa406 SHA512 58f44393ee66bc156e61384c198f4cdc53b240bad1d403ce33e6160439775110b21477f40b6f5e7e05f05dc019ae7e712bfee610383be640ed4b60d1990ddc0e +DIST firefox-128.1.0esr-eo.xpi 613702 BLAKE2B 06525a747f9210bde080c8b8272d2b8856d328d5922ee2f078fd87c4f324064d873519743b8f5fc088dd06f189e92cae16c87c8459115ab9b576d47e018fc968 SHA512 2d7d5c2425b195d3a781dd4b20070c4e0fb3634c7bbfaab33e6bd5f95c68cef2f179d9dbd1bd43bfd7d871ecd70a06743a48223922fa8e6439e577829f22e81f +DIST firefox-128.1.0esr-es-AR.xpi 628268 BLAKE2B 02a4b05c6aa6169999b819ca34e536190211bf3af1be22797f9e162254c87399775315a859dab3725c193ada6a292547d1ab9c7dae1971c5527558ab593de4b7 SHA512 7663c980d37a61b94dacc4dc0387d1358bc65859755a311c1c8e320ede635501aa693d3c719c4105db2adbb3f3565aa07cdd1090e67372f7805312ccd9274bb6 +DIST firefox-128.1.0esr-es-CL.xpi 627530 BLAKE2B 90308be6b660a808e5d0376f8a516adc40d3771bd5c0cca2a6480557d17eac88db8f2f66c9af56640d8e71f1d420529ea61c05052eb1b2dc04abf743621c0224 SHA512 ef6e4c3a31f08fcb13b3e6734749bfd78e45b6fd018c05822673c4fa006ab3d33055de8940dbfb7ae2130151f118c0d3c925454b8c135895517519c776c900b1 +DIST firefox-128.1.0esr-es-ES.xpi 621080 BLAKE2B f89e0293f40f5f5372473ab3bb09229ecaf6a4bfe3efa4259845a81aee4b03f079721a763b0840387bc449812c0e5eaac53d472f1c29326cd05750044d9beed0 SHA512 8f10622a50c8ad9ed1e483d834c47963c11ee410e7d938022408aad35ad51f7109169e26eab2a7257de11f80d51a76fa714ba012efc0e1cf3502e82752fab7aa +DIST firefox-128.1.0esr-es-MX.xpi 604999 BLAKE2B 4ee47c95f2d72378d88ddc35e988c21351dcaeb4470a3d86f1afcfb0df0cf8ebcb68464f9012eb99c276f94f9af21a683c98c8e57fe2bfc0df69bb823ac8c848 SHA512 d3ff26a257d874149b9b39e5c18fca255041d84932be0343abc392a44b6f908a04c686a2df13e5f224770f0809df5a0ea0d647ff3eb20067fd78cd79f1439c43 +DIST firefox-128.1.0esr-et.xpi 539538 BLAKE2B 850cbbe2638d1bda63dc1d65d1ecd8ac887f2835a4c819360886eecfe9ae16e000d0b9cfdd04baca7b18087c0037c6ef107a3324d9920dca87b0773db403d860 SHA512 4b2f05aa41e45d08ddd7a9b418787d2d9c76ca917bbbb77749008f7b9c835b180c3c0ce487b8b5745f2ae90e55f5e388232220e83ae3f285a0fc2f8034dd0e27 +DIST firefox-128.1.0esr-eu.xpi 599314 BLAKE2B 6d7de6906db351d7dd1cbc6e6d37a5d7fc6aa63425cf06f055f16fe50caeae3e8412fd112a131892739334c5c4d7460d895a3e3e521ec0954e7f43a8d33c3d95 SHA512 12e49951e3364540f0d91b34dfe88e6c15b4de26b0dfa196fd35d416e2658d6f4d41e92fae7abf1c6090fc34a16dbaf45bce6762c605a89bc0199df67b498841 +DIST firefox-128.1.0esr-fa.xpi 590029 BLAKE2B 2f9d8e30867106aa51f4216ab9ed6abada49499189777875256d400bdda4e68562317dfa3d06eca0a26dffc6e292c8559a5246da9dc54ace0efb02d162ce8c7b SHA512 9936d795f615a2f33dbb2116bcdfec27562d7a1b823d260812213b621dee2c9a8056dd40c88f71e80781dc285bf3ba9bda3ef06cd28dcaf7611ef43e532fb548 +DIST firefox-128.1.0esr-ff.xpi 476066 BLAKE2B c3c3c790b0bb0dc2da3d3c88695e2a56899cd5e18f96f16382b63c2a96131c662a36381f7935ddc3175246c5374e285bbcb779833afe38d5899612f92b8d4255 SHA512 07fb222efc92ba2679c348ee3d7d6a7f321027e30d2761ae1be5db587c7b6412e99c4ba7a9308cae40e81030c2b9b8827491de59a384a0e0c4fc5388ea6870cc +DIST firefox-128.1.0esr-fi.xpi 606453 BLAKE2B 77b52d23bd78fb7df83ee135d6e7406f1387328266bd800b66218e2c0f0637b8322380233bd4cbd295da2b7ca83db5988e733289676476b35092752a737fe15a SHA512 f6021a592b1c183537297a945f63ea0a204d950503f879dd11045f45c6af33be98d66be4ae37cd9328e0efa4b12882669fe1c671dd8faef5163a2534b0e18c13 +DIST firefox-128.1.0esr-fr.xpi 640303 BLAKE2B edcb15670a4ec2466459cd12be22a5ee70b896e7dda5cd5f6eb7fc7d21e210a556cc1a6e9bc529e1d162b3005b376e0215acf2bd0312829c7292484d91daa899 SHA512 2b5420d91cd2a954b64ba5c243fd6a8ce96180c7d4afaccd1b7ac90a16cd6b3424bd60a1e2dd00457d4886f6d791c6b89c4db619d6e7bb618cfaa88343cd4429 +DIST firefox-128.1.0esr-fur.xpi 633983 BLAKE2B 2addfbf3c68084d837c0c67c566ac3e1fcce024e55c2ebfc8ea685464db16be7de95ed2f506af745a5d25ad74edbed400bdf15b75a227584e0f66865951edd5d SHA512 0dc1cba72fc1f13b89c4293777ca2b01b9552768bcd9a37a7d7789905f6c87266583e8c8ff768e456ae442fae698a1ce04d739b47bbdd9fd8fd4c91d8ba19251 +DIST firefox-128.1.0esr-fy-NL.xpi 623944 BLAKE2B ed13d4e14e0df8bee3e512c6c9a2254869d94d0fd182ba58f1652e0bb5a67c076af443f56138db8de04e9bf8cd84a0c48d8b20e6fd424c586c605c20f44d548f SHA512 a3eacc7dc8148d222612025a96bc120ca1b954800cf46d7076dc0c15fbd6441b0bef5cc723c2f58288492a58f96796b15ad9e1fe29fd4037d4f14c95204f9140 +DIST firefox-128.1.0esr-ga-IE.xpi 470994 BLAKE2B 288ca27695949c1a85fa2277348acce65f71171cb5c476c18e0e79eb723c3add9349d5e0215e200d034913c4ef6d4711f87eb72520a70ea048763b1ed8849330 SHA512 445b573b0702345ab4b5b89d5096e6493934693643ab60ec70179c001cf66058e4d9b376c79105c57e2bfa367a8fdca662d2ad58a7b70be9f1e28f7bec6cacf6 +DIST firefox-128.1.0esr-gd.xpi 596583 BLAKE2B 02cbf6b4c24c2d082783e1f7bcfa8fb04d887b83a84e779e1d12555a686453a123baf32c9469958075268c0ca6f636872c1be7451ad90d1ba2dee49d4a34a8aa SHA512 a5ecb1806810b70a866d69fbfa6fef5cf1a4575efa38c9b4b7d4b45f3609f47d1626e087c38e097335c1f4d827c0919148920757308ef588b221fb317047599e +DIST firefox-128.1.0esr-gl.xpi 604099 BLAKE2B c3d2606c8ba260a0dc4d7d2e7534495481d0759fee8bcc4e502ba04eccb7012edb90404e0028dfc39c14dd78acd7d31509c30e9307ebcc3e9d0150004940676f SHA512 211cbc67b492a43e7731cd593e851daae138b177484e9a0bf10f68b82f1b9dd5be4135c4c2973bf6c92bf800a8900dd025f0b58d2ec376a4e65d10918331cb13 +DIST firefox-128.1.0esr-gn.xpi 637429 BLAKE2B 01dd530e53691418a4c9cf5211154ca26d1d5454d8a744eea4481695bec84cdb03ae7667e2586b8a8dedf81872d87b6587ed998d811b89607aab809af44efd62 SHA512 3c48368e992bc94d2e89cc4edaaffb3af21ad6125109b2126971549e395a657c9e4947c46334e49014afee34519f58e3b13ce9d4a3ada632ab1d0358bb4dc866 +DIST firefox-128.1.0esr-gu-IN.xpi 527348 BLAKE2B 467e0e6fecbeefa58d0eea1158e60a604850e5dcf22f815081c3ba2cf9e04141570e995f1723aa4433e5ca0137606c723e5ac0e9a696879d00c200db81cc60d2 SHA512 c1dcf8d636bbfa939301206b88355ca7c407455ab839198defb678b9c888f0817dfaa44b4a29bd0c9bfa525575bdb298eb7b2520fa9afb723b7562c140d54435 +DIST firefox-128.1.0esr-he.xpi 631697 BLAKE2B 9a2867dac1365b6ba241c332f4f20ea9e9fa9eb216e86693f620885ca5cdd1254bda7bf5d6b668d91b515250f08b1c6a317c7040b389e747f6ae4e3373618118 SHA512 1e0cf300ad3bcbbb22718aae60ee82eea4f9c7dc1cf9541298a0082ffb6ee51680a37a42a8bad335bad18e0cb164b035f8fcd344a8ba89b0aba2f0049b6886af +DIST firefox-128.1.0esr-hi-IN.xpi 566769 BLAKE2B 249fad3b4fa1b0dd4a94d5d4e321328e3ce7ca2449bdd488ec0fc25b10dbd34bc451002141c7ba42bb9d8e67ea05e2e6a09c984749d0c6e20b1ad9be3c6c52cc SHA512 10ade4b914a49e5a48fdfb4db7a147cc1dee6baf7c0687f5bc847251007fb445bdc535f9b63b276a1b576df93522f8706b291ff7682723db8f44dbc8656a0cde +DIST firefox-128.1.0esr-hr.xpi 574802 BLAKE2B 734821b1fa52511d466a8a7e4161b6c5fe8eac2a8536197701061edfa99e6a0836c86643662338a856283f8b7a8b03fcf93c8bb378ec0c34b24c1dd98d024518 SHA512 f702c7a13b2c55b2e11cc4423487882555baf01953e9fb87951d1cbb07664b5c79fb1f9466de212a8b057e9d8c827f342928ce62daef568c61e047c6cf606bbd +DIST firefox-128.1.0esr-hsb.xpi 646976 BLAKE2B 635b8d268c0354037b9a833b16aa5d9327a66d6d951ce9bacbf4264dc6ad40d4b3751cf450e0ebdcd3c9f7a537aa94ad012dd41235dbc9cebe2550f541b7354d SHA512 39c7a35d6bcb02f1a9179f225b8d39c665c21d74ce9625381a74ac72d8139f0389e3593f980fa111407560eb67e5b4d27cca3c2d7cac0128d1cb310860da261f +DIST firefox-128.1.0esr-hu.xpi 649172 BLAKE2B 149d2977b98c797d58b32fc9abd29462a9206a9c5364a972687797ebb19d1b9fcb4834a4c89b46b4b664352b36c6af04d2194ca6a133c699ea7d89d24fe8c64f SHA512 6681b2c340e9cc27567439fe5b0cc304282696b6e2e016b38d51b19216a6ee3608c38a8b2c8775e32c466742bb9e9a0fe5ca0bc1f7ffe35bb0f4694cdad2e79d +DIST firefox-128.1.0esr-hy-AM.xpi 651607 BLAKE2B 7d6aa860750534eb7d001ef25369d6d5a3e75e0a876c60c63ca699b258861dd7e5ced891949d7f70c06b0ee56431adaf5fdbff664917c5faf2f44d52fb8e4a80 SHA512 46cfb3a9f128afc3c89e7667a7cc018c83ff2d70b2a6a00f6d0925b1855e192fbeb3bb17504c7cde6256d88a2478e05cf878776d9dde805cc54411f59fda2524 +DIST firefox-128.1.0esr-ia.xpi 611440 BLAKE2B db841d9a22f3992025df7ee1bd8f0442eed36cc16d4fee5719fcfcc497bf62f5da3f76ff77da6c7523f66114339acac71064fb503d5e230e9edd26dcfc102f06 SHA512 2b7996cb2d0fe2dbd688de2c15f2e98a4fce15b068a7c133e76d94c9ad6d253f07fdfb70f7644d80db7eba152352daec4c7e7f8e26cee47bfb448bf4bf636098 +DIST firefox-128.1.0esr-id.xpi 580222 BLAKE2B 11b2363866cf131a7bd6e44e26a26ef55859848189df1e2c1f0b5856c87baa7b786e1fed8d052252d29c5baaddd80fecac76b4ad91837bc6f942ce00580a3567 SHA512 1babb22c0a23284c2f9ae93edc049f0c681d45e33e426db8ce3645231c358e603a24bfb4e290bfa4c14096579f16274bff26cc62540d6846223257901dc53207 +DIST firefox-128.1.0esr-is.xpi 616485 BLAKE2B 8f73952b44599e08e870ab11d2a0627ed991493fc6b2a9199b61809ab69656e581d5d469dcca2afe3941c5cc2f28144209b0fa8fbcafb8e0aaf3c25f92768498 SHA512 286fa3fc94eb11127f9b9a0fac69725bb33f71baadf73920409de216211983819a221496b8e1b560167fdfb9265db6979f356265f18c91837eb7f501d3a6b73b +DIST firefox-128.1.0esr-it.xpi 567332 BLAKE2B 6d1b2d9e4d4bfe286f909fa8022698321d61fd004f547a95d37551b4e36be81adf3b2ee2682e57e6ce54451abc9dcdb65a8981a8cde9967c6ee074e0ab9841dd SHA512 728e55d35f6def17d54a40f3d59c55cde75519a6a5c6bc725a0dd058a8b8c745afb575e8c4d996c43d0edc75b6d07cfafd1fb5ad4e4d8e6b151596aaea4805f7 +DIST firefox-128.1.0esr-ja.xpi 675628 BLAKE2B c30635c5c1d5cfcbc47501099447adc511555f29608a4132bedb07966f86db0c7ab7a1abd7eee96b872ec216d5c26831e3c4fb592ac5af17a2771a7e3d067fc4 SHA512 1224e0d5a82ed668b9af81efc5d83e819cfad7df8bbe09306a1a5467fc4d6e6da0e23e135b97afd0f51d50f6133f0697f5fe302e40994a1b3fe4a2cf2cf497e3 +DIST firefox-128.1.0esr-ka.xpi 660720 BLAKE2B efb92f8e2b484706ee63f631238eec9d8126d2159a12c6c23cdc3e102a9fa437a665bf7241fab1e4807a084ecd46a181e89cc2e1c17d5ecc09ea5e6bad72d1df SHA512 1f55f7a9f5df663d1a3e515971fd2789c702923eea3ef80967d8f429ac5bd1687fb666b1123d036c0adcbab1bfcf3cd550f47c527cf28bfb14525e2bed8a1e75 +DIST firefox-128.1.0esr-kab.xpi 610552 BLAKE2B d0ac92a798f01632d97eedf1f17d67c6c51cf61bfc7e8c7908759442358929d3def78e1408bc194164460864dedd1fcdaf423034587d10d5c8fa179761738360 SHA512 7acfbc19a8d715cc13c21785e15b1918f96347e5666af5f2155275c4bfb2141bf050b0af8d58a9ebc216e9ebb251cfc951c6a2c0707e6c9dbe99c56705dc24d2 +DIST firefox-128.1.0esr-kk.xpi 708113 BLAKE2B 6dbff6c2b7d484f56df24c2011b30ea9ddd46a87ed575283a573bb544b40cf6f372056f9872b2ee33c62a24ca69b5c2fc389f9fd87fffd547daba4592f59598f SHA512 0f684acd76a81b5a6d96985af7b0f1bf683c32792786f289341af90b5d74d218321acb66d9e5d77641b3031e75250c8122db2c5a03bc9cbe0f112b9626a1d924 +DIST firefox-128.1.0esr-km.xpi 525882 BLAKE2B 22a443dc9a845484e18f3424be90d6f3100763f2c955a3715de53f747c69fb5b3887b792edc451977fbdb1247a0e8c8d17275b3ef2cd01dc2d7439e65252ef3b SHA512 b9d831c5a3741cfd34fa615b4ceda33c7c574cb824865cbc059bf137aab9d4770a38240a5659c9a4e72636f8392bf813d03e19fa3a900d48589cf3bf47ec1e9e +DIST firefox-128.1.0esr-kn.xpi 491242 BLAKE2B dcc7c212e0d22d8f96ede921cb667265668dc1b409b5904286c8061dea99b2a37c61850fc36c65140844c7967759a4bce364e0baad33d47ad49f255ca9965655 SHA512 3e98ab5bb0909d46cfdcb213cfc902688697f469c0779d1da261662b97ca4f49988e7d5266bf7bdc3940f7dd7b93bfaca95950c9fc7887905f774359414edb47 +DIST firefox-128.1.0esr-ko.xpi 661842 BLAKE2B b2672b38cda2a3d60b42ff948fb3d7c891aa61c2b2b1977d8b6d77b637312bd253c19614bf534b4e9195374257cb97bde9e5d87c4f504028015795b14449cdf8 SHA512 8844dc3190c39d647a381984c433fe709d9035d5ce22b3543f43717a8c9decfab19a243495a94aec6d3299089b78c3a2d3b2551e8716cbfd9957c58251bc71b9 +DIST firefox-128.1.0esr-lij.xpi 484103 BLAKE2B 657b96a6269b8d1edba8b4c6a8b82c29911702c2a71e99366b644e3b40b403cc7a948e030bd787196cc75d10905ef70b501db8543ce245955e6ebdc9676e5434 SHA512 bd2e2e1a4cc1df9cfb73a3f3b5f197c6c8901e2a0057914fb5e25055a881a728fd5ab80ffcb1d0d6142c23dc37088af20e2687acaf6730c96f1b2488f535767a +DIST firefox-128.1.0esr-lt.xpi 572686 BLAKE2B da2b7e98c35c3d6ffdad8a90e99730dd5268e63fb8a20445bccf142f2739ec18cde78efa94ab63c48097ae3a102714ec9f4b833d89a80b9780b3fe3566e9c073 SHA512 29f45789def945db487b0743f590ca5c05098641bb538d5c6d97b1281e24c156c83b4809cd84d17fad736631bdc9b219f92aa6f0c014b68d36e59de2b5c8a127 +DIST firefox-128.1.0esr-lv.xpi 574397 BLAKE2B 359f08fc4e980b92ffb2046d7de5361322441d003f6bf45e27aac372443e64b4c462a5ca32dcd22662d519af39611d523cbbc8e791db4c2549ec0e449d2292a4 SHA512 1c83d9a09f2c74101227ebf3ab916ac9f76b835af668b3de2f7644f275e9af444369f4bea57aed3b7783696966b58217eeab28a9a862f458df64996b896e3e5c +DIST firefox-128.1.0esr-mk.xpi 493845 BLAKE2B 5f49b777dd1e22402d9f1c56c3dee0d6cb135c64a48fed0b4c28dfccc39c3a209952248d32bd49977483f5d2f9a610f72fd5c0e18d17f4d9a65ac7d939fe8f9d SHA512 a1221fd6ede7fc95a76c21cae01ac591739d216be0c3c8c5f12c561842ec03172fd383e47406657afd6f8dad4201478a14eb0c21ccb78550107e17e0fcf2413e +DIST firefox-128.1.0esr-mr.xpi 532106 BLAKE2B da3ae38392a77a1dc292f2b9ef6c46f03c82cdc7aa9b7d8ae4c9c37dedbfd6c6107d0a83de1b3f05e9eaaba607811dc26bfdae27d723d6d97c4437aba8e3c52f SHA512 b5bd091c7c5451218b81b6ec303e0201f731751d03071e06efcd55dbac610d5b7daabba6796077f579ce85397a463c15ecaa13365320e136065450b89424fc6b +DIST firefox-128.1.0esr-ms.xpi 449720 BLAKE2B 6d88519c71788646c74bcdd40bb88cfb29f0807657ee4eba4f637b435b13a17b22ca5d5f32720fb4f0f1efd0b6b74512f1bfa7fbca8afc4e04cdb45f8b2fefa1 SHA512 b5387152e4d588ac72ae56675b0af6d8bee31144b080b2d7b5a1b64f2cfbc645c1e9bc6ca3d4345b2703bc73473f40159a8888b78b9d3210d6a7136f312aebea +DIST firefox-128.1.0esr-my.xpi 518627 BLAKE2B 815173166c3c9b67c133150d5ecfe74c4642f3c35872e2f079bad2a775d2b7f7990d2fcc510f9c622c7f49730500e76988f3c1286c089e72dce2946bcedfb296 SHA512 9feb6ab4beefba65629f7a5ca39b244e189c9df9cd4f8577b9dd50a292825e1b4940619b3e2947df04d00d2a471ab98d0b70b00e51f871b8a6d38cb795360379 +DIST firefox-128.1.0esr-nb-NO.xpi 607044 BLAKE2B dd1dc4b96543879f3c79c410e7ddf78e5715f7a2d7e6200a06680e00b76e5777b4da44c56db03a087c3ba12923c96529885b1c64652d32865c82fef68d94374e SHA512 929e3fa9bfbb17080fa04bc58439287a84165e80b109771af333e8477c5967bd32236480cbe662ad9538ce39ea2a85947d6034dcfcab8300dfdf61b664a49f5f +DIST firefox-128.1.0esr-ne-NP.xpi 510947 BLAKE2B 56116200d154f08abd60d42f14cca9aa6932c9fa25af496137f07256e6e07d3a408eecac74a545246e1740a0f3f7ace7508e281d42a1f4adf1a92417553eed1e SHA512 4e8e5bcd9cd7939a89c7dad9247b49f0b7390b69568b5f2b1f839706ecc659df2b5a8ad1f02126daa5335ea4416735ed64c5a3f524cc29d599c1088f32d4e917 +DIST firefox-128.1.0esr-nl.xpi 617626 BLAKE2B 646f43ae271e496b6edeb54813223e33c7c7d5859196016dec37f2b56b3a5378065ed6c4a425d9fc581be03b815e152f81774e6ad8ce0a9d36e3bced836a2f4e SHA512 5d5f4ca4c65d6dbe85d86ca361e36acdf930854e4eb2a064b1dad5de9abd173876d1d0fec80adce51ff701adfc0d90f595d81b3dac87b7e4a9644f8f47b9dcbd +DIST firefox-128.1.0esr-nn-NO.xpi 610286 BLAKE2B 1d16f6951b6d00d95f6f81d2f3251ffae3b4c81e7eb5d6868bf07258e7b05ebef5ee8e0ddbe8050ae3350c02b05ea302b2031e0a5b3bea58b8407675ad294e67 SHA512 d6788c373d312a5fedc0cf1007cebb53d94533632fdb33b9383116598d4801ddeedfbc44694da2ce7546a1252e5b3e859771af271a23b88851f50b6fd54b73c8 +DIST firefox-128.1.0esr-oc.xpi 612826 BLAKE2B e29e419883c8a69c341c7906720d1d2df59f5478b3d2e3eb91f20917d6f3aca5cc29ac8a8766d578353190cd84d099d1b7ebd4b581a4bb08f5ff83694b01a046 SHA512 cf417de30f8729f082582694636c9882547713ed4c603129806092c887e99d465ad09fc14ec3db59209e982ca8b07ce19d69bc429da824f7cad58c53f3392c17 +DIST firefox-128.1.0esr-pa-IN.xpi 692038 BLAKE2B 06988ea7b07a5cb8375a1b2785fa1dbbd8ca9a252ef88df092f04e01c7959e5870e49a7bece3c40d93ad6c2a65349f007889645128d24acf5842c13938e0c10d SHA512 efbc9ef088913b0e03fff86aaa3517fd8d2ec932e5fedc30baeb752fac9e658b0f30afc1ea1742782d34909e894f2a7cc17b0928596eb7177226db64aec78481 +DIST firefox-128.1.0esr-pl.xpi 635786 BLAKE2B a6607475474d312c4ee7a54ae6cad1f0bb4a29afd63bd45be8a49334d2560da8e56758e9a9b774bcb30539629259f1a5726c5d481dfc10bda1a9c2157b86e66c SHA512 1772f9d1c6d92557e896ce4e97f8fefe0c35944807056452f39186a5fcf185a51df2b1f8939fa1e24b9a3d5843b5be2c141ce365d1a7d8ec1d6219eb34b17749 +DIST firefox-128.1.0esr-pt-BR.xpi 622163 BLAKE2B cb3a7ee3ce54be547899b370cbb36ea8fbd15e97eaeb439b17b434316ed6b67ba9ba5cb576b11f9823982d9885bbd11f2366f9792e6f6bdf75b3752cf3d9f8ce SHA512 56d617515582cbd3ede67e7a316c56d1f324255b7739270c3715dcfa286e3b519c182c8192447fb6efde50304b4cb19d74650fa293b10ee6ec228ea859205df0 +DIST firefox-128.1.0esr-pt-PT.xpi 626185 BLAKE2B 9160ad68f2d46d7ae0b68656153b0b639991694fddd00ac11c86d5965a3242920be0c05cce162022bd2fcd72e973b47ffec9c49c925bf319a156160c2453e058 SHA512 9e22154d175cc6a02ef2a99bf8aa465bcb692158251ea85f7d400efe817db1ec1f8fcd96a4f393d8103a6ea03613bd67d4bccbb63b4a3d2e14fc00e8d204c8a4 +DIST firefox-128.1.0esr-rm.xpi 617923 BLAKE2B c9f1bc265baaaba70996681eecfc78073ba99e50f6b34105a70cb9a85689c708b9e8e2fb87287b74837954eefa54223acff2ee2b202f906ac3af1cb8bc9bd1f3 SHA512 a819c18c10deb5c1a0c315820b0d16154eb8a382b1c7b69bdb1e815b3da25a78e23e125ba07a821fd875a6b9a06138625186c8dd5b7bebcf544b61cf865bbb56 +DIST firefox-128.1.0esr-ro.xpi 549787 BLAKE2B e5b419eb3f37b2b53032857ad1186f34b0e602a84eba46b63ea1ff244032accb634935e492ef5444cae35b66c8311d6545808572701bffd313f1f164bd22d55d SHA512 8d05d60f250a7a9584724d4ac4f5f3b78192674e80adb1a30aab0a3791f973ec8d7582ebde8305575e02e3763b85ccf1f24dfc8dc83cb4379eae43ab099d5316 +DIST firefox-128.1.0esr-ru.xpi 720695 BLAKE2B ee2c5f0bc3fd0cd0f1248606917aede08aacb61c67a36230256b22f3002f5754c8f7a73b54e5a1f051bb02057f59c34271cf92d6f9516ab91e177e8256e2a02c SHA512 b8c259321b46480c25d1157dd7558e06606a4bfafbebd4b6b58c3d58c37e728444adf82a6034141c545fbec9d355550f1de192e2f06b042af7a79570dbbff2b2 +DIST firefox-128.1.0esr-sc.xpi 588590 BLAKE2B abe7197fd951673d9102a0893679b4c5b374a86ecb00fadb629d88f364d392739f88457ba90e0411b446248d90e5ae827bf71747d6f7ce9e2ebb2fc167f345f5 SHA512 ebd3e74988ae73df6758516dacc77ac5c62086970d89142eba34c95de0663169faf759cc9e8555cb55df4855b849e59bd44e0d7c9f5897d2e658c3c25124c41b +DIST firefox-128.1.0esr-sco.xpi 511277 BLAKE2B 1c041199a101ff1934001288fd0d9ce08776a186ec6e43946e1be32c9c8736cb2d14716902a192e8f08e9baff96cf0b696af98d5bb35df99c3bd71002c46e4e6 SHA512 a402ebd4a27a66f611c083c51b7b3ad8bdc1affa357696c993017dc7e7e182dbb55fee63583b36561e8ba58cd719613760e10a5edabc0f721e4b025a538c5c5f +DIST firefox-128.1.0esr-si.xpi 611298 BLAKE2B 301cbc928083baa24ca3e86775c3d88f90cc7dc064cec21d74edea7609d5d196286decef9fd222d1c08599d8cb370f801df3c576d3ab1394da32df08f355a7e2 SHA512 8a632c3055933fc4e2f675232a630950c2dd65da8b220801cfd32a4b09d9958fa675527889b33ca57f8180271d88781a620dd0078ba8eb9da46033bbf1d46f98 +DIST firefox-128.1.0esr-sk.xpi 652701 BLAKE2B 97ce1fcc3b0b764991313e2957f0bc8aa95339f6e1af914c269ab8c444f97294241c6fd3550269592d771bdddacd2f3451961c51813f6c49eb3772ff5dee44db SHA512 46756945be6e91cc398e95b7ea1b01d8ec705d5b805e6ea12000ef27a868eba2c0c651a246b78015f5d841ccd8fe204bc87f528dd10aa22981c24d9f05b2480e +DIST firefox-128.1.0esr-skr.xpi 707654 BLAKE2B eabb062b4e94281fe09c0d0ef182ab5a5f75cdbd8845a3e1edbfaf8bce289d5a01bfd7e8446723a56af0b2f86fb807acc6cbc1c9f3510574ed34205112acdd0f SHA512 8dd06948063d8bd789c89a9a2dff75d4e149100c939fe08f357633e170ea7f62d196aada054a8a9760a054466f8379225e6fb0f4a6362c2725508f5390b17326 +DIST firefox-128.1.0esr-sl.xpi 617916 BLAKE2B 44d4681b884ef0bcbfefe787ec270469844f5b4b0165076395370fdadac4ea3e784efd8592dbff959b654a09745bb44a8154a1feb2b3d3bb973bdc7c43bb6100 SHA512 9728f40be5507e0b04e59069e041e82b38151eded17446f6098f39be846dbee290aabfd4142207bd90f782fdc0de204cc3df2661e65f45dd2776a6121e6dd9d6 +DIST firefox-128.1.0esr-son.xpi 416392 BLAKE2B c1f637cb47a299b69a1925d398ec5f7792ae6923a444af70898b77dd8b85975fb7255b426bd7e3cc94acfc1a1c53f49df0316daab415553d33ac274db9447895 SHA512 c903ac44596f0bd3bc781af42efb23848fc7dae620770cf3134b71b71153b02b79c6bcda264aa58619173fbeabba75537f8b255f42af14adc1a1ea123d69c2c2 +DIST firefox-128.1.0esr-sq.xpi 636978 BLAKE2B 9d83ca5361eca1334e192fb26fd95f74b836c33bf8abe0e534a7873cdd08df77dd0a0da124de2b28a7afa2590b0db5b17e0fa68c8f6e0a30e940945b586072c3 SHA512 dda78212084536989dcaefceefc8fa9f048d9c8b4cc6886c5498091be35d3534e39a71d83aaf6a5dfb56c9b29846d8f12c853b088acd3787babee781262dba20 +DIST firefox-128.1.0esr-sr.xpi 639362 BLAKE2B 0e3d2ce65f20f914a2af4ec918bd7424584268e0f128de48d5e0694c8f52610843768c0c310f930f1e724e0f5f9b7304491cc3692146327cea828621ba3f2136 SHA512 a760b2f74d3ba7360befa385d91dcc3008d9831afed5a47f0934a4ce51af46e1322d2af68fe8d67a3a9be748ebdf8b7b6b63e8d95d5a7eb61a9d72fbe6169948 +DIST firefox-128.1.0esr-sv-SE.xpi 619365 BLAKE2B e03b747786895b0e2789c9267173fd93052361d12ac930a7f821988451342f3c8b7b9c15556f88f2ca30bbe246eecbabac074ff0fdf58d7dbdbbe03b5ca2e5d1 SHA512 d12b6aff91e92ea3129a3da68d849fd4f285a7445a658829c71c1f9fb84c7875389b24635a8ddd6f1d103006ea3d62d6a8139d4ab3b7f7eb872f715a5672f176 +DIST firefox-128.1.0esr-szl.xpi 526394 BLAKE2B 3268392c6132d0ba0cae5454f3c4aab02fbf67c15a5dd6af85e3fd5554087fc36a924fa3c087b1f80835dce971f48757a5416a63a30d87957060927773d8c089 SHA512 dbc7c096bef5bf91b6730a873e471b9f9846781ee66e4f7a1b2381e771e4a70e5f7ee6e7fdfcc8d2fb6b5f3c775e9d1d2e8c79cb55bb54c10a3031c185daa58a +DIST firefox-128.1.0esr-ta.xpi 507523 BLAKE2B 1d0e002c39e4eefddc84ce5f23d76a02ebd796d3bc5eb7fc380092ec39e1533649d18e624618d43c02b68781c89cb5be8640c6270b4fb3c383a84bd7fac04372 SHA512 26bca1a6312fddffe2543e8a66184d5cb8ec9cc916e4d79ae12e67209a97afa194600a9cc65fe4adbafc1521ef42112c1ceb3c0ea72daaf072f5f1a936570a8f +DIST firefox-128.1.0esr-te.xpi 561038 BLAKE2B d7278ec6a962f183b069fb368535e075f89ca3e076d1e7bd854ff91c9cf1b8271b011ef36f7c1362bc71df2932743363e283f1e812302c4337229874bae90283 SHA512 bd15d31573eb0744296d6cefe29ea941e6882d30dbbb742ee89dda976ae3df89544b548a1019dca106bfb20f3d886426d7cfcbc47df4093c59d86e6641cfb54b +DIST firefox-128.1.0esr-th.xpi 694370 BLAKE2B d6a19282fd71fdfb17d66b28aca429e34db0490bbd84bd257b9e5deda195e419d498f214e818055cf525c9cba43456c6c64bf12e38f4d6c1caee3ec29d5fbf94 SHA512 e5fe1ebe84b7cf52aef17ee0b8a7fcdaa9d014d393fa8ea0c4133fe846a07712dd0bc9e2be19705e9c1ba2cc063f992957c86896bceeb686d8e2d2f2c324251f +DIST firefox-128.1.0esr-tl.xpi 534193 BLAKE2B fe4152452e688d996da36e21d8fb3c06259d78ea417935683ee853b4fd60101c9be42827b408d2e9f9e4c21a7b8ad39ed8c9c44b8baf08d30b84297ff3151207 SHA512 bd755c3412458cf6eb978e1d37a35fd749f6f010c385f1477e5240dd25163b8d013fb83545bc5ef6752687d17ab19ec2fca55ad6b0fc730bd5e7447c07bfbc3d +DIST firefox-128.1.0esr-tr.xpi 632685 BLAKE2B a974f4c8b64f48285be1444fac0450a6a1dea1470892a5e61e7ff32af01a9bf8a0d6fbe353eed58c0603c77a0e47e04d8f54a27236062c31b22e7d45db476d8b SHA512 410b40be588c1308fda41464fa68443d39888f070df2f7904925a8f77d603f412259c82cc3e7bc8f1587cc0bfac87146e3f3e593aca6c86b11fe37e7b46fa376 +DIST firefox-128.1.0esr-trs.xpi 503987 BLAKE2B a3de7338321223ebe9ab1185bc9d58792a71cbbdbd95099970d0be807e9dfa4100646ee2d6b0050102a4790c0621b8d6abf97752dda48077124c778d9e4f3f24 SHA512 c5854965443b9b0cb617065bff81a9732e4dbf3a1a38fecb68cf507ccc18e7cb1d6affa3b10f200923fa8352d629c732069cf35f1c602c59dd134bfabb1d88a6 +DIST firefox-128.1.0esr-uk.xpi 707283 BLAKE2B 34f0ec486ddf590de71ba5f579a7e83c7bf89aa0db1e1a55ac6545b6e5a44c03acbd715b183d52f5a0323654f0fa69588b7a3cfe82a9692145b5d10827dd9fb0 SHA512 9d6ac889307cfaa04d3a4188c43c699706986b2a402b3c607d7e5752e890645ed43e909af70ac54bdcd7d47385bf6d49e0ef864342cbb31505a5cbe1441fcbdb +DIST firefox-128.1.0esr-ur.xpi 560482 BLAKE2B a7f81932d9cf660253c5ddc5e229538f5365afcb9b44be6967eec83ba6bfcbc84c28e830ccca6866506bcfb4f35c5627dfa661c83dd4f709edc32bee3133dc6d SHA512 66da85e8684a4f36f0cf8c0670cf0429859a827b6adfd627b4712d110e5a40888f3cfd41e3300be52a5d21bc976e92ac331a7a61f9ae4148fbcd160d3c5c7602 +DIST firefox-128.1.0esr-uz.xpi 478781 BLAKE2B 4763c191cf0497981af8279f3c8a39dbf9fdcf56b7d883ae1d794147e8734009f247880768a19fcb2138e48e9b5e5a692157da0052d70f87c65b69348199e9a0 SHA512 34d64c137f03e0ae1fa9820d7ea3b4ec79064ee2d7faa752aa94652aa4131213cb7cd1e3c8e75d364e6e63dda52926a96be5749db40111e6fd8dade696ca1d0e +DIST firefox-128.1.0esr-vi.xpi 655578 BLAKE2B f4a1afb49af9170608bd106c6655a415dd6c5e167a45db2c42031d9f55544fe04e0137f49ce478d0007eafc07da003875187b9c887f32315f108c7f332258fca SHA512 75ac1b7be4ae1971f8ecd09a0d96da7150528a1880d3264d1f4dc10ad89ca5986dd9d774a551c3b4cea554bb0508f03f8bf231750f9db1ebd601dc29008cf368 +DIST firefox-128.1.0esr-xh.xpi 417178 BLAKE2B db647fc6764380635d796baaf6084094f15e877c0e798de889c2fd16bf71b318963dfc6d9c2a6f1a678a241970bc49e85ea524c7706c86adc2735ba47cd1fa9f SHA512 0ea3a9f7c35ee95645a973c68bbd61c871ae378141a10dd6b4826efccfaf332377bfae4d6f14840787e2e06ef80864a3010755cc56d9d05f46e9bc9539ad4542 +DIST firefox-128.1.0esr-zh-CN.xpi 657339 BLAKE2B 37acc3369de9339eb10a39211526bc8cbf82f3962b0415cdf96b9933fa88fd5359361fa6c0a32545cf31cbd86d590efe9814b67d835f486e2a39387c00bc6e04 SHA512 524d90cabcf3ec2f882670db7571156c61b19302371c3c17703fcf3abd6758aea898b6231c51a50b3db6607855a6d79677054a9b19cfaa522bde9211b9ae30a4 +DIST firefox-128.1.0esr-zh-TW.xpi 659474 BLAKE2B 98d0e9d960a32692cd34e4ac99ec5494e74b0b55d45a2f36cd4f722ac8ea2c9074c733ef2b04a0bba60e9622c26a14bd38d8eecf8a810f0819a5c85615023ef6 SHA512 1a431fd2d01a78fb761c812bdff06361c2c5f59fbda12656a38622346cd9370e6748b61cc98ab38a3d31d9824aa9f2da4e90a0cb6d0533e40136aec7ac8f1469 +DIST firefox-128.1.0esr.source.tar.xz 561953208 BLAKE2B 6d22bb17ad22d5e29008fd98f6b90bc6869f71c03b09e5b24a6a8a8304f303b316131aeee5d3e5f175a9194074d586a507ae121b9397aa371839dbdb1349f2bd SHA512 8055a7f83acf0cab6124ba5809aff1c082e81a0d30ff318ec719f8fd3f4af9aa60e2094c1abd6c981193d751075a9569370176e20e50f3c1959fe27a15511388 +DIST firefox-128esr-patches-01.tar.xz 19380 BLAKE2B cb3ed0eeaa1ddc1df936815c594eb3b7beab20b3560b52a63436b74a191a0e6e8c05c4d65084ae00dcb30ffde1907ad8194211717a50fe55e8e23ab306d8ce9c SHA512 17c723e120f3057de276863d367d25111578cbc5a333718f230ac3bccac178361ebd795f67b522aca199e17b8ed298d070020884ce6b5b4a0b89a60370166570 +DIST firefox-129.0-ach.xpi 466194 BLAKE2B a18d754a9b5dd64747edf34033d31a648d83080b3075b206642c4d51b7a1eec3bbf8827582d4b9d92231516b884c83996fe2168788fb34eddf7ac4238dba8c77 SHA512 c0701e51be0d88c6b8c9593270a2057d65113749f0a8125ed615b4f7377c7551969c094354956f8f760b2af4c69f920770efe8f42a7d0413c427a629a0837ed9 +DIST firefox-129.0-af.xpi 419668 BLAKE2B 4b2df5012e61401763be93e75a1ddfc05c335f4ea21784f97a89a589e45487fe4960d390953302b9786554233f1ff7447ba0bc3baaba8ffcc2d99015659c59aa SHA512 2fa47594c109db5eaf862a902b0fde512cd8b3c85f17b7655ee7967c0eb3a2ede658c708e840888f04135c0b7f3391f5ad1db041e2eb67b8387e441f0171e5b0 +DIST firefox-129.0-an.xpi 508149 BLAKE2B 8d6c6e29164caca9c8168a5c0bee6e0a55b265a2cc56c00d5597869da363f84ce140a1866522c8d1ab60ff716162a557ffba06e4c56adccb3443d41e98705d9b SHA512 47342df2c72b6fc46bffab217b33df8375cadfa92fde2fa3764499f4d9e7c5301a6124740c11963b0a7db0622b3ac6a65ce57ff101882feda45a40e65a9cae3d +DIST firefox-129.0-ar.xpi 613067 BLAKE2B a42352125f74e63ccf6d75f56b4ab25d15304c7380c76b1c13a52079abd0a8d5645e776d2e9fd2eb446554e9bef74bea8bf63186b0fc46c0532652a8d178d219 SHA512 409f256a598b10d6459b26bbdc536b2642efbf7fc2345c85b785b4d601c3b158f447a0c71ea1ff7436641a589791bbdef26637d1abadb3e7b4c8c0c97957da74 +DIST firefox-129.0-ast.xpi 498503 BLAKE2B 42b7a422feb9f3dac1a83b91d23b89e270196d75d0c1a0baba8dedbfb92062193b0e4fffca093fa246b6df8637b7aacac18d0c4ff5cfb79b65bd3c330f50e621 SHA512 2f28afcccb108bf4152e3c6913028afb5f610f9b792932d4d474110c66ff2e28210997d2661a819efc2daccd6fd375f615842c2e2ebc896f0dfc4be593d73be0 +DIST firefox-129.0-az.xpi 492951 BLAKE2B 640a12901c57ca4ab2255caf3e72023ba97c21f1b2d89e744021e0e043f4313ee678b2c7d9a44f2ed3be6db03694133f14ebd21f5185d61c31403b7b845a7751 SHA512 55525f57fc8e9c5757c172c366082b471a34810b7e2830c9b0f1a3a0741b3a7f61fa0e4a54ae0865b29f9702e3c6bf832849f1e535c3268ba8046a2f3e26ecfb +DIST firefox-129.0-be.xpi 718016 BLAKE2B 26a70b24ece49fa4d1f4e45faa03698a02b85b2f498fd8e5a8c0586b73ea6d4925f40626cae8c3302f4da9b57cf3d864f33c769170215d83d3f1c5ce77330eba SHA512 8d36f340fc16e478ff0ce234e280a1938dd3de5e54bf5ba3fe5744d5b210134653a02bf9d77817d2ea9bca3ed2b5ebd191557e35c84d985f0239e8b24663403a +DIST firefox-129.0-bg.xpi 624126 BLAKE2B 77b584b6e22feea0192b0bb4337fadb2d172671841b8d0f772124293ab6e12830c5ec4f064503f99acb09539eea250202e1463ca3031d117f36fd0493d06c417 SHA512 9bef03fc12abedbf9175e6baaa66e246cbda2ba1c0f8a940941605efeff5455207387c35da0cf15deb96cf22e87c229518ab1d05f337e87e826c5ee5987826a9 +DIST firefox-129.0-bn.xpi 583740 BLAKE2B e9083c3b03504df24b2be96084552bae86886a8f49fc519f32355fe5b11bd94a58c97baf7d4a151f69e153ca3ea2db8832048aeb92e44bfa74692857bd25e9cc SHA512 51aed226eb9a181db979e5112c4815fed23dbc6b5a97c54eafed64d5db12ecfc6558dfb2033397bc283f6e611f0e44de008bf0a096f6576a96c47373bb3cd8b0 +DIST firefox-129.0-br.xpi 591238 BLAKE2B 80e4b7b483369882553c0f2ef37bca33b6c7ed9715b97ab3a495e83e2f42fe8f65d45a81ad3b5cfd8c1959264f8d7d0fd5bcc55ada4d4dfc58e3a270d9b1b751 SHA512 2de4c1bbc19b062b5d347bdef5606489176dcc50cacd4e7d9f5cc9dfea32538e7d8b09d6d09c00c018232b69bdb2764dca05012894a354e929f1e0b7b1c62920 +DIST firefox-129.0-bs.xpi 504177 BLAKE2B 306544dabd2c4ba7de1904547857670302fee47b6307a52f0e84700ebc812ec57ea7b6e18408bad0672695e45fbc74579ae64f093e0aa1a313f8b1ba15e9cc40 SHA512 28fa31806bf4208a42b94b9c0056cbe98e6810934faf9e8853a33f025b6935d2eeb4e52383cf84d4cb41cb98ad1815ddb15597365b7a326b49289b5ecf72876f +DIST firefox-129.0-ca-valencia.xpi 548454 BLAKE2B d037e4b4a0d46f9726acac556563e14a4ba504050b96c1369370bb2cb77d81a139505a18f9f89d73bda92ff354b6ca5e563d562f2e01a1affc4907b5e1f0e7a1 SHA512 fd5023ccddd3a28737e65214ca3bcf94f1a6bcb80d71a0ac500fb77617f0be54a3507bb9c63bed95a75ef1842824a0544f906508e6a1a8ddd1ae2bebd4579c73 +DIST firefox-129.0-ca.xpi 599338 BLAKE2B ce4388358dd432d936dfeb2e00169384c8d2bf775775a2250f04f50d567ca51c3069f7d1705c31cb91f4df409f0680adbd05572ed637630302496405427b6470 SHA512 ade86b758f387c50a29bc0e1aa81f5a4321911954d6bc5ea4f3dcb4c8a27c1764155cfe071caa3c6adb5774905bc9f043a033e322c0af90e14967651248d1e74 +DIST firefox-129.0-cak.xpi 595424 BLAKE2B d6519e0f387bc98feac962d621d0442db58fa1334bd9017b467e4e140d467adab1ba2a1b27242857e2eac3890ff7e908b3dc944ee959a4c85ae4ee08d6c059dd SHA512 9a4bc0427ccfd26f103cef6cc28a1c9df156ca935e1349f73943e4479557a8d4bec30719d0aabb59022f4d79065019c351e80db3e7010dbaace04c36c07a2a1e +DIST firefox-129.0-cs.xpi 662053 BLAKE2B 61bf849a016ab060c26cbc4436c4ce06a6f6416b1375570f070aadbebb5dd6e6febbe5af7227c8c916936e82789282ef321350a160b42f24ec5d91ed04270dab SHA512 4591631a0876f30c93589f069e2ad096092581958ca1159ef865abc205bceb2715767bca2a11f796134bbcddf3215e26de20beeed88d3972391fce222155ce15 +DIST firefox-129.0-cy.xpi 626688 BLAKE2B d0dca71d0c53c71ef0c1539c886aeb60550cfc57936f7ff3986929c7e55a3571cf3c7733105a1317de185c522e9e0e5c70da776aa7cb96b9d7d8a3fd30e32de6 SHA512 80f8b154de2767e7436ecc5eff6d3c1000a535ae743e1aec6c302e3b7aeb616780f5b2bf76594301b9d85370e3f9ba86f53d80b9971161c48a46e74d197cacee +DIST firefox-129.0-da.xpi 615340 BLAKE2B 71c363dee621a01bfca33afb8c0231cb8ddb2ca452ca19eaa21b2d8cfedad8ef63249875125addcf4a6bef803d802b87dc0d95b1b79e5477d39a0bd4641df306 SHA512 b32fa572af1ddaa38b0fe8a88636600acbf5c4a83c387c6e57201a6c3d134512d5b7069ce55591b7ee26deb8f39bef055a3ddeb3655de0270db38460d1cca84a +DIST firefox-129.0-de.xpi 636702 BLAKE2B 5ec54ab16c77ac66831a2e38a0066c5b6c81c0291febebf01fa8a953b633cc26ae1bf04d300cb644f3eb6267f6c72646c58156bf121ac93cb3bf8f1880b3cc77 SHA512 e9ef6ed91d6cc8612e8a8d8722696abfb50a9f34a571fa281989f7e1829d030824c6f12821ebf4e333f99fbfc2c823c5b8f98c4ddef2e6f56a5d427cedee456b +DIST firefox-129.0-dsb.xpi 653386 BLAKE2B 49005e81557b3be8b3346247394da69c2048336061a0a011ea557b4e0c9cd690d33c7c6c7dca69357acfb87deb7a69985522337e2bbbb424a956cb45936f10eb SHA512 cfe1ea3879156449eb7164141efa8a401d2d91c771ae73759ddb100c2264f643a0d771cf320b582d52e10ae71da191dee42255ecb62f7866e01087e2bc19eacb +DIST firefox-129.0-el.xpi 735567 BLAKE2B 7617a3fd633517e1af7ac7d40e41975b5d2fc5ed68625c8dc601307277443ef5ddfb5f602512861dff6e8720985ac3ad498d99a84d832aa58ac8a63e252302ae SHA512 740560d04971aafb6b41a175dede5e7c39648b5d13ae5dc464bff096e8d0bc3d2e7348210c8c2cd11c2f7cf3aaaf05e8caae90e8800ad8d6233a6bbe85ace7d2 +DIST firefox-129.0-en-CA.xpi 587137 BLAKE2B b0f168fbd29af28669f9487ded068f3ecaab27b67e9daf48db6535ccf834d20424f20d13ceb65865d7c410eac611ddfab1764917305cbcda7bc4c4a058bf21f3 SHA512 4a00aaa139f26aecfd99d82f58d4c7fc46c6c0b798b749a02d9bce42b06955147291c64fa1d4b548a3be28e1ebecb1894cd790eae34897706073dec61a668d67 +DIST firefox-129.0-en-GB.xpi 587536 BLAKE2B 5cc6c7c17a375257cdb66992019eead50b0eaca5356d9f385dd241e0986a92cb2c5fb5cad8f59c1d4289ce48dde7bec3c9967220e8cbae8937f2ce937a2afac1 SHA512 84c12b0def4eb7b9d454c00f5a9d3ae7485010dd38940922b35ea8888dcf7dc6da9967cbaa350419c861808ebb8cdaa6bf1c27c8b4183c62593359b99899c6c0 +DIST firefox-129.0-eo.xpi 616016 BLAKE2B ba1b1c62a888e75fa05386936170521d8e4f38b04bea1015be76e40ea1a0a542b9a90157279801cf574743fee6881c80e30684e8630ed204e25d70d6b1cb7f09 SHA512 008ef41f9aeb623215679eb4e0c8ac1f633cc2daecba61382e5f0a8847bfa5b1913f53e9220e2d3e2de04110a2a90ba98f3d2c569e3c98ed486d1eb3eb5c9aaf +DIST firefox-129.0-es-AR.xpi 630371 BLAKE2B 66e7e924e7e76728bee954d1e4959092583cb5822be02023de5d7ac5e6f346b8b0a9bc91b0197abee9c41c74a6c086c4ab3adcb5a878c6bbb1b364f5f4438484 SHA512 0f4b23dc755b5482d457a5dc0ddd1c88c9c93d875bb6239d15df1c0c6a74b9e2f68576a9d167a589fbcd454ac2220a48ceaed23b7f56eefe080f789b56530446 +DIST firefox-129.0-es-CL.xpi 629634 BLAKE2B e69b110cc6e4e347b5116574a35c17651c85930a38bf79ca9f9636d5aa7764f349dfb81510a115a474e485efdec2e1e95889b1fbac70f44a59ffdf0851d2d2f8 SHA512 97421035b46d71962f3c3a36b09271a5357e3ca178395d6b2b0778ea89ac17fcf7951d2e719a567c8a37544eca05c4df156be561e03825395776aacb801f9593 +DIST firefox-129.0-es-ES.xpi 622866 BLAKE2B dcd167d53daa7489882e66d734e4bff7281546d03585a46535948fd81acfd5b81cdc9f185fa4d1540f7fec77acf601fd3dd64fbadce11cd71c44574b761d3344 SHA512 be211896776b7463d52c5e6dfa1948794b031766ef3daeedbb01197ca521100ecc58719398015348f5e7b0877855fe52b3a5af9e4588cea47c228ec765786d7e +DIST firefox-129.0-es-MX.xpi 611607 BLAKE2B 701c52a390789ab60e7bcfaf95cec88ffe63a8de06fda0bfe64b603334c325d940fe9db229d9dfad0b603129db0bd92dd5e6671ec4c1ea3a6c0fc71a79a63caf SHA512 03c08230a89bd442182ae7461826574bdec91be77afef75461f8914134a5ac549c53c4f9ba023c2e85e2d3ae9ff119981032684f6f5a313ef691ff6186a2fced +DIST firefox-129.0-et.xpi 541834 BLAKE2B 92ae97aaf37590a6dbffbb8d28d106b225e621952d36913548f99a0879e837c35218fa73856f01e4085571b9266668b718e4414b3b0fa6fcf0a08049fd8627df SHA512 a53834c7935d8c8f7fe8ac9f3fde04d5c2152972a85e52359cb0c709e323cebf1c4a45f0ff146dbfb0cc3f5694d28dfb4f841d22fd4db632b937d27f5ddd95f4 +DIST firefox-129.0-eu.xpi 601669 BLAKE2B d9a2c6a5d6c4df832abd82e8b6e3f53a197ee3a68a9256df3c82c32e5845e7e08ad182f7434245d6a586647d9ea859ce9a9a0f00c2bb3519a8e8f991e73ccd7a SHA512 928cdbc3bc057564dee4c73d10d36e46dd04f3a2ef11067d5fd41b6ceb64c6917663dddaaee9dd779cfbc16a0a25bbac96614b844a8e179559cf4aef99e9a68b +DIST firefox-129.0-fa.xpi 592238 BLAKE2B 0eccf35584e5fc6d488c438577f03f4136db74da081ef8e42b7a3f9549dd9a6920049c22aa0a8c7ff9df4fc81646ff728ea2b012795798fcd2d7c94b74c16905 SHA512 628a71e7fe7dfea26600f7a8cc92d7348a2a6ca818d918a3a580211153bb7f6fd37340538570824bf159d61da2d0a2734f7ea45fb203a7c736b259e2cb65cd5c +DIST firefox-129.0-ff.xpi 478241 BLAKE2B 5da946d71eacb54db0a3e62f34c4012b8cd9a3cbddc4fba599cd0d986d6b89b989b906f9973cc00cd7c57adb0566a08783bb5d195944f5596e0ac4155066c700 SHA512 1bcb35e33bd5b324ad8987b1fed533bf7d4d0b72fe572c08bf7b0b9e5a4e4ecc109d66b696b39ec226d4d87453f4d7afcaca9e13f6b3b94a32b8c8969eb4ccfa +DIST firefox-129.0-fi.xpi 610119 BLAKE2B 270a28ee23a2e394ddf9f328e14dbfeca53a9218ee138415ad04c5852bbc26f29274c6dead935e38a1613b67c8f4baee05b62d254b988f173e15c66c364a9bc3 SHA512 8e2d7eca4efb7f24c1992623b55a3f11c83a839cb704b914f72eeb361cba2e063cbac7e0ca42d5f1b6d861bdf3166964c2acc57dd69cdeb312d432a80c598b32 +DIST firefox-129.0-fr.xpi 643414 BLAKE2B 7f18a75fd1106861e2b6f83bc673924f07c6ba4b1240d180e5e2c0908113f6b0c228ffc3ae05ff1e99149f15f823e4709a47232c0296ddfda5423d532000dd76 SHA512 8c5693f30eabffdf7ae260e04b7009584dd554ec934938e16dda7791a109ffafa5fb285b33a86fd86aac155360963591429307f0f88198595ede7ee817619878 +DIST firefox-129.0-fur.xpi 635768 BLAKE2B c3dfa9be7005b8c657157024bd054e1baccb0d17d91811bebf293440fc5e9c6e80df5212eca8120fae67017065c5daeda7f1bf0230d251eb1bf272ca63424ab8 SHA512 46296939bd8eba66b43ed08b5e2e25426d5c863667ae8006716e6f25c72fa331e8cdd39288614319941b179dc3bfabd69413a2ddbb64032712a2397a0b12aa4f +DIST firefox-129.0-fy-NL.xpi 626041 BLAKE2B c1c8585b77a7d2171cc8c4597535d64e9307108462fda57fccddda886f71c9948f691dedfd4f439a67ed217f697f0fdc16c3dff0e619edcc753954192242a1b2 SHA512 66afc717ff0c1fe8545f06399556dc51595fcef6a3a61fbeee40b2d15eac5c1974edb637b08a34c66fbb9d885b5ae1220b3e6341c86db6b212b59532ecacbb78 +DIST firefox-129.0-ga-IE.xpi 473205 BLAKE2B dcbd01b540afcae7cef4c0d68902326917593ca1700adc72b2e3af0c02efbe894a55f9aa34eb09e13fa80304c5b9dd8c80e1f764c21a5719e098b37a34884983 SHA512 ce0489f6fc00e26cc2bf41f6932db684cc36aa0cf565ae086c4711afb565192389cb9987039234b77f22021265dc32370b4cdd39370778d2c2a73a7c10d5d4d2 +DIST firefox-129.0-gd.xpi 598883 BLAKE2B 15f3e4ecb34ca00791e78cf372359b5018687849d27472a6e67ca48423ac82a7542fe7f1da9cb2333035291a6732bd04dec90a46075aacb3cf1e28bf91469fab SHA512 3fe06078bd56e3e6bffcdcf16cdad849ecc8159b6ae628d15c1453828780fb459cdace20a511264a2001a7a2cbb5df8f797eb7ad884b6c9dc4e65321969d7d31 +DIST firefox-129.0-gl.xpi 606454 BLAKE2B 7d5f6715375a011af04030fd95640726c3c7761cabb21765f53c07794632e42a1c99d6cfef06b32c89d21c0959e5e91a15eda8bac9bfff1f2495729b7366c9a7 SHA512 9cf990f97b4c413c8472b1fa70da143a184f3019df9e0e9ee7d0f84dd64410a27716092405246a5bd5e92b10f2ea21667bcdf756c361c0868cfe7846b6eab898 +DIST firefox-129.0-gn.xpi 640316 BLAKE2B 9bd4977028ef4a7f5510e8741d05cb5dc2dc33f9b22d0aaa64b0a7d05a20e235a46a166476a5730d83e04aa1e9d32dfd02038611e2358ff4c93ee62d90c005fe SHA512 fe02133f643d9d4498b2a449daf07a6ec7d4a5dc97c28a1a822d7e41a2af133ed724945953bf9a39b38c85246450af02ee87681f1388f527b73adef0d00f88ee +DIST firefox-129.0-gu-IN.xpi 529503 BLAKE2B 763aa4ea6f45b8b6317415207b5c4086be1836392b9dbfaa5245d76b893c73365d06108c9f18100213fb6a997bca253e089b8e43a2c707a4d31ffb7e6ebebfd6 SHA512 a62dbecd0edf9cc4ba1a561051664e5a366c46ba9a1f1ed0b29d6040ae5482f61ccb7028628ebd6d60b0e59e7a8856a94b99c73c9fb244cc3a11977753c82ed4 +DIST firefox-129.0-he.xpi 634013 BLAKE2B b53e2556bba40429bc36c0a7702b63a8d0e3b1694ead129b496ebbd4b0924dc8ca41ea27a401f4437ae1886f25e3b5b6cf231b21a372df43f0443cf18f800b4a SHA512 f9060858d1a8523094ca1c20c17a6c443c84c8ff68e19ba9683e8e411be5e975d6726867923958d681bd86dc8106c23e4d1f46b2ff87526da784d98216b2614b +DIST firefox-129.0-hi-IN.xpi 568983 BLAKE2B 124fd2178ee2bda140234b3e87574fa520501150ede1506f2dbdc04cfe491e6454375bb15048be5c8d54fc72788f7721bd9cdda47c609478aa861b7ab2f6f246 SHA512 e005ee4b76154dd5d300eb07bb137ae69fa9cac1024ffd5d983a7e66c602666644b9fbedcb3ff1405375bbc189c2242be19d7f2d085eb398cc6d5412407a67b5 +DIST firefox-129.0-hr.xpi 610569 BLAKE2B 6c13ddfb6a38882eaf9fc024fe1582819bbfe675dc861b5ca8ccf6723aa4c71d5fa048e9d6f42f9cfd9ef9956828ec04cff264afb92f18a8ddc0d8395d4bc8d3 SHA512 683eede1aa4f1f0103d665372f55112b921d84d6f8e5a62a42f4ccfd4d3663331f314f4932602ecd583d5b9d5b0db4d61feda9e128081d9ed54229e8c3fe05ed +DIST firefox-129.0-hsb.xpi 649228 BLAKE2B 5673b04b5284fbb9b9dec8d16ad4f1f7ddb2e2b64495f5e8592e78d526cdaa9522d74d2c571c40513aa2353ec7038a898d6420921730b343f655d75d8ae0e375 SHA512 f5b9f88ffbe5e0b41e4db87f45ee4d07bf062a1a307eb3e01fbb0439518be60fad7bb314c249e7ceeca84711aaae91aa96de73d26596b5e381ed6e620500bc7f +DIST firefox-129.0-hu.xpi 651252 BLAKE2B d7a7f62bdefa69d3bd8e455dcb563b6663166599452949b15be51122a79f3c0697d0e9e3043a44c3941653a0943e0be9dcf84305fdacc29a15ec4253f0ec7c93 SHA512 1ea176f50c69a36cd2a8af0ac2649696686ef01902ae9712ce9a66d2928bfab5640354e7ef6390720cac85df34ac2824ab8252f0ac3851e98aff9f75bb1e2be7 +DIST firefox-129.0-hy-AM.xpi 653904 BLAKE2B fbed0d8e700177aefded1723b4ddf8061e1d4a161491f534750a2fec074335224a27c07c8f14348c8b9c9deae63e867cf24d731c3b41847d6a88d95a92f74ae2 SHA512 ea98919e5c79477610b62d29b8d02d46a265c45de22a716e08788e4b8c61b87b4f77ad7e5e9af61755efe750c49449af0f69d497fc94b627461bcfd00346cbfe +DIST firefox-129.0-ia.xpi 613528 BLAKE2B 024bf2ed5167902b0d8eddc1d976ffd245ad58be71cf6627f066a4f16d35f7d773aad2a27d400f058f45e7b39b35b5fb48f1ceef6b822d2b7e892bee58431205 SHA512 4edf046ab98e6dccd29982dea189211de8a72b765a42621ef9cbcc1dc599476b0f018fc77d5ae225186443d982d2c0099223a9e2a02ceb81d8f3ef33503ea4c8 +DIST firefox-129.0-id.xpi 585312 BLAKE2B 7e155c0ec0882ce920ed8dc0b1c6206409534301844b0fed74465b7794a24d8ce4a43f23fbca5bf2d34806cab99e0351495026b8ceeb7f8a685818e51bec706f SHA512 4fa9d4d8577bb23dd4f7393555345f33ff19f46f586ffc428c4a1d398b6ccdd1ea2fef14c394ee5b8362817dbe3b603efc3d523c36136ba76bb3e0e8010cf58d +DIST firefox-129.0-is.xpi 619033 BLAKE2B b3e752dad3d15633f21816e30a31a595434c6c8e21f3898e8c1a83cdc6839f9b179a4fa855cbe272b6409ec2c26c7945e7166c332d9f534c25560d7949a7e702 SHA512 a985ef2b1e2353fdde947dd730fb54f68728fd8c3274af6a0e131a43f761e5936238259783fceac938c31c89d53f8ff3200543a187b108f9c33d7db691f698db +DIST firefox-129.0-it.xpi 569523 BLAKE2B 571ea27b2c529a353d564e04b15dbf325219d1a8aacb97715bf5dd5f828b989bc4bac3ec7c5f5b3b180bea64bf5040b87cac873971943a33e74a03661870e1f7 SHA512 2e4801abdcfa056c6b817838501bb6727841219a4036aae47a82f0586539a58aed370affc6c7390fa014a3f08d1056e561b31ab220ab253d071d36369fa6180d +DIST firefox-129.0-ja.xpi 679726 BLAKE2B 565ce7ee85502440bfd866b85ffc13559728600427219769646172e88163542e120eeb06fcc7705b8614242c0d40c82ff5e09c157a7c783dafcf2b91e7eb7aed SHA512 48792f6fb3201d256cd40aa735c52a3bb24a11eadf45c56a46788b2eb10722358ad01ff6b25f59024b836473179da8dd34c6e953fb179db6b62c701a393b5d83 +DIST firefox-129.0-ka.xpi 663182 BLAKE2B a5d08c307b753d95bb01b762339440520ef174d1bf52f56d6b1e331f6ce4b1fede041bf95514928e45d48ea752bb848b2216dc02c21c220d64be019487abfdc2 SHA512 5aa5d2127df92f77c31d77982b6aa1253f2ecc7187ca7df7ecf694741fff663aebb261ccbf770a81e17f08203e3e8478145d1421535a887d3c092857f1a333eb +DIST firefox-129.0-kab.xpi 612864 BLAKE2B cde2b3b236dcedba50efd7bf7e160d11f94a68b95f420a5602598b450f37e8d3f250eab67ee4c065d23f86c0e76dc9b77161f5a3e6a8e3a691905053335e0646 SHA512 37e9aa40de46a51cf9c6bb7951e7284cc7822929cec715297f20fa89c5706ee768d8cb402d41a91e1ecf8354a2d6b946b10d3992001457d04b313d30cf880c60 +DIST firefox-129.0-kk.xpi 710250 BLAKE2B 6ffe6b99fd74a0662744cc16afa667972cb3a69ca34e2851e84fbbc3d3b1c39de587ba15630cd8fbc52d8bb97ca3741a52bc7b28fba0ec9d203a86eb3669f498 SHA512 52d8d00c5ebb08f7e7d0b757c779ef0e47b1284b05f49a1327a60a7a9ba0589993e3fa5bd535db64bad893cff0594c52e3de43c7befc418e015b20e4d6488c29 +DIST firefox-129.0-km.xpi 528075 BLAKE2B e0879d679664ba3166b8f8f29bc72c5c9c973927337d541d6e14e8bc5e07a18fbc927f6d458cdd7d3e30bc0fd506657883f2bfde3f6451d0226ec4b9b57aa2db SHA512 607116e08f6c7b8af9571e4c5e7b1534b0f84e219442dca2f269b660bae62587a5dd2bec79581263e79b333ed90e0e69bedbe6c5fbf3151b0e20a90457f08642 +DIST firefox-129.0-kn.xpi 493376 BLAKE2B 87c405c921d6e896bfff4f685574e1dff38616e4a552794d8fecb8429f1d64b0ae8bef6f1b3097c7fd0cd61dd3cf74aa9048cdf3afe49912e315c9223df38231 SHA512 e4c6140850c5da9f6d5efe71151288c5563c1ddee3be6eddd2e5380bd7574fbbe110a2dcc222d4ca895de15816b26e8957fb05e4c310857e50a7b8e868f9689b +DIST firefox-129.0-ko.xpi 663937 BLAKE2B 86b1a8267535b7343ca1fc14bb1f6d5ed9832c3bd61804e984d14fc5d204240a0300b2c429ebf397cf03bc87cf240a67e6f4f32938ff51c26292b76729243c50 SHA512 c94d248a64264c43db4172bd0fab6a06569f4ef906a2307cedb2062e97b6093a91c86de0d03ec458182ab8b9b9d1cc260a06d1e179e1571d9f43368fe587a76e +DIST firefox-129.0-lij.xpi 486304 BLAKE2B d7aa679b331482e6ff4d21f11f04365f8fa4437aefc3d5ef38b3317d568b83e0297c8db0adae57426d479f58b887ad6f80c3f6084da9593efb84a620172ee7da SHA512 7c3f470763536149825389a1f5efd35640adc388273307e311e06f375e90e8ea4caf5c1683280e8487913ed273a0c8c3fd71037884160f9bc7d923b683e75236 +DIST firefox-129.0-lt.xpi 575024 BLAKE2B c88a4a262cfa31bd2d81f797a0aaa4a79ac25b5ffe8ea2c3a8c02006d43a20e7aaf2667a6e2ec5391a13b4e73f019758776340db1449807c8d33c2a8ec19fe80 SHA512 43f063851250cb048e0c0c6faa45583760a5d1af8a589c1845f6583c24ba011e359b23d9827f5c3bf3eb553fc385cb355b65206e5e5581094a3fce131df8cd28 +DIST firefox-129.0-lv.xpi 576570 BLAKE2B d631d2e61309d6db67d659016cfb0057d1a5f6620ed7b5b3a402244d3ea8f0a66eb8ddf9e8349e7117bd42e9c6e095265991d5e6ef498c56c197dc118d25bd81 SHA512 9d03c8416992a4bd711cf5e3fb86c820bb8841ec82ebc7d528a91e59e3567b9d06dd14b584c22eeb5ab0757c4b1058b4e6e3f0d55b366ae1f3d4a225693fc2ff +DIST firefox-129.0-mk.xpi 496019 BLAKE2B 0eb51812ff068eb754f6ec2538f9538f5e50b307bac2856f3a0d015d5e49d1976c5e9cdf3255e3dd50a8a32e65a21620921140c0752c262ca04e4bf6dd184e39 SHA512 9988556fb5d07e5d0ff8f39afcbb0887f6e682046529098c1fdf7d180aa52e82b844ec0529cfd8a5dc23fb795516d4ced66bbed1c22dbf1acb575bcd44e371ea +DIST firefox-129.0-mr.xpi 534267 BLAKE2B 019436e5226b9cbc03703030b2cadf03bb80478c3843da2fe40bcdc039037369d4091cf7a04e3ea5d4f89bdc39d448f6cc862275eacc6735f7456da30a089e35 SHA512 d3c55afb56d73425b4893e29c87880b58c75d4109231fe3c6d342debe9f4c94780d37ac64f3fdfbac74c98fba8293436d920ac9163c8a3a3fd923069670c0569 +DIST firefox-129.0-ms.xpi 451900 BLAKE2B 8c6ac532d2ee8b4d629b2cbca96fdbd8aa0a510fb629821074964986ba90a8914ba8683c846adba12f6d04074af9d7f6445ef8e567c0662197dd2013d0ad3df9 SHA512 8b553e38b656f3211270a1c8c066535301ddca3957fe07f06565e30905d7f5c7b3e8066eb643a951fe0e7c92c8eb44cb16c4732c9ac938699a935b4cc8d28010 +DIST firefox-129.0-my.xpi 520807 BLAKE2B 506839e97769d48c88cbece5a7643d6155ab16d3dad3307887075c4cad6974ee9f904b383ab9aafa1957a208dda6788940fe1589ec0bc110461565e1f1df027f SHA512 c1ca31b4e2cde6c3af9a3e15f7cceecde26377420bc546339c727b8c248bf5dd7a2f4bdc10bc7358f9eb4ffedc988530e2547e7fb19459c97c49e05197abaf5f +DIST firefox-129.0-nb-NO.xpi 610260 BLAKE2B 8c8e5c4f0e8cfb4a21016e16a09d31c0036604242c1b1029d263d1ded7dc9c14059550cc89a144ed7a5756bb0f42e349000c3a3a5a3c998d911490c2e89fe0b1 SHA512 63e29f8b7f11f58ed3d672f67bc1c24142eb446c4209d268a8220cb494ac60bc77f310b0d8d0108315a97d51c904bc388c58ddb17a3139433ee2dc4e0cc5053e +DIST firefox-129.0-ne-NP.xpi 516325 BLAKE2B 63713af7a1dd613b118c605a62e4110b40de532be26fb37156ef9ee77963b3912f45a5de2a9008d5fd9aee477fa74cdd07102d221ebd53735d3c0073d29ffc7d SHA512 42bc77c999aaa72ff32a040c07b84c6545f2bf0cde16374f3945c4c4e041adba763c4f4e76a5ffa4dbf94aabfa656ecff2d705efa374aeedf95f2503b64fe3e4 +DIST firefox-129.0-nl.xpi 619717 BLAKE2B 301cfe9ce815235765027455288f67c5cb19867305022065b39d8a3731f0155a2309ff9f2c5308be7898a49dcae92386f20dc65a7c8ba309a161475f8cbc2d31 SHA512 ff74c8aac04636a91dd3d1ebf0d08de2daa5a23cc6af55e42e8bd25325eb410651339cc13f5cde5afaa72f38bd0934d4ef0708e5979d78f58f70b7acfd3242bc +DIST firefox-129.0-nn-NO.xpi 613178 BLAKE2B c872384269d9752afe19d65559d2c42931100a42c948935ec4986a82dedca01c50f67c4f5ad7edbc59a08f2717acc2e380421d3c93f09d984d80efd8209205e2 SHA512 e264b671a18eb9d30035ee030e55c0ce320dc580f1107371cf30582c78267eb41d3f948312fafeb396ab754ba340a5642f74f35b70153c4036a691efbc04bf47 +DIST firefox-129.0-oc.xpi 615152 BLAKE2B 03e0fc6dcf654f766bfba980f493fc44f004e0c91efeaa6d45c53962b98f01dbfa6f4f145974f09f662a40192a167d55cd6c19d61f5598e975f4fe780447d8d4 SHA512 3e5163782086060b74567edb2674fe1c22b7026c6fc97dffc3c2f36ca6da76d4158c4af5c26add7a32e8b8111668ad9290d39a339938289574791bb4e645bae3 +DIST firefox-129.0-pa-IN.xpi 694805 BLAKE2B 931f958b9c9cc5644c6fa1e66964a776e3edf0561d6a8943dd217b962f11eae2bccbb6889eb16d02aa0f37fd14447f5cdcf947416f935d72639ac15981dbf450 SHA512 dcaa062cffb04d721b18c9cc8d085ad35767b588d0b0ff0f3f81a84f0a34f835145fa11b01f07c23f05de8ae084a09c1b58cb26e3a8bacb6675df0ef136d750f +DIST firefox-129.0-pl.xpi 640506 BLAKE2B 2566a995dbd267513d0ec60ba84f050ed011b714edab943bcb6710c38dd34aef01f97370af215ac9f3f604decc51f14bab326b251b005950be8c6f9694893235 SHA512 13785610ade5106ebff8e7246d8cc4bdb71989b15d289aab0c7c2964e9c0cab72b64de7eeea5f557735d061612ead7f16c85b28b1ac5db6c813b19570e64405e +DIST firefox-129.0-pt-BR.xpi 624480 BLAKE2B 406a116c7ddcc0b8bdeb1dbe50e6a40312571e2725ba9d4a9b9e8bd09cf1df586d23e4e2c0b9a79051f52dd96ede6f60d597f762d8d14c0d6097b9da00246f86 SHA512 95de0cad0439e3bb482a0344461682a0807ba78d974b880eb983499e07c3d80baba33a0bf461f989e9ac2e3e6a126dfc0a62b30057002e81d648ffa9f278ca78 +DIST firefox-129.0-pt-PT.xpi 630821 BLAKE2B 3b34ddebbb7a4b51b0456b2c8a458f66628c797d6cc8708aa952c7ddbdfe44b7db6057edb7aefa075c5c28964dad1e0323e71115d4dfda62cbe2f76f145c894f SHA512 c3377f461b92964992a02038dde044e214b3565829602126c492e6b7ee86682a942ed644a6e68fc4f2d6dbcd06df2cde88fa14f771a480b9b59c06961ab9a1c6 +DIST firefox-129.0-rm.xpi 620396 BLAKE2B e200cac2225b3abaa1a7485918ce8c3a943d51a60a712009c6f1c0e82efc4f4d11a9139f416868e079d3833d1bb8a517f5a0b72b6bb16a6111d6a357985d7af4 SHA512 9adb403c0f8a9263b20522cbeab3c5e334516b57c3ed864bfe5c104b6f146ed82d89d93d16cdc83838f4599d0d68f1f1204dd71b776788306ff2059124b3367a +DIST firefox-129.0-ro.xpi 552118 BLAKE2B 2ec755b3ba7f133cb66a806232d312a635ab73fd4e0cd1d4b4474ba1475cd755ab6b443bb36d12c823f1b1e051e624b72088cd84c973028386e1c408781f0176 SHA512 7dd7a5fd87955702e8d9f77d297869b8f86d86d9b349283c51d00b2768a39c24935caf3c1cc42afebb6cbaf9833285963c91f3a52f235a7d16e552e638953610 +DIST firefox-129.0-ru.xpi 722864 BLAKE2B bda2241dcc89986bf590d75539bb59bb253ad24421bacdc21d19f0fa9651c183b0c22de15b454b86c4be6d1ce32a1794a43974d56a1732e6f67b6fbfb78dc187 SHA512 e7c3078cee0d711727df8e163939c7c929c07ab9fea7c004e34c1a0ed2e5afa1e1f76573768ea5fdb1bea8f97dbe89371f66153c48e8bee2c5ce20214f50da55 +DIST firefox-129.0-sc.xpi 590062 BLAKE2B 9a314cea536990051b9f77c835054d66d11374525f966a0972696c44daf9f9ac91bf0168aa01f68c5cb8c8f5515afbe1e8c0d34eb1991a328ed42e37035652a7 SHA512 bf6725ccc416635443d0d382580ce9323b1ddba4e0aeac92bc975819c9212e85dac4d7da28debdf6aab07b4a8b2d57917e63c3c2ded79f406d2810f5528e4389 +DIST firefox-129.0-sco.xpi 513495 BLAKE2B 7570b205e8ba3cd92905c988ac8fcb249f2521129480cf9b186135d1c287222517aa39e8bbdc976694af4f922ed75e7276f7bada49de6f8b15bb3947056d37c5 SHA512 e05c741d8f85a3586caa7566695b4f4496211b856ebfd47b65e2b3e620a05df0e0aba22f9a7077e222bef1520a3c9252f9b1cdac605c1e3359c76c2f99a5b895 +DIST firefox-129.0-si.xpi 615445 BLAKE2B 032c22ac323bb76264e09145a5de5d6ad4861d916a40cce37c9b270dcf3cc21e949e656a2b0588ce14789c34b9143c4020a1c6b498d63d09c1cd3e102f93d705 SHA512 251e33e47105acd38e116e959d626240c4cb042627b7c495309fa44dbcf6a699f4f60560d53a9f6d978b323f7343e583ba6a9bab72f5e91889332f896e4676b8 +DIST firefox-129.0-sk.xpi 654953 BLAKE2B fb3edf857f07d937e84add67f2ba74c8fa24a879e18b0e5e4ed7ee9d5dbf5e11515d9bb7eb4891984c7abc78a63a6ddd56220987147817fc4b0c82585f4e54cc SHA512 1903f4a4598bd5beee1256043a229b2899b875384f8d4e2e56b7ad5eac60d15f574307fe7fda511d9fdbd1f3b91acf94e15ebfdd7830fbe06f68bceebcc48678 +DIST firefox-129.0-skr.xpi 710334 BLAKE2B 4a74250ca07c41d4241d11a4f9fdec9d2cdc58e94e7543e59de6570ffe0d5ce20ed78c184f71b674ade47e7ec4511e7f1449c9e3707eccb2c72ad8507f7f13f5 SHA512 c709a5a797ad78a3d4b738b6202f831e21c31a0f94d497e573fbfa7f5debbd446b2590b3a579a9b11ffb0e689ac338db275321dce5825710e225acf8a99ccd49 +DIST firefox-129.0-sl.xpi 619637 BLAKE2B 851442e79deb9ac85881dffff39dc1a61e364065824ed7bfeb2bbe9b4273ca3fc53505f481c63b94c002c95505def63b889f485236605a445c04fb0803e114f2 SHA512 8d71c9048969dca9639346d318201d70237332e0d68604bb0b9ed68c2c713e60c007a35b29dd20cf0ba83ec19012f36d514310edd48eb4c0c2b3a5884b98dba2 +DIST firefox-129.0-son.xpi 418560 BLAKE2B f7080076b63bd78ecfa43ebec494dba86c50ec59539726ecf0420be6d5b1d82bf5165aaf15b280966cc68782b0900ce433c3d88cc491cc12629a197c4dd2b115 SHA512 5f1ebf3847ab06d23903cfba9b1916d4139d7fc953fab7451c53c3e1f13639b8fb611ac7e3bd081baf8593c597b082dcce1d9fb6a88c7a7953ce41274af3f569 +DIST firefox-129.0-sq.xpi 639121 BLAKE2B 9f15377edb8eaeeae601c0fd255739fad7fbc96d1320246da12997c9226190755a28f3e8bc051733dcf369aa135fecf6cec27c8f2ea0eb62cb6e2fe95517d240 SHA512 2a307e0b0b25b44b7444dc3598b07b98974b0db2ef83127f887e26e127b0e30649913956b1f354cb3426fb9e71529f8a776fa0ded099bf4008e1bb8c2b7ff140 +DIST firefox-129.0-sr.xpi 641697 BLAKE2B cba40453caa4dd835f9548797cfc4350db4bce8d05d3a6254e27635f3815ab9b4c10f8f08666fad1ef0e3a041054dc8d9b48cc1f7e40239915da886e3c0d62f4 SHA512 67fe3e741888be0295ec691bcce2621c2e593ca1763b0e60e8f31191eab6930bd475b5831f74fc39185f619c656d0ff781e834165969be0f8043b6acb2339478 +DIST firefox-129.0-sv-SE.xpi 621418 BLAKE2B 4075df53cbb534ae97be7df09caa47fc63e71225186c852ebdf6006db2f81ed6f111fd9461c6b2383d81ce424188ac503148b7f154cd433fd1b29c077763686d SHA512 6468cd94b1ea784315b2638e08f7bfa3144939663bbf3dcd6dcc6ebaea744c300a548fee5856e25e15d94c2ad38cfa3a47e9978954351d1b9a06af0329f34d73 +DIST firefox-129.0-szl.xpi 528574 BLAKE2B a5d4c0d66971dd51cafd441fa81fbaaa5da92edf3c8aa1c7c9f355f61d177e9d8d7343bfe6f2cf5c54a4529d82a1ad79958bdd751c0079fdcd9bb85dd33944e1 SHA512 06dfaf8cd3251faca0b497e354180a50565b02e555252644b772d619b33abdfe8ef072ebaaeb902957fc2f3ee154a3574cdca17ad9e1b2859fc36bc6ec6f9c05 +DIST firefox-129.0-ta.xpi 509682 BLAKE2B c047cbd20038dff66f3ca561eb865f64bf5cf75ac0386c1f74607de38018fe4e440a6e48c5a153986bcfb3cc421a49432cc5dc9492982ad6a3dd69acade5a015 SHA512 ded19698a518736b1c356b5c1dc7ecb9202355e40f34fac98f4bfc4d432932e1b82390c2236b97359a88197720cb6380110e4ac73c9acc690fb35b2cad1853b1 +DIST firefox-129.0-te.xpi 563245 BLAKE2B ebde7478692071b6d350a5ebcb5b4c04d35c8dbfb69830bbf41df4eef8a8439b2265513cb7f8e5696fd06de0226ea7e0ad9d056064ba978b198f65d5928a136e SHA512 951751c3f358c6db5730df3ccb4aa0821a8d5983e8fccccafa86a81b96558fc34778a701402731deb9eed08556816a9a7f57f63d4f20df57feceaad3122a1668 +DIST firefox-129.0-th.xpi 700403 BLAKE2B 9bcb6082169808b2a1d801e3ec15142debeef0bd04153b5ecf80c8eefa256d696db6eb939b366ba96970e1fa8dd1f8ac2e404c1d40dc74ae4bb74f6f89fe5872 SHA512 68e0a04a36c7bc2566a3808bc2d3a85b9ff7decca8ac1df7337b2c3873aadacf60d6cdc50cefd8063583b198968278fe8a1501774219c5821a36714f4fa8151f +DIST firefox-129.0-tl.xpi 536469 BLAKE2B c32118ff88a90b3b34950592345e798295c3042e8a3693b769ce97d91c7d4c158bc7ead979b22977118fc67f47020e02b199609d6a0e8a2c3d5589fd938f1607 SHA512 b283c832161c2104e9241a4ba0c7b5207f151b8750a2d7c409d669124240645793509a502a3c615d06f59142b22b601ab43556089e57d33d56431419f54156c3 +DIST firefox-129.0-tr.xpi 634870 BLAKE2B 18934a021f722b391587db29a462d065e3cdd9042eb27ebd8f62af014fe5183f3f1f8e3bb553b38066ce02c47971e1438f063ef6f7a845b6f3adb27922b3a4c4 SHA512 933b8b7b4da9e76d24edfea4c53dfc3b9d4128ed2f38a9bc302b91147f2b0e6c0b1a43f9e4dab8498e6f5689d268430942e974476a4844b8bb9290470f41d604 +DIST firefox-129.0-trs.xpi 506189 BLAKE2B 50a724dbae41800d5817fcae0285344a4623def4cc6752e9c426a2d1fe875b13e3c9360d1c9eeef77109f515348e9d2556261362bb7d3887ca608a78c6272888 SHA512 323a120ead7d44331de2debccc8c742453478124dba2d0b2cae640148599a5c488fd5cf8d9b26738fc7de95e09fba6a7660781c12e28f94d357c03f51d897560 +DIST firefox-129.0-uk.xpi 709777 BLAKE2B c55fe815b8914a933976e085e8e00b943a9abf8d6655c255918509a83e44522e51bb19b53c4f5e79c397e5dfced8a63817ccd19a34f0659844071414813b1f9c SHA512 5e6a79385257cb25bd6e151a597df854217c0dff38e31fd77513aabbb41cbc0f119fb0f9cb92654da9371ee8fa93c8d8db4b4aaabea966a8ba002428994b2891 +DIST firefox-129.0-ur.xpi 562715 BLAKE2B 9555ad7f63d6f3f73d548193acaf48d13b5645f4b05a54528a009a98774f480f76755d494e7b5e70c4a8f372aa3bea00a26bd64bffd066884bea3e9d48466f82 SHA512 aefe581a309a229fc00116476d0bb1b48d75bf8483c6631ed6f2d99a5241b624717512b5720f0443441a7d18bbd4708457913e9061600ed30012f2aff516502f +DIST firefox-129.0-uz.xpi 480950 BLAKE2B a716a87be418939a1792d9fe95754a318c2ce8ca3427201dc3103c8105f42deee060bc1f4ed6a3f7ffaf4cda4daf6d42360e36f09f05c10b48e52fd5b06d6722 SHA512 404d44e24b590258fd4d7199418a693c5577415ccf786e28e8875813bde38edc98a300f6e5313ee65c419ef653d5f55dd8265dee1b81ffe82d481808350b732a +DIST firefox-129.0-vi.xpi 658017 BLAKE2B 817db5f6931bfec8555210ba4c123156ea6517c54dde58033b9c11dda78b4ac0b9b6cad6eb58637836cd86a5f3ad6b031cbf4ae06ed7c326ae7e2a4cdb2270d0 SHA512 6d1eb4e572616156d27ba82b54d780ab56b83d236f73f96b3b7d4e2089faf720d66f3f8ad47aa6ffc8ac26dbbfe2f16f3e562b79736a00abc0092a574e6731d1 +DIST firefox-129.0-xh.xpi 419346 BLAKE2B 43b17550b6d5e43d9eab54e8a5be693754b8752c69071af37588fbe37df5c34f430cb12e1b786d55657492a879a09431f7cbcf03b9f15931f5b425d6b672995d SHA512 aef6ebeff017792264624ba3826184bed07d5b50b3b187458cd6bec40f3c801e48835777e1604cddb7383f1e1b49b70cb652177ff75ea334a07887b5e3608270 +DIST firefox-129.0-zh-CN.xpi 659751 BLAKE2B a3e42fd166f3e53e257a01867a39b5968205fc1776039a90a313ec83172cbf01a56ebe03822df187a6858ab68d0b2771aa279b069433f0f1a775601cdb394844 SHA512 864b97371898740eb9f3d73e43b00c493da2c613279d05b4ac4a65e3e65be2ff88ca6d8e04f44a07ee752ce518d1350227f9c43161081303c30e08498847f3e7 +DIST firefox-129.0-zh-TW.xpi 661606 BLAKE2B 55a5662cbec90c5a4813ed7540cded88b50560d226b17b43c9b8454ee901a269b974ced3f9babb8b46fdcf0a51d4871a36e33d3ff0969597aeda34690c4a5863 SHA512 6d225f14c65f0a9dd08dd716199eae640d8e2a3f52026d43a46d07c4f48a5f7bd18b4a2ad8167c5b33e1eb17307ccbba80c05b5e2753d191779d7c115dc45b27 +DIST firefox-129.0.source.tar.xz 568302640 BLAKE2B abd8b0008dfd0948234baf7c307c42051e2f58a9c7ebd07b3b0dec9bdb6d8d78e4e1ae25d552aba8685e8b307dbdeb1360d873fef98ac108671dbbbc53c2a3af SHA512 e406d00dc53c66a1ee6b56e7001efcdd8b323caa3676d66d874d39a99f44ac7cebf4c60d76b5d239ebcf834a75cecabf801a74a1d08a97a66ea5e8ec6c8f7c5b +EBUILD firefox-115.13.0.ebuild 39935 BLAKE2B a5ee41ddf96552edc4a346c5cf261e2f1bace515df4c7ff962ef1a2a95cc65bc20d6b09d368fadd0ca2111c514f310ac91e56d49260ac99e320c6a0707406bf3 SHA512 9d6232a69adf9fda97441dd6e46f5263fff17e25be47f399454972d4d69a895ebd5f14e91109174af196c158019c4b23cafce9600eb6d6301b4aa84a67560ca3 +EBUILD firefox-115.14.0.ebuild 39939 BLAKE2B d5da85b1da01c485828f5b1c80376a3367b89a7c40c04e075ece2eff37d605206a6a06d257b655c6fe461bdcd0b2828e82f7891e54d4b9bde3d2c9c7f42df26e SHA512 fe28539f631320b7e4795702ca125d33b794643eec71b28a1e8ac453eaa393282155bd6f86c95bbfe0ca267bbc2a9926e2a93379623d6f4dec6a1853c374fa6b +EBUILD firefox-128.0.3.ebuild 41944 BLAKE2B 299429d89f7125341f1f2eda911b725c06f8d07265c2fb130d28a246a3ec1e33c1c0dd34b772131b36861cf04924e1a8d99278c8d74d78e977413c4d340da3a0 SHA512 91e2f581285ed45bc866286cb092b4e6b76a311a98bf72025d14e40327d3d5a5e05f1056a86df330079e8285a70803a88a947b6916857d279ebf743a11b9d0ac +EBUILD firefox-128.1.0.ebuild 41255 BLAKE2B 7a18d38bfb1accf908f2c31564b0f528aae588e2e076dd64b135a3ae248efc18eba3ab78881b357cd4ec5efe732582d75bac3e37cb07b62188e7f82b6b78ed3c SHA512 760306b9cefa66e9ac4ee9d72206c3a4c1443bd9c3db69748bf122d9c69bf87d7c10d52c98170394b05efd4a4875bd45842100b837610e79247c181df5e536d7 +EBUILD firefox-129.0.ebuild 42248 BLAKE2B caab02399244374b1515e71890c82316d5b567e0eae8c995dc3ac09637c5e44ac0727ba5c301bf637d960c8f738957f856ef79ab1309d56789165bc2a5a57185 SHA512 8bbf95522ee694b6011cfed28c71d17f2ad8f32267b988ac1cb87b957ede3ffd38cad4f04dcf466f9db713f997373a2ddd1a74f3a29bcdb109ce0e0a0c46ecb0 MISC metadata.xml 2597 BLAKE2B b449997bc096ed8fb7bde41a5acb8d9f4c1c8cfc9663c06ff603cca756e8868d40049fd292a459a00d80b4e8c3a74e91e29fcb04abe87277640fe65d070f0bda SHA512 703c7f6a2b46748786145b0973a7b8439e530c96fd7c50d773efac7d5d9bf74ccb4f0c252f2701459944f2b3ced22d3e57ddf049b9aed0c8f0e094cabddda251 diff --git a/www-client/firefox/firefox-115.13.0.ebuild b/www-client/firefox/firefox-115.13.0.ebuild index 5890b9ed1acc..67c0548f35c3 100644 --- a/www-client/firefox/firefox-115.13.0.ebuild +++ b/www-client/firefox/firefox-115.13.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -FIREFOX_PATCHSET="firefox-115esr-patches-11.tar.xz" +FIREFOX_PATCHSET="firefox-115esr-patches-12.tar.xz" LLVM_MAX_SLOT=18 @@ -50,16 +50,14 @@ PATCH_URIS=( https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} ) -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - DESCRIPTION="Firefox Web Browser" HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="amd64 arm64 ppc64 ~riscv x86" - -SLOT="esr" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +SLOT="esr" +KEYWORDS="amd64 arm64 ppc64 ~riscv x86" IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" IUSE+=" jack libproxy lto openh264 pgo pulseaudio sndio selinux" @@ -233,8 +231,6 @@ DEPEND="${COMMON_DEPEND} x11-libs/libSM )" -S="${WORKDIR}/${PN}-${PV%_*}" - # Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or # overridden in the enviromnent (advanced hackers only) if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then @@ -260,7 +256,8 @@ llvm_check_deps() { if use pgo ; then if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 return 1 fi fi @@ -490,8 +487,6 @@ virtwl() { [[ -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' - # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work - addpredict /dev/dri local VIRTWL VIRTWL_PID coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } local -x WAYLAND_DISPLAY @@ -587,34 +582,8 @@ pkg_setup() { # (PORTAGE_SCHEDULING_POLICY) update... addpredict /proc - # May need a wider addpredict when using wayland+pgo. - addpredict /dev/dri - - # Allow access to GPU during PGO run - local ati_cards mesa_cards nvidia_cards render_cards - shopt -s nullglob - - ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') - if [[ -n "${ati_cards}" ]] ; then - addpredict "${ati_cards}" - fi - - mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') - if [[ -n "${mesa_cards}" ]] ; then - addpredict "${mesa_cards}" - fi - - nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') - if [[ -n "${nvidia_cards}" ]] ; then - addpredict "${nvidia_cards}" - fi - - render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') - if [[ -n "${render_cards}" ]] ; then - addpredict "${render_cards}" - fi - - shopt -u nullglob + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev fi if ! mountpoint -q /dev/shm ; then diff --git a/www-client/firefox/firefox-115.14.0.ebuild b/www-client/firefox/firefox-115.14.0.ebuild new file mode 100644 index 000000000000..894d9203b7f2 --- /dev/null +++ b/www-client/firefox/firefox-115.14.0.ebuild @@ -0,0 +1,1393 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-115esr-patches-12.tar.xz" + +LLVM_MAX_SLOT=18 + +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +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" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +SLOT="esr" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack libproxy lto openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + !www-client/firefox:rapid + screencast? ( media-video/pipewire:= ) + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + || ( + ( + sys-devel/clang:18 + sys-devel/llvm:18 + clang? ( + sys-devel/lld:18 + virtual/rust:0/llvm-18 + pgo? ( =sys-libs/compiler-rt-sanitizers-18*[profile] ) + ) + ) + ( + sys-devel/clang:17 + sys-devel/llvm:17 + clang? ( + sys-devel/lld:17 + virtual/rust:0/llvm-17 + pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] ) + ) + ) + ( + sys-devel/clang:16 + sys-devel/llvm:16 + clang? ( + sys-devel/lld:16 + virtual/rust:0/llvm-16 + pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) + ) + ) + ( + sys-devel/clang:15 + sys-devel/llvm:15 + clang? ( + sys-devel/lld:15 + virtual/rust:0/llvm-15 + pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) + ) + ) + ) + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + !clang? ( virtual/rust ) + !elibc_glibc? ( + || ( + dev-lang/rust + <dev-lang/rust-bin-1.73 + ) + ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-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.90 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + 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 ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon[X] + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily +# placed here until toolchain-funcs.eclass gets an official support for mold linker. +# Please see: +# https://github.com/gentoo/gentoo/pull/28366 || +# https://github.com/gentoo/gentoo/pull/28355 +tc-ld-is-mold() { + local out + + # Ensure ld output is in English. + local -x LC_ALL=C + + # First check the linker directly. + out=$($(tc-getLD "$@") --version 2>&1) + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # Then see if they're selecting mold via compiler flags. + # Note: We're assuming they're using LDFLAGS to hold the + # options and not CFLAGS/CXXFLAGS. + local base="${T}/test-tc-linker" + cat <<-EOF > "${base}.c" + int main() { return 0; } + EOF + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) + rm -f "${base}"* + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # No mold here! + return 1 +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + if ! use ppc64; then + rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die + fi + + if use x86 && use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*-musl-non-lfs64-api-on-audio_thread_priority-crate.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # 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 cargo checksums from crates we have patched + # moz_clear_vendor_checksums crate + moz_clear_vendor_checksums audio_thread_priority + moz_clear_vendor_checksums bindgen + moz_clear_vendor_checksums encoding_rs + moz_clear_vendor_checksums any_all_workaround + moz_clear_vendor_checksums packed_simd + + # 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" + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB 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 + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-legacy-profile-creation \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + 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 + + 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 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + 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 and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # LTO flag was handled via configure + filter-lto + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + # With profile 23.0 elf-hack=legacy is broken with gcc. + # With Firefox-115esr elf-hack=relr isn't available (only in rapid). + # Solution: Disable build system's elf-hack completely, and add "-z,pack-relative-relocs" + # manually with gcc. + # + # elf-hack configure option isn't available on ppc64/riscv, #916259, #929244, #930046. + if use ppc64 || use riscv ; then + :; + else + mozconfig_add_options_ac 'elf-hack disabled' --disable-elf-hack + fi + + if use amd64 || use x86 ; then + ! use clang && append-ldflags "-z,pack-relative-relocs" + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + # 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 tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}-esr.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die + + readme.gentoo_create_doc +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + + 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 + + if use geckodriver ; then + ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" + ewarn "packaged separately as net-misc/geckodriver and the use flag will be" + ewarn "dropped from main Firefox package by Firefox 128.0 release." + fi +} diff --git a/www-client/firefox/firefox-128.0.ebuild b/www-client/firefox/firefox-128.0.3.ebuild index afc7687db84f..9f130baa1cbf 100644 --- a/www-client/firefox/firefox-128.0.ebuild +++ b/www-client/firefox/firefox-128.0.3.ebuild @@ -50,16 +50,14 @@ PATCH_URIS=( https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} ) -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - DESCRIPTION="Firefox Web Browser" HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" - -SLOT="rapid" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +SLOT="rapid" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux" @@ -72,6 +70,7 @@ IUSE+=" +gmp-autoupdate" REQUIRED_USE="|| ( X wayland ) debug? ( !system-av1 ) pgo? ( lto ) + wayland? ( dbus ) wifi? ( dbus )" FF_ONLY_DEPEND="!www-client/firefox:0 @@ -193,8 +192,6 @@ DEPEND="${COMMON_DEPEND} x11-libs/libSM )" -S="${WORKDIR}/${PN}-${PV%_*}" - # Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or # overridden in the enviromnent (advanced hackers only) if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then @@ -220,7 +217,8 @@ llvm_check_deps() { if use pgo ; then if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 return 1 fi fi @@ -653,7 +651,8 @@ src_prepare() { "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || die "Failed sedding multiprocessing.cpu_count" + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" @@ -690,10 +689,12 @@ src_prepare() { 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" + 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 diff --git a/www-client/firefox/firefox-128.1.0.ebuild b/www-client/firefox/firefox-128.1.0.ebuild new file mode 100644 index 000000000000..8ca5d7c119b7 --- /dev/null +++ b/www-client/firefox/firefox-128.1.0.ebuild @@ -0,0 +1,1376 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-01.tar.xz" + +LLVM_COMPAT=( 17 18 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +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.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/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 autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo" +IUSE+=" pulseaudio selinux sndio +system-av1 +system-harfbuzz +system-icu +system-jpeg" +IUSE+=" +system-libevent +system-libvpx system-png +system-webp +telemetry wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + clang? ( + sys-devel/lld:${LLVM_SLOT} + virtual/rust:0/llvm-${LLVM_SLOT} + ) + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.76 ) + !elibc_glibc? ( dev-lang/rust ) + 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.101 + >=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/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/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 "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( 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}" +} + +# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily +# placed here until toolchain-funcs.eclass gets an official support for mold linker. +# Please see: +# https://github.com/gentoo/gentoo/pull/28366 || +# https://github.com/gentoo/gentoo/pull/28355 +tc-ld-is-mold() { + local out + + # Ensure ld output is in English. + local -x LC_ALL=C + + # First check the linker directly. + out=$($(tc-getLD "$@") --version 2>&1) + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # Then see if they're selecting mold via compiler flags. + # Note: We're assuming they're using LDFLAGS to hold the + # options and not CFLAGS/CXXFLAGS. + local base="${T}/test-tc-linker" + cat <<-EOF > "${base}.c" + int main() { return 0; } + EOF + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) + rm -f "${base}"* + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # No mold here! + return 1 +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm-r1_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # 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-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + 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 + + # LTO is handled via configure + filter-lto + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-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 ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on 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" + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + 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 + + # 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 tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local 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 + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die + + readme.gentoo_create_doc +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} diff --git a/www-client/firefox/firefox-129.0.ebuild b/www-client/firefox/firefox-129.0.ebuild new file mode 100644 index 000000000000..8e9069b7db01 --- /dev/null +++ b/www-client/firefox/firefox-129.0.ebuild @@ -0,0 +1,1412 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128-patches-05.tar.xz" + +LLVM_COMPAT=( 17 18 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +SLOT="rapid" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp" +IUSE+=" +telemetry valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + !www-client/firefox:esr + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + clang? ( + sys-devel/lld:${LLVM_SLOT} + virtual/rust:0/llvm-${LLVM_SLOT} + ) + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.76 ) + !elibc_glibc? ( dev-lang/rust ) + 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.102 + >=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/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/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 + )" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( 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}" +} + +# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily +# placed here until toolchain-funcs.eclass gets an official support for mold linker. +# Please see: +# https://github.com/gentoo/gentoo/pull/28366 || +# https://github.com/gentoo/gentoo/pull/28355 +tc-ld-is-mold() { + local out + + # Ensure ld output is in English. + local -x LC_ALL=C + + # First check the linker directly. + out=$($(tc-getLD "$@") --version 2>&1) + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # Then see if they're selecting mold via compiler flags. + # Note: We're assuming they're using LDFLAGS to hold the + # options and not CFLAGS/CXXFLAGS. + local base="${T}/test-tc-linker" + cat <<-EOF > "${base}.c" + int main() { return 0; } + EOF + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) + rm -f "${base}"* + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # No mold here! + return 1 +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm-r1_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # 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-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # LTO is handled via configure + filter-lto + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-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*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + 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 + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die + + readme.gentoo_create_doc +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} |