commit:     875d3acb94c704802b18e38d275f5826bac91178
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  9 06:36:18 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Jul  9 06:36:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=875d3acb

www-client/firefox: add 128.0

 - 'debug' now adds --enable-jemalloc,
 - drop firefox-wayland-no-dbus.patch since it crashed the build system. This
   may mean wayland requires dbus again, or that upstream just shuffled the
   code and it works upstream now. Either way, it's hard to get Firefox
   running without dbus enabled so I think it should just be always-enabled,
 - python-3.13 cannot be enabled due to removal of pipes module, that the code
   still uses (bad news since 128.0 is ESR),
 - rebase tons of patches,
 - remove geckodriver use flag as it's packaged as a standalone now,
 - remove some obsolete deps,
 - update nss dep to 3.101.

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

 www-client/firefox/Manifest             |  102 +++
 www-client/firefox/firefox-128.0.ebuild | 1402 +++++++++++++++++++++++++++++++
 2 files changed, 1504 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index bd359c44fc6e..8629aa9d46c5 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -601,3 +601,105 @@ DIST firefox-127.0.2-zh-CN.xpi 650833 BLAKE2B 
28df31392be1acb5a73af40b1dd8744056
 DIST firefox-127.0.2-zh-TW.xpi 653089 BLAKE2B 
f7d6c661cc6f7bdc068cb9b00991f164e3b6b123cef5af553c6749de3ce3eb6609a71115627532093f7450b08f6df5b5726903e70f61279b6292004918f9e5cf
 SHA512 
3a8a3c3979db17b3a56fdb2049fb1a437b8c881dc6587affac0a24f936ab53845672da3cdb452e4831acd2ec080f08dd4fdb6f40bb8edbffbb2d2ff688eee96b
 DIST firefox-127.0.2.source.tar.xz 554998504 BLAKE2B 
63221122b5d3ef57f47895fc3583ea4b6dd97a636934054572ac1fb1005777b2d76229124f4b8f293f34791720992489f9ded0e5707d930977fedb160dd0966c
 SHA512 
d5a959a032309b8a42690b7f5afd5110c2e6ca7de426e1529d50f59cf065e67623ed98bf3aab39ce4d345ccfad2a273b24ce4f87c7ba7e6eccf2e9dfe3008d8b
 DIST firefox-127.0.source.tar.xz 558840124 BLAKE2B 
78fe92863389763759ce6e25dccc8adb19b8c35b59e591f40982fe5cd3b5511fee8f809567fa5aade68fcf3b40c1860f5e63aabdef0421c94b803d30d32d4988
 SHA512 
5a17bce357e7f445c37540115f2c131ad5a055c0cf04f20bc2eaca18f8d241a99ac76739d172b38f2ad2681633f901a0a15893801082ac5db9e20e31fc8b8291
+DIST firefox-128-patches-01.tar.xz 13132 BLAKE2B 
1e1b6e7c32e28e824ba8130d3115bebe01522a8deafde11c1f871d1326c84e3015097e1f47f9e87c28388be83de3c7a6835560602e110fa5f986832d5f667a76
 SHA512 
49f755b2e5a5d855e35848bcff2d78d61fa2d109da58f81432b936e5d91dd1a46c06c0660b6df1f0aee99df3cbbbee0c49fd57165438fcbc5650c7a649f8da7b
+DIST firefox-128.0-ach.xpi 463921 BLAKE2B 
016138341e087f6afd53c82e0b33700c20c341491e6b12f444cc7d85aea1f0e08f4bfa7395af5cf888984f57a3fd6a41f5df39fced8267e0bd0388753a1ad994
 SHA512 
b67378c13ecd5e0c7e570b69c2f267232749ce71c97ad987b3e6b1215b84ff934918d5fccbdefe99dbd5a331917b8d545e9ccc8aad4aba25329231ad357a9612
+DIST firefox-128.0-af.xpi 417369 BLAKE2B 
434dd6861e1b378fff90cc704a7cf63b90de4f54d6b8153ad9051beb0aae84c37686c052624b8d38f60cbf6885162142f5f2a126bcf2a238cccf63bc7194dcd5
 SHA512 
e3ef703a909fa12d944c80aec83c9d8ddf8c49aab18f62c2ebf6f4ad08d17e17b5494b472480a41c510e522994db0afe796259879668bb319c4fab27979e2970
+DIST firefox-128.0-an.xpi 505732 BLAKE2B 
d8d25160fd99b96cdf051a30ecd1e5aab3a50b22e3f2cf78fc8d3fb6d2405dfb38181aaa894e09d288fbb9f5417f0e4a70832bee1a53d27dda24928db2742933
 SHA512 
f1c09844a27b803f2b46ff4fd2fb27f2a4cdd6e2527b4bd8574e7a19af408d168ebea58ff830436497e3c768c3023282a24fdbdd23f96cea8bc6d7fdf626a3da
+DIST firefox-128.0-ar.xpi 610516 BLAKE2B 
0a121e72c5ece69b04d91d8b1aea42603bd266105d7c35dd9ab1dc27ee9523c4e6bc65f1115c6360e3594c7b76e7878ac53ab8d34791deccc3a1ee1c5321c51c
 SHA512 
4244a286d4e4b1444a18246ef0a0c04292e91e4c8ef9b9708ab58eb0ef005902d3654e0712c8c0bffbf4b0f1504acfc2a2694ecced3bcaf544b6701cbdff1775
+DIST firefox-128.0-ast.xpi 496179 BLAKE2B 
8f3cb856a27d7224f02178adf69980d37c42259a1aea3fa0879ffe703f8243e6e5b471374e57be41360149527e008db56d343aa8503a8ad23366f72c68cd0974
 SHA512 
0ec6e85464756c3defab9cdf19d792e4a65fbf12e98e6179fde725a1868be8813ced98c76beb8940d0b41d371b70953270c5eab05edb732d869b1f7465db75f7
+DIST firefox-128.0-az.xpi 490622 BLAKE2B 
cd88d8bea3e2ca3e8c14c6708c9caece0d3623ee4419e35ad7d974885da13cb9367fb88ab68cb51f43b8ebc354a1061709fd1cece931c71ba547a1773aa28499
 SHA512 
98a915c0c891d361c16c57b7ebb43650dfc55508ba8bd9e91189b29a3f6be4314309ee97546c8782b688250164c009a4caafd01addeb48c0a002ad8d96758b0d
+DIST firefox-128.0-be.xpi 712861 BLAKE2B 
a80599b0d3cff27e4bccd6246bbbd7ee877995bde8a3232b3ed2def5ed593690671a5cd05bae343469eedd40747933440eb4d8e713dcbd7a3c8b04eef06987bb
 SHA512 
9d745557d57e1cc0f2ab57f5e57c152ede1df78bce322180bbacd42996658cabde09e773b9f52e1ec4d1f69117ccebd549b1364a22de6a87f3eba5b48e9e820c
+DIST firefox-128.0-bg.xpi 603668 BLAKE2B 
6615e062bd290606e917bd2643ba98afc3d25e0b52be0be6378b86b48b8a9c293e0d51a3ad46c8ead0b93b0c16fb469f28e81c865a9df5e2b0371c714d21abee
 SHA512 
83ad4d590ce2fe9f738db9ef5643a82223f4053d5bacc6dc03813cc5d92234ba9b435ded3fff8a92ca42a3ecf77a305445dc3c3a24ff3f052975d0cd88851847
+DIST firefox-128.0-bn.xpi 581366 BLAKE2B 
02a8b39df8d69ad3e7c1c010d0da12fd52850b1abd02c1a2f8fcfc6fed6b0c8b221b804e513a266c64b1b8fcc870abc317d4e298486a42447ec7543964519842
 SHA512 
e552017471b93571b2a1589dfbe950733a8a7880b2570b1581c9b4099d382e99dc558e10b6516c13fc2354abf1a9ba612ce131437529a7257cd10e030adeba4b
+DIST firefox-128.0-br.xpi 587967 BLAKE2B 
681dd47acd14daf1221c1c3ad832dc17ffdcf9fc7619d31c86b319ddafd96ebd1f8b1175095c881c951291b940c74cb9a2f84bdd4ea617fe053942eba9b09e97
 SHA512 
476aa7e2c32338e3304aaf7848b6e25353912cc39c97ba86024bf32b89c71b0d550359bd4092aa99866dbdbb09c6fe5ea4fa6e6c4aec335db381344b203989ac
+DIST firefox-128.0-bs.xpi 501822 BLAKE2B 
60aaf21e9f214a4d3fd791343abd9fa309c4a47b275c18ec9c7b0b65f09add541ae16fea4f382d334671e9193cd1aca932a14d22872889dea46d27dd7b361500
 SHA512 
90f7540b85cdf8b094150ff73994acc738a1ae60762fc97af90600c886d80651ca12cb778d2dc2e2f3cd7c120dbb1fbf6ce37ca04168f7a4c6eb68ae9fa04f7d
+DIST firefox-128.0-ca-valencia.xpi 546032 BLAKE2B 
36c61ac442037376329194ad5cd0357f2d69b3b77ada0e10100d63a6532ebc1b6fa57d9121debec59d8db540f9de8cc46a47e352d6524815c957dcbbf681b417
 SHA512 
e1d5cde5bf3b23b864a4862134de08f0cb46195aa487f3da54ade878c11e67e6f19a521db37803fd7ce7dbaa2e56f4fa603778065ff3ae5ee78bc687f49c9c94
+DIST firefox-128.0-ca.xpi 595961 BLAKE2B 
cec1470d3deffb3b1f9205b1ccdf43402aeea6cc6fd24e9527a1856f3ddf58d4b58b217131359d7ddaff4e0db92b42428731d3f864429084adadefe2365bd44b
 SHA512 
824040406afc6282be2ef89154c221852aba6ca94b485389e80faaf9c227f8c310b22981629710893a25e8b8f55787dc1362b0cabe5a8e15007bd18f984a96ec
+DIST firefox-128.0-cak.xpi 592927 BLAKE2B 
ed66e64503f6e075074be84428c0641945efc9a585664aaa49ab01d126ada34f7839f2ffcdae5c04bc74998593b170ec5bab1ebd25fef917a2a1b22ddd1f6aa6
 SHA512 
8f6e7420c82e29e02d009b88e2d13c6b523d974a220da112895a22b606b7120548fd805e33b76d9d35c941b9c1525bcaf1adc685f90f7281241977567b3991e9
+DIST firefox-128.0-cs.xpi 657124 BLAKE2B 
4bbc7b1964229a8117631f2450fed9a8685ceb8f69fc7b793b387c2542ad3b7f690c5e08a4abdbeb78f54c9d14226b40edffa22fef23c4f2981b33da4a027c62
 SHA512 
62a7d271d6ae0e09e2f61b84c5caf604261af40c552dca4b97638a365c926b6da861239e6f1d059bc27fa1f7b1af48a9376db09ea203c37a28d378de9b14b7b9
+DIST firefox-128.0-cy.xpi 622268 BLAKE2B 
73fb18569ad98825dfaed13bc7b76c1bcb014bc2407bb9e5fdcef5b66b97b2ca1dbce3dd9d6d54443d563ec564c41dfe189fc7835c23442c0aea7b0a48149477
 SHA512 
d9e804e5bc0dbbaa0d24e5fc6f65a9eb730523c2dabae51908c033dd23d4a6a642867a12ef384de1fd9428b1c7ee2ee56c24b552753c15ccdc2d5d013959005e
+DIST firefox-128.0-da.xpi 610709 BLAKE2B 
5a1b63d36c88a50ee5c58cd14bc2a6d2b86140357e31062239d1d786fce188263a7d62d39da10ee2adf5d92f99b406a6f92f6282922a24245868e41c03f658f5
 SHA512 
a0e60cf276ec021ff76316c206a94d599b3c6b7d1cf4533a5e8cb0948db04762e641282b8c18cbe4cdc725a19b7d1e9d37c98f55bd7c47fe4b45b6271ae76ed2
+DIST firefox-128.0-de.xpi 631918 BLAKE2B 
f7169c465c1efe2558e2b30afe87f32e5e61d114bd3e1a12c2c2d7f2aa96fddca8e60bcb34bbc1b62ad92d292563c130af1dc063199e215071a10acb79d22f93
 SHA512 
b4debd554dc591657857dd7952695b49dfc2b9b190dd1c6a5dd4c3e74cebe3a36863ef5c07c1137389c22c19faa2c67d534798860877d781fdc06ab4c5dadb55
+DIST firefox-128.0-dsb.xpi 648454 BLAKE2B 
6b22831d5aaa242a9ae04a90f704424a8fec239e9757b2b5f0718e84719821e946bdb70992865e9b11ef9f996848802217108ffbb475c3966152962ee0ea2f4b
 SHA512 
8dcf4bbb8b541c1b47ce72a599de945f2bdcb358d9a87ccc48dc18a0bc0d6992d5f095b7c1821e7e0c9f9da5bbfbe3516522101c168d34f08a1be44a9d6a7581
+DIST firefox-128.0-el.xpi 730463 BLAKE2B 
0f2e15a91ea01451dba9f3454d64518974bcc80aac227e7794e2739763333499739fe4afd403b7ef9c450e34db68d555f5910efaac02c34ae8b94ba9f67662cb
 SHA512 
723d9826c76407f8e82ef8cb1fb6009f43ee3fb26976bddd30c8195b0425cc1e17bc64d0d9c4cac0ba05091c9062fe982c6ded251de2978fbaf5ed1f3b29ebe4
+DIST firefox-128.0-en-CA.xpi 581050 BLAKE2B 
8f20e6923ba2ee9394dd9e53bc7c1ae1130f7434f491c91d4c46e0277fe7d47fe20f497f19dac29acb0b673be09c901ab76a140cbccb6c9d3e887c8e15e9ddec
 SHA512 
c9daccf0344fc25483a76885e87d624406fa3e7398f8770f7460650faa9db5ed854876719f66ad254ca9aaeee97a6fc3f7537a08c33cbb0294c452077680d668
+DIST firefox-128.0-en-GB.xpi 583199 BLAKE2B 
74ec322c0ec6d881e5446776bf189c4749e72d4fccbdb3af48e3efc3c3a2204a0ed862635998f83ee08ad59132b9f69a0c378d0a6642c36e7fb2828f65c7f664
 SHA512 
2b304fcd92652afb9627130ffff693269aeb989f4b716858a0042ec2b6d315e870d9e2e3b8892f7c1e50dafcaef2c341bb5405844f74e6f8cac0eb14fc72ffaf
+DIST firefox-128.0-eo.xpi 613599 BLAKE2B 
b57b761f3941d317082c755babe1b37c02e1ebb6a884f2264929271a54e4788e31c47d2b0330634dba545362c535b4f8c3b6eb53dadb93ef72496ddc21703ee3
 SHA512 
ffd3515adff03b94d1adf6b926a908f270f88170184c799d0a15281577973d34f33a6f333daf51ef45a762c87cecc1a1b592b07311e51cbce8646d0c3ff0c774
+DIST firefox-128.0-es-AR.xpi 625743 BLAKE2B 
f218e24beb19cfe71042d12c7b21fb0dd6c6143f4113f658ec71fd5704fb27ad6e60e9467cf45b9053ac6ca711d86183a5b958cf3bbabc5a26b94cf3c72a4cf7
 SHA512 
1a792b556f9a6f4d2804605722c84eee98df5b2700dc877ffed5a4df60d00fa09293aeca863cfa9ac61e8e99e15c98576e1839fa37f02578a021cae79699f382
+DIST firefox-128.0-es-CL.xpi 625032 BLAKE2B 
b5fde2d84c0054f7fb90310b3b7d5dc10f97484f400eaf9767b0687775fea92882686ac0332e43dbdb7ad8a329e119033c39d0a3dafc807e45a345d4dc689e2a
 SHA512 
f84722b92be1b26fd26aea20c9361a12a3600d0e1614a330ebedea85b4e0562f788ea474e39e0bdbb1a2d243274f760a7f4970f9e7cd80e271a9944ee5751322
+DIST firefox-128.0-es-ES.xpi 619471 BLAKE2B 
0386ace5612e79918a3bc397e50b8ffa3d4d38296cbdb232afefc0e54f540fd760069c6ef9ac97770d948a2aa1949efc922ad8c7f7b6adc4cf488afc8980fbc8
 SHA512 
2b00a5145cfc0785d63dad9ca34a5e46363b93d780b2a22cab1b884cc3b097ecd1a53572bf09b27706cb57a57174608a1bf67a907850a4efbd68c6aaeed5439e
+DIST firefox-128.0-es-MX.xpi 595787 BLAKE2B 
eb08bd8898552977a2a2ca4c9c988eba81838dbf3dda36de97a249d12e9d4cd590268d49379232dadf74e31ccadc410a25941ffc5117568802cea0e00e37f28c
 SHA512 
4424c8af301ccda624b2e7d7bece4d2a4e4f7527d37df16fbad12eb8404b4029f452d203e2c83a886738111b26493bb711c696ec9deaf8856b337d59af751aa5
+DIST firefox-128.0-et.xpi 539386 BLAKE2B 
0cfc855d72fefd52b4512db4c31cffab2d1dd0fdab14d09fbd18078e053eeaabff8066449319134d90557ab06f9091eca4b737780d16753c9b92572e7f361611
 SHA512 
7abf688f471efdfee82b542a65714dafe454c9c16f4b870f575f7bd84fd1be28c93b03d613868ac839cc167162a9eb84cca2a92e439a0b02c172b0c047002a14
+DIST firefox-128.0-eu.xpi 596447 BLAKE2B 
934c74c1ba8778f96569e3518083acf7ae61aa5d4a12906d8e35ae0f8ba18022707816d0b504c8278398b3742edc0f566a280095a2fc74f07a10fc8d68214810
 SHA512 
74a7f72fe904b94f61960f3a5cc949c28fb504c7de2163caab1950a3c90ef2834a416f04f4d00e3b58ef11a9cd0fd3aba0b89f9f06cda24a4b81a45a3ad0b87d
+DIST firefox-128.0-fa.xpi 589848 BLAKE2B 
be6ee30128b376cc4713abdf10dd8ca699f5968ba56a886be73b4f57633427cad50282006675c5962623caba8637668fb2253adbacb3e03199ae156869c18117
 SHA512 
cd6863a691e3c8a6fb6bf82a7c0b6deb60d6ed4ff921e0eef256008162533b932dfde2bba479f00061f8d1d98fc065a6fbfcf9b99a06ca1ff0736063cb7aabb1
+DIST firefox-128.0-ff.xpi 475894 BLAKE2B 
0858593e5bab9b6e5508ba2444704bafa754c60ee352d25042498db72f51bc48a8b6bbb66b9f9f58d362030cc1c83342cd3f03e2c0764c432aac5c95117bfcef
 SHA512 
f4e3249bc16c5d07958fbdde87b1bbfa244e61f58bfbf0db6c74693ffe01f9046a413667850b28fe5e632e5146b153625d25e5bc3486fe0da1d15fbc458b882e
+DIST firefox-128.0-fi.xpi 605631 BLAKE2B 
451255bb1fdc8c44eb7745b6279ba1ce303840043a8a16feb63ebd2f1d604ddb85192cf00d7ad4e1ca6d8bdea9a226614d85e392d83c9656bda544812f01ac83
 SHA512 
009df840b731e5bc4e9281153384451fa9e0fda32738324fa29355634587c1c3501d857ab40df6d13767dbd5156e055ee76c0877769aa214a8fd898e7eb4d7c4
+DIST firefox-128.0-fr.xpi 639018 BLAKE2B 
e0cc4d4b97a158c867838769ef88e74372a97720141ea9e1a9f6e525bb7337a104cf071b73b5c88d4b2d81a87a4e96f163f461fd6e1bfacc8101104c17dbccaa
 SHA512 
c2ddbfe62b5326e4a9742d0c21f82015a444b4135336f99477721596c6b53a15f7cef35622e454cf3df42dba07b4a90c6391eaab09d3888e0914c6fc9ea56111
+DIST firefox-128.0-fur.xpi 631588 BLAKE2B 
dd16c24a1990b5a3baccee97a40e3f107f0498ee1dea49ae6af5b60d6722fd35f208033e68ad4a428950bcc6740d43e38f762e74612ad7d5146222e7ebd01ef2
 SHA512 
c867baa9ada38dee47023784627a4f52294105555fcb620c78540f4e296241bd7a4d2b0af554d7dd9af016cc0718e5787e9dc76a6cce7cbf827941c86db37a21
+DIST firefox-128.0-fy-NL.xpi 621390 BLAKE2B 
148b842ddaac3c71f1cf6276df11e41b3adc66692a640901abb73b9936a2f9d7267df3e0d0331cca6552db93f61745574da42b5ca64ac42f1fbe9104707b5fc2
 SHA512 
de7aeb47e3bbb574d9dcc9946058efe0bc950ce79512fbfc1a9f4ddd8ed9918fdaa3a49c8ce15ab4618629ec2174e276e11b7caa12d19119389eb3019d167e24
+DIST firefox-128.0-ga-IE.xpi 470833 BLAKE2B 
d3bbcf15bcddfa692bbf4eba085a81ad4ed91fcea53e644c076c2ea79e96723447a0966d86865c57827024b88bc3d990d6e19966d277701d69015f565b57740e
 SHA512 
5b5843ba31342bc659ecbacf4694b064ae90511b780c194d533701b34859d672cdd535796a361dbc3fa395a60947c179aafee950002cb340dc6a92cca9026941
+DIST firefox-128.0-gd.xpi 596427 BLAKE2B 
b3603e7147e3a021053f0d9d07d77122264dc4b296f478609cefd5644ebb00e224da8ad328e342723add321c344f1e7bafcde0c43e1775d40d7274396fab6f01
 SHA512 
5c033afe75120fe5bf4e0ab039c1c2deda81eeb5473bb7366ab236ab676f380452becffaa612c093ea1950e150031f9b7dfb7ef268cd12a7a9986ed967e5ce92
+DIST firefox-128.0-gl.xpi 603933 BLAKE2B 
1766c5b75d04875e355e626930defdddd2b556fa425bef3c3072922199090385b8512819dc1e51da7180e459fadce338f48c1daeb7a3d41ad68c6cef1ec2f0a7
 SHA512 
d3474013cc3cf4b1df6d4a610fedb00c9cb866f463b0293c48f916950cbd50910f363c710c825835a6969ee21d8342db0a83a8047b646aac0542b78f618b8378
+DIST firefox-128.0-gn.xpi 636448 BLAKE2B 
6ca741bf7c0a6b47f0ebf65a603ea8709da6fd3d26c0e3b6e09f5eeff330b2f11eeea67965d5f089a1701cdb7f6eac3b7d4202f1f9974f94f52a08af7454fb1c
 SHA512 
a9eea16028f9389a4850bf525cc782c8dbe20785781ebb9d7a07c8b10274ac4bc1e87412d2abfde95bc6ff57ea5a0cc72fb8cb2ba14ae06d154486851a36d1f8
+DIST firefox-128.0-gu-IN.xpi 527179 BLAKE2B 
67c2c09cd7b3c714404ed31708aaf04fcdb3ee12274b003aece748973751306064c00e25702a2180385efd69167a67a98a53d54f3d3b6db358946b2054a8ddb4
 SHA512 
25aa0dcf80c78aaa82c6d7d2d7462565ab51376bcf6852078757fe69e5472dbf0d0440d56192a042323c3d06bf9a0f7af0c49d24b0a0a2a6b2d5af25087f8a33
+DIST firefox-128.0-he.xpi 629896 BLAKE2B 
87677a10c429ed51a2c7f4dec54189a8c323f7333730ee65e83f8c0afa4b47034f06057cf32902c4734c5ecd62ab5bf9ea4a3a9147a3043fc6845358b13e622c
 SHA512 
2648eb80a505a9e11cbab14c978dfcf74fe80479e45d161ca2660dc60b16d239d27688021fb90026965f3ede05295eb0b4fbf8fc2465c85267cbd9f4e7596003
+DIST firefox-128.0-hi-IN.xpi 566639 BLAKE2B 
5664464e903e7ca880bd466f30c682c5e32dcee3c0ae28154c63e9457fc406b0ff84d5397ed96d131a9945de930a1168f3f1cca38112c0406dc7dd26c57ceade
 SHA512 
bfa5e59944ebd74346c21807ffbcd2e0ac6a28efde6f6ba3d2cc34f136c034d23f2cc0f1665dd3c7e12221a84f61182b59fd3d4fb67bc6e0e7f54f27c7877565
+DIST firefox-128.0-hr.xpi 556613 BLAKE2B 
e7ce108af8b57c249bd16a705157297eb4b6c0a08b9af3acf2813e7d6123e8573294e0d3b69a733008334fda53c57f13bb57a5732548e586f5c5864a1051ed05
 SHA512 
a8af34fe1f4999562751ad9253c5e36c88dc337a115e14f69957258ed22757127acaa6f2cf30d34406554852cc962066bab60c241384d254c65e7f781a684463
+DIST firefox-128.0-hsb.xpi 644493 BLAKE2B 
1af31e45908d1eaf7a6864c876f090bb202a2b61372c18ee33b2445984724454d8cf13d32934866a94a09253459f28e02da774868b7d4cebac319f0548255956
 SHA512 
e11d7abbe73ac59992746aa230ac47868b7da8de3b0a7e3ba29bc7a589c97720b1e1012e47d24b91c215e21dda80282bc28d6fbe5cf7a37ea66e079b753db016
+DIST firefox-128.0-hu.xpi 647705 BLAKE2B 
1aaa5da0508e8d0883cd53e58cb5ad53dc137d4dc82a1eb84f30ed875294b64f0c53a4cc461e14f9940e493c9b9a89fe049220b85734cfa7e565bd0294fd3631
 SHA512 
d26aa2dc2688fdfae43f9fd706ee762c22c69d28b96b90c783ae70ba7209bcfe354ca21a9502c54b1153bcce3b7a4f2bdb125be3555ad56b1c1514ed7b22e66f
+DIST firefox-128.0-hy-AM.xpi 651430 BLAKE2B 
22dab366d5e9d1d953c4cbe9e6732da640994130d4c4ac1b11d651d294528dc194e5e34867d0e637623ba9cd88c9bb912bbfbcd2c960cc52acedbbedecc336da
 SHA512 
96a30fb4d88fdcc9ad93df1a99213f0651aa194ee50b02abf339dd062fb57de8490c3646104d5e7d877ab581e6475bf5beb36a37f1723e8a53bec91c5ce255c7
+DIST firefox-128.0-ia.xpi 608974 BLAKE2B 
b550056e980d29436b3cdc62caf29cdc827255e6bb3d46af683bd2ad334688781dbbe9a853dab9e00f9b6a538ecf215edd25646daf00fdf8ee0e394df0653f68
 SHA512 
e05eaf1681ddb23989c039e6e01b370022937babc2aa59b7f6c59901cf22f91e2fe99dc19579b2a8f27485712586b2f73ae9078108ad5a09095be4f7a4eba49e
+DIST firefox-128.0-id.xpi 580043 BLAKE2B 
03e0b9a6845ba89d4149bf9ad35fbf1067c49a1c22e95085c23e537bca73174cf78564c056bb458c8fad66b752a73252ccbab9fab5f8a6e79f3925b2729c4f82
 SHA512 
9b517ab3ef018452e4df9ef4547bd3e4aaff194ff452bd32f3b0f42d2ccd1af6963e93603c82b452055abbbe54e85276d0c664dcedbbbe26090d4fca674cba9d
+DIST firefox-128.0-is.xpi 615187 BLAKE2B 
327ad1c06a9c327b676683d6d12e509f5d10bd0a06bec3337b3a0ec7ce907e4938e8bfaa4459be3a061e888672fdd740aa39c9c06620d651694bf829ce18d201
 SHA512 
2b84332c4d8b44b94dd8ca6c834f85efceffcbc4a84cc227e77a2df4ac9652396c577402240e8e0ae295637a05a4dbda2631a73fedcb43b9d607948292fbc40c
+DIST firefox-128.0-it.xpi 565256 BLAKE2B 
931784ba2193258a3b50a62d7f6bea4655c8d4d1edd2272706fb1a1a7faff133047fb9dadee4b204f98d040b25069c378dd47ec0e6bfba11661301ff14993d2a
 SHA512 
8c6f1656d0f5a7df709d6c16cf830e0c4b00ced4faa4ef964fc6a13017c2a0c660f5ede974f278197635ac0904d520ddc95864553850846432793070320e40a4
+DIST firefox-128.0-ja.xpi 675101 BLAKE2B 
464a570817d4ec5cd5f2177350c8421aaa604fa80122877cc1f53da6875191b7f5b2daf495366af03a3efa440aff0391e822d14f573c1c7fc40c615c50b05efe
 SHA512 
24afd1abdfa5e867b86feabb45d892b6eba306588d92055808b80e9e8e52a25b8521f2f6a0e2517f1dda1cf1846c346dba26e7b9beaf1971dfb23ded3e2b3ef4
+DIST firefox-128.0-ka.xpi 660538 BLAKE2B 
831345cef7849f5bc87f67127e1635a9e1db1d527f446db4d5c53316f180af5350cb968a35a312da82ebc7a0b41618137435d3c103cd21ddb9074d2ca628e4ab
 SHA512 
3b6acb3a0c94ca52ec498364d85cae5b0f7b9f42278db188ed9c8823aed01ad86f74cfe1629f02337853371a916503590f95c0648e6b7f6beb5831fdf0ead4b5
+DIST firefox-128.0-kab.xpi 607380 BLAKE2B 
5e7c182e4d581660e2ce5ce27160e8e7bb49347e829ff4c673051fb37f1fbe459cb4024326029de7dce68f4776071c5da1e4aaa31f35d1bbab2cc8800a4c53bb
 SHA512 
e4feebe26efb0426a8f9ba4d80b5d3cd8d221eca9f32003d125d1d966d38639953ac51638375ff855a0c5441410220b63fca7bd624c14390bb749a43d185c250
+DIST firefox-128.0-kk.xpi 705161 BLAKE2B 
26c218d8e3656e79bc528319fc075b97bc8f1bfe4526410a70d6ef5010f5eb2088e972a17e125ce23efb733ea381399bfaf2c5c7cf8fbe9946e37ea53c518a53
 SHA512 
ba6205e1f1f2c1e3ab6d9e0b059634d4bbd0fbb97091faa357a2174b176f4500624034cffc1da35f643f08aca8c982496c255fed37703a2689f5b1b113535259
+DIST firefox-128.0-km.xpi 525722 BLAKE2B 
dba1383d444e847ff1fce3c6a5e614799176f7bde0368f3fce9d5a8de4ffd9f1b9047340ee559aafb218d83a2af61b2467257c8bab10a847722481cf90a55ba0
 SHA512 
529b887dff551c687166794a575fa55074663d1ab029c10b429cbfe4e98350f8bc8990b2f7d525936940ea0bf6a2ec26a3b7df3e11ccaadc587c51b4e73c2c1a
+DIST firefox-128.0-kn.xpi 491095 BLAKE2B 
356fdd4be841774eb8e97d92ce5ee293592bc86d54d88f3acfe4e1f91be491bf5751787c2490b71a193152e9025bc0cabd00ba44a3b52fbc7af7d1d322191ef8
 SHA512 
1988c5cc58726533dc54fd2db5959f1abfadd36ebfcf2fb92fae5c00401f46d96b8e0afac1997ecb2db8fa50ba685cb4e74d69478068a6bf3151963a1197afe8
+DIST firefox-128.0-ko.xpi 659215 BLAKE2B 
e654e50b94ea63ba518ec089906582e7aca1d8a75e696627f9e69cb78ef3f5f1fc24155d58984c4266ac0f21bcfeb763b796db3bf65e3e51b7fbede20e3c0e44
 SHA512 
a7d2729d973ef69d253431ee2f08e889f8a35c3b8c550e1944eab06ab2ede4f222de983f385184a4f6fbda3310a50ff1c48f3f2c4c99a3e5d3850614e6d0e425
+DIST firefox-128.0-lij.xpi 483940 BLAKE2B 
2c66f9e5c397b619ea3d0128e64aedba7df802e569370ee688a31f7b706fd73e73af91c74e0c6b4366b99a781377d3cf9add7f467ed9e5e177a99f907b30f036
 SHA512 
46511fea4ced3315fc26b41dd55beacdc480bb771d7f63d9a307ed8574a943fbd49a18bd038a39f32f167ff223b0daecbbc568e05ceb23f838609ed351f6da07
+DIST firefox-128.0-lt.xpi 572515 BLAKE2B 
3b4dfa0fb0928cc08776fa3096f8ae16b8c72771bd636b9117cc53d571c0fb2973cb5ec98c6b1ed16866fd2a8102d5937bacb73cb0f4413048c21f2116d44397
 SHA512 
42b31e2a95b5c6a0e38bd9916bb7941eabb32ffaa2651aa13df4276bc36f3176b3f656709484e72f975dabb1dfaf2643d5a1475eef634bcfc2e345ae489a7109
+DIST firefox-128.0-lv.xpi 573655 BLAKE2B 
a3e25cfd6ab234ef9561220d532e4bd69aadb0cdbebc63144b8a7cfa92265c3abe9712ece40032cceddb4a917eda8b2cbb1574471d7aa0c752c4f15c7fe7328f
 SHA512 
12aa8518c317b124a231423cd0360a7502a55676db931532945187bb6f580887e86101b62a9ec18e21afcf404ab4d5a71b7320a4463684ca52dd5e6d6058c178
+DIST firefox-128.0-mk.xpi 493700 BLAKE2B 
9fbcc70dd96de86ba285db4ea487d04e8f30be0126d12193fc0b47e8620a37adb7c89439523c2ba2dbdf091a4be57295d34aab19a8343da388075a482a0cee0a
 SHA512 
ece5ea80a73f3662fb9119abefbfea0527ad5d4d989da36380f99e01d138eb1a1d1b3858588b807a5e866e51596e1face331c486b42234f3439456e7f62e0443
+DIST firefox-128.0-mr.xpi 531935 BLAKE2B 
26f54771d851058a5d8ff39ca2d49f26e5829909a5360b183896ae41cf242efff21b4e316b370543d0d4bfab2c2ab82c723f9383b037186cd4f6d15be4be0894
 SHA512 
397cedbf6abbe8bfb755e29a0c32a58ddd6ad0fbc352be179b4160b7301ee1d4f52e0a129ac5baf061543f79d06042360b92b29edfa96f4cd64ed75b61c65341
+DIST firefox-128.0-ms.xpi 449580 BLAKE2B 
a7310ce8c170f512a922dec9b8aa416f4257ef56cbf35e3970faf9e427615506ed5fcba8a9a207ed3143193931132cdc9a5d98b9eb14b72013ec8c2133287b90
 SHA512 
6979122e608ae629fb95b215c86137d7f428a9c0e2fdfe279bd0fe51e6e37646c73c59abf78e0c6723495abbb55e1fe3bc088b97e62ad18a22a3122a51e21fc5
+DIST firefox-128.0-my.xpi 518482 BLAKE2B 
18c6aec8b327b1b1c4fec03a6a773b55a0eb32016e625bc61d616c48feb9044a950e0aa6041e98d44c7464708e7fca45f5f55d83e0e3a6c7e3636848b93c676d
 SHA512 
1fc374db949908f877170a9933358a854fef3df6e77b6acf5d1d9cfb398a69874ae3823962f88c47c92813de2a95311960a350abb8c11f32922a4570da3424fc
+DIST firefox-128.0-nb-NO.xpi 606490 BLAKE2B 
08aada502a1fa02fb2d97186712b79ef1ae13ef8996f43b04be5c6823ce85d878000fe294d40dfcead9f4f116bb1827c02003986d965c0c5bb5f72a700349e42
 SHA512 
328d53604251ac54b252c38b3242735467704c75c82809a8acfaeeb5f6e6977b3211a24ab0af6e93f2f71e0043b54e7bcc20b000d94ad29416191827c04f694b
+DIST firefox-128.0-ne-NP.xpi 510771 BLAKE2B 
c61b0f643f321646f8ce7693914402bb0c68572fa1a55d3d918d6dffae3873df6f348f6782609d385ae84bff47e210112f1d330f8b87db3a234e6bec6125fe73
 SHA512 
89e2e34aa8441a8455304fd909308d901f467bd7b54aa297ae511ca0102bae41f6608e3336b099f4a2a0f2d9e54e9bee76e30d2eebfa5f5f7f1e8303f0956954
+DIST firefox-128.0-nl.xpi 615102 BLAKE2B 
060719c32c1cc6abb3d374ef2485257f948357236248125a8c7e53718ab233c60e7beeb7a85d49260f7dab329e8daab7256bc78b3a54aa8fb87db6473cfc0e5a
 SHA512 
caa0828667e8a43cd3987f31ba137545640f7ab714d39fe94cecae4369d180158246db7f91f463a1b6eb8ce79ef1d02a42db4590f8afbfb4ed362cd313e5e464
+DIST firefox-128.0-nn-NO.xpi 608951 BLAKE2B 
4a1cff01fe60efeb1165ec2da737c1e21956a4bc5160086891922f208614ed1921bf3148d2ec418863a9f5bb484962389155a48fc0418d0ac9bf4dd5231d1bdd
 SHA512 
cda0d637fbe71760fcf73c460defeed0072c1d5b2c4e531bf5d42940d7491bfd1da7cb5c889e859425a50e48abc5a965d8aa6391d8cc35fa08956f17fcae993c
+DIST firefox-128.0-oc.xpi 611284 BLAKE2B 
85c6e71264b071d1441b23db0519dfaa3720c2e6853f21faabbb25aef9e7d312aebb33cd42487bc455b5fba91e73d157e6bf34f622439c724a14c0053061d692
 SHA512 
7f808489d938ee33e76c5bb573247c500ac63f9bc5ebc400128a19907e549802a0999fdbb8116e4ebb3445d32c34ed2312413726cac461fe898e1bd7e733f1d9
+DIST firefox-128.0-pa-IN.xpi 690605 BLAKE2B 
8f5b22904d07e1664330f61bc1bab04c5159234afd576c4dea46343f7d2e2ec8dc9775aad5abd907d9710aa7d8f3a39545f6d84df3656274ac03b42cd437654b
 SHA512 
e6ef3c55b34921fd14c82da2f1aadf26e7a8521a617cb6af8ad2217107b8402afe95de8d70c1832f8f3ca6bdab290f1ed60cc174c2717f941c90bc72bc41dbc1
+DIST firefox-128.0-pl.xpi 635626 BLAKE2B 
b1ce0e6101a6347df61181200dfda9c64401e5768b6d38644a344535aef156aad3be3eaa3b0c805383891d8cabb83b32126e5f66f45972fb7112da5dbbfb137f
 SHA512 
5d81ece8da283acca3616c5f6bce8e6b4b3b08ae3d588072fbf4a7335b030e941aaf66d62654a6fbeae36d9fa1ffc04918f816b82d3ed71e1191cfc2d4b4942d
+DIST firefox-128.0-pt-BR.xpi 619824 BLAKE2B 
f4c17660ac81962ef908182d784addc1f592db337409dfc6dc645c1f5c7c7e9c505ce077838bfb4315a1bc249c3404983de256ef2449caaef73515fbc2f13ece
 SHA512 
a1b8d0f7b81a2323db19098d2f9626ef4c61930deab6ea105d0f66829f7b058cd0e595c3097756779df4ee150100ca9a4d06e2274edc203973294b1ce7238359
+DIST firefox-128.0-pt-PT.xpi 626034 BLAKE2B 
cd2d7f68b58ebb295d2b7b25729e9c589871b0ad80f10e55d99d260c3e64171ed2be33095a3565e854ffa0ac7e220505058f902a6909b0a8324173803df88a0d
 SHA512 
1f30508b45a5cfeb5383a069c35cd01cfa2339858eb269cab085a4e19532681511c14b81fcdcf1c2e0b80420dbb18ea2ad235aca46d53423d162086b3916f2eb
+DIST firefox-128.0-rm.xpi 615679 BLAKE2B 
d9857a9a9b9efdd1d1bce1c5d9eeb456d5cb36cf66472362ffdef5af4fc340adfef5f998fcdfa9010a1c494a591560557eb1a65e3829125375c78c21c40f97e3
 SHA512 
c55632e4079187baff1dd985f98074a17639672959724495582a33d7b545cd3d1f4039022c35d09815a38a62fdf8d1243c08cc0d9b60601f80a6e6a9ea1d4cb2
+DIST firefox-128.0-ro.xpi 549650 BLAKE2B 
3cf57fbe58a1f8675b7b04ad4675a499b9d0cb05bd283b2e31767684bdc8f709e81618b53afbdb1fb9400dbcca8a9f2c2eaa165eac8147bea35f9ad04b223fad
 SHA512 
eef8bed22d6f7c43e7e613e019d1c61f045dffcacf78ee80a12b7976227c46778eb8814e3a89c2a9a4be9ba355f6aeba1c2d389f5ca0dfdf33129427b43f3590
+DIST firefox-128.0-ru.xpi 717691 BLAKE2B 
ed73f89b7d576d73a1a28e714b40d313a3810315afdeaad90f6ca419a6b7e1508d618bc44fbc945c66c7721d632b427490f1e7aa56d7bb6ee5697ef453be1268
 SHA512 
189e6e0af8fbe921599409e7dee9a61cc21d998d4776fa7b73f145723244b4598418a35d62f18b2c543d38ec6f372365d64fc73a36fa339264a25a0fcc4212c0
+DIST firefox-128.0-sc.xpi 584914 BLAKE2B 
4a878328ba2f78cf983b150ac0fd65c9a8da2d668414c5ca16304b646cb53ae333828a066bfcaee22788dd49b05f205acc7f9255de9cd59fa46912f41f6477eb
 SHA512 
cf1e629ab935d1262f2d18becd0214fdbb33db0541e5a8bfabd5a7d8b41b387201d38fe8770835d62ce04200bb67f5572d928c7bc11e5d057ffe9d181417ae0f
+DIST firefox-128.0-sco.xpi 511148 BLAKE2B 
20306a0c5cd573797a5978817a9724e30983f4c5d0bd2a5cd89ce25a5675ac75957d00f314fad4bddfae6218d5591e29c0b866a87a1fb9dac71c4e53b28e72c9
 SHA512 
33ba113d7300ba9308c3dae216a9544083f22aa754997025151ad560083b3832b77b243f912ea9b069d7ee0747305df57294b07affb047dc90319132bb34c67d
+DIST firefox-128.0-si.xpi 606047 BLAKE2B 
b54752f3cd674e9b7761a94c81ba4b59157a13c07822f5272e94eab58763d734db6c598804e237ad9ff1311e06e85bd96447960f8135f97e03a0c9e5469bff4a
 SHA512 
e6ec86b16c9ee4da0993abbe5a7e9bda90baa76aa539e3b1318cce433896381dddf9d874a77f800bd93cc083cca422e3ae4672b17100b1ffabc9c52cea178149
+DIST firefox-128.0-sk.xpi 649995 BLAKE2B 
363f8507927cb7f2372fa51b4391030bea837df26bfbd0265daaa26196e7b85e01cda39d039f1832736e3d52775a736805d04792a16f430bf326cf99534702eb
 SHA512 
90bb5724c474e33513f4047f3a478f2f74cfe6f8f5a565edf40bad5a4e4e227255401c10e670a2db134950f824ac573dfc927bfe7121321b8ca5807571ecb066
+DIST firefox-128.0-skr.xpi 707175 BLAKE2B 
94deb377fd0ccb676865c8a72c44fac04af6a8ed1030ff3328ae69aa95a548e346801f7f8467bffccc3815dca162197023b689a021fe92e10bc4d009befa4daa
 SHA512 
972635c3ab85f4a93c1cc6bedc9bf1d4c4aa6650c80b5d74fea59efe13df272bfffe7a24bd247ec15d46373d1cf7d95056c68a5568b37aafa31d97e98ba31b75
+DIST firefox-128.0-sl.xpi 615568 BLAKE2B 
9284277640e177d7f209b82e4b00d733dca4a75618548c0144458f2b072720e270958bcc81203e9be678d14bca203618a8ad1fb90661b3d2d2b10d55412c7df7
 SHA512 
123648ba73f740d65535d93bb2ee8c242bc657936338ce65a6db7743c595570f5b96aa95b52518134922527ccc7d778a1239706d7086d0ac26328b48c61fdda3
+DIST firefox-128.0-son.xpi 416260 BLAKE2B 
92595a58ae205d1619181fae205b3a7d9f661c6c6564000198c9399a9aa4103c4e5090e7a05d644eb9b5cf2db7db4d6417fdec3f56bb6657992ecb0a89cd6cf9
 SHA512 
02e64b150e475b765bd4da5045e487567ade0d9ad3efbf8ca953a6d575dfd2154d3889b3b3252ac6c016b3be977ae05d617c4342b51ea5d0fe90014d7dfeea53
+DIST firefox-128.0-sq.xpi 635525 BLAKE2B 
4e4bac7617e8bba1906be9f056ea3fddf1dcf1dbde11074c9202de30b41282f1415ab3b55709ab1499d67f38ad26be78d165638d07779268f8dcb129a7ded324
 SHA512 
8a6e25535991f9c2db6011f22af25c7ebcc721b9b531bccfc87fadce54cfa60d8945a1b707f14d0cd11679089558ca87b37e97d8d167f14fbf4d8127d674d071
+DIST firefox-128.0-sr.xpi 639179 BLAKE2B 
7afc26f9af6e028a2199e9092a1291c93a327baa278ac547be39e82135de55ea001c07073026a2c2153e65b11991c355e649b66271de100b156bf78bb14580f6
 SHA512 
5094e5db62d2a022c7781166168162ec260cc31963038b7a07f35462c96c8f44b177870b94da6116536e36c0628e96286a011a528e2f43d2d1a0c41ce4f4b0d0
+DIST firefox-128.0-sv-SE.xpi 616852 BLAKE2B 
5f82acfbf78ecbe2df0492b6a741334207e7d950050bc7c5faa0ce78579eeb3fda3108cd804eaca706282b8aa21ad0f31e36685938633e3f395585a5d056fd87
 SHA512 
161366bfe1f335237c88617c5889db6d1587f3c24196001249787740657acc52f0ffa7aa128bb509a4802071235ebc2da2ce0acb005aeae57c9895457fa748a1
+DIST firefox-128.0-szl.xpi 526232 BLAKE2B 
d79a0c3777905a6a5ce7cca637ebab49ac307bc94e72cc6b1df32b672b21a24cc26b46db591d9ef3b6330741b486e7bdaa4e5541c1fbedf2f2e3cb29349fd328
 SHA512 
85a4072de10412a1e13bed240a6cbd9f3a037cf4ebf70a28719051354f3c0dc6a6f254223a424f5af5f8af6bd5e0baebfa3e8fe95f0750cd6381c1e6ab43a614
+DIST firefox-128.0-ta.xpi 507358 BLAKE2B 
ce2b278b49ec31e34e508f944ae8e6fb94e17199cdc5bd2add5d02760db26ff63e5370dcfa15649b3b3cae74b624d039dd68effce96b67274cb080971456b996
 SHA512 
5e4cdd408d64ae585ca7296c2c4e7f759e322b81913cefb453f700eb659492997b24f6ba7be7347475c3a14a0a9e1ecc2fe19c808dad0d57682465f4423ef77b
+DIST firefox-128.0-te.xpi 560876 BLAKE2B 
dbfa13be40842db1e208021befd460528f6d95554d92b1e9c94d1cac7bef3546c786225d751c26868438638fbf846d871b2173ecbf830464b941f511cab855fa
 SHA512 
178c4bd996b14f483881f678fc22b12c6064918e26ac4c24401435cbf454d2523d1ed15e112f723490586aede99fb78728a089d428ef5fd60d768a883d88307f
+DIST firefox-128.0-th.xpi 693405 BLAKE2B 
79de5f26ce012239267fd7900089a5b424eaab2dae31a383ceb0ad8a62907288b0af129e8bb93559118c21f01feac4f2901056303a971e6f32f5ff4b51d40cdd
 SHA512 
fa5e1e4c0ebcc564c5810530b7959b5e8a887b2de252d641e73cd7bd2300972cd78b4212ad267b85b3de52cc018ad35d2d828007f8b4859c33fd33ff4649c278
+DIST firefox-128.0-tl.xpi 534025 BLAKE2B 
6aa35320e39dbccf14f863832185d8a1db19a7f5e7c0dc8e86d4100dc314b2d29a9113697c1a6ab7e073523054e85c68e1989c8a20e0f3cc153c01bef603a2d9
 SHA512 
1bd64d2513d54794d6d41aa194fd88feb075fe651100bdbb01be5ff6172ab349c00c3d15b5efd4345c6525e648a66336e5dadbf4d0a86164c3998b7f1bc572cb
+DIST firefox-128.0-tr.xpi 630012 BLAKE2B 
92522c3b5ddaf027da6ba32f84cb3e80bd23cccd94ef7c78b8aa0f88eebe88ff3a4791e772f76c16b62967a9cea46da341b3b2ac37f870e92bdf3fdd56fe5a46
 SHA512 
47355ff3d82e19db9ae20f16eb1630a2ec255b0219b569606cd6a3e5053ef5aa6ae7a484f70707d25d89f99a5fe5025e25176189605f1e90efc1fb6e6b7619db
+DIST firefox-128.0-trs.xpi 503824 BLAKE2B 
df7e070b45c41c069d76a3d7a1f67f0d034d39777f61a54fe8127f723a603c99c0addf69bf52edf1a3824b54b72dd3c5b31a4ae2c16a476a5fe2f979f02d8032
 SHA512 
534114666bb1a131ef4ff51f1a114156c09924cf7f8560f278c4783a45728f0df730e4b19f01ccaaed4c6453ef757608975d695f17ea3ed9e6bfe43155a39236
+DIST firefox-128.0-uk.xpi 707195 BLAKE2B 
4071217517c8cf7c51b584b51936515f249fd383fad6132b9637c296fe911ff7dc853700cc49b266e34d5305ed7052b9908c5250c50869a9b3a2493a9f90fe20
 SHA512 
886c42192240ffc7dd8294bf912de1e56ea82e17e5e206b1f521c484557d42f9f2a3958ffcb114ceebe26126d045bc4bb7cd52c0c076e83a8a07394c0e29cb69
+DIST firefox-128.0-ur.xpi 560339 BLAKE2B 
63f996dff257c66e0f35887984df64771426653eda49352696f379090b3365cf737e6a4e8766c4234de8f0921caa481a69745d2e94f167e35c1b7a7e6097abc7
 SHA512 
9f65ffbdf069de89f32928812f311e7eaf91675ad40765fcc0b88a4bfca86aa9242c7207b49874cbdb39fe31e8f6b110af2af176ea649df3b5fac07538a75723
+DIST firefox-128.0-uz.xpi 478619 BLAKE2B 
03ce6a56af48dae306d7cdc8c8a34a57a2a436207503c5c94da4c38359630d56356b4c52d59b3518d4efed2bbc816fb34093321e0b9bd7ee00c9172e8cab4464
 SHA512 
e2a7d96d73664fd85acafe7d008cfa22d283e2742dd98f5e34f00129c00b2cf3f3a7240bbf0b01ecfb5fa49a0055d8d4173d6e8eb929e4d24bf764b5f1fb9202
+DIST firefox-128.0-vi.xpi 653927 BLAKE2B 
f2f804cb08bc000c1c1975c5b641b068a8677f7ab51b707d877f1333766af927584afdcc5a3f817a3d72a4b9f486d96bf75a4cdfc430e53dc19dcd8819720221
 SHA512 
16c58254dee12ce09b4aa603614053b08b50e7eae55cabc9709828de233d2393a84ff1f7daed39f58d17f570337caf3acc3936bab76f83b1fad49f3bcdb4befc
+DIST firefox-128.0-xh.xpi 417021 BLAKE2B 
50961db41b3ea9a1cac9f5ca60ff7c69c262b7f7f416c63393ded69b3916cb57fa1d2ae2fb6cba03ba8d30857bc2c596c6d6c2d88f7b56cbad49f3ef353a70af
 SHA512 
fdf7e9bb3b76842c4c135cf2d82ccd2dd744967fdb7d9202474e69e1c6f4e955d0ee234da2f63ebc706fa22a7de363655477b406e9cd9524e33a7907f680c9e1
+DIST firefox-128.0-zh-CN.xpi 654723 BLAKE2B 
55a9f29335f9d75f71b01aef5b13afd7bc4d74d334a85d97c89212d8e127c9732f494afa39cedcab6efecf59997c967e593478ffd48e6dfb25e2aa6ecb0fcf58
 SHA512 
a9f11798976e69b2faf44dfd2bcbd1294b0c771f9673ba168c2e0a351a1df346c3c74670fae9ed729cc37f1dc4c19df92b20e977da4d60a8a016383ff9192d32
+DIST firefox-128.0-zh-TW.xpi 656867 BLAKE2B 
a0a83d940a8a78a8436f5b708d4443ed448d0b676bd6c52901d58c557d28c4cd17c54bbfdc8fbed8cd5b8f522da646ab80927bcbf516ac572db0c1a53472ee07
 SHA512 
1617aa2937547da420fa95c40cef125898967912c2d1030488ffb4ec953432df75cacd2af7a6907684491ee3f52e52b1d0e855759a141ee2cf605714d0e80a0f
+DIST firefox-128.0.source.tar.xz 560761840 BLAKE2B 
a50c7ded69d86c9d45475e701f83295ab6ccfc4eb59d9c91379504bc35dd0e7e1fb59e8c7737684709fe62969b9762e2960fa90607c83f9e8d637b78e60f56b3
 SHA512 
309c0e2a0bea5699e6daf4fa02300ad7fd118d2c02c35cb5fa97a5fcc6e250cc7aec34e50fe872b8fd516436bfcfe37ddf33c9d0f9291860388cd6f3f08ea9f1

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

Reply via email to