commit:     d8c5a82ed06c3a22495f68680ad0498e6cbe1445
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Feb  4 14:03:26 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Feb  4 14:03:26 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8c5a82e

www-client/firefox: add 128.7.0

 - use the firefox-symbolic.svg icon provided by the source tarball.

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

 www-client/firefox/Manifest               |  101 +++
 www-client/firefox/firefox-128.7.0.ebuild | 1376 +++++++++++++++++++++++++++++
 2 files changed, 1477 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 4f0c870a8e55..b141ff2e3e65 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -301,6 +301,107 @@ DIST firefox-128.6.0esr-xh.xpi 418478 BLAKE2B 
54d8625ccc0303bd0168476884a60a2018
 DIST firefox-128.6.0esr-zh-CN.xpi 675204 BLAKE2B 
25bf725f17d878b72125bef0d3f18e8424b3cd19c53ea98e6b5822b278b39e71e60cd19efb8f5d300b19d185e14f3f92eaa8f5247475b7fb81d90b3bba9fcc74
 SHA512 
ddeb8b74783d6654d9becda9108b1e2285d761de7170f850b854b78006a59775f341772de5806a50758d675f341e34b64b195772028d07a75cd6ceb27da0918b
 DIST firefox-128.6.0esr-zh-TW.xpi 677426 BLAKE2B 
b1c7f621ef3a73053ac60f57845d721fbedee579f098beac71f3b9d97b60c6a9ef97963829b4911cc1215f7a1dc935f3c9d30720b92f0eafa0f9d4ee46ebabb1
 SHA512 
1c415b1c94bbaabd6bb454a517aba30b7c19bab2a57641b48aedc2362ed8cffac1956cf56adee45ede9a9604dd1ce270d294b56363e859cf9e12e24d7adae48a
 DIST firefox-128.6.0esr.source.tar.xz 563259116 BLAKE2B 
401c54e4c3e81dd1d4aa9fed072e5266a7549d9ac05e03f9755d3da192c9c46d2bc636e8bf0a7fad2269074615789ab274b897c8bd75fd524f4a5f138c3aa1d5
 SHA512 
49bce966e062766861712bd65cca46a438b339fe31598f69e4fe64da78ef6f8b4581c1d502341ef1c032aafaab2f4f88e69cb93a0b845ba7173fec277ae695b5
+DIST firefox-128.7.0esr-ach.xpi 465483 BLAKE2B 
c0717d674ff6ef9d4b9cb16ee4a6a023467408364be0b95ad9c483d3ed2e85b07b7ba0b7c855235cc6fb476e7bf2db1489bd013d72459e65f47eeda6b2bd6155
 SHA512 
e52338351c9c04f52a1cb2b78a252e1f419c2595d173e565a4ef902bcc4bd78ecc37acf7ba6eb3062ba8d09a2ac2fa83a72593abf020492ec437d843754bb5a8
+DIST firefox-128.7.0esr-af.xpi 418819 BLAKE2B 
3d040b9ed03ef6f458d591d3db5f2c58b52ae2bed6b0b591fc0fb5ac179ed2f5cd577b9d2e1523fd152bb883716654f07eb1ef3eab659244fdbf7c6e2b0f3f84
 SHA512 
2f51ea8f920a2b5e694ebb847098f9807c1392ca0cebbda156904894314fc6221f428f4dffdeaf298681192b486341baaf25f75e896be191456317168de10c41
+DIST firefox-128.7.0esr-an.xpi 508460 BLAKE2B 
0e2328a7dbeba03e903e4773f3d1915f4afa79f3766e1f3e901cdb5e6201d5dd959093cbe2410c28549a409c04b2c5731d3b1bbdcbee699b78dcdbfff66feb1e
 SHA512 
1da8dcd4b9b1dcaf1a3f324dc9057beb40e18ccdbe249f6121b629a05059e1de4c2385d773f52ebf043acf550ce1f3fd88acef5f070c25f6919a874b3e1ed0a7
+DIST firefox-128.7.0esr-ar.xpi 630804 BLAKE2B 
409aa9ba28b196014526e3f78fc89e658722892c237539f110f56567ec16e6ab10896fc83a5998e7269dbe9e31ff369668c50e5f856187a43074a5d8e3ef45bb
 SHA512 
9595b1a87b7f59b632b29718539b8ef830df19426940f5c04b837bc0dafdb10ff2be62d90d486395b8f0dc26b2bd60aa58f8aa48de0eae25ba26e580b5476b72
+DIST firefox-128.7.0esr-ast.xpi 497755 BLAKE2B 
25dc917d95d110a54c594f2ca0812cda91af64ffaf45ed731cf5fe56b50a652ffc88900215fa6ce1fd5c2c800755b0fc10d234c0746b23ddf959ce12666d49d7
 SHA512 
b645b69ec25be8339c067a9f7c24640e778be70a09f4aeff0b57d76d43bb7b3cdb085c069784465626b3527b956d905ed741cf46747dc09c2b202b118cf7f397
+DIST firefox-128.7.0esr-az.xpi 492196 BLAKE2B 
341f22a0da5ef46e09002c373bda7eb3ab5b772a54028dd3ff93e368644e8a17e10421879e529af1caad647c619a1e556360c92d52e65301f6b2cbc4de23c4e9
 SHA512 
ccfe501bf75ace33d0dc9e0b8271fa715e9b9e3c2bab6395d49a3671e6fa8e11d6530f2e04763b282991995f8110763fe8b1b9a0484437347f6cfa65f2d407db
+DIST firefox-128.7.0esr-be.xpi 731599 BLAKE2B 
bc61e97d46cf47fa32af39c8ef5e5a0fdcf7433f4eb940218e635c89b3a2d108e8236b0a909e541fc5cf60c23b8a23243dc8aa283804edf3e8e7ebea6bb28710
 SHA512 
ea2dd0562293447b3a3b67d286f45a35cf0b61496a3ba4129d05018af0add11ff78c758341bbff550104a6d96766b5fae6d1d96b7a0093b9f18623e572adf64a
+DIST firefox-128.7.0esr-bg.xpi 647383 BLAKE2B 
8970cf49ffcb0ba77ea13bafd52638939fcce83c6d847d9319418eb1efaef243a0154412ac2242bd27f9c4cfe943057fecded3e5119aa718a97f3aba688df43b
 SHA512 
6bd507162933c12c089254d3cc52fde6be7bf8fd07dbdaff17db9617557e52fbc9d07d6bdd982facc9989e8a58cefcb405939aa381e6b145b0b96803bf0b6ec9
+DIST firefox-128.7.0esr-bn.xpi 582959 BLAKE2B 
69085d183ecf08712c95e06081d6acea16b9b198996d3772b7534e2988c9e0cf432f234bf693630751ebcf386cd4039fbb1a1558cc726e323a2df7504db81474
 SHA512 
76bff1022714f4cd634133975b939b6f5eade0be0677272ff82a896bbe79829ac8ac2b774502a8c08984ce968a9a6ce1012478f62f733379a682309991128141
+DIST firefox-128.7.0esr-br.xpi 595350 BLAKE2B 
f7ca2f9bc0624213cfab8c8b656374825dbc243453cf804250b5999d9ab8eb31bbf35a5c6e158ccac70fa43aa765903c4ee2f4f310089f16e3bd1858c208fa24
 SHA512 
20bb0d649fb3264b9614a1962a78a6fb1de956e973c0f929c72abed1224f134b61e293e1f52568e9b5d1dd9b69dace3497c89376fa47c1470ba1abf6fba5d69b
+DIST firefox-128.7.0esr-bs.xpi 515699 BLAKE2B 
e464b7f37c7b4bfc1f82d9b35a81ce713cfb2e8af347bf922b1e0d5b9af254a622c3e380b027681d0767a33cd8878a4279436f303cfbab81696a0e1531955b1c
 SHA512 
647aa9b0a31f447feda5f2486825e0d2585682378f27136a5bd875f8528dd95ac5acf3ba9e15603e8443f13956d15f67336239f25a461579596ff9f8376cb46c
+DIST firefox-128.7.0esr-ca-valencia.xpi 547674 BLAKE2B 
42782fb0776edbd7e8531f6b40425069479bdecc483512a69966d4fef2e570939b3ca09645e702b3a592ceef27fc660470a8d469acecb7467c2c2741b0af225a
 SHA512 
4731c7e66f80f30f50bbb0a8d4d74a342c5159fcf207e51885f84f471cceaf334c176d70f953151f5d2de165463d3d75822d04e1cc5a0e13e7e43f74fa367a2d
+DIST firefox-128.7.0esr-ca.xpi 599211 BLAKE2B 
4a3a64b94b72c22308474b4230fe7159a24ddc096ad279031c81314e3412a0973d6cebbda5912aa04e5bcaa2ce5b5ccb97cce8f60184bde411cc06a5a82ab909
 SHA512 
d999ebf32fb7ab11d6eb2e2739926769e716c37568336d50a8de9bd89c8debc7c8562ed8e5b59e3d414ce5f8f8867859e08918bf521b796003ddb9d3ba3b6666
+DIST firefox-128.7.0esr-cak.xpi 594639 BLAKE2B 
65ffa086eecac9a70df7cc28ef129c39a0b49e9dc880805af2a7173b485818c7487784f129a4211b8f5b9fd97252593f4e87dd8029bc27d2f11fae11ccea0c11
 SHA512 
9d4429772183a9868a360cdc0df0aefbe4239eb324197939334ca858352e67d4de0e255cd096f13bbf91911ec65582697ea16962327c358f47a171921049f4ab
+DIST firefox-128.7.0esr-cs.xpi 675127 BLAKE2B 
4a8a22a479eaff56aeb5d83ff0b2db0086f9fb0a8f4a021fff1b7507d7d9762caa882ca0e1f03bf37ab0619b9e1be0c9351529d33ca466d4e2595d756084376f
 SHA512 
7637cb7036b0ea5b0b0b3d47128ba4ac75a50dae788e1d55098431d21d61ab45f0a2e5f41e346d4691ee82ad933660be6a62bb056434fee13bb242771506daaa
+DIST firefox-128.7.0esr-cy.xpi 641505 BLAKE2B 
d550bed591b840b7a9ea9ca420899e22f47b20d2347288b35ecef2e05d5c68eddecc0309020feb021f030776af4097cec6aa677f621509ef2bd0efb6e8524b0f
 SHA512 
1fda03acf5f9b6c121b8fd0c80b381a0bfd1fbd055d89ecb0b4598629e022ee94f9087d6db70e69e547d7e7425c9ad3e7d1750face58b6a230000301fa3ecb9e
+DIST firefox-128.7.0esr-da.xpi 624953 BLAKE2B 
a09caf036a30b41978254d006756badcbdc6c952ceb5216f5fd5c9073e3f4a4773c3c18e243d0c34a46fa0e8738a93a8e3dc14e1f15df520cd77ec0e19aa7f56
 SHA512 
1848b785ebc27d3440b76528ac40b39fe74ebc124d7d11deed977d4d2a03feac87b8bcbd326b32ea88ad829d218515b298110cc7427a6d3b806815b190de09de
+DIST firefox-128.7.0esr-de.xpi 647908 BLAKE2B 
44dffa5bc188000d04009d4c809d16edad8bfc62264f80b911629a8d282d281d25016396281a6287eaffbc7384284cdf9d26c1109f51ea515930aa48d42a5d39
 SHA512 
9f54dacdea129f7e6ceefbe6f68995d0b032b594f6a754dc7b7ae7df8f77c5284c404a83decafc72b74e5e3a78a7ff12d1a52bf07fd764bb451233c05b7928e2
+DIST firefox-128.7.0esr-dsb.xpi 667677 BLAKE2B 
c708712ee3a962bcfc8f67a6d786166b156446ea4e4079af5fba5aac95b16a38ddf74fec29e71bc2ee960874d9bebb0e4ac65124173c089d171e33742a63031c
 SHA512 
3e46e6466e5672944fdab9d5a9bd5d2a2535d2acc5f75187070831946788e8ba63db775ccbb48bc52a36b3232ce2f8b2cba57e756ecb73582463c2a3d5c2a41a
+DIST firefox-128.7.0esr-el.xpi 752451 BLAKE2B 
746f6dea14a29766707292d6cafc0710105dc16d2f7890d7dc9e57fc590aa27783bfcd28a8ac4041de9849d0e5198de35a33ccf364cfbd82ab369eb70297f261
 SHA512 
f5084c71326762fa049b6d20a2a67cd1e4c7fdb133c9f30f4af20085092105b22b68f62e86f0ef177a886d802bec5ffd665154dc6e7997e459e72a581a5b35c0
+DIST firefox-128.7.0esr-en-CA.xpi 597230 BLAKE2B 
3a44aef6adc8289ef4cc3197c8e38e37ff1191ff9ba6240647a8b9172e70df9ccc80e9c9828bb26ee9a194e76c76567ffb0371e085e6d99e1d490b6260aa1ba2
 SHA512 
099b8afd7c7fb5daacb947e20e5e64c208ede29c7b72b8e020e6005b00554b32e136c282f679fe8ca7850bb1c7c6adbb8409e304938a64d539118bce163e6b8c
+DIST firefox-128.7.0esr-en-GB.xpi 600792 BLAKE2B 
c4a5943c47511ae3513c5ed12e7574a95dc6158d76dedef0d9bf8c76f50977ca3c80903064f6463a636cf87af897cbee0df56f1fa94b5635799b7ffdfcc1c5a7
 SHA512 
d69461a248da1ddca21ee93865eea8a4283c37687c2c75c568555c37b898e2788cc86009941c891ec50838e9fb2333fbaf7a46f771edc78956c4a7752c3fa51a
+DIST firefox-128.7.0esr-eo.xpi 628830 BLAKE2B 
4ec7ab9524b668b65b71007d52657e4b7770ae6cc4662115806118a1965af7b14d95a5375c724f606cff8b7412b0de558d1c2425a4d8e08bcc21f663c0a8729f
 SHA512 
3b5a3a134ab1dc4f883ccbec519fe4c939a22148786543a30ad19fd99bf28e63111032ec160e90d28abeb89fa5a43db138a29878038eaee0dc55364990ac120b
+DIST firefox-128.7.0esr-es-AR.xpi 644964 BLAKE2B 
d00f51be339de81c93c3a51cd21e9feb97a6393aff925a356dde0efb3c93d03f4f718f8efcce8cee1ebb83b782983dea5b6ad2371e92f3f4be622cf5a7e1b4f0
 SHA512 
b22c2a96975d412629a1e79a616a505d951bbc4699681a456606352a929a64f1686203987637059d02d0d9f82c45218580bb0138ce9a4edac95850f871a1ba3e
+DIST firefox-128.7.0esr-es-CL.xpi 644428 BLAKE2B 
43cdb3b7afb889113ecbf51d84793e40132274efb1cb04b0b9449a4f93ea14e254b9bee6056582cd2666a18080a24f2a8e9dc431d9bb700f0937cadfe5695e91
 SHA512 
51889302b604ae367dfb23e2ad80b87d3c5e7119b7f515c0b466a9cd3104f7cb9f3fcddbc0ad00d2da46de6d248ea342808f6f426d4daf69ea7d89e6a0e7f5e3
+DIST firefox-128.7.0esr-es-ES.xpi 637339 BLAKE2B 
67d7bc561e56438e0aeaeaa9b7670b36d7c26c939f22877c0a6eb0f8e6131ccce9d8e15a03e3b4bff9db55ad37a66d0521a54b10ac69eb61983343a50852b7b5
 SHA512 
94e5cd9ad2037c17f3f23711cb51b13ba6cd6c4c1c229e42eadd60863c457225e5077b6055384f638115f83228efddb16925e39371b4105c5bbc170825670853
+DIST firefox-128.7.0esr-es-MX.xpi 638918 BLAKE2B 
ebce9d0fbbd89eac929a4b05c81981c005a21db7cc48d82ff9b139550b9afcb6d0f5f5aab142887f7f1bb8c8508aa8ea902bd518354e02f557e8d768486f2705
 SHA512 
5648462262f63f0f71aa288e9283d2fb607ebff512e9f92368dbc07cec54d29daa201b2a5c29648fdf0f7f60605306cef5a1a5d501cd3585c2a66baf68dc2972
+DIST firefox-128.7.0esr-et.xpi 541123 BLAKE2B 
582a9411e0ffdf3dc8e0330961f93f016a4a51d68c21d556c875e82dd46294d9f2bfc873decb26fbd6065176615657ea2117d9555640187933e4467619ac21d2
 SHA512 
0c78f511c9a919f078c7548fd6dac2955a9fd39107ce7c9824beb51a529c40b018bb015ede00e0627ed01f57fcd0fc17e23e87d0c248cdd25284679a00f395d0
+DIST firefox-128.7.0esr-eu.xpi 612333 BLAKE2B 
a0bd8dca7ec305e44d5069cdd53f5967a53e7ae89587916e3e11c06df242b44ca4c5ab3237d73c6354e94dcc471035d736790499f9527f6ec6c18b6574df3345
 SHA512 
f022b60feaf1875ed5ded956001c9c9b69dd1fccd452d3f8755d73d422a641539e34a97e8bd62e470a24bce075ef7e529f72125ad107def218c15a3eb2ff52ae
+DIST firefox-128.7.0esr-fa.xpi 593839 BLAKE2B 
9750819f819ccc0db3f872c7ff5438fcd1d2edb98ec1cd6d93fcdcb31327d0ce9e493302a8c5b77eb14600731e5539b81816fdf95b35f5228fc5b16db6d4dea6
 SHA512 
e271e3f84bd19ce671cd676864bf521bab9655aaf5b5377ec3c53c6667ad36e15465fd17b7725883d2360d85047c183633a8582b39f51ead3824970576aac71b
+DIST firefox-128.7.0esr-ff.xpi 477474 BLAKE2B 
66398649808ddc748feff2c31d7110aafeb0a13cbf012e75263ad126fd852d325288eeb6127d659af2e54b32a7484f795e0b92d3daa289d42f36e549a655aabf
 SHA512 
5ce43cceb00fa1cee1fd77dd05894593092923aee63ccb6b3cbb04b674c13f5813549db6393f33f11a38985d829d3ece0b3481ad654420f0e33fdbf11b9a969d
+DIST firefox-128.7.0esr-fi.xpi 622991 BLAKE2B 
10912886bf3baf02dee4ffc14de89e64245d6846bafdb5c6cdec099f4b95c4e21dd462e4af42bf38072349c9d4cbbb9bed5db8203f5910a1ef7612c0b7f9f300
 SHA512 
1f3759b7618167194910692bdb4a4721e56ff9b0689d321faffa9c8ce4bbfe03c2f3dbff2e738fe098c01f05ab5e74a2086cf531a3ed9779c04d9dda2489c21e
+DIST firefox-128.7.0esr-fr.xpi 655856 BLAKE2B 
3454d2a9114c8e45bda9af1d9658ab0960c4538dc2ebbae0e28aa68dad1371d6af139d9c83e785155b3a812b0a2db898ec2b726439ce40e6a0fd42bea0461dbf
 SHA512 
057b2b5a19ff9aa876f4399ff10bb4b170fa3c27d9015c094dddc1dbfb66ff7eb359e143c4bdee4e80caedaa29c0b913abfc1108cf0a21d38476a94383e6e0f7
+DIST firefox-128.7.0esr-fur.xpi 651348 BLAKE2B 
3b9f5f5607a6ae7451d3749d979e22d9782a3fc35a963238442a64f2602bc3093cd6173a1bc5d6e23e6ad29665f26b35ddcdc92712818418c54fe719a6fc05e0
 SHA512 
7706db7c71cb29557ef2e5da24c284195b54fe6b614db987272964de7679cb1c113bbd58af324d761b04d57d20d664c7cc16365495c78f6737ee44d2e858c459
+DIST firefox-128.7.0esr-fy-NL.xpi 640610 BLAKE2B 
5262f46e3771d921dfb64cbee52a8e2aa346c94db891940d87941dca98b1d4e301f306afa03391fcc6546720d2c3d16ca5feaefc3b3329688a9d95d636486490
 SHA512 
7a8bc523ad28074792e28ca654b22954b905f148d2ba93423d2de52cf5e78380dcecb8622cbbd5cedabb9cbaf30d46d81f8420f4a397917e20cfe99c51d740d9
+DIST firefox-128.7.0esr-ga-IE.xpi 472340 BLAKE2B 
fd89516f031ecb68b1534e31aa68c5e6f746276096003d77ccfcb4173117fa7ce2ee1be5ffcaa1f5b87e8fd3968705feae7dc38a24fcd6afa3646167cc2c6e84
 SHA512 
a313b0275def574823739c81519b6148d622ac69c249a2df41a2ba5116f42e816707798825fafa25d089c3077c4bf9bc7cfb1c2bc1220d01c13445b2eafcabf5
+DIST firefox-128.7.0esr-gd.xpi 598315 BLAKE2B 
4aa692e993bcfeccf794d69fdcac60d1f35388994dd5fccd964d9eccee696b5a8711bb15dab753f87544dee9ce5e10425ed4edc3b57c7c72b3f21caa19b98131
 SHA512 
dd46afdbaddc04f8c2cfcc9b53f477275dbcd0d89433894924b49b89bde2d07b593e3b3a37a0cd939b17ab96166d9ff322d9fe9774ef60c1149bc05855aa50b0
+DIST firefox-128.7.0esr-gl.xpi 609630 BLAKE2B 
124ea0a0765672a031042a4237eb601f6d252c6c8cf87fd4e5410626f7e68dd76fc4512c70d9f5369744536c9093c52fdea324a4296ead3105c95e9c336f0fd4
 SHA512 
a289a316228eeba2f536b0853c41e24c02a48acdf77c82f75be4952adac7a9b93ac47f40429c1e6c2da7b8da240dd3b43de1fe028747fdc3c2e942fe2d5d70aa
+DIST firefox-128.7.0esr-gn.xpi 652876 BLAKE2B 
a4db36dadd148715796e486f3042a55b8d98999e5b3749f39810bee568d0a98a8796ffc072c9c9242979ac36537e62caa2cbfe2ad3edb1eb44593820fc14a747
 SHA512 
9c8988e1b136ddb7ef5f86f495d10ab804eae80498e26e9a7745b485e204f1d5b8897a94142355a68b577174a4e7e2dda8c6e0a726b90ded00468ac32f05f8f5
+DIST firefox-128.7.0esr-gu-IN.xpi 528791 BLAKE2B 
95868d0d7e297751bdccfa2355626d461db15d77e4eb7194531668d29f7ca49aaa61742bb4da9bcb942762f25c61eec315d3fb618e525165229e386f23f8c0f0
 SHA512 
6580a50e9e22122a6b400e1b258937c7adf5c247a27cb20eebf0f5536d69fad9e15f428d2735d5f2f8dfd267e2b05136aa7e008769f032ab4f685167a5954d3b
+DIST firefox-128.7.0esr-he.xpi 647295 BLAKE2B 
9ce86e695e77b7f969d5838b51ac8dd16b0481a90c85eb1360405ba2ef84b03351d23eb0d7d50b8417c727f71e366cdb341ca2f9f7a2d104ae22317f754e7ab6
 SHA512 
c5d4d9f5ef1ab78b2cfa0ba0438bd59a8d2db9d1c1d6d93f8b049409d868aeca78df41b21b1fc77a2064890910a5b1520c07514885daa73d889b44cac6e2e968
+DIST firefox-128.7.0esr-hi-IN.xpi 568352 BLAKE2B 
8ec3f01b955928e5146c6f50a3b750615501ec2f83a437b6de77029c77991dd6f6c1091b4970de8c60e615d4296f0cb892c424182093fb81add68da6ec24f3ec
 SHA512 
51334f50656598a69cd873199612e2e693eb0288d3886d00f14c2edb911f271db75887499aa2cda406980180fe16d241ac1c4757362ef28616f768e40c016a80
+DIST firefox-128.7.0esr-hr.xpi 619164 BLAKE2B 
39dbc0cc488b81d1d410fd8a933452322fde38a616a939a731e5d8a10b6d6df98044a6da88f43fecd244865234f9e195089bc37709de646519fa8b15daa7b027
 SHA512 
d9c57531683612ddccf934edfa76e7aafa6de5ebfba159b6293a23c55d6d1a943f13d03f405582fb88e1b1a41ee2526ef39eace8cebe0d24a204b837ce574986
+DIST firefox-128.7.0esr-hsb.xpi 663542 BLAKE2B 
88afd15084f8ea35a3897bcf9e8280d75788b09240aca1d81848ca95a72702751204fd4b32ae301a891dd489bcfd11c353de992633592ba5eb3ccafed1c91276
 SHA512 
fb03efc01d7ed389399d94d57493dff5fce8d9e3bd5b8f71ed79c991954ae6d553d5a56e6fa9abf105f6c3413fc80c53c97b310a9846c30df789ea83f08ecbbf
+DIST firefox-128.7.0esr-hu.xpi 667800 BLAKE2B 
9d030ca60ad9225d4a21ca81dd3ba8a0fbd4cdcb717e11e76465c5fc58d268226e6a3bdf2fcadbe86e02188744a567107bcacaa2d78349b65f69bb7829880221
 SHA512 
d3903de671f16660928c7c1a39dfeb1b78e39cf2fbfceee68b322eab47df9e4e9ddb4d1a86f35588c375f5e34a82c2c2621da3d5ad7d5eafd09784e6bc09e0af
+DIST firefox-128.7.0esr-hy-AM.xpi 653033 BLAKE2B 
9b290ba98e839690825ef1537304394dcd53fabfe696eda264d8b35ca19a1b6043cdf26c3f1020ba3a712f3674a4039a301670fbec2d1b30fcc866615e546550
 SHA512 
6b5d7e05eb402bbc619e8dd0a963c3669ed1cb771d8f5eb89932e9d32c811b00f931b44f2dbdca9555ac287add8e30da1d5d44babadb1e2f752e7c1d75a4c9c5
+DIST firefox-128.7.0esr-ia.xpi 627664 BLAKE2B 
e6c6d40f1f7c43eb18656a1bf4e8ae9b5a9948208641d4c7b3feb8c84f78ec516c815bcd540b10e910a8c8a343d651a07c0ff491b5631837d5b99f4b6ca50dd6
 SHA512 
87c9d8f3e0839bcd0ab58abe329a65718be7fd07a38c1bcd3a9b4f0775431f14efef9d95e5165bd09718cc3591c29149426016ff6d1e5a45624d283dbabb40ac
+DIST firefox-128.7.0esr-id.xpi 587626 BLAKE2B 
7881f0f950fe4109cc87b440771eaeb729ed246a52fb1a3a30ff5d09dd9c6417c8c6b4f2e886e570f08345e31113fbc3f3b71d5c21c061f07d5b15411ee829a2
 SHA512 
0cba7c09a86a146255c2e749d47fa37f23b7f20e01d74e7433aa5f29deafba0cac5bff3ab217a90648bfb52036b716babc7a1fed794357b4f8ee96dbf2d083a1
+DIST firefox-128.7.0esr-is.xpi 630678 BLAKE2B 
e9fa508910c260bbe3ba19880f26c101d31f03238b853974e9af255f028294e82289273537b55fc7e5c2cc37e966f92aec65243a5fd6040b00c532001c6807b0
 SHA512 
4a4671ef535faeba0dfba5afa1eef39d1803510ace737665f271f51cf7e6fdf3a1f7642f93f77dd5797c023bfa1392662de1495596f72d6a7b533285b4ffff2f
+DIST firefox-128.7.0esr-it.xpi 584344 BLAKE2B 
0e2f576cc9d5b7c1c6227d87cb97fccf4e4ca7da88ca65dbdef7920c7a043bda578d6db78fd712c726d674fac44f24ccf9e552c193dcb4345629a74a68e57ff3
 SHA512 
4a75a3d263214d11d00e39700ef311378b10950256b34590fb4c00391e378610a71bbd49f41320633c4656d607aac984e242c96d2dd8ca22f3925b5b3f4eeb60
+DIST firefox-128.7.0esr-ja.xpi 691952 BLAKE2B 
9d9b914fb4d174dff9e01a2a27da7ae69be4b1927d53df84ffb2d2145c54dd867d7f239f27f82974e004d9e2c6083d84b6b0a45db72f825427125d57cc3f2e2e
 SHA512 
8d5c5de551f79396886e33b1199fdc6bac5b0969b3c9a1f84b8239b9b62e954fdde34b6e069d118fad5ca1cfe1568bc36441ec24ab6739991c898372a65f88ac
+DIST firefox-128.7.0esr-ka.xpi 662317 BLAKE2B 
cd1be8ff1ac777b96732582b0900a067d9a3f61c0ca476e00c095c11655d399c5189186aa5bebff4132a7d20f664b178951bb5c40df3728a0d5cfce82c73278b
 SHA512 
a330c2858a8b2087fc166d7d08a89dd246778ae23700a1a2ee241f1d9835b60f1588f052a05bcf15fc2cdf1ce89f11dc43f595b61468a819bfcfa4069df644b1
+DIST firefox-128.7.0esr-kab.xpi 619284 BLAKE2B 
996765046e2e0fcc9288781701da47af7a44ca03bb1bdf2279f7e796202112bbf9aff9d969d9ccc2048e26271a67d0cc28f787967335c7f7338427848c5febb3
 SHA512 
d84ba6dd112bba69534ae93819b12ef63e59f31ff8ff2a731627da81ac10d9eb62835ab583bdcaa0764191b07d66c8fe42a7fd5886b3bc9e83d514d431d00a75
+DIST firefox-128.7.0esr-kk.xpi 727325 BLAKE2B 
2643479c1f79870a5a9ca255b42530de886ea3497d321d2976894aee62f853da66fb4982c66683542593e80e07f5308bd309405cae3deceac2b6177c1de6d6a5
 SHA512 
34908a6925293e0b488af13b3155a5cdd50492e8bd89e67f911fc7bae9c401234732860b331861ecfaf161e30a4aa3ddec7f62dd87fc6d20694e089ba6f5c23c
+DIST firefox-128.7.0esr-km.xpi 527178 BLAKE2B 
3c6597c835b2ea286ae025ebd72746433ec84d6c19cea3eb9b0a365da32bd64191a65d2124f031dc4505d008eccf5c0733432d4e92c569c40fc2216cd4367746
 SHA512 
53d4e90429a8d318bbb2c720fff0e1d49a426521ebdba3dad2a1e4f9f6f2b917293595a4e9b912b96cc3b06d07a650b74cb78c4193bc20e7c121ac38ae640a0a
+DIST firefox-128.7.0esr-kn.xpi 492548 BLAKE2B 
b6c0af5c1059376f526cc945e8e1a4f20f672055ed964c632ef46e24a82e4af8a58040a20ede07dce05d073730f79dcad51ee7bd9979c951527bc31f70e3ceff
 SHA512 
0ef3b15d5101155b904513ebd64a8941be2ea282462252db8ac73e957fba005779cea4ebc047a20c22000b5b304c5ed06f2671363b99fcb877b41189572aca8f
+DIST firefox-128.7.0esr-ko.xpi 679384 BLAKE2B 
948b547b92e165ea2bff6ad817243766bea8bb09d558fbba193c9bd5c484c4d610d9fdfe79fa2edf731f3a6b795ea4f4514807a469ed21b1536babeeeb2f71f8
 SHA512 
09ac3c0db7802207d8a22b93581a170c361e2b706410c205e7f479924426ec704328f9daa82417d9ecaf4a4a08217b045122bf6490d97e6ba1dc9e4cd9f80b53
+DIST firefox-128.7.0esr-lij.xpi 485540 BLAKE2B 
60ad3114e58b01334b7d2b3ea3b92cf6fbb0d2581e413787b1a8f71da3ccfd26d1f1c55b7e48871b8ed78b8fd823e19544c205c38aa2869e5cd756074d21f863
 SHA512 
a5706941340de16a7d691e92255d2a01faa8d2bdf089647450dbe16e8405cb0787e1b15d5f2daf58212f9a23389a9693d997187f234e66bea4c97fec01f3b934
+DIST firefox-128.7.0esr-lt.xpi 574118 BLAKE2B 
9711278e06f0e560fc94cf7eca2f9e488ab41bcdeaca5848b0b3198529c13172849b69269e51eae52bdf75ab744e278bf980142d6dab0c6a0b7747bbc4d4276a
 SHA512 
1f05ffa418eace17236c0eb16e60e85017d913cb89b247125692bb230b98df5d0aa0c91da2023ac3f65cb2d07a8ccc079c7906115505cdffaa26755c28bcfcd4
+DIST firefox-128.7.0esr-lv.xpi 587212 BLAKE2B 
c2681b7304ab4343f7d35d6a2b148d56b294530088545034dc73e6c677696293b64a11b14b72b58a24610c19ed464ff5170f6a37caaa9603b39f9921b894b819
 SHA512 
65e6c6ad4d72646a3ace4593ac9760019ee5da05a5a11f1591fab321413be64d67ffbd4f40724a16499a9178a109864a407818db2b8bf25489fa114580b61868
+DIST firefox-128.7.0esr-mk.xpi 495164 BLAKE2B 
268a89c36e1f56cc33a4a82a1ee30361c05353607cde0bfd5007b16d7a6391203cd731e78dc909d3a90727ac59d209c85e5c6567e33810bf632889026d7de270
 SHA512 
351264d6e2359e8e219f0d6897cf4c3ba0626d41aaf44ce6570e820815fd77fd42e31859cacb1d87781b6298f3f421c2e00f76f8e954a46db1147ef8c855bae2
+DIST firefox-128.7.0esr-mr.xpi 533536 BLAKE2B 
8e3fefda058d6a94ba5e38285028f4a605efa6438a226c0c53e67bcf8941692df5f3f60449956b2445d3ff24484077d1bc1faefd5ba24c7462c46c79e044bc3d
 SHA512 
b429cc0199bf8e74378cfec1f2b778b4afc2020bbd69ddd159028cf3ef2441a73f800ef60fdd55b537f766f6cf5c026b8b30c5925795424cf1f704eb7634740c
+DIST firefox-128.7.0esr-ms.xpi 451145 BLAKE2B 
124f5991d2dd7160de00a1f3eea26989fd5965643b6f9f5dcc7aaa4fac4eca049b1964b14888fe41008dd2408164ec5be9de94b7e27bb4a76f7ae3d48ad80342
 SHA512 
93a1d4f60d388f50e5a10c60d41539a8ca3064a28a06380b50544e9b09877d711288b7ae4fe84d9ca5119d699b4c628fec7bfc16b30466d23678258c46a5f3bd
+DIST firefox-128.7.0esr-my.xpi 519907 BLAKE2B 
cd2c32a1a07f3a5f2d98bef5ce3cddfccba1f9788a94b89dc350f2c802f1f80230a765c4cd7f7e63cbae864990ab775a32dd13d3267da166a56db92d0fca7bb8
 SHA512 
44f22affc656e750f8e5788ddf0fa544f6736d46460fe89ca189207d0c1e92b71e3bbf6136a4f8e4022b22f0dad5e003569543b72218c6a7e8f28dba9b8a60a6
+DIST firefox-128.7.0esr-nb-NO.xpi 620016 BLAKE2B 
e38751f0c073f0cadec543fbe3872b97233edaad0932dde584d3828a4203bd472c822dfe741fc3b53fe2e44fd608a87fa9fc2ac9ff137fbb40c69108a0860116
 SHA512 
62b8b7dd394635a376ea893b6443f6d809b54efbafb6cd34f60ec14fd665f7b5595bc3b793aa24d682e4d50850ee5ca8ce34f744070cd7d451bb7c6198a29ddb
+DIST firefox-128.7.0esr-ne-NP.xpi 522150 BLAKE2B 
eaaa681fd5bff9be32fcf7849dccbfaa4013b11128e1ddd9bdabddd510a819521eee51a188e86b938e6e0a45f0bece4f4313ee014f5ba0e79c544e57a5370f37
 SHA512 
15a3b568548bdb6e7a9c0077d25a26e26bc452c4da2f0b83e0f3b362d5680156f729324e51561dba8e088a5f32d9b7851e49b8226c8c91c20c6119e4c36dd8ba
+DIST firefox-128.7.0esr-nl.xpi 634319 BLAKE2B 
3e2c93e9b88dd59f899a3cbb5e2043ad8d81626b491eb0c13482320ec15106bc3fdb6489b6dad917cb54835cdce2ebce698f66dafc04daaaded82633fcd0762d
 SHA512 
3a5ca8ed7a390f8fa1ff1428e464ad0117412ac545f83654fbe5db676560907f960464d5172755449ed3dfd18a18fed41dfef72b49bb503bb5391f040f449d79
+DIST firefox-128.7.0esr-nn-NO.xpi 622824 BLAKE2B 
0ff6b48abc184e6caa2e851ba759d1d15c43c8b0e64ad1a88a62c3f35e1793fb0c687ad52e08a37155d4cf285a5aafa70ee3f3d5cb0baaa69ed71345361fcdec
 SHA512 
dfbdbb24b235e6f83b95e57d363b35ef06922000aba4c8f9f92fbca00328dc4bb07d9519e230fefae658ecd890a60d9959834988309c36486dee90a4c4144fb1
+DIST firefox-128.7.0esr-oc.xpi 615788 BLAKE2B 
67e41d5fe310bb5f4c532a228d98cf3d9762213b3794709e1b01422c62b56e97e6b57954069971af11dcb9f88f9aa09da6bb2bfe5492e033e853ccdd8bc6194a
 SHA512 
89b6d950044423ce10b76d21c56955eb10139fc03e7f0c8d9b7e5b5ceb5ae563b6a11e9a95d839ceb87c0f294ca8bdc97b3a24a6ca863b7fba5e1265bb412fc5
+DIST firefox-128.7.0esr-pa-IN.xpi 711068 BLAKE2B 
c213219faac28be54a1fbd211c4e3feeffad79b7752746d19d027d9418b79cac0c72c932141b73cbb113f9b162edca8ac312490b10fe7bbfbba141818f6d33de
 SHA512 
00c077a2053e9402eb94102c1d51d19a3b5201875932ecaf1c97705f8656b3adb25476d6b60980e06552005165110315c5a99399d42247aa86366cdb049c10b4
+DIST firefox-128.7.0esr-pl.xpi 648791 BLAKE2B 
7c917f35ee5b001bec2dc05b0669f54608a5bfa0e162edfaf7d865543096d60e194b7b9706ea8d81a0b43b1ef51e34a71166cbb55c2602fe4d6e9812bca21aa9
 SHA512 
282fb1cb78614289f922992a92895d2f87239062d26ccd4fde8857abb26736339f45306506e22547a8a10ac3197e9f8138444c77ea82ecf9db3a42053df60df1
+DIST firefox-128.7.0esr-pt-BR.xpi 638904 BLAKE2B 
dcaf73f669ff48050c53960a8bf5c31bb35e31a6958854aad41a1f958867d190a482ac00a7ceeb84df51236df6bcf4f2f3fcc2d1db15a644a79ab1902b69907b
 SHA512 
d96966539ac61aaf47f6d0bf7b6f39682dc0c4cbda3320799fa67d17fe933625eef7c6ef2cb2bc3c53e2fe6a358a20928019a638473dc59be56b8886682a6be0
+DIST firefox-128.7.0esr-pt-PT.xpi 642502 BLAKE2B 
945bec76ad9a18010ffd6c1d525754420d88252193e7e982605d6af73259f528b5d01695c59981d908a1c57067266dd6a1556cc57fe822f64f547a86cbd0d41e
 SHA512 
9857306f575d00f560740083a045b3db7a36be8f694b4c40e66fafedffedd2d091b24c3e93953d88568f75f701427b427431cdd573aacf4fe83cbe967410a4b0
+DIST firefox-128.7.0esr-rm.xpi 631436 BLAKE2B 
4c8d165dcffd1a72c0853727ebe32bda6619e5a8c4e57d64cb4947efa374fbb51759cbde8710f20badb7018c21b6e777d983b81d5f8983e6311512d702723b4c
 SHA512 
b20b2e7c444045f3e3faf21384d96273e32fcb4f3bd6b2082ba91fa4ea611db25311d887af29cd7cf957dd73c096c6c33c5a2bf74f6b52bafd914b5c161e73b1
+DIST firefox-128.7.0esr-ro.xpi 551219 BLAKE2B 
a2b834fbf41e5298aacbef031038848bb6c1e1ce53db7f310258f2ccb64334bbdfceae9683d4a3586a6bcb24b56b124eb1460410f29cff4ee30180e2bd77a65f
 SHA512 
12e616de8eca4205b74f31d249f754f72a07d3cd402c13e500239879f1230eb475216b070f0d76864c426279b085c86b20531212550b6985926a042659485e60
+DIST firefox-128.7.0esr-ru.xpi 740411 BLAKE2B 
05d00c4d9d3d96714294a21ef0ecceab3294defe56f1b52dc0d0bae8d7c6477cb9ac2aab7e1cf1523773ed72a4ed553093b87c8b70b180394e813fd75e67a9c1
 SHA512 
9038136cde24e027f20146cdd1ca6a447b244b47477bb2e3f86e21d9250126f8c66809b267c662902d6cc0f27000b61f01d46f2f14948e8072bd8f1bd69a8b6a
+DIST firefox-128.7.0esr-sc.xpi 598928 BLAKE2B 
9c74330d7ecd4a6a4235928c507d063830ab6e28a2b93c341e46c8904d14967f9df5b11deb0599703753b278098b7d0bbc4b8bda3938a296f9120806367f4a2a
 SHA512 
5116bb2ac9a0f047984d2879ef7ebb845d5a1505d0e537e42844964d4c4e942bf4a3f294da61b3393ea48ce6679c0f61ee42e897137070bd91ebe071c53a6473
+DIST firefox-128.7.0esr-sco.xpi 512689 BLAKE2B 
08574018942cbda4bb29f65976c0abceeb0f42795894f74a0f8c8d983a853f641092d3c82cd5e696274b768e82d5d41b58887308ea46241a97ec47b5feb06a4e
 SHA512 
247348eede7945534df99e2ab0db1c139c82326215e30270f187ae83cc0275433434288578347b14e94b48c6891ee0c671061806bf2fcfa5e3a4e8da3109864c
+DIST firefox-128.7.0esr-si.xpi 621560 BLAKE2B 
b389c17829334ba6690c99fc1fa3958018a4a34755aea8fc7b4b6421039d70eb5b9bf2d87ec992e1aa184ce00d3b72781cf7a693f76bf9e8e378e0dd3a56c6b9
 SHA512 
390b59b7454d6b47eb484dfe94d8d891c17e482c88d21db60ad77e74ab229b9a6c0feb7a1d757ae6aefa52973521578d5f6a11d354301851ba57a0958ccad7d1
+DIST firefox-128.7.0esr-sk.xpi 670797 BLAKE2B 
e116ce5e829e9c913fda86447dc7ec2809cae1b87d9f78de84c3ce3e2bc13a7d5d0bca871ebb45d9b43627a21c2984fdb3d608e269e25c948d94a75b6bbdb2a7
 SHA512 
d5c1870dec6beead2fac388dff8435df3d82cf971d41e980d05e6d3ac114e5a33a944b38369a8596c3ec79f92e1b880d8cb294c046183c3fc111c308a89c1933
+DIST firefox-128.7.0esr-skr.xpi 722718 BLAKE2B 
99a2e8c28f611ad00fd432da3a26d1fcf05a85583b99be6164a2e6c35838a7ca16919fe5e6c9fe00631e1f4ce9b7e95f29687fc007206011613098b12a94ea03
 SHA512 
daf4c7b29876b01649126425680895625455e604da0a0558d5ee73725e21d7ed4432ba514077b889b6530727ce63479e0f6beda9e5680498d394d4b33846d541
+DIST firefox-128.7.0esr-sl.xpi 633851 BLAKE2B 
0a3272001301f713bf9ed00719fe70f5ecfafcb52f7a6f831e0586b4ff68e0ed1def6c3b67aeab2850d3a5f2317547ec5da9ef6de5fe3df62b583d747dae7507
 SHA512 
2776585628cb1dabf862af5bd7c3bdf73af17cd02dc9b6196c25c3bc00faf6ce46712921aca5af128a6452398c651e87579608bd837f7e7b9d058d2bc5eefe68
+DIST firefox-128.7.0esr-son.xpi 417712 BLAKE2B 
8cf6bae8eff9f4b946e9a7501655b815336139694b9f38e7dcce74b9328988dfe70c1cfe33f7c36ff9db21e892aa8d8a58880136ec3bdcc055fb3a30ac1b9f5c
 SHA512 
2a6372a4dbbc8d016095bab8dc10134355924df1b4359ce3369687829340448e749664cef778564bbf9983ba4f7203202c073c88fa4aeb77443efc7acdd9e1af
+DIST firefox-128.7.0esr-sq.xpi 652190 BLAKE2B 
9d366dd4d20b279a26d941de02ef7d899da591ab15e6f9dc5cf765f44de9f93cabba972b28309821c2a9f5ab280de9403142c885483613d3c90c01cc3cb38742
 SHA512 
e029bd46301ca976d05bae682582a08e27a7011ef56332ec8a0c3837ff38ca85c28ebcd56399cd2e277e963eb5a1a5a6a0b82c2e0599a741a1635a0ef3ce41e7
+DIST firefox-128.7.0esr-sr.xpi 640904 BLAKE2B 
6300348ca3da0c2b7d0cddaad074a59e7235e1641082506efcdbf7008d34a44599510b72d80fe5e4184b2e7e63ba5edcf4a98552a782692d6e7fd93e2099e151
 SHA512 
8e0ea23425f43d0bf59205343843f5897d5bbfb4932cde90b7672c5dd7c569b0d1edf2af3d896815739e8d02e5c8915c30fc52db0687f0edf71047ba92fd80b6
+DIST firefox-128.7.0esr-sv-SE.xpi 635651 BLAKE2B 
cc106559218e46ea06d5e340ad78a80fb1d0074d9e6276d243e59210d94ea76556b8e4fb86af1888c907431ac01e03de69cf599d274d678071e83a0e6fb515e4
 SHA512 
51bb6328afc91a3ee4df5438e99ffa869058c21af724267087b0681eb305e8f35bcdb923cc5d9bc3032abba6a98f9380e71f9a723a1076a8b8f855f124770aeb
+DIST firefox-128.7.0esr-szl.xpi 527825 BLAKE2B 
3c3dbc45eede87d9dd17e1123bd797049236ba2608fc83237b017cd66e2d68e6e266a21d564c95eb9fdf215205feb377503c6b3e673e11cd1558122df58a5519
 SHA512 
858409e6189e3cc9a2e01e10cdf02c54484dc5b0a2e5f02fb5287b7fc59526b113d40859bad9e1095bc20f256515f70008d498de57fbcc85da58668e116b76e4
+DIST firefox-128.7.0esr-ta.xpi 508804 BLAKE2B 
074faf25b48574c392f5c0284389818c195f54044ad3f0b622bae99acbd9760dacd1252528c08ca18103348a95a23dfc5f725415e498c8f000148c64da4d0560
 SHA512 
c3e307a704ef9466aa22dfafb39769fd013487c24b489b29ba5fc4316c130e3194527bfe1ed79813e4943a8be7942059895b9ce07c8f26e5ab47f8c9aa79910c
+DIST firefox-128.7.0esr-te.xpi 565170 BLAKE2B 
a23016f2268708443f541cee6fde09ae715d95c164224a5908902bc6408ae8f5168f7e2cd536b5c4d2edef6fafb64b803f68c38314a8f817c20af0575af8955e
 SHA512 
5a78c2f212e33ab8879e16291ef6c4ed4a2024d6984c04ae46f35777f0c7760ce5f12079f783fb16d3619d43874b4bb7fe84d2cc0df46ab557a9a4cc7f0d7a9d
+DIST firefox-128.7.0esr-th.xpi 711787 BLAKE2B 
af023c3fe7f90b625eb3c7cd20c82c90da2154789b464ee2c472430b4846cf02f5ad86ef9fd3b78da6a7473554351ef43963727c1a77ff8e51b4d9714c9502e5
 SHA512 
129798e28f5927afa37fbac3a2c7fb1ecf819baeb3f0bc769629c9f330c247b99d8224cfe52111d40177f909f8c924c3e72b476484cbaa07c0675c91968066ce
+DIST firefox-128.7.0esr-tl.xpi 535613 BLAKE2B 
cb44f58c7d64ef26547d90b33286d03e9bac330046a782ffb79b6156b044362adbe663339e4d5942b469216a27a97abd17e928c2599c40595bd7f2572aa9ef0c
 SHA512 
859c7f00780631db0bbea50fbc1957ae8047f8e65b4dcea35b0c29a33d96a6163aebf1edbc0f589d68e33afbe60601feedb28d746b2590c555ce636634d120fb
+DIST firefox-128.7.0esr-tr.xpi 649208 BLAKE2B 
684163a4797dc431db6a5979f048e146ccb0fa11b5011b71f66e9698748a572ac6663207e6ac27d2268297e095ec18bea16f4617af72e132779fbf1a807cafb9
 SHA512 
8360ee4ec520d0fef0d19701517a446ed3bfda48c5e76615677f3ef3e21ff176d4384f6afc727c73e5958781b575d04cd6f2e919910df784c4e5a5c97b6431c4
+DIST firefox-128.7.0esr-trs.xpi 505791 BLAKE2B 
6212157a0801f4ba66aaa6517c7d971499bc5e8505d59b1d7f3c17eaba5eb96f861edeeb570916b719bd14a1697138bcbdc13f2ebfeb42ca2c1dbf9f0618f73c
 SHA512 
33ae70d2f59b14022fd640abd3cc5d66f0584332eebf9cec783026b646d12d597c9e5940e65cd7a062a4c2bf754aa91846bbf56130669d190e729526c90fdaeb
+DIST firefox-128.7.0esr-uk.xpi 731686 BLAKE2B 
99220a16fdd4f9146ffc950347ed782f1ffaa9a3a58f96cc02f19b6c1eea5ca96b9914b538716d7948d65b81b72235cc4737acb3edec9bfd925a5bc9b0b9e171
 SHA512 
b60f5e0bd0f14fd050c1f0382f8609184083647cb81f28d5691dfbde941153a0df2bf8f6dc75ae26fa1e7ac342c0faa8ec441210be112cc4a513b7b19b89eb5f
+DIST firefox-128.7.0esr-ur.xpi 561779 BLAKE2B 
ed14106cf11a82a74f4842b44b2d6a0075178b7a2dcfab48e0eb6a348646857893c2020697fcfc2ff7e2b7cd33dc68fd6e5f24cb1e6bd4a5d7b61b7a9714578d
 SHA512 
f68bfd0fbddc0dbb12ddf9d29cd4b5baf8d795040d5059516740e3df09b7e791ff51882d21f8ef8d746cd12bf52c2b34a830a647a0b1f231a00fe5b63772e4d3
+DIST firefox-128.7.0esr-uz.xpi 480212 BLAKE2B 
2530f502082bdc1ea377b821a7fd220557077b80bf476548790cc2561530b586a014b71a52558fdc4aa9868a51a995f208efed8a48834023e09064139ea54d3f
 SHA512 
df42eed1bfe2821aaeabe02324454ff76641c674c48d3f14f681ed8c36eff4967b13002e41bfa8aeb34fbe7e57ee2e3e9a8027b2d3d009fb6e5b751f535fcb4b
+DIST firefox-128.7.0esr-vi.xpi 673226 BLAKE2B 
31ffe88a73ed83975a81e541531c4a985c25754d0b055363920ed4287816a0a11cbdb88055613bd1087d96543444c98bee6c74c72ac4335f332f97607a43f0d0
 SHA512 
99cae768c73f615683b41e581cafab1a5164c366f7a7d8020103878eae014fa214cb2f85705b15c1656031314031f45f36b273326ea7291abe8866c0aae9b243
+DIST firefox-128.7.0esr-xh.xpi 418474 BLAKE2B 
b44cefd8149e389013cf36495c62be4726ba97e85278321c9853156f85084a9470346c0f88a446f6ae6327cbacf04bb4c8456da3c76c84f9c3b03cf608e7a28a
 SHA512 
2e3910f114fc2e3d7d7f8fb8a0ffafe7f2528a5b8ee9689ca8c9fe5eb93d401a9b35bf06eac8f89a47fa45eb3108fbf769309108dbc46f394a2b2c65be5eae43
+DIST firefox-128.7.0esr-zh-CN.xpi 675201 BLAKE2B 
e07f861f85c0abce293798029206ac795755eff1647bf1842eeb2f7169217303041d2506498dec27e5e0c679534bfc8450477a169c16ed8744b7b8dcde04a3fa
 SHA512 
9ebeae24f93cc2bcb49b8c482ff474ebe3357286d2fd35864e4a1e156d1cea5933fc776e18b75fc686ec84f91e355e49a8ad9e5f9bf044b8ca3a7d0bbe2bc0cc
+DIST firefox-128.7.0esr-zh-TW.xpi 677437 BLAKE2B 
f2587278e02f26340261501b694c372fa7164b2113572176305263c10479466fb481e3bc5d857bfd068caffc5c7efdc9c6a77506eb955b035b0c707fbfc3af39
 SHA512 
d6b2df29a1bc98e49a96953c315f3aeb4fbea66fc9691d37085d0946c3710f6f0174927fe7103009343cc038f4eedbadacd592a4eda24b1d3f7f395474853c7c
+DIST firefox-128.7.0esr.source.tar.xz 569300208 BLAKE2B 
08bf5b571707b7a5acf1ebde12e370be5999e3ac8cac2e952fae635faa16e07ba4d9d0a00b304ba43b5a327c825cae04c1ccf8434456e27d4c396e5b09a4b6a7
 SHA512 
26f9661b395b85a44b42bd72ef1ad976c614216c68f6c2dd834d0ac8b84b9c9f398b8ac550a47396995d96e6bb5fa9a50064d7f2f526bddd45aed5039ef131b8
 DIST firefox-128esr-patches-07.tar.xz 18856 BLAKE2B 
44d0ddf11518c7eef0a96de4f475a6ae1535e43e5bf89b8f61dc95330f28d6a053d08e6a183cf71432107256c83cd6ee6f742b235ca82babe4dd83698bf80d07
 SHA512 
60b4f18f5d91fc25f86cceccd561b55f167299908fbf2f9d7d69a8ce299c643f0b538d613d4348e42dd17c3812e4fa315e15004614af1f40fbe2adda417a1a81
 DIST firefox-128esr-patches-08.tar.xz 17564 BLAKE2B 
d904b74fdae2e76866ded11de5377a7b6883d35996b358ae3419ffb7da53b04b2c7d4bb10d48998a8318a84e8221de39955289cb33a8f278c131b4af2006be62
 SHA512 
344a2d04dec679cd8ed714dcecc9dd5b56696803cee9267e7c0c45c439d78728e7eae674bb5f0a64f2e5802dc59c1ec25f1703885024d88bda8a02e2b3e0d69e
 DIST firefox-133-patches-06.tar.xz 20296 BLAKE2B 
4665a955e844460ecad42bb888c15772a16a8c28ece22e3130803cbb7ee00272c067ce160525f45efa4441e1e74084262ea012ad5e9b30afa7ebd66ef5abe7ef
 SHA512 
1b630605c4b91acf56deefb476d8aaf2ec6c37b4fd79b09fb2eeec79113d92c8f3417301afe8b0da4d1992291b7c17d1eb37e877de2c3d0503021b0eccc53c7e

diff --git a/www-client/firefox/firefox-128.7.0.ebuild 
b/www-client/firefox/firefox-128.7.0.ebuild
new file mode 100644
index 000000000000..6448d4c13a44
--- /dev/null
+++ b/www-client/firefox/firefox-128.7.0.ebuild
@@ -0,0 +1,1376 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-08.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 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-ffi \
+               --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-nspr \
+               --with-system-nss \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${ESYSROOT}/usr/include" \
+               --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+       if ! use x86 ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       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 ppc64 || use riscv ; then
+               # '--disable-elf-hack' is not recognized on ppc64/riscv,
+               # see bgo #917049, #930046
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       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