commit:     402bffc8da4522e54cdadf155efd629e23d7865a
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 23 10:32:48 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jul 23 10:32:48 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=402bffc8

www-client/firefox: add 128.13.0

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

 www-client/firefox/Manifest                |  101 ++
 www-client/firefox/firefox-128.13.0.ebuild | 1380 ++++++++++++++++++++++++++++
 2 files changed, 1481 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 73bc62f7483a..b9879ab02f76 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -200,6 +200,107 @@ DIST firefox-128.12.0esr-xh.xpi 452428 BLAKE2B 
799bd465a3d9cdc02f57d36962382c7e3
 DIST firefox-128.12.0esr-zh-CN.xpi 686326 BLAKE2B 
c9d0f1991b784534e236239e7dba5edbdaf34eb0a4c8c55fc334c204e4ce1ff88d6791fdd261b656c4e0e90b31f6340a506b3fbee2ca105529bef61f26be11b5
 SHA512 
db3177d09a62ea93f7621d7c223a0fcffc12188fe8417d451d56687b05125641010af41492de73421579d8e1709b4f629b031f88277f04e0289e848264664ed4
 DIST firefox-128.12.0esr-zh-TW.xpi 689137 BLAKE2B 
bf9a6c880fa9e9b7de2ee869c0eaa0ad51aef313f1878f316bb4deb0163e528b7d39de73441b79c0a04e1692a01da2e446a06e141ca4696913462ea0cf4565a7
 SHA512 
d5800e39b17acd8bf110c42939162577e98afdb486103b4332770ee27ee62ea62dbbaa0cde514a47ccae06fef07b1890a2eb461dbed036728b5175354b12868c
 DIST firefox-128.12.0esr.source.tar.xz 560934320 BLAKE2B 
ba87d758e9f0d6803db2090fec27a24d8eece75226401190d76d11163424ad24d9db4882876bb88c872a84205265fac4a7b11b5e2826ce667466452b062f4807
 SHA512 
442d0b2b6ce02adcd878975f01e86548ca8fe93840185d77a1acb41ec99440c7abfdc8757e6f30d60593dcf2c7f50563b6ea6ccd4d239beea01305615b73c359
+DIST firefox-128.13.0esr-ach.xpi 482238 BLAKE2B 
43ae438a0e3e8cbbc8c0c5c87256d2633516b7cf2656b81ceeab548b1f46fbcc0804637e40a89b62c7c061826c445a54ca43343c3fec84ca1bfa37402341cc0e
 SHA512 
bff9074963abccc98b5a14cff155df48860f36e537cae9d6044205ef8eb27b9d02b87e0cca27254a1dd99bae6c0971fcdf39896514792a01ed22c06f81eb1cf1
+DIST firefox-128.13.0esr-af.xpi 446592 BLAKE2B 
3a28ff39fbd888526c5322ff31bf6d78b65bd6e83764db2b73b5ebc8bdb6ad30ae3cee62e4e7d5efd3bb5d2fff2f9c4cab9b2d5a5f688da4f7c8d262e4afd752
 SHA512 
d8771d41ca6cbef1d258d7488f81e2724306472a841171e938d73f0432f5e130772e4bdba8cc4f343eefa52b7ae7114dd3614ca0816e5dc86cbcb24370061d56
+DIST firefox-128.13.0esr-an.xpi 526065 BLAKE2B 
8c24788a89372e044940be470d2684f00893fba5924a544b571779171c565717781807ff4dbc8bf3b5846acac6de35abc6aa5b2d520c0be2fc965fa3f55828a2
 SHA512 
dfaa87ff14eb1fc8d31dab95ed44632f1d8bf0123137c68647fff13d063044baacc3a3c64be2f3db7d8ff0dce5416742a09d5e79d72deb3a0068dfc082b0f058
+DIST firefox-128.13.0esr-ar.xpi 650459 BLAKE2B 
27c77ee718d85d0a51af046b7e6cbb06e79fc8fb23dd31fbd14a65d67c7c9e0a83d9ca38e7063dd09367e78883affde3fb85544aa3a60b6b09a103325c36d39b
 SHA512 
2366048b719005d9e8ef93ffe39a1b0ffd7fddc89959c3fc58b1771d7dcc432cf7b19d272b8e30e4dec456facbf55ece1899db97a7b85ee391ec30a024c37123
+DIST firefox-128.13.0esr-ast.xpi 508563 BLAKE2B 
65c08aa526e9f3fb1751172479c8e6fd7f4eddf3e9ffc52fc96fe47c639cb8dc7e18190e3601b9efe8f2cf3f6cc391b24540c45aad314716b9a91c99cc7646ae
 SHA512 
ccda1039ad80f20899fb7ccbbf0d05c0decd7160d85eb875adb556178e773206e6b617cc9de3de97bd682e8a3960eee6527804d3ce70fb354d4dc695f51ea516
+DIST firefox-128.13.0esr-az.xpi 509838 BLAKE2B 
d7e328db452ec9455a7846a4ce5b0e61e0e99cec0e8a3bdf8b4669cd1a1ab49172b425d756f91d2bf951e854c1b99860c28cf934dec046c735fb837b9eb15dd4
 SHA512 
5b576b3173485e6dd3ea45abebb493e55d358a357a50d1eedcb394f516ce11a78b9fba1a46184dd8f641787249d023b9ce9e8f2aa8bde3ce5433ce3a76197288
+DIST firefox-128.13.0esr-be.xpi 748077 BLAKE2B 
7bcd954c83cc998683ec83a0bcdad0b24d839a7260de7a5bfcec300331b20aa2dc7c0a38547aa062280a1600298fb05de8bdebd33218a12ec18b893d91497d99
 SHA512 
1998d9829cdbc1bbb9b88b0df31f995a176e9e7d1acef7ba5a4e70422d47124c8f8420594bd0f6da6410f663d127ddc0fe23764e8d63859f10bc0f318ac304fe
+DIST firefox-128.13.0esr-bg.xpi 672056 BLAKE2B 
4e202402118f3349e4386b93a9cf7a08e63f1301218af9536160f554984ed007b8287be202a3a3ff1309715945ffd9ee1574ad740ec6ebb48a9b722e01d9e681
 SHA512 
0a6702a07ae1181c749621b24047fb7f63c75f47cf2ee1ba8a88eed07dbe59dbe712edcd7b2cfedf1e7f0f364039864388b94de5c7035a77048f6e6b8dfaefa3
+DIST firefox-128.13.0esr-bn.xpi 624741 BLAKE2B 
2ffb28b897ae0486e5434a11152a034542883f248c1d05c262c86c245b68fbb0fbdc0bf2f79065d964f974d0c5abff84908fbbc3f769c13533d1da8097208628
 SHA512 
c70e4919c230bda63f2814cb9cc80f66fa6861dc2b51d8a66991826662b00ae0e31da2af8be907e01a48c618c9c1baeacca4ddd80c1a78477a534c4cd02bbe97
+DIST firefox-128.13.0esr-br.xpi 598747 BLAKE2B 
4bdc55daa6c8a9a576aa6930bf008b810a7ae59c73cf6ee4ebb6485a25bdae300e9cd9e133666c4414714f5e27b5ec0b74f0fdf4b7bd30b1e18857302713a7e5
 SHA512 
866e14e459076bdf08e015b9000c3589003c8509b3b7aa8cdca49ed6cb5cc8f99ffe157fbf9dfc286cc74205a4dc377d8913ff2903e82bbbbf930d77ba22ef3f
+DIST firefox-128.13.0esr-bs.xpi 565992 BLAKE2B 
b5580a9f6dbee10b3b9cba79dad380ff6fd9ddbfb2ac2e29aba0350bf382fcb1f5ec93c86b9303ff56ab2249ebd3d3dc7619f14214d26c8e396792476020bc7a
 SHA512 
863b119023ec9d5e6bc2458bdd6a1db33fd49d22503501f218c09678c0a74a9777b5b896812107d26ac3e025736131d21f9d80627812059ba98ec42f46280a0f
+DIST firefox-128.13.0esr-ca-valencia.xpi 561153 BLAKE2B 
60a0206535b37f2a9902da84fce0ee2108ea15afe170efb951b6835557a01721d39c04134ed0a8e6c6340dd81580a1d7742e1e80463c45ffd82a298eb015636e
 SHA512 
95daa8b0deafbaef6d38f9d4ff621fe7562bf853aa2b52849f750073dacd533d5685fdf1f34c3f70500e7bfd72f75c5da66989f06ab522c16c7cba4e1010895c
+DIST firefox-128.13.0esr-ca.xpi 609960 BLAKE2B 
17fbdddb0c48ab03cce049c4da5d32f5084942251ef68a5ba6bb456bc4f7dec2a15d77876eb8a351232fb56e87f611947726631b5e98d0a1a8cd3fed3da7220a
 SHA512 
d2fb14e23861da9e0408fb93a09e8eacec2eec33f1a26630b2e2d9f7b9f590a1cd0bcdbb220bce603bd261b1f4a645af6a85455646c116913e43392f1bab24c3
+DIST firefox-128.13.0esr-cak.xpi 601477 BLAKE2B 
a432e3515093e56caf3572d791b23bc081b27d711e8044081540c463d7dcf8ca4a95dca4c28fd30cadf4d2f63d94334d556b4d16e62ff3b3a4ecc68c0db8ac4d
 SHA512 
427adaadc660a87a3a439d5b16cb8169e3e4d0c7257fa5b180286afa95ab2b1b83bcef7e3b996d69682bbaa92e50bfcd95f624b609402b79643934f95f53c961
+DIST firefox-128.13.0esr-cs.xpi 690636 BLAKE2B 
3c2e217474f637478f59d2541e78c6e0b7e9837e8e049569337501a8734d53040ab78f71849f217c8d8c5b28d11e37eb8ccd4318268b9e09def0c658e1102e45
 SHA512 
ab959ebf21bdc6454a284f333d52a68e93faa127ddb593a51dee746c26b82afa47490fd092fa31e5c2a452239c19a4a24c812134d1cd01b6223e223bbabdac7f
+DIST firefox-128.13.0esr-cy.xpi 650608 BLAKE2B 
cd6ac8a9dbeb13c35087bbc3702b6f5f5b69c40aba05998c71b93d8cc59861fea3021c91cbfbf308467061027a1a4cc5bb7f888a234650cc413db7d31f757c95
 SHA512 
d953b616e1bae659b5f8536d71c8e83e43a7d5cf4251f9a551f57475ab0e3c07ad34f03c96f323c190b0b36a5541997b246c884ecba6a86bf035eeda1027f8ce
+DIST firefox-128.13.0esr-da.xpi 638634 BLAKE2B 
b2e3fa0834a207414d29b170df65c859b5711e6807dd06641d4edf26cf19e3d798a09e976626d1667d1284d0278864bea5bd6084148ab746db6a012b4e4c82cc
 SHA512 
37701f376dea6026eaf1bf4bfb8b99ea31b27bcce1ab0781bb0256096e3b0c860790c6d087d170fd54163ba6d03ff1cc934965a6036932f57f9010434f52b685
+DIST firefox-128.13.0esr-de.xpi 663127 BLAKE2B 
8e68cf1a86688e2d4e3c7c84e5f85d2e2795f2ada2331923fe2ed1f7e707b797378d7e0d5d62b5bde7ae6af4848520f470699d43b344e89d856c3f05ea75bf43
 SHA512 
ba26bf244e4eab517b0e5bfb5e3d55500aa86d01192583c205fbbefcadcc5dca6e4bccd6d597b07b3bd1854758cb9d9b8cb5a324799c9c35c053bfa37307d8d0
+DIST firefox-128.13.0esr-dsb.xpi 679865 BLAKE2B 
13aee9b542bdd29998fbc936fe348f6951dd895423994eb44e37f9ae43bd395ab3a45a4ef6a08a400fb8ae2434352ffb0309741c6829073d1415543e607d7e6b
 SHA512 
ec0960fbad410ebc1f26e432be996c7773cbc1b7e2bb811af07ab8621b5d5250cfb4e45c8d24a8b869ba601b63bc3630bfb99d4e977d8e3c4a9dac79fa5c8e8c
+DIST firefox-128.13.0esr-el.xpi 764550 BLAKE2B 
60c46f134b7bf324acbfdd9668e7466564744f25ac55dc0a83a8851efa78ec45578bfce6a79b24bf020fba50b5b77546e8fc75640fe700fa3552fd65ccbf3fa6
 SHA512 
b2b91f231512c323f2249fe64d01b010ff2008ac685fcbabb3d0f5b692eb2f37222b160e14bec7bee384017b5ff95c0168a8f61149ec126da5ed3684f10bac85
+DIST firefox-128.13.0esr-en-CA.xpi 610421 BLAKE2B 
ae6ac018273ee307b8b76b005f4bb2450a07804c37cb4905462595d04d2ca422049e0e9c2e375d6b008932d055a25b8c4c0a86da9699536a1b107eb6620c24b2
 SHA512 
4e8a2e88cbb4913b451dbe64b4c8db5b52dc42a2e811d1e1c24e044a7161d33e33babc082af5b12bbfe29526b08f9b7c32448fb30bb1ad6e2ddb008c665c98dc
+DIST firefox-128.13.0esr-en-GB.xpi 610776 BLAKE2B 
c59844354f79da9f55d4a869176a7cb6b27465392a7b0e87c457ea6b93112428b1aa38db1f52eebc2fbe58b5f665a209c441ccd127191eb3398429e0f8e8f144
 SHA512 
3b916fd4ad305f4d89704c79a1eb98f0256441250e703ba25ec2b33295e28f9d4b7787ec2ed344e85fd1d51e9e2fb120b3a160e401d97595cd320bcce46ee909
+DIST firefox-128.13.0esr-eo.xpi 643530 BLAKE2B 
8ab1339570658d9acc4e86dac07c143b0eb344c5f36e3df3ffb9be18a8ac1c97f53f39a7cfff7a7bff2d4534c36374f2a510e017d94b8cccf56e53dc027d0165
 SHA512 
46ec01c095d93a6f9945f40fd0d5adcbd29ccf97a72a9b2e01f91947b2f91ba02d2b6c92c527ab5838f4f88ca4f164445e4235f712654f15bb073dde0e821b9b
+DIST firefox-128.13.0esr-es-AR.xpi 655629 BLAKE2B 
fdb233d30794eddc99eec4fcfed22976af5ea9ea3d6d950e0e4d35d5a6d99196fd88fefd6f93472dae357bbb8f55ae0ab6453ecb33632178fc8e129824bba4af
 SHA512 
93689e83f473afdbadab0acce420c634c773fdc40dac410bb805b5b832315f91a29fae744b8975b4130a6a383e10ed27aa7f3082a075f5cb47d1bfe559fbaa5e
+DIST firefox-128.13.0esr-es-CL.xpi 656059 BLAKE2B 
2512280b698eef0110c9fd19596d3857df264db757654ac75fccf734a2e4417e76a389cf8a5339720d8575686ccc84c7e0eea9a7a27363846ca4b3dde0f27e77
 SHA512 
1726af3d4e35b3005b7c42e1b02251f4874908efeddfaac5fdaf685ae0eb36ba63c231164088f3d44b391f4708cde887ba26399ac21bd9325d25d7495a09d597
+DIST firefox-128.13.0esr-es-ES.xpi 655190 BLAKE2B 
c3de4438b775e0c30ecc18f7f53662b9aa1d2ba63cfbaadc3878ed0141a160bfdfad7383c9faa787aa55bc6b6e04a193161ea59ade995cbdb65d63667205de99
 SHA512 
a4e87130548215a58abe65da7b9ddaaeb0133f10b95508197ce7de38f4c76b1fc312805f1a3f2bbcfa4b04e542d8c83bba5dad51a650c1837fa89ce7e72c56c4
+DIST firefox-128.13.0esr-es-MX.xpi 657400 BLAKE2B 
b3120e7c8457ec8382ca2d995ff6d36f37b60911084a6efec4f401f14c5ea61a4ad68abefaa35ed75122b7b311878ab1abfca145630b9b8ae9f707dad1df262c
 SHA512 
bb0da0acc63b26ec0f409bdf5ad5f23e76411120d85a0f98c2f549facb1ec20b693b0f32dc1bf96f23c4045a1aa5f861032bfdb303daa552160409ac9dca9dfb
+DIST firefox-128.13.0esr-et.xpi 556261 BLAKE2B 
aa3c1b492fb506770f2ea601f552d6d4cdc9400430639129ce719d73829a50954e782c2da4dd11bdb8fec9fa54b476ead88e556d96d1abc8c609199552f64274
 SHA512 
d395ff3df2aade31e5db7245bea13af0c253c2c82cf0bc4e68104da00c2719ca48727a5173feab30433542dbcb550bfa8ccab976a08c199889000e21af647140
+DIST firefox-128.13.0esr-eu.xpi 623956 BLAKE2B 
f45e9ebceda269abd8f7d1c1cfe35f82ae3964e9bdd5c093ce09372422f9da69f649a9f2b16c18fe2fc3ccf87e0a14edca01cd705923cab9eb4f4e8996b8790a
 SHA512 
7920285e905efb1423df9e0e6fe01697be00323c2f667b5d0fc690768d9016219e1dea7e475a45019b98e9924e7c2119a271d2374f9aea46818e906f919998fc
+DIST firefox-128.13.0esr-fa.xpi 631012 BLAKE2B 
42d81c6e287b6f7bc625fba2538b9e9f9d719476d045c1625ddf075515fa63d3a76a44a5611e05ac35decea3af846ded846677175555f645de5218290378e7d9
 SHA512 
2cd6f764e22ddd7da1f967d2ba86a733fa0aded9b5e33df526aeb6f32b38ecb4fccf617d421581f8498fa66ef2c1b58fc562c121a1c48fe8bbe415cc5c3424a5
+DIST firefox-128.13.0esr-ff.xpi 497844 BLAKE2B 
571d28771f0ac22d9515a2840d25683c3377c096d8a89034b67771be7b6fb2976b171b35d987aafec958e28f3bebeb8edcf7d8559e2442e50e08f8cc97452195
 SHA512 
01b7432db6644cc1536494db65b3bb912a7cb648d9f3afa58649f743ae9bddab98b6f9a257e745604702167630599817dc2688b55f281a3b0dabc8855e1efaae
+DIST firefox-128.13.0esr-fi.xpi 633890 BLAKE2B 
3a5a954727ef9183e7c43ef787e1b187da2c80f02796733bfbaceda87f6d8b363caf6b46ffba955cd0d63800ad7d0b989df004fd65e82f72e3a6e2d5bf5caa9a
 SHA512 
8264a91d685eaa908272d2677f5fadf4c24097ec7d4843c8c090b0662e0fa7ed0ff225ea71155c1211f2c97b5e52a5c352092667769f6ebbb8b8492854084e45
+DIST firefox-128.13.0esr-fr.xpi 669630 BLAKE2B 
59b41bf477bcc7f0426d129118a29522540290a2aa31e8213b7cd748e152ef36f27f5d9bd15600d9305bd14ed9d88a55c31379294f9618c5e5d479db2b93e64f
 SHA512 
340988f3cb2ccb64ed174799ba29d662bb198fb40c1b2c86278b7c32fbbed9f63a0b1de64fdc4e08ce6b6571f921515ba622ace8bfd406679d29ca534e3347bd
+DIST firefox-128.13.0esr-fur.xpi 651567 BLAKE2B 
7b4b1293972d691714bd9a9e19d866e864d9e721b73c121e5f78349febf1196fd76c25b2ffb5cb5aeded878842a1d76d560ce41987ee476595732b73dda6ea57
 SHA512 
e0880de9c29e867f82d7fb2d5848d27ef2ec3b357f2a4a37a21a9c627d17227ec6561c78cfd7811c34dfb5fc90c32e1f60283cc485715bac86e291db2db76446
+DIST firefox-128.13.0esr-fy-NL.xpi 652080 BLAKE2B 
f6c11df1b87f8dc2125e5e871a724a6c9cb6105e362b34c50b4ddb0807af26abc91e551ca9391d6163e91e062dea9858cd2fcb09021c4dbf2fa1f7cebb053576
 SHA512 
7d9517dd46d0513758bc105903ccabf25dba7c162c140fc30e943af5b1ff14376e949d18165d6130e83ccdcd93e08d0c6ea0cda8c90cc17a6d4b8ffea1ce7259
+DIST firefox-128.13.0esr-ga-IE.xpi 490832 BLAKE2B 
46c0f24a9808b02143ac0ee3ada368a3ebda33311c960dd0edcbce93808ec8073083ee48b1e844f24b7048f6526b25da323c48077c27cdc753335b61edbc4136
 SHA512 
c4411496f616774598a2f937e901e8047cffd8c45310f669db342c7b9721d1be10bf48bf523fdc22db09f7d001141b1b14174a58a006c8cde15f307d6194dd01
+DIST firefox-128.13.0esr-gd.xpi 609623 BLAKE2B 
dfa38eb049ec98b41797fcde5734d4c9f5da73c494951152e750b58118cc5ac93fc2066b4263dc005da8afb83bd84fedd69e104fa70d20ee2e9cf797fb1bc80b
 SHA512 
28871cfb0f73e8cd29af832890b471031d6bab3ae8b9a6f95e29820411f74eb1b31c726a39dbe2c5279efc9a258c37496b8e94eda8221e63d5390ac4de2c37db
+DIST firefox-128.13.0esr-gl.xpi 615553 BLAKE2B 
48ebf8968a526bad61eac3285d31f0594271634bcabdb6ed56d7125d04e2d2310274ebb7f4ec567e5fde8897626c73ba8d9b3aa763ba1965318c85e3e5b127e9
 SHA512 
a5734a334dba4bb1702e9324aaed7d529d323ee148b690e2874dfa18801469857698ef5e3b73b879d8a4b0a57235d3e31a4ae9f077ddcd7c8674575512d436c5
+DIST firefox-128.13.0esr-gn.xpi 659907 BLAKE2B 
dd745d173b1dd0e5bdc09017f6e7089aef6347ed65d40c8a41958774ded5ba9f38f8e8161d21908e968e60529441798b21740f95777149814278aa971ceb2ec3
 SHA512 
b1bb9009e23f9daf614fbd352c290a7cd0629961b0d1c75954d38d12853082e3001e4d31d60e6052347c9e136f82cdc6900a4374a5a91f71df2fb22c535dce72
+DIST firefox-128.13.0esr-gu-IN.xpi 552332 BLAKE2B 
8c552445cd67b1a072375d014627d140c0122614a42d1115082c7a63cbc234c24ceeaa6f1c31ca207a4c3c415320f10f01ff7ad1925117f4fd322f4ad0bd4ad2
 SHA512 
4e849f4b3a0fe9b9dd3d5df1907094101af77853a110f4ecf2b131de8ff92c519628712bad9fe3f5111803723a498d64077f2eb40c131a01c669dd5ea2ee7bc6
+DIST firefox-128.13.0esr-he.xpi 659476 BLAKE2B 
c9d415a6014cc5ab01868e1a8a68a9ed9815b294a5a9f18bec76c3a80042d82d5574e35eabdeffb07b2edae74568eb66dce56e340563f52ca266e3a781222568
 SHA512 
d8ed76db8c6e40d256adb298f6b6f481101f2aa3c0e1d04fcd2dc5934ffd9bc82afa748308b8a6765ae8bfd0c207f5b8fbd26e5f57b630a5a45d73b59241972d
+DIST firefox-128.13.0esr-hi-IN.xpi 578983 BLAKE2B 
fdcbacb09111f8e983ca67d38478bf88c2da949882a6f9fb57995872e21bcba83ba70e25836a5198a6c769ab6560985e972aded56f6227edc4d6e7de2e59b572
 SHA512 
e4bcea48971a6c2307f5419e64f6a5eca7e5c25f12d90cbf7f090f924883b41c9d532bd9a8ead5c079375bb37134805414e7f18107c5c80f764df5d93eab77da
+DIST firefox-128.13.0esr-hr.xpi 645472 BLAKE2B 
971ad231bd9679d80891e195daf4ee5aaeeee2ca8d58edf6e58a50990e5b47bfa5c620fc058a8d29afcec20c8ccbb7441940393227ab21b64fa20683b5c712ef
 SHA512 
a2cea39c93bbd0d06133dc6cba3d0224f52132faa157ee42a5127eaff0b97c3ececf497fb2ce95e10a2e69f660b959d9976e97490042d7a146990faa24432bd2
+DIST firefox-128.13.0esr-hsb.xpi 675861 BLAKE2B 
2aa4c2e6ca4c8f65dd72738095829b39406b470fcf5d70872af17bb5222a7a4fb35b1c309fac86ca7bba35cd7715d658d3dfa4537178a776135f6bac998bbebc
 SHA512 
3af59bc06eda17fe98afc7cf2d301ae62a7219c616c5dea40306bc8ae0e729f749ffa53da59c6ab29077a07d4be93a00085aafe215208bf7576f3d359de03f3a
+DIST firefox-128.13.0esr-hu.xpi 679682 BLAKE2B 
a7e2c5ab641e1825ec6fe185399a1aa5a4dd7ab34205cb6e49f63157f3770ab43fe6c518dd134c173a3216f7aefb298991205c3845237e92e9f284ad09ead273
 SHA512 
62eefea2825c42f22be146d2ae3ecbcc4f652e7f07056ef8a77e4f0d93da851810b278404ad2ec7b19e01311c8047d9b357e2614e85a1c1817b1a353a50bf0eb
+DIST firefox-128.13.0esr-hy-AM.xpi 664458 BLAKE2B 
4552dee2cab289516db95a230f49072afad0e6f9b2d16c620323e2b789bada7fcb748c987e978becce0aa5ae38efee01cc045b9063fbed3d731cb1e80ce12f22
 SHA512 
36c12ec0baccf8ccd1b64a8d975b34e4c4d2ea9de8b709a7b6b0a482701d23ab6dc4e736200e9194040f6b4a708cdc2ba0c6460322814d97dcae742e5f5ce8cf
+DIST firefox-128.13.0esr-ia.xpi 637948 BLAKE2B 
a02589745c6e12f3936d8125a44bdda5007faf21a697ebfa76d94f2151a0de4e00d46f7c9fdea55082f319bcb2f44a74400df08db215a6a92395b4903bf50eaf
 SHA512 
180af86f9654f125df679fa9211e2a15d8b2d3d7a4ffac671f3156440cc0f0f580f26632ad39b1e71fa066f8dd3ac3d06baf9a6286d6e6effd1dc5048dad30e4
+DIST firefox-128.13.0esr-id.xpi 625998 BLAKE2B 
bf0370e36f0a1416c9919283131cc16278eced6ec8973fd9fc2e1d65e7483a8921dd758ec9c4f9ed4eb7221998ef8fe4029effe7f2271ed19a942a2822767b5e
 SHA512 
74a284882e38df063821e1c0e4eae6cd3c6ebad3459a973272c5e45af4d1ba251c6d884fa3dd431a8ab395e323418bdc625b35e1f31bc7e4232e8b9803b37778
+DIST firefox-128.13.0esr-is.xpi 646728 BLAKE2B 
8b7a297faada9f77d1a8a958acf11193974cdab2e1fc62513a71b723aa0fa297fe81f2a6d081108b8a3a9564ce03dc8193f55e36386a75cde6930dddf3b837e9
 SHA512 
edc59f50ed7f969e1b9b75a09c06be106ad9c7ddaac93b26c542ddfc2a2959656f882b675368d9e5a8c53631181e86c2b614fdc693b7c7529bbc08705ae1abc7
+DIST firefox-128.13.0esr-it.xpi 648856 BLAKE2B 
7dc094c91b014224d5ebc0646e19a74e3ec6b54f6b8a68f66a9a0dd3ffc80b291c0baf44da062b27e622b1314c024465d0cf4a2474a3f44937ed89f80ae7e65e
 SHA512 
e2b20721df99e75e0afc71404ec8b46c3abdd20ff70ff907414730ac11487c7c3c3f3078936749d7ff08c13ae966a8cec216b7f8c20f1bb72a6b76c770123dab
+DIST firefox-128.13.0esr-ja.xpi 704120 BLAKE2B 
fea470f58ef9e388fd0c10ec47ffe39cf9e81b4e44a31524131a02d2d33ee6120a9ac7ae92cbbef67aa54de5f7191ec5946b104ad856135f8e0b1f245abdb30b
 SHA512 
2152c7306b679e50cc0421fe5a4f3c4e4a099b11c3336e6bc46fd743280f3d1b74afb4e8ac7a9b01e54466ae87c216d1bf8e94cf8b711ebb7b61384b4c115dbc
+DIST firefox-128.13.0esr-ka.xpi 714512 BLAKE2B 
0bae0ea15cd79625617b17c6b5be780e44e39af563b28e0a8be1eb100c05a1a255256c81d7b40b25ccf8c227cda1f47fb2a6630735341cc9fd341a748a223ae6
 SHA512 
117687cfea9737db344222accf0fa05b569500687b71dcd30fff1be3f08f8073091ea74b3c6fb68b90dbb9c0c4a4a723eda708655a9b599a19b8af2de5ee61a1
+DIST firefox-128.13.0esr-kab.xpi 626278 BLAKE2B 
8cafd3a0789c862ffb269bbb0190fd598cbcd94f8133a912163fbfef3133ea3efe1c0581d1af421cedf41365ad6c5b416fa5a4a88c70c27fdbea51facf681eb4
 SHA512 
0a4b3f28ecc7ebeb4887c5d5f86e2bab2718454dd8b696573499071b9a8d5fa9044138dc8091b0634648ed9b0af67dcb300d921384eccfbe0e1ac7299ef81e61
+DIST firefox-128.13.0esr-kk.xpi 734548 BLAKE2B 
ff22f4a2e9494d292393b5417f98b976a4de5c87ca0c3f97b2f793f143e29294e96af04cf7f7ddd3f9ed263219d75e737cfced433e97f94bd1472a75c8b88306
 SHA512 
011b2958b2646ef95360cce468357db523cbfbfe383fbbedc54aa3aaa484c2c9e0466404b634133ca6be753248e2b00586baa21972c3637400e9b603a5283847
+DIST firefox-128.13.0esr-km.xpi 543170 BLAKE2B 
22077fde4a47355cd6dd4fd8202b32d0265c30bf0f0c9c3d7dc4c47a75e3660993527cd2112c4d369389f27976879382e25dc0711a9f19d92345518423fdd9f2
 SHA512 
0614c6e0bae1d35e7bbef3c43fd776af8033ccedd30bc8fc6006fe82e31864a1a4bde9ac3479cbf4cd8df2a589d99891841c5cdd6b92b5941fb54d1c1f33551f
+DIST firefox-128.13.0esr-kn.xpi 520324 BLAKE2B 
0ceaafe321b74efb1f2bbc8ca9caa99bb7704981b5b15ea86423716c34068c4c26da0ec22a98cb458263904d416b052dd4171e7cbf46a47603ee03317c2ad990
 SHA512 
c2626905981def37c2912c2c43edeac9d9f66729ddf0bb8cf974d9d5625a2370a1edb2300b396e872ea6c923d40ca03d546e523d343cc128b6e9c1b9e52741af
+DIST firefox-128.13.0esr-ko.xpi 690551 BLAKE2B 
851a77c70052c3e88c072b6733b0f4b906d02b21766f976fcfadc9bab1ef87e66a5bcb865b2bd58b2bab50fb60ff0dc789cb7a416e0953e65b41ad3f053fb46e
 SHA512 
a527ce2e1498099561a8cb921bff37bd5cf5d117c54ed0dce820b064c3c06787fbdf4d4ab4d5d8e5e2eb7a90df20077aafd08f69f32120de591eee14e26f19d8
+DIST firefox-128.13.0esr-lij.xpi 506302 BLAKE2B 
eb21b55c3c7273f6882a535cd6f3a014e10778cb1d8bea3088808e56d262ce04bcc843cdb54a83b54f26ffc20728bbe1f0b776b134f497d7c1522504679eea56
 SHA512 
10d9c00fcbb50d7feb025da6308a222664e52e0627bff47ac327de39d9ed4fe083f9a3db28413d2048ba9716a68153d38615863d17ad3f5d541af3722c8ab846
+DIST firefox-128.13.0esr-lt.xpi 585992 BLAKE2B 
13548a5d34b7c5f925fafe238ed2e049785b1c0a28c8aaf02c8992be8ee49c1c28ccc2763d45ce19fcdf9f694400a68c1a47b7acebef9336309dd511fa821ef2
 SHA512 
b6491c24f8cc6e21fd279b688d57597c09e967f84266b7e755dc81ae0a80b3e032d7926457c3a047b7a01d8456b041db201162d8a9c4ff767189a13c68520481
+DIST firefox-128.13.0esr-lv.xpi 595101 BLAKE2B 
7a7ffb75b6c4d6f473c443504a8a57d2597d509cc4f61d4a735cc08ccec89a197d737f7a2235df268152e61dce5f1e167209ead883f98f511334b825411f61f2
 SHA512 
2bd5c5f30fac813c147d7b2ae8af62bc8cd3bc7d22b52b3dfd6f563adb26e6574de3cce26331d9df80c99bbf30b4a949f15414d383c32f19b32f9a9a25b0d7a1
+DIST firefox-128.13.0esr-mk.xpi 511080 BLAKE2B 
7068304ba0eea04da5e053d33a9aeac93c84dc9e5d8e7c03efbe9125e505fc8537c90c3c11757e1702419488fa42f89f9babe4aecadf60d3c3374af9e87a33c1
 SHA512 
4b4322c0fa568d1a564368a6fdd3ed6247c4f62731fbbacd97fab9772c3c4b6904a67bef1bb4cec93f429ee736f8b2c802885b65fee9e6282d764e9ae0709f8a
+DIST firefox-128.13.0esr-mr.xpi 552807 BLAKE2B 
3f199a09c41b2c12f9aba3da41c38f557eb74b51320e6a9c8d85122c317840c6a5a9b49de05dc51a74574525f93bd202bcc2d443ae0aa0f7bc69e35cdf819c47
 SHA512 
323503c4d3bca437b5f2ef871cfa219cb1ede082bcea5547f0b838f8282a9daeb2317c376ee9513f9f745643a325f90fc12bfcf0ffc725808fd86db8c0650c85
+DIST firefox-128.13.0esr-ms.xpi 477958 BLAKE2B 
52949a0f9e8540446b70efd558101d28cda5e03d241f2bcbd174701dc1fe47a7e5114673be020a0ac61390cb6f9749515a7bcd4c7a54190505e456d2589cd3b0
 SHA512 
918be5a543fae346b7803bdf96da4ee37d57b8e6e3437dcaa5db28d03199ccc13d9870c9063a250be82d1c2aeffa6ec44940dc8884ce95247254a6eafe563a38
+DIST firefox-128.13.0esr-my.xpi 540053 BLAKE2B 
c145cc3b667ee925988c8abe39f42f37079b24b50b48c6d204397fa327dc7698e9c80fa6b1382b7ceb1fad50a515df057873b080d952ab0659bfa049d516a232
 SHA512 
a20df64c951bd319c4945095cbcfdf3423ea2b51dbb6d35635d0937f5bcefa6bed1e9490485033a19b348e30bc4ce57720f6cf7be49aa16e7ec5c7e192f32569
+DIST firefox-128.13.0esr-nb-NO.xpi 627687 BLAKE2B 
3b973b6a478816453c39350eb2959b0c1c8bcbf612c7f887da8b86b84b0915c79358b3dfa4b02a74eeb026870df49335bf12e9fe4f9807019602855053b91ee0
 SHA512 
3dcbe352b8340ffc88bd2e96c8a938d4b5ea65cd11ecb243157b4d7c3befa4e0888c8df4e29688b5e885290467f7e336a6f6252deea7a22867772f624122b113
+DIST firefox-128.13.0esr-ne-NP.xpi 543828 BLAKE2B 
282b1edfdbe169826652adbd430a42fafb23318fa0c4a912e75c7414b9c64a2a0f26453ce86dabb170888b45a3dd002a4d6cdbbd8c630d8a369cc297384037e9
 SHA512 
fd58212e5228b535063563f857f0ee58a296b9ab9748edc42bb82e3877d5c57852e8a7a716b97f1ab63140a6558e20ed1115bbf8aab776b5209aa8b6f8c13d12
+DIST firefox-128.13.0esr-nl.xpi 645176 BLAKE2B 
ace6a4117fa659316c149963ae8917097ca0b09d81296740dd937f65c555b131272334261720e4381725d177818fac743b4ff32af1f22c20ff956131cfbe916b
 SHA512 
5650953e5b401669bfc4ecd27eccf9f0185dafe48ed67972d71b1bdefb2bb913a8f2b584cc6889f95737137fc32e3bd63d4fa396f59bfa0b413b958a0ab052fc
+DIST firefox-128.13.0esr-nn-NO.xpi 630287 BLAKE2B 
1e77cfa0566ea1544c4ca67b65172817de79b159e4c916bffd5df02738fbf13d4fc3a5d5d8f2bd91c88ca62119c458d51f73ae2b7cfb76df67313d7943400970
 SHA512 
641e1bf5beb53803000519294323ed53453e5800a4051d8e4229630182e4301b276308ca7bccbb350c176b2e610eb64c6f541448f479b5d297c3761755685edd
+DIST firefox-128.13.0esr-oc.xpi 626821 BLAKE2B 
7e9f73b0291972146f61148098f09e6b2601554ea060048ff9bc52b0e2278c6f5d96635335ed8130bc842fa78e5c99df93207fa021ddac714daefb63482c69d2
 SHA512 
225134df2ec3bf97d10792d0363544b5d64f5e67900faf621c9bc64998989c7f9eca692f0cf8bc0363102d87fc452db3d8783ce897568f48a0b3ddf4d064e565
+DIST firefox-128.13.0esr-pa-IN.xpi 726721 BLAKE2B 
62a22dd40c2e140e8fd4670c9c0ec5bbd7421f02ed68ac25f5882e199f7aee6c00917f2839bc2eaf16de3668da2231deef1391a1002ba3f29730565e0c97c1b3
 SHA512 
f2324a4bbd901e585e76b4f30e10ea0610fb442caef64936612d14c3e17b006347b790fc97d2b070ea3d6c49fcb129bed05d71c6d0764886a717d3e52b87cece
+DIST firefox-128.13.0esr-pl.xpi 669242 BLAKE2B 
0f812a705f77acb46586e597d794fa9d2051b152e0288e0e659a02a340991f283df21ff2410bd444c9d3a999dad9b06208502c2a8f98f38cdb4c441280cdc211
 SHA512 
a0783ee05fac45699b7ed1de545f82460ee9dacde968d78e48dcfa4fb1784ddcf521fb834c9c4335a472c0611b48bd191473a5ceff643652a096a082a378846d
+DIST firefox-128.13.0esr-pt-BR.xpi 650220 BLAKE2B 
b2a568997805b99caa038c74ed8a918d1ffb2cac5d8ef339109e5a8b79d99791b33b57afb6646b5ecc1e255a2ef2b40c039be4f496a8a224048494a73cb21392
 SHA512 
b27bb952e9049535aefcba0606f453a8f3525ac6e0022711c3c2e07d84e040edff3d3850ecc8763df9b1768cd595dc41f6ed5693ba79e7dd73475d18b54f8308
+DIST firefox-128.13.0esr-pt-PT.xpi 654866 BLAKE2B 
fcdf46456c404305ecc5a8ab55a214536d3290ce72e9999b8ec938e11803fa6fa4754b8b7231d4597940e651f0280e4ad99e68c065519f60eec8e869633ff165
 SHA512 
76cc005d673d0618f9e4d2cba70c56783ffdd921157f61731b8406d725789a8e0dc281b277fe725ee633ea3e9b41fa2dff1d256ae3e8f8578bcd4ddac769bc5e
+DIST firefox-128.13.0esr-rm.xpi 646692 BLAKE2B 
25eb5993f5d13c0c6dead5e1cecd3c2b73204d9c8650f7c76770cd2cf55b6beea352ac060a659c9565901e8fa6b2a9dbf45d1e6d79d959d530b81d2df1c1684c
 SHA512 
e4c403f8439a1d9f66105b4cdcab59c43dc3e7a033058bab759b69cb1901c680be159d037882585bbdca92d59c5ed84c6f4e6ef96150164fb96d2da7d2478808
+DIST firefox-128.13.0esr-ro.xpi 562856 BLAKE2B 
21816c282b07431e4d4cfc558761f2c1b70e47c2f343d22da74a79ad08b726ae2cdf957efd26eddc5f1c17549af725a8fd07a9e53c931e2d9949589d161b7022
 SHA512 
d22bce2a4e7337f65d6178d26e7ac4c9583e89cdb9839de994fef18de61f18c7a889b45924177c70ddb17736d7ead4d3c0892f9f011dec13e8e60c372df25d5e
+DIST firefox-128.13.0esr-ru.xpi 753064 BLAKE2B 
5f0e093027e80668e6c6e19c82b354326ee4dce3e6b38c416cbe6e26bcb330e023f142f538284e37b5fd48fdd77932d1a8d764d8183f7dde01475ed444d7f1a1
 SHA512 
7165d295acf6806e0a547c0664e72b7286af305d3fa76344ce513205910a56ced2b149dab12593aafa98bd93cf2bbfc821af5c77c75ce3096a18c7e45378a00f
+DIST firefox-128.13.0esr-sc.xpi 604300 BLAKE2B 
83ea9081560013b71fccc24b7edf81b3242d5aee65a96fe943269a6838eefb9641b6aaa7edded476fb81ef4085f5161a4e9e4cb3c844c3b9e4f83a20655af0c9
 SHA512 
021528aa0e03eac05b4628aab140e1d597d6db9b4dba75d4417654b61d1a6c67b63128f155c743879b4e83b0aee3f1a3cf4baf53aba3a6de66e09f8aa9bd16da
+DIST firefox-128.13.0esr-sco.xpi 524665 BLAKE2B 
193cdf4ba22ff81d11648ca66ebb1220fdc6b3f9e230d4782d205a641ea196555979a2291e555a50225657398418c18e3bf50c22d21b5d462be34244e270ac47
 SHA512 
8c4b1b39ba059f5b2e474a55dcf7f1f567405ae84919ee906d0f082876e02915dcab77a82958ce103d53cb99e0b06d1f3ac70069aba9c53904e2965eef8a62c4
+DIST firefox-128.13.0esr-si.xpi 628193 BLAKE2B 
a9eb2d1e664c307fcd50d4c0e3f43b8f5ac4ea9eaf16a5ace686a1b6aa520331cda7283aec69c114a261167f2003cf68ba40d86768f168772345a5694ca602b2
 SHA512 
9619c45503d0e71a3edf6bec021740d3bad6fe7de58507b647236c9dc4e0575d3ce2700dc44663c15173d077f6b2a72a95d5fd2357525cd864d2d89708bcf3c4
+DIST firefox-128.13.0esr-sk.xpi 682237 BLAKE2B 
3c0056f95b516f6526a67e8dd2c84072d5bb7638003400b046c57a94866a4d88467a97e96af6f5259d353f752af478aac35b580e97226fce2cbb0e11f0026ae7
 SHA512 
65906fbef320b9b930f9820cd56494cce39fe612190de1e9956640faa8c92ba3488ba64c9a5a48f760017e257d6165a6236db0f9c11abe91f89d0cd48c088ef5
+DIST firefox-128.13.0esr-skr.xpi 726685 BLAKE2B 
cc2e4944950e03f88a21637f6044ec3f32bd6c67ad010f5e4374f901814151356f47e98a8ad4af898468e7ef18af4f08ccc3151e695df232f9bbb111873cd3e7
 SHA512 
2af8d659507fd35bd8e4d7c675e17ab09e1a918730c8bc9ed8eb733a288a491d087cea9fe81376957381670f7a44e1eddeefe87dbc70f704d1ae4504f668833a
+DIST firefox-128.13.0esr-sl.xpi 649044 BLAKE2B 
937b95e9e7c699d7f419e97738820ccaa166fbb9a5d991065755dfe1c1026e3c21c7505cc4f69a6aa7c71228b3960f7ea9f9c71afb9992c4e091a196936e54d0
 SHA512 
72a6648ee14688ae0415d3fc9d50ed044a8165256e56d67ee47ad5185fcd2c52e710e10ee3d10a912a643ef0c1a9d7fdd92293631783d4814ed9dd19b82b1d90
+DIST firefox-128.13.0esr-son.xpi 451688 BLAKE2B 
e27f738b4197aa04dd638e5795502838a11bb3186272cef91b38e45f2a5442ac4c79e5f4be0860d449b9f204bcd56eaaefa2ef1b1db7b1713e269a0a5d4faf3d
 SHA512 
a28e2d9b50f29bad2b6351ddb02dd0eee772dcdc6f9f66d52a55b0b8ba68f93d5285d1dda807c84249129994a765928f105e6b6be714f72299f90af652bca6cf
+DIST firefox-128.13.0esr-sq.xpi 665753 BLAKE2B 
c37289db885a2d579d47c58d1517b050eeaf76fae938ea4abf5a2ea1b6da3d4263c038738975de27d1585f48d43a6bd98f94d1efde0d95483148e4ffeb6338e8
 SHA512 
ae4141548fdda9ade524c443134aed95473f54d32d06ecb26dad6302b3c9af6cf8df721a2706bf1873d235d878724a67c3ff8de8e40cabbf51a02d5176e34479
+DIST firefox-128.13.0esr-sr.xpi 678434 BLAKE2B 
76dc8fb475e5f6f3dfb466a699767086ea3f84c17512f32a165d7c53d3c5b593f42c18027651879efb426b0e25d583dc6301c6392384e43c8bc6426c9af56999
 SHA512 
1281ade63da8e8c696150dee7c28fbd03d175395d8aec574822f64b91cd727b84c27e9516d8c094a83aead619b325fd71c3b54c129497bdb5cc557b33fb25f89
+DIST firefox-128.13.0esr-sv-SE.xpi 646479 BLAKE2B 
629a4a6ca3e1304d8c095020c32cf412c4e1ac26fe6b94778d78e415815200aefdfaca1db71efe152f36f0c871378b04fdc30a3dd767ed0db0e55e4a85a328a3
 SHA512 
54d5545d1853bf5bbe019e00d751675c60bb39be1e611fd21d76f6bb094df1c87791c44b857554d7bc36854885868ba2bb4b55df77e51b438d0c8ab6edeb6d8b
+DIST firefox-128.13.0esr-szl.xpi 541725 BLAKE2B 
eadcea4d9663b32d0d0f38adad3abf7305d5c721f598e1805671795a9719bda9ef3957531739647993ee4d3114ccb7b4ee230d6e5f77e89290c90f489ffe82b5
 SHA512 
248dce74a1c2143c8051ce64cf540a9e4d12aafbb41facf78e2c4680dac1b481d6163489eee024dc2fc19dbff3ee697c9d4250dbaf70d9a65b110f4212dcf018
+DIST firefox-128.13.0esr-ta.xpi 530542 BLAKE2B 
ce1ff05b3246de42758a5077484c6510eb6a67f30aaac84a41f09f382cf4ab32da4cdf54649e6702f5ae96b978f073f2938fd1e033662ec456822edb1fabebc2
 SHA512 
17cb5861bd2bd7fe94098d0abf57990a79666ef09f6d7c5aaa9b6dac6035cbbde617a95edae8c8e196f48d8925d3da73f03ca141a285a3af1ddbd9cdba43de9f
+DIST firefox-128.13.0esr-te.xpi 583146 BLAKE2B 
5c638a4af2c8925b77346d13fdeb3a6e860b57b15f7830ae761125399d91c94570a03263fd7a49f055540a888f83a0996136d663bce3cdff7ed9ac3d063f874d
 SHA512 
fb00c3ca9aa7a67662b41ae552836d9979df35de7be6845e00f78e55889957d0f13dc4572c25d22188cab81c560d7c0467574a5e31495f88e315ecbcd1a5cee9
+DIST firefox-128.13.0esr-th.xpi 728446 BLAKE2B 
fd4b9520769ba26042c90cf8202b5840a4f7a048f6bd38bbe8d2250b67889da0eba701fa51b899df37847db4490d542cffb572c2edc4fa618cb9c57d914f58e8
 SHA512 
88b409d32d971f47cf9cea7c3a80fc2683d0614ac4762218e1f67ffda7053cca743dbfe653d8ac4f22352ee08d2c45971510ebcac19ef972a7ca54ae45a3a8cc
+DIST firefox-128.13.0esr-tl.xpi 546946 BLAKE2B 
48e7dadc1b42ce15e3acd58b5502595a8e5f39aa4bc13b83dbf6fe6c32dd4c5b805c7a2776fe745366939804870cb8052940fe5f71f880928d19f5a3a0c3704e
 SHA512 
aaae575dd0a7290970214612d7ece8a18c1bc561d332884441640df801c9d6186d67bc0532e874e81738da2b59d4ef8531d2f61862d73f232b01661898eefb51
+DIST firefox-128.13.0esr-tr.xpi 659452 BLAKE2B 
b4d144c6ed3216eecc243225dd9610ab3ce2bb76e68f4e3d91083c660dc96d88b89f6e8b2e8c8da0ca7523a33fbccc1c1cc6fbc55a546f3d7ec330520206495f
 SHA512 
2c873e8b37ae47ee8555d2ad6bc14665b6058e576a8a804610a6241963345c220376f8f5203af1f336f1c256c4fa1472c326f906cea86efd141d858d2ff3752f
+DIST firefox-128.13.0esr-trs.xpi 522151 BLAKE2B 
e1137f129a374e28a607c06e03e7fe9c2e1e59caf6b6f5066b9ef54b75babcf0868777856694d91f13c642c97bd0a4db9fc24c2c6951573dda3120902aaf864a
 SHA512 
6202d20e0e6bd864e3715c6de34fb7cd9ba9b99a643c816c31cceda2adb201baae3e49b74f5a4156f8ee7ec1b9a71d6eb809030a5a1303b5f18acfdba9751b61
+DIST firefox-128.13.0esr-uk.xpi 743991 BLAKE2B 
842b45cb17cba80d29276fb8fd81ef8b2a2bb8513a932cd6ffb3434a64a97a6dab8824850023a57dd7ef7083fdef64517de22e6db751185fd40c932abbcc126a
 SHA512 
df64e0dbd4a770178931565a2ccaa0cf58129824e752eefa572732fd6efc9929e42d3a16d54391eb60ed3ee20aecfff266f7e3bbab18f4b07551d3026b4443ec
+DIST firefox-128.13.0esr-ur.xpi 574505 BLAKE2B 
e53952769dd83b8c02bedb1fa17292ddf054bce544625b7a55fcac92dccc46f65eb549997c1f0579ad6e9f6ee2d54ff7f455d79b0801520dbdad7a3ad3b6ccbf
 SHA512 
f56877be76224dab12267ee2f4aaf39a2516095ea0fe0ba8b2dd0ab237baefce3a3337fff99262609ed8495e286b373c96975d813a6776f255f7381f289f6eba
+DIST firefox-128.13.0esr-uz.xpi 495300 BLAKE2B 
40a855eb6ef4ba53ecb317de613100bc1f022c2901e048983e6914d3f8bf377b0866d46acbdee84bba5d04b8a4620020c225dfcceb78291fdabe209f93d61883
 SHA512 
d30b795a97af85a76b8e1bd7930e00beaf83be467a71107ebc723fe123bd3a5fcb4e2cc8094e39d85124d5012cee840cb6f5c0d86b8a120607a6ef807f751752
+DIST firefox-128.13.0esr-vi.xpi 683657 BLAKE2B 
00b14189ca6422f25c51c46a01cba0b3fd7ade13f7dbc0c1434a99f4d870e587b18d7e6d2ab865359d7441c16187490dcab4e20a7eae428ad02c0d2ac236f99a
 SHA512 
527e75b2703ef650336c6545ac63c92dca6db939d3aebcf9be51f068b914179d0c4d3d23d9f6a1be58ed517340f160dca0b4a44899568257a7f4663a29363672
+DIST firefox-128.13.0esr-xh.xpi 452433 BLAKE2B 
c330ad76a270e7c94a9e37d3f3d6e6cdfcdb1129d136c086a03a6e085a77591a34fd74060c77416b8802fdfb8931eff4b533c9a04c9d523455bd6bb9f992127d
 SHA512 
83bd4e1210465d15cc7278a7936932a7331146b049e232d885aa189c454940307064d40cc60991adeec4d52185131d59be448f70299093af4171ad7c0a1f58dd
+DIST firefox-128.13.0esr-zh-CN.xpi 686325 BLAKE2B 
de94a7da3f1cf245ec7f1863573a57f46530dc38feced9cafd647871baacc481ff479452adc8baf5a47d7d663a7e1f0e503484c0e3afd5b31fcc5c62567e9f4a
 SHA512 
5af6435f6d5fe2cef242410fceb72c7a0047f0bdeac550d0f473a69756f9cc4050ace096e8a52964e645f1b8c15c0dcf7c1db081861975a63f2711b712b997c5
+DIST firefox-128.13.0esr-zh-TW.xpi 689138 BLAKE2B 
213acc88fe7813b792999815157c07fef91f73c1592b7025aa745e0c848c85d7bdedee7bff0870cdaeff217123b355b45be46ca66cf1dbe1410f288b6efa3bb9
 SHA512 
cf0db4539410ee101f853ea6e4eca48c8304506c0168846b29ee630538b2c628b03693a3738b24e9bafe5a3203ceff487830a8fa2138542811a337996aaa0024
+DIST firefox-128.13.0esr.source.tar.xz 560782432 BLAKE2B 
1be2fb1e76167f83061fa805dc09b2f32dc7c813655cde72eea4b0ccc44a02570a78e2f177c909f2faed96eed6f47d08b783cae3f19c1d8e44dc8e531eb1ecc2
 SHA512 
9e6f3af535e0904219bcac947d458789cc43cbfaf476ac287328323662391eaaadeff57b244599acf3626a2fadc0bc41b70d07e33ca6af4412006ad01ceff034
 DIST firefox-128esr-patches-11.tar.xz 18696 BLAKE2B 
0f35eaa29f1daf9beb09c7303b3e92676eea84337683b8f7393e8b52e36ec1f37683a050e1e8d7939ebb1bdc190acaac887bebe88812c1b64785e38980f18be3
 SHA512 
04bf8bbf3c4e7901a6681fec66f179f797615613be838cf35a4b03cd9a347656b1264524ac7355f0c3978a5e740ddc5dc438610e5cae6ffcad73a8988cf0e572
 DIST firefox-128esr-patches-12.tar.xz 19024 BLAKE2B 
e6e1cd56548cb429590cac156de6e5ea003e9db30e3486ef3c822dea063f22bed08685a52036c0ee749b50a803c84fd998470d049145bdd70936068e9fb9568f
 SHA512 
0af68f23777038cbd02c9991a5c5d59cc407295b21065c144428869f3a2ce21e8fe4ed80983950b75809a7c6d530cbf629510c5a18f5ec0439e1a0daf852999a
 DIST firefox-139-loong-patches-02.tar.xz 3096 BLAKE2B 
2e9c0f3dac780c808a13f70fe3808df9976898360b55113def97bf3594893166e0647c70ebc389b2d14fa2c2453fc1dd68aba20d92178670ef97d70c34205e1c
 SHA512 
e1244007290e2e15d14cf519e3ade6a4da06abe41c416de60569a11396609661cb62fb5b592e763cc079406699dc33d6a34851f71068f4d09bdf34021b035a59

diff --git a/www-client/firefox/firefox-128.13.0.ebuild 
b/www-client/firefox/firefox-128.13.0.ebuild
new file mode 100644
index 000000000000..ff9d0cb6f606
--- /dev/null
+++ b/www-client/firefox/firefox-128.13.0.ebuild
@@ -0,0 +1,1380 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-12.tar.xz"
+
+LLVM_COMPAT=( 17 18 19 )
+
+PYTHON_COMPAT=( python3_{11..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+# 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.77.1
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=25.0
+WASI_SDK_LLVM_VER=19
+
+MOZ_ESR=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.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 autotools 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[@]}
+       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 ~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-png +system-webp wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry 
wasm-sandbox"
+
+# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being 
llvm-19 based, and
+# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 
is already stable in
+# Gentoo so it should be widely adopted already - however, it might be 
possible to workaround
+# the constraint simply by modifying CFLAGS when using clang-17/18. Will need 
to investigate (bmo#1905251)
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( jumbo-build )
+       wasm-sandbox? ( llvm_slot_19 )
+       wayland? ( dbus )
+       wifi? ( dbus )"
+
+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.26.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.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-libs/harfbuzz-2.8.1:0=
+               !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+       )
+       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
+                               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
+               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 || tc-is-lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               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_lto} == "yes" ]] || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               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#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"
+               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"
+
+       # 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-pixman \
+               --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-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 '' --enable-update-channel=${update_channel}
+
+       if use amd64 || use arm64 || use ppc64 || use riscv ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use loong || use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # Enable JIT on riscv64 explicitly, since it's not activated 
automatically via "known arches" list.
+       # Update 128.1.0: Disable jit on riscv (this line can be blanked to 
disable by default),
+       # bgo#937867.
+       use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' 
--disable-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-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
+
+       # wasm-sandbox
+       # Since graphite2 is one of the sandboxed libraries, system-graphite2 
obviously can't work with +wasm-sandbox.
+       if use wasm-sandbox ; then
+               mozconfig_add_options_ac '+wasm-sandbox' 
--with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/"
+       else
+               mozconfig_add_options_ac 'no wasm-sandbox' 
--without-wasm-sandboxed-libraries
+               mozconfig_use_with system-harfbuzz system-graphite2
+       fi
+
+       if [[ ${use_lto} == "yes" ]] ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       if tc-ld-is-mold ; then
+                               # mold expects the -flto line from *FLAGS 
configuration, bgo#923119
+                               append-ldflags "-flto=thin"
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+                       fi
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+               else
+                       # ThinLTO is currently broken, see bmo#1644409.
+                       # mold does not support gcc+lto combination.
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # lld is upstream's default
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+                       fi
+
+               else
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "linker is set to bfd 
due to USE=-clang" --enable-linker=bfd
+                       fi
+               fi
+       fi
+
+       # PGO was moved outside lto block to allow building pgo without lto.
+       if use pgo ; then
+               mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+               if use clang ; then
+                       # Used in build/pgo/profileserver.py
+                       export LLVM_PROFDATA="llvm-profdata"
+               fi
+       fi
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               mozconfig_add_options_ac '+debug' --enable-jemalloc
+               mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+       else
+               mozconfig_add_options_ac 'Gentoo defaults' 
--disable-real-time-tracing
+
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # elf-hack
+       # Filter "-z,pack-relative-relocs" and let the build system handle it 
instead.
+       if use amd64 || use x86 ; then
+               filter-flags "-z,pack-relative-relocs"
+
+               if tc-ld-is-mold ; then
+                       # relr-elf-hack is currently broken with mold, 
bgo#916259
+                       mozconfig_add_options_ac 'disable elf-hack with mold 
linker' --disable-elf-hack
+               else
+                       mozconfig_add_options_ac 'relr elf-hack' 
--enable-elf-hack=relr
+               fi
+       elif use loong || use ppc64 || use riscv ; then
+               # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+               # see bgo #917049, #930046
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       if ! use elibc_glibc; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # System-av1 fix
+       use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+       export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+       if ! use telemetry; then
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_CRASHREPORTER=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_DATA_REPORTING=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_SERVICES_HEALTHREPORT=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_TELEMETRY_REPORTING=0"
+       fi
+
+       # Disable notification when build system has finished
+       export MOZ_NOSPAM=1
+
+       # Portage sets XARGS environment variable to "xargs -r" by default which
+       # breaks build system's check_prog() function which doesn't support 
arguments
+       mozconfig_add_options_ac 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+       # Set build dir
+       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+       # Show flags we will use
+       einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       # Handle EXTRA_CONF and show summary
+       local ac opt hash reason
+
+       # Apply EXTRA_ECONF entries to $MOZCONFIG
+       if [[ -n ${EXTRA_ECONF} ]] ; then
+               IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+               for opt in "${ac[@]}"; do
+                       mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+               done
+       fi
+
+       echo
+       echo "=========================================================="
+       echo "Building ${PF} with the following configuration"
+       grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+               [[ -z ${hash} || ${hash} == \# ]] \
+                       || die "error reading mozconfig: ${ac} ${opt} ${hash} 
${reason}"
+               printf "    %-30s  %s\n" "${opt}" "${reason:-mozilla.org 
default}"
+       done
+       echo "=========================================================="
+       echo
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then
+               # increase ulimit with mold+lto, bugs #892641, #907485
+               if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+                       ewarn "Unable to modify ulimits - building with 
mold+lto might fail due to low ulimit -n resources."
+                       ewarn "Please see bugs #892641 & #907485."
+               else
+                       ulimit -n 16384
+               fi
+       fi
+
+       if use pgo; then
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+
+               if ! use X; then
+                       virtx_cmd=virtwl
+               else
+                       virtx_cmd=virtx
+               fi
+       fi
+
+       if ! use X; then
+               local -x GDK_BACKEND=wayland
+       else
+               local -x GDK_BACKEND=x11
+       fi
+
+       ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_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 >>"${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"
+
+       # 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}"/taskcluster/docker/firefox-flatpak/firefox-symbolic.svg 
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