commit:     909c83a65baa25ece0d8db0c7005b7b50ce48cd9
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 15 09:20:46 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sat Nov 15 14:52:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=909c83a6

mail-client/thunderbird: add 140.5.0

 - add llvm-21 compatibility.

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

 mail-client/thunderbird/Manifest                   |   65 ++
 mail-client/thunderbird/thunderbird-140.5.0.ebuild | 1156 ++++++++++++++++++++
 2 files changed, 1221 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index edd2828b31f2..4c1b686479c9 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -134,6 +134,71 @@ DIST thunderbird-140.4.0esr-vi.xpi 518872 BLAKE2B 
1a3462d7786146bacb34ed37307ece
 DIST thunderbird-140.4.0esr-zh-CN.xpi 507837 BLAKE2B 
e41560118711011cec5d9162611474c61d02ecc781916c015007caa0382a1e836d496963cd1dd895625974c9ffaa9402f3371f2202fd8ea347c3746b9170036a
 SHA512 
a5858b7f793cc0b1e1457a4b28f9306ee3eb126bb7625a924c455b530e4fe9c646edaf8af2f6a35a5cbb601f20b8bd11e25d71823af94d817c80555e27cf7c9f
 DIST thunderbird-140.4.0esr-zh-TW.xpi 511163 BLAKE2B 
30b71ff072e287be22b8be6e721675505a0cc88d46b98e347b2dbd6478cae67e66996ea8fa16f589f650f748a4f6f1c67dcb9cbf2a05997078da68d457f465a9
 SHA512 
390a13e478e8a1dd6fe0e86bad008e31eb4d5a1ff8f97dac41bfdcfa1e8c5375bd02bc453f48d43ba8997919790a6c31c3ecf15a3d6f1c89c14252b146986ddf
 DIST thunderbird-140.4.0esr.source.tar.xz 754630692 BLAKE2B 
ae74fded5aef8a17b60fb991f67c32daa7b94c6c120fbdaf5c6737c7e63f1013e76e3c3f351d4feecd1ac96e2d8680053ba0555844adbe00da8e3a79ba4240fa
 SHA512 
23a7c99f51a346f9df6e0da257040a78da0b9afd70966a0fd5c0f5a4dcd4806520f8d510a382cf5d76a099aa889219a5eec185b774a6a9b65c4ccdcb75662554
+DIST thunderbird-140.5.0esr-af.xpi 316218 BLAKE2B 
f39ba08f66c42306fa5e05ecf48a9b65197c3167ed560e8bf9a2b62495a43b820e3e16bf04e4f4a9aeb7c19f0b2c85dda8eb759c18e45bfbaa334c66c98f0f94
 SHA512 
342b97819945fa42c898ca8347edabfc406f0867a73cd905c30e350ad82c94b1722dff884f3d1a7d8c229d67af49c00b78c278020f68ab4ee7d492b931d9daec
+DIST thunderbird-140.5.0esr-ar.xpi 436173 BLAKE2B 
41f5006ac741dea28138888b9770d3027b37972dfcdbf17f6147dfc0ac66e6e1ca43bb34f1fad57a3f8d9a8b74feabc957a83bab1ad6a9b7c5fa92c7a682ca70
 SHA512 
493233b27f01caf1557c11ff290a4e2c905abaccf432a0929c7d6f327f977eadab06c762ed6d377640c07d1d4e7c24f5f7c298fbe573e2e06b29c96fe213d04a
+DIST thunderbird-140.5.0esr-ast.xpi 340599 BLAKE2B 
c6946f436fbc099c100e6ae73d437dbc7c2de073aa2ff0eea6362317ed8ed1961be683ef0a7a1f03ae05bb87696e4650cc560e1019b9ec25712f2256ab6a2b96
 SHA512 
addd36e32b710fc0c8a0cee886e0351defb2ab333f41ca3f9db008e8078681fdbcbc59dbc1f44bba5b84f600ad10abb05398a6177f059f354c09e82f5524b6d3
+DIST thunderbird-140.5.0esr-be.xpi 520644 BLAKE2B 
d30e1d9de79dfb5d4f925d434d5fc8888e54953c4cc41db533eb06c2385a8db210dfb14869af25c9fd3c43cfe7b92eb91671cb9179f3b628155b1de7bc02ba31
 SHA512 
681c31b1f9185d35fc2fceaf359b10b56118487c7f1b69e497111c6871c55b774ba3f7811742a996de585c1d01d23653e726f9764e75fe26029fdf93c8b94941
+DIST thunderbird-140.5.0esr-bg.xpi 535503 BLAKE2B 
ddd75211128b68d6ee91fad8372d777d930c4116d436095a07db0e2ffb50ae673710fb5e57291821e84bcd890832265e7ac76cdf78d12c7bc9b184c0d66d41b3
 SHA512 
bf1371375aeeed366709a1be1e9e85807615c71bb5474f4f4c41b7b776f8b98027d2efb8e3811b1b364814e0c64fbaac8d2fd58fc9a44b598604ace63e717136
+DIST thunderbird-140.5.0esr-br.xpi 402747 BLAKE2B 
e728a775b9f72014696ea5ef9ea5271eeeaae0e4738c0ee1966198037835a64aaf96c97dd0b9ef7651a01ae6511231f4d873eed5183a2c475b19a3c317a38768
 SHA512 
4bf7341a0017fd21c4af644be59cb27765e272522bc62083901b19e666826e1f0340c3a156c589204864e7b5c813e5dce1e10ee22d580a057d318f30270e3a94
+DIST thunderbird-140.5.0esr-ca.xpi 440584 BLAKE2B 
251b468afc4f6ff706a8350c5af9501d13bffaa85061f0646cb16799ad680310c4cd77c757cf802bda0ff076b434702b16a61efeef1fa424dc032c0e9908303b
 SHA512 
aa829395eaf11326a39ab4056b79a4563ba12ded4f78293c8dc94ca02b9518dce9f946b6853bf979cc429d43c67904cd723bf5dbeca517766b60d0d97004b939
+DIST thunderbird-140.5.0esr-cak.xpi 418019 BLAKE2B 
1ad00cd37e7057a243f6b323a55aa38bcf5e96388e7dfdc173185397aa6c17f817f17c67863d56885e9afc232c3cabd4c3758ab89cf209ca8b61d9ae832f5472
 SHA512 
610d95c867c7e4f5d4497995515c38dd5d5a2f8283f912ea917a9e5e8ad65c783e26b12e82fc83d1cef758bd88e867f9e3ddea024b7a36326825a75354f5b8a0
+DIST thunderbird-140.5.0esr-cs.xpi 519526 BLAKE2B 
be5b4f59acf125f5f392e67195698fea3ae2559fd3c9e611cab9a8bd58986e44ca094a2792eabffb9b2da2a8e421f9eb650df0850f69bece4ed2dc167bd9dadf
 SHA512 
d55e42758e883656e50f3c7b6700268757acbf1f45f926d271d82170a685191d679d4685ce389c2532214bcc56b048afa08a6ef8b22fe9233a575c03cddee0fd
+DIST thunderbird-140.5.0esr-cy.xpi 487644 BLAKE2B 
ecb1886a3991b3ee9a107df9f30cf801ee6107e470a38f40e835a9acec2bfe07cf42e807f897356e317a85bc64c17521af4e6f994a4a7011c83338691b4f035a
 SHA512 
861c501719ae46db7feb730a6e92a479bcfdb4d828589c45583af9945c44a8e384fc01df72e055e628ff75c5b5a132f2f7fcd867e6e0c35efb17d16482ee7126
+DIST thunderbird-140.5.0esr-da.xpi 476637 BLAKE2B 
97a8d775764d35983175624f09726c554b6ff2818ccb733463bf44e7208c3614216d59ebb2e4f29094b28c6239a4b3377f51c1924f45c510174a436a392a3b73
 SHA512 
0bb6db107aa8542ff7036739240f3c6477eeffeb9b370ee0c05f86a7ce42c823d3bb1fa1bbe9a6e880210cd84430692ae9e19c2f97d3cbeedee5969ab07888d1
+DIST thunderbird-140.5.0esr-de.xpi 505052 BLAKE2B 
1cd6542e2da5254e05a9f030455ee6e46f529c8f9d21f539a91e794874690dea811c02c041eb9c166e5a2ae3616fe1ab738dfa93cb0eb1c0a639d65291d16305
 SHA512 
5e56fa5d4e6273c339c0802fea84d846e23ea9d40f7845e32fed56727171d16ed4ff3d6a9b67ffb893459512e6b5ac19933843c10d673d34c03c0f15ca39a9a4
+DIST thunderbird-140.5.0esr-dsb.xpi 517904 BLAKE2B 
a9096c9b66b5337d96bade688158ab90786838d83e1be623d7dcbbf97979a78070921fbcd096317288a7e404c0067f423d627a0174cb9f1a08edeee4f473f0bd
 SHA512 
ddad2dfdb2a6576c4028e2b5730ade2de2efd0117c61d2405ff2995618f5440943d94053a766a3ac38a242ec62876fbd54b75f6ff29907991ec143b55b3245f0
+DIST thunderbird-140.5.0esr-el.xpi 609081 BLAKE2B 
d50878ae989cf9b7c050944503a408a76987299a0068c70def56ee7bdc170e851117742e93e4658f4b3ba5f6cf9da4d62d68225600f8d60d5f6186f2e919efef
 SHA512 
aea9a15db21e834e5ccab1b934fafeee97eb537fb7530ce3a75386dbf6cacebbd12082f4457c98706edea3dcd3268472e9e62408d598e882af6d51b8238a49a6
+DIST thunderbird-140.5.0esr-en-CA.xpi 451422 BLAKE2B 
78c021334c6953494f7f93d4d113860453a1382af750d23b8c87e8bfc855280554889732db1a6595c0bc98ff0ca982324e22bbb091a3ce0a91af018dbc6d5de3
 SHA512 
4ec9ccee9945edce272f59b419c61f4f69cf55ff701573a123ab58765abd44cbe4bce71eed6ccfe9caa59263804d2cb5eac8efb7d20965c9ace85977a262a72e
+DIST thunderbird-140.5.0esr-en-GB.xpi 452065 BLAKE2B 
dc6f17698a1a5969328ec6f8673b8000fb25f596a5f557c03a53dd8fe1b9991478a8ce6db24a2d7a3ed1d92bf646dbb4a13b27862f5afac54e99169091d321ca
 SHA512 
64df4ab84ec664304d8bbc093c21025ddfa50e959436b4859ba77e75158902373b4b5cd0704ead8b800b1fad724ced877abf3b8266c7b7686fd99bb61a56c2b9
+DIST thunderbird-140.5.0esr-es-AR.xpi 495294 BLAKE2B 
a0c8e06789911e024719e081b1e09178001101bfaf1e276144395674399b863ed1d7cabd43d7b16116e324a6baf18ffedc6b543079a7db4582f77196647a746b
 SHA512 
ed323d187f89fd282b5f6545abaffe8908a0c8461bf797631e26c52d56428f50906894e6bfeed7ad0771092233e14f73e4c7a50816b994feba85371544043037
+DIST thunderbird-140.5.0esr-es-ES.xpi 497280 BLAKE2B 
8625db32d7dd4d55b2b0af33ab5f3b7b236b30b656e4c37253c97aeab1944267a75a3996d39f370c5459f5e1e35bc092b0ba8fb5d8e05d877567aa8f1ba4135b
 SHA512 
246c34f71d0aba3a46cdd1a85489657b7c88f2c9f3d2b15a02c80bdc5c826c6f2d8da2afb78496d352b776aa07e6851b477fcf2d5a98696382845b364ab6b94f
+DIST thunderbird-140.5.0esr-es-MX.xpi 488156 BLAKE2B 
2b6d171f7abcd7db0b9ffc5a094b30f78ca802135f646737ca507ee2675b2bd6a5fcd24a3cd8ec43329e3d1c3f981fc477e227cb38e8d3b49c51d3f700cb5815
 SHA512 
6a64ad0f0dc073706f172e12670fa5327a6a7921e6793bc07fe8f828f5c908a3d325edbfe6dc23243919aaf4fb989556890b3999fb6c76ba51151ec93603aad6
+DIST thunderbird-140.5.0esr-et.xpi 443607 BLAKE2B 
ab719b3fc4fd8d5e4fb7b9b67c82f226536ca1404fedd38d58cd6f4c377a21fa0bb4fa99821803380956dada838e36633e0f679ea446cddeb2aab50bae9bf429
 SHA512 
85715c65bf59102f6930d3c4f8f23e86c46c3c8c95714c2425b4b796b0dd98d31c1995ddc22d73527c6011505d8b1dd17b88e2462c3587c0e71e5f7a1f3cf7fc
+DIST thunderbird-140.5.0esr-eu.xpi 473513 BLAKE2B 
7613afac2d086ba9fd0a9d1355f0cdd79f93ff83815049c38e732b3fd9930645c7a1b683ceaf06089254be9e8aba007f9c214fa89a19c0d0bbd0116a9baf0875
 SHA512 
8361b9566c47424f2fb7c948752ebe22e6f36afe5f27d43f33aee940b5c8d8158b5ca296e67ebe58baea06245ac617040bf402b1d25fe94fdedfd3ef9154dcde
+DIST thunderbird-140.5.0esr-fi.xpi 474565 BLAKE2B 
b5a4975ed192f6bcdf1fce407c5e326760ccf3c34b8585c7ea819b14d2ddfb540264422cfe33e55d5a21750a1010a11a1bbc78a915c5d63a09c6b3375099333f
 SHA512 
6568c70270a47eaf71f0f7a87b910630f5fd564232bbf1bbb6f00b02a0e6b50de3606124f04c4dc8c5aad48af17da57935437321fb827daf1e909a76ab6653f8
+DIST thunderbird-140.5.0esr-fr.xpi 508255 BLAKE2B 
e64202a0a8656c486d189ed8bc627b44f41baa664fa83c8991bf806e3ae2521371ecec09d579392dbfd4226c5eb974920afc536d734d142c946be21b63d78dc7
 SHA512 
5b9c09c181c9f0e888b0cdfee4db83f9fdf75ac082ebe9b48c183f50f4f9bdc786693b8c40566562a3302159fd9bc0f7e5515d2aeb6bea38c2abd1a13bc7447f
+DIST thunderbird-140.5.0esr-fy-NL.xpi 490664 BLAKE2B 
a4c47eb39aaff7e7ece6024bc57bc2876b91b698faa90e8b76a3306fcc0e7286774643532bcd38eb730c453aeab7adac6c12d2dde1b1b2e0f0df5210453c2ede
 SHA512 
69a58ceb73139ca20e1718dbe5fbb0304c8302a28fb99493e0638278579f79adaa3e108b13312d11586539a306cd5be8585454a85d66833d1009594b9b72d835
+DIST thunderbird-140.5.0esr-ga-IE.xpi 376740 BLAKE2B 
2b5e243b9c3e96e6fb09a89ee5d748f2e7e04663e9ab0ea3761601434edca55ff7bab39c4d778754a51e7c55d24491de80aceb61a3771f2d91d5e2e6dbbf015b
 SHA512 
f435dcaa76f57882507e3866641fc4f717088a3becb0e2d78c7444ec3af6c8a9f2a5ebe349f35e225d5daacfdbbd361842cfe4b5091f84507e007d4b22a47a7b
+DIST thunderbird-140.5.0esr-gd.xpi 461956 BLAKE2B 
d0782e16b4191a353a8f29fb2861e9c480eb3a47dbfa10eece3dc0545b6a99ac6db74c05c352e292051414e99fccf2ad0b578c069a38b7cbf48e6420895b781c
 SHA512 
92de3d4e115894e94e8ec5c260c38cdc5af7920e0c002c0c33a596d0783567df19566c373c42392973d85ffe672b678f8e5dfcdd529a2efcdc33e2a73241e647
+DIST thunderbird-140.5.0esr-gl.xpi 486669 BLAKE2B 
801029adea5b2719813bda1fb973192cecdb3f195fc2416453f58b633d4cf9cc49c9f3e4c9c6bcc6c896cff7bd0dff5dc39e0c2315b32b0ee3c3d4755c6e5c1e
 SHA512 
86c989cb534669ade1871e258ccb15b3e05c7bdaf29fa5a694369fdd2920d8f450880236952aa960311778904f1f0eb8555c9618313f48cd88e97b5d8d9860da
+DIST thunderbird-140.5.0esr-he.xpi 441520 BLAKE2B 
4fe426f4b21f03579c3bf9131ddb405e3122f94698d3e3f6aeee92feb5f4dbe917aafc3ec521fb19d5fd4edd32f02567af52ee75a0335d4650d337fb754f400d
 SHA512 
798f92d72afc0c3ed6c997cdabd275bedb103765d2d16a1108df4276fd6b130809c4f7ea745de667d07d7dcde9c7627004dd591810a8d4fe351f6261ac3fe092
+DIST thunderbird-140.5.0esr-hr.xpi 464033 BLAKE2B 
a7d2d50c399ee78284e98dcb57010de84524e71b3d182d1373adaa5f0d81389730abfe33f596fd6970ca0ae3da4a03a4814d4fe0d335df719b3a18ac48e86b0b
 SHA512 
c5a6f9acc3bd726c650faccea3532cc1cca1bb65490e05390f53b105509837e18b8bb37a813e1b9f3ccde377f4ac376076d71b9a5eed925dab3d5062ce29d481
+DIST thunderbird-140.5.0esr-hsb.xpi 514947 BLAKE2B 
4f1bb50245920c6713e673d96abd61d412a2973de8ebe1859fd86145d83a42b415a500b82b2578f0a4c22facce7426d3ba4c27c32ef3947387de5442918a7d5f
 SHA512 
967214f9aa7f5f7e6da44433b901ef963fb9d35a9b5cbc2da3526359a9329d6b86aafac207f62aadecadebbcc06659edbc2e1cc417b1d38391d8fc1f499ad11f
+DIST thunderbird-140.5.0esr-hu.xpi 517536 BLAKE2B 
50ab488c8a287c04bb97cf6005eaf040091f274213dfdebbf50f5701a98f05848b23b1690c5f3f6db99e2b1e05940b1d0f23754431dbb442f47d2cfb0318985a
 SHA512 
007f35fa8bc960978d9892f34dbe2fe03210d9aab3e22a35041ab5aa5ecc4c4ce1582e5aa3531c4635ff8c0d248c99d39437604ae089be4e3a839a96483625a8
+DIST thunderbird-140.5.0esr-id.xpi 463450 BLAKE2B 
bbbdb0a62dd4843e5bccb835c4e298697099f0ca45243b300013cc36b511159bb557125ab4a493e4b21bc7707f47236bcc638daad72fa8ec24bb624783e1110a
 SHA512 
9338354af014ac2c828c33a89672f76630948f107943ce5a7fa518668b3bb78dddc20b5eccc843b50a8aebcab313399bc7a46d40c60791fb08c071c1ec502ad7
+DIST thunderbird-140.5.0esr-is.xpi 482736 BLAKE2B 
4a954b5242fb5bc4d90c7d8bd75b97fe493848dbc484269a53018d39f97ff46565046770ac49d16c395a4981f8d506759e48470221e29f91f433e2d6ee2cb747
 SHA512 
9df5ec427cde3063ed987eff9b0dcac98381160bace7c2e982171647c959d58bca15c21496ff9e4ee540452feafa7ba30962e593264f57b4f2d5bddbfbeadd4d
+DIST thunderbird-140.5.0esr-it.xpi 488520 BLAKE2B 
0970f75dd76c1f81713531736f500a3837046d4cb3fb6f6a1defeceb6bd73bcc72e7393ab290ffc2f56943c6ac11ef2203b3ffee088e6c5937a98fb01b4ffc6c
 SHA512 
36d16354a0524762ac5aeff994fb92df41b4645c217a092a3316534d1801c7153220e69f4207f07d9042e0bf13541eb55aeee72c37971bed391db364af602032
+DIST thunderbird-140.5.0esr-ja.xpi 539358 BLAKE2B 
2704d49cd2484951ac052473d97a10e05df6bfdc1ebfa9957cfb6de57fc1ebb3d7160cf0eecf3427667d89d5e2c3f5ce92762bffeb07f9544e4b344735e8546a
 SHA512 
f053d2c665ee2469000dac5684887f52d52c310f85c4577e3554d41af6b5044b50c645f4aa72fa79eabc3cc544c386a8ad4357c9a5b4232865834e00c5687ddb
+DIST thunderbird-140.5.0esr-ka.xpi 551184 BLAKE2B 
ad661232a410440ccfc7139353d04f85f02daa42a7f76a6da3d0a8b3c95f3659b5337837ba5a3168a159a01cef237c8772bfffd5be8599fabb1bb7e88080cdf0
 SHA512 
4e9c83f67b7a24fbebcd064777f8c016cab7caccaa3bf942779a9cf18711bddf6c7f4bdfe2db6c7e8c46f0a03fd45113f114eedeadf08e6ed91fbbc3ac87f4fa
+DIST thunderbird-140.5.0esr-kab.xpi 469132 BLAKE2B 
00830a7163d6f6cc553702bb75ebf76e481c9d6c0fb30c9a06fb41bee04f245b92dd661418309e34216fe49173c40a7c5991bd7e50425f30be3b7a0eb02726db
 SHA512 
6962ecdfd4adcad34d8c6c7a0d6623f54003538239b1f0c49444efb298a3d31f8c35d8a7302ac2e5d8ec85e05c34358425cf762b941752d2387b6d132de42d04
+DIST thunderbird-140.5.0esr-kk.xpi 573787 BLAKE2B 
30cc2fbd74c0746980816934fd7b59923409f3ef9715c40e492188d3f540500b56856e1eb23719f198d64a19dc3a712dc3ce982be48ea6e44b97a1206116f87f
 SHA512 
ab65f5a3ac566636e69e03f0d42e96d2aeff5efbeb4a206a98bf94677c5214ee4ce65d94946dc7227825c8c2b0b6c6f4b1d46b24baba40b34a4fc4b411915116
+DIST thunderbird-140.5.0esr-ko.xpi 514515 BLAKE2B 
40489fe92d1730d8d54305ec14e78316f7ab7a6e3d6ebaf5432d0fa89dc514046b160baf6bbd433f1aa98df4660c0aa562beadf47f5e4888b9c4d7dbf6b5438b
 SHA512 
4d3e42f7a9a811c37e60f4c0280d833d1c7afd8b0b962621ff7ab1b078ccc624ecc06d9522506ea2bdd283a6697cf54c4824f1a805afe575008bd11219bba399
+DIST thunderbird-140.5.0esr-lt.xpi 441852 BLAKE2B 
567f41dbe6a698e365cd5ad59a2e09eaeee2ffdd21ffcf86e982bbf2d0c124a5b576f61d0286909b899644c336e8bf19c862b3229f7f3a9658f9b0686d1a2e60
 SHA512 
56fe1c7d857727db5ef9ad25fb7fb5b9877f92fb50d89787c0eb9c643de089e7ab33e100a0e021e83e7f1b8c82af0d6281d85a2c5e5ecb2ed6fa209a20dfea11
+DIST thunderbird-140.5.0esr-lv.xpi 391801 BLAKE2B 
52975c7cc06f987bc901e182fb9949b8df78dc505553026934d3d8f7ffc9d2d777eae21e379908a49b33ed87561eae0e4f7cc0aed13326a308f43362cc9d0eac
 SHA512 
e41c0d32d757e326fce1f6d698c197d60149596e313bade79f80b55f446419f868342fb9abe2ddc890563af128a5d16a219e250c36144e2cdfd4d1bcc98de164
+DIST thunderbird-140.5.0esr-ms.xpi 352176 BLAKE2B 
fce1cf9da5ac66c0e0b653eefbc3aeecd68f61001019a3c4822e7ae59a17dbdaffebeccb55e3e8db26486f40d47134611d5016606463dc64ef05aeb56e8b7b6e
 SHA512 
4a10c67dcb52594e94cf3ef8593d2c8c5c4e9f3c8a12bd6099328cb87980dba60702bac195954ad705596f7b78425cf219fbe19a1db5968d7fab673470eb73c8
+DIST thunderbird-140.5.0esr-nb-NO.xpi 447969 BLAKE2B 
8c77df4bc5c8818a65f473e2d04b6ccfed7cad6d41ac04f7269e34429df7b47673c65728bb1375f91bdd3a736d1ef85e0261b88172afaf35f9ffdf0d99e59c57
 SHA512 
63d4766ae12de036e1c55d46cad7ad2d0830f695059b45612e324c67e74a88452970c668cf3778eb038002ac13c07039b86c23bf2e17f7d2c6c2993289564b42
+DIST thunderbird-140.5.0esr-nl.xpi 482129 BLAKE2B 
97b514977ad0b4377becba0af1b2e65032f55b196accf570e6684e2b359703e6a6350de844c1db7eace49c0805b6167f5fd485b39c27bb85a71937ab1dd981cc
 SHA512 
ec56cae012f4eb771ffa00b8d2f1165efe674007712dcd0785460cebe4b16dd65cab7fa595113c32c1f61ae24c16c17caf9f0dbbeeaad76b3488525d8adc3d06
+DIST thunderbird-140.5.0esr-nn-NO.xpi 469412 BLAKE2B 
73368699934776831f60bd2760b02498b21a9fee4e55265355c3980102e78e3fc49d34d8b65b58bc610f86e95179feb46365adb23980ba957f6c71af024113f0
 SHA512 
f6aae6c2c25043f5a4dadfffef1b5711591b69aa1abfef29fb78f17f0e2ef7ca2cfc1b0bc4c85ccb1b00ab13bbe4eaad7bc379d14ad9a2607fc1ecfab9771fcb
+DIST thunderbird-140.5.0esr-pa-IN.xpi 434964 BLAKE2B 
af3de07957640847d08b6486571298d26f71614f65f9bf51bd550be4a8a5bfc0deda27bf7da83ae5dc734ccf4472944ce9ab239d84d73a9531759ff32c6915d8
 SHA512 
b7983c404003c037b7e59c1a9911ea325c154760a2b8d64a1cde77b30aba4659773a9fcd155e069e3ec3d5fb86d44fefab69ba8d2f5b5084b4e2baff03fd37f2
+DIST thunderbird-140.5.0esr-pl.xpi 515039 BLAKE2B 
eb06b1388e499c51ee3d29fd04a753baab8030a8fbffacf24fbc8c9c9417907daca52e3d71c63e9e8329c374689e2275c49baaedc53d7b59f4c435b2196c87d5
 SHA512 
65a4e656cbbf9832237c51fd1206b2af09517de0403ec6886dde43582b4c9eba112b59efb23a59510b3a480f1301b3618b2cc3f1df03b8a19cef7772592bb30e
+DIST thunderbird-140.5.0esr-pt-BR.xpi 489974 BLAKE2B 
7a883686b1202cbcdcd1c5b3c9a43f297e4f3c6ea1626c8ca57c967a006e3b39d1745c2b0bcf90e8d6b6d3d29fd84c18b506642e7b548386cb4adb0aff4eb1c9
 SHA512 
28da54009c117b2412135f7f3c4dfc193f155ca4301a04e00eaef319ad14f25ecaeec1b6cab6161755edde316bb923ebec2b3c19d91fbf920f2f229fa952a832
+DIST thunderbird-140.5.0esr-pt-PT.xpi 486332 BLAKE2B 
ff0384019ad0f7cc917daa07b22a15edc1efacbc465631391b96dd30d282c0bad2d09e8d448bf2bdf1c57eb2de7cbb44b612b0d61fc34322279aa49de0a8f899
 SHA512 
8818ff3f08b5dee2372e28e3375b7d7ddc6e28d70f49aa486901ef6ac199e0f698e3ef0ee2b2d778d2df02376459f2cc98019ff5c68c02aebb34ea53ea833fdb
+DIST thunderbird-140.5.0esr-rm.xpi 487182 BLAKE2B 
febdad7d42cc4cb5b813de4757411016e4cfec9bc419cdf913d482828488ece817bd919fedf1344371810dd4677a0505c1db4964c772ad1d951547a50244c61b
 SHA512 
5f57f76e8ab64f16df40e6759bad36e7f36073b80fec7dcf0f1732742c7518786b2f45ae39bb8a64b4b2375c11835be44e311063ee127b5e2d6d33855ebae0a9
+DIST thunderbird-140.5.0esr-ro.xpi 451871 BLAKE2B 
536062a4ffdc2735a1bfccc25716bdd2276169cd239718c5ce2e3ec4628721023de3987da938bc3348374ef1e91b5b1eeae1e47f9900be72175f9ad64cee07a0
 SHA512 
b7a5483195b347151e655bbd7f9134ec20774c13a2c4205152ea0196898fa0490ae276ee8f72683d60bbf6c3519a06014a3eae18d46769fbe2b75da8810ca4c6
+DIST thunderbird-140.5.0esr-ru.xpi 593154 BLAKE2B 
026ef625860220548519f3f324e81217d1c4bcc17afa2036e00ba45c5fa3914e88b2296371fb13ebe3559ad9f8c074cd211d2f6a85fe53d449c05a2feb3525e3
 SHA512 
524dbdfe7bcf608a281a68ee8fec9adc85bc2ac4a37e2b1d18a00cbc5752a8068be9d9d7ccd40e90519a5dd1a37d58d711b34929046ad1a6055e7881de8e2163
+DIST thunderbird-140.5.0esr-sk.xpi 519234 BLAKE2B 
ae6dc565a30f02e2c7c177c5d61383280a705829557916dd39eb13fd243400e9107d1057a932c6c6d10caa42e4837eb7c01a2564aeb27cad6bcd654d00ca3e01
 SHA512 
aec05a99889ac3efdc3e85121a836045c735bdd1007878a4824ff4a0ac4c2b487324ab1fbb87793c690f64ee8777c427f301f8d20ea73e337d296c216278d99c
+DIST thunderbird-140.5.0esr-sl.xpi 485939 BLAKE2B 
744968a2062dda01d3cc55837360049763fb1245a4a44256b8a0a3f909441ca26170392346d4da12ab7535f81237624a370ced376674d7de01f5c01123076a6b
 SHA512 
6934330466adfd787347d5276b875bde2a86d0d10402236a3315fa73fc32256709bc52f52bc915fe4b85666453dcc8ea233620c277c84382e71d2256603447e3
+DIST thunderbird-140.5.0esr-sq.xpi 504052 BLAKE2B 
d7013317148f492154c47e9e569d859c2233658fbd16f844eb0121617c211cb3377c38678adfa18661961211da53fc462bc291336c0466a31cc7c672d307f1d8
 SHA512 
74a19dfab1dad81bb18732b2134c79a63a23d5819cf03c8a2e08f2ad677ead773be9b1287816d46d5cf7a742c71e4f534f60cb848c914b27ae06647dc521d431
+DIST thunderbird-140.5.0esr-sr.xpi 495987 BLAKE2B 
925f2dd9ea16121a9b60eb99e3d56519d8471328280df3cd33bb4c2786b5c2faebefd74ffe8b5ee6ee7d9ec4d1417e789d5323896c2c69775e0dcf2ad86d82d8
 SHA512 
a31ba3b7c77ca8a9e0a9789a3d55149626e7af966af53ca17c7a1895ea211530ba50ed93572feea539d18ee57feb48cd11b0d62110e0856ba2c425b1e179e916
+DIST thunderbird-140.5.0esr-sv-SE.xpi 484418 BLAKE2B 
9e3f6b26e20835cf43aba23a311d0e08e274043b4ab3ee97c66b30eee275f68f287bf3ebdafd3fa2fc74520d2eb682715abac391cea744f25c954dbbbeed214a
 SHA512 
1f2f8871c54b08527aa243339ba3957b86107dd801f27f1064a5a369ef0d649e7f83504e1401a4e6e2fce4ea7dd5d54163a5fce06fc7174c33096ebb606841fc
+DIST thunderbird-140.5.0esr-th.xpi 565639 BLAKE2B 
e1ce56734d3bef64b7f9e6d02bc8a83da2f14df2ff4ac5332354f1f4a8785970e2fcac53501ffa257fb6df07ae58ccf9a15780e47b644a38fafb0d36bd171cbb
 SHA512 
2ccb6b4940177e78531c67a39fbd80cb81684c1206004b66559c99eec490b4c858afdd04f4d2df72ea9a4166d2646b227d9526dcead0b5a17f437291bad00af9
+DIST thunderbird-140.5.0esr-tr.xpi 495542 BLAKE2B 
ee811e768f7be8d20230943e7234feda06f54c808e9602d36784916844a896abaed40267299ceb1e81dcaaa29ca145cde7c91c94d59e627145de6de0490ee72e
 SHA512 
bf8f8e5123ac7e1b0ea1a7e5675566d1b4ee0720c70cc4c730b76e216778f67a79a2cfcd4b21c072a97a457a21b338c6c2daeec355737dbfea3d342109980403
+DIST thunderbird-140.5.0esr-uk.xpi 582166 BLAKE2B 
4f52dd3f591d46086657981bd098d5afed37ab5a6fa09424ecc3dafee84d9a8a698c85991ddf3339489ad73dcec26700b25cf2821c4d86bfd9ef9b9d8c17ece8
 SHA512 
aaecc8cc6e35e6c77385179ff5126ee8fb6f6bb1bb84b6d59a6d6431c602c3fead381d612938bdac411fdf0c69e05087eae3ab905f3b3cd6b939c6ae776e1d15
+DIST thunderbird-140.5.0esr-uz.xpi 355264 BLAKE2B 
9a3d21549be9d975d37e296f1892d5adfe2f2806e28dbca0cbc84e4d1c1bcaf38d7deaa4a28191c807a775cf9217eb26d84cedc96c471d36b2489fd91c491e2a
 SHA512 
830afcae1b954b38890b4f4ef7d8555603c700f18f7b6668b2ebd5dc4c6ad94795d2132d3e5b87dd16cbaa55e559d5b7ad7da4516fdf5e1ac4e614c341d30b00
+DIST thunderbird-140.5.0esr-vi.xpi 518874 BLAKE2B 
dd28e4911b4839602ec4136154e694ad37d9688c5e8c424db5df8ab2ae3c09af50a63e0bd54441a8f01ee406055e3c762e09f6bb8c82b240502e5df549c35eaa
 SHA512 
8076464d6f4e061e4049ab69401fa9a7e65088da0726be6a6b7a2d13c26b083503897f5f72b06734633f428cb9d8cf83e84611bc0b790fea9f90af65c83e8601
+DIST thunderbird-140.5.0esr-zh-CN.xpi 507840 BLAKE2B 
af0769298764b66a984dbd9ae60f1beab02815435b0e5a6d37cc2f3001480d6aa5e4cdfe4d70b71ef817c820675bc809bdd9109da85b627ce5dc4f9d598757c6
 SHA512 
a8e5b8f07734cf9ed6d7ba5636c5a077b4c9c2a4a2460d87f0864c66ae86cc2dbe776c71a60acd9285513a4a07fadd9d73997783dfae8061e53ee22914499ece
+DIST thunderbird-140.5.0esr-zh-TW.xpi 511163 BLAKE2B 
feff2877b6a9bdf27ef5893381204c33812e70d99efdfd9e9ad9db46e954777feb71ab2a9675a54ccd0af0d200e8e9fa949341ea358788c7956cd66819e5dbac
 SHA512 
a4336503647ada5faaea42fcf2a1b2033259691e9ad43e4549224a16013e586b26457af216d86005efc3fab70821168d0b3db892eaa0669f01ef99c1cadcca89
+DIST thunderbird-140.5.0esr.source.tar.xz 747338592 BLAKE2B 
c858c92b981353fc7c1808cb01ad2578bc2616509ef02adc231a6276145589a633cc40b4a80bf7155f1554299123dfe26fc50912d840bbe2b40d52df1d7ba9c4
 SHA512 
ce0d0ab4715831656e6c841d75a69109db6d64b4151ab69ecc954f1d3a045abf64e641e0fa46113cc7f3149bfe237687d4c11de1c14d013ce76e55679cadb1c5
 DIST thunderbird-143.0.1-af.xpi 316517 BLAKE2B 
10bd73a7df193b2e22003ea0795c6c1892a3d0d0cf38d90bf990ba338680bc051df2a8685579bf35ef40168944516af226c7d63f3ebe3e9376a4bfdeaf15a65d
 SHA512 
75d9ec847977fd5afe47b6c1c83e4c820139c1d8861758a76ba4f6487c6e87d93276b7e41542dd82ad0cbf0a5cd9675ab73b76629593ac7b332694d5092ab3bb
 DIST thunderbird-143.0.1-ar.xpi 436468 BLAKE2B 
c92ed07af0a8a3e72fdd877212cfd63af8e1b2aeb7c1a1298ba540c62dcdd629b002642cb0f41d0c41b7354de16c5a7e5693c11a32e60509dcef9fba7fb309cc
 SHA512 
92f369ffb1f7101dc7bbd2b248059dc77fd1968166e08fe617e88ba4810dc4160ba6ad3de28a07f09cbc919002de895ec5985c3622d7439cd9ac3b28261c5270
 DIST thunderbird-143.0.1-ast.xpi 340775 BLAKE2B 
75faafb06e36b6f9c8782cb4469d8b60ba152a526d8b430c04e161f6b6a5a997af4489db1af6b6dde78eb22dd00c32977ef5398cb48adb44f14d694adc5d23ab
 SHA512 
2825d66a736680bb1107d02c7a98be8ac8f79c038b010ef8d9be8ed34a0646ca1d68af3783e1c31d1c6d8ee3e0de50dc00606e507fedcf7488594decbada4809

diff --git a/mail-client/thunderbird/thunderbird-140.5.0.ebuild 
b/mail-client/thunderbird/thunderbird-140.5.0.ebuild
new file mode 100644
index 000000000000..efb7d2d9bf5e
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-140.5.0.ebuild
@@ -0,0 +1,1156 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-140esr-patches-03.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
+
+LLVM_COMPAT=( 19 20 21 )
+
+PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+RUST_MIN_VER="1.82.0"
+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 check-reqs desktop eapi9-ver 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[@]}
+       loong? (
+               
https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
+       )"
+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 ~loong ~ppc64 ~x86"
+
+IUSE="+clang debug eme-free hardened hwaccel jack libproxy pgo pulseaudio 
selinux sndio"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx"
+IUSE+=" system-pipewire system-png +system-webp wayland wifi +X"
+
+# Thunderbird-only USE flags.
+IUSE+=" +system-librnp"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )"
+
+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.27.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
+                       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.112.2
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       <media-video/ffmpeg-8.0
+       sys-apps/dbus
+       virtual/zlib:=
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf:2
+       x11-libs/libdrm
+       x11-libs/pango
+       x11-libs/pixman
+       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-76.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-pipewire? ( >=media-video/pipewire-1.4.7-r2:= )
+       system-png? ( >=media-libs/libpng-1.6.45: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]
+                       )
+               )
+       )
+       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
+               # 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="7400M"
+               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="7400M"
+               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#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"
+       use loong && eapply "${WORKDIR}/firefox-loong-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Workaround for bgo#915651
+       if ! use elibc_glibc ; then
+               if use amd64 ; then
+                       export RUST_TARGET="x86_64-unknown-linux-musl"
+               elif use x86 ; then
+                       export RUST_TARGET="i686-unknown-linux-musl"
+               elif use arm64 ; then
+                       export RUST_TARGET="aarch64-unknown-linux-musl"
+               elif use loong; then
+                       # Only the LP64D ABI of LoongArch64 is actively 
supported among
+                       # the wider Linux ecosystem, so the assumption is safe.
+                       export RUST_TARGET="loongarch64-unknown-linux-musl"
+               elif use ppc64 ; then
+                       export RUST_TARGET="powerpc64le-unknown-linux-musl"
+               elif use riscv ; then
+                       # We can pretty safely rule out any 32-bit riscvs, but 
64-bit riscvs also have tons of
+                       # different ABIs available. 
riscv64gc-unknown-linux-musl seems to be the best working
+                       # guess right now though.
+                       elog "riscv detected, forcing a riscv64 target for now."
+                       export RUST_TARGET="riscv64gc-unknown-linux-musl"
+               else
+                       die "Unknown musl chost, please post a new bug with 
your rustc -vV along with emerge --info"
+               fi
+       fi
+
+       # 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"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-valgrind \
+               --disable-wmf \
+               --enable-dbus \
+               --enable-js-shell \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-packed-relative-relocs \
+               --enable-release \
+               --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-gbm \
+               --with-system-libdrm \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-pixman \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+       # Whitelist to allow unkeyworded arches to build with 
"--disable-rust-simd" by default.
+       if use amd64 || use arm64 || use loong ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use loong || use ppc64 || use riscv ; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # riscv-related options, bgo#947337, bgo#947338
+       if use riscv ; then
+               mozconfig_add_options_ac 'Disable JIT for RISC-V 64' 
--disable-jit
+               mozconfig_add_options_ac 'Disable webrtc for RISC-V' 
--disable-webrtc
+       fi
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       if [[ -s "${S}/api-location.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-location.key"
+       else
+               einfo "Building without Location API key ..."
+       fi
+
+       if [[ -s "${S}/api-mozilla.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+       else
+               einfo "Building without Mozilla API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-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-pipewire
+       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 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 loong || use ppc64 || use riscv ; then
+               # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+               # see bgo #917049, #930046
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       if ! use elibc_glibc; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # System-av1 fix
+       use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+       export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+       # 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
+
+       if ver_replacing -lt 136.0 ; then
+               elog "In this version of Thunderbird, upstream introduced an 
in-app notification"
+               elog "system. Setting pref 'mail.inappnotifications.enabled' to 
false and nullifying"
+               elog "'mail.inappnotifications.url' may help you avoid these 
messages, if you don't"
+               elog "wish to receive them."
+       fi
+
+       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