commit:     1b3afea5ecb979d525394900b7e881c011f7c215
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Thu May  1 06:35:19 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu May  1 06:35:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b3afea5

www-client/firefox: add 128.10.0

 - include a custom patch for "-jumbo-build" ffmpeg includes.

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

 www-client/firefox/Manifest                |  102 ++
 www-client/firefox/firefox-128.10.0.ebuild | 1380 ++++++++++++++++++++++++++++
 2 files changed, 1482 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 52b5827ce53c..9891458c0951 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -1,3 +1,104 @@
+DIST firefox-128.10.0esr-ach.xpi 482241 BLAKE2B 
869095e0d063e169d62800d4939c95327824443c7e0aa0c64584f01f9f4b4a236a39b0ed319273f14ea9b79927d0253f7b2cc5aa3012a8069b73f748c8ecaa38
 SHA512 
04122b384bf2737f881ca0e0458c8c74babab3ac9021a5d6a3a8d281b5c26dbf7c787eabd32db29304b82165fec38c74a1b8b1e5727f90287a76fa2ceee0a828
+DIST firefox-128.10.0esr-af.xpi 446595 BLAKE2B 
273a1a427f832a7ce55d907a286ec1ee58a7345a38b3d15489f5bbe81bf8284d955f49c6d549589d8b125c935e6810e198473c973157ba051ce90e60650f261d
 SHA512 
a1aac9199c4207fc39346c414730e53a2a73228217eb4f02c2ebb0fdcc96c5078ba0cd1dc8ee240a59893944cb850be5daff7f6820fd92e127b3c9de8afe1f3a
+DIST firefox-128.10.0esr-an.xpi 526064 BLAKE2B 
9ceca5a08fe011821de19c2687f2b4a0897034f5b707b4cdbcd5f72c26621e9f18a8873ca0ee57215f42073720c111ed5a80213663d724fef610e9919d29e4f3
 SHA512 
beeea0e959607bb5f35eb21b3af69ef3d84650d9e8ca3e3010893cb410e8c0e70aa4906cfa23f7c1db904a1d78cfa89959ac21693aba27578aed5faaa1b8a67e
+DIST firefox-128.10.0esr-ar.xpi 650467 BLAKE2B 
2f6619f68908bce6d062cce14e55caefd879519a38ab3b48e3f2c4de4fae522463d146beb1d7c9183ded9a384754a036e0e261a14a0f410ea19fadc388b77264
 SHA512 
3170e04048912ae83f82f23ec76f9a4768a5e458f9199dcd2fd6f85a5712b69f6835920519f35f537c700f1bda9150c330841ec2bfc0453dbe931a7317cc7159
+DIST firefox-128.10.0esr-ast.xpi 508561 BLAKE2B 
030903b41f61526a438492289643a70ac176e403e758f5e748f34f4d16e1c7ba300e0ad7a9931eae6f747cd9475d4a423ef3456db2b6fd9aed2a4d6784b851d1
 SHA512 
9afd82842c95e4a1305b7e7b5204ad72f1438bc22074df56e4bc018ebb6f6d580bbfc3fa9dc3137dca76ef6bdcb38ba7d0cb963ab575bd6dcdf3b6869abb1b9d
+DIST firefox-128.10.0esr-az.xpi 509836 BLAKE2B 
bc8e875e180cf189d2d428f126cf354ea06e2a73deec7e17934d57490d431cc5f2978be35964375a6d36d64d008772248b068a0b66804c3918f5668e50da54bf
 SHA512 
3ba9c3de0cf3612f531452f2f12de66387091eae5f4bc2440f4e78ec4e64bf90a76b225f2b4d6a90dd356c989324f6b0a0ae2802080c6cedbf524599fcc13a2e
+DIST firefox-128.10.0esr-be.xpi 748095 BLAKE2B 
767c06c8dbabcf1609a9a831a32e3393b8e59a7ada031c9ef431e53c75bc9c33704e64948799bcbd3b7f40e2613d5fd1a4817eaefc038341e682f3296eec3ee8
 SHA512 
6fc1bfdc1bc487baee676674c8aafba8ba4382314dcb55f5cb1f997af1cbc8586148036c7971e193485fb3fd424e1983ef2c7c360452f2f2c1f5c671a6721c8e
+DIST firefox-128.10.0esr-bg.xpi 672065 BLAKE2B 
116c643f89feba2594d4370286e68548a96f1e06f5254a027e4cb831bca1d97075afedd36407c5fd5a9f04f187fac0372654390b7122c5a8d87e9bdbff0317d3
 SHA512 
4568954fb53c3b9efe3f1edb14a2c05ec7e85038b17a61fb86eec8e03ef564bd96a19f78cbc8b86973517cd9360d927fc043c7cf8812152e4cf966d8feca2996
+DIST firefox-128.10.0esr-bn.xpi 624737 BLAKE2B 
8568e0b390fca4df3ac289e5d89fef7f8afc4c4aa1e5ec3bd2f58687b747949887b08ac0f4dac97f9e607cbc51852bc3894a5a372c938289d53150f1414b243b
 SHA512 
d69b78efaf4da2eb69be1cd67da3dfd3cf6bb7755abe728c072a9a0797a820e651dc27ef9d6cd4d8b3a66672292b2645e68ee9a177b99644d0a520bf0264ae09
+DIST firefox-128.10.0esr-br.xpi 598750 BLAKE2B 
3831c9242a2a7f5a3f885dae569cc54bd56bd7436c5342752b7e138db5ab0521b8548895c91666e7a2abd15a0df8e6c5d691e9c4251e665f0e97d701f6fc6b2f
 SHA512 
bbed8da606fdda10e957420249e150fae05d76c3f9f2b5699c4e5d9dec5010b8b0f17d5de0624a0a326403e204b9ea8fad14b8bd6c666f91cddb6b5d1ddf2f3a
+DIST firefox-128.10.0esr-bs.xpi 566003 BLAKE2B 
6902b85e739e6f8f6f8b382ce0f98ce1e0f581248e71edc5f95942a5325dd9a984dc17e90b940b47f104b93e8669cb4b80eebd58fa332e3265fba980f6e02c4a
 SHA512 
589c6f11cfbf4abf8ba35e5f7dc19d8b374912a3df269e08c24a709ff0858011a412f0880993508fdcf5dfcbda5f6fb615f64b427a1912f30147072441f5ab33
+DIST firefox-128.10.0esr-ca-valencia.xpi 561150 BLAKE2B 
49ff1e93b9ee83da6e57ab4ff2c598a8620ed76ef489daad7c6642383cb77eee4a37899c37c4677f54bae38eb94f8b8adb2e3dc2e58c4766d1c38265cd9252fd
 SHA512 
9b66f6c25be20178effdf9a605e70f2f1fac52a6b70f7f8fe3ed8dacf7d842bbc0b3da85695dae68c202df97eac9842ff3c02b81dab09e6f502d6a8b73028962
+DIST firefox-128.10.0esr-ca.xpi 609963 BLAKE2B 
c7abe937b9b4ee16fc62f2e08529baa054cb57fdf34ba2e6f7a9345371e001574ed851d0ec1b9c7e7c1f56fe7bcac3f7bb41dd87a31590987b70fc98fed628d6
 SHA512 
9e6c60d09d225b32a2fad0464f2707d18fa98e1d2c633cd09b0276401edd8167835f2d3d551c4c1910db101ab23cfa0f73061d52929fd978ff417ca317130ad3
+DIST firefox-128.10.0esr-cak.xpi 601487 BLAKE2B 
b62594bba0998025ae4a1d02d36f6fc3b2932fb5e23d2f933beeae74bbc4892876b5ed816cd5fd07bbc09c79a5f630a7d77e4843880240df0ef0eb9f4e3414d4
 SHA512 
04a89c362adb93130878042c2a94f6bb4fdf1ff4464649ee1915bb9c3b79b2a1312fb06cea2725f9714321054523263cf77d9fa6d2755680180f3ee1b7dd697b
+DIST firefox-128.10.0esr-cs.xpi 690636 BLAKE2B 
e8ffdbe597fa93979091ca846c00e5c6d248b7ab64c7715ac7322c656a0d43aae8150a182b82812cecca469cb2d247b13259ee0d26b841e4aa6f08175fed449b
 SHA512 
0221204547ca7e149fe383f7c23cd44dfdeb98371ff98c26c09c2beed4dee3ed4acabb24d7b3c71dbb594b1be878ecf76819bf70879388e1c1d3c8587101ad11
+DIST firefox-128.10.0esr-cy.xpi 650599 BLAKE2B 
58988793abb3b90ac486523c66ef068d7184e4656dedd703f3b1eaf885fd5c4e975016c685e321b2d615375b4472b5ad5ac3fb1824c3aa52ff0027d7dbb9a528
 SHA512 
b4785e941f2138c6e702f39592ad3037b1a1dc8e91846c36a34b853f9a3f62e879987ddecea4b3b75b668d37028b98f14112abc912f578f832c5c78b60c8c777
+DIST firefox-128.10.0esr-da.xpi 638630 BLAKE2B 
bbab402fb2087519deca45b2dac8d7e5e323ee6f03641cde57feda6c504ab4502c1fba98c63c4d20b4e1adc23b49f48b3334694ca45e9e9f22125b37d0046efb
 SHA512 
58adba7680c8dd9e17b34bb4fb3809cf2607728c77d7e76ef6ccab8515a038b9bb5416a716cf53c4d00516b39ab72e44c9fb07e05c892ead68194114c589410a
+DIST firefox-128.10.0esr-de.xpi 663136 BLAKE2B 
a23df31e75a28d9c22b475bec9b58bc1f87d4c8e8054f65c937eea4028b5dc8aed3f759bf019f0d6b4a59586dfe9343b19fca84827c02afde0b3ac9e9b7523f4
 SHA512 
266e93fdf40a9161b0d93ec974b06d2f567910b2687965f14051671992ef40ca9a37b9e4cf38f52fc85b2992c8017b4b18ce159a7f21c4da1d930aca7fff8519
+DIST firefox-128.10.0esr-dsb.xpi 679871 BLAKE2B 
5ee4f7c6c7e4f77292b94436eec5b847863e8e16932c0927babbc43280b22d2e56483dca82aad55511f358e36ac5430839e106ed514fae21bd0602e77bc5ed9b
 SHA512 
8dfb2e2163b8d461d465c9905f68c7e9a4be01fa973b1058e02d67008a534a72935e9b4c6ea31ba6322fb9a49adb8d2856753aa11e35fadaa07e45e98b3c6a22
+DIST firefox-128.10.0esr-el.xpi 764544 BLAKE2B 
8a441949c0faec7cdd7e6ff47c634324f99658aac0284ff2e3f9f3bc097330edc8db5ba5952e0d396b42d4a58f60981c78314a017a9cf9965494aeb18b60eb7f
 SHA512 
822c7d6f961e899d7943105455441da28ad655f96b79db91ef2bb4755ef602894c9742daeb92c0f2fa350dcb7afc84f8658ed8f85e395cf796e046c2ce656ef1
+DIST firefox-128.10.0esr-en-CA.xpi 610427 BLAKE2B 
1fd900e3bcbc36691ee128ff8b6ef6864e5fd1c12264bbae337cc023f3b86ac2a157b4d6b207ff1746a99778cbe2b8f9186ace2e2da8a036df55cbfe8c28ba13
 SHA512 
ab4f75b4074145e6ebe0f8965e938fef5e32c2ad5919b34239af53621832cf69bb52981ec918a06741fcc139e502bf5ea92852c52c9d42c4085d1584b746f832
+DIST firefox-128.10.0esr-en-GB.xpi 610782 BLAKE2B 
893a246e9df1e36e76781e07f86931a3eb5ad19277d1ffda4df7d145baa0c5f10e5233540d4e94b1159987d9cb94883243c84e7c49efcb3b829a5979b508cf4c
 SHA512 
fee96734d64f9ea44e2e6b288802d2c0eb8f6470718393dd07b1af685b7d89438a21eb004dc0194fa1fbde0b5771986ac78b25e3904590a6f62204bb7e2a3892
+DIST firefox-128.10.0esr-eo.xpi 643535 BLAKE2B 
9d96b85c60f440258a337384a46cf63df54281d80b35952c112bd388781dbaebfe4a711489070de529cd520e5de839c2bd8aa0ce97ebfad885b1a635e1764723
 SHA512 
2d61a3267dd82be8960b03c44832bc7fa8f7f46064866e118ca5e2b1c80591df83314f676e2fdc1732d6c71d675e80137e91a101b87ab33da4f38d6a09ff3b6b
+DIST firefox-128.10.0esr-es-AR.xpi 655627 BLAKE2B 
b27c752e73a74b0cf8545c1b2287a9f66f417b205eacd01e0148224e103b9b4cdb4c19529321b4a0cfa2c4e52947a117645c933507c289447e7873f25f7b54c1
 SHA512 
db52cccdc0ba0da5d504c5afa89801f88ddc4bcfcfdcb18d5d0f38d004e294d2a5d7eb00aafa8ff36c18465270fe8e0e35986328c911a2ee9379ee4114431253
+DIST firefox-128.10.0esr-es-CL.xpi 656064 BLAKE2B 
ef3d7624c74392a70d2be4d77858fd28f68e06d1baca761195185169efb7ed6baad267bd3cf7ebc4fa343035978591728b5516a85033320d64dcbbc5139f7f7b
 SHA512 
b47ee979910a115e9558c41cf93122264a6cf0ab73af8062a0220cff0ce4dbf002bb287d3f583d2e7d53a5773e181aa8f993b06bb0c0bc5782d5c4ceb7807123
+DIST firefox-128.10.0esr-es-ES.xpi 655187 BLAKE2B 
66cf15e50382dd605eeea7c5472d9020e19c90935cfb973a95950c778e468189642e0e6d3baa73188dc44dbadc47421d2fe16119ade147a290d844e4f1cf07f5
 SHA512 
52ac64e6ad3ae1eae59e67adb463238e26e36b482d6eeb981dbd72c5b6df626cb2d679579b481687c8c64ba1fddc08dd5f18f390aabb9b0c01f0bccfec2285f8
+DIST firefox-128.10.0esr-es-MX.xpi 657393 BLAKE2B 
271ddf7e68bbc3bbceffab4fdd94083b74155dfcd9f4eb006a50c825abc7aa6133b1ac90cef812565ff077346c500685c2ad0e060278973f4cfd10bb5133c031
 SHA512 
6e793cc2c19ab9f394c106f82d81194457cee3f58741a9e3172d9d5329d23ba7544a2d6894bf9043e68da384f6f351e347feb4405f4a311104c3ba95dc96e821
+DIST firefox-128.10.0esr-et.xpi 556276 BLAKE2B 
fd331a01eacf136cf60e205723c9993ad983975286b938613c6cbd56745e68ebe11e6760c0a52b3a45593facf50224e563b612cd008171281ae240f58f685a40
 SHA512 
baf452fb382c69929ce62812b678764bc69d02d8863efd7def4cda86b5bde11b7febad6ce999b6b555340fd95410ec5406483a3606bc8c76c46a34dbbc10db10
+DIST firefox-128.10.0esr-eu.xpi 623960 BLAKE2B 
a3d838d82b7c8b4a9bd381d30f409df9e3f52885cc36aad6c056d13a1809ad955e4545d88096f406de0dc2b8959c190d3edd3294ee3767fa2b631b0cf24203fd
 SHA512 
f2a978ce591e9b9a9ce85a86392b8f5f1e60bd20532415c6bb025e63130915625f40b5cb8e11fe56a95395bd6433a17a6f055d4fe086af075750d0db07c83b52
+DIST firefox-128.10.0esr-fa.xpi 631020 BLAKE2B 
e2a021d5747f528359a099533b49d3456d794307e9d614069febeaa6cac3f3ec1bd551953c09231450041b259134c67e818a634270d66df937544f07f7beb80e
 SHA512 
e5627548d0073ac66492bfb6f57e65446d038923ab4993b1706509fac3cc554e6ee5346bc4f78885664de3de57fdaed425085778778f8ea6de896045b94e3007
+DIST firefox-128.10.0esr-ff.xpi 497856 BLAKE2B 
dec2746449a91d2ab8584361b54e9d61a3ce1939967e96bf16688412e517ff8707a6acad4e24960f2432796a6a82d0bc1382f13c81c5be65effac7c391380882
 SHA512 
956cf01c598001a20e59a081a490e62e98d89ced0ec660ad57058ac0dce7334125aa8fa3aaa049e5ef96e8a6025b059ef19c475382d97f3eeaf35664a1eb202f
+DIST firefox-128.10.0esr-fi.xpi 633889 BLAKE2B 
ebdc1fbd1a01f82f2f60add6fb738dee0f6dea45a664a892c5b994cff7649dbb8cb70152946249d4b4407ffde8aeaef2c387a2d5112dfbee34dcbb85ae1088a1
 SHA512 
f36184a5b1bdf8fa56da73c2388e591439f971645bebfebd989f35472bda4ac69ab58b98cada1cb19eac1a159744c6bed59325f82055f17eb9f237aca1da7e68
+DIST firefox-128.10.0esr-fr.xpi 669616 BLAKE2B 
1e075b8408d61256b88cf3169d027d2e4fb9fc11dbcd7685ece516eccc533c6ac4c6f170789465418cab77b221de69ba4b324f7172545e57db18dd31a302a5d1
 SHA512 
87c58bd155c0b6fda74359a14b6a751e02267da8866899758049cae7acf47709f5929f2f233298992ad23fc187f0bdfe93b287e384c61c83ba2256346ecd5891
+DIST firefox-128.10.0esr-fur.xpi 651566 BLAKE2B 
26c98514871b5c8b8408f452406154b11e743c0d230544cf1ec5affc2556714336f8cda9dc745c0584630521694b34a1802348f136ab3ed43223e9d0cd691d68
 SHA512 
93e259d4fc0cec439ffc6d071c536c0dafb2e798c9ec45d7df1606fdda32dccc7d09e3e40f9d8bc2679cf880e237b7331d22499e887c7de53ffe806fdef3eea3
+DIST firefox-128.10.0esr-fy-NL.xpi 652079 BLAKE2B 
322616ccda4859c2bff0b4a5d2b318bdec85ce6a50a016d03cf1c67ae27cd75c4f8e9dca2684ee49bbfbce968394db22d5d83ef118d785c030e57748ec631ef6
 SHA512 
5afded9eeb459bf27a56a4a377331e93798b37583a9e455061aae88a4c864097e0e88b8d88c636e534d58d971a38a6909e51667291357590a802a716d61e7b9b
+DIST firefox-128.10.0esr-ga-IE.xpi 490838 BLAKE2B 
6fdd5c6525e24f539bd80ec94726c5454c42d1ce3d7f9bf33d2cb76a1b4d8507c3f0dad513f13a313bf12463b05bb30da0b1cc4bd634c3252c89243a0eb6b742
 SHA512 
69c552931ccb93e7e48272016d1502ed03d727d252c499c16ee353b23fbd6c96d31443aab4770703ebc592396f64045b25bb531e5afafa2d014ad9052839fd28
+DIST firefox-128.10.0esr-gd.xpi 609626 BLAKE2B 
a2682c8d63faf320ae9039ada9245c53caafdbbbbdb26791db6e564d485747176bac4369ecabd712fae232770783cfc9631513d5a318d72f3c51065c9a543317
 SHA512 
ddd7a289bb7a9ffbfefdef72beef630a5cd5cd14a61245f73a49fd367339bee51680438ee7c11305b32d214af5643d832bf9575520705c988221e24c47a2ba80
+DIST firefox-128.10.0esr-gl.xpi 615556 BLAKE2B 
ab4f6bc7b7e40ad45d55fd7578dc33bb986f3b5973d69d2db54458b5d84312b98b99a427bcaff89744105a919f5a61c6e072714a694436fb1ec647836c6bbc9b
 SHA512 
c9075dfef9c00f4800e8598f8e1932d2df5d20e8ab221ae578492d6d82350b864411bd278cc31148045f5a54e82331947933626e33b9d11deb0828f92dc11311
+DIST firefox-128.10.0esr-gn.xpi 659906 BLAKE2B 
93a17c4bd0509f7b6eb04e71eb624d8f9bd809b4302fe3779e8f1da1eadc2a6772d24bbeeeb020bf0b76200c4f74f412413b75d062f934508e09d35b44c9628b
 SHA512 
a7f275a461632b0b9de7e195b621de14c0fdae0b333bd4c66fdb26cfacec39b37cf5c1780c58c9782085a3655c91f347cce71ff515f2d92928c2c95b40dd60d8
+DIST firefox-128.10.0esr-gu-IN.xpi 552334 BLAKE2B 
1d65b6fcd548dc93a448fd86f91a58a63592969e624e4e7a3a635ae6e64c017bfb3a7eb30c59374c35f77b5205b1f753eb20cbea4fada9e47809bd06c0dc6891
 SHA512 
ad5d7af80ff73656304e3d6c8444ab498282589015cc7611d29173665aa4d1141ac06b2f81f29ab65e457cc1ab7e49da9e7893f284212c922ecc973d64085a62
+DIST firefox-128.10.0esr-he.xpi 659478 BLAKE2B 
338a34f49436a65cfd9237b8001a399d033bdcee07e06954cdc2d7ee60d0a2b3d290a08fbd96f28047ee0296553c2e1fe999de44f3e5717ddfc66554a92a0211
 SHA512 
c7086fca32c8a69ad76af8f9ef57d78b44702ae9ba6874b0ca926453195c52b53cf3e0c03efb0e4becdce4ae742d3a451116033582fd55a7331048c2c213b1a2
+DIST firefox-128.10.0esr-hi-IN.xpi 578977 BLAKE2B 
e56ff88da330a42a431c94a6f554f7ba3fa7a739ce91ef89f9ba4176b3ee822d4ab674a8ef22ff593a439b39134f7616981d63709822207dde91af0403b6b8a1
 SHA512 
3c1f26ff6f8837a9c84c03ae1856f3b5ff0c79459fd19e8e184e88c4f9dad360794b2de906fc7025b74baaabc07072382f8989557099b7dca0af04bcd0ceae8f
+DIST firefox-128.10.0esr-hr.xpi 645465 BLAKE2B 
b25fedadb4d6feec292f866180b9a75c782460b06a055d19262f7a8933c8d4544d5a3afebb0b399f97380ac5e52075dc5e6c9b180f4374cc240f3a5d7ff4e822
 SHA512 
e7e4ffab8a2f842be2a87bb7871c6414b7d1fe7887f808860b7aa36a7458dd2ab37af2bba1fcb01d5021d454d3d1f31135b8efc3427098e1595f4cd189075efe
+DIST firefox-128.10.0esr-hsb.xpi 675863 BLAKE2B 
55ae6438e0fba5b270a3afa052442b9f261d2b070d335f3fefd143ce2e1618b1047286491472fb054403b8afba869f6e749664b03a8c8b1bd0bfe692f9500edc
 SHA512 
b5a05a5b07710b664c0602dfb53ad5bee9dcfb4d2c24f0e14fb114524f46517eca9928c5eb93b38065f1f26dd0c5e8e789b030c145019a461d97fc0db62d4936
+DIST firefox-128.10.0esr-hu.xpi 679681 BLAKE2B 
aeacd28bdbdbca62c4b43aeff48bdc860e95ec311f4e7e7e8ce0769c3c4bfe8aff70cfd14960ec508360ec744d83a3993d6af458b410d2e0fbd344b3a9bdeafc
 SHA512 
ebc17a857b798ecd8eb3f4bcddba82f2e9bc8fe37aa529f3b6130056ca1de78d65c90eaa3791b2c2078a5cec6ab7cbe149137bce54ebcf41671c183bd0ba21a5
+DIST firefox-128.10.0esr-hy-AM.xpi 664455 BLAKE2B 
105e4855016010f1e95b6422ce7705ddfcb55a6c4831ea8df32649b94bde521d07c35fb0b17aabd2791af6c5364746a0d019744cf37eaebd8ebe47c5950704c2
 SHA512 
51d50be56271ca053e0e0aba634291db84dc710bed494190803dcabe6dd4e574e6d0a56d3dc405c5fe82fc3334dc123af0628e9acab3ac3827c08abfb380eee4
+DIST firefox-128.10.0esr-ia.xpi 637959 BLAKE2B 
af986968a0911547a0bd443810c58d8a89170859a350edb718763c0b8562684b0b1e9ff7d1a2029251ded56b3a703e943a7858c69478a02631d83260aec21f69
 SHA512 
3f344b9863cac54f33ab7147141db33d50eddee009db8c5bc581a2117ec0c46f68c7404e6bafa42ad0e613f425c83a4b8a93e8ed126541f201c7704964ce5456
+DIST firefox-128.10.0esr-id.xpi 625994 BLAKE2B 
311db184a5838ed7a8d1e350f21010884bbef8ed644327d6562143e075a3bb1764e7f6eba11d59ae1c9de0792ce418f199a760b4627fef25fb52a10e3219e033
 SHA512 
fadc135e6e9bfe477ac1aa9510c54923404a975eb49fc25d2e797ab5850d5f6c0c2533fd81c52569e8bcbf0a2046dd38df2f28a78e84d0bc9403c1fcf076451c
+DIST firefox-128.10.0esr-is.xpi 646737 BLAKE2B 
b0a692dae077e614e73a381768e588a31596beb7b916f49b1036c7c9e03a4426a1dc5b6826b5eca40ff8b542b49e9c290e4ab46e2f15c86ce857a8a3cd42f19e
 SHA512 
040120be65c4ee4bc784f4ff5761b4e6f9ed899aed8d71718c8af47dbc6e2a649f0f41fd650605393fc0715287f752baa14d836802fbdfadf8501179a5b66c6e
+DIST firefox-128.10.0esr-it.xpi 648855 BLAKE2B 
c33967155e51c27de3bad60c7479cd3ae666e95b3bf639d633d9a37c36eb85684c4d255ba0a82ca0356947f706a7cc60e143b96d40970a2a5155455732c87ee8
 SHA512 
b34873187b9f13bcf7da3c6e487f361538bbc5f5879744edb582ce4bb105773a013008c31d0e268ceca031c1808d14609096bedc22b043c4d918ba269ed59408
+DIST firefox-128.10.0esr-ja.xpi 704126 BLAKE2B 
0cfc65e4fcf7ca80c5bbe504e85f340579a5a2df4be2f55655611facf66835297c05d3c0b56dde3aff89b2ec0bfa4a80005bf0ca673e131339627ea1649d9ad1
 SHA512 
e523b264cb9573d3dc3883fe5eb31143f12ed56b98019c347a867546f035d8aa2e62a984eea19cc12bc97a268d2060f691bdccc9de0c33974d262a8a440a1d5f
+DIST firefox-128.10.0esr-ka.xpi 714501 BLAKE2B 
047101b33f5e75a03d3108799d30cacd2eff6fbf64d9b7716d12f3c019c391bd47d3cecb4fcd648d0d49d63283c9e80aaff2db708b8266feb85061425cb7812d
 SHA512 
7ee75df9a4a1b3629d72aba1f9b330e114a1bea2252874e8ee4adc3ff766073b5cb524d937326546e711a1015c4e0023aaecb251fe583a6309f990b80e4dd05c
+DIST firefox-128.10.0esr-kab.xpi 626274 BLAKE2B 
ffe93360b3a253d8380b40bdf5a8d6c28708142bf9b748d4e768de5fe301f640c299812dcc997d8a7cc3e435fb36136abdbbfbd7794d9781975de8fe9c53ede0
 SHA512 
15e475709fac09d1a34b464cdfd3f00cda2990f9fd4f101e9e9cc6a6b3f7fe5b7b99df8cc8d5f84f3e3705b0e609259fafbba16578d7bb71c8c804c44ffc0c99
+DIST firefox-128.10.0esr-kk.xpi 734550 BLAKE2B 
fed0d74858b7b82a3c7dc3a8d3ff56bcfbf24f47f4fc96e723c00bd8b1a11d8299b44cedb31c7013de71730ea4c5191b5dcc22348189bc5eda00a47b063fc759
 SHA512 
b837bc5a49ddbe2ce1bc5e79eacdf5468ab786fdb9ac8ec587c5b698d6e7fb1986c392bc12ee4eda2c8a3517dbcfd5e19dda9d1f92d69beabd79f3533fbc5dfd
+DIST firefox-128.10.0esr-km.xpi 543173 BLAKE2B 
0e1b1f574546cb6f41f34d265f8f083c1b2da06602c8acb59ded939b44c215f6af4d876406944d9a9b2fa34641ab26849fa8fca9c566af2b769c4ac53d2e19c5
 SHA512 
7042991750cfad28aab61199ed63a3e70fa32910f794c5bc31513eb350ce1a75dead26cf805a668676fd29838f00ba5a891ba2761d47a5d683240a01e0516552
+DIST firefox-128.10.0esr-kn.xpi 520329 BLAKE2B 
4602ca5c63b1a11337d07c713bb9b63c3110e5e911cb83dae0cb1d9dba080fb15597e76e57a939bad81db71ae523b9e2977bb7c3389af2d261c05749b3c21f06
 SHA512 
89bd951b6312c2bb4ca32d1250c7d158c1c3006ebaa6426188c5510603cf97d37d8e2e628059504c0bd2e4aff1251af25826b61b5cb4fdb2c146f214c66c7e5e
+DIST firefox-128.10.0esr-ko.xpi 690555 BLAKE2B 
3a706fdff59e2b62da035ff2c39b55b627cec5696434b18d4fe771cf5bc922dbe2017f39e8760239dbb1ec854e77a5df43648161e22dc7eca7af005a018dafa8
 SHA512 
ed0f8a740f2cdfe3909bcab1f8abcec436159c67e80d2bbb1d439333c2887fb539d4a7b2ff4e5ca5dffdf3a402d78920387595bf036afe686bc340f57e839a4d
+DIST firefox-128.10.0esr-lij.xpi 506305 BLAKE2B 
281686cfb4b2c47b3d074f815dd076039f759d7928cc3ce16609a4ce9f50c830956a00febc9d2b365894f0d729f78ac9aa866639ba234800dd64728ab9a6f3e8
 SHA512 
098d6581c5e38c1ce4c868b1d3851a680e17815dab8810ebec1a06020f2e7df4bac328104d2b8b1a2441479271531a038ad9b323af8d9c36d57a2808a0045ba0
+DIST firefox-128.10.0esr-lt.xpi 585993 BLAKE2B 
1c11babed1a9c1daaa0b99bf3b8c18500da58ecbb2a1b7088be007eba062a3d80c541c840bef1e99e3ec66e1dd3c5875a4ba57ee90247fa0fe0ee26a979f1eb8
 SHA512 
85c9813bede9fd51e575d5149c358df213e6c9d67eac84b9dbed84fbfd38b21e09f39d6747c101fa04f2cf0426ef4961b26c40766f1c73b8f3880a8be1a942cf
+DIST firefox-128.10.0esr-lv.xpi 595107 BLAKE2B 
938b6f4004a72988716a8c7945880585675e9ecad7532adf2a170ad160a394553852d9077377b2467e0a0b3933e966ec01830055411de866717d9d542fe83eea
 SHA512 
4f9b21b961862e94bbaaf3586ab389f394c1c966540cbc953eca88d64c09f01c908e2e9337354777efbf0e27dbc3d03cc3986b35a087d3068675b9d8750997c2
+DIST firefox-128.10.0esr-mk.xpi 511079 BLAKE2B 
3d3bc24c0e6132270d821d66c1040fa12773f4ed7ebfdbf38a1b3c14f3c6b7354a9831b708abf51ad53fe0fe9168b8c20beda3bf2b7d73e6eb01f1db9313c6b3
 SHA512 
7b58120931a606ca9d821c25966211c788499309ca89c45068342504ed3bdebc4dc72afcf5cddd8a8eb284a0e7763ee6dac3cf45049502ef8f44a8ef2a0af8a5
+DIST firefox-128.10.0esr-mr.xpi 552813 BLAKE2B 
5e361c2373ac0faaa25f77227013c1c1f7f66ff69bc88b1ff1195f2ad1fe5db8b8dd99d674131ea77de67b87ff9bb34a48a6590484ffdadc68d9124d71372806
 SHA512 
05c38ba505c8db8eaabbfe4efe81dead930f6fa913f6ebdbfee0a4318ef9fb19bf62bb63912cbf2bd0e11f678e8e37e2d0190f1e5625fae56da1d516e2f03959
+DIST firefox-128.10.0esr-ms.xpi 477964 BLAKE2B 
7d73e368e9f4a0e2afd8b562ae1990407693f00e15f8b31822117ec6362d2c0a8de67a5d639b96145cc33ce60b9066ae1b3487146128cfb82aa882691c77d00b
 SHA512 
191a4a2e113089133b28c91d681ddec0658e722758cce7755eb25efa64b28e3833b707e7c1352a0a9f075a3cd6b0bb763b8d4d3dc888ecda0c2000e932a6ff9a
+DIST firefox-128.10.0esr-my.xpi 540059 BLAKE2B 
a4212cb9e8406fb051ac85fb59e06591e75ab71743be25f6e78d28e10738ca67ffb403eb017b0dbbb32f0101d03c1dac31f25148d383dde505b77f314690a53a
 SHA512 
9ab23a547db9a248480a25518e11ec2cc80e68043123334002e4c9ec2e8f75b61f2eba2a2945ed09eb2d5607e1403f2633eb11334682840dcaa69a8a59ea5292
+DIST firefox-128.10.0esr-nb-NO.xpi 627689 BLAKE2B 
d2c2e1db620f348e14a545051dd4d7a5e1cfaa7bcf2b61ab3dd6bf797cf24201ad87a61e3eb08ded3f9098e90c478fddfa5eb66510e2dea5181e04b180bac167
 SHA512 
46851d5795d2bbf083f12d7fb4f97e57e9c79862ff33eccda8a066fea774ef46f160a65534ef6cf7e0bc886332d7acaeab74b206792fc8af3104d62344b6a2f5
+DIST firefox-128.10.0esr-ne-NP.xpi 543830 BLAKE2B 
938222ed64fc50cb1ae6401050d3cc8646ba1f13eedbea040393fad6ffa9f2bacee5aedb660f9f937f6e764152625af064c68ed47ed3eecfed1f7f2d0fa05d9a
 SHA512 
d1faa655ccb17b1abb2c8886aca16bbd4893bb357ad1e558cbbd4c8ec30e650870193bfdcbd0281663af5eafe32deb0b0995d0a92f5d5847574a82bd061a3a17
+DIST firefox-128.10.0esr-nl.xpi 645176 BLAKE2B 
7334855612985a3d62261d379021bda06ffe90b7fd23fc9d99c73077253039102c209978eec957d4c263dd4110fc4b64a67b7d37b389a3ffdc562927efa7e782
 SHA512 
9efaa188eb2ed86843e3e9a1a22247cbf1f98a1cf80d4cd194d30fd0e6ded0afe9fdab2bc56c6c02bb616648882dd250808437fe810ddce8d8db2de2ba570d03
+DIST firefox-128.10.0esr-nn-NO.xpi 630291 BLAKE2B 
395d5f90bd551c80a9f6c87b569056d1425ccb8bc494f30638920cef072d44678a29e5914afee243f81b8f2070ba81d885f67f79e6dd64ad86c3511e64ec5338
 SHA512 
ee73b40d580057fb5e05ccca26b9cb23f539bf24b51667b33dc65d38ea13a0541c3090bf081759ca59ad07253c1bf7d6184930975a1f3b091f3e6da78c49ffae
+DIST firefox-128.10.0esr-oc.xpi 626829 BLAKE2B 
53b4d9f9656bf158170780fe4535264e6fae4c119c08d7c71a8d8ea6c285e2c2994418449f71b0623eb4531bfbfebf2f866bc4ff125f2d7dfc8d2d1f5c578b78
 SHA512 
85a80927fe8dc5202ca24eac34d02dbf8780aacf0c22803cc3fba60b7f848cae482dd3644f3b632c7a52c1290aa0c40f14506065e41d781170446b1c8a67eb13
+DIST firefox-128.10.0esr-pa-IN.xpi 726726 BLAKE2B 
ed06aa0043f33022eb47494848eda51254e58d3563fc76f88f3d5b1f2449a8703c9f14352db9fa99a46c8e41eefc4ad51fcd43b2fa5d509977751aac23a2180e
 SHA512 
fe9d8a841fd9b56f39ba381544923a1aa5d6ebd18ffb57c9c52f0ff89d5c7c6754747559b5f69e005cb046e5865306268e3eb3a894c36a8c44128594f9b5e495
+DIST firefox-128.10.0esr-pl.xpi 669254 BLAKE2B 
aff59c84ecc5fab3c4d6547b3262f533fdf0737bd79274f11ab626cb388dcbd5add496c031f45e4f6c83e0db0553531233e2b7e6fc5d0d38f304151d8be15d37
 SHA512 
2911a7028b214437b2a8dc32fc6239b875919f9aaefef863edb365f8b7f920b2f950e984432acb74267e59ccb6a3d1cce6463b474d89316d8f22d48bbfd5f5af
+DIST firefox-128.10.0esr-pt-BR.xpi 650221 BLAKE2B 
718c708bb5e141729e83c5c410f7a4412f4ea0de45e7ac82754a3b6ba2b3fe9d48e448f778d6b501987b0ce77cad2533504cddb5a653a80b004eec04f99795de
 SHA512 
f87103a48f0209e8ffee3db31898036acd1cbc8912071506e8f830470b17d60cb337846f6bb979cc29f36544671c519fb27e5ea6f6e0a87ef1b50d7629b0ac71
+DIST firefox-128.10.0esr-pt-PT.xpi 654873 BLAKE2B 
6360b0ddd153bf0b4fb3a840bc5228c5033b831212ff278bec507e1794c380f1f345abee7f494762277fbc94d04f26651d67ef25ff15369cd20cbd3f39dc07ce
 SHA512 
dbe670a06bb33f34167c087b2a0911e469dff0ae031983007c6984be0d41502246eb36c4ae8088dc7a464cdb78be9051f7f3da5bb3736b2c3ec4eb79a81b6d9a
+DIST firefox-128.10.0esr-rm.xpi 646710 BLAKE2B 
1e18fc1bb5fed93c53be84c6d97db1f3a176f30ce4a90f694bb93caddcd2832017529375361d78889767a50245872b46934bd64c8d6b5ac616978eea971ae101
 SHA512 
cd2fcae7175e0dac692255afb2a8c96281b280e060456932d7b0e7310dd1a32c861cb4c461f310a72ee724892d00dc91d16902afd463fc2d725455a752314f84
+DIST firefox-128.10.0esr-ro.xpi 562860 BLAKE2B 
d4d118cfa12e04bc4f99bbc3f167f1a43b0bb1c79b3cbe8d9b46df3efb03752d3f7e85f808765b31f1f4b9ac695cbc828c1c47985d2fced0b1bfbacbdf5a4d69
 SHA512 
23c030b004cd137b1adfe07651bf57ef345de64df5b428cecf36a25649504c7841194c96a40fb02e5c0a2d92644f02867876e0218f5fcf82b7a7f7fa476133c6
+DIST firefox-128.10.0esr-ru.xpi 753063 BLAKE2B 
4c5872532544aa97f49e4a30ce56c6ea1ffa41faac00802e6304e4a2762a5a8d6232180f801ae537cf3096f7014f9626b022faec6b5e18ad3aeef2e337508c88
 SHA512 
5080a1932acd0fa49a535fe77e48cbe7e83baa8e6bba69fe12244dc1bc79e2efa667beb15a18946bb400590da9be311fde5873508090fed44b024229e3604fad
+DIST firefox-128.10.0esr-sc.xpi 604300 BLAKE2B 
3cc4646cc7c7b25338b8b6e21831956cbc248e0783d2b28d1141a06f527b45d34af3a06e3fd36a81d2f89945738571d595bdb7e25abe182c0db15c2d5c96664e
 SHA512 
6bbdc14bd87dcab085cf77aa580a7daf971f7484b0d7d1dec6c54e7554c81530e8c3f5a658ebf9a7ee866f763e4be2dece9934c063b855915f0eebf1bc89a67e
+DIST firefox-128.10.0esr-sco.xpi 524664 BLAKE2B 
3b61413c93d3546089fc5eab82807db04192bf5108af8395750a609efc34706e02dc9c7418cb042ada87ea6f39142954a327b786486234ae6d4d156eff05e605
 SHA512 
a44abbcd10098487fc4d2cb428e43e51dd245cdb9989b500551a0557ab01a07ac71c8f96346dbffe882ddbec7b070d562a859cdccea2bcd00fa79d8e3e4d57d8
+DIST firefox-128.10.0esr-si.xpi 628194 BLAKE2B 
dff8800fc791ee0f92f8a730900cfceba67ee619a2b607092b8d85320c98a8590e8325e166728c85c0ffa3bf7dfdc5a902475236daaaff2429f6a6ec0f98c0b4
 SHA512 
32c43bd78bf53ce5fb4caee1a54c204b798d30c6067ccfa3b8431d65f5141fa8c33d594ca7f304c46e529b3b20effd9648280e9cbce6e24b75f28e70da8eae04
+DIST firefox-128.10.0esr-sk.xpi 682244 BLAKE2B 
52d330bef708ee57233907327d9796cb8d756f068f85cb3c7d38c93a899925435833069217e9e4e2d5fa8c030c3dc542e3044acd8313f6342e327f539c3e9544
 SHA512 
438aa5651257b5bdff6b236359601532ac4f5cd92218489e05227a8ce7de1feefbd94d1ba0efe03895aa9d7e3caaf6c5f3dc04d8c479988dcb5fff2b637e3436
+DIST firefox-128.10.0esr-skr.xpi 726682 BLAKE2B 
5c4a7a9a9316d711ec9bff83e6930df2d1c9421bcf53a0baf25e02d1d660eca02fea631dbb253f9a95d5b401014c8f119fbf2eea57d2e3c07d093f1a6f9bea6c
 SHA512 
5427293bafdde0c2ff31f278c98a2293196953d4339b16449bea3ca9f7f4380ab7106b333208cb528b857b10a97ed4bc57f2b519f90ad265c061308aade39536
+DIST firefox-128.10.0esr-sl.xpi 649042 BLAKE2B 
9e741a46032d57944a6ee38fa4f23ac42a6bb6f639f72be8daa3866e545d4425e0a64c0d643006461004d5a4916af6526c376232f8d235e27631512f423083db
 SHA512 
d8ccacc40270a8992a4672b6337f6c6877b25f31d1338af8945b949315900a4ed0c985e786227946d394f75449898f78dce0b0490a82e456227438b6ab84d1fc
+DIST firefox-128.10.0esr-son.xpi 451702 BLAKE2B 
18e843f8107db85a724b4706252f1fe39b4edd3c2d1b9e050a121b18ac5f4e12d901f47568a03989d9b3a3fff1c5bbd816e70d4914732d7f833c8d44e374e078
 SHA512 
ce9dc05457eba43d70fc6562e2bbe560219c5a854705057cf2c1920ebc7a2b3e2256ca50a00656256a3c59d740dba4da771df71b8ce51ba047db3d4b28f491c7
+DIST firefox-128.10.0esr-sq.xpi 665755 BLAKE2B 
d8f834a8bca412eb0b92ab1ddabbddaa7788a18a83d5d83029069a198cb4a53f1688a32e4abf4288a87ae5557061c5ea614833d85ec6a8a332b0cf93d59b625c
 SHA512 
b917229c34d7f3c8d3e7ef63429de31f1910aae1636a3bc77e9d7e41a27c125d640ce4493c05e7eaca38b3005271b0911b6b0d84e578d07ec8290b9e89542650
+DIST firefox-128.10.0esr-sr.xpi 678449 BLAKE2B 
085bc0706f063e3ce2acb2415f11388ea507779c7abb56922921c60e8fa6fa2d455b0a3ba8fffccf89d3f3044a63930b35e83e39fbd046a422894832e177cede
 SHA512 
e129bd32bb534cef592444dfde941e2db677c0845d2d055f0b37dcdfd611dca8be54ec4610a21f14b1eae21a9eefbd6022f968b7f5a66291f37c90e7c4005353
+DIST firefox-128.10.0esr-sv-SE.xpi 646479 BLAKE2B 
e6dc595cd5dcd02caddf475ca837ee2c9b6c0fe71e4f972d0ada870617e21b90344c3e15f59e2c0fc7099c30199077c02823ee5ea64be1a919b8e0d4a73be433
 SHA512 
7d8fdb2cbad755618e3bb3bdf77be47db9868fcd5b35a4863478e83480ba630a14d710e59e611cc7fd65a4921227c187ae1331f2702a8837eee987183fd92987
+DIST firefox-128.10.0esr-szl.xpi 541717 BLAKE2B 
0c7d1d9af6090f28d916207b25e3d88822562471ad0e5c0ee11322c28e7f356361c5bb8e74acf404916754644acb1008a9a9395ed496e8a3c6976ca25aa409e3
 SHA512 
a15c98f0709680261284bba64bc2301e810db6f21013191a4e5ee915ff4a6abe4ee0db2b6e1698c007333e423f059fd5d570804bc28ebfa0e3cf5d90fc918c0e
+DIST firefox-128.10.0esr-ta.xpi 530542 BLAKE2B 
20c8beeb993a93b4759db845dd30dd73f1c7e596488cbc7c0cb80b30dde475aee12ecbd23d5bea778b95bb0fb0611446ba581a801e9a03a1dfedb98504057d3e
 SHA512 
58fdd89ef2a27a2bfccdc3275844c1dfe76679e25db75c03fe34d468317e07dba4c058418753bcce682ce4e8b660a9d3d31a6a49dd06dc6a0947a95cc7da0722
+DIST firefox-128.10.0esr-te.xpi 583150 BLAKE2B 
3273e44e63f128e44f0cbf21c41523e13f2c2d8251c184d177cf96bd29a0713c89fc1c0b96f5c22436c515d5337d6ce78a4fb141df0367cf5841c4b0045ce36c
 SHA512 
c79b0b7e07ce1524fed3fac0a231c00d03e2e54e88671ab929dd4a2bfd96c7520049759f3998482014785e70e6a6dd369f8ca6f5c01bac42629784f19ee66d7a
+DIST firefox-128.10.0esr-th.xpi 728457 BLAKE2B 
b3e20d3efce96a6ba0659db76c94f6759b5cba2684b6ab9fae0e272699be9c570f15b5af5741aca1cd21381bbc1cc14ed8f5da4c9ca3f767635acf2db0497f17
 SHA512 
2238f016d4e4ef8332e087eec5563662bea7200ae0c911cc5ca5e6791cbf8d74d7d76c964405d1f996f55949b4aef203cdcda9dfae953eccb322e66fe2908566
+DIST firefox-128.10.0esr-tl.xpi 546952 BLAKE2B 
3384e148cce7e7acb77d0b15741825111a1195b5b601e60aecb54532ce6830d6054dd1cf236c85f9db92c2e55f35c9eb9bac16f787742ded066c6bbc28c8852f
 SHA512 
7aaeba915e57f82515293ff615ea1fe117de247fe2847682890cd462b382606a2a25b6d0d2a3c7ff22c668310d6ea8852b74381a0029ee9b35e939b937a518d4
+DIST firefox-128.10.0esr-tr.xpi 659463 BLAKE2B 
33370a659766789ca01f62a5c942c9793900ec3530ecdcc70c34bf052cf69a07b081e799bbb443729c878e29eee74271d26dee26add12ada9249480d979c9f8c
 SHA512 
331d286a6c9321f07a994d7d4d56e8d312d19cff6ec3848ed9f6f85c6f5928e190ccdec0045cc8c2b222b6297ace3bc726db9386784739b2d38cae6c41e509ef
+DIST firefox-128.10.0esr-trs.xpi 522139 BLAKE2B 
e93c677afad210675fd8546c4ffd6ed4bcd81179f86fb3b1ba07dbd2af4de46652de6d05afb8d247475f8fcef95dd77b2aae6a8e996837a8b2b5502bf42397b5
 SHA512 
a4e4c39477cda7f5e19cdbf072ab149e78e5995f4b5365fe7857c8feedb1144432764093d4d15334f338096ec2dba15323a8aea0fb298ddcdf7bd069a6f0e2ac
+DIST firefox-128.10.0esr-uk.xpi 743998 BLAKE2B 
7df404fbfa3aabc80e410a40e261b0b8f3fc631fcee93a6ffad4528d7237e03ef2404814ec4f3ed0a28ca29e7b64887b65fd172a105f6046aae7d93c1afcb184
 SHA512 
6e72649d9d0e957c7fcc0d5c4f36808603263a7b9646cb215c6b27da8cee0720766ad450d92e4737488b3644ba15cdeffb445c3b9228ec72c74e0f46832d0602
+DIST firefox-128.10.0esr-ur.xpi 574506 BLAKE2B 
6eca2b41926833df9702ae442505be43b8816b989dc3b905f2b2dd9f6ed82fd66f425b0fecd7f5344a23b73f6866431b4f6d2d4d37bd897ec822bb1f3f311033
 SHA512 
f5bee6cd5b5c1b586c25706dd57f87c8b5cb145dfcb5bf851d484ab652e33c40e93949345597a4774b09e87a3ec166bb6b92dd9d563f0da7920a9b0bd0e8d831
+DIST firefox-128.10.0esr-uz.xpi 495300 BLAKE2B 
8f59bf33c6ff7a9f203871f55fbce8405f8f5ed32061ae5748e7d63185f2145771099b28a5f5ae880e4a191135f670a1c92257f6d1287d4d3a225687079207a5
 SHA512 
d52d17ab8501179443c8f6db8a7e54a08d2dfd5fc3e7debb3e23bc4c3eb4b24c913ca300398abb0ecafcedff1a6a9d588c4cbc492426baa31fed8b8df306884e
+DIST firefox-128.10.0esr-vi.xpi 683664 BLAKE2B 
5f91b90008241dc0384d49a19d6b9f723d412436e472196c9ba7644b0d849e51f95f2d6b835ae1453c6e5e69f82f0c2269cdb10218340a7478e90d620b6046eb
 SHA512 
d35a126fa10fb417db4c71b9172b44284a179a9cf66b7213fc07bf8a85e3ada1ba5c0678b1fc60886c6c617de7a6096b26d86e123fc003e9215c1ae0c442478e
+DIST firefox-128.10.0esr-xh.xpi 452424 BLAKE2B 
65408e14ad04c9b7442d6472cca9ce2ca760d1b3b8642d1adec04286c2e9037d7407d0efde523fd00d5c3b772e43c4c316089c5783876c774144c623a63c42fb
 SHA512 
b99ffcfe4eefb27dc9248db6c485a2250d8cc369f65ec1cd8f953b5d09761d039063c967e34c4e2f0f88b2c6407ffb881f1f784a66f38cb49a16ee687098e557
+DIST firefox-128.10.0esr-zh-CN.xpi 686329 BLAKE2B 
6f0c6526e06ad31d87404ab22d98ed86b8d46dbdb6db009be0d439bd87f120754dcd595ba96902955c7076e56b6d5791d6fc13ec8f38998fe5300430236721c5
 SHA512 
606c64d34ac13d1bb8f9da88e8b13f7ea907fff2c806d96b192e50d547f4b70ee71d1197f7d3e112db44a7583e4d7be2cb27a9f2d43cddaf94d818107c0bbf2c
+DIST firefox-128.10.0esr-zh-TW.xpi 689141 BLAKE2B 
9af1f2ef2897f1d95d7c58886dc5fb0c89854ea95d9cc30c8059d8f0f04b6994329df4b5c4c6e4ca2f3cc3a2be30fcd5cdb25dfe719dacb1f2468a1f6387ced6
 SHA512 
c9b3b94956255d94fd08458f78b94ce7775e3868cbc6392d94bb693cab1cd065cca4b9297091c30d464f1166085617938da0b2c177bbd7873a072b2513f650ee
+DIST firefox-128.10.0esr.source.tar.xz 556644356 BLAKE2B 
8ff5d2301d02ea32dc9c7635bdaecdb2f8a859c9f0a3875d10f9e0531e60768a88a51761e49de34c2c0ade73bf661db2f1bdbf0b72e19783415a23d14a4cc528
 SHA512 
c0f349cba626e6ec16ff0b52b7d21e05681acd1377fd1111992860f8079373f631ff997d833a3596c72a6d8c6e4f1d051927fa719f1d37a72553dcbd5348659c
 DIST firefox-128.9.0esr-ach.xpi 482233 BLAKE2B 
de820fcad4cb94ada5be9abbee203379cd299ae739e0fca00ac3a9593b906639aeebd7dcd783ea44f9bfcba25a8fa69d9c6f252693d12c8d4448d95aacf62472
 SHA512 
bd57885d8b5123adcc3c00f486a695604319e8741623e8fb9fd59d2ec2d734283d04ef2bf606a591d8a9d1b492aac6df33732996bad366126fd629d229b93324
 DIST firefox-128.9.0esr-af.xpi 446591 BLAKE2B 
c3e423119747c01e68bfc5ff09050191d07d192b43ea1bdea6643bb71bd565821b545d9cb5b7d85595a0859c557797eb6599a1af467d812dbd8ce5a6cb384276
 SHA512 
ca9626db10d7ddcf9163fe13a5e690f3d1bb9aaf3453d391f4d41cad36a06ad080bc2dae2fce6e0b9748170b2fd6ca9068d28a457f5e655dcef44b6cb5d91af5
 DIST firefox-128.9.0esr-an.xpi 526053 BLAKE2B 
f4262addd499702ea6f7fc4f1562e05287f7b10ae487c3435dcab00c912410f3e36c5fab2b7a1630d9e158c48e9fde8777920b9fd3a62ad603495c8508243746
 SHA512 
440a2fa1f2890316ebfbfeb25c5b903bbc743121374561671d0915e20ad8d3817a60ad673f251ba7d73605b8a47af36174e37f4c97d7715ddb2b551eb5564ae9
@@ -100,6 +201,7 @@ DIST firefox-128.9.0esr-zh-CN.xpi 686332 BLAKE2B 
e9130871e826721e58a3bd850f63a73
 DIST firefox-128.9.0esr-zh-TW.xpi 689135 BLAKE2B 
ed751b14944a1c8227b1e37d816a2f8a057745e807067debcde6be490cb73af1924347451c1c9993845a7a6983a6b82aa52bb9008fd3b2bd4ed5507bd46eb1a5
 SHA512 
de655a1ded9c7aff05602b78b9fe8a2532b6c0381986d7175ce26b08a981371f4daa7c97347de94cf30cc553237cc867fe030440e96952f464c104f80a8ac78b
 DIST firefox-128.9.0esr.source.tar.xz 562959584 BLAKE2B 
e49ac096a68cc450be909d3e5d325ae5d45acdad5a37afd6567f960d585d30f6ea3a03e9f9e976b430a60180ccd2baaa1679050f46e0a736a46c0cc6694f3797
 SHA512 
c0c8ac8374291cc93279064c73c17786c6f4fba7505ebc2cbd7a4ce7c82710620abdae7be15f60c43f9d10c3614fc9fd31f094e787105d528031c6f0510f7339
 DIST firefox-128esr-patches-09.tar.xz 17976 BLAKE2B 
78f64f5086951f7bf2b304c1148154647aef5c4e699257cba5e94a83d8d8c159a591d0b2a7a5f8bc0f8ec28d5eae66a0783b45f94b4ef713282a6f88e46c75be
 SHA512 
159d8c94af0f90c10baf7446e573a37397b3be7103e7001fb6b38845a28a41793c21ad24c23e0b3cfc4daa2c3a6040ef701f612693c9f4dfff8534f82e7b18a1
+DIST firefox-128esr-patches-10.tar.xz 18120 BLAKE2B 
293240f7088a709a1a4c8fc1e339272621338a7d9f675f89bbb13860bdbbe31a150ca21b945f68ce6a399a6391c4b07014978cddbff360ca44535c4cbf343cdb
 SHA512 
87c248c3896725c7109aa0b30cec79fbb2379508dae9da8898ad9ae3881e030b2f1f1761beacdda1d7852099e4acbfe4a591ecf2a2f817c1978e9dc00e0a3e66
 DIST firefox-137-loong-patches-01.tar.xz 5092 BLAKE2B 
26ce17d911c2dc4b00d727d77aa14aaf379541bf19e0500382c892a1534fe04ec6f71126b32aeffc00bd1a2dd6810ea25ad25b7eeabaa2a2c70bf1158009da1e
 SHA512 
5c8ab65f3f24f3fc8ca5368f42d65b2873c9c15537e9ed088770a17f214a364e35cd6b79710b6e8d699afe4f84f29b004374537a96b11bee6f7df91d1f5535ce
 DIST firefox-137-patches-02.tar.xz 16008 BLAKE2B 
6b1e4f0c7eba462abcc2bc26a463cf194e51023e2a2b91ac88b42cf817cc95bcc61472983a10ab8b959734d7c57fcf21e34e54f17bbf0f674589969e8bda6d15
 SHA512 
a573048d25cf0ec6bef8afdfc8a845488f910ad4437a2a87ac16131c258ec36fcea985487e415af00aee91072ef8cc924b395143587c3971d42a120de39c36d3
 DIST firefox-137.0.1-ach.xpi 300711 BLAKE2B 
ab15205222d4e282ef8f76d5b2e40ba86dd5d7b9d0703fc5a927113452006b9ad748632229caff94e7a1363d5bc2263cb775809ef8e9669e96d933c9dbcc2d52
 SHA512 
109edd0a165e0a49d807f4438919c13ac74f2807d051f90b919b03b7c83050ad8de89b9ccedf62163be455e8e5d49aa88a2fcd74cf041ffb43046f26757f8a6e

diff --git a/www-client/firefox/firefox-128.10.0.ebuild 
b/www-client/firefox/firefox-128.10.0.ebuild
new file mode 100644
index 000000000000..71fd4896ae82
--- /dev/null
+++ b/www-client/firefox/firefox-128.10.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-10.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