commit:     05b30b00eb73e020603c9d9f0bab1c6b67dbd1c7
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  8 19:31:44 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Fri Aug  8 19:31:44 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=05b30b00

www-client/firefox: add 141.0.3

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

 www-client/firefox/Manifest               |  101 +++
 www-client/firefox/firefox-141.0.3.ebuild | 1403 +++++++++++++++++++++++++++++
 2 files changed, 1504 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 4564f992d972..144fa2c2cbd2 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -507,6 +507,107 @@ DIST firefox-141.0.2-xh.xpi 273178 BLAKE2B 
afd40cb6ad428ea8cc570afe670e2553bfbc5
 DIST firefox-141.0.2-zh-CN.xpi 461739 BLAKE2B 
fa08f29665c5510a9ca823054c64457a8fcbe232d00a6edebca321efbde9f5f0235cf4b4557da2a05a9a59158f6165eb4da1dd373931b0bdbc616e8458ccfabb
 SHA512 
81077b18e151b88be151de1e1e8ccfa1b10c6ce89790a8d890e02c81244fd8da11c0e9dee798258c547c1a52b69a799c8b34cb5be7cd00ee775246f2254a26c0
 DIST firefox-141.0.2-zh-TW.xpi 464763 BLAKE2B 
5bd45b7d88e0f8622428121e7ae007d1390b95742d9602c895bd4fc30a1e54936bd8d71e27865d9e0f416c3da57a408c7e16ce134411fcf62b7629c470171003
 SHA512 
aea9061e444367761e75a1e9f8b657d31e0266723c92e676996af529964b3c5c7d378619b13b55a64de77917453e4860c0f617bb0abb73d34b0b8f9398a5064c
 DIST firefox-141.0.2.source.tar.xz 649165560 BLAKE2B 
fb156b8812c92877eda189b77e9189081d9da144a4043abed1de6abdca49d76dd416c9206057ab94d6ee2fd1312748abb0cef60ffcc9ac17b88edf468f4a64b3
 SHA512 
6d1552bc64d915e784a5d560c8bb35a5308f35ebcd2552b027f80f950c7f0c627cca46b0796cf6e17d8f50c82e6f70a3ec11471ce0e058794f500b7b15e17b43
+DIST firefox-141.0.3-ach.xpi 293973 BLAKE2B 
117423abf88db8f8accd4580eed6983ef0f5a198f97016d5ca78d73ef65687ebf3680aea87c19dbcb16377ef8bda5a289830cbe6cc8958d04368cbbb85b4d0a6
 SHA512 
7a255fc3e04bd7fb9823e20c4bc9690b6137ca20f70d607a7e52e5b932f9fcd30741c8795ba5574e70c2a2e8b46f6a1a66607a59fa17b6ee9d0a75de9445a1cb
+DIST firefox-141.0.3-af.xpi 267010 BLAKE2B 
a579cffb0d5fda6bedcce7fd830307296d44863470ac0ab1fad8856e96fccc9e1fc7791c2ba7db4a998991268cb0ae9138955b0de6c5682b6dea98d718aa2fc4
 SHA512 
a5c7edfb97bd511f7c46f0a021be35f698553c0fb8f3f0d89d69b1f8509901460f48f9a258e6ca01cd41f7a40273806642ca1a444a008c8bfbfb7ce88b5145a3
+DIST firefox-141.0.3-an.xpi 331792 BLAKE2B 
d6ec2bde1dd5223509aa0d9c4c5311d84f30653e45e30621b79ed02e16eb41b01cc5222becae1e1dc6ce19a4ac45774d3798f0bd13f5986648cb2b58f59bdb51
 SHA512 
9621d28f6bbe60ec0affec637e084d60ed80814521aa9f7c9580ceda859e1c0cae69b63a809b3c07d4b778dcc37dc5cec49627186b2cc17b8ca019fb160024a8
+DIST firefox-141.0.3-ar.xpi 442740 BLAKE2B 
a3607ef8173cb70c1dc5f59189f13aef14b149c2dc1d0b87567fa3623196aaba0a1ce7ede5af69fa07ea929423425d4b46d2262379213d91053fa5b0cc970641
 SHA512 
d926cf8c79dcb67965db5a30f10d4237933984e049c4e9eee70f487a2dadb5eca4867a717338d863766a1fa48023165cd0fbeb11bc9228957786863af803f875
+DIST firefox-141.0.3-ast.xpi 311736 BLAKE2B 
6273430f9e45ade29d55189a86118016107b3223159e5428b72585cc26f047e9f0808af3cd4a3fe056b8144c22476610959d647fd050eaa18550eda10aeb85bd
 SHA512 
3416cabdd3d54d08b50c537baa80b48260e29f93984b11c15e6f48b1c915105775a7c4225a3f56a0c0e4700f9dee0f3c61d1da155d7e6d19ead875cf22160f68
+DIST firefox-141.0.3-az.xpi 318275 BLAKE2B 
e9b9ae2cfd7dd24880aad8913c940e3c4be40be124f13a31b636f0795befaeaabd1a49fbc7bb35b66d96f4380ecd393f0bfc7043199531b69eb2b829328a623c
 SHA512 
f676b59819bfe034b034c1630ba72a63bc094713852f5a713ac3a5314bd461606a56430594e72ac504b3a99fb4863da7cccf8990943562d46c2c64ef6961350f
+DIST firefox-141.0.3-be.xpi 521020 BLAKE2B 
c48cff6b9d4626f4f2841b4a0b21dc6966b76654410567cb10f574c6a17f29394f14eb7a2dfd5d37cdfda48cac0ba672950f818443012d77b960e12ffbf3fe2c
 SHA512 
06e4a88fa88a63ff21d562284544b90fb29b3132cbcd2936a8dde265740c5db24dbad79fbe3cae2812facd0404bd801738e20b1fa2ebfe981cc68e4c8f97cf86
+DIST firefox-141.0.3-bg.xpi 449759 BLAKE2B 
2acfc2c7a9f441aaf29fe67335b17dd707200249fbbf24cf00d4662cd784fc61b4a6171849e980c4420bcf49fc6aaa72ff6b7e3fb55dc0342394173b8615280d
 SHA512 
4866c879ba025077478e4190cc5e3f5dbd6106e06ac440fbd5d5ec573fcb5ba86ac309e9b7e47a03a5aa969dadd93374b922f0bfc679a93531b11734977bbe1b
+DIST firefox-141.0.3-bn.xpi 410926 BLAKE2B 
8c1bc9a51b807b388ab89a721122e4904a60295ad9cab60bdc1885ea526fc5fe557a7f18faac70933cc7c6d58ab21f8ca6a6696cdb0de9d4be9f362a45db6668
 SHA512 
3c70836f7518612b896e0772a3d75bead15451ef18167f725aff5edc1d68a299dcb9ab127aaf9e2b3f7bdd2bdb9d1eec4a39f09577bb0b760123d9dea1825df6
+DIST firefox-141.0.3-br.xpi 394670 BLAKE2B 
1b1907679ffcef240a514bb845d620298be0b35120c93e77de0e871124187d4021b50eb695b0bf05f365dcce6613450f0727eb1ae0690f92177528aefe96cf7b
 SHA512 
6ff55f9705aa188e7d673a2e2d8183b25a5ea3e031c31b9be06153a8b075e5fa15f518af32c873b152c082e2a95fd672ff2e05df3d4a310c429e52fc99c88f9a
+DIST firefox-141.0.3-bs.xpi 448338 BLAKE2B 
dc140b7f138b4c1f0805c66abd406f76dbef9cafd49aaf888ec38ff4e8cbb8621a604d857cfdd0fdad6d123eb302ac037c17a06fe86fdff9a942dbdefff212ce
 SHA512 
b25f68dcd14d934b7f1df9a6defeab0903cf7326dc4ec42c875b074eb40ff0236de2340f343e8ad942601e1564a6b247ecc5d9239313d1c1b34c564b6aef7570
+DIST firefox-141.0.3-ca-valencia.xpi 357418 BLAKE2B 
1e8f11d7d78bcef837cc045dfbdf546950e322e5d50760e3447d39cc894aa5a806bee83a6899f777defd680254ae3c32cd4e9caff03df6fb9d6e95c99e9e8b4e
 SHA512 
13e40fb78f9c61cedefc7b1bc05b4e7b312b14d49c71e1c578a04c8bca02c5718012a441cbc6285f937e6f4c7be00ac1190bde69e985768c49b268d4481a8e11
+DIST firefox-141.0.3-ca.xpi 396435 BLAKE2B 
e850b0da6c92049923b1224019ad6f7f51e906f1f93cae172071d2782f13bcf6beabd1217adabd14745151b5c8da514e7b2c3f67f782df6f556f98d01674f83b
 SHA512 
6296fc172852ae060a6f3033a2f5a5afa87e8de0ca29e00b9417f90bb0555092b4f6b3188b0a9428e62598cc338dbcc366c3ef38dbd5235b12251cb572f77a4a
+DIST firefox-141.0.3-cak.xpi 390015 BLAKE2B 
e152914c0e39e6cd69a55854af2b245a908057fa39c90b1c9b03b3c3d48720984c94720b15e6f2f6a011bd5fb9e777e31ddb5823d8064085ccb56d975e72dd0e
 SHA512 
692837147e317e7ed3164bac7e774bc68488315422d2644d72e74d2d579c1bd3f9e19e0671b3b84711b230f1f5b9d5fe943a2643d610e65878a592e5fe3646c6
+DIST firefox-141.0.3-cs.xpi 477055 BLAKE2B 
2b375687264809d091679ca5b243962c30039ea1be3a59699994ffe204f87b38d665a4f0146eb41a427588c376876665e2b0a9ea9725624e40be79241ed0226d
 SHA512 
46922776114e059184dba8a4cf923fe81ea4aaedadaa3f99dda2cfe1bd2a5da4a887ac0e1ee3ca5682e5343692d1bd494bb39dbf5eef9f99392097d9a9f8f5b8
+DIST firefox-141.0.3-cy.xpi 443051 BLAKE2B 
d8d75005cf88db3a678aa316cbf91ddd1a2ba7b9e3e1453fa0265fac5865c23bcf553fe692aca1184c6c7d902da86b7534788d82528a67a807fc23812f84c196
 SHA512 
2f682b9c61dc20a48e56856ac947a8cea1f7d829641de232408d3572bfaa897b2538a486985ffc885492a5cca73dd5c7fc2f8f683756330528693e02521c1529
+DIST firefox-141.0.3-da.xpi 432193 BLAKE2B 
56dfdb576cc0c77750a8284214496e74644786f8d72d66dddf0f7939dfbbcc52bd76a72956f7714768a2a77a563f756c9ff0536e37167ea4157585f80a4ef170
 SHA512 
256faee85a2f63d066a4145068ff8fbadae87d60455cda59564f0ad749332d5017894c2ff6bf4c88fe7912d908157e826ed666a969cf31c7ff6983bfbfa0803d
+DIST firefox-141.0.3-de.xpi 453714 BLAKE2B 
cda6beee74d4ce19032b4fcd14c9ffeff7a4455c770ecbf82472fb3aaebe8ab1906dec633e8d309060476353e10d75605006aadf71cd0908867ba36fa4824c1b
 SHA512 
658f6c367d991fe97bc7045aabec72a84124c65ff19ea55eb943be1e79879138a2193135eadb8824c4245da6bb2922010f42b6b83b22abf63f671cba52a59014
+DIST firefox-141.0.3-dsb.xpi 467110 BLAKE2B 
66b08cc33a447482881801b729a982635418d5624c4b14163350bf770bad3bb0ba7ea4d68d5a6bdcd2a688fafda4a80af92b5122082117fb02fe71b17b684e7d
 SHA512 
abc289595ea5dd6b46962c61cc71b88dd7b441ea7ed47c2b16c319b3599c289edb3fa3a585c650ee26a44db0da2e588c864e804b46f63e97229fe722e917eec5
+DIST firefox-141.0.3-el.xpi 537828 BLAKE2B 
cf0e6c06b628d14560837073d55ff492a462ae6a574eef72f69bd506fc07a591bec1ed5655d7c88198e73011289c47a039a2d7a5394aa01f2bd854a9d17c16e8
 SHA512 
78023ca174395447e9ae7dfa688f6e99add962cf7d2eacb0ea8c20762f355af83ad2a02f96e61f3f88d1f47312499425abf2fbed546cccb3c85b00e30a08721a
+DIST firefox-141.0.3-en-CA.xpi 412190 BLAKE2B 
af674c8e3d590f10fe95cd707bc275806d5e98fa4b265eb3cffc65f0fd00fbb9a03f88da8d212fdd6f3aff19f1feb191250a81631d753307be2db3fa545afc8c
 SHA512 
73d98655d2f1ba3e8ee1d88b7e13a6fc881c0ccfe5c0619f1b1dd0f0ccdc35a2b34369c58f0a7a51e2441662fc4bb6f8127b867af286dd5472965ec0a06fc3e3
+DIST firefox-141.0.3-en-GB.xpi 412480 BLAKE2B 
5471b5492d05cfd43c7321ce9f47f3c48c839848c6880d43347b6508c65c03cb35df695469f75084aa5dfbb7230f565f0d0f778afe09e73aae89b555b4fbdc80
 SHA512 
3740501a53cc562bf262d2b9efd57aa7203933beee581c3df007e1dc1f906f28a74492d06edb25bf4f34fc43cc6990453d1178e636267608c29d45bb0dbd62a2
+DIST firefox-141.0.3-eo.xpi 434525 BLAKE2B 
92d724a505ad226de66f9e0ef08e1b0500c1643c4e8c302309019ced57a9b6c0de5618a058ca55b4e78809cd5d7d35f93bbf6825eaaa81e2a0bdc4a2f3186317
 SHA512 
77b9633f1e79976cd7bade5de073517cbf953530746751bedc7c802599b3252ee3835ce7b77117778d6d67bc444152e6a039725809349c166846d1341d8632f3
+DIST firefox-141.0.3-es-AR.xpi 446589 BLAKE2B 
f7a44a1dc368c303b20fc748cd22ba29b430cf4ac31aaa97153cd0b72660ef6d4a077b6c6a4b330d0364f42cfba4295b13c0965382959bc0c54d5d6a502cff84
 SHA512 
d38bbfa2394be3bcd3d319bae096bd577a7331a35cc454127da280ea32a270e0ba0c208894c18ce48e6dd428b9b4f700642825ac1f286f864bc11a3f4354ae10
+DIST firefox-141.0.3-es-CL.xpi 447401 BLAKE2B 
2bd0702e52081911b7869299bf04bceb5318fa9b3eadb3cffb6c5098c2c8a6598abe4a1df8149c7ba034adb39b3dcb540f6d56c197d460c2a32895e96b21f1bd
 SHA512 
f894c7ee7573875035e4769c1390303c285911489bd1cd08cc71613eb68a8b1d14e3bc39973e6de77dd086e929b98c1776e41bded093b2fc222dad39e473bac7
+DIST firefox-141.0.3-es-ES.xpi 448126 BLAKE2B 
a2ec0f0acd0c660e7b988829b16c15009962aa172d87d55ed2022e8caa2d674ddff9f6b75bd169b9cc4f6d4acb1c5598e69f269fec27d0a056b6daf4c2da5ed7
 SHA512 
73c136d487fca20f40d876b38728efb9fcf2c3bbe8df4733b9cc15bd5f2391b0620ac57b1ca5e9d777e6d12d4588e20fe2727cafbef147f1e85c3f2832d9c484
+DIST firefox-141.0.3-es-MX.xpi 436697 BLAKE2B 
670cc52c58a418486da1f515de9a7a825326942d788f22a1215d8c11aa7e4a1ee1cc2eef2433cf5e7cf34435e0ff45524b3e056b94d38d6f37f8250d31502707
 SHA512 
3906dd6df9fa55d9ea08c2093a387e7afd80b8067a77b98da711e15aacd0acec8cd4016ae22fd23478429a668178d4d2537946cfaa19baeb36e7f3e83e783d36
+DIST firefox-141.0.3-et.xpi 358575 BLAKE2B 
f242037e4acccd0c3efa02e023197baff3ba38eb8a7dbf981c14e08e9a40671397ab812558a49b7d91ac0a9934b3e24c4defff6b55bd8eaa76238c7bb81113c0
 SHA512 
9768b5c16694f445bfdc8e770f57efdff54ca9aaa04645dec191541544453a3397ff0f56273cea5deee1afbac9a6b986a4f830452eb37b674b995301ece8eb60
+DIST firefox-141.0.3-eu.xpi 414516 BLAKE2B 
d0d0260b151782dbc61bbfc19b836fa0a1d079fc423451bb30f4dd012fb64c6fec360660c043811a5d50dabb51b02ffaaa870baf3420beb9b7067cb7dcb65995
 SHA512 
d69fe6b631a7405ab542660cd73e65412f71ce9770cdcc51b2f97a10d6babd7b63517870c501861de340ce14ebdc5adbdb953cf4e42a96c23f04f5d175abf559
+DIST firefox-141.0.3-fa.xpi 420260 BLAKE2B 
e9f5b165c72377ce71d31b96d7ea640b124ee85e816342b7a53ea539ad68b409aa2e50793be753100886741b6d696db728b530df40b1477a7ebab1eeaf46311c
 SHA512 
30f961ab14fee0f676f17aee75a325f2c61b8f83585e43fab32f42957ca8b28ff36af2d951b8dbea728726c6adb9c85a5397a1fb0392a29340e218f8e68e7083
+DIST firefox-141.0.3-ff.xpi 309820 BLAKE2B 
27773afa4d885c8c1ca45355b956913283e4df8cdd814f6f409b5a4b5a1639ab4bb479774c487306c208c2c824eee423850ff0fff88fe3ceb62a11bf139761cc
 SHA512 
ca36b040a8d94100f2501823653be8206279787d58782230b490e3fa93d99b137e95497df90aeeef07c0127953b897c43175695770c1310ae182a80577107777
+DIST firefox-141.0.3-fi.xpi 430359 BLAKE2B 
11030b114ce7dde981097f3558248bb6239f1233a50d0026f7eacebcf478a0e3731f23ffd3e6fb83e90a8de6645f5c4c0d0e185c83c9bbd296b7d50ad22b9728
 SHA512 
6dd0d16ced319f65d9e734ae933afd16902459fe87191f689d714673f0f51c18916b14bb3112dbef45dc4e5d06cca1476221ae2666777466ff365bb367dd733f
+DIST firefox-141.0.3-fr.xpi 459279 BLAKE2B 
946ac8d93ab9066f0eb94055fb4be00e1ed6a80e28e325d3efca21a08edac29a75fc3050b5a1717800f2c27c3cc04be02379bfb267aee1a99e019ca897b26b44
 SHA512 
1c71e69aeb6a44de92245a759eb829a24e96b4334683d6063ab5aa7e213f50a95ae76f4b195239a7785a8a00df4e4824070d68f783aa36fb86c0d105cdd771ec
+DIST firefox-141.0.3-fur.xpi 452658 BLAKE2B 
0650f841556f8f3eb074c991b6b928f5dc31c2ee5d3fdc1711d229565c9654f1d6ce982f5e3a1b3ce7d7aaca262bdfe6879042002da93ee83d1955eccf2e1bdb
 SHA512 
77d1d6ed13c95f1a9344c48cf1e5223485ef334a27bbf74e538b86e2496dfec6dd805bfd10a899b93eebbd0ee2975ff3566b9dc459789fe4ee6a10d20566e1fb
+DIST firefox-141.0.3-fy-NL.xpi 443193 BLAKE2B 
8f46a0c3244256995c88c5b0b18c7b3b2ac8dcb9f0a77876298f4c22ff100c0f1255b59606b05013b53a2f981a0a9b5c09ed0373624886eb39fab7d304fd7fa7
 SHA512 
277c87d4b734c196928a78f597425d9463f292414b6e5fd77f3b4fc441b1053ec5c8323c26441c5779754ac9eec398961d0ea11e6c0ffa4a7d3408c0b21af789
+DIST firefox-141.0.3-ga-IE.xpi 315168 BLAKE2B 
5deac68cf8fa9872fa06be0202d41fb01e297c8dad9dea3249c8b74d613ddb1c97397272830390e4199f1a9653940e27aeffa5904c8943065a9d3f52a3d4b777
 SHA512 
7b569bb2d4046991062ab4790c56f69268f845bbee0da761c7ab9322107b361bed774243ac65ea664ad035afebfc4a654cfe8b4c4c18b400b3e909bba1e9b0ea
+DIST firefox-141.0.3-gd.xpi 398517 BLAKE2B 
ec2a2158417d030a65755dea50aaed12b27db64474405db8f2d8278e4b71effca0b8c0fec0743b8cbb0c410e2ddf892d09a09e571f2b7905eb3e9d631661159c
 SHA512 
136d7388e00b1dbc4f0d59a27c46966aa86fa1839f4c6d9e9b88f2119d6cb35e8752be7a614d09039b6800ae8ae74ec8d3e74d146f395707f912de2789deb0d3
+DIST firefox-141.0.3-gl.xpi 444054 BLAKE2B 
42b591f8f654052b90f4439893810637c8ca1fff60871e2c6546c5983a126a27365e04314e70b827ae8baa5bf088343c9ad85c1080efc872132845763abdab41
 SHA512 
18f7e307cfa526734f2bc6a19f56d69193c0fa7314517d8bf77883d727505c62c17b5236557009f36fa213a97439e53f763036fd663371dd30a9f6c0154501c2
+DIST firefox-141.0.3-gn.xpi 451792 BLAKE2B 
1ebe7ffcbc06f86309b469ed71a1d012832bd8ad6c0a17b675cae48f1f9876399755b391bc92c021b6a972be4340f2386193fb1714c769cff2506c1b2a8863c8
 SHA512 
fab5cebd471d8934d20f9e1f36713c1f9a7ddbe82f93b044cac63243bfdfc89639315755c2e83a60034b88519ce2d7aaf1db2835a9d88e18f1ba7811403d5886
+DIST firefox-141.0.3-gu-IN.xpi 358279 BLAKE2B 
094ba47a7dfb8b30bc7918ebb7aa2a2bdef2758ac117088472f6d3ff7cbfa8e87fbfdcd6615b10502c3b7bf8d665e4a6102ecb76a55a15954d432a7017942db7
 SHA512 
3fbcb8e00d7c0d3a6e159feff952dfe8307911765b48ef324dbaf48077b9e645be8f66ea08a93ee0a80a62d9c7f7f5db208ba163a034611acb766e8726629bf4
+DIST firefox-141.0.3-he.xpi 445742 BLAKE2B 
4d80514d57e11f4438b28475325b2abc8118af8bbd57f982beae0e93e10f3b7b326c3a35e6e2d0042f5f10a9782ecee7623d8b7a32e4ba59d1a0e89f8bb99453
 SHA512 
55aae775c67dffc1c0a5baddb14922512feb8f0628d09f2e965f97d816c846e1913dfee0b5b14ab47838c52e05098df3b80a5187f9fa8645bd6c434f84ea73cc
+DIST firefox-141.0.3-hi-IN.xpi 376929 BLAKE2B 
40fc10c5c60e4974aff3601a04cb5c5d829933c687c9a98311f3fe38adbcb95e8d2f3a248f0d71f4023cb4eb052b8bdb371c1bd161b1770f41ca47fbff4ef6be
 SHA512 
720b781c9fc95c15efaf345a7a922f7e1da67286aae76584864aa0bc42ef95d4af04b3fb8e266197c87ef394d4d6c0065b3723d6cc2b8b6ebcc1f3666e4ebb00
+DIST firefox-141.0.3-hr.xpi 437909 BLAKE2B 
d1037da57abc36e02c08c5c8debdc972a70f3f70f97e998f856dd4b71ce5b3a3264f684a4b3387b61e884cbcad363715c85dd9d81106aeb5aaa999a07cb3208c
 SHA512 
4211606252410975cca1c286ba5f569437dfb0231fa3dcd532524e695730355ea330720a75f0782c5af3ed47552161060fdd41dc482361c92bb0c0c317bf4344
+DIST firefox-141.0.3-hsb.xpi 463716 BLAKE2B 
4dbd8a687aa17e214a1bbc563c0f0c77efbc93289cfcec8a74bda224c2ef821e79ed95b056ba9708c1f69ef89b92da648d8d4070a151af35560b609f5b4cdb97
 SHA512 
8436790ba7c69b28ee7da41f9441ff3d6e7ee1080232576c99ce6908822c70686a97942d8365bc587ea5298f79a0f1d71dc67c8f0c83e2666ad8e80822434b32
+DIST firefox-141.0.3-hu.xpi 467212 BLAKE2B 
09517c063092558df035ad1d2da1c7aa7333b613c372cc7f39bbcfff13f33d1be9b98ffd72cb11998958132cde44c1ff69457ee236d2d015966dee6003c2150b
 SHA512 
08e3daa3fc5403396dbdb8872fc349e711a289bc5c91f83082fe7e1fad89cb5945e2872433d7a08808b9b78a580d9132d0e8b8c8015ccd3e6e55f2f80ea1e694
+DIST firefox-141.0.3-hy-AM.xpi 453330 BLAKE2B 
992d83545bb0dc94bd8f15ddd8f248bd49be2a779e851a0bd69dd9daed5b1e770b76e2415bbaaf58c8d561995e21fe06619fa8e578ce83898b09f1f9c773aae7
 SHA512 
e671ab98f07e9eafcfceaba28960d018fdb2ba739c9685a874d930eed2bbc4597f365b4d0b6a9f0d910854613f42a5b71e4001f6ce5b2fc0b820838d35f99b59
+DIST firefox-141.0.3-ia.xpi 431194 BLAKE2B 
84f8d3a1808610b40026584100ba8e6b7139301d8fd11c17e950ebf7b728f7cb4d42f0938cdb866bc61f145ecb1367f5196df49073e781ecc0b8b337e4e52b56
 SHA512 
7a7cfa0ef2ea038c2620ddf2de72cadd05e1ebebb163cf50c7e99cd94481fb0d42b23da3c35cbdbd2cabebf7ea80d2ac28b9c5f9a4d42c7a6922ce40b78c85b5
+DIST firefox-141.0.3-id.xpi 417977 BLAKE2B 
4509ea16e719deae67586838c9518f18008b20a8a732541a100ebe9429f06628ef2550b156bbba4048266b029b08bf18dc3e2cbfe2002ac6ac24d70178b6d22c
 SHA512 
6e6f890ab6319c3d663c23ce556205b94cbf28e0a6c2839635415bb0b1a07e411ff84ea5ed6f459e17fa19f7d30e6ed65c043722d2918fe2fd527cbf90509598
+DIST firefox-141.0.3-is.xpi 430572 BLAKE2B 
02d11cedec689eaa48fb4c2d562a3d2683c0635589f274d74c1fc6a1bc789da1f54e74344d96d67eb3c98d5eb1f4956b6ed564c6f1739a2b6cf375a52dcc26fa
 SHA512 
5d2d856fd54db7e1949f4a918242862d90ecb33e82980b3f3f5ed82d7c09ab28858fe5a984d0fbaf84ebe7339880e9c2f710dbfa4481088ce399622dfeb26521
+DIST firefox-141.0.3-it.xpi 441997 BLAKE2B 
c3c53e1bd8e47fa664dea5eb5a2fdf01c858464814efd2a9b9e746ae56ad076501f363ea47c92469f0f47856d742012aefbe5ac207747f7b4ce216e9a9d80cf7
 SHA512 
5a7ab10326d66569181b3112173380f1e49ce7d8987f3305bad8080098e631e89f9acf7394df79e1e11f1a05c0cddf36ae25b8aba8830be2620c10705e2510af
+DIST firefox-141.0.3-ja.xpi 482312 BLAKE2B 
433bbdf143197de545527bc8b66b46f4c7dd798e6134760065fe212303981a538f7ac4bee424b9304e83d3b761c8b5b80c4868529450b02f68820fa0b0570172
 SHA512 
973492387b8df6aecb14ec8d555d8ad1843b5504c58eebcd1bc44b31668bac19d2691db76ef42e4c272f539ef7f834fd5a4344ef412f3f9455e8106897567d2a
+DIST firefox-141.0.3-ka.xpi 495856 BLAKE2B 
0f3eee630b7a636dc6ad86b3a15c88f17b6e03423313b1f90e7fd364e7cb80a573c95e58d291c71b88e28801dbcea376720f61f3461d8c9420fe06ede176ac73
 SHA512 
7cd2af6a01896a88afb95dad71b5c9f49539c2b16d5366c73b8d40d417456174dd7bdb248d05f422d582211f09c7d0778f5e2c2137baa677f3674ac2db714994
+DIST firefox-141.0.3-kab.xpi 420783 BLAKE2B 
60c2ece90ecb8066d583880eaacaa29a66f1eb7f9f4f75b35dc4d665a75ada28b34f0b283d4bd402817a92af540739b436bc05752360ed44f2111996dd67d3ac
 SHA512 
462c772082daf1cf8de967402eec8902b9e9d3751a820dd4f94e3ccfb145cdbc8404fd52a30ae1c7c4a028991f445719d697ef77ae3650d74dcd0a05bb686dbf
+DIST firefox-141.0.3-kk.xpi 501436 BLAKE2B 
8f9ea9701554d79a23ece84152e503f42d6112762144a7893e97ccf7adf49871acd0ee1abac739f7bb89c6cebaa5152904c7e203e23862e9680f3f1803a82859
 SHA512 
6cd9288f491cd23142777d89492485c13433154e0c019404a3454ea1a6a456d3902bb3fa9dc85b3f9df92c02d0b90999fa0077362fc1d850c416c7d352b54cc7
+DIST firefox-141.0.3-km.xpi 347598 BLAKE2B 
1989a1f0a26f0f387ae3984b8c46aa3adb7fbbd78471b64c5f4946e4c8eddc4c2de437a98e9a2f7e18915b7d1351e670b175dd34e961f1f911e08454b44b60a0
 SHA512 
3ba8a247fb43147459d4f27932f2b452722813b8f45567b257fb6a81f6e0a7d00684cfe5e2b81145291791bbad41adba4c7fa7e54db23288ad329bb17055687b
+DIST firefox-141.0.3-kn.xpi 331595 BLAKE2B 
030b822073111add5817410d00610a3d5f464d508fa4a12be19a021ee8c601dd3509c5ea89fe5462db60c38bc7f262332c86a4b2e075553ce4c53a21802d949c
 SHA512 
535ad63b5368acfbaa11e59e6295ef67a01193464143b7b3917963e372a803493ff97a6ae142c4e641b019b6b9794211bd514d3495fce4c872404d6155272b28
+DIST firefox-141.0.3-ko.xpi 468517 BLAKE2B 
42694d1e67ac6b953919b5f06875b1b922734ac6cec748da2c8bd2f2f9cc09044db279aaf21766c1f445cfbc773123a05ca1100d1356304edb7fece7ccee175a
 SHA512 
ed56b0454e39df92596a5ab9c712e382b21c7b739c9748591e1073b82c22db35e5cd9e556bc1f82ff621fb6be4d4b7b64167f321d928c0861545e079fe102986
+DIST firefox-141.0.3-lij.xpi 318793 BLAKE2B 
81210acf13811bab605cd07ce68101948c6bb08780838435ada32e969ed944943a1056cfe7f1dfe78438aca2fd83b9c52de1692f8b102180114bd0bc3d7a977c
 SHA512 
f88b296b6c5f8b92a8dbbd0e0458fcad9e72c42ac2bf42369c4a4834f817a5f7bbbeaacac28480c91005349f2e8f95f67acc70a947ae948e297d70fc1fa04ed6
+DIST firefox-141.0.3-lt.xpi 379044 BLAKE2B 
f7a1db111752b2f1faa85f3f95ae0a05566f2d2e19ef75bf569215b1b7d77145fea1eede4a0153eec86cbb3c28147a02f3242fdc14975742de00ef3ac3a02ecd
 SHA512 
8beaa984f7ea88deab51ff040b319c761aae91f7f044e1276935c971e4cd20be6f8a308ff6a0327d067c4c9c305ac500c99354cc89052fa39ad8d6f780f381db
+DIST firefox-141.0.3-lv.xpi 383658 BLAKE2B 
e24d6ec32ff26b7eb37f8671c684820941e336427af6eeae0a262b0c48ee8c7655f3e221a163a8abfddf2131412491bef6a2895a983156dd61daaeaa3f22f363
 SHA512 
e97706449233f0af6fe030d28fd6292fd184ded3f8a127bf06e2f637e12972f33f9f0250e357ae82f5c70cded03eb8bad205e8e62861375985e2434f49211a8e
+DIST firefox-141.0.3-mk.xpi 316340 BLAKE2B 
68c6a665579732279d789989b5829d83165157a4c96d9bdb2bc2de2ad674af997f38bac76899ef785483106584b91915b873297c6cda9160f7b6edea62311f5b
 SHA512 
1b8c9259886773c1e91ebd2fe419f2b3315849ed8915f548930dadb06d996acdb6990e6989a41eeb60a0b40a83a136137ecc35c430ec695500e6605ac1b5f089
+DIST firefox-141.0.3-mr.xpi 355978 BLAKE2B 
b00fae67a71254831601ce6a12bb50436b19423bd69345bca4daff476228dfd0cf8594e0ac71fcf43f2580fddeb4136e4fcc11bc9a3911bf1c7dc395a223853a
 SHA512 
ef13c59b3243e78ddab22cb5c49d83b6e4b146731d3276c609b919d3d992561bfbd5f1f8a410abd16b3f60c86d3cd727380653a31238086d2e3964126ac37521
+DIST firefox-141.0.3-ms.xpi 295297 BLAKE2B 
795cd7262048aaf1b33697c5098412f6f4ad7bc4a2db228d879e4779581408dc05ec7cbeed12fa8174f82baf48f9c833c0457356fca7cfce601ca728e9d91f76
 SHA512 
2cceac51f50587c82c9a349acb64a6c4e028b4591429176004893b8c25173065c78697f33aeb58bfe0513725215a21a18c1757b8ffd6a93399772c618f0e2bc3
+DIST firefox-141.0.3-my.xpi 342793 BLAKE2B 
5fcb10986e14d0adc1a08aa53a79bccac462228081abae32c7c422de07c9fff4a64ff0972fc6863df148cdd8693a1fcc1280448cfb995b3fec1b1c2da65045d3
 SHA512 
4cec49b58ec347c98097afcc1f966124cfefa1c217d3389ed93b76f7507e3cc113176551f128e2b141817433852345a48c29368c723b1e691b5c357b7d248e1a
+DIST firefox-141.0.3-nb-NO.xpi 430358 BLAKE2B 
e6cf3aa6cc7a5384ad798055bf36eb618040d77189ebe16458292d27ba917ea05fa8777887cd963e9b3ccc15f0eff0f1610c22003b9e6079c572f1db48099f87
 SHA512 
928f35cc7bee0ff251911ae83fc65e0242cc9f2f0bbe3289aac135ad784b59948d8bd3b3f4d0070b7e37b5a48321bee29ebf6e38aef3b3b1d30a1991545d1fa4
+DIST firefox-141.0.3-ne-NP.xpi 348165 BLAKE2B 
efea194dba9e39356315a0cc60bf4f0956d2d5eb35ee575988103e9702cc1793bf5d7a141f28b77a857522d391f327a160f831e54d8ad71a02d793bd6fd384e8
 SHA512 
fc555f49fc320863fe9437a2a8d99ee02a6baa403cc633437ea5a1954e7bd9ff242891b9ea163ceea2e4927600d4604c18ab4cc96bd0128e02acfd8c6ec6bb5c
+DIST firefox-141.0.3-nl.xpi 437244 BLAKE2B 
fdc2716e50aa09e7f658931be7472de6e9c55fe00de4a4d481f7da18d136690c5a1c6ce919276206a2c4dcbfe27871f82af690a2969e63e5ae6546c18a60d914
 SHA512 
8236f27015aa5222a996de24cee40bf1f3c2bdb23993a168f178f600c82f1dab6293c33f0d5348bc6c4db5746fa10c63db4461e78012d5c0b55738a197d68ae2
+DIST firefox-141.0.3-nn-NO.xpi 429468 BLAKE2B 
3bc910be574b22bf935f9424a9576a504d4c578edacccd1913d6373582c9deae159943a9d30ee2ffb308b1bb028cc81c1368fe8762013aaf95b3348ec4fabd8c
 SHA512 
a62db7ae06bbea4503e28d7860251f4aaed0a7e83d43350025f1d46a8476b733e6a0a26fe6cd48f136c06f6ca8ebb6ba6dc9f62713628ea48f515e0439ae6fa0
+DIST firefox-141.0.3-oc.xpi 410037 BLAKE2B 
821298d3c767eea3c0c8d62e7d80a75dcbff3798bca3f0708f6899bb4304d66e9554fbc5fafbfcda3125c57589fbbf237fc76a2c5e2519f49036fad3ea51c5ec
 SHA512 
9c326518b5c7efa0bfe35c681fbb6711935697c9dc2a0aaefa1811e8114491de825abdd611b9b4800f9e0f814048356b8add93a1cd3ef6fcece4e9a252e49982
+DIST firefox-141.0.3-pa-IN.xpi 492918 BLAKE2B 
0142ae425ebc9d0880329e4160f35a82747bc7103a509b41fb7e25f7634808604e1c1637b106a6ed3fd06fb98b8a8aa51d1fe2e471cfc9db556ab17ec837a5d8
 SHA512 
c9b0d2ac76c36e8758f69b36b87b102720bdd2ff97c304892a008d93cb9708f6e1cd8cdcdec08a0deb6cb9dedcc6331137f035b9ec6bccfdc65a2637b147018d
+DIST firefox-141.0.3-pl.xpi 461368 BLAKE2B 
afb8f68591ee66cf7618390c92a46486428ddee0c3316b4d447f2deb33c9432e4ab4143d9c0ef41a502ebe9675cb3cf57acb79ed73203dadb91b44bfae913f6e
 SHA512 
d30767d8a5010b8b8ba744464e56f429eea1c1e263554746f0ddcc717ab9d81b7799630cca89c4681cce891df2bda089b73b1189509578d9ddeeed91d1174c95
+DIST firefox-141.0.3-pt-BR.xpi 441868 BLAKE2B 
780b6673fdeedec42b977abc60c0e5aaaf63e4f6c380c41c6b0c443556e785189e329014007436f5c0610f197d4f35202e4b6035af0889cddcf6601c66c3b712
 SHA512 
9f402897383a922f82a6695c232dc1543afa72e0315359dd427c0b9633224bf5e696b94a0ee28de21798c0e4eeb17b80e3b0f9fc1163e12709b5e8716fde8efe
+DIST firefox-141.0.3-pt-PT.xpi 446570 BLAKE2B 
4df41482bd26642a0f39288ff23bf084fb26e16490cb958c4d0c5948492ae8417418f82e66fa73499f1bd8b74a931acf294c2397fc3733b4d896c5d3d6fd7add
 SHA512 
2d61787484a0e5559ca2b021b922b867417e2ec34921d75e834b79aea61cf63f1695f131f257297ccd25be8cf5fa3d2978cdaf9f60f7a0b39b683572ebc52f80
+DIST firefox-141.0.3-rm.xpi 436633 BLAKE2B 
fc58c474021eea01f24edc98c74aaf372867d1c96ba8e233091bb1fc44ea540bf9c106830abc93897590a2523d590c542f1d3019f7e489079d9a47791dcadd11
 SHA512 
99bb685b31af5c9cac091afeb99bd91ea8b17e25f7bc074f1577fef1258ae26b33ef71bf0a66f78a0f75cbe4b915b159029d67feb287e9e5964d102cd3bbebbe
+DIST firefox-141.0.3-ro.xpi 365443 BLAKE2B 
1753d9322dc7b85721f4bbc68e7f33b0a5037268d34aa60447238efd9e17c13b1c990929b937bb6f8eac290b9d7384078545be885fff6f93c9664bed1656d6f7
 SHA512 
03bb94f65ae96ba89d1bfeb228e90c256f6e2b5523643379075fdea8bcea51dfeff47c62358bcef20eceb7b2e07699682b10882bc2a92119eb52d08a19a4aa06
+DIST firefox-141.0.3-ru.xpi 526340 BLAKE2B 
a07c3282023150bb0f322596ce7e8593d6869af8fc15d09349353b7f733c855b3cc66a5ed651a08e77eb983eb11b6c9c6d4c2cd2785c42b8f5fa0eeb29d17cb9
 SHA512 
e07f8b8550822f6b4664c57b0cabd3f16ba3ecd009a59aaec3703dbb26cdea17419a50d99b0259600bedbcf02e51980265790f9359c850341293ed0c747cdcb2
+DIST firefox-141.0.3-sc.xpi 405227 BLAKE2B 
3642aa98d69f93a39f3c2e043b136b79832be6e0e8e9bc9f82348c6fd245a0e14d2602f8120dbdf590e326dc0f600fa344e420341458e21ba7941bb9367fbfd1
 SHA512 
2ae3900bde6085a48285515bee4e85fbef93952fcf900c3fa50d9ddb611e4efd381355a62fd87e830591879771191ab564c59eb06162ac0f3db41f9530be13ef
+DIST firefox-141.0.3-sco.xpi 322273 BLAKE2B 
a193a218e0d1da7fb6361e3780677ad6a563210ab1e49936cd0ff7932dcf9e5d3feb797162f8c56aafdc3e5af6f81379748f64eb2f8b29930e28943c7eda336d
 SHA512 
3c24bc013ea16b89699dc1d0a2b1520d5981c5612193b227f0008a1526762b2be78f4ca046b0e1e81fbbe62c9036d792f4e56b96969581e5ead9de5c5a2e3119
+DIST firefox-141.0.3-si.xpi 410589 BLAKE2B 
6453de97e74f6707e0f5ce27eda77ebbcea99cf8cfbdfbb43f09360979a26bc2b1629b5ad885301dde271de2cd38ce2e4e6ec851d18ada8a1144eb92a774d44e
 SHA512 
4d1df11cda9dc632e7897072e74760c34d252fb65cdbd01d17c3d51e7fa1a2d36d1d755bc63f442c93cf3066c852615df6d2287bb1c2a4cd1a52247c06ddb740
+DIST firefox-141.0.3-sk.xpi 469035 BLAKE2B 
638c376949a9eb63f4202f12bf6d72a45956e2d7a21f8c46a63040756fa129e12a1e13f946af38038b5d7554b510a0d0c340497a89ac719cd24ce82110f23bf5
 SHA512 
926fc156d7337f62807dd7cc4d5ee7b65efa7bcc413d963f5ef2278967a080ffb54684968129d2cdea2d89361c3684f034b6bb60d9e62e94808c59e4329adb23
+DIST firefox-141.0.3-skr.xpi 484669 BLAKE2B 
25a311613e0fe12705ef7e78cd2e53bbe02d30b5d5e8c4c2137512cb0af51ae6b09f513d27ffde428531e3f98de4a740ff17aebb4176debe697409eea39105ad
 SHA512 
0e95a7be43e74135714f260c0065b04ffb1bb01035b412d8c9ccec28de0234459b83c597b0451e6f24375eb49e92f99cbf57fd2aaa5d487f6db593686253bd25
+DIST firefox-141.0.3-sl.xpi 442051 BLAKE2B 
09982f99bfe228433a64d0fdadb09f31df6d19841af55a3759d3a2dc95e383045a32b415e967bf7a7434baeb0203898f8eba54f45bf72058f79cdd58b139522c
 SHA512 
6296b194f0ad16225c44ec20a180bbdbbabc889cca60f50ce2c426a95198a1c098db4a06359018ef1631f611093f7a726fd1b2ba6152661da0d44da7cbb28688
+DIST firefox-141.0.3-son.xpi 273505 BLAKE2B 
67c7e40fdfdcf5bbd1ef0fd9d9bf1826d413c1e537c7c818742a35fea82caa89cf82285804cbe689d19018f689d8a889e4af95daf98df74ec65b6e3f4dc6a474
 SHA512 
15f626deaa80e7aa42c76a70b027e1a0eb69d43bcaa28c3b63600766bdb7038dacf53a874939a31dad67c8195d7c967038827ed5f04d23f896a65165f0840d69
+DIST firefox-141.0.3-sq.xpi 452372 BLAKE2B 
e5a4a4bca0e92390c9aae30420064697b79fcfa90dad6cebc1f10a360e21c5808bb9e0bb62cbd9dbd6273774e52b8f48dcf3abcb69733c8546eecebd4f7659ee
 SHA512 
997dbf80864b1b562ecfffc94e61cdcfbafba69ad937068e9904d054446b968891403f54c1aec1807ab392184dd86eafbc71309070a4bfbebc00c5fecd139c0b
+DIST firefox-141.0.3-sr.xpi 449519 BLAKE2B 
ac93673769c5f988536d79c1c3a121e50054bd35655a494386d991b4417388b0e72c6f56fb8a9076c78ea65541fbd1a90abb58b0b9874bb7a45ca9725dcd705a
 SHA512 
0d2d619d962bfd0f7713d315a9cbfe51a98cab930fd4265c77dbd6adc970b550d144613acb8dc91ad7c575782a3a8dd0c1d2e3d9de9f2d6a0eba2b518e82541a
+DIST firefox-141.0.3-sv-SE.xpi 437190 BLAKE2B 
25fb82252c9a26235f2439afe663a821bbf43ff98128e352c4c0262b3c2db02495e1f522109aecba7e44bf5196542e1849fc5857bf706bab3c1dbf80c479d7bd
 SHA512 
9af9d28924ca12be18aa0b4e8c82eb52e2299838abf3df93a1432591ec3b02be9088db81dc01250ad4a65f4808912b91f8c5434e31e16e91588bd556c01a783b
+DIST firefox-141.0.3-szl.xpi 340850 BLAKE2B 
2461aa2b3ca4ff5cf1f93f7f52b2dce015edc5667a3c5d0d990852ebc3dc53a36baa640800660fe19c735e19484620f66fa6af470e1dda766b0ce8a5104aad5e
 SHA512 
866fc6386bd23286980ccfeb43712b971d83fb71fd59b8ec4e0ddc0e88863a4a9a1a94dbdd865f3fc6cf8be2452f4e66250d4bbd633436a646aebc54fba005d8
+DIST firefox-141.0.3-ta.xpi 337951 BLAKE2B 
1f829204014b8b240685578af75909118d04bcc0479a259cb9d11ae254394a02146db76a80750812de5af2d3df432ae6858088f16ff33b586e2e9dbbf42ae492
 SHA512 
e2618c44467ab3604d710c0d2447a4847856b3b3ab4f3cdc0c8e3127acd8fe033dff5698878bfe1bce29521922f1b1af68b957b216883148b2cfb3351d20a945
+DIST firefox-141.0.3-te.xpi 381433 BLAKE2B 
0c75cbe1bc32c89151c0f5fc73baa14242717b574bac6d7d65ad883471f540eebca5e6a53ce96d35d71f16d32a7905040aa2c04d6e95c8cbdb3e72697344bc84
 SHA512 
770f149209c65ce101ab5f8e0bbde821ce7fa9b00e7692da9ca5fa26e83bf1f40072e5f44269d2f3556d1f2d03daf1e98fe8b8ba42cd7ebd79531e5ebd7bb92b
+DIST firefox-141.0.3-th.xpi 505689 BLAKE2B 
2cc3939607374ca5449063ccbc9b4df9a641fa0948d5fd757acfa3d5e815fbf424eaf9cd6a38bf33fe957091365bd670c167afa84a34d6e7547c4c21897b74c4
 SHA512 
a4af5dfe5bda06606c73a8ce2199fb5b644b82188bba0192bca833e29e0e15b64ac81a6d7cf5b40b3ed32fee22aed362f6d37457a434f30c37fe9b52aa81b45f
+DIST firefox-141.0.3-tl.xpi 355910 BLAKE2B 
6f75b7e36c2002be3539775f3d84c739327977bd613f08e3b60b0e4f8e7f683a07e4adb7fa8c8c2b8eaea5502fdf63db2c9acf7709d3ccb464559a460cbe8ae7
 SHA512 
81641b649662cd06321d1e8e4931b584cd25f58ced37f5bf1c0cbb6fe3d86835aa3bc69822e1ec6763e66ff80799763034df09830fe2e69cdcedf04123a89cc2
+DIST firefox-141.0.3-tr.xpi 449795 BLAKE2B 
ffecfe31b60e778bec0f34011f5d4f0c11620962f18e376ac3cc04c245817855469ff656d8961c20f9818a70abd8caf94cc7cb72eaef94de63ce6dd26b03a24d
 SHA512 
ee4f271e0c80358130cd067aa56fb3958cb5ed73eb1347334751f7cfe502bb5062b4f1203237750554f647d59c5c5fd96e172fc2ac489c282f9a4460a19e1fd9
+DIST firefox-141.0.3-trs.xpi 321977 BLAKE2B 
ced72db58f48a79ae80326ae2ddfd93f0a9d60a1451d5cb9a8eb6267e255fcbbb4b9e9233080bb615ca2707a5c92a887cd7292f29056c17f5809e1aeab68bd90
 SHA512 
5d118f82228a3a57619f7f09b041dcd2e6d927c5ee7241abd2227be331f7409a0844e73842d0c6bb13e00575df26db84236bcd0011e260438cea61eca0fbea44
+DIST firefox-141.0.3-uk.xpi 517907 BLAKE2B 
0a032c7127c50579eeffce28b45b2e6ef6ca601e9c42427030d7f48fb3d99f7a865d9a976476660fc1cf3d54c61651cc4c2a4f2fed1eb478d98c5ba5c86021db
 SHA512 
36853a52dad35ab21cb09aa9f78a99f483cd54c568ce2501a8363fc25f738a977e7688b210e4bcb91b91c2b699557ea496d7504f4f9fea7019631bff1d281d50
+DIST firefox-141.0.3-ur.xpi 369711 BLAKE2B 
5c66d3a01fb10a331156c47bbbac9f1d1a65e3046c8feaf21084ba35124b1ad27406c8bce13df809fbf5de4455d3f04cdc5cdcd60e29af88fa61e94b0b19a557
 SHA512 
72d37907243293dba3bf4691623f6c6025d7211d2f7489bb605f51b6b7d3e533fe307534b7e12724e7942e38e12fdaef122fec781aea174ce05365b0937b3d6c
+DIST firefox-141.0.3-uz.xpi 303339 BLAKE2B 
44aeef8339f55bcadf47391f8d85b1ab03765cadc54618328382a58622634fdb07d4e63fcb1b577d012528d1b72001a384f388e620f948f5a8f15a617d8f5f40
 SHA512 
9eb89b349cf528627d0d1c6956dc51882ddd9a687078890b57b9ca701e69680dc9145e7068643de351a53c9d251353aa02472604e396826a7c7bafd1bb96c7e4
+DIST firefox-141.0.3-vi.xpi 470051 BLAKE2B 
3328b23a3f446272ab9cb035681baac8e724cad5ee8c85a983771afbaffd99d7231c65eb4001cf2af9538ac0473838c3d0a44f4263ee66800224628b4ee2b876
 SHA512 
7900b817374f2385a6c92b175611c8206c9961958a6e8113d030e4249d081d1a693e9e7fd2c40381fe08d8317df62450bae517975db1443354c53c63041f1165
+DIST firefox-141.0.3-xh.xpi 273182 BLAKE2B 
d82b212ca01371c8b123454913c4941a6b3dc1826173f31cd9bac97a8e123730f33db2ed11258c54537bb3aec5e64249987e10bc7778dae5c1d314668160ca1e
 SHA512 
7ef57658fc1bc3ae08fb4b44d7e670e19b44e3014b9e49185c275b2a5a6b9a2010342f99856ebdeda0d2567d452459d6e345f636e7f65ea7d8e4784a0b589cf4
+DIST firefox-141.0.3-zh-CN.xpi 461743 BLAKE2B 
7ef9a680f76bb668ab1c6fe114be21cb9e5d392a5c74babb13a181f490c476329f9d213abae78a650560abb2ee00f4ada426cc962351675c6a9679e0d85d8b4a
 SHA512 
f1911c61a79e054dbba4315c85006ff416d2b76bb64847b4537291f85f3a0a55fbc0b0a83c3d96aea0dbcada635f6f935d5d8060f424c418a54d98c18b9f0b4a
+DIST firefox-141.0.3-zh-TW.xpi 464765 BLAKE2B 
da0943bafb6cad0e77d693a814023cf14e0b4705d97a0486ef114acdc1fa064dc5274502b4d7ef7c9ee7c1326a2127e7c8798a7fb8537d57886b03a1d839be05
 SHA512 
ba086732bdbccc0e3f3ae62ce5477e3205bafc91518986a289c981a7af13c30925a1e7632b459e6d846759fe06b14c936d14264e167a88a0de348e9ec22b363d
+DIST firefox-141.0.3.source.tar.xz 643073728 BLAKE2B 
ed0be7a98820239124ec8c72143349792c96d49ca7cce2541e619825e98ecfa30879afd0c25d2dc14e4bf2eaccb1beced16dcf8776e74d07ebff7bb2f1584068
 SHA512 
b660b018840c41a254734b4847a791f1a9fd2f72dbea825ea5971fd0b3269a43f1f4be1ccf4a53f7809b6b98398f4e04a142e57f8882d6590bab636ef75002f6
 DIST firefox-141.0.source.tar.xz 640751136 BLAKE2B 
c65fc01879474a0934343289430f8b6d4c38091b4d98dd0689e5f0c8782d6b200296da093ed6e9de4055d51b9bc6fb66164df70336ae5b2094096d717c9cf0bc
 SHA512 
bd6998bce927c5b5c186537bd41475fc9e3809829ceadb2277bb382d02d3780d2a5e5749487567a75b7c9e3726f97662c4ec28924bc491c5a3f21e2ec4828d63
 DIST wasi-sdk-25.0-arm64-linux.tar.gz 115160800 BLAKE2B 
1ce22aaea87d0720d40d46ebdd96508c8fb0593b53c4489022fd5a1a9afb043a26a6e162a992d73454f612f2b6ab01e17a99c189c0c8b8c2d2d68fd96fabee1b
 SHA512 
ef4eff22c1efec4dc5ab199d09d93ee0004f9fa67b32cac0030f8b6a40def10f714391cec8e803c200995dd8bfad3ebad9ec79b4195aa6b2ea61ea47a8b9e61f
 DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 
07618828d4c25d67421aa72d38fc49bbff9052b8ecfe0fa9f4207e71880e9c650f458567cfa5bd389d5f830fcfee89142a77d33c29e7bccd1da7ddba2bc47b95
 SHA512 
716acc4b737ad6f51c6b32c3423612c03df9a3165bde3d6e24df5c86779b8be9463f5a79e620f2fc49707275563a6c9710242caca27e1ad9dd2c69e8fce8a766

diff --git a/www-client/firefox/firefox-141.0.3.ebuild 
b/www-client/firefox/firefox-141.0.3.ebuild
new file mode 100644
index 000000000000..c256dc3be0e8
--- /dev/null
+++ b/www-client/firefox/firefox-141.0.3.ebuild
@@ -0,0 +1,1403 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-141-patches-02.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
+
+LLVM_COMPAT=( 19 20 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the 
non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.82.0
+
+PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=27.0
+WASI_SDK_LLVM_VER=20
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+       HOMEPAGE="https://www.mozilla.org/firefox 
https://www.mozilla.org/firefox/enterprise/";
+       SLOT="esr"
+else
+       HOMEPAGE="https://www.mozilla.org/firefox";
+       SLOT="rapid"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 
multiprocessing \
+       optfeature pax-utils python-any-r1 readme.gentoo-r1 rust 
toolchain-funcs virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+DESCRIPTION="Firefox Web Browser"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}
+       loong? (
+               
https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
+       )
+       wasm-sandbox? (
+               amd64? ( 
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz
 )
+               arm64? ( 
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz
 )
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio 
selinux sndio"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx"
+IUSE+=" system-pipewire system-png +system-webp test valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry 
wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( jumbo-build )
+       wayland? ( dbus )
+       wifi? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       $(llvm_gen_dep '
+               llvm-core/clang:${LLVM_SLOT}
+               llvm-core/llvm:${LLVM_SLOT}
+               clang? (
+                       llvm-core/lld:${LLVM_SLOT}
+                       pgo? ( 
llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+               )
+               wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+       ')
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.27.0
+       net-libs/nodejs
+       virtual/pkgconfig
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       sys-devel/gettext
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               !X? (
+                       || (
+                               gui-wm/tinywl
+                               <gui-libs/wlroots-0.17.3[tinywl(-)]
+                       )
+                       x11-misc/xkeyboard-config
+               )
+       )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.113
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf:2
+       x11-libs/libdrm
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-libs/harfbuzz-2.8.1:0=
+               !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+       )
+       system-icu? ( >=dev-libs/icu-76.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+       system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+       system-pipewire? ( >=media-video/pipewire-1.4.7-r2:= )
+       system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       valgrind? ( dev-debug/valgrind )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       || (
+                               net-misc/networkmanager
+                               net-misc/connman[networkmanager]
+                       )
+                       sys-apps/dbus
+               )
+       )
+       X? (
+               virtual/opengl
+               x11-libs/cairo[X]
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               x11-libs/libXext
+               x11-libs/libXfixes
+               x11-libs/libXrandr
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       hwaccel? (
+               media-video/libva-utils
+               sys-apps/pciutils
+       )
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+       RDEPEND+=" !www-client/firefox:rapid"
+else
+       RDEPEND+=" !www-client/firefox:esr"
+fi
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+       MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+       if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+               einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang && ! tc-ld-is-mold ; then
+               if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
+                       einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+       fi
+
+       if use pgo ; then
+               if ! has_version -b 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                       einfo 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+                       einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+       fi
+
+       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       af ar ast be bg br ca cak cs cy da de dsb
+       el en-CA en-GB en-US es-AR es-ES et eu
+       fi fr fy-NL ga-IE gd gl he hr hsb hu
+       id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+       pa-IN pl pt-BR pt-PT rm ro ru
+       sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( skr )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+       # https://bugs.gentoo.org/587334
+       local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+               fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+       )
+
+       local lang xflag
+       for lang in "${MOZ_LANGS[@]}" ; do
+               # en and en_US are handled internally
+               if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+                       continue
+               fi
+
+               # strip region subtag if $lang is in the list
+               if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+                       xflag=${lang%%-*}
+               else
+                       xflag=${lang}
+               fi
+
+               SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+               SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
+               SRC_URI+=" )"
+               IUSE+=" l10n_${xflag/[_@]/-}"
+       done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -ne 1 ]] ; then
+               die "${FUNCNAME} requires exact one argument"
+       fi
+
+       einfo "Clearing cargo checksums for ${1} ..."
+
+       sed -i \
+               -e 's/\("files":{\)[^}]*/\1/' \
+               "${S}"/third_party/rust/${1}/.cargo-checksum.json || die
+}
+
+moz_install_xpi() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local DESTDIR=${1}
+       shift
+
+       insinto "${DESTDIR}"
+
+       local emid xpi_file xpi_tmp_dir
+       for xpi_file in "${@}" ; do
+               emid=
+               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+               # Unpack XPI
+               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+               # Determine extension ID
+               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
+               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
+               else
+                       die "failed to determine extension id"
+               fi
+
+               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+               newins "${xpi_file}" "${emid}.xpi"
+       done
+}
+
+mozconfig_add_options_ac() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_add_options_mk() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_use_enable() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_enable "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+mozconfig_use_with() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_with "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+virtwl() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+       [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to 
be set; try xdg_environment_reset"
+       tinywl -h >/dev/null || die 'tinywl -h failed'
+
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+       local r=$?
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+       return $r
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif tc-is-lto ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+
+       # Get LTO from environment; export after this phase for use in 
src_configure (etc)
+       use_lto=no
+
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+
+               if tc-is-lto; then
+                       use_lto=yes
+                       # LTO is handled via configure
+                       filter-lto
+               fi
+
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               if [[ ${use_lto} = yes ]]; then
+                       # -Werror=lto-type-mismatch -Werror=odr are going to 
fail with GCC,
+                       # bmo#1516758, bgo#942288
+                       filter-flags -Werror=lto-type-mismatch -Werror=odr
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif [[ ${use_lto} == "yes" ]] ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_setup
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if use pgo ; then
+                       # Update 105.0: "/proc/self/oom_score_adj" isn't enough 
anymore with pgo, but not sure
+                       # whether that's due to better OOM handling by Firefox 
(bmo#1771712), or portage
+                       # (PORTAGE_SCHEDULING_POLICY) update...
+                       addpredict /proc
+
+                       # Clear tons of conditions, since PGO is 
hardware-dependant.
+                       addpredict /dev
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       export use_lto
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       if [[ ${use_lto} == "yes" ]]; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       # Workaround for bgo#915651 on musl
+       if use elibc_glibc ; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+       use loong && eapply "${WORKDIR}/firefox-loong-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Workaround for bgo#915651
+       if ! use elibc_glibc ; then
+               if use amd64 ; then
+                       export RUST_TARGET="x86_64-unknown-linux-musl"
+               elif use x86 ; then
+                       export RUST_TARGET="i686-unknown-linux-musl"
+               elif use arm64 ; then
+                       export RUST_TARGET="aarch64-unknown-linux-musl"
+               elif use loong; then
+                       # Only the LP64D ABI of LoongArch64 is actively 
supported among
+                       # the wider Linux ecosystem, so the assumption is safe.
+                       export RUST_TARGET="loongarch64-unknown-linux-musl"
+               elif use ppc64 ; then
+                       export RUST_TARGET="powerpc64le-unknown-linux-musl"
+               elif use riscv ; then
+                       # We can pretty safely rule out any 32-bit riscvs, but 
64-bit riscvs also have tons of
+                       # different ABIs available. 
riscv64gc-unknown-linux-musl seems to be the best working
+                       # guess right now though.
+                       elog "riscv detected, forcing a riscv64 target for now."
+                       export RUST_TARGET="riscv64gc-unknown-linux-musl"
+               else
+                       die "Unknown musl chost, please post a new bug with 
your rustc -vV along with emerge --info"
+               fi
+       fi
+
+       # Pre-built wasm-sandbox path manipulation.
+       if use wasm-sandbox ; then
+               if use amd64 ; then
+                       export wasi_arch="x86_64"
+               elif use arm64 ; then
+                       export wasi_arch="arm64"
+               else
+                       die "wasm-sandbox enabled on unknown/unsupported arch!"
+               fi
+
+               sed -i \
+                       -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \
+                       -e "s:%%WASI_ARCH%%:${wasi_arch}:" \
+                       -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \
+                       -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \
+                       toolkit/moz.configure || die "Failed to update 
wasi-related paths."
+       fi
+
+       # Make LTO respect MAKEOPTS
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure || die "Failed 
sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || 
die "Failed sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed 
sedding multiprocessing.cpu_count"
+
+       # sed-in toolchain prefix
+       sed -i \
+               -e "s/objdump/${CHOST}-objdump/" \
+               "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py 
|| die "sed failed to set toolchain prefix"
+
+       sed -i \
+               -e 's/ccache_stats = None/return None/' \
+               "${S}"/python/mozbuild/mozbuild/controller/building.py || die 
"sed failed to disable ccache stats call"
+
+       einfo "Removing pre-built binaries ..."
+
+       find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) 
-print -delete || die
+
+       # Clear checksums from cargo crates we've manually patched.
+       # moz_clear_vendor_checksums xyz
+
+       # Respect choice for "jumbo-build"
+       # Changing the value for FILES_PER_UNIFIED_FILE may not work, see 
#905431
+       if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then
+               local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16}
+               elog ""
+               elog "jumbo-build defaults modified to 
${my_files_per_unified_file}."
+               elog "if you get a build failure, try undefining 
FILES_PER_UNIFIED_FILE,"
+               elog "if that fails try -jumbo-build before opening a bug 
report."
+               elog ""
+
+               sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 
16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \
+                       python/mozbuild/mozbuild/frontend/data.py ||
+                               die "Failed to adjust FILES_PER_UNIFIED_FILE in 
python/mozbuild/mozbuild/frontend/data.py"
+               sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE 
= "${my_files_per_unified_file}"/" \
+                       js/src/moz.build ||
+                               die "Failed to adjust FILES_PER_UNIFIED_FILE in 
js/src/moz.build"
+       fi
+
+       # Create build dir
+       BUILD_DIR="${WORKDIR}/${PN}_build"
+       mkdir -p "${BUILD_DIR}" || die
+
+       # Write API keys to disk
+       echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+       echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || 
die
+       echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+       xdg_environment_reset
+}
+
+src_configure() {
+       # Show flags set at the beginning
+       einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       local have_switched_compiler=
+       if use clang; then
+               # Force clang
+               einfo "Enforcing the use of clang due to USE=clang ..."
+
+               local version_clang=$(clang --version 2>/dev/null | grep -F -- 
'clang version' | awk '{ print $3 }')
+               [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 
"${version_clang}")
+               [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+               if tc-is-gcc; then
+                       have_switched_compiler=yes
+               fi
+
+               AR=llvm-ar
+               CC=${CHOST}-clang-${version_clang}
+               CXX=${CHOST}-clang++-${version_clang}
+               NM=llvm-nm
+               RANLIB=llvm-ranlib
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               AR=gcc-ar
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+               NM=gcc-nm
+               RANLIB=gcc-ranlib
+       fi
+
+       if [[ -n "${have_switched_compiler}" ]] ; then
+               # Because we switched active compiler we have to ensure
+               # that no unsupported flags are set
+               strip-unsupported-flags
+       fi
+
+       # Ensure we use correct toolchain,
+       # AS is used in a non-standard way by upstream, #bmo1654031
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       export AS="$(tc-getCC) -c"
+
+       # Configuration tests expect llvm-readelf output, bug 913130
+       READELF="llvm-readelf"
+
+       tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+       # Pass the correct toolchain paths through cbindgen
+       if tc-is-cross-compiler ; then
+               export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} 
--target=${CHOST} ${BINDGEN_CFLAGS-}"
+       fi
+
+       # Set MOZILLA_FIVE_HOME
+       export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+       # python/mach/mach/mixin/process.py fails to detect SHELL
+       export SHELL="${EPREFIX}/bin/bash"
+
+       # Set state path
+       export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+       # Set MOZCONFIG
+       export MOZCONFIG="${S}/.mozconfig"
+
+       # Initialize MOZCONFIG
+       mozconfig_add_options_ac '' --enable-application=browser
+       mozconfig_add_options_ac '' --enable-project=browser
+
+       # Set Gentoo defaults
+       if use telemetry; then
+               export MOZILLA_OFFICIAL=1
+       fi
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-disk-remnant-avoidance \
+               --disable-geckodriver \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-updater \
+               --disable-wmf \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-packed-relative-relocs \
+               --enable-release \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-ffi \
+               --with-system-gbm \
+               --with-system-libdrm \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-pixman \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+       # Whitelist to allow unkeyworded arches to build with 
"--disable-rust-simd" by default.
+       if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use loong || use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       elif use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # riscv-related options, bgo#947337, bgo#947338
+       if use riscv ; then
+               mozconfig_add_options_ac 'Disable webrtc for RISC-V' 
--disable-webrtc
+       fi
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       if [[ -s "${S}/api-location.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-location.key"
+       else
+               einfo "Building without Location API key ..."
+       fi
+
+       if [[ -s "${S}/api-mozilla.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+       else
+               einfo "Building without Mozilla API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-pipewire
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+       mozconfig_use_enable libproxy
+       mozconfig_use_enable valgrind
+
+       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+
+               # Increase the FORTIFY_SOURCE value, #910071.
+               sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' 
"${S}"/build/moz.configure/toolchain.configure || die
+       fi
+
+       local myaudiobackends=""
+       use jack && myaudiobackends+="jack,"
+       use sndio && myaudiobackends+="sndio,"
+       use pulseaudio && myaudiobackends+="pulseaudio,"
+       ! use pulseaudio && myaudiobackends+="alsa,"
+
+       mozconfig_add_options_ac '--enable-audio-backends' 
--enable-audio-backends="${myaudiobackends::-1}"
+
+       mozconfig_use_enable wifi necko-wifi
+
+       ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' 
--disable-unified-build
+
+       if use X && use wayland ; then
+               mozconfig_add_options_ac '+x11+wayland' 
--enable-default-toolkit=cairo-gtk3-x11-wayland
+       elif ! use X && use wayland ; then
+               mozconfig_add_options_ac '+wayland' 
--enable-default-toolkit=cairo-gtk3-wayland-only
+       else
+               mozconfig_add_options_ac '+x11' 
--enable-default-toolkit=cairo-gtk3-x11-only
+       fi
+
+       # wasm-sandbox
+       # Since graphite2 is one of the sandboxed libraries, system-graphite2 
obviously can't work with +wasm-sandbox.
+       if use wasm-sandbox ; then
+               mozconfig_add_options_ac '+wasm-sandbox' 
--with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/"
+       else
+               mozconfig_add_options_ac 'no wasm-sandbox' 
--without-wasm-sandboxed-libraries
+               mozconfig_use_with system-harfbuzz system-graphite2
+       fi
+
+       ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl
+
+       if [[ ${use_lto} == "yes" ]] ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       if tc-ld-is-mold ; then
+                               # mold expects the -flto line from *FLAGS 
configuration, bgo#923119
+                               append-ldflags "-flto=thin"
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+                       fi
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+               else
+                       # ThinLTO is currently broken, see bmo#1644409.
+                       # mold does not support gcc+lto combination.
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # lld is upstream's default
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+                       fi
+
+               else
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "linker is set to bfd 
due to USE=-clang" --enable-linker=bfd
+                       fi
+               fi
+       fi
+
+       # PGO was moved outside lto block to allow building pgo without lto.
+       if use pgo ; then
+               mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+               # Avoid compressing just-built instrumented Firefox with
+               # high levels of compression. Just use tar as a container
+               # to save >=10 minutes.
+               export MOZ_PKG_FORMAT=tar
+
+               if use clang ; then
+                       # Used in build/pgo/profileserver.py
+                       export LLVM_PROFDATA="llvm-profdata"
+               fi
+       fi
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               mozconfig_add_options_ac '+debug' --enable-jemalloc
+               mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+       else
+               mozconfig_add_options_ac 'Gentoo defaults' 
--disable-real-time-tracing
+
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # elf-hack
+       # Filter "-z,pack-relative-relocs" and let the build system handle it 
instead.
+       if use amd64 || use x86 ; then
+               filter-flags "-z,pack-relative-relocs"
+
+               if tc-ld-is-mold ; then
+                       # relr-elf-hack is currently broken with mold, 
bgo#916259
+                       mozconfig_add_options_ac 'disable elf-hack with mold 
linker' --disable-elf-hack
+               else
+                       mozconfig_add_options_ac 'relr elf-hack' 
--enable-elf-hack=relr
+               fi
+       elif use loong || use ppc64 || use riscv ; then
+               # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+               # see bgo #917049, #930046
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       if ! use elibc_glibc; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       if use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--disable-jemalloc
+       fi
+
+       # System-av1 fix
+       use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+       export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+       if ! use telemetry; then
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_CRASHREPORTER=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_DATA_REPORTING=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_SERVICES_HEALTHREPORT=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_TELEMETRY_REPORTING=0"
+       fi
+
+       mozconfig_use_enable test tests
+
+       # Disable notification when build system has finished
+       export MOZ_NOSPAM=1
+
+       # Portage sets XARGS environment variable to "xargs -r" by default which
+       # breaks build system's check_prog() function which doesn't support 
arguments
+       mozconfig_add_options_ac 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+       # Set build dir
+       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+       # Show flags we will use
+       einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       # Handle EXTRA_CONF and show summary
+       local ac opt hash reason
+
+       # Apply EXTRA_ECONF entries to $MOZCONFIG
+       if [[ -n ${EXTRA_ECONF} ]] ; then
+               IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+               for opt in "${ac[@]}"; do
+                       mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+               done
+       fi
+
+       echo
+       echo "=========================================================="
+       echo "Building ${PF} with the following configuration"
+       grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+               [[ -z ${hash} || ${hash} == \# ]] \
+                       || die "error reading mozconfig: ${ac} ${opt} ${hash} 
${reason}"
+               printf "    %-30s  %s\n" "${opt}" "${reason:-mozilla.org 
default}"
+       done
+       echo "=========================================================="
+       echo
+
+       if use valgrind; then
+               sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g 
-O2"/' .mozconfig || die
+       fi
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then
+               # increase ulimit with mold+lto, bugs #892641, #907485
+               if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+                       ewarn "Unable to modify ulimits - building with 
mold+lto might fail due to low ulimit -n resources."
+                       ewarn "Please see bugs #892641 & #907485."
+               else
+                       ulimit -n 16384
+               fi
+       fi
+
+       if use pgo; then
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+
+               if ! use X; then
+                       virtx_cmd=virtwl
+               else
+                       virtx_cmd=virtx
+               fi
+       fi
+
+       if ! use X; then
+               local -x GDK_BACKEND=wayland
+       else
+               local -x GDK_BACKEND=x11
+       fi
+
+       ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_test() {
+       # 
https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html
+       local -a failures=()
+
+       # Some tests respect this
+       local -x MOZ_HEADLESS=1
+
+       # Check testing/mach_commands.py
+       einfo "Testing with cppunittest ..."
+       ./mach cppunittest
+       local ret=$?
+       if [[ ${ret} -ne 0 ]]; then
+               eerror "Test suite cppunittest failed with error code ${ret}"
+               failures+=( cppunittest )
+       fi
+
+       if [[ ${#failures} -eq 0 ]]; then
+               einfo "Test suites succeeded"
+       else
+               die "Test suites failed: ${failures[@]}"
+       fi
+}
+
+src_install() {
+       # xpcshell is getting called during install
+       pax-mark m \
+               "${BUILD_DIR}"/dist/bin/xpcshell \
+               "${BUILD_DIR}"/dist/bin/${PN} \
+               "${BUILD_DIR}"/dist/bin/plugin-container
+
+       DESTDIR="${D}" ./mach install || die
+
+       # Upstream cannot ship symlink but we can (bmo#658850)
+       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+       # Don't install llvm-symbolizer from llvm-core/llvm package
+       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+       fi
+
+       # Install policy (currently only used to disable application updates)
+       insinto "${MOZILLA_FIVE_HOME}/distribution"
+       newins "${FILESDIR}"/distribution.ini distribution.ini
+       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+       # Install system-wide preferences
+       local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+       insinto "${PREFS_DIR}"
+       newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # Set dictionary path to use system hunspell
+       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
spellchecker.dictionary_path pref"
+       pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+       EOF
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+               >>"${GENTOO_PREFS}" \
+               || die "failed to add prefs to force hardware-accelerated 
rendering to all-gentoo.js"
+
+               if use wayland; then
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel wayland prefs"
+                       pref("gfx.x11-egl.force-enabled", false);
+                       EOF
+               else
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel x11 prefs"
+                       pref("gfx.x11-egl.force-enabled", true);
+                       EOF
+               fi
+
+               # Install the vaapitest binary on supported arches (122.0 
supports all platforms, bmo#1865969)
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/vaapitest
+
+               # Install the v4l2test on supported arches (+ arm, + riscv64 
when keyworded)
+               if use arm64 ; then
+                       exeinto "${MOZILLA_FIVE_HOME}"
+                       doexe "${BUILD_DIR}"/dist/bin/v4l2test
+               fi
+       fi
+
+       if ! use gmp-autoupdate ; then
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       einfo "Disabling auto-update for ${plugin} plugin ..."
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to 
disable autoupdate for ${plugin} media plugin"
+                       pref("media.${plugin}.autoupdate", false);
+                       EOF
+               done
+       fi
+
+       # Force the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
+       if use system-harfbuzz ; then
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
+               sticky_pref("gfx.font_rendering.graphite.enabled", true);
+               EOF
+       fi
+
+       # Add telemetry config prefs, just in case something happens in future 
and telemetry build
+       # options stop working.
+       if ! use telemetry ; then
+               cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" 
|| die "failed to set telemetry prefs"
+       fi
+
+       # Install language packs
+       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
+       if [[ -n "${langpacks}" ]] ; then
+               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+
+       # Prefer the upstream svg file they use when packaging flatpak so it's 
always up-to-date.
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins 
"${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
 firefox-symbolic.svg
+       dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg 
/usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
+
+       local icon size
+       for icon in "${icon_srcdir}"/default*.png ; do
+               size=${icon%.png}
+               size=${size##*/default}
+
+               if [[ ${size} -eq 48 ]] ; then
+                       newicon "${icon}" ${PN}.png
+               fi
+
+               newicon -s ${size} "${icon}" ${PN}.png
+       done
+
+       # Install menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if [[ -n ${MOZ_ESR} ]] ; then
+               local desktop_filename="${PN}-esr.desktop"
+       else
+               local desktop_filename="${PN}.desktop"
+       fi
+
+       if use wayland ; then
+               use_wayland="true"
+       fi
+
+       cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+       sed -i \
+               -e "s:@NAME@:${app_name}:" \
+               -e "s:@EXEC@:${exec_command}:" \
+               -e "s:@ICON@:${icon}:" \
+               "${WORKDIR}/${PN}.desktop-template" || die
+
+       newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+       rm "${WORKDIR}/${PN}.desktop-template" || die
+
+       if use gnome-shell ; then
+               # Install search provider for Gnome
+               insinto /usr/share/gnome-shell/search-providers/
+               doins 
browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini
+
+               insinto /usr/share/dbus-1/services/
+               doins 
browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service
+
+               # Toggle between rapid and esr desktop file names
+               if [[ -n ${MOZ_ESR} ]] ; then
+                       sed -e "s/firefox.desktop/${desktop_filename}/g" \
+                               -i 
"${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini"
 ||
+                                       die "Failed to sed 
org.mozilla.firefox.search-provider.ini file."
+               fi
+
+               # Make the dbus service aware of a previous session, bgo#939196
+               sed -e \
+                       
"s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox 
--dbus-service \/usr\/bin\/firefox/g" \
+                       -i 
"${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" ||
+                               die "Failed to sed 
org.mozilla.firefox.SearchProvider.service dbus file"
+
+               # Update prefs to enable Gnome search provider
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable 
gnome-search-provider via prefs"
+               pref("browser.gnome-search-provider.enabled", true);
+               EOF
+       fi
+
+       # Install wrapper script
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+       # Update wrapper
+       sed -i \
+               -e "s:@PREFIX@:${EPREFIX}/usr:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" || die
+
+       readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if ! use gmp-autoupdate ; then
+               elog "USE='-gmp-autoupdate' has disabled the following plugins 
from updating or"
+               elog "installing into new profiles:"
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       elog "\t ${plugin}"
+               done
+               elog
+       fi
+
+       # bug 835078
+       if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+               ewarn "You have nouveau drivers installed in your system and 
'hwaccel' "
+               ewarn "enabled for Firefox. Nouveau / your GPU might not 
support the "
+               ewarn "required EGL, so either disable 'hwaccel' or try the 
workaround "
+               ewarn "explained in https://bugs.gentoo.org/835078#c5 if 
Firefox crashes."
+       fi
+
+       readme.gentoo_print_elog
+
+       optfeature_header "Optional programs for extra features:"
+       optfeature "desktop notifications" x11-libs/libnotify
+       optfeature "fallback mouse cursor theme e.g. on WMs" 
gnome-base/gsettings-desktop-schemas
+       optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal
+       if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then
+               optfeature "hardware acceleration with NVIDIA cards" 
media-libs/nvidia-vaapi-driver
+       fi
+
+       if ! has_version "sys-libs/glibc"; then
+               elog
+               elog "glibc not found! You won't be able to play DRM content."
+               elog "See Gentoo bug #910309 or upstream bug #1843683."
+               elog
+       fi
+}

Reply via email to