commit:     eecbe5af5cf559364fc5f9614e6f103236699a64
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed May 21 08:56:39 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed May 21 08:57:13 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eecbe5af

mail-client/thunderbird: add 128.10.2

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

 mail-client/thunderbird/Manifest                   |   65 ++
 .../thunderbird/thunderbird-128.10.2.ebuild        | 1171 ++++++++++++++++++++
 2 files changed, 1236 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 393ef58ab68f..81121f415637 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -67,6 +67,71 @@ DIST thunderbird-128.10.1esr-vi.xpi 790627 BLAKE2B 
191d11d802dc6cb6cb96f9cf1f2e9
 DIST thunderbird-128.10.1esr-zh-CN.xpi 790965 BLAKE2B 
c0b33d73490a48ec8650a9177e05bbf0c686b65213e2244e6f94315941eb648f89ce9bfd6225b976f8e0e19a30d643da21b6a48468229eed889ba105c53d9e46
 SHA512 
abeae6372c7a7587f6006298dc1de002f3c61d62690fd4ee1bf98e113cabefffc4931aaeddf9efa094a2c35f83ef0587dd0d2f9606e6e9f0360d9093a8d207cf
 DIST thunderbird-128.10.1esr-zh-TW.xpi 794258 BLAKE2B 
293a275cb1a1cecc205648a64f07d129af6800d26de8370cc9af311facd54fdf6ea8457c84264eb8982f6e16470ee3d018ac89bc19603c4390a4b443c75f9b9b
 SHA512 
7560191fbfc4c683a8d6c47e24607308f4a949cf659c3aa6fd90d6bfcc5f9b116bfb58359dc31327c164caadcd8e1e289fc2919509802861406e874135bd7f2e
 DIST thunderbird-128.10.1esr.source.tar.xz 677156592 BLAKE2B 
c7861611d953b535e5f62e61935bc47c74508943b2bb2a5a9d401f8702e8ccabf8600c243c83595578c29d2d0ab376563559ea2b3049fb886b8a63577dab8f71
 SHA512 
09b54450928c6e0d948cd79a56c28bdb5fe5a81d7c710470a1ec195dd295c433b872682102c74930f19b1184391c30115293dadcd7dc8a08ae8baeb12770ef9c
+DIST thunderbird-128.10.2esr-af.xpi 534914 BLAKE2B 
74eb568898c8b6d52aa7d915ee28485e0c5588f579e1efd930bd2568c5efc710bf2a0931d5dc553281270090c099c751a0599bfcafca28d2f047ac7eb5a34f93
 SHA512 
57f7ffa5f903932adafd6725ee098da020946bb3c6837ad07fe9e348a5240ef02416635d20e19a31d51340c64a3ab67c998f5496082444a8a7797abe50602bb8
+DIST thunderbird-128.10.2esr-ar.xpi 686463 BLAKE2B 
4f51ff9cfad62911321c55b90d548dcf8160dd271a652381d4a3d931883f6fde2bd2ef518a25e8b025c29aacecdd919a629d0d933b28c08854a4aa3560559b3b
 SHA512 
7de16534b253983898db88aa0b0c3b31102e967379f20cd5f6f65b25a96a571bdf00051d2aa780855d5c1a66a807805294eaa15a232318a7927aa87e041faff1
+DIST thunderbird-128.10.2esr-ast.xpi 574781 BLAKE2B 
e033e37c6649e86881814959148ad3fa5937ebf8d0334fef44add1c94b759d73054cc6e751f19fae92d827ffb2dbf9263ce721289d7a5bf12d6d9e4ddc612a67
 SHA512 
9c0363acd9cea60169ab18a6067c80e964646afce34ab6f0669e87b91705f23ce16d4a3f37f8908d5b9b3266578064e4eefca16c8162353ce9f91e548583fda5
+DIST thunderbird-128.10.2esr-be.xpi 781612 BLAKE2B 
f9f23090e94a1ca703cc01ca5562d23fbb506f435a7c52c6e67b3a6ce4da59fe22d3a613d4294a7a6a7475941ea71dde45509f705a3f854cb284f54b1f5c9963
 SHA512 
45e8042067fe94cb30e1dadccd60e30fcb762667ce66a253795787d59ffbbaa68c6348f091401691fb2c040c32bde5e0fdaa53dee3c1ae13bb94a95c1d79be2e
+DIST thunderbird-128.10.2esr-bg.xpi 814009 BLAKE2B 
ebc4720580902629c202d82e7f57455b5ec179c65c1c830844fedfd1de505d3c50dc13009e3242324b66da68839cadd737af92083a1bce38e3ce5f1d166e7350
 SHA512 
eccb16c0ffb37dd10eeaadf4d14239df6fd208d36bd231627fcb24e21d54de1841f239b543ddee78972f2dc5502fd98a1faddaba116fd462b9771dca9b5c0b78
+DIST thunderbird-128.10.2esr-br.xpi 650140 BLAKE2B 
add0de5637098519c73c8b3475b46c911f87cd7708a808631a8196bbcf55df768d318b0213efd2fa441c0d4c42315c1921380a6de16bbf8272f5dc2031b54c04
 SHA512 
1cf520721b293395437862487ab7dc468d3de961d093aaaef498bc512315c663888ac5033e623a1de3b555aa64b49253057b79a488cc5d37a74baa16d225cdac
+DIST thunderbird-128.10.2esr-ca.xpi 704674 BLAKE2B 
bd8b26543e9891713d4e1ab7952c0cacd671a1144543d63a6c0bf981e6cfe087c56dc834261a0c127a4d75cf712f734aca15a1c6a72e217da4620bfd5b98f278
 SHA512 
a1a2e18cc7c6d21e180b2e83fdac16fa07f0de6c821977aa125d4e4c5fb3040b5f53d4bc9e9abd28a8eaf4472695ac3ae06680c57a8b3c9f2bb3a9897ce9d19c
+DIST thunderbird-128.10.2esr-cak.xpi 669096 BLAKE2B 
2ad85321d5588d61bc096d1ea2f51731e1b47b17917469ff3b2bbc3c7f5e0ddb9d9604db4f7b199e1608afd36861e31682183819fbb03b52e73bf205c869d099
 SHA512 
ea7b03763ea71c05a32be704f93bbc160d2707fa75553020cb2fa1e62ca376c9770326f4242c459805d70b19a9960df8d22f2c6d0ca2a9d384ef591e44bd0172
+DIST thunderbird-128.10.2esr-cs.xpi 789858 BLAKE2B 
f7eb7eb5e0abc5c3ff45b893b76da4abf331f659b6305fcc22b31facb9d7eca4c076905bd267f817f345fe113dc04a776dab62a59318a636b018892233283389
 SHA512 
8421c78fefe34bc1fdde572541082e5e8e0f70e487b018702f6e5af3b3409fe8e7ef0491b4f00cb99368ec5852f5fbf9d49bbf497b9d0fd7fcb683c9cb2c4e57
+DIST thunderbird-128.10.2esr-cy.xpi 753578 BLAKE2B 
3609cad316b3d714f61d57fb215d8ddae8b2732103bf4522945998eb5d72f8176a4268f32eb4fdc9cfbf7d60ac943cccec7ead34e2d5226112762de694142893
 SHA512 
875ea9b558590e67bc7ffde41ef7f7b526d481bf143ef4d9870599a9b46384568f1876a85e8ea9eb054c65e590a6f3bdccdd582e7cf3644ddae1d7791019edb6
+DIST thunderbird-128.10.2esr-da.xpi 738602 BLAKE2B 
16a2bc677197cdf6fe0c3035acb0114f17e7615d6c0a49548ac41883b8d01a9a673f0ff65645d6d8ebd651187bc9653b21639b8d9ede9c6b1c67108fb381cea1
 SHA512 
8db6f02069cf5810ec89f6935afaac38333ef82d00b4026b3c3b947eda59275c50d6a5ca31873e2ebcb6c1ff84a264c31f385f1710d89b8553766dd61d7eaa17
+DIST thunderbird-128.10.2esr-de.xpi 771421 BLAKE2B 
7b9a03fed84a3b418f99a92499f8a13230aed2bc9eca7cb306a6904ecd4aa18b83490aa4fe3edb4b7942930aeb9e11e101bdb911de87911acd219147a825eabb
 SHA512 
16dd8e2662da6d829253e49d7b45b8f6aed23730ae5bfd06fba70720f9d6c82363996929528d4d848f9134e8eaf29344e6cf2bf70dcb41d57c877cbff514916a
+DIST thunderbird-128.10.2esr-dsb.xpi 787499 BLAKE2B 
138c5207524a2039cc87faa82f090f50b08dbb41ee67bf21ce40fd2a3c1368d73197afe02a6c93a1a3c06e41d3f1ef94e6052fa298b018ba444d894c1dc8fe0b
 SHA512 
bb630f1467a5ff384c0c005124c5730c84a7f62ba0051e97b40cd110e87a636dc9b961f71bfbe89e3328885d851a25a8b53357920ea77e2112767d5dca4ae534
+DIST thunderbird-128.10.2esr-el.xpi 892797 BLAKE2B 
ab0442a8ead7d488d267a865503fede8db0c7136913abf27313ad0d6091f5a80b24c678bf5b8b5226d9e6bd8bc93fcdfbf78bd6143345cde3a99d4d8e4a0f369
 SHA512 
71e624bb980048da4babc13f5322f178c7317e9e3686f91a01b692c9a9ac618b354887de6402c94873a8dbc269cb2ec2b2ca18d4c263ac83db3521393e98aab0
+DIST thunderbird-128.10.2esr-en-CA.xpi 705370 BLAKE2B 
ebe859bd0790064e05b7c5c781d8d48cee2b5cf6ae8173de8e42d8bdf3bcb546a1573a9ffcdaa313367ecae73ad215f549b542c06a0a6b8780f00fdc887f8539
 SHA512 
bbc270d4ef56e6c4c427c8a71b2eea23140461c73a565bfd331cfe086cc65d4cdbbb0bd38a4287457a59bb56da6848d820d3408f6b5ce05fe2161eaaf828635f
+DIST thunderbird-128.10.2esr-en-GB.xpi 705109 BLAKE2B 
5b879dd09168651730ab544aad611823c5a100e44922a800e49ffc9c291576de33a5281e91ebae808a232ff9d8605acd331cc6949a96967df713d1a696c15731
 SHA512 
40639378cd0c30578ca7acc9c37dfa94335af461eb26fd54270aeca3e232de56cd9c837b5b931d3eabcd2038afaa1c18105aa671e31fadf23a724fc2719e03be
+DIST thunderbird-128.10.2esr-es-AR.xpi 760991 BLAKE2B 
0f5f7438bef440a65e8f7facf78683c9ef8ff0bb24c276f428c8cad25f55eddf48d26cab8a9ca218108ff20f300c00f9cc3274cb7d429c992d1228fcc978c514
 SHA512 
e6726e63a6b187885f20cedf2330dbee6d0e0abfa4158ff13d69af70d71331e2ec170182d40990febd69d70462d5744ae0bca539352d8bc38af2baacf9516947
+DIST thunderbird-128.10.2esr-es-ES.xpi 761586 BLAKE2B 
c806ae0a9397c5f948ba37a2b212942049cfa57c53bf0053e07b59d1b3b02483857268fe3a60a7549aab2854cb6a99a48db3f9512e311de40fde3e1d3b88920c
 SHA512 
8cbcf2c6669ed5a7636907f0d033b2ce97645f302d6716af00ad86d2f81bf62876094e63dcefaaf3b96d44fbe3770b99e37df7289b9f39308a241438611499c7
+DIST thunderbird-128.10.2esr-es-MX.xpi 756970 BLAKE2B 
a69b59bfc4b72d847032f5ae04a87e6fa34ee28f2f6f2efd70652f2a1ee2d6f6be2a86ad55244bbb8722e2c763cbe9663f4a93e53ed1d5a7515c1e860953b260
 SHA512 
61d7a4e30a4b170a2b47419f7351ea082b48f28128fcc0da07d61eeb970f83943cceb1fa8c17526889dbd9407b992ddf53d1d6cbe8ab49846d872b0d0d306118
+DIST thunderbird-128.10.2esr-et.xpi 692377 BLAKE2B 
cfc77cc08335f0e0f813dc92df268008c60595727f54b25b594b2cc27f2f2585d0bd3532b73ae3888af41eaafeacc1d0221da5bdb2aab7f14e7a0554d4749ff1
 SHA512 
6c447518f70d2c156431382d67d9037b97a968956727447f14d196b7bfad233711db0c95daa707eb8475657491ca4ce3b6d3fb23f77b11d532d31827adfface8
+DIST thunderbird-128.10.2esr-eu.xpi 737440 BLAKE2B 
a58f2ec3cca7b158a4bd09afceba1546e027f6b393418157787e7c0c378f6803ef7529e3773cf9a707696d090bf99a83b6e7c42d6af594be1cb2b7ccf950d010
 SHA512 
5a34c218cdb0de8210395675ec32dbfc66dfed371a8be92377afa8d4f85ed6b47e82e487e5918871f7975ed442f13e6f5cb3f09bf05fe048147e6d4b9902f72d
+DIST thunderbird-128.10.2esr-fi.xpi 735348 BLAKE2B 
3847b83c568ce93beabeb8fdd50e548cc3fb0b4c4582d81a5ac96b874589bd8465a13a3fd45c1f89e1d281d104f6e096f95f3ec51fe742089d124a22c90cabf2
 SHA512 
5be7fc1f14e860734550c3eac00585286fbc229c6098722338c19de0563afa23bd4dd55374c35bb1d4050c0d039aca6fe0ac37b37c841bfd1bdd26278f9a9c21
+DIST thunderbird-128.10.2esr-fr.xpi 775200 BLAKE2B 
3c48124ee9aef5cf07f12d834269f4e1a9723dccb015d77720d7a9af0b55978e573bdeee5ad9c221ec7d35d200531ad6f0fef64e7f534bc934a78bf697594cae
 SHA512 
e81203b74539a4b638224f095b4ab08c72a58e70ce9ba71acea6706d30dc817bccb81e05a159995f37eac7ad1a231421161c9413c12c6074a9a30f2b35295e92
+DIST thunderbird-128.10.2esr-fy-NL.xpi 756476 BLAKE2B 
dd5f19bbe17d54f7f35ddb0dac83b44ab090351cff367afa8cfea7d7fafebb2f28f4c647da15662b79aec826026cc7b1aa570e8557aa65510f6e89f1fe330339
 SHA512 
3149c4eea9f10cf2e22613cad42a7c0771b7f1ab3b64426474f598cd7dd4b86f471cf10440a7ec67a6f4f27b503f861ab392828cd7076701ee96cdbac19eeeaf
+DIST thunderbird-128.10.2esr-ga-IE.xpi 614301 BLAKE2B 
5a8294836f8ed402003a58c3406522a97aa8dbdf838b03787424bca61ea9c7cc5f673e1fedd5f403752d5fa34c8d837c6c4df71b920e0cf51cd2052a0673547a
 SHA512 
f96128d5fa113ea9a67af3da41b609d6bcdaec9d4ac402dc1bc893208f27af60480d7ec2b6e1bbf9743a10f1a20b2ab28cd056a826a5da1e4b77de730956b13b
+DIST thunderbird-128.10.2esr-gd.xpi 723346 BLAKE2B 
de9b0dc86d56af71804c67f940a8f4ee00e756629b38f2de2b1b52ca6d3295547846cac51d9a66630a09940f67cd24d6afcb20de54080743f1b8df81f3b33d0d
 SHA512 
ba660a714558bf81830b9e7c38bcebc0d810d677953f1072dea2f4c2895dedde35c760dd1ff4f33a71f95e53d3763c77cd2a0c70daef0f2c53a16c7930537c82
+DIST thunderbird-128.10.2esr-gl.xpi 738663 BLAKE2B 
6ee3cfd9ad1a62ab2e76d1fa99be7302714083605ad162c2937dc2cff8d1050059fa5269d4dc3043ea6c0dedcf0207b9b2c3de8482c64834957b9e7eb2461400
 SHA512 
0708c09e88ae01e981d481600874ffae19e2fbeb425a80a0f7234b88ca2da4403287754c39204a2f9158982a7a0e71a67717acb1dffe26e2af56c7de15cacba8
+DIST thunderbird-128.10.2esr-he.xpi 697002 BLAKE2B 
f30f9d4ad964acfb703077c1b8d88d154dc2a6bd034e8b80867b11e4d738ce6e9e2ca2e5cb78b5883dd1ba3138c0a58256de472646569263b02e7af1b29b707d
 SHA512 
126010e12eb650967ec466e05c6909841dfb50576791ca9aeebc04d06710925f4fb26542ed640add194a6f9d31491e67e55281ae035458461b2e5020500d288b
+DIST thunderbird-128.10.2esr-hr.xpi 724040 BLAKE2B 
ce475f3c30721f88de94c18d5896871181268c22e450ad13274ea62328096c1651e277c232e7ea41b8b4d8d9466ffab27593a9a817cb664ce3c142c9417e5c44
 SHA512 
ccfa15b40c8f2cc5001c6f1c06ef0d4e6ed0878393e6ca0fcb823edaa2a0b1772ddbe0501fc85627aa0b90e48e89432cc06a8dc33509eebb45cfc7e4336161c4
+DIST thunderbird-128.10.2esr-hsb.xpi 784037 BLAKE2B 
78aced13ccd75cfcc8ddd8f9d770ec74bef2d56b6f9c7e50aaf40fc140079127751fdff9947e3c2f90cd7fb3dd77892ddc6e5458b71b2e905cc71de8f4123ed0
 SHA512 
3b5be7686963c5b848393becddd0b8dd3571e2db98d4ca43c18917735ce4c5e298cea8d11d385df044c515d379d29de764f36ac9a394cc6fcfc634536dec0b47
+DIST thunderbird-128.10.2esr-hu.xpi 787701 BLAKE2B 
3bf566b9e189103c6d675a2f773763158b4d84c2fc7b5e24f139f847bc6f28a47f97ffa7af3fe656f8502bcc3d6961ffe0ba5a3c59021dbad44d0b0a57fde1fc
 SHA512 
39df1e3aaf8ad020e7cf2133343c63ae59b372b026b22ed754899c37881f5899e8671fb3fa384c5c03df5c8ed965722b042aa8fb5eb3a528c5363e0684a595e8
+DIST thunderbird-128.10.2esr-id.xpi 721180 BLAKE2B 
f5ac56739f056866f06dabaef29ce29f9b05d632dd477fa34cf3ddbfa7b1f1ee025c26776dc405885581fb042e475fda13f713b18fe19e35d49e951e6bda2e0d
 SHA512 
d3e3bc13157d31bd1b8a7ded9290040c885162fa69024da976ef47f044e3d1982dc38cf11eadc1ddc2b61ddcd57d0015ea8ac985253257eb5f5fff87c349c747
+DIST thunderbird-128.10.2esr-is.xpi 750936 BLAKE2B 
fb4a50444dcf92f5c0e196d9e64b403051e6b03be0b1e8cfdaebbe4bd539a7add2deba25d88aaa31eb7e99d8b0fb9c365703decd13af58c2c2cfd81e9bc46833
 SHA512 
ed5920f1b2d18da109955c3f60e755fb94acc42d8d8dbde0832a4259a7550851cd6fede67ad9bba02c64b04b3bdfca0256e18903c61e6f1388595a0a2ac58929
+DIST thunderbird-128.10.2esr-it.xpi 752078 BLAKE2B 
d59097283ae77625a4ce957bfb9d5d270c83bef96f19b9508c72eeecb9c37f195f28251b19474dc545987305b984b21632558169f4ad5ddc7d43bb4c38c9d2d1
 SHA512 
854feeb415299f3debf9f008e6c09a07b13551deecdaced2f83a0479c61e779fb217cc781b532e98b0743d8f86d967c2d8cc847c351ff4cc838deead64a40566
+DIST thunderbird-128.10.2esr-ja.xpi 822947 BLAKE2B 
d235b54e00353d1e54559f00dfa84bb1dd08fa1d18a23224f2510c2c9c9553b589996dd67f1b6a82fbb8f94ae9bc4b92c650560dd1afb66edf1c48bf8fcaf824
 SHA512 
14ee4c2e81167bd19f6f6e37c49413097b4e848a8e98ba783b4ff6df87b086d3978ac513b5958c3813b4d6cc3699468855ae7c9263041631d9c35845d00a71b8
+DIST thunderbird-128.10.2esr-ka.xpi 814153 BLAKE2B 
abd06e8d32154a7befe35e0c1f03cd0aa0c3abc18d8d4a86fbdab0495ae1f05623bad66418305265f7445eb941ddb60e05a7a4ebd699c9bf8961ee2d77502d8d
 SHA512 
91cc110d2feca3202a5617a8b8acf70bea58370c2679ba82ccf66065afc6dd3b0f43b5ea64a84914f465b0fa17f1a589c0ff4fc60459e8880e86e758b84ab8fe
+DIST thunderbird-128.10.2esr-kab.xpi 729660 BLAKE2B 
43200c639d8114a34f6a4077b8aa491b57f364f31fdd4ce20f56fa87f53feb2b5339ecbb460a2751f32c8b8289955eb57c294726334c21ad62d8a131796aa3d4
 SHA512 
21fddbe2bf0f4d7048f506c21d21e5b8b3370c6c8bd50d4849b3d02393dbd2705f6f18315b76defbeeae297f68d7662376d6bcf8df67388130ae91428fad34a7
+DIST thunderbird-128.10.2esr-kk.xpi 856119 BLAKE2B 
1cc9c3ac4ffa5d0d512393eb95ad54de9610172652b81e0c2b371ab3e353cb82fc51d4a3719f25aba0819282324c64e4ac4befb7c66a040a3e5d434177c4d676
 SHA512 
706248041b1225d8d1b7d031ce64b6c0f0fe9f9c40736de6b636381dedf2d2e586da4b4c98babf9932a1ed9aae78804945f334e57d7fe330489ecd498b337742
+DIST thunderbird-128.10.2esr-ko.xpi 790140 BLAKE2B 
9590bd66846ee78558c1285fc9a73428c989a9811b23e361ddd197bdf3c4a68b4c5a649f8f946c28c89dd681f8927686f63c7b0a627341afe9ad5071481682b1
 SHA512 
393e564847a39467b54697a49e9b23bd53656728f4889ac6b0fc4d498e50b3887f224e84e7206c0583a9011c2e9253ebed7caabe09ce0c13a00e4b3b97cf3a50
+DIST thunderbird-128.10.2esr-lt.xpi 696750 BLAKE2B 
92a541efb5d0931ff90e8cf0cd197be6d4629de8175a01c69a8794f72adbb5970423410e11a29ed3b058760ba8c97996f8b80b3d44ccc11b88d4639fde9c3903
 SHA512 
074ea6cae590beb730194bd71af33e137270776e8507ba1ca5dbc8c10005a98ece436c292afff3e52aa957112bc97471495a661e2ac469fa25a72b10b32ee597
+DIST thunderbird-128.10.2esr-lv.xpi 626198 BLAKE2B 
6d2b35ca4a0d3daefb509d13efa51a15689d414e7c401692472503681e8a6e31cf46247980056ab328770ff62433a0712595214a59addbae09857fd3fe95d65b
 SHA512 
e9dbe5a5288b38e9f43522bc15b8d9d8b319afa12c38c4b79c24ccfe0f1e446875d9f979e31e61d29370ce62acf858be98e1fa4bc4102e54d2ec00e69224dbcf
+DIST thunderbird-128.10.2esr-ms.xpi 586658 BLAKE2B 
1175197213e25466af395b19b334db808d478d2c64e5dfe33582d979a6a81a496b740f7f25bb281e86eac9d0bc2d03faa7dea039d1498c3ae4777f46d68cd4e1
 SHA512 
cabbfa09ac81e0f1bc9524cc6d202ce2ec17032abb3a0a0b11197103cec55d2434ddb61961d193f1763209b915202ebc7fa0d95b0c1dd86de7a1bb1c706b3646
+DIST thunderbird-128.10.2esr-nb-NO.xpi 700495 BLAKE2B 
06c59e8c8a2972ff547a7ab7a4ce0a5df9c940161f739eb79e1f3c5d8761b36169adca76a40993c499f495f416fac9558b57ce2a35e72ef40d5a09e2b3e07135
 SHA512 
ef254ea5eee29027f1038cd3fa3a04b0fcb9df9f9ffbc8605c91414112d98748650a49d63e85c5ef44c814120f572cad0b9bdcab647816d60be0d4b286817bb3
+DIST thunderbird-128.10.2esr-nl.xpi 746758 BLAKE2B 
c2edb6511621d32576d59a540f2e32a642289eed7b27466d73d4a9c3f64cfa57f26842319197635cc0a5b09c07656e77f34328b896128d4875fec13b401205a0
 SHA512 
1211cf15e213d7f1397f10e4ee03a0f6cd77cb0b5974afadbcb126c175f5343ae468868a839f16cec29359c8c92261eb001fe1ba3ff5755300c1dd096fa0f411
+DIST thunderbird-128.10.2esr-nn-NO.xpi 726227 BLAKE2B 
9d58beb4155413dc176cef1261fae0e683030e90fa2fb724005c4adcd1647b00ec0ee84d7c5a7990df12e2c5cae9760d275ec837767d1affb140d908dc62cb2f
 SHA512 
a9bb7a1e94215d35e51c840aa2fcc8df5ccd5981e4e272a5e96636fc6354f20405eb02c81f0c2925b3f5f156f1fb7b85c6b23cd6649041199834a7388b555d8e
+DIST thunderbird-128.10.2esr-pa-IN.xpi 687933 BLAKE2B 
4e60283a9d79d779f9ec6c2fa2c95da3f650f7051e3931cf4c1b8042fc56074bf9a584595c93a764648202415a26f09810c16bb158e6f5e1618c7c491662d613
 SHA512 
7161d21a3633c3189f0141a27ab6902c1b3376ccd210b1732266d5450301cdfabd8d1c1125694b16f181dd13daf98d371466f23ff3bb2d3911d5283f29ee70cd
+DIST thunderbird-128.10.2esr-pl.xpi 785523 BLAKE2B 
dac6699414119201abd15e0ecfbc37261744ed95e283cab365e2e4844272dcf52b061954f2722316642c5472c354308fa6413013e11c44623ea29909f1688594
 SHA512 
cb25f3d33818e677154c7a46f3df3900300d12cf3960719cbee753efcb4cd05195bcca7f9d8703349d8fd2f94477b041de87eeb8892fb71a21ffa9a83799b68a
+DIST thunderbird-128.10.2esr-pt-BR.xpi 754956 BLAKE2B 
dac3ed0e0a07bcea8ca3531f8379437107314fbb6d407343f50854dfc4fd5c145570bfb116029b83b5a2a2449f961ecd8e43eec6c6de7ca0001f8cbe304b3c3c
 SHA512 
30454de5df8a4a2d4db7f3c4da02e7432103f75990aad01f9151c2aa1a0704f30029bc431a50bee86a34d815aa60ddf4e85b6f300a0b6eaf14b9e81d66aa12ee
+DIST thunderbird-128.10.2esr-pt-PT.xpi 747654 BLAKE2B 
6da03d32e0d5a132964948da1ffcda91b4e68586d88ff190a9ce618a3ec2b6a2ad0f91a784f1cf2044d81691f51730f119cf49202581b550a24f5d3e89eec075
 SHA512 
9400bbd46c7375afcc8402696c45c19ffa7316f2b25322a09691ac536d7c25d344353c5fee7995f99b050ee4951c35a5db7a01f477dd621b8be10025c6f72925
+DIST thunderbird-128.10.2esr-rm.xpi 750657 BLAKE2B 
c9eff8b5958d4aa112bb0185303a5541fc43bb5844b1a3fa50fc43676b7e3ab42914631322d64145fd33f9ce6d474ebcbcf4866fc5aee32c6adc3f09fcf1585f
 SHA512 
1f32fba063f6dd3aea654ce07ad3b1db4ed7c825373ab877060122d008ddd23008dd165e06d7b917e103b7c47205f10179e024ac7e519993b6e22d27d8667f8f
+DIST thunderbird-128.10.2esr-ro.xpi 666553 BLAKE2B 
408377b3dc35534cf41b2e8bf89820af659eb9c163e05ab433153f350a06278624480dc6ffa81bd2f56435560937e5313a2b70a7ccfe9be363037e65e5a1ce85
 SHA512 
774d7fcaa054ce71fdc3dd0a7508d999cc7434207855170de4c047c22a2b9e4f7844592d7b7c7ea59d9c566b5348c7c55c929e7155e8439ca760e463d3008442
+DIST thunderbird-128.10.2esr-ru.xpi 875879 BLAKE2B 
7eae09de0e0b32fd64ad7e0d8a7bbe58ed01884585f1f1f62138de84b2372096cecd2c8b14c279a99597158636b8b8978ec2bd895a39e81345bfefd163130a5e
 SHA512 
d0bcb2b8872af0d843fc72e9a3666854bd89adba9801d5418e4ed238832e973c811f4b83a3fe9fee610bd203224fd06fcff60a54f1b1bfc0f138b343cee66767
+DIST thunderbird-128.10.2esr-sk.xpi 789277 BLAKE2B 
d42820fca2d990fb3eeda59d582418be48c2234f13d34ac0b2e17748bddd57fea15d81fcaf7bc80b83e357a892ced6c048f474cd60e37040c340d2a61a366bcc
 SHA512 
25fb10b6baf59188a23b669777a10940b48fd1e713ea803516834c20ea68ac738332bd73c8d24cfa45a8393453034c875c33153b8d5a20e494a4b71295aa831b
+DIST thunderbird-128.10.2esr-sl.xpi 750622 BLAKE2B 
98010c362c1e1df0cabe9fc0e6885c4cef4d51316e0ee48d887288dd55d3f9714022c75802882c7fccfb1a4bb5d7a8690eeaa85991cbee8a2876bdd06decf7bc
 SHA512 
ae52af9f75466704d96f8473091136ed0e2cea78ed93ccf50b391ab529b1b24085431d66a3fa33c74b1e07de7f9a2fad6f836e94e2245061cd39d4f09ccd5fd9
+DIST thunderbird-128.10.2esr-sq.xpi 773100 BLAKE2B 
8ac467dca81c80459c82ed9c2c3227ee751ab8ebd8d3a5e98365593282b68bf9e89432c21b62a6d4ec16360767eec05ea337b8b35241fa16fa28d99176fca8bb
 SHA512 
4f4ce8fb39e672275c67b40a7bba68567a9a0f1002120af5b9dfa3b1be71b6a13b74ec81011cde49dfb4e4c32a93eadc1d77559262e6e3eb2bbd1d87c852f3f5
+DIST thunderbird-128.10.2esr-sr.xpi 766346 BLAKE2B 
20fbc9f16d088ecae90a4d8010b75bb0d84435200f22604c001bbeaf2637a686bd955fb6c7a53fbb9500cc94ce568cad82d0cf412da78f0a802f5cf67ce86416
 SHA512 
1f33e00c4d6430f3cf9f182b3521513844da0a038f8e3d458d3d1f059bf2ffcafacc8d16dc9205ff0719028401bdbc0821b993c61c68ac4134a5182b06f67553
+DIST thunderbird-128.10.2esr-sv-SE.xpi 750538 BLAKE2B 
8b92bb97c4491e305848cf356bd1219c00967f6c3d8d91256ba0496bb54bb1c12cb4310fd60141b27edd95522e5b07b23d0e94310443a62ce49d213ade6eb8f8
 SHA512 
42df55fccfd85ca203b8d6601e85ad776cf24980b643244850749d40b8b267438afaeab5152b76786e11c614416caa8658d490726f0c7e141c4e975b03e8de00
+DIST thunderbird-128.10.2esr-th.xpi 846502 BLAKE2B 
217ca18127842368a96744c6b17a6e4394c15170ea685a6e54e0f880bd0eff06c74de364305d96ac260c9fc6b2e7e1077919a1ff917a01dde7b6e5156f7c5451
 SHA512 
c4fb131efb68ecdddd8ccc8295d28ec3f7277c3a6552dbefe20adcdd2e52c9757ce32e96e11ba27387db97a5f82aff3864311b8721a59419e204b81c09ad6d67
+DIST thunderbird-128.10.2esr-tr.xpi 762700 BLAKE2B 
b10a5af410e870eeb3f3d132d4d44fa3d809510ea436aaa7d2ec7aeed42dcce8596b3f77f9597abc228bbf95a0d8babcb8b693cf70d890e76f58f029e6299575
 SHA512 
66df96c0587e48112983b99b2af5035f09469a8670f625cb3718772ef44cb192d3f56f1a81243a7a6db2d14e84bbd5082848ebc19374bfd494b4f3d1bd28d689
+DIST thunderbird-128.10.2esr-uk.xpi 864132 BLAKE2B 
5c158992960087f289f3a284b1e8e891b8317e1b9fc2b32949be1ee5e8b4b6313b008ed2bc2ddf91ca2989c2c999dcb4524a8124d7b2af883515409c912ae2b2
 SHA512 
90550e053ffa28c57bd231354eb315684280d26b833fa212e4e3ec4953ed1628fa1c04e84316ab58a886f7d6643e19d808efa152e3979913ad4ca6676b2d3c4d
+DIST thunderbird-128.10.2esr-uz.xpi 589342 BLAKE2B 
c5ee5996e1bc007ef152e5095b41ffbf6ce201be93d3470f7f4abc864546345bc4c0aad04abfd6a39dadf984bcb5ec172e821e4ab44eae18bb525d64f8d4c7bc
 SHA512 
779ab0ceaa06c4af0c4f83a36aed0fb3e0e29bae74d788e71c0d69f9350581c81ae5771abc9dccd4e760bcd0fce0cb1581bb2e08f083ad16bf28f65003b3413e
+DIST thunderbird-128.10.2esr-vi.xpi 790627 BLAKE2B 
a22fd47014016672741c4a22bf19ecf1d934d956b880bdbff8c97c3704043cce33245ff3911b69c6208e2f6a6c38acb5cff293971f24ab81553a09645c71ceda
 SHA512 
9b049d46980e18eee65c1512fc5fd0d3a69ccd42e572a897ec1331e69b1396c79e7bde53dba4fd5136637b6c6209795b800ee6ed75ebfcaff9e8467e3a7c094c
+DIST thunderbird-128.10.2esr-zh-CN.xpi 790964 BLAKE2B 
f432ad4896332e1f632f691e66d6ea0bfe0b6ef6e87533cdfddfb97d1d4364cdff29412caecda3ee8483252de676d3ad58d79a83263f9907d06445bd47013e77
 SHA512 
64ddde62580b9d09fd64486d39bffa1e0bb9d4d6614357fde401203d5cbe8745c5133b4dda806544cf33865dd6d56ba6b9487101f7738d8123cbed12cb4c8c00
+DIST thunderbird-128.10.2esr-zh-TW.xpi 794258 BLAKE2B 
f2faf37d914c9c98dc3672f497a24e9a37b58a5624c23fb76db374f4b0c49df64bfc36d2c67ea6f26d63ef142fb2a1819c4d38474b3226521417cf8170463d5f
 SHA512 
a94eac21587162f18d6ea84ce04317ce253795ce65362a3b5488291bd66dc2d1d43eee1f2fdc129c871aae65f3d84e5f98c77ae2659bb10ba2cc1aa0d182caf4
+DIST thunderbird-128.10.2esr.source.tar.xz 674082824 BLAKE2B 
13e873607c312cf5521420db073108e4bc2d7cfd24a2765883ec8bd5b72cd5eaed027000cbe337117b0cf6949c7ea58dcea93cdc1f4690bd1c8417024f0c587c
 SHA512 
2783ebbe89d7517099620bb537f4b9a4f85f9adf22c4c747b7989fced9fa4dada3bb05cf0c52eb460bd9700f85047a8689f59124956fdea24de7f6f668a087e5
 DIST thunderbird-138.0.1-af.xpi 315687 BLAKE2B 
7e46f99a8662119f8df95a3662adb7ff574e4541a4a26d5c0c705a4616ae83a096a76e8bd530967b456345b2c3f4b069c9dbc28cdbabf601e92381ff07f53527
 SHA512 
0cfa72fb6ec27db137f020941da2eb5e444ed7cb3ae0c5060b32a7b456476d60d4864a2f0f564ac8cdad31cc753b5f62b5a443f48854302b9b0b4602059412a0
 DIST thunderbird-138.0.1-ar.xpi 432652 BLAKE2B 
094ea38d277f6731427f1e572fbebac6df7a7fc1518a1bde7aef0a2b25e51f0192f5c301b479888ba577854a2e6b000350219dc2ab3f52fca086eacd04783625
 SHA512 
c9f5fe598968c6246f9ed0442c42a9f140e4aa7eeb8849d13f313f5c6f953467442c63f4edffdb5fcdf02ebfbfd1d8667e98be8515d0189c6e3d3f9d8bcd29d6
 DIST thunderbird-138.0.1-ast.xpi 341394 BLAKE2B 
5d54b5793efe1ca83a477d55b4c1a8aabed37d757fe973fe52b6101cde1662aaed20604cc22cb0fa7abd8b94b7da9d3bf047f9315f5d0c2f605d4ebaba0577f4
 SHA512 
a5884ac3164c3bbd2c6a95899f5e7fdf5171661c0d65fd04e899d29ccd24e97e46a899373104bd9e19a47617be494be716dee699782161ec42a9ca482ea1af98

diff --git a/mail-client/thunderbird/thunderbird-128.10.2.ebuild 
b/mail-client/thunderbird/thunderbird-128.10.2.ebuild
new file mode 100644
index 000000000000..1e1f68d257b6
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-128.10.2.ebuild
@@ -0,0 +1,1171 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-11.tar.xz"
+
+LLVM_COMPAT=( 18 19 )
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+RUST_MIN_VER="1.77.1"
+RUST_NEEDS_LLVM=1
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+# Thunderbird will have separate release and esr channels, matching Firefox's 
rapid and esr.
+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"
+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 rust toolchain-funcs virtualx xdg
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/";
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}"
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       SLOT="0/esr"
+else
+       SLOT="0/stable"
+fi
+
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+IUSE="+clang +dbus debug eme-free hardened hwaccel jack libproxy pgo 
pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx"
+IUSE+=" system-png +system-webp wayland wifi +X"
+
+# Thunderbird-only USE flags.
+IUSE+=" +rust-extensions +system-librnp"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       rust-extensions? ( dbus )
+       wayland? ( dbus )
+       wifi? ( dbus )"
+
+TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird )
+       !system-librnp? ( dev-libs/jsoncpp )
+       system-librnp? ( >=dev-util/librnp-0.17.1 )"
+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] )
+               )
+       ')
+       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="${TB_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.101
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf:2
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? ( sys-apps/dbus )
+       jack? ( virtual/jack )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       system-icu? ( >=dev-libs/icu-74.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}
+       jack? ( virtual/jack )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+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 es-MX 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
+)
+
+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 || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif tc-is-lto ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="6800M"
+               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
+
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif [[ ${use_lto} == "yes" ]] ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="6800M"
+               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
+}
+
+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
+
+       # 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
+
+       # 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=comm/mail
+       mozconfig_add_options_ac '' --enable-project=comm/mail
+
+       # Set Gentoo defaults
+       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-js-shell \
+               --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 \
+               --without-wasm-sandboxed-libraries \
+               --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 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_enable rust-extensions thunderbird-rust
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-harfbuzz system-graphite2
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       if use system-librnp; then
+               mozconfig_add_options_ac "+system-librnp" 
--enable-compile-environment
+               mozconfig_use_with system-librnp
+       else
+               # This controls the backend of the bundled librnp. Choices are 
"botan" and "openssl".
+               # RNP Upstream recommends to use botan. In Gentoo it's 
preferred to use system-librnp.
+               mozconfig_add_options_ac "+bundled librnp backend = botan" 
--with-librnp-backend="botan"
+       fi
+
+       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
+
+       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
+
+       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
+
+       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"
+
+       # 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}/defaults/pref"
+       insinto "${PREFS_DIR}"
+       newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+               >>"${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
+       fi
+
+       # 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 the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
+       if use system-harfbuzz ; then
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
+               sticky_pref("gfx.font_rendering.graphite.enabled", true);
+               EOF
+       fi
+
+       # Install language packs
+       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
+       if [[ -n "${langpacks}" ]] ; then
+               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/comm/mail/branding/thunderbird"
+       local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg"
+
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+       local icon size
+       for icon in "${icon_srcdir}"/default*.png ; do
+               size=${icon%.png}
+               size=${size##*/default}
+
+               if [[ ${size} -eq 48 ]] ; then
+                       newicon "${icon}" ${PN}.png
+               fi
+
+               newicon -s ${size} "${icon}" ${PN}.png
+       done
+
+       # Install menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r2.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
+
+       # 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
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       optfeature_header "Optional programs for extra features:"
+       optfeature "desktop notifications" x11-libs/libnotify
+       optfeature "encrypted chat support" net-libs/libotr
+       optfeature "fallback mouse cursor theme e.g. on WMs" 
gnome-base/gsettings-desktop-schemas
+}

Reply via email to