commit:     f067d32d0c30d5f7d6e86ea1233325510898f2cf
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed May 28 09:03:58 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed May 28 09:07:28 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f067d32d

www-client/firefox: add 128.11.0

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

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

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index c350f35ee166..b3f729eb1550 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -99,6 +99,107 @@ DIST firefox-128.10.1esr-xh.xpi 452428 BLAKE2B 
ccb66d656fa2b733da41baeaf42dd8764
 DIST firefox-128.10.1esr-zh-CN.xpi 686333 BLAKE2B 
a5c159264033d784c99507b8d12e5e3504a6b8a2b547ec17cf2e669544b67a4245a6c2814c20af660a6045b8268a9bf994f8250996f062d21d505580696111b4
 SHA512 
8af1272402a96d3d472dac8630e6ac7ef1b55e53dcb6dfee20aceb083294aceaf50ed3b7d394a19168c5314dc736da1a8d7f14754c827b65da5b93fb32e4f871
 DIST firefox-128.10.1esr-zh-TW.xpi 689143 BLAKE2B 
9842f49e40646d41b2222c099eb271ab5b59af365a4616be84c11e18ff8451e04f2505c2f1b4f01468b77f46d6ac88bbc1fc8c00c243a9b4c1e2c55fa1148bc2
 SHA512 
3ebc37ff47f6c78a0a86d8d024520c8251ea821952244e227a6184ce102507dde5f9323f40ded01220a6c480ff7296d8d89ab44a5561f8863ae00155f7749d98
 DIST firefox-128.10.1esr.source.tar.xz 568752664 BLAKE2B 
6fe2da50fcc49ecd1304bd167fd73dad312ae9364ba7a33fe9216cb4fcdb6f806f637dd6aa8857516fd516366c31e19a6120c56c6568f20b2eb87bb6b5b84fff
 SHA512 
6e7363d8cbecda1cedaf534ac10dc046b5f515399ec754492357e8a558c61ee3389f7bb90aa929dbcb4d6eba041ae1e778a0a8f90aa1e1f939eea517333b6c45
+DIST firefox-128.11.0esr-ach.xpi 482256 BLAKE2B 
a05daae8a4341e986aac6afb7ad09c8ff2f162e463574d25ba9d4cf46837094c0608a29574d0db58927b726d7dd72b0e1fe3e730786fef862dee5cfd12586b98
 SHA512 
7108ab823be6828f3469452d3d1f93d93663135bd5cc659f8491e2b345b5d4cfa12d1df92f9454d81d43a2c42ca9b9d185ef7e6a87963a649da293582faf5dfb
+DIST firefox-128.11.0esr-af.xpi 446599 BLAKE2B 
04a38f557c66b491316fa80356842dc4e0ce47ce5ea84fc022e91924a9376c11c9daaae956e3476cc4e0ec7be892f080f2c4b35e30b920ea9dcdc3d42ee90daa
 SHA512 
619534f1d14385f17e19fe6d3cc13324cc998b16cbd5f3a40d2e25d134e686c7ea9c48f5549756b20d2be327a6b447c59be593685b12be76c6be9c25f6e8b4d3
+DIST firefox-128.11.0esr-an.xpi 526060 BLAKE2B 
82039e6641f2923dee34e2b325dd31e17c51dd17f7b00c152b10c27a8f20fa3918fdca33330c7e171c0f1e498d0d1b1a5d54f2e227996c5fa6d381cb3b1e6a54
 SHA512 
30750127514b0d990d9e69d1c499e4389e0793117ea9b5343cc36037f3d08d40577a1e2d34b325a1e3617640490e3864a93a612a3f6ea38f267f3b6c4d399f97
+DIST firefox-128.11.0esr-ar.xpi 650458 BLAKE2B 
68d976b5917f079c62de907236e009a022bb1b38227199a66634a100133729ec7a1e1a8bff706a57ed724663e0cd42134ebfcaa6f6219bd0d2c99eb5ca666512
 SHA512 
bf5714a1d76e911fe6b45516b316fd8091f74873267795119f166517a52bc3ba738052417d3e9a10f2b30901f86668a92cb563ca51cdeeddbdf863183d7a5f40
+DIST firefox-128.11.0esr-ast.xpi 508570 BLAKE2B 
3e4187cd4caefa80806c1d9c5e40f9f719d63958e3c591c1fb48f3ed7a89c0d18bad7dfdbbf5ae733b723fa3049e44e39e64f59d7a0e5770d004e6bd2d6b22c4
 SHA512 
1e3ebe4a9c74c75e0d9afa2af8e7e0a78ef6bc0e204f8d90fa93fb1f98fad39be235b09f91479de820de4f5ffef7304fc3dd983bcb5103d197fc34f96a7616e5
+DIST firefox-128.11.0esr-az.xpi 509830 BLAKE2B 
42eb0250a76091b37b0b404e16df09b3bee038b2f8276665480e7ac0f828ad8d84183e0e04aa0ef94c83bf5de235965d36aafa3c6f54fd1007e67d4ed468302a
 SHA512 
c518e75771b7aa999fb5325a7b6bbf049cc4c745f85011b27624df1d965d9dc056664c1e376c271594117de9e6fb1ba7efebcd6f92db616cd966fcd8d46405e3
+DIST firefox-128.11.0esr-be.xpi 748087 BLAKE2B 
a1c1215a87268179e99fb6c7069e4dd93f21de1e6f0f3f2d1f13d25c5e288956540c629fd5950bdf09be2e962ec5a9781460995c5f749e3b5bcc41772a13cded
 SHA512 
8f56bc747305e63cf8fd087e11a9950b91521d0fdec8a9ffc31e9036d27d4e1c29726b2d0d9e0e194f7ece35c9b79a34354bbe0ff271a4d1378a25384a502431
+DIST firefox-128.11.0esr-bg.xpi 672059 BLAKE2B 
51339b35fb53a5f3063ebc9b438c04dea850798cb99bfdd8cf0027997a88f6daec2471e7928905ddf36f18d60e35aecdc3827b28753dac07ead4916d2232b53a
 SHA512 
c4a247787693185d0e04b95f590e1f952c4809207634fff063f78f2adb0a7dbbb4442ae9e98468960a3f8d0b1d6a85253b97db07cbcd3ea4c193f8fa86400ff7
+DIST firefox-128.11.0esr-bn.xpi 624740 BLAKE2B 
87c400ada6d88e0b8b67849027febeb40f771e53c669ea90393469b8c8da0d194632cfbaa1edce3888afce3ecaf93e7afc99bdbccb8681de65c716dfb9caa9ec
 SHA512 
cce6d14328117bf040fefad12b46d94aa370864ee342d09c9ddab8e08f8a1f8bf1ff8f2c87378a834ad19361caa9c8beeab5b375bc22cd173cc59e03a3030e41
+DIST firefox-128.11.0esr-br.xpi 598744 BLAKE2B 
f70eb975c8fa31ea95cbaada107e1ce2ba58b4d4d9ffa4fffbe5127488664f92831f4990325c4cabd0872bbf211b51a20cc2b924642f26a0c65139a0a5518ec3
 SHA512 
1de468c7f84f7284e016ae10f10c6747f943261c63f5f1cd192bded39ccb38379058512fc6e1bcc7dbc7a334d8577d294825c1000a7e00b01b585ed267b3a3ed
+DIST firefox-128.11.0esr-bs.xpi 566001 BLAKE2B 
17cf1d7efce9a208c457c2f2925a02d325ae4ffa935ce686e269759d47be177ad9228730c09bf9c2d6e0b1ad3dbdd4ab2527c1a6e8fb13e6896deb7e8b7dd563
 SHA512 
ed2ffcc1e734defc2d5c5cb71cca9736fc6e7200671ac21b60de13fe9dd83ff064b949d73f26e272a2843eecd029f502c0730ee38b7331ddeca51ec0b9d5624f
+DIST firefox-128.11.0esr-ca-valencia.xpi 561161 BLAKE2B 
8b6694c587010299e4fff1948c3525fa186a3fedda906ee555736ad4ef00880a5720bd8b54e769f927662730bdfb67f2345ddd488fb2c5785cbced0b669b1716
 SHA512 
ece86b19da7f1d528c78880ccf689e21e04488bebcaffbc0653bd070c440fa95eb0aaeecbcecd64585ef021a8144cbcd216da6889e19ce0923bb98797c5cb02f
+DIST firefox-128.11.0esr-ca.xpi 609960 BLAKE2B 
6eb3297a9ab80c84b13d4221e300e59bd5f9a7f00f480191d3c9fa8f59fa0c4cd395c969ce2b9b7e6c3d448300961676541c3c71d9de101493d782fb22ad2ec8
 SHA512 
908eedbffd04b93c193e96c9062204f0636b21018ffefcf40b4c009aa6a6f9c2deabdcc0f4523d7ac7bc99533719c5a69ae8b5b973cfe5a36b9472191ce26f80
+DIST firefox-128.11.0esr-cak.xpi 601483 BLAKE2B 
716cc8beaa267ac27f08fc9ce592971c9c7a4146895a2500d4ca6f001294bee3471d44631866e0dcedf5ada07bb44b8403e21c468bcf70a2c729bb667802aebb
 SHA512 
3020f8fcce6858bf5c4f70bbb092fbc037121d5aa824aff617748e18554b1596081524c4f44afd34ee873ca0fb906cc1839795b44b5f86aadfef51d965ef1256
+DIST firefox-128.11.0esr-cs.xpi 690633 BLAKE2B 
268b67eeb84615bd70cc9236671e0ad7b6b7c8c526863ea25e4ea82de18589b0866a4d93a7fee245e95cd9442c6e7a7d894a3f2c4fe5b53e250a1dac31ab3743
 SHA512 
357d99e358814b948aa02f076014948330fafc9f1803a7747d7e89b061d2f5088f280e447d685a30d741acc3b1def962c690d3fb1af8d794cc42d05c44ea0ce8
+DIST firefox-128.11.0esr-cy.xpi 650603 BLAKE2B 
2bb7986416f0e042fc9810bea033b793b3fe20766e3b5043a7d3f4a49530a20e56f25ad274737de7d82cd7dd419a49da6d2a76f98ff4f0573e5e68cad12192bb
 SHA512 
1f16e221de41e0989a84338e20285b66b104e86caae88902e56c2adbea80ac56badea5bd3dd85eb37498e07106186a3a08dc10a38d1d28247394983ba718e33e
+DIST firefox-128.11.0esr-da.xpi 638633 BLAKE2B 
dbfb22e2185c452796809028cd1c98a2b30d34e9ac197fe467e3fc1d22028b7e3aa6eb64798256d37696d7b50abfb242a6e2e58e9f8a006b258d6d58e0eb1870
 SHA512 
f5332f2d3f35cbc160f30f630f875d7231c5a63d143f260207995bf70f2275fa77dabb2248edb1c25498a922ca4f8b05743e564c1d7216b6ce46dc7fdafea8cf
+DIST firefox-128.11.0esr-de.xpi 663133 BLAKE2B 
a935ac10614171bdf1bc51bb3a3d78dcd6a1c4772138b9440a30881abbaf436cee24e71f1ba6c119a0915dd38794c75079697130d456470917e39af9e4a8e7d2
 SHA512 
70595a0ab3780bfcd248f9999b3eccd7da8b4bdd316c537939bfdeaf4e3d054f68e40474a5d24cccdf39da2db2bab7173c7f8a3d204909ca66d374f36c41d615
+DIST firefox-128.11.0esr-dsb.xpi 679867 BLAKE2B 
ba41640c5b6d4ebc2e967810dfb2d2c87d6bf9f09acd2094d28fd793360f16fd320be065d1fcff37bed962e376e9a3910f66e9c60fb9b52f4bf2356ae8ce887e
 SHA512 
edba7ec3f56f95affe155500795d796c850fb20bfc4fa9215af42c81eb07b86f3cf72d947f3f40df73312575a4af8980027a2f97a50064893696ed66c2741b34
+DIST firefox-128.11.0esr-el.xpi 764557 BLAKE2B 
c8bf2cce62e12250956dcf0168747744d91e7728592f016a95c29efaed0427d503a146bceb5f80bd69232374b1de2c328b7fdbd0f98a150d08ec13112d213f2d
 SHA512 
04846e2a39d76705317b45134a717d7df4c27c02f2bd2c614ec3d3f1598c35ea8ec7cafe9cc22ccdd478c87f1b97932ea25e0f51840db9f1524488972078326d
+DIST firefox-128.11.0esr-en-CA.xpi 610424 BLAKE2B 
5000d2fb4558b6d5cc908632b46a814b9370fb5cc746b8305a71fe1ab489cdd2ad181008a8847ac2bedc7132a91c89bbdaaa8adf4df8d91f2c911a79965d60c3
 SHA512 
a12c66b7bf222c3a08c99b9dc191c0a4d35c95db0a73fe6e24afa2a37705c0741dfc267870398a3ea1789d4ef9e72cd828f373ab2e5f84c685eb69d157550164
+DIST firefox-128.11.0esr-en-GB.xpi 610787 BLAKE2B 
26f590d820166f637fd7c9fd6e21f7a17c78eb94402a8cbe97c9adc36db9285f2a5bcc36de70402ab15a23d8d3d4f66c86fcc58b68d7bcdbbb87b52155a6bc4b
 SHA512 
f6faf075ac693b0fec676dcd0958e640bc51a3711dc7042ebe313214e0e8008ac52f0e0692fbf8b5a9b8a2ddc197c3301c26e71d23f38281eb895ef87b944a0b
+DIST firefox-128.11.0esr-eo.xpi 643532 BLAKE2B 
f011f97a4536e928a64af3d8b4e0577ac4903390f1e59f067678be7c1a3dbeefc62a0ab82aa8185df3bbb136be0fa5b98bf0f76d518d161233503f1ca361d7a9
 SHA512 
9a556ccd28ece2afceca2146731f8a9430d489dc1e03feb2daa6a2ffea5ccaf657b210d04025acc27d9f25efef6c722fbf8f2cf00a70dd611545434ec5d2841b
+DIST firefox-128.11.0esr-es-AR.xpi 655629 BLAKE2B 
dfd26e66ec2e9a55405a82133e51d9c816d87b944193b2b6938b7523b0029d43604e3dfa5c9c0e4b5618dc8552adbca583222d073c1d0dd174e6e63ce1df8250
 SHA512 
82e240ceb29a4ef47577a8e5a53a4444ea497ed14c6df49659c620698c6d5c3497bf1a3dce588eb0b3bb7b7ec54bc92779aa8de4c593d0dfaddd5d5b70fcb2fb
+DIST firefox-128.11.0esr-es-CL.xpi 656067 BLAKE2B 
d43dd2cb3a7aebe5ef3d0c87ffc0c9df73c06a51d960eb610c2188b80eb85d4256dd2655e8336ada41005fe93fde7b037d2b21d2fc6198bc13efd706148cdd80
 SHA512 
5646982caba0d641f709f6fbf49d90988a0bf35faaaa6ded22164f424c0a10d0e8a62a0317e8c1d1a5e8fd47ef27ab2d5f0cde2c1a3f663938169ba0600a1618
+DIST firefox-128.11.0esr-es-ES.xpi 655189 BLAKE2B 
9575f2f008358be08c9f79ee5a5285571e7be1cb20e65413f00ea07507998de38565af272b2de30a2dbdd51c05276b41b7f17161349d168a74c42da4fffc036e
 SHA512 
84fefb17f472a221ba20f693ecb2e4d5d153715dd574a7c82311d754e6683fd81dc326e7fe28b6d6659801ab93cb5e26aa6459d01b0b2b4cc9d455a95fc66f39
+DIST firefox-128.11.0esr-es-MX.xpi 657404 BLAKE2B 
2cd820b3bda905932d5f5ee401c58e53bb97b78fef0f912f023a64ad6edbf05330abb3256fa0fd7ecdcd293bd584677bcb618f538727759682702c9f33f7f16b
 SHA512 
9fbc630b04e13d15cc95a5a383f5cfa1296326d79d29fa90c9c5e1f99005ae594c088f46951b54fe987b0c4cf33cede7669c765cdc06e84cedaa9498577235e5
+DIST firefox-128.11.0esr-et.xpi 556262 BLAKE2B 
dd3c2ecfaccc13aae92be01b830b1560f591caa09e6657c48d7a1ea3b680e9d1fd3c1a3a1c502d7ef0a3d6352940d35718238165657aa5cf73c3c3c1d5918d3a
 SHA512 
ca865d8125a44aad3e0db87a425d6e66235a2efe1ce34d6cefb1d04b7de8ef8f4d2277daa2bf4961f4dbb4bf218d9dac05f2e7ef39f59582aa1c556651f58e22
+DIST firefox-128.11.0esr-eu.xpi 623950 BLAKE2B 
801c29928c38050788bda5a129eb24f5992ec0d73ca4ea1d203f888b09a87413fe2c9de1ec01bca3818dd7f6860d6f1c755746370d9093384561388700a6d6be
 SHA512 
2b8c1a7845f755c07effd893b600b62d93144e86847cb63f517a1dbbd532f85511a6d6e9cf6c82ce11a7320d166e9c942fcce08a2922e2b7acaa439d6c53c81d
+DIST firefox-128.11.0esr-fa.xpi 631023 BLAKE2B 
8c2e81fdd0f512b52b243e09002c66fca2f0556e46d9712992e729f64ecccea324d4927ddf269ec554919feedd493def072fcf5a50ad883a47968c7e994a9c18
 SHA512 
6ad4779de2a129ad54bb5ffd9d4a54578afb2834b8870e8875ca5db62d6d076427a3cecee6d7c105b5fb260bf37d474b8747bfc5c96e44be86a9abffaed9eb9b
+DIST firefox-128.11.0esr-ff.xpi 497843 BLAKE2B 
13b14667856446c3f00916ba19ae688e8c1a6253570c5aed5acbf6d54aaf7e5da868bd2cbc7e909195333b01d52003fc160b9b5caec7c13839a2c9737eebc3fc
 SHA512 
1da1e01f4a8b90c9b2f4dd6315e2f83a0a545b26e78969ea17ba8316292d49e94b269c7b70fc59384bea23a8fae5e879174bc12ddaa456758426490d518e479a
+DIST firefox-128.11.0esr-fi.xpi 633884 BLAKE2B 
be339c8646a8a9da359ac0d33cba2ef72ba001662670afb3cf259cdf3625d1b54dca4d88776e77b8eda4e3a2e642e8c3de5071c6cec0554a59019e5ae82b8e70
 SHA512 
aacc3f9c76132d447dc237282aef86474746e9aab4ceac01fd1ca759aada72734158cd0d29e49c12796f1a3dd3788faf73ff1138c6bb68402e4acd3dc98ecd4f
+DIST firefox-128.11.0esr-fr.xpi 669625 BLAKE2B 
f71763e946bfa13aa8c7abe90bcfb230e906d22c8133d1fe0caa2d0b37a9c16668d6bb01b099bf4261636a188186cd2060a440b89f656f598d7f497f3d02c6ea
 SHA512 
7d8040d8ba23c9ff1ee3076a03d209aa533a74da759e94ef8a0f76c270b92fb3aa92b025d20eb65f94e15a14a2fb7cbc4a339b78a16fc71e264544642c5fbd5b
+DIST firefox-128.11.0esr-fur.xpi 651570 BLAKE2B 
245f452f4f8768bea70ee506dc74e142c7338e5a149cefe6a0e80857c281ce2f94113542de090fce7ff2b6bd193e66099015d61b9bd4f03a9512b891f454ce7a
 SHA512 
dc5d880ccf1acb625d9fc93c0505fef6c3d827117b1997640e4ef3af7a3411011f550cf2dc62e3a9284e4b7635cbad5a32a73f305deaf143f22b3f2b7ad85163
+DIST firefox-128.11.0esr-fy-NL.xpi 652080 BLAKE2B 
6d07b7fb12ce286a25953b4b926754f96a83fe38d4c123f69886aa1fe34c0c46321c1db69fe5ebd79fd33a4c4afc0be149c56b35da662208501ac2fdd906d238
 SHA512 
081019efd0d53da3902b17abb5422d0715b18099ea95adbac918c461fbc8f7ce73bf3b957554d5ad5da7ac0c6d819ccac921c23ff9fece52baea171a7875f179
+DIST firefox-128.11.0esr-ga-IE.xpi 490833 BLAKE2B 
f7b38b4cbf6aeca96ec84ee0bd2f3e292a79861639d633695f46b6a1e6894ff8ff47e6db2174e445419f44e715d7a21ba787f0e007241b3795059e7be9d754bb
 SHA512 
d7ad72c4acd0b4a20ad4d1e99eafc66896e7490c27d0556ef1b84ed5d500afdc944807d71404b0be730d7f5f0990be142894a694cb6650f1bce6aba07119380e
+DIST firefox-128.11.0esr-gd.xpi 609614 BLAKE2B 
af6b1a59a44ecf07f6db76d2f1a96d29f387331fbaad3e4d48df848a3245f334a156886381c3246189accc0f2a537c619aa0e19e40c761480bad146d5a33003e
 SHA512 
c356b86e547ba2551bc9fff7fad281f8f65ed18a3226c52c5b6eae9ef1c24138e7dbe0c9ef981733d401589337deb5de7622a39317b820365cb4cb6c1ec8792b
+DIST firefox-128.11.0esr-gl.xpi 615553 BLAKE2B 
7374943996baca5d02b356249cc0845c63e48b938932c6ccd1bc1c0f1cb8b0d4b505b8e351f4deae507cffc6636ea54ca796165a1564e06d3233cb721f9f279a
 SHA512 
20ad3537aba57ca81f9299d015110be093f59ef890a7aa35103a5c2c7b2984ed0b854455814ba42c7b4191b98a719732e263a253d43c9bcdfb9b8ee2bdbe0605
+DIST firefox-128.11.0esr-gn.xpi 659907 BLAKE2B 
4a979fa4f8e4182da6dcb0e78cc11abe94ac3547690523be51deae67d982a76805fb281b5fb77f8843260c50030319431aeda83968ff5831c841c73f11a85d4a
 SHA512 
2488189e2fb3d3b3469b26d0f0783258a4523b5c0ac3a53cb42086eb0b3d23fc0912fa3ab3d05c3363ceb4ef82311fbd447a6b6d14ee29993f1f099ccb1088f6
+DIST firefox-128.11.0esr-gu-IN.xpi 552327 BLAKE2B 
3d3d8315492e1570b69ff441314b72c3d1f02d18b9c5afcbc936c1d84842165942c744240ad1489fd99ef57dffa0f6a7c1929073c6a9495fc47f924b07ea9aa3
 SHA512 
fcda0b4cb707898e56442560eb339fb266d5e376a25f3808d3167a0c898a1e86d945a383aa324ff08e7f5a8caaaef4347d27f1f4f2b037b063a2cdb79af1883c
+DIST firefox-128.11.0esr-he.xpi 659482 BLAKE2B 
08d19f8c8810d316c21e4480f6cdc2cca30917f7b83b6c94f2034d74b9731b5f676db0717375087d45c5cbde8bf2a96a77f59d8d5fc7fbad659d9b0154b901b1
 SHA512 
f6720f0beecbb99a1b9ff9fd55e93deb89cd723a69f02f7037212c21bc48557d59064c1a4076dc58fe42efd2191c2d5c020c71828aef13acc7d344cd0179a54d
+DIST firefox-128.11.0esr-hi-IN.xpi 578983 BLAKE2B 
2e863ec8d583494ec9196c421037e449ce8795db0e721caa4bff8ba05740e106036c8e354f56a5eb660040fd708e4f20b53a4dec86f97a787ee0f3999df343d3
 SHA512 
d5d072c189f9725ca33bc537ec6ffff52fb075b2ebb144a807e562969033df52e22b2e5e522aefd3b9869c10b6399e715315cec3f498406181768f004097663e
+DIST firefox-128.11.0esr-hr.xpi 645458 BLAKE2B 
94c063e84e99b98370f0358c32d687101d4e142ae4520b7149445900f66453aa61de95ecd63b9bf69df699f02e28b8919ce440b9253c82a9a745af37043c5b90
 SHA512 
83a267d519a658a0cdc88083099b53ca5fbfd46a2d361d5355bfcc165691f3767372a9674d1307bf04bc230f4e0cadebfe19972032e7f9ff8d366764bebbcf21
+DIST firefox-128.11.0esr-hsb.xpi 675854 BLAKE2B 
214016a3b8ae1b8d0be8af7eaca2235382a078bff638f36c4544bad00e51eeadd1c7cba44948efd189ba80dc65bd097f7984e9d68ba4918463923aac50e67aca
 SHA512 
fd64835e505b56aaae822c95bb47bf285502ac4618f8898a52e3a18846a827880ad6045080b73dcaf079333a2cac1b00365f7e64915fc4dd4b718db296bcb858
+DIST firefox-128.11.0esr-hu.xpi 679682 BLAKE2B 
ae91f757280ff609f1790b0125a8f9a699a8080f46c87514accea141216bad878cb4716121158f7a9bfedc0fe1e01446746434aac49c549a05a355a033462137
 SHA512 
04c41744b1c6c1b791775eaeaa26997d7303bac36b8557e82a21a91651999eae1c6b821519ccaa4ef6fde7ac782b4610564eb9fa1b306be1ddf7b13abeb42a38
+DIST firefox-128.11.0esr-hy-AM.xpi 664453 BLAKE2B 
bcfe491f458f6a29ac838d2a2850b109a6aecb31124d22fed946753a9fa096359d1140daff899285b13458ac02e039a95026088d8c79a0f659416ea52605d4ca
 SHA512 
8ed9da30f1dae2ed566a8c13db6ae60f06a604f1c85cc347c052a8a31ab01506d4dd4e5e3945afc923e874b16ff928ca04d9f51873c87825cd1467dfe72bd181
+DIST firefox-128.11.0esr-ia.xpi 637955 BLAKE2B 
96b0b7e7044cf33f24ddc23c1ee9edb3bbc8f81e100316b83996b7a7ba1d97c86963bf97414dc679e2e428530ab37d9b257506077acb3f0a1de1c1682612016e
 SHA512 
0db908273a203b0665502874e52c0b409c7adc27e854fd0e3df42689fd8d3f7788ece2c16adae263f85dc5da66a7233e24df8cd62840a4a5d94e1f36f6f732c5
+DIST firefox-128.11.0esr-id.xpi 625996 BLAKE2B 
f70b49ce15f5a525efac1420400698e3cc2d1c2bcf437dd13737f4ad6a3271e626f8ef0df6d9924a821169439525e5344acbb7148762e22d1a9b0ed773f18e34
 SHA512 
45c461325c59490ebe9bc47faf0fb8f54b1add23cd8a5ef962e2b930c7f42b0d91e77357491f43473c3bbc3134f91b81fc53daa334a316e89e78e08061a678e5
+DIST firefox-128.11.0esr-is.xpi 646732 BLAKE2B 
889d11ea829ae01ae9cb08e9376f48cbab43bb3ecfb05ccd3bb578761d1c2454547151f2f99b61f2a5b3ae2ac63ef2c1fed3d169933a61583faef4d9b9e20ae6
 SHA512 
a2aefa17459243e375446a2f9b6c304498fdf717cddad52cb05a10decab9b812a4adddf48aef4c6e7aa3b57b9962c834f7568e82158ea1a8e66b7e96e8d863c5
+DIST firefox-128.11.0esr-it.xpi 648858 BLAKE2B 
78b1e22fa8e1948955cb981e55d91ff435393604c3ebbcfcb9649ff750bff4d00984e2ff1464ac20888b2ecfd6a32ddc7b21fd0da4389a4ad771fe3c18356439
 SHA512 
e64001512a3fdda5beb00282c3a39ff5f22d311ea1f4fb8db762b755c3f2ead110e5a54ee2ccc26e2392cc6b2918c947824446fef84d8d71b2eee41a000720a0
+DIST firefox-128.11.0esr-ja.xpi 704114 BLAKE2B 
5eeeb3eb0471ffc72a4b2bc60903ea69dd3ddc049bcfb01462633c76a72bfecd0c382b9aeac106d5f2e90cbe4f62a4b807164a65fcf2d49d7acc04aa6ba2700f
 SHA512 
b5b2b317f2ad72573fe8c28c02e6ef38df15abbe839a6e4b4a7bfbe0d2c759e7605c52aed42bead9e6c2409037aaae6a9611bd4147fa426341029e55b41abc82
+DIST firefox-128.11.0esr-ka.xpi 714506 BLAKE2B 
aac311e03c2791e6dfb882aa3519256cb0eae681debb03086c91fa24265039d7249ee531a78758ef68959617f7282ea41c0429127dfde48364add7348a353ed8
 SHA512 
fee429e94679d8b6c2434440583718966433e9ea7366c03ebdafb8a259ac79f52bd1f16a42c51430c4c31a4ffccb244f2ec553d03ccf1e1dac05d75324a1dc19
+DIST firefox-128.11.0esr-kab.xpi 626277 BLAKE2B 
ee32b005910a5ac631d5d1631247c5a99538dd89a694b68d0035db53085225dca78c2e38ec028e7206d5de9e040da43129d2f12327447c7a827429016d426ccf
 SHA512 
5afca22a950d5f5f23c206da17dcdf95fba795e99adbfa41987189fa34d4e7a5cd6cc6663b73ff3934b0e40a2914526b9944a1e3c8af8be559574e86c084eab3
+DIST firefox-128.11.0esr-kk.xpi 734549 BLAKE2B 
88479c811229b21bf5c72b37afbdfd1258d26b0e4854ff41879b912a695c385561519a74c08b419295b786c9385679ef45564d936680dd04221226d3bc4619c6
 SHA512 
8d9428b7447bee85acdb96abae73fea6b1aeabbd16488de1e3c760a129bfb06ffb75b514fcd0fd7cc99da6447f75a27edda5813f9b5effc08f81927d1f8bc8e7
+DIST firefox-128.11.0esr-km.xpi 543171 BLAKE2B 
e0d08420ca6a0721a3d506dd4f22ffbd84b665df0cd859f03560d2cd43eec3c897b8a0f62fa44c60963d07d9c398368e83a1e4a6d9373cac58335e6c2da96eda
 SHA512 
056e5bd1299c1e2c53b049a426ea3227c308b6f35477cc04bc650d24a98ef2aff30d76adf1b2a5988f4d0e314c77067616dbad2a1e631c42b03d9dc43968063b
+DIST firefox-128.11.0esr-kn.xpi 520324 BLAKE2B 
029a98a727b5a30207899173e122d08e91f91745ba871512e49e49b5cb700e380a6b9f26b25734d7f05a96a42532b934ecbe645ee2b98834b6d15435df329888
 SHA512 
c4cfa01cb20880175946d87913d93085684c2b6bf44c13c54fe566836403efc7d0247208dd2580e75dc497998c1ab098d7df43ca60385729dcbbb3a223adc808
+DIST firefox-128.11.0esr-ko.xpi 690554 BLAKE2B 
75d21b4bc08442446ce2641b1ce8ae72f0c1a77b2ff319e4ce9ef1523a4dcc563bf7547887fbd43555a7c2c97a99f51e9fd203ff8f74e0be60a464faa21545ed
 SHA512 
c813e69c30e384e4ed035c54623296f9ff9314763f4d7c3e8207aa6f672ecf2eecace04f9572b1f06a3ec63f5de324886b6d89b0859c593d3d7d71451b19c857
+DIST firefox-128.11.0esr-lij.xpi 506294 BLAKE2B 
5c639e47ea76755b19893420416c2608bf53e2c7c87ed6d83d3683eda8baf5971181030b5166dd6a0658143728c99abf82e569e43450219c321fd5ccf5ae04a2
 SHA512 
20c14b23da366cc7784b828991619c062e54af65b8cb80603eda9c6d2ab92c864b8c2c717dae40fc0e57657033ece0af1332706c55e4b9b23f37eded38961812
+DIST firefox-128.11.0esr-lt.xpi 585991 BLAKE2B 
1743945240a75fbed8c97bcb0aceafbfa23c828d53d4190e077ed26b446a8923a77a9387a027c878860719638c8a8964631df5038078e32adc80a4cf1da1e4cc
 SHA512 
f0b2fb1cbec10ddace4405f5350e7da4dec8ec5e307586122aa7ec3c114272f2aad51c7b35b79bf039a95b01dcefaf2263dab12d603b0a35baa84b9ff431c544
+DIST firefox-128.11.0esr-lv.xpi 595103 BLAKE2B 
e3bdcf4aaa7fc66d708c1ff67dec48c32353414d812205d146da7999c62efb6087875b4bda8413f6eb66f5b1abb9f0cbb07cbacb5ce41f4fff20bc236d6adf93
 SHA512 
370093d24038c44c623036fed0a55c9cb3c03db7a2def80a159d0d3b5c91338a5f6d063df93f9cbe4e881a438a295cc0a42e966451b290171bb394338ab5097a
+DIST firefox-128.11.0esr-mk.xpi 511069 BLAKE2B 
649ab333c31967f1849b4344fec427887815d6e5f25a0ffdef95b7211518175aa2bcb45089b35343febb50b92860653f83bf7ad2a29c77d9dfb27f090a5341e0
 SHA512 
e9efdb74379e72479b8fce1d5fd7ab7353733aefc83f84850a8b5a81a518038c3eea800da3d7dce77ab3133d0eaed33893cabfe2a45b83b30b289bf553fa2a42
+DIST firefox-128.11.0esr-mr.xpi 552814 BLAKE2B 
626117835de951a111b4e7f6b886ae3512cd9a93b5945766715f8dce77a7332d718971d3345e5ab77b1b8f2a9cf61efd13d5cef29f25917899043668822efe91
 SHA512 
1a2b88f69b46f6680fd2fb748848437d4df487c4e42c5ab474a513d977e3f3849b4068c1ad20683762644a6a929db898670b00ee36d7ce9358768d19933ab3fd
+DIST firefox-128.11.0esr-ms.xpi 477970 BLAKE2B 
48d65796e81b78a385340f2be43b1f959061cbadee70fb7d4b82b8b282f917c20f5cade00e953883eea3da2bbdf422bc76339ecc4514410bec9c379f2b1c90ea
 SHA512 
74ba7fb01ace9f2ff898c05ab82d2da4bfa77c16d0852b810027562617bb26e603557f43f6d0b532270f2aa3296ce4b5647af10a0435914aba1c703b40c7b688
+DIST firefox-128.11.0esr-my.xpi 540062 BLAKE2B 
c5c2b598a7f36f25569bc41303fb5fba50f24127ef240519d62fd41c4d204b90aee4d23065a019f141c51e62dc70a9d9cc9750f74e38a7b7d01002f3f6b19c52
 SHA512 
a1652d0708eb0ad7c0c8ed3aa8415ad87966e61b55f3b5eab66428c379a2d0ac548155bb97d775e3ba003bf4bcf9f3b07bc484f1db6cbd02478428221b4480c5
+DIST firefox-128.11.0esr-nb-NO.xpi 627694 BLAKE2B 
1f4fbcad680ce2cbbb7bd29cb439de17db2852c16ef6ec6d97d6418f84fafb28cf93e1e1e06b171b9acf134e1e28e20f965f16c061e315df803a27411bf5d829
 SHA512 
ba872efba70b1d309d8744473f06ff39976148453983d751c9a7defa8d8cf417f22f623eb4b4019cca530b09af3ea146fbcad51518fe11b470e538397f3ac449
+DIST firefox-128.11.0esr-ne-NP.xpi 543830 BLAKE2B 
fc3fd3238562a1d432f39cc0bddca4f7f8438d06cba13d3f12ae732bbc3a2469c220b05a24fed84cb0f1fa4be19411b32557720ecb0a7c8edf800de6bf7472dd
 SHA512 
2130bf62fb9fe80b3408ad2e3d9be6a1748c92a92eb50ff69918b451d93cd9a75346ac54293a97065a665923dbd4eca2ffc59774a0397b84ce41af98f296fed9
+DIST firefox-128.11.0esr-nl.xpi 645192 BLAKE2B 
8f4ce24de8fb4d32297995d7766f237897dd3ce2100abd6698b1beb2ccc6ab66e9d9b60e33dd05e103c8ad8f3b8ddf55bbccdce23ba8b4583bc917918b2d472a
 SHA512 
0cde3746fa1ac29ec8d7fe7305d006da8cb2fd87e75cd71d1a86ff978988b49c7d12989e769751bc34d42671a5581187a5f14e68b184021860ba783fcd90a5a1
+DIST firefox-128.11.0esr-nn-NO.xpi 630289 BLAKE2B 
82fe955f5ee25c6556e9e31b87a781c10f5dbc97c75b6098a1724d56e6ffb7caee68229c10861a7edfed1dacb3f96741d2a2a62c8ee2997f8c8827dd16075131
 SHA512 
58aaef4bc7a24c01aab9d7e65e135da4a500f7ada8c84be65f676b00aae3d4337f6fa2d255310d541f508ab8e91ae39a5ea62767f042e503aa79161c2afae7ea
+DIST firefox-128.11.0esr-oc.xpi 626823 BLAKE2B 
9084a861171227798ed4162fbdbc22812bd271b755ae7c68ba00da4c06d82916379f5720e2b3d3d6613f339ab7f684563adfd00768a4d25af6c5787100494173
 SHA512 
6c0cf54e7362c931a49dbe0d98ea044638089ac77585cd6e1dcf7d3ac80a3cb7088afffe4854117bd216fb789b3c61e9537b01f89c9d3365d119db548d51e3a2
+DIST firefox-128.11.0esr-pa-IN.xpi 726725 BLAKE2B 
255a8f5c58eb97af8272790fe3d5cbf801db25423a453b4bc2ffb913455b5d4aba250f0007b6cb3620a59569570dbba900ec1b759687dac64d2695853e4896c1
 SHA512 
28b9fdb21fd3d9609072e1ec2f13dbb74652c4dab879d1ca5abf2733df094d5d27e3a52d9b26b7741d3113476945d2a006e8b7559b307fa59885690c85edf8dc
+DIST firefox-128.11.0esr-pl.xpi 669248 BLAKE2B 
8d74fa17cdb656a9c68ccd5c83f74b4656c9ffac148826ca959c6c326217a294aa3c785f3aec19bea9b2360f2b98c847b2ccd22ac97835cb05bb6ad06f208f95
 SHA512 
aa6f53df213fd2bb68badfa0d7b9e74c5a4d5e1491bbd41411cc3ec4014d34081baad94fc98b6b7eb8fb7de8779a2b9fdcbd3bdb716819591c6c67d92b6691d6
+DIST firefox-128.11.0esr-pt-BR.xpi 650222 BLAKE2B 
b810d5948d92aaa680877f9c4e9e2f642f2f138cd06d2df3fa78bcea196aced5203b1cada3069504093a8b29f17b325e6bed3d328795a4db882a53cbb0d8182e
 SHA512 
72ea1f4e33e64cb35cdffb0783eadf0613a2c89949c7b0aa428abed4f120753640999642bd8f0f93f589004e532f023fe01e7dce6451f958f52b545856596645
+DIST firefox-128.11.0esr-pt-PT.xpi 654865 BLAKE2B 
8c616b4aeb320c6decb53d10bffa377bff6df5a793b928221339fb0ea8d88f4aa84678358abe972150d3e074d02f9b8f355fa73d0bbf806290f5f1b4226ca6a5
 SHA512 
a05c92a45d9464f7c9ccf24036e133f4dae900589461ade80de48145ad1fb7c7beaf58b03ae789fed3d82e7476d91352e858604be681c145f0142fbf6bc253f8
+DIST firefox-128.11.0esr-rm.xpi 646702 BLAKE2B 
0b7afdb0bb47897f6e0c756b8383f00045272c6dd86206c786917fafb4c16eb10a5a85f8352e0fd9d55190788e6be40b7d0b4b74153f237b72d1532c9d8720ed
 SHA512 
e857f75eff78bc034ae063a46c1d8e6bfaec5c58aa5d2751fae605e274ae23ee70d372b0d3a074e7b2432db48af54fc0a8e7a7281cd539c9b664dff4fc7d7e67
+DIST firefox-128.11.0esr-ro.xpi 562864 BLAKE2B 
71edd9bf05d2dc048ea7cb475ffbf0e6477706272fda9bc273c313bb0abb39136059c6bc909addd59609a2b3c7655f5074332b321ca683eea48765871b6d04be
 SHA512 
74ad35d11ee3b4585bdaf8aad37d391c71ec26b34a38d0ece1b24f563ee6190dff74263103a346363913a9f210b0d7811d93fccc7e987c43292693bc922cf589
+DIST firefox-128.11.0esr-ru.xpi 753068 BLAKE2B 
b80e34161f759f34aca946935bacaa33aa15e4b2cfc31fde51fc64501e2aa89851a817db3261b84971d8732fd117eb031e6ff041e21107b3c38415c73bbea768
 SHA512 
7db63e075cfe2df73e51fa90fdf6c9fda6cb3d85a02dc8baba9b7b3fe20ad338a9effc8dbe1a83586913d52c096191697f97732f2dd8ca833200d745c1f1c3f1
+DIST firefox-128.11.0esr-sc.xpi 604292 BLAKE2B 
ad09f8fe0bf42869666cdeac011fedc9bb559efe670c82cf839d0fe16b71dc21cb9b3a695fd0c4a81dc14595cb7835b70b3a642f30a210c93041ff7d435fe5aa
 SHA512 
964fcbb9a875668538d1e5211e33a207897d7590423fe7d7fdf21417f1939dc3b80c53f784795725caea3cf489e2f6111b458f23329745a9f8f202a2b2305301
+DIST firefox-128.11.0esr-sco.xpi 524667 BLAKE2B 
07cad029651ecd2785d87c2f1c25c6e1ece316bdf67130d5fcaa7420873f86c20d3d9a5e4bb72fb43080fdb1b355515f0fe0dc889c9f27bad017f794450adf87
 SHA512 
e0b0379b0a5e878f04491615f421ede81ba139898fde905307bf630933d497d9f880633818d70415f246ac2873bdd8655a009a8b06bc0b5f22d0a1a3fe9d7b01
+DIST firefox-128.11.0esr-si.xpi 628202 BLAKE2B 
e4dadc2b49e308b8b9a0f68f89ebf6c18ca2a9e1c6fa11518677ffca8524706b8df2608f41c861aa094676dcf67b823e10db50ee2fd8bad4bc0ca4db2fdb9d6a
 SHA512 
b49aa9ddf9d55bfe1b4a12ab276c6ad7f5d34c645bf6315f3b62f17aefb000adc649a44a677113523ebdb39b229d0228e10e34401c2e13fdde9212fa7a1ca359
+DIST firefox-128.11.0esr-sk.xpi 682229 BLAKE2B 
71679e44331addc13d58cc182382c67efdee0fb1cba441c9e2072895025889821c39fc687e6d8287a063b0cd897d8001aa4d1f7614ce24a61dc9b30a1e6f3a56
 SHA512 
1254d9a3e4cf5d32988e8bd37065c16ac31526b9d185833fabd72efdfec996f9199083563dca05820b685ca2109e83c7bba54f40522acb9c8030c0f4138000d3
+DIST firefox-128.11.0esr-skr.xpi 726692 BLAKE2B 
d062bed5a63cf46d4714cff03fb9d99c3ebd4e84051562b2e9254df40cad0c1d378b115d735ad451ff4d66d587aa82788d0df6649a866ac039052ab3d019c76f
 SHA512 
da61fbdce3d6e7161abd6059d9860a358942d1feda8afb59557b89cac0f42c387bd7b77abf4ec35ef4f0892a3ba6e37d563902a91fcbfe45a6c74d363bc3ec21
+DIST firefox-128.11.0esr-sl.xpi 649044 BLAKE2B 
fe67ffe52f7b132c338cca8d292c98e07c05de72fca04e52557ec0c4652b48434ef1290db84e2056e088f8bd8c087519843bebbf8d8e4a11a9c8726c709181d3
 SHA512 
b051deef2d0edb03f9e3040a25d377b26bcf3227f61dee39ebb32e25625443aea5986981a0081d559313f3c8eb5a80269b4043a9a25690a22109ad733eb2cd2d
+DIST firefox-128.11.0esr-son.xpi 451686 BLAKE2B 
21e184159afa34c037a9e4577b9f56118b4e4974a6d8572c991c5060b9d7b6639bb3e24196a672a8ca3c55dfc413c936a587d7fff9665e56a25db65e4c7fd65c
 SHA512 
83dd73578836c048f50579c9d58146b18b6ade4eb932210ed2f082a57b3225dba41606e22ec955e251cf0a9064d22f9d7ae41190493936a01611c2748c3997f8
+DIST firefox-128.11.0esr-sq.xpi 665750 BLAKE2B 
1d0678fbcadabd432d7f6dd1da58cb5d780eebbcf6be015a07dcc4fd5d9f99d2755f02943958304f6fe91f6327c73c7225f1d86d72193bcc5a34617df5f8bf8c
 SHA512 
d67b308ad44af199bf2cc4a7bae3e4c320b39ce16ef5913f971580c838c332c076a42e1c35abed1dbf2afeb317dcbb87e79f1570d664b0fefc23cb24a6d7eafb
+DIST firefox-128.11.0esr-sr.xpi 678434 BLAKE2B 
696b5ff68adebeafd24a2c960d33a2fba0e0fb940741f72f5e5a2745be92be5c9f448c74aa38bccbb56aca686b1d04f8060e80e9f5f55205c62f328b690db580
 SHA512 
1f4b440b18538a2dc6de101b6129342acde289c8d04a31c99482c59b48ab1c1d358f8d04aa36959bea1c776f519ec7a613f86f3d2b6746d82ce1969ea1353c83
+DIST firefox-128.11.0esr-sv-SE.xpi 646487 BLAKE2B 
63d41a37f388f6dd541def73124114dbcf0e3bed3c2d3eb19a5b31e7438b9f70579a3448a84b9aeb48794af562f6e1a2cb800224fb38174fa185e98a36cfeb23
 SHA512 
ae02dbf040bfe24d9c28127b0d6e32110aa3d60d02532566e61214994df928f5e488c5d3bd4b347e496b2a9706a375274a195ccaa52af03152749770396f8310
+DIST firefox-128.11.0esr-szl.xpi 541726 BLAKE2B 
550a28a832fff23b60ba1bd90fb83f41204c8cd326ae0a8c3529f12d5a2b43d8c2ad521b712fd63798556c068b74fc090784e2fb943af570ad5c234066db5c8d
 SHA512 
4e32c3d246021f2a0af81c1f75b08b8079ada9e70a3f17b48ddf00e18f1d504b196403b622e8c74db562dfba92863fa0b2c9b55ad872aea1045043b98c0682f8
+DIST firefox-128.11.0esr-ta.xpi 530540 BLAKE2B 
314a92bb16914d598feeffd53ab998605ef55441210d34e0fbf76f9658a36a4c5caba4a9d9be3c45fba8dd116d771f4e534a652eb6c804f4d9f673818e48e376
 SHA512 
f319e1a492427b5b64500c0674c50de54dfd188be5403fe1dd3e36fa7100fd5eaf222eac8549bb6a4d330cdc88978dfdec508c41933ffcd88cab0ce447d0f4be
+DIST firefox-128.11.0esr-te.xpi 583148 BLAKE2B 
e5b165df982755584bdc19fd914fe3c9f521b5189b34102211c6554be60c63ad7e5834c4989e1903b2fe73019259b3da770142af354e1eb64ad14cc56720c09e
 SHA512 
4c497f51fdd0525bb16ca3ea98fa04750fb2cbae986219b82829d11d1be93133131dd153f225a059a252797c6d46ec48f15fb2ee6ceb4ca563df05fd9f87367f
+DIST firefox-128.11.0esr-th.xpi 728453 BLAKE2B 
fe9ebe8a8ce1ea1b5975f19cf6a640cfa660275426cc5b2ee0f363a78bf358e5da9ad4be0247c19adf13a2e3932041ebed7e1ad6796921040ed4a153810fb081
 SHA512 
8dd2c4660ca0d07cbbd93d01ebfb9f58df75e9f054d7eaf40a5ef3152246f2c976815d1113d51352614d71575952a7f71073f31f81fee9d61e200e7a8404d818
+DIST firefox-128.11.0esr-tl.xpi 546954 BLAKE2B 
bff7c81899737d623dff72438ae4974bf780bf5fa44881f2a20a6b6d35bf6d107f9bb4c6cd150667c194bf8d17e9642a16d8555513253d9c167ecb8081f3bde1
 SHA512 
86df0da248b7dfddf63327dbd86d866b8e82c78a949db74edea69291b8030534e70debc40c155bab67604e6b9ae120e8357ff4c88d0d2a39bdcc9c164108ea7e
+DIST firefox-128.11.0esr-tr.xpi 659458 BLAKE2B 
a4eccdf254b7a1e9bdbe25ccf5d03e3d80da1a998c7436944761a2be5b91285cb9ba74359affdcab535c97055b03452f129aa1b5f670a3e6ab37d45506e4f0b1
 SHA512 
145fbf132028a7ce1930fcf13e3c8ab81c927a6cfed41cf8c2950acddeceeceeea5138331ecaca4dfd26bc30837829b49e27e808fef39d8ab0fefe2456b3e0f9
+DIST firefox-128.11.0esr-trs.xpi 522143 BLAKE2B 
9d04f9c4f00e49d699677207a65d180f9a3d2134d9ba754b6a9cee609c34f2c84dc56c0696372582518551bf89b65fea37b619cc904ce69cb21085c76db229d1
 SHA512 
c3d970fed2cc8e914146fb63e96db92d20e290c8a52841ac88bb6f6e4abe427fc165911ae7797c86a80518c7815fd45a9d11e135026604dce030c6a236821196
+DIST firefox-128.11.0esr-uk.xpi 743990 BLAKE2B 
13062c456ab05d01c63db559429f8c18cc65b47437b3cfd58f2a172bf0decef21ec99987a0ecfffb1c3d72cc45d606161f73f49bed7e7e2f62d1c007f0d65a95
 SHA512 
fc462f514b5961bd3ab1c8b826e3c11d7b8f10fd8e25b2cdc334a77134ba68cacdf399a3086859c0fdac79fcd2c92941a907eec5d80644204fa28aa6e998d8fb
+DIST firefox-128.11.0esr-ur.xpi 574492 BLAKE2B 
d9e75e92fdc383f9f4a37728838a00b18d324c643945cf1d492e66b53d376ee0829c2296525b75630840d4d794c600c85e766014201b1022ccea1fbd169a5b0e
 SHA512 
23f75e0bd718e7654e53ca0d8562dddd196968ecad3ae8335dc1ad150755a7c9589edc208409fbd357169f463b27f1b4d91e89ab1b7a8df621ad7c6e5bdd1e54
+DIST firefox-128.11.0esr-uz.xpi 495298 BLAKE2B 
e249a0ed0e494e99dfa7c867fc8eef3ea00c850a89e358964e07db9ebbdcf67c49c34332d13b4b9a93daec13b454cfebacc71914e200ae793a37b4a514f2549f
 SHA512 
093d0576d532c37f9583d0e71eb6ed29b2f87e060eb8a1504d6d063e5cf99656c4a123b5ff3f01f8eb08cfa826b776090b6b9698b39dd54ca18db19841dd7c37
+DIST firefox-128.11.0esr-vi.xpi 683664 BLAKE2B 
c9bf73b6756f41fc88daca2a8b4baef485e7b569853a0ad1c5eea4e49a3ad55b87a7387e1d893f58175f1fdc7ec6d997e0e98feee0d3ec77edb8682e856664b6
 SHA512 
65c63e9761c8420134e78642d9b8afe1c0f64dab1491691c17e268261403809e523c62aed53205815d3b9dcbb8698489dc177d7e20b307a036b217c250602636
+DIST firefox-128.11.0esr-xh.xpi 452429 BLAKE2B 
483463ca6f9138c350d6ecc1a3884f1ad6681084f03b0f611b0ef4fe142eae3e4abe0e17e44a64309139d5da2717508fd5a9bf1cfc6562c3ad448990bba88de6
 SHA512 
a2ded271be5c6793afbd3d0c6fe954400f80788c4e97da1e59acf82bcff1952bfc1b19d5c3fc387b2be2999bacd0a82a838731d64a811acc0b92482ffcb736e3
+DIST firefox-128.11.0esr-zh-CN.xpi 686330 BLAKE2B 
33e93f2bc66b2f9098d32284f74e91bc5c668c4ea333d7c2bee8e36077ac0af6248c54212ae2f0e5bb3134d5ae15d6c1009c8fec03401636bc156b5aa43ff1d0
 SHA512 
70848eac6b137938528544d8cb866f53ddd22e80495bb9d00908342fdb1f84efc383e2346891f532b04c33d89230ccbd40128e78a8cb9e7c4100bd28c7a3fa1b
+DIST firefox-128.11.0esr-zh-TW.xpi 689140 BLAKE2B 
92c6c66db406c6805b88902b4f22a8d4346c403818e74e72143f393992eecbb129fde3bc44825380bedf2b48d1e9c66c5fd28910f55579be0e03999caee65a28
 SHA512 
78b1be4c75947426ce20d82f3dd22cbd6b34bb1c6436dcd58ac2e8ce39a54dff8fe42ddc13c215e4c77dc6fb04a97e8a1191e423d5c53e4b710d97d54a461b50
+DIST firefox-128.11.0esr.source.tar.xz 558920388 BLAKE2B 
698828743acb046589b5eadaf7699d39b170c8e9491585e9704599e3a7a2519a3e5c516a10b8af9ffe425319b6c386cfbcd6694c8feb309c702eb7e44a9a2c8e
 SHA512 
80af64c1dce6d7a25111480567a3251cc2d1edce00acc4d85bbaa44590f5bbf4c0716f9490c3ab8ef1e6fc2bbabb2379029c2dee51ce477933c7a5935092d279
 DIST firefox-128esr-patches-11.tar.xz 18696 BLAKE2B 
0f35eaa29f1daf9beb09c7303b3e92676eea84337683b8f7393e8b52e36ec1f37683a050e1e8d7939ebb1bdc190acaac887bebe88812c1b64785e38980f18be3
 SHA512 
04bf8bbf3c4e7901a6681fec66f179f797615613be838cf35a4b03cd9a347656b1264524ac7355f0c3978a5e740ddc5dc438610e5cae6ffcad73a8988cf0e572
 DIST firefox-138-loong-patches-01.tar.xz 2948 BLAKE2B 
a88a68418b747206a50b3c7d90c447aaa2a3ae762d7d5d32bd03f3af59d0b9051c278de8b293275758844560f1f275461afbc07e40f449fe5060d47ccd5b0938
 SHA512 
cd80714cc7142edb1a3dd83a7ddcb11e65f6b3ae2c44c299a6ad6a7636514cbb0ba8bf95446553c028b3a80713825110438727c3308c810358b2483af3340a24
 DIST firefox-138-patches-03.tar.xz 13284 BLAKE2B 
825aed6ebea3a7c48140f9e050662ca07c93782dcd287c1e61e7a62d715fb9689820c283810f608a80a5221c366fb54ae06f41df16b317b010e17a014b2fbb6b
 SHA512 
eaed91f322ae6151605579d4b1189e217f881a442239fd887d268dcb1a9d76099d501abd3ed16248ffb0a415214974a340dbfc47756a062cf083d5e57a6c655d

diff --git a/www-client/firefox/firefox-128.11.0.ebuild 
b/www-client/firefox/firefox-128.11.0.ebuild
new file mode 100644
index 000000000000..26646b3a89c2
--- /dev/null
+++ b/www-client/firefox/firefox-128.11.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-11.tar.xz"
+
+LLVM_COMPAT=( 17 18 19 )
+
+PYTHON_COMPAT=( python3_{10..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