commit:     400fbcf22e809aced225eedfe4baea692fa0c451
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  7 09:00:41 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Aug  7 09:01:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=400fbcf2

mail-client/thunderbird: add 115.14.0

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

 mail-client/thunderbird/Manifest                   |   65 +
 .../thunderbird/thunderbird-115.14.0.ebuild        | 1363 ++++++++++++++++++++
 2 files changed, 1428 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 66b89094ea66..424e20256b94 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -64,3 +64,68 @@ DIST thunderbird-115.13.0-vi.xpi 773834 BLAKE2B 
48965707b9c438c7224d41463670b537
 DIST thunderbird-115.13.0-zh-CN.xpi 772579 BLAKE2B 
a74d96bd5e8be22f7820860b790c723ae70ca4df3268dc857998db7dea61de540e5393e45808a937a8823583b9b72578798732b50f7fc4e60588ab7be9bae9bf
 SHA512 
65d3ce84cefda33f31a0b0455dd59b9c7b2466b50f94741ae8c97ecc165897ff310303ce17b8f243c488862481b01723e97897c2dbfa46526be304d7dbdb8b68
 DIST thunderbird-115.13.0-zh-TW.xpi 777571 BLAKE2B 
6c87f941a7764dfb8c6edab6785a700c13aeb9ac879a275262ed6c5c2fd606e727ed8b64455079ad8462d5147b104483ae2b09f720967ff808e37a2c4de52985
 SHA512 
5ddf1e877688e3d3dce43b21112ebfde881794d04f4421ba65dfdaea90a54d34d71db822fd34b78b7594019154db8f187c5eee5ff67a220e87bd1e1f57bba4d7
 DIST thunderbird-115.13.0.source.tar.xz 536438476 BLAKE2B 
7c6af03008a39a4a35052097b94cef79c3c8f8128c9cbcd5ed4f85ca88c1e67ef0f8b63168766cf9839c50e8d5ae1473d4aecad9e3b24cc1f46516fc4d55766a
 SHA512 
98ee23f684aa7a166878459a6a217bf3bcc4ddd8fa8ebbd0a1d2d66392ec1ebff67dbad55d145cdd0771539f127d91c4137211cf4efc80e450e6a34c95e8529c
+DIST thunderbird-115.14.0-af.xpi 551075 BLAKE2B 
c059761dace91e4f5e98f1bdde879312f2eea951ade269c7b4239974aa4609cbc8f3090a0646e87fad840bfc166ce2421403e7c210c8ae965ae6385404d06c4d
 SHA512 
584013d7b6eea794448f4764c17de7b989155ca782f602948a2d0f745c4344954daacd35327bcb85f9e9cad99d5b917f748d47a4805cef171d806bd8211aa591
+DIST thunderbird-115.14.0-ar.xpi 673775 BLAKE2B 
ea5e62105a53306ee18dd332775eb4917c68d041f50b14fda1baaa9ad09df42e6dafb47a03023c3a46cbf5092009ac84ae97cfe82b6771a99dcc7e86c6844b32
 SHA512 
2767eef517e451aedfca4b9a8e254f4388afc1c6021cdc301bd56513073688a63ceb7891aa5bb9dd6c83ae2d5f9078e9b832bdf3e761c88e2379076d15baf519
+DIST thunderbird-115.14.0-ast.xpi 570025 BLAKE2B 
3477dcd1ca19880feeef3dba4fa07396e84acbb80345c1402fbfc1012451b2abdedb05b60f4907ff2873da174216e1275a61a281f4ccffd0030403b4813062c0
 SHA512 
a01c2d85389e7ca86af4bcc73565bca9faea308a77c16457dcb981492433a177761dd20daf3224ee64c7a527408265ae53fdfb2c2a5b4cfa0df8d2325240ca3a
+DIST thunderbird-115.14.0-be.xpi 737420 BLAKE2B 
f8f0a2b9a6b2a2541eae336e11fe876171636c59135a58264484adb1dd01a22d2e015e4203cc736d9cc44dae6530490b1f56dbcfb17aab41e6e897a702edc51f
 SHA512 
58f519048e3a5f19e227ace477df49b64ddd622c9ea31e5e819d4efd6bc9667d74414abd1178d356ebb021d11de14cfcda125a1a5ecfc080073c5bded074cef9
+DIST thunderbird-115.14.0-bg.xpi 784506 BLAKE2B 
d34e1b3e6bb62cf433b82787aec4265c5194638ec85ea37d05f7c7f41cf0cc440865acaa07d9d919dc48e9a8504e7cb0fbdd11eedba2bfa57e5cee2db37b7a39
 SHA512 
09b931dc2469bb3df21cc85db53c00407d10c067b957ea63cfb921b89bbd4157f075b72abf8abec923c7c553f8e0c64c42b6d98d96b1c9bb8b27b53688dc99d3
+DIST thunderbird-115.14.0-br.xpi 648245 BLAKE2B 
d974ac0eb0abf6f822914db5a6f99592530c77c6e832a11f1a005d464eadc2b1bf66807b1008e323f602b3b8bf6fc6578d4b6c51d541be30b7a83308dad8472b
 SHA512 
992cf5337f6d6b5761ad7332f11b0bba14eb962bff0c5683ca3f01a064ff13d76361adf177953a9091d48277d59f2263aa4aebedd450ca2b158a692a06e08ab6
+DIST thunderbird-115.14.0-ca.xpi 690611 BLAKE2B 
28c74ba55689ef90b2a936403301b28f30add0ba9bd78507f37f87b420ca47ef86976b7a73cd3fa7396f06c22f96605d1497250a89440be9e9f9bb5518bfb448
 SHA512 
ca23e0a7f5df0e167c2cb293e1d5f3e8bf7af55de3233107b73c297c79121c2945da0fe470ea69bc2512de5dd9a967f674cd75945ff603769cc356d3cf3569b7
+DIST thunderbird-115.14.0-cak.xpi 669913 BLAKE2B 
a5de3694f2915b92889df15f147a2eeecb3d966580c669f54c3b34fed704c0c0959d65c9fc7f336540b18392ad79ab57374b4e4fd346a1f7fb493ec7447b14f7
 SHA512 
0c15a5a730f9ad8044004b9caa519da63af0312ef34edd818d691f9310c83ee338ead82ced902f340925c21dd29cf47dd19e766bbb9282dc76dc0944f3f707e7
+DIST thunderbird-115.14.0-cs.xpi 773205 BLAKE2B 
954e169ef8b322529b79e26cc290baaaaaf7d113fd0f44cc798b83f23f90699d7763da1057ec438330df826e4b0386abeab28984c582712039062c86df6fac59
 SHA512 
c5fafb40529893b7a84f044fd69b548ef627ff861f63ba3c14411b860471bbdb308b659e033705afde937e99c28e0d80f7a2e456d305a5621662b872e0dc17bd
+DIST thunderbird-115.14.0-cy.xpi 736728 BLAKE2B 
69a46412ae8bd4d2bd307f3633860a3dc5eadc94cb1cdc819a7f9af5fbe469aaf68e5eb97887fecf032051daf1748100d7be5d049284b3b13bb4e4e4ff643943
 SHA512 
4dc1c483f79e0b0986dbf7b6ef9dfc3e939b7621b0418b9f704d99cbcea18f97dfe3843b4d204f673e62050bbfed2fca84c7545f6baaa6c25d532f21d0c0b0ba
+DIST thunderbird-115.14.0-da.xpi 724375 BLAKE2B 
81bce77270c0b3586af2914d2c3e5cc75a9555e87d306101fd74dd347bc540a141736fc259d5e4b41ccc8a982ee9386896ae582e5e8f2155cca89e656be50e8e
 SHA512 
fded4ba16f3275e0063daf590696590dd7bfa2f9e687666df4e351a864808aa890219f7883e8aee53a299ee6231173ec19e834fdb256a45f0871a329f6bbe360
+DIST thunderbird-115.14.0-de.xpi 753549 BLAKE2B 
2ddd5994da49b93ed9f9cf3911d121cb2598a2ce7afa0f714377d8f25c17b8af2f97ad3fffe7850757964441180c8a65d228ffe623b8fd7011235a8d65931fd9
 SHA512 
63efe71b9ae267b0afdbc8be55e2f66f4b0b86a1eec31df760dcc57ee8e6f11865712bfb5784d4760ec6d75314ac3acae805d105b08c54d0ea619b898da6428a
+DIST thunderbird-115.14.0-dsb.xpi 773555 BLAKE2B 
3057c8580bacdbb2f306bb76f182b8c5bd60550224878c26aa168d341a5da20a5a94eb1f17fe5d08502c61a6d7202ed3f32d330a5533ee517a4bc9e27ff4d687
 SHA512 
d6c341b1e7283c756b98e9040dafc4c71743d4d4254b6a6e13664a14b4897058334554975e06905f99d0cb9457fb36234413733eee5059b370ab4652d27e25c4
+DIST thunderbird-115.14.0-el.xpi 877605 BLAKE2B 
f06810625dfb37f8090c653056197f43d860be38345673865cda9f0bc82ef2e1f8f27bc3acbc53a7a0372575f9fded8f28a042c4c3d85afdb0849dda5ebf8bf2
 SHA512 
ecd1d5896a145b925af0d80255172866e163568822bf306864eabd1c577f002fec022ddacf2cc8212f29287aa56a81448557d4e4c619085db5c41b5a87b2b1d4
+DIST thunderbird-115.14.0-en-CA.xpi 691843 BLAKE2B 
a05d1fc63b602efa96583bb1cab42f5d4507c088be1701bf45382f051ae39a7d98e8b1030a0252d098503da159001845e9281e61ced53cb142ec09d5fcbc1c92
 SHA512 
5c4e29534050dd9888a69e934e6ceeb22c2bc4f0f8182ef9c7a019da7ba351158f6d83f0f4a0548d06e37fd3ebbfc828eeaedd31addc3ad5ea3fd89cfc43bb65
+DIST thunderbird-115.14.0-en-GB.xpi 693140 BLAKE2B 
56479aead322b98d12b6fc16456dca6365fee2257a59e549f11bb1d67f40d13bb5029c3aa04d27cf1b4c5919c95498545216bc17b2188df47541532117e58bd1
 SHA512 
a64e83decc87c5050e9b3557eda80b33cd076d86f9180d6d33e4068e3aa30c7093f0304a92e4e9c7728809ce62faef1a964053784953f249304483f0df9b7ff2
+DIST thunderbird-115.14.0-es-AR.xpi 747974 BLAKE2B 
6e19a75a3ce8a744a6350514efa86e7b288cc311024fecc3f319027bcf35a2f9bd0a86f8fd66fa9890b225fb8f5c820bcee13e672ca4c34df9622a0fdcb15e68
 SHA512 
ac84f6a4a4e6a7d026b888da9a23660c048da5993b09059c41542bd699ab8e3fc4dd0d5f3e0b2a49013ce965340b00789bbd8883a4c95e792af7ec1a9b53252e
+DIST thunderbird-115.14.0-es-ES.xpi 710345 BLAKE2B 
56235f2f3a53f05e9a2f9cd1ea4492dacd841a50592b81da7787e09e6fcd72d8fc85aa61ec864ab455ab8f4a01032bd787a267a88bb1392ec924f8ebaf18291f
 SHA512 
c7dd7d7f92d5e7146f87925e11e61222acf564466ba5fbf9b56761db7f4f5f5d5e91aa40a860d6095f9e484f5e681188a41227559516fdb97ac39966dab0d491
+DIST thunderbird-115.14.0-es-MX.xpi 721705 BLAKE2B 
c5ea8cb8a7a5fc0264bd2c6edd4c98f93bdda55fe5d0c4af69aee9d1bdf66fce766cf5d13db3d16f3ab98ce8b8e6204699f20885b67f083d289e4ecdc78a587d
 SHA512 
ed8416b441233203f5e2c1d95559e9e66c7a4413573f7f8c6157ae0708df3a265580599eabf8dd22b88630f642435cd33be62d16c7b3c5033a5f6f1989b378a2
+DIST thunderbird-115.14.0-et.xpi 681845 BLAKE2B 
f8c43bf64c09f938a3f9f901ab5909e5fb68cdd8c9ce7d0dd3636b656e78b9e45988788fdbd4546239ae4c5e947bf72f2f43aeb801f7e614254486e063a0fcf9
 SHA512 
b150c1fbb52ad4f2cbbe0ef5a17898324a8c111a6db7bbaa621af478b7dc8ec9a2dcc0abee50c4e38d377964e8f49e2943b9617e81126ce7a3ae73f4dcd794d2
+DIST thunderbird-115.14.0-eu.xpi 715703 BLAKE2B 
cc0c64a4cd10d0916366a10ddc820b0af1ef45daf30a90e6e5118ab34d977335b45905188762005980593950429f377a4bf88fb17ab5c5ababdb581d3781dcbb
 SHA512 
89a656d9adcd98025c846db4e744f1c44e8f055afe30ae19af32d515133a00e6986b1718eedf0e58cf2c8e116ebb615bd11c9773eaf0e9cc0ad71da54df7aff9
+DIST thunderbird-115.14.0-fi.xpi 721458 BLAKE2B 
51e8846f9fa3b193d1af1ac247e757720834c9fdab9ad1e6be99c5388f08bb4153c4e4d57b5d7fda5ce52a00b6404539c5a23fd18cd0e33af803f60217cc9d1b
 SHA512 
5c2658f35998147d1e059cee9dde2b239be116ee9805621ad01056c13e39c57c8f23f30e02406d071857c34e19df2e3a313be609bf69c616c1d4a935987cf9af
+DIST thunderbird-115.14.0-fr.xpi 760363 BLAKE2B 
90be2ee85bfdc05ff6bd569f68e3cb77de402267865df7ca4907704bf6b72a53b38b4a18a6067dc2ca2134b3c059c00df6c88f20061154708b357b0983d9e3b3
 SHA512 
6e8d1384030b8c45ae6222faef3949b0502d660c2a61bb1951af8dc800fadd663ad588f789836587240947a909d4abe331b059f9b680307e76520237543ae3c0
+DIST thunderbird-115.14.0-fy-NL.xpi 742643 BLAKE2B 
e65e5777232f7bfdd3f30c9d6f05f40f1c6123accc55653c53931933ecd8baa2ec96098d20ddbc16f3a94fd62915ed98e94bf36e84d516996cddeb18ca46b7b0
 SHA512 
269ace04c16c40d65c44dabe11192756574efd4989f854496d7b0bfabadcfddd14e5fbd051303a63c54eca6622dceaa63df7418bd1b3ee37e06553a7ed1ba942
+DIST thunderbird-115.14.0-ga-IE.xpi 611260 BLAKE2B 
ed1c147a2e4f14072c277690fa4fe63e67949c692f083cc7edb120566b39b0e9aefd07af0948d683dce248432d034f872f13aa5780c286479b993083ed73b927
 SHA512 
5db9010df40ead2755786f35fef01c710827733523135fa131bb6982aec65fec6d33ccb1ec3bb02ad2e8f6d408a4f690442fb80a4dd3b9630c8efee0cb32335d
+DIST thunderbird-115.14.0-gd.xpi 714361 BLAKE2B 
b6a66e5d188620339236dd1ef36136ab6fcde33e43c45a932ee785f48736dbbbef81e49f0ab562e697cf0af079b75040b5a79e2ac723734159a2c14778e37203
 SHA512 
0d3075c4c90bc9c0473f79aea4a83b6e2b58fba18b5d5821c459803020955a3ea44114b96f897410ea51cbc5d9cf5fa006a7c8c34c29ad0caaf0aa0a0316f3f9
+DIST thunderbird-115.14.0-gl.xpi 726304 BLAKE2B 
78963f8dbf79150d00ae9a32acc2404e59e1b1d4c9dbc17d3a9a8386402142f11ec4bd334afc0fbd6d6d367d18e2f87980833d83b96ee606c1cd92987969e9ad
 SHA512 
1386e78162fba0e7476619038a2b729142967faef8c8767d53fe2c94446719e90db49416f2ec56fa6d9053d52a89a9493d15a9298bb1acc29b3bf4a36731632d
+DIST thunderbird-115.14.0-he.xpi 693498 BLAKE2B 
bea57cd737f313866516b2ff2908e1d0e5b9f99970ecd5740b58a4068dd778b0db9bc1a657327f2864475142d04475ac86ecdef75d217378ce616a3574b273a7
 SHA512 
71892ecde40003ebca1974336a08c63965083c98d18012effc1bc8912cca855c7b02c57f86a1f947e01e6d1f1a993d9586f71244625b8fe40b09fb4135569789
+DIST thunderbird-115.14.0-hr.xpi 691433 BLAKE2B 
08086582deb11088535f6f3b4f782a8d17fe676d44ef494d2d15c4779ded5bf3ab7baf31610c557d5cdae338e58c01fea3e56240ba1723a00c32ac36a7d4355b
 SHA512 
fd7b9f632768f05a4e48c5996542191382d6530cff1fae1785cd6a8e6d48425a029b0cbf6a3b345f8b356fab3605bb00a64a88b6fae58949f2811b22735f534c
+DIST thunderbird-115.14.0-hsb.xpi 769641 BLAKE2B 
5771a3079536f3497d5d1fe961d1b06d90f67db8981a8101829d20404a9c5c7c3554a9a656eebb84e27463759e08ec3f1e1e89b0937118369902e9ac67b9637f
 SHA512 
9fe042c385bc89a3b2f75f8f0fc4b95823136e6c0c64e763d783218498caadea36e5c23b2898390ea14ff47743cb61528854f7e7171ac815557ea9cfad15e9b5
+DIST thunderbird-115.14.0-hu.xpi 771526 BLAKE2B 
6ded963a558a8c0b5fd451ecdbdcc20771c1b3274271bcf049767f98605cd7ae925e13171c71763041927be372bcd7165fe71880414ccbf40d57adde319d1db8
 SHA512 
72e50ba136d89eda9f97990fc9ba193f81cf7a84c00b40116a5fe6c668823a95e38d47a0ab452f00dbb03855eea17882f88d8ff25676fe0ba720c90202316a78
+DIST thunderbird-115.14.0-id.xpi 655009 BLAKE2B 
ada437033f48a3131472eddb33547a0c60d2d0bee013b02bf86c5ab412d5755254536a071b72ed05c61361d04dd8e54e9c65b47eca50596f90042a2320bf41b9
 SHA512 
808832a2d44e9ef4744222357bcf07f019f278eb69a0c77cfd420f924ad23749414e99ed48ec0af89ac5e2df202e522ed68de51e8bf97b492f6f499a3be7c5be
+DIST thunderbird-115.14.0-is.xpi 727511 BLAKE2B 
381790fba10c470a6c4b6099dbd3dc72289f541f916d7a5dba9ccc0522a68cea4d18c0e4cc17962c6576ce82ad50af2b7c3c91636c1acc100587afad784e752c
 SHA512 
15d3e85812b78f120b1cb13feadd1a465b5cc91db2888a602bd68b3180d5631018114ecb99c6819df2a6626cf736add59eaf01dde585fede8f55fb173e39db40
+DIST thunderbird-115.14.0-it.xpi 678891 BLAKE2B 
79c66d8d2465627a4ed2343d2673edd0db6f783a596df392a240a099f3ca2eb339e6f8be741ac0afaed2761b9427c22d5358962604e3fff8c3061c36e5a7a7b9
 SHA512 
359fabee10e9e5bb2130d918782c14007a70f2f912a1e683274ddb723cf10ce9fb256e6155ef299fa7bef5d85608a4c56faf91f951d269179c755068cb3d6583
+DIST thunderbird-115.14.0-ja.xpi 806835 BLAKE2B 
bd47fae4a1492e1f5d523ef40a234ef4181526014cb22c2a13b05683f33077eb01fd858b9d330b7acb12da1ab74b85d756baae1fd02230ed3fabcc338147c670
 SHA512 
e5c161f7b3814c7d9a3ccd0f858406e9d625e950fd812482955f74eec291d50cb7a4cf06577fb286d2f4742f5c6d8afe7663024b3f4ffbba0d813e269bdf0e6f
+DIST thunderbird-115.14.0-ka.xpi 786208 BLAKE2B 
4e4f7156d3c515b1cf4fa509b10eac4be5a35f34efb04296da88d021d5a7ad7575e775f6f290fef4f6d60a28a08fb9ab787eacc748b41101c503785d6917cd1b
 SHA512 
e1f2621207d7e4e2656c568de5953ffe6042d1490dc66fa96438ed2b5cb8cd946ffcd152f903a33f29b567a548f71b3c2426dc5b49d1dd4d227ddb3d18e6a9bd
+DIST thunderbird-115.14.0-kab.xpi 716194 BLAKE2B 
1a15da10d72355b628c73146f561f89505097df9fa1dc09c27092c8215eb2d03bb6ff72619f3da875d54e7365ef11e54216568247cec1d8a644e762b9d217e92
 SHA512 
d0c0b6f17466d935170e873cbf8f28c9b685f7e1c79ba17d19b32cd03d8d727763b472038a8cafbfac7326f2d535b1707baa256c6f4ed86b99c58fcc653b5a80
+DIST thunderbird-115.14.0-kk.xpi 846249 BLAKE2B 
7c5ab66f18305813529c82f1b1f8ceebf8f70966b48b0ccd4dd861fb885a40b003d4fe4e18871f4e11c22e18519fe003a80579e03dae17934690afeb331264db
 SHA512 
a6d0b22d607d4f9688336e9fa983d9d6664208645948c38d7565542d7e7003a0e8208d12bb768d84848721ef26cca6529bdac828d2713ec3c058fbf24bf9afde
+DIST thunderbird-115.14.0-ko.xpi 749368 BLAKE2B 
1aa65065f243e5bc6481e9005dd1cc56da0bf7c377fe5ed0cedf90732940ac4d8730aeaa0b1fd6ec169edab81c910653104e45d8af0bc16c3b7751ab61ec1695
 SHA512 
cb89874847428199071c9f1fc93cc7dbba2d061c427987ca5b7eb06d404fc149653feb2e2699e7a5fd9c32840a8d6a86470e4bdce103aa54e36bca4c66bc8c89
+DIST thunderbird-115.14.0-lt.xpi 690687 BLAKE2B 
ef23d07c4b30288e4aadb6323a33e6eb93ca56f639005ba492806b9a107da3ea1bd39444e7a9eb70e814f75838a2b969465b161f66679dc46fda8a7b9eb16a5e
 SHA512 
46f86a6b7e0f765cf62e4fcc1f79a55afe005a6b0fe532a1ac58099f550b6e726ff271c9e0833d1dc3880aa5e9cf86c78a759d3d83a2a2d022d1147c948de157
+DIST thunderbird-115.14.0-lv.xpi 627247 BLAKE2B 
dab156cf1503af5f78acf7dc81549d79366894e52728e87308cb26f62ef1bb2ee94d811a8ec749f9e8d3ee08adcd89ebc53db7dda60e9094f5ff6812332cb591
 SHA512 
c38cf01e129aaf0efda94bcb8edde556b6555367991595df10f913e6cf8a2cf7e4e5afe542d54b416daa8fdcd0ac253ce440ec7ba3b60fabab6083e2af35f53c
+DIST thunderbird-115.14.0-ms.xpi 575568 BLAKE2B 
5a2f7e6b25d4bef3291ccd55280d3faf9df28c9e581bf42adb752009c04e8fe852e07343c5ee972a771ad87779ef238c40457a5dad48e3657b3f5da261d84175
 SHA512 
6577ee7d014b809a3a1d41edd57ade0fbac8743c545fc7fcbdd7641f8f8773a060d9f03e9e0472d32a2031d15cb8c00a4594992b0006e9e76d2e1f4133f4354f
+DIST thunderbird-115.14.0-nb-NO.xpi 697703 BLAKE2B 
e94b90eb20d4e70bb1323c9c1e101ea905dba2524deb3b40b091b9f6e84a595079ca8843ae47f8da6f3dbac35b65a72edd9cf562627553cf9532b9b88f23b295
 SHA512 
7aa9ac637b3b8e087baae7046e437842f871324f883a94fce17f8efc2ce688cbc648687ba77c877c4beecf4dcff3147a849c11b434dae15a313974b53e845b45
+DIST thunderbird-115.14.0-nl.xpi 733820 BLAKE2B 
7d967a15486da6494dd90a2a6afa94256d095d97da9569c7431b006d7b8b308f8e9207cacf788c4fd13c48021757f862e8c45ed0a7a95944abdb099db4d77648
 SHA512 
135f129f2b72d99599ceb5c92f03d96dcef28465717eaaefd1a12a4f8617ede060150cb18caf7ae6ed6053210c32bba0bb5e742b5f99a20f9a1eaf1d86eca37b
+DIST thunderbird-115.14.0-nn-NO.xpi 706209 BLAKE2B 
cdff6e4ed09b39f968ef53305bacc4209aa1cde5cf186fb55dc0ecc51a3ce586104a8e1e53ab254eca8edceaf95d2cd0bb979eebfca58187511e35b3968f3c80
 SHA512 
4a54b2254d57c1947fb27728a173270a9f9504c4bca25e2e700c602e6b5b8b9d7538bbd4303c062a55b23cbfc8204975d9699dc82515a80e192295e75898acb5
+DIST thunderbird-115.14.0-pa-IN.xpi 685637 BLAKE2B 
518d15e64b5f9d246e1589f860d9b4f85a373876200f8f49964c304dd7d5a5ca19344f37cb190cfb7a8c9529d2741a7b7a8f55b3bf292f4071485dfa091ae598
 SHA512 
728d23c27bb03fcda6c60f83623ac7e66b4e7788767d657def85e976b5eb578a0b0a03df5baa4688e39db4c9d7fe0c57dd7bb1a4baff44c8c5776071d393125b
+DIST thunderbird-115.14.0-pl.xpi 752372 BLAKE2B 
cb38798a81dc8dde89078d83da3414c8da71c3e873501f5e82165b6960d0bf6c8b22efa2a99c3403e009e233bc1fdc1cf5263c2b26ea86c2f2e05025d8ee28c5
 SHA512 
623643cb84760e98a8265b617ac709d03c8e301f34837256b8c4a06e1a918656b1a90052d97b67e2a3ba23e0e499e8fc3285cdd558edb4b3e0ad0429f699cde3
+DIST thunderbird-115.14.0-pt-BR.xpi 741445 BLAKE2B 
a32a05e2acb157fdb9ece51b54d897b0fa052f1c40466f7e3e011b84091b069685ac5e636b55d770eb96837f0893f1326bbc111a758084079c0d80e9469d42d3
 SHA512 
7419835e5a02afa24780de1300f606fc2cb4c4872423f5a91ddbdfe6c2731f962adb769869f4e02381d5593bbf3683168eff562b6a2ab781a41a90ac535d6d23
+DIST thunderbird-115.14.0-pt-PT.xpi 731564 BLAKE2B 
48d012e05d6da33fc52f961b3475edc1e740f356dc1f8aa4bd03436be18bb38ef285076ea1aa859b7e02d091ec0fbb54f76ae1ecbd8f18cb8d755d3314261168
 SHA512 
18aeb54f46a35e9644bccf6035cfdad6e0448674f38c934857c9184f75ede1e74130e3bab3017b22d286d129680849622cc11a049859a1d14d7df8bf3e62ac8d
+DIST thunderbird-115.14.0-rm.xpi 736852 BLAKE2B 
54fa4c46b9d4c5874a964d9bc2a3d306320da797f202dc7ac33301936944c4457e9a82e479a15a246f3d665ab308ae5d5908f4010e6c30716560e7e68900ef31
 SHA512 
8b72e0772f1c7c4aa00fcd760bc04a3dae69335769d54e9368262fbded96ebf7308a671e46cbb6e921a043d6e297aa77a4510553fd5844f9ad742808b964a476
+DIST thunderbird-115.14.0-ro.xpi 661932 BLAKE2B 
bcaf398fe58aa77b26486c5a7ac62ec1c16d7edd35c0a173c47e0bccb189e7fff5cc1713862974181cd0acc722d6d24cdf48321db012e2df677aee1470690198
 SHA512 
f02addfac0f7e11c43b2f43e15d20f5e877c5300be6a5c23ae9d450096f064ebf597319228f81c7d5c6f598805050aff0431025600874e07a8b512e88fd3d083
+DIST thunderbird-115.14.0-ru.xpi 860677 BLAKE2B 
279f64a91f2dcc2e793e05a2b493538ce7f549d4f64fa151af7b8c8eeb48ddcda7bf4b50bcb856c3d45622c1fcc34745ab9e2ecf5054f63bb3bc26951efabf4f
 SHA512 
f94a708b8c08c416ee1e39207c32fff7c27749bd9025faa576a72493025786495851557251feccfa67fffbfd4a8cfeefaf25fc8a87c295af7be68b1d37d1e272
+DIST thunderbird-115.14.0-sk.xpi 772207 BLAKE2B 
543a90f8dac0de1927764e3cf928b20d673c29c9669e39fbdd08b48c9586a211031891b7399fdf898d82624842f0c97364d1cf56d3420bb3ab71ea642a504a73
 SHA512 
f109e8d65417dbd3b0d8f5f37d1c5938d37a09f0387ecd75a690b88d365c56e231ff045010e0d6bfa1ec2c26898fd63a0577d207f837475df558746c46031646
+DIST thunderbird-115.14.0-sl.xpi 732187 BLAKE2B 
f7e8b441450acefd3fdcda9af3ca3dac97b98e5fa254c5a12c60c4ad61eca060007538f0046ae473d772de2f4bc5a0a53594522ea8bbf2b41d60997d6fd6027e
 SHA512 
c9acc7a1ad4cb54868b0a66c0cf2cd6a3460acd6caee3c33331d0cd1894fe9142f1d5c3238c2b481bd80a390dc95d2c8feb513a2457ac86e28910d8ac968a4db
+DIST thunderbird-115.14.0-sq.xpi 754807 BLAKE2B 
d4cfd7bf239eda2bfd0d6bf408c7079d088ad0b948e2462f44d9427956d41da7931bfd03ca3757958cfca1c8d77a6aa425ec191751b05989f4f6f855c98f3805
 SHA512 
15bff4ec3b1bf8045a77cb7c5df6b07c8f0a4cf559490db126218b591e691fcc7cb26b3407ef16518d05609728bfa88f129f6df151133fb9e56fcb14d616bc4f
+DIST thunderbird-115.14.0-sr.xpi 757576 BLAKE2B 
85c9e5e487b441f2a5fa04b4f8a1989fb3f984dce1e5333cf4d092329f6698a43946abd1d51d34727f51c87922ce8d34d01d1a2cafb3f316c6df7285b7c76a18
 SHA512 
10166e70d170ca698d4354b2a60d3ce962281e6e41f12e713d18da269562571ce069b8464fc91777ff8c9c2674b1581d58edc36e80b6bc242d455e177f43207e
+DIST thunderbird-115.14.0-sv-SE.xpi 736927 BLAKE2B 
bbf5e98eb26428721e86083f30929530fbbdbc1aeb05c73f7f0663ad3f6348993bf1294876769a321a4c27ed23a1fe5f9a3ddf381d45baf7ced0487e2c73981e
 SHA512 
0c3c68ff09a02c01fe05d5e03598b551a91f025ba1366cecd443d6c54995a0334a89d746844698e6e1155a5acc1a857e6b5b3068c23f127047a72b29110955f1
+DIST thunderbird-115.14.0-th.xpi 806119 BLAKE2B 
894e81d18f2094c8fcda79661e26d776e2de90ccdf73b739b8a0258f82400d4c487453904fe41fe94963181298b2b1c81d08dd7fdfe1e393163ab619d15256ea
 SHA512 
911034e20151a17e787bc582668bc80323ff72503c0b905e4817a369f05dddf3f0c008e17193f415ae3625339265011f944a9002a1119a89205460a74834c0a4
+DIST thunderbird-115.14.0-tr.xpi 746840 BLAKE2B 
95f03bebe20160e15d0a1abac5479ec464756f44063356a5ad9e9f58a3c0c43822b9afcccc245cbfdc4b7ad2232a71b936ea03ff15834c33f80588625c062528
 SHA512 
e5e656302cff207b53de54d7d090917193286c08ab584755ae3a7942a21beaddd24c02fa449640bf70f3fa2d5a0aeb3e2e8bbecf0d636c1355b4b38d0ab8f826
+DIST thunderbird-115.14.0-uk.xpi 847221 BLAKE2B 
5f9578bf44a4788f2081057c2544e618a7924d3b659edfecb03e81b91bd5e8082eda8191cd0d8de211351104e898bd0ea71d5082b1a0719ce7459ca446414ac7
 SHA512 
ecc0e849166198def15a50aac46855be61acb65fbc63e74eb102293ce62e1320475b6700195feba835846130d597a9301455c4b77ed06a3396b5943be5a1590f
+DIST thunderbird-115.14.0-uz.xpi 588606 BLAKE2B 
1c57e1fc57df04460d5d307e3e3eb27a3d5d8d7c5ace9ff4556e5d0e7549dd547154eeb05a1f3c07b9a2de36226280a43f1414f2105a5e75c137cd0063179524
 SHA512 
f05bc3ca4e77a72909c14024fb801b67eb928ca0ea6dc7b8cc6a318e08ac6636f1e24d4584ef40d7f34cf012833f627479cef2abf730dbcdcb0b835375e40f60
+DIST thunderbird-115.14.0-vi.xpi 774809 BLAKE2B 
fc16ca251941ed6e89b5cbbf8c5fea6187e00cdf6d30490a6d98088ffa845582c384611ddae3c042c3ecf71b43a91105b26e8433b287ae8c413864c21ca22b4d
 SHA512 
536370b0615b373ee266bf39f434ee5ebec15d535e366fae99a68a2cc7ad75bd44f5abe41af7310b1d5e2e0762e783e4bb88fdd2c9de66f46ccab9c1e87f698e
+DIST thunderbird-115.14.0-zh-CN.xpi 775075 BLAKE2B 
08be1a16a498404b503c7ea084c585a2c4f99c755b233a8cd3f8c384ce6b4c7768f0f6b03ab77e4688d2241c07f413decaca6b7a38f8113161e2c1303876a5ec
 SHA512 
eb4e1894f408b7d90982a447183c3dbd702c654950c772c3adf6ac90be23655e6d6426210542de70682ba70797c247e6271bc7867fe2a8dc04ba8a63ab0e94c0
+DIST thunderbird-115.14.0-zh-TW.xpi 778882 BLAKE2B 
1c17c1d70f42ad4a38497846fdb6296816f5f5bd782aed05ef090b2913170a796e1a54184ac566c3c278ab821dfc9379337f39a1c31f4f98e80833bcbea99189
 SHA512 
661acf4f1eeb803eabb4c5b8f9cfbbb6bd71eb456860fe23debf0de889d204aba490d545334098c8fd302de29b6adb5f1a75c4bd96e3fbd13f3dceec358a15ad
+DIST thunderbird-115.14.0.source.tar.xz 533296972 BLAKE2B 
b286062857df12cee6b5aa42f26de7509cd89558a8173cb9e1ffebda2c9bd6ef808bf5034ee2149809e6c427d9c3fdc7f2d37030b0c71aa00d5b8f5381166d14
 SHA512 
b12e1302d6be94dd88bee6dd069d3fec944bfce95e1afc1d72c14cc188d952fd5a85f0e70575317250701ac89498d876f3384b022957689fabcef61ad7d78c29

diff --git a/mail-client/thunderbird/thunderbird-115.14.0.ebuild 
b/mail-client/thunderbird/thunderbird-115.14.0.ebuild
new file mode 100644
index 000000000000..7131368862f0
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-115.14.0.ebuild
@@ -0,0 +1,1363 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-11.tar.xz"
+
+LLVM_MAX_SLOT=18
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+       llvm multiprocessing optfeature pax-utils python-any-r1 toolchain-funcs 
\
+       virtualx xdg
+
+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[@]}"
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="0"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi +X"
+
+# Thunderbird-only USE flags.
+IUSE+=" +system-librnp"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+TB_ONLY_DEPEND="!<x11-plugins/enigmail-2.2
+       selinux? ( sec-policy/selinux-thunderbird )
+       !system-librnp? ( dev-libs/jsoncpp )
+       system-librnp? ( >=dev-util/librnp-0.17.1 )"
+BDEPEND="${PYTHON_DEPS}
+       || (
+               (
+                       sys-devel/clang:18
+                       sys-devel/llvm:18
+                       clang? (
+                               sys-devel/lld:18
+                               virtual/rust:0/llvm-18
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-18*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:17
+                       sys-devel/llvm:17
+                       clang? (
+                               sys-devel/lld:17
+                               virtual/rust:0/llvm-17
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-17*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:16
+                       sys-devel/llvm:16
+                       clang? (
+                               sys-devel/lld:16
+                               virtual/rust:0/llvm-16
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-16*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+       )
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( virtual/rust )
+       !elibc_glibc? (
+               || (
+                       dev-lang/rust
+                       <dev-lang/rust-bin-1.73
+               )
+       )
+       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
+               )
+               wayland? (
+                       || (
+                               gui-wm/tinywl
+                               <gui-libs/wlroots-0.17.3[tinywl(-)]
+                       )
+                       x11-misc/xkeyboard-config
+               )
+       )"
+COMMON_DEPEND="${TB_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.90
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               dev-libs/dbus-glib
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       system-icu? ( >=dev-libs/icu-74.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+       system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+       system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       dev-libs/dbus-glib
+                       net-misc/networkmanager
+                       sys-apps/dbus
+               )
+       )
+       X? (
+               virtual/opengl
+               x11-libs/cairo[X]
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               x11-libs/libXext
+               x11-libs/libXfixes
+               x11-libs/libxkbcommon[X]
+               x11-libs/libXrandr
+               x11-libs/libXtst
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+llvm_check_deps() {
+       if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/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 "sys-devel/lld:${LLVM_SLOT}" ; then
+                       einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! 
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use 
LLVM slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               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}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', 
and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold 
linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+       local out
+
+       # Ensure ld output is in English.
+       local -x LC_ALL=C
+
+       # First check the linker directly.
+       out=$($(tc-getLD "$@") --version 2>&1)
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # Then see if they're selecting mold via compiler flags.
+       # Note: We're assuming they're using LDFLAGS to hold the
+       # options and not CFLAGS/CXXFLAGS.
+       local base="${T}/test-tc-linker"
+       cat <<-EOF > "${base}.c"
+       int main() { return 0; }
+       EOF
+       out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version 
"${base}.c" -o "${base}" 2>&1)
+       rm -f "${base}"*
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # No mold here!
+       return 1
+}
+
+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'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+       local r=$?
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+       return $r
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto && tc-ld-is-lld ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               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
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               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
+}
+
+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; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       if ! use ppc64; then
+               rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+       fi
+
+       if use x86 && use elibc_glibc ; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-musl-non-lfs64-api-on-audio_thread_priority-crate.patch
 || die
+       fi
+
+       # Workaround for bgo#917599
+       if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+               eapply 
"${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch
+       fi
+       rm -v "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch 
|| die
+
+       # Workaround for bgo#915651 on musl
+       if use elibc_glibc ; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Workaround for bgo#915651
+       if ! use elibc_glibc ; then
+               if use amd64 ; then
+                       export RUST_TARGET="x86_64-unknown-linux-musl"
+               elif use x86 ; then
+                       export RUST_TARGET="i686-unknown-linux-musl"
+               else
+                       die "Unknown musl chost, please post your rustc -vV 
along with emerge --info on Gentoo's bug #915651"
+               fi
+       fi
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # 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 cargo checksums from crates we have patched
+       # moz_clear_vendor_checksums crate
+       moz_clear_vendor_checksums audio_thread_priority
+       moz_clear_vendor_checksums bindgen
+       moz_clear_vendor_checksums encoding_rs
+       moz_clear_vendor_checksums any_all_workaround
+       moz_clear_vendor_checksums packed_simd
+
+       # 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"
+       tc-export CC CXX LD AR AS NM OBJDUMP RANLIB 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-gpsd \
+               --disable-install-strip \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-wmf \
+               --enable-js-shell \
+               --enable-legacy-profile-creation \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --without-wasm-sandboxed-libraries \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${ESYSROOT}/usr/include" \
+               --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+       if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # Enable JIT on riscv64 explicitly
+       # Can be removed once upstream enable it by default in the future.
+       use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' 
--enable-jit
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       if [[ -s "${S}/api-location.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-location.key"
+       else
+               einfo "Building without Location API key ..."
+       fi
+
+       if [[ -s "${S}/api-mozilla.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+       else
+               einfo "Building without Mozilla API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-harfbuzz system-graphite2
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       if use system-librnp; then
+               mozconfig_add_options_ac "+system-librnp" 
--enable-compile-environment
+               mozconfig_use_with system-librnp
+       else
+               # This controls the backend of the bundled librnp. Choices are 
"botan" and "openssl".
+               # RNP Upstream recommends to use botan. In Gentoo it's 
preferred to use system-librnp.
+               mozconfig_add_options_ac "+bundled librnp backend = botan" 
--with-librnp-backend="botan"
+       fi
+
+       mozconfig_use_enable dbus
+       mozconfig_use_enable libproxy
+
+       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+       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
+       fi
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       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 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
+
+               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
+       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
+
+       # LTO flag was handled via configure
+       filter-lto
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               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*'
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       # With profile 23.0 elf-hack=legacy is broken with gcc.
+       # With Firefox-115esr elf-hack=relr isn't available (only in rapid).
+       # Solution: Disable build system's elf-hack completely, and add 
"-z,pack-relative-relocs"
+       #  manually with gcc.
+       #
+       # # elf-hack configure option isn't available on ppc64/riscv, #916259, 
#929244, #930046.
+       if use ppc64 || use riscv ; then
+               :;
+       else
+               mozconfig_add_options_ac 'elf-hack disabled' --disable-elf-hack
+       fi
+
+       if use amd64 || use x86 ; then
+               ! use clang && append-ldflags "-z,pack-relative-relocs"
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       if ! use elibc_glibc; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # 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
+
+       if use system-python-libs; then
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+       else
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+       fi
+
+       # 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 tc-ld-is-mold && use lto; 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 sys-devel/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.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # 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 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
+
+       # 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 desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       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:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               elog
+       fi
+
+       local show_doh_information
+       local show_shortcut_information
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+               show_shortcut_information=no
+       else
+               local replacing_version
+               for replacing_version in ${REPLACING_VERSIONS} ; do
+                       if ver_test "${replacing_version}" -lt 91.0 ; then
+                               # Tell user that we no longer install a shortcut
+                               # per supported display protocol
+                               show_shortcut_information=yes
+                       fi
+               done
+       fi
+
+       if [[ -n "${show_doh_information}" ]] ; then
+               elog
+               elog "Note regarding Trusted Recursive Resolver aka 
DNS-over-HTTPS (DoH):"
+               elog "Due to privacy concerns (encrypting DNS might be a good 
thing, sending all"
+               elog "DNS traffic to Cloudflare by default is not a good idea 
and applications"
+               elog "should respect OS configured settings), 
\"network.trr.mode\" was set to 5"
+               elog "(\"Off by choice\") by default."
+               elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+       fi
+
+       if [[ -n "${show_shortcut_information}" ]] ; then
+               elog
+               elog "Since ${PN}-91.0 we no longer install multiple shortcuts 
for"
+               elog "each supported display protocol.  Instead we will only 
install"
+               elog "one generic Mozilla ${PN^} shortcut."
+               elog "If you still want to be able to select between running 
Mozilla ${PN^}"
+               elog "on X11 or Wayland, you have to re-create these shortcuts 
on your own."
+       fi
+
+       # bug 835078
+       if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+               ewarn "You have nouveau drivers installed in your system and 
'hwaccel' "
+               ewarn "enabled for Firefox. Nouveau / your GPU might not 
support the "
+               ewarn "required EGL, so either disable 'hwaccel' or try the 
workaround "
+               ewarn "explained in https://bugs.gentoo.org/835078#c5 if 
Firefox crashes."
+       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