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