commit:     861b8263f97aa13840b29b346fe86b14d44f7503
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  2 11:10:43 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Apr  2 11:11:18 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=861b8263

mail-client/thunderbird: add 128.9.0

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

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

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index dc03b61716a5..f1d69bdd3ccf 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -132,6 +132,71 @@ DIST thunderbird-128.8.1esr-vi.xpi 797500 BLAKE2B 
32c3d9530b2e43e2785dea0c8a93b5
 DIST thunderbird-128.8.1esr-zh-CN.xpi 796657 BLAKE2B 
c450d5f85f798385d251c92cfdebe01f9ba7bcb32400108093d80b1f785018d26e2b1624c2a255b19440ee0c2504d167d58f5690c1df02bea73d12f6aa7178e8
 SHA512 
dc865d7dd0116150c6f9b0773538b7df469daad96924259fa2db78deb93a4999cc1f83c5d8d21ae09a84d75be16533760eb158f97466e07ab28bddca2f070921
 DIST thunderbird-128.8.1esr-zh-TW.xpi 800397 BLAKE2B 
f56d82a7082c25f1b80ca98ba773d88aca9b6e725d70eb47a2b9d93f1f073da5b8f52a67c93bcd3ee893c66ab8dab916d8c75494939739755bdd28781113aebb
 SHA512 
aed9588947e7ef97526c58b74917e98c362409610ca45ed4aead213e79d3626e27182687e8c03408b0eb95e7c007af0a63d729e2fe4eec59ba7962fd3ea90dfd
 DIST thunderbird-128.8.1esr.source.tar.xz 676209488 BLAKE2B 
df007e541266b2e5e95fa663b220ca6203ede35f75fe5b6b8f7187466d9b923ebf8386f465b3188bf1cb9e7d05533030e2f5ac1543550575cb30af980b6fb61d
 SHA512 
f1ef0a665f2cef49b427cbfb4a3548df0cccf4470c03367cdb3d2729d4f6bbf25056c378ffa9e1184b6687332998d12ff9ba251b97b7ca859d9d43be9d7414ba
+DIST thunderbird-128.9.0esr-af.xpi 534911 BLAKE2B 
5a1c56938294faa34f0977d2aff750bee6be148ba3bf461f3fcfdd923633ee6af4deafb9d8be1135981bd7ce5a4cb3cb0304e98d9c776559ba80ee562db6159d
 SHA512 
da3da34b7e99271dad924db5ae578838662c70dfb34b0470a0084ed46b60d852929d187b258dec4298958a05f792b6e7598910100c70087258f9f28501e1ffa4
+DIST thunderbird-128.9.0esr-ar.xpi 686460 BLAKE2B 
1d2760c20e419bb64637368e1eee7f589ea8a1be61715f245fde35ddc36205e5de41bccf1de76cf9f44122b428f0ebfbd8b8054ddfd2bc258e3e05480756c2c5
 SHA512 
48c304691c1caab6e782b1ed085d13cc78df4ccfe1ff5dece8ea8a4b34f731557888a049ebd5d66c11a2d9249d1d22e2eda9b4783fd9ceb598f07012570a5cb9
+DIST thunderbird-128.9.0esr-ast.xpi 574778 BLAKE2B 
71d2e27bc6e4b9af5cce9a5c5d1220243ca4b84b39c07202b2e81d00a99a4f40cb4c09fad9c6eb9da843e7f8866dbff16818ba20d04f7581d805152be66a8194
 SHA512 
96ba88bb6a1eb7ce04cb739037504d6d27c46c8996252baee069b18af939850d0f55e062da49086b4da122a2f3ff8a2f7ede126d05c26265c3d6b3f9adc622b0
+DIST thunderbird-128.9.0esr-be.xpi 781609 BLAKE2B 
1daa83ef9600deee203bf25fb3eba6c13934aaa43eb8bc3f8a2c1e39acfbc02a7214b24973c119980f523d01b7e77d88c0a57e46cad6e0a36c3e69e3a587d6b6
 SHA512 
c43eb174cf161df88e0278ac1e08fce15450e383ac6e4d9fc47823ce6ae41faf4ed5b512a082bbdcbf5bd9d059c6c5f1d71099542f42ab2bf879a56aaa646eb0
+DIST thunderbird-128.9.0esr-bg.xpi 814006 BLAKE2B 
d569a49d17205a43068e95c2593283f27aba229cf17d98787096196f143726ec7730001b4736a0fcc0e3bde302ab0c29d5c8b2bf94d4cc8cac64d37ac4a968a4
 SHA512 
32849815ea15d1477ee3878295c12685f2680e52e3bb1360e2315ae0fa209db422d253065d3cb17d8a1a64be3adf6aa31a0adcdc7390ec74e3135d6f0b891235
+DIST thunderbird-128.9.0esr-br.xpi 650137 BLAKE2B 
83e237c9f3f443e71c0fd3144298d6ff90f3b62222459e22086315b4c942141168a45427f2be75c09172ef3286a254c6736b40a2f2ed119c33461465338c958b
 SHA512 
e6978c2f46fa4e525b560a171606038c60bed5090fe1921590260d73c50b5890ada5a0b4030167b9f85484bb8ec4404191eff2dd2a9909a51a30d7cdb6d6aa60
+DIST thunderbird-128.9.0esr-ca.xpi 704671 BLAKE2B 
4ce302375fd3288111cdf48f001c9b0b88593238213ce7a71918813209c8f47edbb20b653d20669c091778116cb1412708b0878c755d2d66ef5a2feeff2fdb8e
 SHA512 
0b973fc0fb8bd197973fe8d14c8dd19d70e8c868ba409852bc68ffe21368cb9ab89a8c36e9bd32ae2c1699f759253c2a200d70f91a67606ef04aef427002b8f4
+DIST thunderbird-128.9.0esr-cak.xpi 669092 BLAKE2B 
12fa7ddf2e48392e8c6d435483be89d7aac7114db78317612e3e170e248ac57226de6e3e8589aa049f60cb98c5c86bc907d88ee60af207ded6d0e1884c7dcec4
 SHA512 
24584a5251b844c2819fed0815c77be048bc80847755b77cf0f295a4f35e79a78abce0df69867a6dc2d492a79e52add0ddd9f30c3aab1dd6a2e072253327ef6e
+DIST thunderbird-128.9.0esr-cs.xpi 789854 BLAKE2B 
9a71ef8284783a9ad50b33dc53f2d64f1561afe96826da60d1b72b8eda0267c985cb3efb717d1104ec199c174b23d5ec8ca5f78f1249216963ca86d8a5ca0ce4
 SHA512 
e1fa90b7a092c9ecd659390c7a6b8878417dad08ede1c02c1bbbe049f20fc00d3ccc176041db6b7889e1200c692008ea8d8ba544fa99eeb1970814f27b392e6f
+DIST thunderbird-128.9.0esr-cy.xpi 753575 BLAKE2B 
5cb027c72fc61c8e032807282938721ba3c21fa58efc873aced59f641f539c7eb0b759d2f238eaae12b87756489d4fed7e65248d721c0c906d883f5a8ad3375a
 SHA512 
bf760de3e3ff87877ed7f242f7c73e67b5d7f32785084ffb13c3e49ca6e256290ae58260e08e5c35ae580bb5f7ad6fb2756c002d254c5a45bf577349f030089e
+DIST thunderbird-128.9.0esr-da.xpi 738598 BLAKE2B 
c2487de002936e85b882d574338f5358925b97b7b54dbfffe8d3fd5c73d92e1e0058584969809e153c84a524c1105b4260f14306d96a8e6a0ba3d24bdfe73b46
 SHA512 
e0da35991ac7dd2f01d9a1d1bf0a784fb3d4ce8fad1560bbcce4fb4f81ddf2a6e1eb9601fdce5b642647e006f6368cb46b3fe2c37a58d7d2567fe984df213cc4
+DIST thunderbird-128.9.0esr-de.xpi 771420 BLAKE2B 
9b3cff4f0b6f8c3e762d2a7b196ec1fe67549def5f2664b67a5c6f0c0fa5e1f6dbc452ef1f098b4ed0faf2046ef10cc0ef105da4f9cdc373275a03b2aec997de
 SHA512 
e29730621c6138a0b94c2e3ba752e2670b28c261a69377f6f9d9e2d2284c7cb43570d9da7bb152c6f27a4c7af824d3200016f42a88ad52a62946996ee9fb6411
+DIST thunderbird-128.9.0esr-dsb.xpi 787496 BLAKE2B 
db0c6abdf9bfac0be7b5b41d0122bd19717adc4424bfed65ca5f78677fe0f12865ad9b6b8f1815a7e4283d1c2e70fcbcb87b029b03381bf5e983f8c7cfd4bcbb
 SHA512 
ce7b845e173e289823de398107f1ac447a796197e9ecf6d8f8b1e075aeb5d9b7bc532e398c12f3adb0509816acbf45674bf17c9ac79f2a6c755d6a57b417b94f
+DIST thunderbird-128.9.0esr-el.xpi 892795 BLAKE2B 
40662d38e6344ad0326756c2fc5bc3e1e093306c72592be34ab2bc2a99a13ed9c0917cdfcb58d577e12c32770f370e2375f5c6a7fa55faf5fa8f1d1dbaf97da7
 SHA512 
b255574ff3ff34a887e645c4ca8f7ec0326c58120581063281eaedbca69dbcc07a4f8e5fa80d57b62fe65e9322589590506505533b1ed99f8d50630e32cc26dd
+DIST thunderbird-128.9.0esr-en-CA.xpi 705369 BLAKE2B 
f433c4940f2c9b1ab0b71e1be6f6cb4fa6d2fca0127bebc67d4acba10c00dfa23fce2575291d3d6a8310be3af664ece8dabcdb2f1aa7c2ead5a2ec1e0397c63b
 SHA512 
683eef2b824e1f005433f6987fc8717e696849f08e54fa5d8d27c920767d9590f0485371f7e28b5687f43b825f5ec792a2924bd61d71ed8e4f3715aad82d3a00
+DIST thunderbird-128.9.0esr-en-GB.xpi 705106 BLAKE2B 
b5c96f8e8f9cd5b66862ceb7b748c9069d1f2ec73e3188e18f18e91ae89ae7cb9e04e31f416bc28b539a427990deb553548ffca79848229f6f6175ae12d4660b
 SHA512 
6ca1dc744cca5bf62ca4f9c3003fbda27ddec4cad53a8b017aab543ef1cf834c93d2f23fc3cd9ccab015f58162800253f24f51b2e399841f75bd2ff736dbeeed
+DIST thunderbird-128.9.0esr-es-AR.xpi 760988 BLAKE2B 
15a99e259892f530211397c5200d7d5f77f2fafb6dcfdb5a5e6931196e9d63b8aa897d0e9f15048d5562a7fba196c8ed13047c9f95a250629241d42fcf7b9f62
 SHA512 
f77cca2920bb10ee24e733806ddd629fe3f26bcf73489bf1bc7c89d65dab8927d251bb5355d8af2e82d30d45d6df64cceb00bef242d36059b40752a732ee6a3a
+DIST thunderbird-128.9.0esr-es-ES.xpi 761586 BLAKE2B 
4ba12f31fa50ad861c26fe60c571679cab41296d1eb411420c2f449e00610504ce696de84514e9ef7073b5ec5f389c0093b5428d5c67fb5fe186de21ed0b1123
 SHA512 
7372809d103f70a85f01234bd2ceb979db2450afd9b3c6889496e6a1a960cdb8aad7c368e630a8ae57012341669199527b86006349329ec806a886e3fe134544
+DIST thunderbird-128.9.0esr-es-MX.xpi 756967 BLAKE2B 
82c6ec4637089a2aa45243409fc6d0c80ff8d0fd8a580f84cc5a7637ee6610dcaf4e7ba0af4d30a32c960f6434196a5301a472af94c3e4e4d169407ff2ca5fe1
 SHA512 
6a16a6448aa34c26dfb2582b4d6d12842ae1635dcf32a29a1078c671049cee021f8641024b1c2156420d51155e3fd8e999c005b95001f9170ae12a178726c9a3
+DIST thunderbird-128.9.0esr-et.xpi 692374 BLAKE2B 
b102786a4e58c0b7a6f7e411cc88aa7c5a70a0086709f92025db74e59895dbc3550d93cad98504634feafeb09a87a3106e6aaf7923c5eeacc3d9f9ef50312bc7
 SHA512 
6e36cc4fd0576b53969577db9ba25c6655ffa2f2db2210f93806ed8b7af7a1ff268fbe290bbfedd02b95aaceea0b6ddd131ebc27c7dfb42e9141b0f7d524fd2f
+DIST thunderbird-128.9.0esr-eu.xpi 737438 BLAKE2B 
c9ce080e68fd94f40570ab603d400a6998b684c2edd51929ac71920be5a2f434a9ca504c9ec9ddde6bc4bd68af8789100284516bf30f564ca6bd983565e058fd
 SHA512 
beb74566baae9a2d4e304eeadde517ff4ca1cc3b411a8df46699cc9c0dfd18296945b3a956ed8fe5ecbd24f789535682b2c0093076c833657d26a13e648719a3
+DIST thunderbird-128.9.0esr-fi.xpi 735344 BLAKE2B 
40a234b3575951630fc997711ff02280737cc3ae3133ca0d1ebad182d73676b207ab879495a6e29808bea8071c4119267a37963d213b7bfe341e1afe264840a1
 SHA512 
e12016e593f748226cc0dee51af461d67712c52045882738b5e504b1c1a05e8454c8494c4f713d59ba32b2c53391277be5ac2e8a496f09c4acdbe3d3d638a824
+DIST thunderbird-128.9.0esr-fr.xpi 775197 BLAKE2B 
1b019cc8980e1e4e8c8db83ea19b1c2961907bdc8a17d3831392a2c63241e56dc1d409e12c96d548485db9094513d981a3c9822f8a2ba4c2760808e365c1e8ba
 SHA512 
287eb408855a49eac8247174705a16f0d430e057fc6c7fcb376cc29a2b79933565760c7120993dcbd6ba39c85204bc907ada7f754124b71dc437c9d672be1853
+DIST thunderbird-128.9.0esr-fy-NL.xpi 756474 BLAKE2B 
91a738254104825e2a3baec23fbbcfc9e58295cf47d7ef1c36ab54da696245992aad0cd9e7b2d06bbffeb56947c61ad4b5f1ebbbbabc4d1fe5494ecdb8d20a44
 SHA512 
03367097583819dfa292efbb8c3c22c75d7cf62226102af09e001bfead81a0eca3926a8169ca2d82d3481c677bc0d12272e6e9a45a6317c67f74d0206cd69d69
+DIST thunderbird-128.9.0esr-ga-IE.xpi 614299 BLAKE2B 
4457a5211fb18cdfd0cde54a16ed1a36d6ae213d8b6196c42360bb39efd5562267fcce8ddae8388ab97ef709074e2d0b777afd7fc0cde46c3d0dd1d66f31b460
 SHA512 
821698f67eabe2a9b016d8c4554e5bbaca720b5a85cbb1987c1fd90678ed51dc8ba243da70cbfab075be5ed90f10f0527b19c24862f32b22782c7b30dc81c5c7
+DIST thunderbird-128.9.0esr-gd.xpi 723341 BLAKE2B 
fbe12db78595d22aeba52d059750994fb15d595cce91835d71ddc0e5ba89c2a0ce1db3720cb15625db6db227117405e3a626efcbe688d7d630683e4352c74400
 SHA512 
94b6013ef7e75ce0cba22dfe713654a777a6f26f831357980a743105a003012139e5ae3fe79e7d023776856dafe074118efdb4029d723711b33069f635fc53f3
+DIST thunderbird-128.9.0esr-gl.xpi 738661 BLAKE2B 
9bab9cf813166abb02b1091bae0fbcf07a7cf6ca93edc8a7b606a8baafa3054aa804e76fe52d43576a5c8347d8b3d78044266fe47608e012bfbe22d251a9ed2a
 SHA512 
daa19863ac6443b5c955eefc818d72c37e4bc503abafe6bcbcc4c99b3deab7a36389646aa2c2ed74259e145664009db6d3d0e885f9f239dd1677a813a34f60f4
+DIST thunderbird-128.9.0esr-he.xpi 696999 BLAKE2B 
1925a1926482437f7b9152acb7806a5543143547535d2a48bef4f64b1bae6868e5f46e9142f3e1343c44854ee2a17dc628959531ed8267ae9f3aa7cbbb9db9b3
 SHA512 
b6be9141926ab73e890d04313dc950ff72b3e41db5b8fd9d597f751962ed74301f32ee0317b492908c2016ca1973dbc30dd7567c1ec4d791a91cad8110c8cf0a
+DIST thunderbird-128.9.0esr-hr.xpi 724037 BLAKE2B 
caebfa727ca77b6ec96de624a2a6e764b12a608c99029344b12715b6baec942c1feac7072a26455f5d42da5d2edecf0916de217e13fca9739c9b68ae2c5d1e01
 SHA512 
2cf31b001e8940f1d4400a53809b17b2db5e00725b28402c8c4ae17ffceeb9e990e9bf30f34b47acccb461021170fd4c1e76506124d609ecf80d233e38b59882
+DIST thunderbird-128.9.0esr-hsb.xpi 784034 BLAKE2B 
1efbc2cf073130c8b49d9feb8b8a91a1a588d93f09538672712746bb26fe7350b6686a0e61e353c4b1079bd4cf9803d048be7cb048f2682a6cde7f0c999be0cd
 SHA512 
06cc0d72f546c6ffec5270406eb1312dc1003d01292be015e8d8242b303b95ed9984b39e3334985495451c3236adeeb734fe78ceae9a32782ebe575a2b8e3b74
+DIST thunderbird-128.9.0esr-hu.xpi 787698 BLAKE2B 
ab0e71c285b5c1ca82fe9626fee658e079c6e62069bfec21ac221f496de51e9ee0d0157eea8b26b8240792fd17f70c2ac5cff7f8ad30a98ad56812573fac736d
 SHA512 
bdf92670bad5791fd4f9d36dff80b529306e75096fcbe39a6be37e8ff88341973bd87896880bdcf72570cd11fe1a6bddd73433551212e263e8ffbf5f275ed7ad
+DIST thunderbird-128.9.0esr-id.xpi 721178 BLAKE2B 
1450b9327ccd2e98fa56c89682e8e9120ed5ef4ef92368659dbf4ae945105b3580ca4c702804344b5dfb1c8a342c6aa1f4617e80558745ed1aec378d720590f6
 SHA512 
dbdaaa07d798accad3fbbc7cc84453fef49cc82bebd2a3fb0d1f991d0bdc8c117d149dcb7273f2f40184b3555407d4a69c6369804a5cb875f2087d9a08ad86e3
+DIST thunderbird-128.9.0esr-is.xpi 750933 BLAKE2B 
6a011f6009f8c36aa91624e645a7804391add07164a0ddc4c72394457345b50fbdf46906ce84a5c463cc30d8c625206fe0c4fa7577fc715c5e2e48409fc4ef14
 SHA512 
60b2d1e487347e3129199d54a38bdca0f97fb6c100b1f0bc5778c1386ff565e111e2913347ee8dacec70a9b87e92d44dd04dbc4589aff154a15014208b48a16e
+DIST thunderbird-128.9.0esr-it.xpi 752074 BLAKE2B 
4332dc410b1077926c90977057a52b5de63c374542889583e299fe20c0e2e8a256790066fad559137f58e6be1ae0538211db837763c1a6f39897db359ee5ebd6
 SHA512 
004b834de7375221a2c5878e07c5199a89601a498da5ea7ffb877ff96d78979099a4bab0e48faf02fa1133aa075a2253616e58bc832b26a89eab58ead2188190
+DIST thunderbird-128.9.0esr-ja.xpi 822944 BLAKE2B 
4c89d2a5f18d3408f303d50d43e72e3b58277f9ac8bd030b6232d74e5ddbc460b0e629823a2616c8f291470fda5d299a8769ec61bc274b846eea3dabc3da9481
 SHA512 
bf6d8c8eef95d28089f1b14b6d3932410c6c2be82f2ef25221f3d743efe51ba0a3ed4cf2b9396a796d61888ad58b3240ede835bdd0eb3460bc002202f5fbeafa
+DIST thunderbird-128.9.0esr-ka.xpi 814150 BLAKE2B 
80c877c83e41bbe72f70425c2652281b359eb6b2a67c1be4e1a7d96624517005d2af47f4ed58e26ac7dfce8773334fdc1ebf9e002c04a16172b4ff55af076b04
 SHA512 
3dba8f2032399e00b95e604deb0568f7b6110ba813437fdca60af6229af056b729f7cd253f6ab6c2558eab5d3f6674eb1bb938109ccf13b70f3d62a63d6587b5
+DIST thunderbird-128.9.0esr-kab.xpi 729659 BLAKE2B 
4e567058a72d007544998e4194ae28ba700a326e52a0a0919ba38d4d4119a1483320467beb6bafc523822bc8cbbbe36069c318fed4309a7598eefad86da8fb77
 SHA512 
6e926506fdd1d0c96ff4ff38e444e250354797dc5f1956f9f5282318340812e671219a23c0d807301de95ab529f5b4db5724596a93e55ace52503ee65f24cd6f
+DIST thunderbird-128.9.0esr-kk.xpi 856117 BLAKE2B 
5df7f3854f5728e6b7f03daebe6c86d0794eda1cfa08782872c3f0da8906772b703ea2eb27fd63fe9e4e7ace05bb5325866ffa9a6a8d1c226d1111fe05de153a
 SHA512 
661fa816592d06918e44d34a2d5695fc29e22898728f2409d31030c599d8b235ce67a4497eb1910e0078a7cdf3ebdf6e9a09bf312485e98ef2ea789be33589f3
+DIST thunderbird-128.9.0esr-ko.xpi 790137 BLAKE2B 
8496e82e70f2d8033806053ed9d14b1241682f9a703430334aa562c58980d93ea763cc49712d3f3a6d94501d997f2d2562d1b3e574ca10602195dce22341633c
 SHA512 
574979ca5366152db60f17479e135f9bdb35c8e0965e91684e0f307cdd7530c3d7366266a3fc580ab263b62fb2c69a29adeb771e9f10bcd0ac333aa079f83fae
+DIST thunderbird-128.9.0esr-lt.xpi 696747 BLAKE2B 
737a27ef05547628642461d0bc33e8254f165d959ca81d94bda0450734dc683c67a9b8b3c810c3624f19bc1a753857263ab51444be31b42c24bbfe4537e392c8
 SHA512 
bea38f8298c456b0580c740bf5759fe369c2db60eef5308e77ff5f2bc12de143124bda3989a47ba5db6acb892c43c6b14a2da54b60fc85f37fc912ed9fc73fd7
+DIST thunderbird-128.9.0esr-lv.xpi 626195 BLAKE2B 
2c34b4c103a56224df89ba263cf8ca942758f6a620b1ec71465d137b66ffe336fae454d5882e7cd0c624ab936197d2b8241421f845cc46f731dfae1990c71bf2
 SHA512 
3aeaad408b291f26fd8228d240a0f6410ffb48c9f406f683d751ef7624a2ecaab2ea70317014a6f10d9328b58e4bff8854f1bb9dd9c915d9e62b24fa67c02860
+DIST thunderbird-128.9.0esr-ms.xpi 586655 BLAKE2B 
09a62b0c0354e511a3c3a38d1697771162c21ce7743e3dd6143496500d813fc9868847530847d5362c9c700b65ded8acf485cb44d06afebf2ed64dfeb9b54130
 SHA512 
81b1bbe4bfc6ad44e67d25135c1e0b38118e6d5a309b928006a69341fc91864d71d8f42f53debf65cb7cfd236f125db77cb9d2549ce03c170af247d8c4b9e024
+DIST thunderbird-128.9.0esr-nb-NO.xpi 700493 BLAKE2B 
b5a36052724e874722ec0d0305accac385e52d6202e1cc9e7490dfe2a3c18111d0567d52257e93b3323f6ea09c5aa5c90aa78930bc0a2651104240f6b4e66c03
 SHA512 
5ad47e619078b1d6d8c0a338516d10e29bbbefbf148d1c8352ba060bef217f77169785826a8d6d18a63797515556e63d9ece1b929924e51ac1b0adbdbecca020
+DIST thunderbird-128.9.0esr-nl.xpi 746756 BLAKE2B 
ac08be3735c79bbf9141cfc978bb6f31d11ee4da3f01b3d36057624778f729f74a3d8ba842e179d0b351d5373dd15f01207db80748088e05de32228319be4e4c
 SHA512 
ae831bbd3209420f41f905ac3bdc9accb05b55f50eb9a042d8c9b4fb90d6017edea07e76ab17a64d2fcd95cec276aad0cda317134e4ced515b95259be1d7dad5
+DIST thunderbird-128.9.0esr-nn-NO.xpi 726225 BLAKE2B 
07908aa141fb95a0bb8149352d96fc0fc3236d711d016d1cf8e0d4df85f4c2705e9f62d187e3d327166d3cb13c880ee209667ff11b6987b530abdd4449c29aa8
 SHA512 
ba94d70679d52061ee758f7589b8fbebf335a9433109a64c9c5e0f035ae4dcfa343156c3f210c7a48696d7bdae7e81b3662e58d3e9c6ed949c4dca42a2ddc9b3
+DIST thunderbird-128.9.0esr-pa-IN.xpi 687931 BLAKE2B 
7b8735b0e14680b6e188646aa14310e9495bea50c579aaeb910c9b3faa3c047787caa945605d6b8b61b7eda013b649e90d5f1105b3143d1fe2ffe283f49faacf
 SHA512 
dd42e149dddad2d8bfa37b8ce5ba502beec5115d4891230bcbabb86f64263b0f2601ff1ee9b44ce8989980de5007ae59adddd2a3bac68b6511e6305b2b9f0d17
+DIST thunderbird-128.9.0esr-pl.xpi 785521 BLAKE2B 
1e6d8fd42af235c75a168bc98629103dfc95a3f458cd8a77ea54e3f7c1614d21fc0655cc3629582207a1e7c1f659a25b30af15eea809e53bd329598c373c3d50
 SHA512 
63410d157bf04ca5867faaec2abf5d98ffc72b35b53325f34333652f85d4f0a2595ab00d45b75a7384115ee2eff1d4356a3b63144671f9082f0bc859facf11b8
+DIST thunderbird-128.9.0esr-pt-BR.xpi 754953 BLAKE2B 
c1949044b49d722bbe3a86349d38f45ced6f63d6d0455ea44ba298097355d89ecf821e7840654a1fdfc678dd2e9c1acb8789983db78c88ef725a3e02a6967afc
 SHA512 
8f81d4b5d8ef2685d57fdbc8fa0ce9b0763bc84caab0ed25cfcca7b15ceff75ac92290bd30180dd8be977446ee7a0ff1ab5dcd7f7c241534fb64a3557438c408
+DIST thunderbird-128.9.0esr-pt-PT.xpi 747651 BLAKE2B 
91c820b7a4c3641aa47ad75b825fa55a0a778d0fcda474779a43fcc8613efdca242e2a5d3f1592a11bb01a0aa5631e6ec0992866fbb481dee3861321e72b9731
 SHA512 
9c233a04974bc451315b70c281a2246b6c3292e30d6906a84fa790b5d37048bee7f928152ec62756276add9c330d8f8c02249ce948dbb88cc2d5b012dbbe0aba
+DIST thunderbird-128.9.0esr-rm.xpi 750653 BLAKE2B 
17e31f12b4cc5555ae566af63ca5022a7451cf454a8159325fdb937c5580f8fe82eda8a6915faa8c8efe94dd605b37d2bb5846b9d14bc2654d0f04e4d186cdc8
 SHA512 
44882aca68e6104b63120da7a41243b5d2527e56b5afc6023d19ac5bfcfd7aad23a532ba8444e0b59823483a6c8a1fd01cce13af548e21014c4a80bd7f1f5b56
+DIST thunderbird-128.9.0esr-ro.xpi 666550 BLAKE2B 
9608b97fbeed36bde01a56617bf61a871ad03d192ff6d452e9c201fc45e6c81a29ac419e2cf4d56dddb6f1e799a0af997c2b7da31de853e35e12ae7e0775bb98
 SHA512 
0cc4d1f91eabb791ea0e89bd2a0acb803c6ed2434d3ebc41ce9115285ecaf5c0f0a092ae0cf11021e6805c08bf13baf6c2a1fe50cfb5c5198b593113243128f3
+DIST thunderbird-128.9.0esr-ru.xpi 875876 BLAKE2B 
8ef86e78379fa2b4cd9f61c5414fe78ca2b8c463749dec84c384f2e6d7c9f916bb99a85cb26146511faea403d1227e7ee851e2b08add812c3e3d72dfe81bdda8
 SHA512 
09afd301c75877aa0648809ae3226fd2e6d203fd9567afcb61ac222043bdf024a9a418a3ce7503b64ed7f6730eaaf199e6d7a161b1051bdb8fba088aaf120ed0
+DIST thunderbird-128.9.0esr-sk.xpi 789273 BLAKE2B 
3e65efe44d1598356186bff9910b6274e234d15fa50165a1db53211d1f4bf29e449727dfa8a27be40df7064431379b6b41737ac3ac319161573595e2f3aef365
 SHA512 
29f4041fecff50f7f994428f977cd1d4efc6e2ee51ee8056cc8423be21abd2b52dfedeeefc0c0cee5ce0f4ed06b5a51dae4424f20ccc9f0e25720b2a4ffbe046
+DIST thunderbird-128.9.0esr-sl.xpi 750619 BLAKE2B 
f3f3e2bd796e68610758db7c1d935ef89acf7d2407384f2e011ccd5ef98c0d44dc9dcf5a13e42a75c89ef7f8ff84a7835247413fc75e0926928503feb8d466a4
 SHA512 
935f409f19ef440746993b1998c1896c94517e707a6627653ce56a0d8f40e2922e53ed4367f820dd4b2e757cc2fe435d8b310e3e09bad218ee49327ba8c1346b
+DIST thunderbird-128.9.0esr-sq.xpi 773097 BLAKE2B 
87f799ef1069212d414f9c8571d476f423f24275323d55cf1a78c9bbdf9f4977c7176ac74a365383c62c5df2ce9f6a91a8f29b3fdda7af086aa87f04cdf33d68
 SHA512 
2a2518f58f9d571134b9740e63ad1dacdc78a72e0f1d460e6a997d7b2b58d1bcb7d2f27880b8fd68c4a1ccddc3cd1dccd299b23c56020dd135f1dfa87de2b33b
+DIST thunderbird-128.9.0esr-sr.xpi 766342 BLAKE2B 
1fee22d0b9f47d267d495638521e02ea963d170c731907eff87f776da0ba3bf7987bd774188a05a60f77164428aa1f487d47225ac3783d4907b4112d9a67c43a
 SHA512 
342243cd074192c8af60cb0bad85fd8ecfd1a1f69a57b521c6d13e8ce6d84dd47747e15dea85f02e2273d4d15daa1af079490b8902e7fa4be62eeb743bfd0214
+DIST thunderbird-128.9.0esr-sv-SE.xpi 750537 BLAKE2B 
40f5ea34a17dee63370e5a6be2ecd3878f7e73c96ca0a17a57034f55fe1f42cd0240933ab707f53540c7a3eb28ca2fb2e7d6f47e7e61e3ac05df57038937717a
 SHA512 
2e938ac689e2062d4190ed01ac43b04d5988070362be25845bcae09f00c68038420e25c4577e3c1429d8c743b442f69ecccb95890f28b9850eac777ff5270867
+DIST thunderbird-128.9.0esr-th.xpi 846500 BLAKE2B 
68fa6a932238fdb64c5213faad49892fc96b5a6b3a73fd18954ee7d75b7b6d9be98fb335dd96f8b4ee7692fc5411e03dcd55d6756e23d1b3416e70ba4c51ad0d
 SHA512 
f5db0f7a90395db314c3cebdeb18df5a714dfdf0f4923ff62e6aafae580dc9066720f5526d399748ea074987c09358be5e5750b448f99dbd223dea5c215b0f33
+DIST thunderbird-128.9.0esr-tr.xpi 762696 BLAKE2B 
fc6a9cbcbc4f254339002ecc5e4c4acc5554e4aae7424808bf7640aeaeeffc7965ad8e825fbaf4ea42c798f9e9a28342d9bf910aa5144f9d1c341bb0296ce511
 SHA512 
9d1d1767aaed6e256d0b0256a9942bf1d112f14c71671c5c5dc97e527107c286fa11ea78c27ea744c907ad12efff4c0e21bd1b3900a5ca74806701de0f8006e9
+DIST thunderbird-128.9.0esr-uk.xpi 864129 BLAKE2B 
dae0a2204f70e491d61a24d1481c8a84f4ad4bc82c805a12ab1f0696357f7c813fbb5199a6a660cf2beac9a0ccf5fb0505f0de798437469bdbebcb7db9fb49ac
 SHA512 
4ee0390eb4a95a4e972cf07b8b50a7e826ff7d8a4d641f654eb30a7f03e3c6d1670a180359c721bdf93a619434b7ef812043e11252c834b11f13df328263ed2a
+DIST thunderbird-128.9.0esr-uz.xpi 589340 BLAKE2B 
eb56368086531b47d9abb4816ac34e75790d8251f1d7e8d14c7ee32b4f6efe41951bcda1e66ac156c937e58d1d0e6dec523886e674d4091dfdf112f11233b8d5
 SHA512 
30e8144564d638fe727596bd0db5a7aa38df4b3ad259fc89189648c0a909dfcb9fe7a62c3ba887f3a96436cf3c5c2f3ab061438d9a10baaf17140fd131ec5b86
+DIST thunderbird-128.9.0esr-vi.xpi 790622 BLAKE2B 
cf9d1aaf8d6be62c95b69b84bf9cb8d28b987e429ab1166ae2368575fa26dcdb79733c161014373d0c3c17bf68669a56df7fbcf52687eb0962988ac8c5207ccc
 SHA512 
2aff3303857846fd880815f127904189b75e923973d72fad2e6a1c42852c4af5d474ea249af24772c0c30d1da5e17a9733e1d7400f6669b02d1dacc73cb6e4c7
+DIST thunderbird-128.9.0esr-zh-CN.xpi 790962 BLAKE2B 
defeab1d6ebf4f71b222f642e5aacb88b8e0d73a47dd228c3ea986c79425508a92ef8acf1d6fc12dd7355babd790854786d4af3afdcd0c5ea63cfb47f3981e8b
 SHA512 
b0962a344f99020a79dcd26e56cd2c1a78b4980b0ad26c34a5f1de607d3357abeb8d2f27b06c5c112bb7a02f9f6e2d2e626861a69f09252112dd49f160a30f06
+DIST thunderbird-128.9.0esr-zh-TW.xpi 794254 BLAKE2B 
8110f2b19005835e32f1f82c0613daa04087c194453f2faab6541fb6eb5b85a62a57a7a69c45587427a1c809537e0191a0b847c409e47309ba7b596e221fdd22
 SHA512 
215f0994b85f9376457cb1d1eaee1977fb251bc1a69389e6eee016b0cb13c7bdcc8137ee28b9e20ce1dfb5179862f9b353a67a16e70d062f4ccdeffb1d43e415
+DIST thunderbird-128.9.0esr.source.tar.xz 675867820 BLAKE2B 
6c59ade4027267ab450890dfa5fca116ddee3aefa69a4b4a1a621fe79b903d908bc3b45d02446603cf1878219dc54c19e254e04bdf8dc593061e04da99dc87a2
 SHA512 
37ff65b1d8aadee11917db932cb1c30eb62116342c614be873ffd9ea44d51242216407df8a21f24c32e71f8f4feecf62a0b922ea3c97ffca4bbedbeacd640d45
 DIST thunderbird-136.0.1-af.xpi 315235 BLAKE2B 
913082a4a8b02fb6ccfd9f7f2d78ac25f36064129724b8fced7ab2784f4f87d717bda8843f01e611879431a43c0d21a81dbb6c11aeb7880481399623e3e19a60
 SHA512 
b5809ce531ee8e8a8410f467ee51535c22e1041c7cdd3db8d432c542a400a4fcb9ce338ecbc8f26c4316844351021a3c6f7e34fa65a734a5dd87ac7513d60298
 DIST thunderbird-136.0.1-ar.xpi 430240 BLAKE2B 
9a3673856d56462ef4600f884b5c27f0ce78ad8ee7205bbcb98eefa72b3c2d636f780283958785e5c831b06cbb5b2bdeb30f0eec2042c2460475b4fc8a8d25fc
 SHA512 
4afcd597d70db6286fa600095c4dc9d74079d210f769a010b16c9d1cca414755d75b51d691c598259cc5c50ede6d63fc9e5d1be6f5d585bdc0d44937b43eb287
 DIST thunderbird-136.0.1-ast.xpi 340880 BLAKE2B 
ff5cabec03d867fea103d1b93127aa78933bfb5e8dcc5083249d472a10f60ad35912cac2375e9cecc98ba6d464427a1628199f5efca327e6fb7591943e59aa33
 SHA512 
37761e5a69b8c38268e25ab79832638577ec3c91c7cc4b8626750a9e1a4ca64c19cda9ddaba2d19d4f02847c1b140340fbf547031fbef95e972d9499935f4197

diff --git a/mail-client/thunderbird/thunderbird-128.9.0.ebuild 
b/mail-client/thunderbird/thunderbird-128.9.0.ebuild
new file mode 100644
index 000000000000..c737cf50b0a6
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-128.9.0.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-09.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