commit:     de065c842badc48a92ef0cf754b00db13c36a88e
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 21 13:48:11 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Feb 21 13:48:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de065c84

mail-client/thunderbird: add 115.8.0

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

 mail-client/thunderbird/Manifest                   |   66 +
 mail-client/thunderbird/thunderbird-115.8.0.ebuild | 1353 ++++++++++++++++++++
 2 files changed, 1419 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 6ad2963f59f0..0cc87b43657b 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -1,4 +1,5 @@
 DIST firefox-115esr-patches-08.tar.xz 15912 BLAKE2B 
3f94deb17920672ad2184e813bd38e390ecaa50bfc6e00973db717bc56a5adb4f096224cc366da525db25aaa3d198d57716bcb765ddc906783532864e23dd8d4
 SHA512 
4474fbed14b2c4fac03d82f4b37849a69dbdd61fc15f01cefa373eb8a64a692f5a584247acdf7c349ab6965225c3cd47be3fc4523f93db5299680e2a22e94d94
+DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 
1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461
 SHA512 
e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c
 DIST thunderbird-115.7.0-af.xpi 549700 BLAKE2B 
3bc2ea371ffa3666ef46e34220e9352b84b317d7c2fa7145cb129b60d9b0f5e110f88953512a773c94accfc78e9eaedf11c0200c2e2aee7f3196f62a22766035
 SHA512 
74176f279b90e65115244334f20f7a387d8087706d9dd20c550cdf2be9b87485c53a2baab7383a7623c2a46c951270fea5ad7bec0d0725985ead3c70a7eb47dc
 DIST thunderbird-115.7.0-ar.xpi 666361 BLAKE2B 
e44585a1fdebe17dba69ef883310855427eaa656c82de9a53e090dac67f27cd1e0e37f5d22a1884e458a18584b4e589809d0f117855d1096f9b4fa74cd7a99a7
 SHA512 
a944a0e4b9eb14a2eb1b85987e801fb553707c33d4dcfd97a2c9306563c78a003070bfb9f00c09f4e972a7682a4dfbefd8f6b3fc580b8c0aee06bbf337e6e806
 DIST thunderbird-115.7.0-ast.xpi 568311 BLAKE2B 
9156bba9c66d142aff5541db33d8ce761c50e4a3e92e6becb3f3cc1adabdd930053f77c031b40d160f41147489942543adc6ff4ffc1f80ff446220b4a8cd418c
 SHA512 
ddd37a559414c29c14919491aca2483a5fdf5f2e0ed6ab7e7392ce2d3d23c9367bdff75b822727fe791e7db5b6d9b4facb457bf7d9407990f1641b92c09decfa
@@ -64,3 +65,68 @@ DIST thunderbird-115.7.0-vi.xpi 764154 BLAKE2B 
23fbc672b39ac6f6e30ea06b131c1d22e
 DIST thunderbird-115.7.0-zh-CN.xpi 761572 BLAKE2B 
8d099904ac891386f5936b8151a38384be9ad5c816b5adc01a689e9b017a578f2af22f59b7f74d3eee8fa244c6e56ee85b54b22dd5c6af0777b8fe8f585b0216
 SHA512 
f4288c6b5429b71e8bf6e6aae3c096911302c9ab3554314eaaac776fc8779cc032d3e3523c60bf2f845c48f1b87468a8700ab92ee2c3bf663b23adf427a81d67
 DIST thunderbird-115.7.0-zh-TW.xpi 766124 BLAKE2B 
d1c08e311dec02e7f024a25b1adca6987d4714679861a1e0a8dd028336b858fe42e55368894110560f6e08354b69b0b0f17d6e1de6ab97a07b6c19dc8c8f9498
 SHA512 
0000b9141ee84900a2a299e7adbbb7df576fd20981f488d8595ca7e8a042132ae15221db66beac710159da07a9feb82c304529a4b9ec40a1f3bc2d0fd4130192
 DIST thunderbird-115.7.0.source.tar.xz 532459912 BLAKE2B 
2d936b07c3c78963d9a68c2be4e18c06b27e6f4f61a60bd2d7f49e2ca39e5c6c5f6ff2c0d9fed90cf88c5517ea0a52a711c78164c4ab568589d57962a9aca177
 SHA512 
de9edb81cf5da494101bf927a5b963ccdec0cc9bff87ebd72d896c6e25102c1113b326f67302a81abd237048aa1e6150c4a97fe4b1892bc80030cbab9099e2d8
+DIST thunderbird-115.8.0-af.xpi 549703 BLAKE2B 
c39c6e984888f0b9b5cc19253ca2ed3c7ea62a63252fcdb95dc637e781e5a21a1fa0d78fc0a3f756144732b38ae0707b2650a1b31397157448a1e65fbfd8d3b7
 SHA512 
31399a14da85308c7fbbfa9d3af26612fde0a9e186250d1d78b27717c1b6637cc4d61aa5f24df3a6cb54bbd643350413cced0079c54bfd2030c0dbb1e4d445a1
+DIST thunderbird-115.8.0-ar.xpi 666364 BLAKE2B 
a26384184f42e2560a1e26abfbb94a8d583d5f1a2877b93478744adee1c2f4be17d20f5928179c031c9a190aed2ea6ecb546cccfa404b1294e9132a193b547bd
 SHA512 
84a5d5e25ebfa14d1db6a5425ae7023f85b4dbd7a95fd7d3b85435dba827efa257aea81b747cdea365ce1c29f9d3d1c574d738f76527d6a3e93db96a4de22801
+DIST thunderbird-115.8.0-ast.xpi 568313 BLAKE2B 
f5fc09afe7f2c24abd7bf2a3c2b69b18134f84db9edfa921b025d5ffdb3538ab88adf63b1e653066900dfbab8aed48e0bbb659f3cf5ffb9d2d1f996c2d4dfad8
 SHA512 
bfba963b373e284625730fb334daa48c7159a8a79c471f4122d5db0538777272d1cbfbf511482403d2462ed9248cb7ecf0c4fd7ed7946be5daa463fd05298e98
+DIST thunderbird-115.8.0-be.xpi 717165 BLAKE2B 
1e76f7dc330484e326d1cfce6868dde79b8c71d3f8c18cbc087ab8ad55e18a95421983a91da2902be01ff61fe3a5e49331f57b5d422124f1470f07b54db2d5f8
 SHA512 
d97a150ee5940ecf1d391fe5fc5237c5931a64ae1ad541ab13a2a52c0db4c8bdfe5b64373324b731fe03e55569a07cc30f04f703aea4cf5ab656625e87f43f8f
+DIST thunderbird-115.8.0-bg.xpi 778864 BLAKE2B 
3b52ed49a997be5c5fb571eaad8ae2b9a8b9a8e776151d28b6a19e4554e7374cc3014e83afbe7ec591fcc6814069d0d39ed0d67f1869b50f2dc13cfe23b3ff47
 SHA512 
228a18bb3da8228609d284db0bac62da762bb9db26430377235da6802450954c144d634fa6c96d9cd0da3296597528806ed6320c50c2a336cd7c4033e79f6264
+DIST thunderbird-115.8.0-br.xpi 642274 BLAKE2B 
f22760af6a74e4a777dc68f32b18613cb87024f6d78f7280dd9d9194815ba6370251600e019608df6a5abeddcae86b42cc975db68cfb93262032ec6744329b17
 SHA512 
f3994b11ec547fab11ce0c2eb68128e82e9a1e3a34897ad46cd34129aba535cf8c58358962a4d8ba1c7a2785976335af3e7f0ccda0066a1f428253f73e512fd4
+DIST thunderbird-115.8.0-ca.xpi 685489 BLAKE2B 
8e34f7f8ab4f40382588adc81b7fbbac36cf40dee4531da9a47b87b6c4f26b9d7411b18ddc57d8d9a381b5dcec5f8731f9092171d9bcdd00b06723a1097df41d
 SHA512 
165590c8c41443df513870cfde93e8486a3b90e3254a8703c82a07b18c8b4f6bd328d58d06e6e1fd4f1d8797cf4e023f7ba3ee4be73be9596c23efc996a3a7a2
+DIST thunderbird-115.8.0-cak.xpi 667770 BLAKE2B 
4b0572c7dd2918947c89674736c387deb98021152122c68c6e4708ea6d3295f56ac9b8dafd2d7bd919a91ca7c5c2385db997f0dd104de1ef61bdc2cb484ce144
 SHA512 
8429ab492dfeabe8b021dbb74619a664168a7afe55b290ef1420a0e0e9be9fadd8a6acdda03e3f20721d82e5e9b052d4e28dfaf8721087a9edbf56a321b24299
+DIST thunderbird-115.8.0-cs.xpi 759535 BLAKE2B 
66e591a6d0f1e5e8bafcda81115b564ef5c5a6330dc0a5f9d185c10e872d4a4bd8d911a7bb26138a3b9568a7075563fbc737d7ae95aee42e7ccd3924c33b02a8
 SHA512 
79c7c22216cf30695f1504c85157eece54a6c142832ad77e84b1ebaf589a8932d61d351d294374fbdd3d965182a53cd4a3b1140220ddd3e6bbb008be2ecafd0d
+DIST thunderbird-115.8.0-cy.xpi 725349 BLAKE2B 
860c704bdc057d25aa5feedea3e1bce35e3cd10703f01dbc91fcd397f7f78389a3ce0a5a89fa79571bb1bd230c1dccc31db06522d0d550a80e5829ea93112733
 SHA512 
fb888c779c8675f4ba17feeee98b29f2ce4d27a6475a0529be1bcec5621539d755d47ba3b37c369d049735895419574244b7ae10bf651922f7930de853b80561
+DIST thunderbird-115.8.0-da.xpi 710497 BLAKE2B 
05a578f84eaf4a7cac058227f86c453036666d108e4a72d6e77c5253baeccc393cb452f792c4c02632c296fd46c04f78e32354920f72bee363a2c12a7146198c
 SHA512 
a25899f22c88cf3c176e3c88ff380202010690aa83409d1f82bde94ea0cc91b0993f7aa4847b10d7765631a5ce233e1ca07fca90c08af54b0406d0129648138b
+DIST thunderbird-115.8.0-de.xpi 741447 BLAKE2B 
5e84b5c3b57f73d32b460baeb647c6dd90d3b66005d88c77de8ddc69d9c22fe0fe60dbd18101b2068af05e1d793f0635398124eb5a973605c3bb08b4b2fae087
 SHA512 
057009e7df508cb64c035a5c7f40a2ba6885d2ade51763adfbaa6811413aae91787d3b80faff63b6fbda7c75a68213954fe2eba4f0505c88ca1ffee981b90f11
+DIST thunderbird-115.8.0-dsb.xpi 759682 BLAKE2B 
ca0e43ca1195e01dfc1d25047fed6bc1387e66083732fceaafa24110e6fd686f1ae36153d139e90357975f12bb4b3a9c4074bc30bdf78f85272d89bf59bf61ae
 SHA512 
d7ac8f28b16755c260999a1894a8bb0d319432f7fad3fe9c8a079cada7d91648a2eada8281c4f0fff0012dd423bd4c3ffe9efc7725ecae9376a31cc7abfd648a
+DIST thunderbird-115.8.0-el.xpi 862802 BLAKE2B 
e7d2dddc77b0a9a5412d27da7d040c0d2d52c06d0e9c65798d3c5660972b6e3d6dc6fab0e6dd58c2e5d59a4b6daa69ff7f22544ef3b6d6998c34b45f49e0f191
 SHA512 
30b98b717d05dfcce3bc680d92e6a7dcfc26c869da7eb6ef3ec49e595f84d7df7a6c47dd44df3eaf152e68a7f6a09667588038eecace5f59d5f74a392bf78d6e
+DIST thunderbird-115.8.0-en-CA.xpi 671010 BLAKE2B 
e4d186ca33d40185c96e1c8a674cb2dd4fc1bdb5f85280fbe3c7c3cd384fac29e2e13f1a5149f71d09228387ba8d874f4ba97f0d07a15f3103d4b63ca458b274
 SHA512 
4412cc489f5dedcb6ef397e73998691ef2f44208c00f59bf764f1673d91c3e16852eeabe7d5e03ca19d22dbaafe4ecc697148944e3497a28c36d161c9d76c3e3
+DIST thunderbird-115.8.0-en-GB.xpi 681893 BLAKE2B 
0327c830169edf1b9d383455e4cd8be7f7e7993b46c509b6aa7ee717163e213570f6274cbd216aef69a053a61ab3bcb7fdc05059a1cf33942e376a52de4335ee
 SHA512 
cc2606d8e8269159f4d74a44b63787f2d9771ce7b9eb25026a075338c548fdcb6fa4ce1a5b6077d509266dfba19a7ded2c5f3ff0d73ea8dae6d7227db8fb7af6
+DIST thunderbird-115.8.0-es-AR.xpi 735671 BLAKE2B 
5805d38cfbc90e89ba41c85b53d26edacb84b65178902b0038da5bf09410a3901d952a8eb606f2a6a03eafdc51b09e78102b7179737383d1fb06fd5cfc3f48e7
 SHA512 
8f434608927f81434cf12360aad27fa108f04987c0c59e384bd6d324562ce227b7854a6e00457db97e8f77158969f48734157ffbc76c6fe76835fb6ea7e9ec0c
+DIST thunderbird-115.8.0-es-ES.xpi 697506 BLAKE2B 
5c060a45575fe19290d7e3a31fec56e8e9109649b859fa220e48aafadbd8fd20e34199952c5d85065d7f30d972e28a4f6542c0aaa20fc6da811911cac98f49ef
 SHA512 
855db59ade8c1d796bacc84a58a0761189b2e642f7b10f7813054280c5c8607bada5d3e3f2a22e3ef8a0d3ba1efaeef898f311e97129e1e15dac62249d0ddd3f
+DIST thunderbird-115.8.0-es-MX.xpi 719673 BLAKE2B 
20bebf20ce901c93f464aedc8d18a2ecba21d3c1bda3bfcc1800f1a770385fc54a14a5792537cabce9d0f7293b595eb2ae12c3b1073f2a84cf2a47549f221711
 SHA512 
00fc5378005c74d5b4c0c40a8ac7e5176e1e7e563388a63c0f646480f4974d24655e2023b824c7a5beb2ee9424f4172021270f61ac980cbf55d315c2e5f9ab05
+DIST thunderbird-115.8.0-et.xpi 679916 BLAKE2B 
7e052a12e8acecb0ffdb199421b6f363c3d171b5559959da8449d4b99f497ce1f911044b83d89a402fa97c823508570a23ffe5232d8cc83716b2a4ac329c8784
 SHA512 
4e20877676e5d4401489a8bf9172056fefdb6ee4243666dc99413cb94f7edec73d2c19218013d660b4470fc9b83b4e611a3c347870ad6817949bd5c720808500
+DIST thunderbird-115.8.0-eu.xpi 708428 BLAKE2B 
6dbd9d5fd00477a28aaa9d2b411ccb639e33feba92f2039f816050df95a715e59acdd73b8a9c85a36a1687b88c92804df596155a8d7d319ff344096cc9679eed
 SHA512 
e9f2301a08f068d725236e20bc8e3c516bb8c31d427c61da504b1adce3b7f121c795c02e0b440c0d7aae7ec37f2d266fb82d848d2a87189869f8b20321cefbe2
+DIST thunderbird-115.8.0-fi.xpi 713341 BLAKE2B 
c804a9c4e5b6e698e2763806a4d83590f1d281f1521e8de9cc7cd709f74d9a3b851c6e704e9523008afd1be7686858d813d4fca115ede4f8e1635293d36b552b
 SHA512 
7e4318a4eaba1cb89353dcf8b1e064e373709a743151ee7104e712bf0f463eabc727be65bec56befc89e66a543637c7b7433f44b816e8489e174835124627235
+DIST thunderbird-115.8.0-fr.xpi 746570 BLAKE2B 
7bc7581b7c638a823ba6a3a32197a5aa6eb8ca5f40d8f87d0b31d5db8d56ea60bcfd3dfd6ec1b0904f9a366f4aee1546fc8330d750387786602fd4dd148a2b60
 SHA512 
91b69267060018cdf08394506c686b74952e192d04898253525a1c43b1e4a30d0fc4f637812dd4376810d086098d09c980baec21eab9dbd60e6acf77a7dab32e
+DIST thunderbird-115.8.0-fy-NL.xpi 729277 BLAKE2B 
9acabf28f2c7c6364fe8cd4e8d18a0d3e8fdb1a14b79f86162a08e8846b3e3150a583741cf1dda9b46806b855066b22189527788434f219f3c1ee219ab5ad884
 SHA512 
53c17184a7bffa10c01af6c07ac7b8f610fb2dfbeba5206017da99a691be09c6e501962c0adea8f7439c87d26c3f6b442f2c166997172e124bf93de2a9205d96
+DIST thunderbird-115.8.0-ga-IE.xpi 609799 BLAKE2B 
37791190ea78c4260dc4f3c79ecef2e4be67e0ba50f96f4bf08d1ff5a415c65fb52126a3bd241d4c946e22c9bfc65d86c4df8173cc96353635c0e39da9514ed5
 SHA512 
9418237c47dcccea496ce75d7b52d794678affb96870b0bcba7c770c24fafc4026c55b6a2dc179dc52db51a8b935d88e8614f743ca05da386bda550b72c73114
+DIST thunderbird-115.8.0-gd.xpi 712354 BLAKE2B 
e67d4357eee311753535b7001b28bf862e8c3961178f16035c9cfdc15a826b87009f5f7ec837b6628f4404bcd68fdc506502ef86e3f0c3d61e61afb820bdf2f9
 SHA512 
45cd7c362551cca06b1d6aff940406d55ba17953d1c62b9417e3682626d33e1ede84430dcb42472b7ecd7c68ba10563673b3af2c1e72bb15f4fc53f704fe7dd8
+DIST thunderbird-115.8.0-gl.xpi 719542 BLAKE2B 
40c0ebf096e22fe816f96c977cc46fdb93f1992fd44ceee28c7adb0727e2d110ff60ecbc8f35c0dde6da8651202078152972870869b5b0c6a63b763857131c61
 SHA512 
eb9042849142c928490dd0aa16339f6771f8ecc852e64593f8ed13c8f7188c627d3aa6781fbf81db9206f0993cd7c7f6312244730a89a89b1f5d264f93241872
+DIST thunderbird-115.8.0-he.xpi 686345 BLAKE2B 
3c87b06ad791aa8c1a4c6b74ed6fe21d30d8c2a634e0cd5fc891c7a8e1e42082a297538ea3e075fcf7c5ab5d21fd75b14cf9cc3a70345f80ec21ee4b4646f6a3
 SHA512 
44ad4374e058b8e0841272e6e7d407be22cb46c606a293f36e5f4fdd1f3261ccfeb76b8f1dec75e1a6ace23f6727cab5722d3c0d79756c69062f45cb864041dd
+DIST thunderbird-115.8.0-hr.xpi 687078 BLAKE2B 
9d3149361415ba5b46574acf3be604d838c755bfcbd9e32bf5b7340b775b653ee316814b45fa4c262c05876ff4dfb6f4c317b40c336a11b2a1b64988256941f5
 SHA512 
3733cc42127cc7612423fa8b3cd4af137115d0cb8b7df46293ce9565788e1a090ef9477710b1fdde66c339e3820d7d5d666d2c1f1fc1c08690053754b5d684ff
+DIST thunderbird-115.8.0-hsb.xpi 756722 BLAKE2B 
5f86246c688ad6690576193717a3ec95bdbf88022ec17f351c52638d78ec209c94b8e51e1cb67253910902f4ca0a99d3dbde5a9e6110bb0727ba00bbd05bb6cf
 SHA512 
f230b4824d32a944afcf817c4b2c6de6d021d6c44dfe62be80c096de6e20c66d87bb95cf7b4fec7520c835e98085c531ec0160164b70b3972bb0d6163f50db1a
+DIST thunderbird-115.8.0-hu.xpi 758284 BLAKE2B 
a0a3f50d3ccb16190307d604d15504987f3e5eca38b2ae7ca1de664d23fabceae1b951b3fdbe224dafca915bee6cdf24a8de55e118d9fd50ed8ff1fc95028c34
 SHA512 
bcc26e2ceb539c9547fdcd7b2f874a73b3e60a4f0b75c23dc20829150ca5b998001821de2087fd7ae88e9ebcb355a9b05c8bdc6ac882ee77b8057449bf0b06e5
+DIST thunderbird-115.8.0-id.xpi 651343 BLAKE2B 
8dc14e249b534f64784cdbe174f4701156ec74d2857905a78e5ae13da0726b3d267b3f9e419b152b36bab5f0d7b9b31c250d7cf94b08e7ba5dbe189afef16058
 SHA512 
38a8e5479d0cfeac98ca64d2627940c44a861354e643fd9e611a66e2cfec6ba6eceefa07dd4e0ade34966c828fe78f2f16c4eacba629a6d288e7f93a84454df0
+DIST thunderbird-115.8.0-is.xpi 719342 BLAKE2B 
1edd577cba535e05cc4635bddfdc5f469b003327e2fef689e7e53f588da1fcb17249074e5b0f1d966356bd92363f16c2eee09ea74ed6f2e59c237712db956cee
 SHA512 
ae1869b780c42b9c811877cb15367761bdf4d474098a0a2e47f30b0db3bade02e4415744975d10604b0a1ac897b7604c800665ca8ce19264e66f604c6c271a3b
+DIST thunderbird-115.8.0-it.xpi 668020 BLAKE2B 
dc9514d045b99c956d309a2147bf778603c094d290842820e82edce818f9ae69d725b9b374406a6a2e59a00ff888384f5aa8e4c0892506322f35001b2a5e5bb0
 SHA512 
0436ec36a016f990b1c1df4e5b48ba5629e656548cb07c774bfab90d3c1c86929265ee3521ffe68b4b7c3c6f470702d2ae9d1087cc4651c65cb89683f4960048
+DIST thunderbird-115.8.0-ja.xpi 795399 BLAKE2B 
2cb457e2d401608d10126ea43739aff35b7b8998e81a14998373511f2d631487070cf981aa744f072582b667cf193ec5db96e43ce8f667a7b1e8393ca7ea5639
 SHA512 
e0d16d6cf997a511cea95b2cebb4228eab3c7d345522335420bc3522e735fdd831b3904a0fc15db1f88329a61f53620c21fb61aa7f86cce685f11ccff2689048
+DIST thunderbird-115.8.0-ka.xpi 783168 BLAKE2B 
6c77148d0c1dfcd6524cd99d8675c2aeb888c41725e0c24df8ac588b7adde55008aff45789fe2d0b10d197aac76df550d0a455dd3719e4ce8763b2f61675c771
 SHA512 
7ba1883f259892449114fc5929be2d0b8bc491a00b765975e90b6bbcec6c0f0863b4009cd799798dfa2e531a10ecfba7de95727dc13a78b2db26d113576314cb
+DIST thunderbird-115.8.0-kab.xpi 711124 BLAKE2B 
22b98839daf67d1b370f3250b0ff8c423323499d3403f70a93e2af883993706fd2251fc3e80d14f018b9ddf3e749f78a73e57b91c39a97e55c8f6f2f8c13c7ab
 SHA512 
28b1ac62e33d645487ae55c1b6d7a34b46f6a4504fe5a51605a1decb047e3a4268c7a514c500a7185a7b74f8c27dbd600ed946fac10b9f2e282dc89229c40e42
+DIST thunderbird-115.8.0-kk.xpi 832553 BLAKE2B 
80da8571ca3f3456f64019a9143f761364a63578fe7f7b79546e222d05ab3298f9b175c070872792cd6950303bbcff6d4f9638085b9097e39fc36e8f0e38a248
 SHA512 
f8c2c14a5ac5e05020eced2e01d001588edbcd6f5286156cb441a677813297e6fab072f78b5c14fbf7d0351566f4133cff2a75d43fc3af5fb291cca9d2ae138b
+DIST thunderbird-115.8.0-ko.xpi 737246 BLAKE2B 
b36647726da2425c2817471cd0d6fd9eb865a159b1da4d31e5a5fe123d5e9dd197375d3280132cfcc8f88e02aa4bdadcd600d7f43b80e3846c7bb50315bef471
 SHA512 
bcb0a09a889baf65c08e4bc90cb27063c6ee840e0387c013eb6da3445591e4ddcb773e403ced5ba74dbcc378a213ff113bb7a1dc9e6059f7899ea11ecbbb9ca2
+DIST thunderbird-115.8.0-lt.xpi 688631 BLAKE2B 
eb4b89cf8a803a3a4bfc563555705944b33c3c725be792f2af1be73a56044bf0c184cb95b2356a01233096dc888acf846ca118a22b88c160bc376d12ffe9667d
 SHA512 
13100e9b69b0b93afba34e89e77a152eb96519eed033b1ef4c26dc68fff9452ea391fc4089d2e53edeb5e9df256857ed9f0a3dfcc7f386dc3aefb753ecf88f76
+DIST thunderbird-115.8.0-lv.xpi 613042 BLAKE2B 
6f7c62fd0a99de0823b6ef830364f5aea59acc6946c76c2e84a7fa3b0abdb8da1920a30899773c9984f558a462c1a8d075ec61332d745e2506f2e27be813ab1c
 SHA512 
20abd44e735fc50ae318f259e839ce06ec5bd0ea39c3e07ae824a4a76e31e5f2c5d9c9efebd61267a67fa432e8f0f011e96e92589c603e1087bccc477c1b243b
+DIST thunderbird-115.8.0-ms.xpi 573633 BLAKE2B 
a6f61a7ab41f32c3cb4f601e7f5b6e8ff355eb15afd1fede94563dd5ffa99eecdea6cb581d430fd55590d0ddbd24ef3112b577b3efde13744d40d15aa826cb88
 SHA512 
36f9be69bba62161ae18015b0dfa5fb9c1bc877d9177da01796349d4599caf808d87eadb8d4859901b4eb267e18ea79c254a2ce6a5746841b8138439cb26f4d5
+DIST thunderbird-115.8.0-nb-NO.xpi 674710 BLAKE2B 
0d6f05324a72c3be83790e7d7db73b29f0f5486e2e328e8d6519f49bdbb36cb3f98beaa81b259a0b1c1c1dbc61111e59b25a4fe3075002acc783946be23ad40c
 SHA512 
5f2f816879b5395c04044e4f2c9ba093815077a1c1931de785c7e7c7b3a7a6bba6360aabd175ec8c1318712f9c96f106b7cb11da90f85f694c8047f27e5ffcdb
+DIST thunderbird-115.8.0-nl.xpi 720591 BLAKE2B 
b5981b08a1f8e6784039535d765bc5e25c9e928b4c7573df8df8ca35eb1f7ab5a55d7efcabe69cc93b3bb36bb831aa45d94398ab336d0c2aeb27d3365a5f283b
 SHA512 
1f0f285ac63526aa7f986bee041dd8fafef0f8467f3b3b102566e39451242c6a0681a1204fa00bcd3fb6be827fdba3b623e414ec8c247ec9790575ff44df3227
+DIST thunderbird-115.8.0-nn-NO.xpi 690678 BLAKE2B 
eb53264338a12ea56af05969ec2b124a0ad9b062cf8e8cfbf0bf66d5edcbbdf85d9462ff000aeebaefba65bb8d3789c2bcd89520b6aead30ad336a13b54cde98
 SHA512 
fe7b75b7c684d5bb3fa5cb6a605d6bb97077d5e42ee9c4bd8cf1c7a558e1c8e91258f62e460e9b773e01a7854f6d42f0527f6ceda8db0cea881520728ee2e1cd
+DIST thunderbird-115.8.0-pa-IN.xpi 678306 BLAKE2B 
4055e3cff50ce8e62213481f330549c5e8e68420be58bb641104b3a1629fda65775906a792b3d153600546ab8bb2d036f51dbf59c133e7829f9688418ee2add7
 SHA512 
3fdd63cee079e83874a9f4e240f7280058bf804460d8b52ecabb08682ae913e55bfc7d65af79504577ded6e1b4ea884582156214a9454dcbe03acc044d634bec
+DIST thunderbird-115.8.0-pl.xpi 739287 BLAKE2B 
40af551f3cf01775e50f8190d78113f5dcda86c81262a00e83c894966ab5d377a04fd719a2bcdb4a24da24d415d5b8275e6622bf00940f787ab34815f6b7e4e0
 SHA512 
9ba5ecc7de93b8d27a88e11459518ee3e56483de60225ca0a78d4729e8c9c61ac77a30f4c75553bf124ce93949fe2cfea9ea79f088a1275268c903508326b776
+DIST thunderbird-115.8.0-pt-BR.xpi 728574 BLAKE2B 
ffb01d25209467c0aa9783f816f8e81da190827597c711dc8fcba936025c49ecf4466e8560fe2f120c8fa8692a67e5e7466f2978cca2f56718a05b0abcd9015c
 SHA512 
67a7a6f5d2cd3337bc5be0b63e656b35504c83b1300d5c208ee47bfd8b6bf4699deedfcb83239aa64abd35ceb9a3ca4d85c954bd0205058100ffa4c262fb5631
+DIST thunderbird-115.8.0-pt-PT.xpi 704334 BLAKE2B 
7a2a115ac77eb63a8ded25beef9c43b3940f8db6c65719b4afb6644ed141f7f1abf8085494a08d4bb8a68a5bb8aae8ba0127c1b8ad6537c6efa748274218d6bb
 SHA512 
1d8893c35a8ccd487ab9bc6464cc44c02da2588a3696e30c84f1bc6093fc16b64042528dc32714805373a8e3317929f65798d91a105a23aa5b2716125e8421d2
+DIST thunderbird-115.8.0-rm.xpi 724360 BLAKE2B 
0c0ebb8e22935829805bd88503324b2d5dbbc84233b092588e2f08964d07199bd9bbebc077bb40604026c28913bac298e3417ce9f8038004f80b00e3695509c3
 SHA512 
54d188148f1ad1ca4d99905889c5ac2ba75b98403ff230fba9b178e3619f2ea4635dd4947bb86d106de00762bce35bb625e42bab451ba06aa6626fdb6ec4d6f6
+DIST thunderbird-115.8.0-ro.xpi 659830 BLAKE2B 
7f480c3eec452270099ebf945483f83cc544bdca5f0c662b2db670586fd6bd01ca8322b55a3a1446ab12908c670e3fe9e33dfdbd1b0706c1aaa2b0ba4db28af1
 SHA512 
859dda57e240fbed49420dfb9da022fdd69b49d7936ccf6912f0c0c8945ab033ff3e9cadb3d6d022a4aef2e2f1349efe0c1e66ac25d7d7a676aad668c9eb9f4c
+DIST thunderbird-115.8.0-ru.xpi 846508 BLAKE2B 
9cbe16d5db3b747b7db678952da027efc4c57c9637e747d6f4fd482558c98260b3b42758c4fc9993c7389e5ce0987d820c900dab60532831f9c0ad152fe60558
 SHA512 
29db50060784e8cf7b418862de8711da32f6536bb16c20487d08fe17e6fdb7092a11ad9455839b6bdb61f571d80698f8d099a7fc1924159215cb2b4dc9cfcf5e
+DIST thunderbird-115.8.0-sk.xpi 758460 BLAKE2B 
310a7cfb2e93ffc652c2aa2c6d7a4a234e860de7a291bccbd30941d8deaddd938723c1c6a1633aec34fe7fd76c4aa80488cfcec929a71b28ee6130326024e320
 SHA512 
3761551e0601ba967388567898b03a0910ae22772c5c3f2128ea5117149f4b01277d5d0f96cf5d911f425cf960f1d64647785dbf4124c52912967c111cb45639
+DIST thunderbird-115.8.0-sl.xpi 721617 BLAKE2B 
0925d78cbe27a3b9d20d54f4da778e1f770684934f7719c97872077a32bdb7f321c23b88e9b51c93e43cc771021937776bd24727a8b3290db703bd709ae434be
 SHA512 
9d4498b445f39163df400b758361c63146f5a73ad99681c9b1b3935fa1c36a9a0756fc502270d690d9fcfa89670eb8734725b9ccf5715c5a90d2dd46d7d62e8a
+DIST thunderbird-115.8.0-sq.xpi 742870 BLAKE2B 
b49681905db0d11419243a15b07db4a7b80e977b0c351e8a4bab4d70ca74e5aa072180a1ba691e9226d0b8d296cf7cb3a0026759a9eff428407ada127e999cc2
 SHA512 
816ccd6f8ace8d49e5f257b77c3469bd0c6702226caef2743ed9bfdf0fe6596971bfdfce8d5ea0eb17b5e9daee7dbf1e0ad8fd01babb7a76e9de3ce09bec5686
+DIST thunderbird-115.8.0-sr.xpi 755183 BLAKE2B 
05884b15a74cb0815854da2fcb42756b65f0093bdfa3bee5e1b460595a2ed72efca06c6564b0a7911b793d90f41b0a314776da70722d2e6fa8dcb5b7a3606879
 SHA512 
a653646f038f469e93e129a3afbda0e51e98412ef765fd05a049bcd4ac19f1817222431b504196d3186b8220e39b5c60e6525c8ab410801e06336540547d358f
+DIST thunderbird-115.8.0-sv-SE.xpi 724751 BLAKE2B 
478752f563026720a16bee72e13e70017ff93bde9712b067367252b45892c63f86e198d2f8ea4d1b9205fd59a886fdd63d2e3785c628f85f039768837c28cf70
 SHA512 
bb8c4f370ab48cb2205bbc9c18997f718511e40c4b4e49848bb57f7ad8693838210da0fa520bdb66907b95e783ce046241dcff232991b45185e19faf2a245bb4
+DIST thunderbird-115.8.0-th.xpi 788244 BLAKE2B 
4e5a3c16a122b9a1bf24a7eb7eadfc0005153e9d2bab7a744094a75c9b881f056b42f9c7329e8b46a7ba40610538474ed309d4468a088c2e9f785f9ee412ee26
 SHA512 
25e48256520d0f3b2558458d4e4a832c6f2bcb42a4552308847fc04410bf2a3375bfd3caa409ca18d1bdb31a939188323b459ab2d4bafea28f52a4751a3dffb3
+DIST thunderbird-115.8.0-tr.xpi 736599 BLAKE2B 
7ffe6e1e5d670215fb8c793727b0699eafde9fe04c2de3fe11b5d6d2f065b9ad5f3193facf095960c3043850421811c10a0035b9f7e3b67f90ea62d36e935cf9
 SHA512 
ba9428833e9fbb4e6de6881ccafd0c55a33abd8b7d8ecf2ea06b1c58904a6ce6095f7ae7a4017c2038163653e3166ef42744f2a448cc670dcd53ac4dee60fb26
+DIST thunderbird-115.8.0-uk.xpi 839051 BLAKE2B 
c164dd767bb82f40be3ec95ccbf733a70a05ce872ebaabbdac95545c238389dd222b445e54aeea779292543d44fd9b6083c25f78ea7a31c7d45c8b349b6140cf
 SHA512 
aec1641f5185111d7b5c814334548e587429a40d463c7d800f7d66f80c5202a846c469049620bd3519b4d0467dd29de8a15c651ab4c5556a22df4afb3ecacc7b
+DIST thunderbird-115.8.0-uz.xpi 587159 BLAKE2B 
7b61b93680d038df7795540f507eb596c9101a53f12f1f75e56abb61f6b8af93bc1d18d4b2f9cd3e5ce13257c4d013710b13bd7799d201ef39080c71478cfb64
 SHA512 
844c777f798a86517f295eda6f92b377adbbeffc9541779571ab2502284718eb40fc666192d8c895512e25643e4b9649070d5d300d49420b10683cef9467883a
+DIST thunderbird-115.8.0-vi.xpi 764702 BLAKE2B 
fa24b9009a2fcb2a8da2dbccad74a5416b4f3a319adb199d053f5cae5141c7bdbd1998d89bc9ff4bea77c8fbc1e1566e074f249b701c92ea425d47e63e656583
 SHA512 
244f9e5a04027337ddef0bcc583eca6c6d40d412a9b96163d2f30339f1bcde7d27ef0fea210d3d9dc91e2481b399a536938e3808fa3f9d5b5c3128473e8b8d70
+DIST thunderbird-115.8.0-zh-CN.xpi 761851 BLAKE2B 
00ccc2d1626f90c873e4297fb9e61e6883ebaa3b43bc9f7a7473da64e8552b5475cdc9660fae5851f8d72ef16bb53b78f8ddd22dd5155b65ab0837b7e501113d
 SHA512 
bf6c7d9f917edffbed95d1087f97b5d65f6fd108b56ab9c0343c8fe97d10bfcd0fa8d783cffaab2be695714bc62a4417451857aa732c80d6549e6df917e9204f
+DIST thunderbird-115.8.0-zh-TW.xpi 766758 BLAKE2B 
074db005f906118ba0bf6d69768c554c6da0f2e07d502738093aec58ccd4da58769100b401fa429ab51049552432c860a04c850f34510724171512a54eae69d3
 SHA512 
150ce952c2330d18f9c3e596432d11e1ed792f82700aef3ef299fe9dc9479c6b458ea74ff4aa74f0a5117facfde113c958712cb8afa77e52082cf06398796d7e
+DIST thunderbird-115.8.0.source.tar.xz 540914844 BLAKE2B 
21dcb4772466e6496aa1deb6e2aadbb1917f69846d50e60b9ab884c982241e75da4b26c5ea512dc32228d6c8858bd6e91064e0ce3ee5df1cd434234c2b7ff5d9
 SHA512 
a0bdd34bebda4973f714422293f10a5a96c2b12f097c68d76fa37c48943fdbfb32dd2e504faa0b88fd699118b1903e18c3bb54cb32cd5e2ff60c09966b23e79c

diff --git a/mail-client/thunderbird/thunderbird-115.8.0.ebuild 
b/mail-client/thunderbird/thunderbird-115.8.0.ebuild
new file mode 100644
index 000000000000..1b865bde1892
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-115.8.0.ebuild
@@ -0,0 +1,1353 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz"
+
+LLVM_MAX_SLOT=17
+
+PYTHON_COMPAT=( python3_{10..11} )
+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 )"
+BDEPEND="${PYTHON_DEPS}
+       || (
+               (
+                       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-1.65 )
+       !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-libs/wlroots-0.15.1-r1[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
+
+       # 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
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       fi
+
+       if use elibc_musl && use arm64 ; then
+               mozconfig_add_options_ac 'elf-hack is broken when using 
musl/arm64' --disable-elf-hack
+       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