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
+}