commit:     2466af69511893843a33e57c3acc47737177113f
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 26 06:14:15 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu Oct 26 06:14:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2466af69

mail-client/thunderbird: add 115.4.1

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

 mail-client/thunderbird/Manifest                   |   65 +
 mail-client/thunderbird/thunderbird-115.4.1.ebuild | 1321 ++++++++++++++++++++
 2 files changed, 1386 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index c9327b13ab6c..defd6e2b3555 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -261,3 +261,68 @@ DIST thunderbird-115.4.0-vi.xpi 742628 BLAKE2B 
f6960d87e637f9106830cb91e2ae0cb25
 DIST thunderbird-115.4.0-zh-CN.xpi 740608 BLAKE2B 
a03975cd8b2c2965871c45d83eccf3cce64bc260fd130e264da482829ad80ed00f221e531ce70e4ac95bd5c5cfbf238012b71ba38ed4040c7813cb3284bac9ae
 SHA512 
347a2b689a13c24dbb82957bfcb49f4a9dfde0ee0ab6eed30de4c010c2b0a887f736b4b66feefba7794659ff026466222ba74c00b8e4d39b97b03a32e5849c05
 DIST thunderbird-115.4.0-zh-TW.xpi 743524 BLAKE2B 
b8d3ae08c618426ecd5cefe82e60469449ee0adb3f58279bdde98ecb90a9d6440000e9762dc20bd10ba1c6d13762aae8c16b41195641a19162e5696bdabece98
 SHA512 
653692eb97cc91c4b5e2f6f875b41046e44dc4b14fa51c97563a3e6d820b037d08ed2843050adc5753e51aca3fecc640bf29aba9bde0cdb2ea8447e38785521e
 DIST thunderbird-115.4.0.source.tar.xz 531269876 BLAKE2B 
c4a033cd04434907479e25f849ae586a2e7de71094b51d3347859fa9734d3eeeb209d8c9e8411fc28d7149f19513357bd9db7faf0398906bd42c9b658bfa2846
 SHA512 
d4ee356943fd580b3c3f70e6977b4418a93f41abcea65b9255cbfb6689eb2b4dd71f7723b6873c03f43a857925218ebf32ef1ff54437964c4f4e4d0db911663f
+DIST thunderbird-115.4.1-af.xpi 542156 BLAKE2B 
0f2ff8d1c0aa03b8b9b421b0a25f6aea60eb3c3eccee1690c2b0204082787ec01a1fda63636af21abe3d6acb3fa6c7db1abc3f557a3813b3c6e9f07b5ec69d55
 SHA512 
d13a7ccf00ed0ee1f0867742d447b44aef949077017801a70b60dd995b5a480ecf9d4242e2c67e268755f8cfbc3cd3cb4f6d429ba2619b342866a0f65bb00154
+DIST thunderbird-115.4.1-ar.xpi 654728 BLAKE2B 
61894efd03db5af4dd249f8134fec4535d53a84eec6f73666044ad00ec803e61aeb212df9918114e3e980f5ca05bd7970d06d4d6dc76a6a12c5e6c04651fd161
 SHA512 
825cafae787a60e0e50dff510711b09d7774d7f5bba793ac6a1b47636c94dca6339fde287ba965ddae8c811a2746b3d80fc9ccea7721bc5e63b31c9d2b491dc1
+DIST thunderbird-115.4.1-ast.xpi 561119 BLAKE2B 
ef99916417ccf014d249525070ce8c009a4666b933c7f717278abeb3237b4ed8e0fd527f3b7679f6cf334ef9331ce115710ae2d7b806a37df74cfbb9de790aff
 SHA512 
aceb215aa999a9a0d6e679f2bd81654f7fc556c5277865d3fb3d9e91de3a22dd28f73abfa4ed4914c7e766b5c9b21e1160557dccdaaec371f189f941a24d5e93
+DIST thunderbird-115.4.1-be.xpi 694085 BLAKE2B 
f7d2c394eaa81a8a7495f2c82f23a88111f884790c232e209a40502879ead41ae5f0532fd4094ccaacd09a982b796ee31ec596a797d178689b947aa21bbeea2b
 SHA512 
d6a60e107f498a698c58be5513d739597bb11a6bcdf5bd25e764e00682890fd7fdf5ae54a8a84fee1ee43c1dd017204faf45806ccf65a19875ba899892f96440
+DIST thunderbird-115.4.1-bg.xpi 681251 BLAKE2B 
9836268d956cd11ac3ee4947454e39d0230ad098bb4a63271263df05c8c6ef64803aa5ca50baff225ad87628469a8115f39d885e9d86a5ccb15192a81b00ef55
 SHA512 
32cbc26d3891498dee650e68e93da0053978c8c279ec4f686204648455fe40c0a91f065671b3f541cd2ba85fe2a9abac48b2ecafb4f4ad314d1ac6c411979f27
+DIST thunderbird-115.4.1-br.xpi 626936 BLAKE2B 
fb8dcfc1f9cce7b3ba98d61403c2c1617849a1529e6f1a79a22cd9726f98a8b68fb8b8cde5159aa812222b5391221b5d503a4eff280ee14ac001b36d1899e397
 SHA512 
6da74619d08cb495d60501447572275b8702ce9ed3989a7c50eb657f58c8bbed3055b712bc81967e1fa284286ba637544de45a4322ea41acc7ff68320083bff6
+DIST thunderbird-115.4.1-ca.xpi 670651 BLAKE2B 
dbca461466f7df34c0a477eb7c91f77a710f5a756dfc5c891595a2b5d23bfc8efcf168a62713c1effd8e2dd849ff1c5a9a8416693585dff88a98efb1a7f7aecf
 SHA512 
afcfd982a17f68ecf5c93e419e39fc4c6226cc166f69eeeb5f99b4c6b2ecbe7f61611148a5bf486d61d922661cb9021cd31ca16c216f5ac33575d13d605c776e
+DIST thunderbird-115.4.1-cak.xpi 657816 BLAKE2B 
13a37e3fe1e10740f99fd238d29118ab7b16f9ac2d982ba4382edc365e4d3f3de6df88cb9b6231821a60ac651df3a544cbf18c642231236807471f5cd87d6d04
 SHA512 
9cf134af055d737fbd7458655188b5c3e0e98d2d422bb406549ef8ebc72dcb414b6412f2e318014b5034d5ba2c33d784ae1a1e9f484ef55abbb2b625c2853aed
+DIST thunderbird-115.4.1-cs.xpi 733800 BLAKE2B 
599fa5f52547d32bb72d2ba0fc0d3cef997f5ea2b974dca9dcc192dd1c0d32d84e5f0fcc88f3a6df10561c72d8f31d6b6ff12ea3712770a028afdd4d2b95b0f6
 SHA512 
bbc91fbd9839b2e4e24dcef40224fc953502bae2fcb2287efb099514c00ced1d6038dbd1ab4c68e589999ba7a4ebec0425f484da6bc320b11e938a14260f3f14
+DIST thunderbird-115.4.1-cy.xpi 703267 BLAKE2B 
20fbd35ac8ec62f4c7eac9f72a2334c586deafe11d2d8c64d15cdcef288107d5350f6bcda1849585a6ccef5612d6a16c4613bcff6bd6ea28379ce85170a36044
 SHA512 
c83ccfa131e050c3186d782a772902365ad219710da1a2800c5950900a3348d8cbe0944d33cdc4cdfd092b7de430ac4e965eb6df1d8df4448051aaeeff040154
+DIST thunderbird-115.4.1-da.xpi 690755 BLAKE2B 
9f47e4196150c3dbbc627d2e8737f4c2ff6dc8581a00b361e881e88fd61779be611894d1bcbb597a8ea3a52eb6ba44896462ea6f424f6ddab703e0ab8ce0934b
 SHA512 
6f07836e4b5013437a835ce58a94bdd143c70506b767f0d7d206a15c834c35bfc29afe06631dda325b9427a83ed6e3a4e853bdfa7556b730a2a864808275b061
+DIST thunderbird-115.4.1-de.xpi 720205 BLAKE2B 
9fcbefc7d64682175d9544e25fa0d1722f7a28ef3803021e0c1ea0e0fc0a14ceec78027afa9ffa6864139756bde45745f166ba630d8a8d1d25563f10ef623759
 SHA512 
8c8bd75031e56106eb2443888b958264a7a4a5d386cb34357d3a06df87e04211d112b8a299a2162cbb438e301be78043c5ac48cf27a6722ca41edc80df4ac08c
+DIST thunderbird-115.4.1-dsb.xpi 737298 BLAKE2B 
28509365b1064faa280b37dd7963dfd4fed86348183588759c87657b6fc6111d9340eebabd9d3f10ee0ecd4589fd4fd8d20e2094428760e147843304a03e4525
 SHA512 
e9ccfb53203d8df39b3e87f9ba98bc26363ef2f07b206bb58642056d3adeacc70d732864b302563334341372b87013d0e6d6d5cbbe59ee0f6aa0fcff7c5b41d7
+DIST thunderbird-115.4.1-el.xpi 836692 BLAKE2B 
d051a683553b190761f3646bcb740716fb2976bf93e375de189714e25e99af73e1a024c0fd42b02b874269a6c8896ccdf481102647ca82161403fef5cbc85118
 SHA512 
ab38d6a65d6e6ab5e33eb958b0cf50bdb4342c0d1821b4b56573fd58943db90fa435a53728ea7e237c941ffc31bd52d56d7ec5c439bbca259553439a6c5a1681
+DIST thunderbird-115.4.1-en-CA.xpi 656172 BLAKE2B 
e812188b651208ddc8743c187e43fd4baedfe6e343434c42c2201140e2c9169ed110f19e56631c80ce39b9f5eeb0bf04b0a8ec652a86b0ceafa1022b55d5cf59
 SHA512 
a601428d100a3329444b333829246181127de05b82a0d4a49a4a369aaf7045af049020187f08c275e7925c31d8135835081e8a32fb4fa94975263e64c0155492
+DIST thunderbird-115.4.1-en-GB.xpi 661452 BLAKE2B 
49a587f09b3dab03c74fb2701987f31ff2ae290d7ab3853d9acb4fec2f9d0c93479f709dd794a183490043a1d164b1bd7e748b1448158a8c4f12b79fdea19bea
 SHA512 
07acac674d355f1f1fccf5dd561118cdc22c2d35b94a91d293cc66581e8acf3af4d06a662b0399351bde44d166593d1dfffaecf67e50d0f450acf039195800c7
+DIST thunderbird-115.4.1-es-AR.xpi 713035 BLAKE2B 
0b7700432ed4e560590c1438794d2c6bf15a9326304b708a0778d8338bca82639b66231ce7b40c0b35baa8d718984a885feff7ff5e007202c849884722c5d009
 SHA512 
a750b9cdff7947bda1d12355f34ebe65c6e7be00742ea7036e8133519d4088ee96b3b31417f17aa8143b8dbd26a03b058722e69d50742e47e3ee4c4196d5a5e6
+DIST thunderbird-115.4.1-es-ES.xpi 675615 BLAKE2B 
7688cfbb611fe8688c695a72751b67f2dea70cd4004addb71d45248f131c42e66978d67e262809ce97df86974dad6ad5e46c563226ab8d12278292215a9a9036
 SHA512 
2ef232214dc49a3d4310dbcc6ba527d3a67dda5c3b255ee83ea80385ac2552c4bbe4e82865cb7ea5d8d5f8da9b2e41487479d8974f0bc937b65e0984e1624f3e
+DIST thunderbird-115.4.1-es-MX.xpi 710142 BLAKE2B 
87b0a7851a2ea056ae512c83f500676062c0c3c670d8e129f4fa95b5244ab0cb53df3a41b0ad5e1958da3e380fda351dd3ba0082b8a4cff44b218a396c6ce277
 SHA512 
4491d8a899f0a86b062c5575610062c4c7f7f18ed2cefac96661dcbea9801ee3f592dd96f71ae92df2eeb1be8718c1fa386de035c90d0c13ee988dfa2135e88c
+DIST thunderbird-115.4.1-et.xpi 671821 BLAKE2B 
e59ad4c2dd5f606c232cef214e06b952b006127ce90b6b1ede0876de95905d75d879ff3e02cb7c87c49ed73b312f8625aa1b117831f93cd92f664cb8b9b26738
 SHA512 
053704b0d7812df2155e91c9bfc73e09bd3555ad0e8c8b9e293a9d0f090b6f88964076d228f1b544540118c8f61c4e4dce44a6fd717d5aa03132720576f68649
+DIST thunderbird-115.4.1-eu.xpi 692553 BLAKE2B 
41d030f871677ad9dc722f50ff85d49b711b9dff80461c3f1191a43492eb6175898da11c1ed2b74fbb0bb9f1b5bdc5cf0c7b0ec203dde88f340c8ec03a9a2142
 SHA512 
59f8622634d35ed92e16731e156a46edc02faefd570236d229c167bcbbfff748069fec163236ac473695597a9238b2eab31dbf6dbe8f81da1c9d3af7f73e923d
+DIST thunderbird-115.4.1-fi.xpi 690415 BLAKE2B 
818bcbd14266fa38363eb1346f59a4964b39e72d12a006a1b0e0d2fa92be577953ee838680662b2d2d58b88f22e12a303edcdebcd49610db8f83c2008e04856b
 SHA512 
fb8b4e7591ee5cb1bb80d67c8fe075fae231fdc6cfcdebef47e38837da430f0df0164ed8e071b1b0ce1b0db561ba7c064cafb042a0a417cacc0e857fcd48715b
+DIST thunderbird-115.4.1-fr.xpi 725271 BLAKE2B 
cb0ca12f5414ccec755aabd158ed1c37b129e319fef1e7fe0a477835715eafb409eefb03a5bb29cc0529b8b24d61a05ca4634d414aecc78f29cb165cf1359bbe
 SHA512 
dacfdd4964b1a148bfced96da14a690f79fd7d39bfa12e3ec569c16ad2184bda0d2dd0c5fcb2e71db18f3a12d8bc23e584a5ac788c5fc7d9b39b19c26373b9f8
+DIST thunderbird-115.4.1-fy-NL.xpi 707840 BLAKE2B 
8d264fed127f58e91db6b00292b4b3607f88fe92de51aa87829b68e39c021076bad18e4c601e156434ff1195005dfc38de5dc1c647cc5b8419066ed825f96eff
 SHA512 
d663f7e7b39795b38703068233ce3edc75837545a7bfc43ea9ebdd74b508627793e512fe33381485b944ba19576553cc156706e91daa2605468b83182f4ec0ea
+DIST thunderbird-115.4.1-ga-IE.xpi 602152 BLAKE2B 
72b152d708b4175cc1a7151499dd1c14faba3834eee46ab7ef6c88916a2073e504c7bd48f1939ae9f12fb28505bae04e557bc8f57d2db5993ee91813921f1abc
 SHA512 
3caefce2fc99d6fb0e8f48c8a49c23177f1ec54745aa97387dc1daafd3c5b3a182d53afe46382253d5a8765b667b0a483dfe491e8ff5c88edcddbebc4888b319
+DIST thunderbird-115.4.1-gd.xpi 702994 BLAKE2B 
68a6105ddba8091cab0bf9ab8f37621ba433e542ad171986866edf6f0282788f93ea49d2008ba4172b7baae7d1804195a223ae9ef536ec4f4eb98ac36d8021f2
 SHA512 
66ec4567cb08105c6272591bb93c4b62f12621e545c5a8dc435e6aa76d3d58ac5281fa3bb031700df8ff4e8fbfc675c02da4a16c5f07e45f2c1770a1d4581595
+DIST thunderbird-115.4.1-gl.xpi 705372 BLAKE2B 
b75ed5eba5bd4567f97a0212a61d552ac4f9dd19207ddf2fc8d6ce157970fc2da4be7c953ea40225dc43a24c2d0fadacc26a9c020c2195bc037a388c4d64e4cc
 SHA512 
5cceb4aad559e20882f4b155fb57b8bd03403c916de978e37506c41e9fc442b487a41edfb48f41d62b2d1535f1d2f309975d090d54fe1db2453f89c790542e77
+DIST thunderbird-115.4.1-he.xpi 667478 BLAKE2B 
f1e1edf9c7692c8245fc305a05460b3c61cd4382fd26675976c94c6f91d8e9bdde8a801daed56b086a4b05715f06eec7ffc4cda9a74d095f281ef64ac4e73bec
 SHA512 
5463ed61d85e0a4bc9a939741d421a6485fbda4b6d32da65e167a00d28f8c918d61e744645a21347589b871982f9e038dfed8f86c07b3b1e4ef0463f37bf9aa4
+DIST thunderbird-115.4.1-hr.xpi 674807 BLAKE2B 
6ab38d4304de521ba3d6764d235465a1ca97d8637c68f77a62de457a4fe8d7c3384956ef20a7629fe0e9fc78c5aee94c171433bd9b3baa2ae723501d7d787452
 SHA512 
65a93574c900e3587d40e613fe9166dd14d4334e380f4a8b39c469e661718657a5afbb7260acee2d91224b6ac6d0d3cdf0d243a7b2bed890342d2ca32a3a896c
+DIST thunderbird-115.4.1-hsb.xpi 733834 BLAKE2B 
ec2fc1a68d315b198ace5745f10d61a26252ce9380cac5dec4508f362149224ffe28af4da9ab6cbd9c91df8d9bbf6d38c229955dc26f36ce15612d921a78a9b2
 SHA512 
b44f6990b4aa7f108bf87e5ff46f9dfdc4367a2cf68ff9cc7bbc453c7cf50ae0924f105725c7ed9caaa7b3df331810c528fdb7201692b63e8bf0c32b185d752f
+DIST thunderbird-115.4.1-hu.xpi 736576 BLAKE2B 
9ae225be89254d393fda52c87eb213e72dc18c4bb04a3ae747854a18d48663337e70586cf4d88b162907c0544a6fe8a7729413a36c45111ee5981d0e1d3340cf
 SHA512 
7bfe80d12370099c9d99c436dc4c6c9997d392a3ed4261d7b38e5f4018bace6228af8c59cc9b45f19190224ea7cecd7d1879a1e179ce4710d2a2be5758ffc2e8
+DIST thunderbird-115.4.1-id.xpi 642542 BLAKE2B 
f4a36884b5cf4f756ba0f2fa6a90c9c10a8bf00ecee3dd581b7b67009a61f27427008dc089e1463d8a7a1e771ec912b13a74b8c80a1d4f4e4e1e5a4b247eeeb0
 SHA512 
7d449226fe04444c55367488bcba0c87c1a9f3841f4628c7a3e2685511b2113ccb1ba37f9ca86c5b1fe2920e6022913c6f562084bed4f23f34031d88ccf172fd
+DIST thunderbird-115.4.1-is.xpi 701960 BLAKE2B 
f838b5e07d375c62c809efa6ba0485035c45be325c7c55de2dec742a7f1b735d2e8cb37e605fed6fbee7f7a310fc78ca290a89162499d7304e676987195ca8c2
 SHA512 
93be672061855bb5d661dfa7add4ab038afed6433ec788038d2aa9ec44a21bf1ef26d1bc8e6aaf1aaed04ca0c177ff436d3aa99a6e493502895050154d1a7468
+DIST thunderbird-115.4.1-it.xpi 643460 BLAKE2B 
6c9438a2909a124d788e8b99ff2c7bca2f39c9eb247217107c8bf4f9cb29a654c8382e87b66e14d069afd41a9b9a91eb1fa52ab5886f52b0cbd5ab499861ddf4
 SHA512 
b1b0e25e40ead03288a9acff3401066c0f3702b68db36b38349440929bf9e3823d053a5bf477f808d241f8fbd287cda02e97e3bb7453d40b11f7c1b114a30260
+DIST thunderbird-115.4.1-ja.xpi 777475 BLAKE2B 
bcaa3d283e45fd838d1178759d78db5421706b7c2c3b46daaba31cc0026a8d441615a3eda60bdae999f5b173723754eff29bc345aa248f952e8bcf4109ae4c70
 SHA512 
e200f0ca03263ed4d2f74ab50e19c6ce05c158d41a57b32518d7c8fb8dd3bed36b3f517d5cb387bac26fec0fa7442fcaab7ed7c87964bbefbe70362eca99b2a0
+DIST thunderbird-115.4.1-ka.xpi 764457 BLAKE2B 
76dd6a03f2be6806283f10a59ded3b2c048c67bfb6fc1fe51fc7a1b15b0af67e64633411bbd1cbf89f01838d228b3cea6eff3f3348c42d7bf8c2212cd1131838
 SHA512 
fcdeb47a762388519e7b93619e0f36cdc238ed3c98bd7c7962b791afa7d9b41644cb985d9bc444dcde285a2fd74f5891138eb6f8ade3d64e3c5a41f9a21eff9b
+DIST thunderbird-115.4.1-kab.xpi 698917 BLAKE2B 
b37ad3dda90fd3e04ebfebc2c370320071a7d739791ba967c41b674ab1e07129f5104d8eff0535b59cb12288013190b867a2bb1e2cb7b90fcf9da7abf6d38452
 SHA512 
708d5ab479c3421cc957bee81f4a286aadbbb6e20f7e5cdb8e6e08d642b3321624048e04c94299ead7511d1b36e4d4be95309fed75a138efaa773f978a5100e2
+DIST thunderbird-115.4.1-kk.xpi 804988 BLAKE2B 
5409ba60c32052911965d0d891af0249e5fe7f1f6e7e4a6078836ca59a4bfdfa381f032be2aeb6880490480acf5e8085faecbc0a95d19b92d4da07de1aa4261b
 SHA512 
9b0d43d6b9116a25ffd9bdd53ef1e4f89713104bebd24d4e14d18601f904d5b170fdc0efb8f993a8f39365bfbf37bc9cdd1677c3b3366af6ee6c3ef3d95de904
+DIST thunderbird-115.4.1-ko.xpi 712588 BLAKE2B 
fb66df4b7dfe36f6c17778b17d5efe6092431a66f1b487c3b8ef0c0b25bd6cfb36f8ef8c68a8ac83845cedb9780c2065fd2d8a9649b140ffdb3833b2992155ce
 SHA512 
f01da6100cd2d841759b317311f06569434aab48e7151a91b9455afba36dcdb040d85d2fe8a0a8e2ffd1b8b75802edb3656b5dcd9dcbdebf9e66846bbd832e61
+DIST thunderbird-115.4.1-lt.xpi 680097 BLAKE2B 
aa51e6b5145236c732fe5ffaee3573834181b55f664e619798149bc105b86ba0ed3c52777f5ed5d0885606225154956f9267cd73eb68d171c2aee0bbbc1fe646
 SHA512 
afb6c1a06bdf190a7328a61d0e1a835259ed771c1bbe7533f0d5faa5595f8e9b4f6a7017001f8b69e29351d24a7a5c811525a27095edd29003c1c295e923b3e7
+DIST thunderbird-115.4.1-lv.xpi 604649 BLAKE2B 
f69b673c62067bff24ac866e1d5ed39e6b55a7b1f93bc8f429a4735df288afc956dc2a97e8443ea2697f9aad1bb1f01b6fc9addd574e92296c91f1a2c6adddb2
 SHA512 
64a5d3ac23e7739cf84808865d42807e5bff40bf0cf603a4bd2ffe43cf0964d4db59d02cf18fa5996956e5b121a7ca9ba4b6f9d563f02be1d2b850a293088f8c
+DIST thunderbird-115.4.1-ms.xpi 565734 BLAKE2B 
badda31fd1ef639c5d18fc4b919e64adb339d7b658df4b7d50f4be37a170f0a219b7b1b5916886c53b3d449c7a29b6aea4a03e7892e0940d169c006893f233a7
 SHA512 
98715c1216a3a8e56560ae567b4ff22b2e86836d437223391ced0e4c670900c3671f34b0c46502c02679d6313a622bd85bbbe3ae303c8c2f93f5863ad6f8a565
+DIST thunderbird-115.4.1-nb-NO.xpi 653835 BLAKE2B 
3c7a1f7b2aad96c716cc960b006a2b5cba0840d24487ee9252644a0ddcd82ee4b1a6f5ae76d952274d832b04ed18d81d6bb24a104c50312ae03e38136ea228de
 SHA512 
ba06bc21a60185fb3a9165da606d984f0c98d9e2457c8b4a41ec8748d11ce4a99c997c94d5936dadc92ff3599a3038fceeb437fe5b773061b6d60c6aa0b29d22
+DIST thunderbird-115.4.1-nl.xpi 699389 BLAKE2B 
215ff5fc811e898505f6d514caa909f5350d0cd8500b2b6b8fefc2cd866b1d3f4b931a4577480df2575c166192414fdc3d049db91e33add5b89574e3f8052e94
 SHA512 
368e0fd3ba15e5c5fb11b3fb4a5057ffbbf7c790b6fa829ca3398ad11d22ffc49cf01e652148371e0d936f009e70fdd093029447b27cde748147531d4ba86e1f
+DIST thunderbird-115.4.1-nn-NO.xpi 672838 BLAKE2B 
54ac727c9a25ee5876eb9f582ec1403df96016dc696a42791e50207ffed76efd303aae8f6cc5a56608abdf8713d25981f2f4f08ed9f976adf41d734da5cef23a
 SHA512 
ec171275620ea2b7f8cb08d788f953453b1defd763fd9ced56e361fd63344f7bf132464aadd472c9537cf032424115608b51274bcc75d690957a528c2c3bc497
+DIST thunderbird-115.4.1-pa-IN.xpi 655777 BLAKE2B 
15ba07e7d6513cfa949a73d7a7f1952db29a81341042bdec0949ceba69557f719dfa5d063e3fceb73ab630030d5ca3c6025bf6ed9d496875aa0bd8b03f8e3243
 SHA512 
8e73a9baed3828fbb179e3453e600bab02301857b3174a69fb4924693d11b6ad5580950506e1705c14cfcba8934eb72f22df70463638adab9ea8b85e461b9702
+DIST thunderbird-115.4.1-pl.xpi 716521 BLAKE2B 
c741686ead84a218779d7b9ad5044997c54cab456f15278ccfd23f313d87a97326bab8e9ebd0c964faa55a6560725de6da2e83828041a36edc0e71f2c2327fde
 SHA512 
67293077e9610458d4df8a38835327ded2070f5f728bc6d6c770541b218c38e083e958a4dc9b804e044cdeb6657a7db8c66c15fd9059a39ac98b17634a953fc6
+DIST thunderbird-115.4.1-pt-BR.xpi 707197 BLAKE2B 
c9a9ffec10fbb7032c2e593277b7b419d213e772fa634f73c717d70bb07b9e55981ab63a56830c68f35b1b1e639595142149fac13885ce7b8c0c35c9b6a1f991
 SHA512 
ef75f07dcb8a97e5ad0a0100ff5a4d8ca9ca9c8e1a025c80d88e2b844b05086f02f1d34c4cf62795109c7f2af2e18b6a957a8a2032f1dd60f9cdca6d2e90af45
+DIST thunderbird-115.4.1-pt-PT.xpi 688988 BLAKE2B 
ccee3ee4ace3181986b6e923fe7f3694995bd7cf0bcd1ed12fbeb2884b945cd4e1510df710c7c6360e7a50311f5e70406f0c5bfbae070feeaa2dff349960a577
 SHA512 
c093069544fcd84da1e4c1b86ecf04f4794b391a1a825656ea48c8f77900168dc2150deefc679d76eb51ce491429f5245f3ae96de36233e8906629ce6a374628
+DIST thunderbird-115.4.1-rm.xpi 703911 BLAKE2B 
725e51551dbf192edb73acfbdd713765c828b923e8f855a53d64e61cc7eebf2f957e96101885a3a1022b2ded79bce0fd6a2e1a91fd0f83f414d2c03b1f977654
 SHA512 
8a4284dbc7a4a55a358dfa7a37e58d07ad9e308afc3e9c91b1c7758605fbb940acc196fbe88d72bd50c90c233245c3a74533f0ab3e4bfa45b5ec394a125cdb9a
+DIST thunderbird-115.4.1-ro.xpi 651299 BLAKE2B 
39cf9419e84f57d299e95abf68c31fa7420126d50d9dfa27d40d4d7bc9bb5d822e78211d2a5bafc693e1aa4cd61e0b1228c19a26c411262be73ac7e363c99b49
 SHA512 
6078a117b001289f4d0cc3e2ea34b4eb28428b4c6a9bf6601f54a6522177f477fadb67ad79c59b6980c108f470935923eb466da913a6a133df9b5928f120409a
+DIST thunderbird-115.4.1-ru.xpi 820780 BLAKE2B 
0c04ebe43bfee387eac3ecba31e146b281dd31cf200feb28ff07c3c6ecfe17e8af99ebbb30135f304e87cab200dca70da460c9feff67b612673db40863641dec
 SHA512 
5e911eaa2b658e0a9901650c2d14feaa286681f504ff8028fc873a72e740810fe82ac32ffaf25c2183c510bf53dbe3a97f329f82b23e7d036ac1b7a40a459a0c
+DIST thunderbird-115.4.1-sk.xpi 736589 BLAKE2B 
18c02d959f860e8e8453cc34015c54acddb6ed963379e3cd15122cfa64e862e8e1d626c1681e9dc59fd1d85fe50c59d8fb3899505aa987185ee65c1e39416531
 SHA512 
a7f97ec876975f5a14c0119d0c443d79a48533bb5a360dd787caf02c03538ad8f7ab5f173ac0311d47ee9053bb52475764d723e4922d1bbd8baa8c94d3547f9d
+DIST thunderbird-115.4.1-sl.xpi 701671 BLAKE2B 
2e4c2a0274c6254f02de4c7c7afc17dbf8c6de61c6eedadf59c62d7a8ef7c9e218a6c4da9d8db4dbe8fbb5a02a5bfac423cf68e55d22d48f0724c3ccff169ad7
 SHA512 
0613fea360d19fb69c39ea98e5480fd7ee9ace6e19f8d185f69db566eb1dfe7cfe905e985ed54b07aab8f2ac5fb9914d33b3c3f8c8e07834fd893c21f1d193d5
+DIST thunderbird-115.4.1-sq.xpi 717452 BLAKE2B 
3eba065e8513261c2580a5b355290b7094f827dccb79d4c092efb7b356a493140a264bb3e18851fc525d980fcdfd6658339c5d1eb2ae942ee70bb5e7be64e5b5
 SHA512 
40f788c3dec882f71b1481be028b1f4a3467ff2e5a103399dae13b33ca3aa7c6bc381b59dffe52da86cb1736f41d406a040c5d2c67fd84888bb00220a82313e0
+DIST thunderbird-115.4.1-sr.xpi 740173 BLAKE2B 
2646fa229bbd0bdfdfab049b29d4b4f880046f60607ed96a0b315bf4261c82362ecfafc0353a80f59ce00663c41fdf0b7619eeb09e49fcf9bf7719d905da6a5b
 SHA512 
361f1b6f965091c6891e3962a7043f3c3b9b24dbef2e273c2535a8fe86fe73d7bed5d2b76dc5dd213a3ed4a6eca58b3157aa7846f5ece3dee33a245f8b368640
+DIST thunderbird-115.4.1-sv-SE.xpi 702286 BLAKE2B 
0270add27eb46a5c721a9379d3c274ba95719e1d5e42ed030f4e1ab4a9a53a109308ba1cba8c82f6419390e4af269c795ea74b74991a2ea36fbc1611c21a25c4
 SHA512 
294179480ae13be12b4191bdb77fc31d32955060bad02f5232d14e526c8eedc5bce6bb080be9f0d69233b5ecbb1d43f99fc0cec4a62f6ad4a4a8780e2fcb555a
+DIST thunderbird-115.4.1-th.xpi 761859 BLAKE2B 
1a3a6cf56628684254501d23d19f469e4ef4ac62ba40bb66ef204bb425462be4df527d8ee27c29bf3bcd978876367c8fbb62277aa72ab73c95570972d369fcb8
 SHA512 
455a9040df700efd05f5c71a257b583c3008b1cfd718ce1f5f4bcd5ba1c56daaa880e91067e5d9084d98eb7cece938e9ea68421314fb33e6d6942f99018f2457
+DIST thunderbird-115.4.1-tr.xpi 714659 BLAKE2B 
4198e6cdb54ebb432c35fe0b5aacb10cc625f11697f7b0754d5be79244c8e55b68b7a066d6a45ad5b29e62700620dbd64b9fe94d95bbd526bf5f778e3f4c4014
 SHA512 
ee9e5c2aa9e04e23d42c817bc2cd69823883f328991d964056eba1ef7059ff2f8346206243f178c97f8760b1609be46d981ec45ee1467bd617162ca00c3f140c
+DIST thunderbird-115.4.1-uk.xpi 813301 BLAKE2B 
1d393028e4c1c6ab7c4ae0ef49af556d0364f3cd83bc698abc07aa6a254ac0f27a3472135c71273bcb9ca9d47782f7d833b8b81822b3ab1732721f049014c2a5
 SHA512 
5b9e16f6bdc31d4cf7e0855f9b7d3e92c419f898464533b4cd7b3c6f7216dd945e2520a8703ac6808bf791a0eba4590bbd935ce0b01e1cec6124566558426a6a
+DIST thunderbird-115.4.1-uz.xpi 579987 BLAKE2B 
1a943993bb63ceef7881abb87bf42a7758571b708c35c773a4b981f0c6a4ffed2dc7db15be4bf7a6acda061c3482d388b3bafc91ed08e9e9bf7ad961139d62c8
 SHA512 
58634fc21dc06164c43d6693225bb93a665d125cc47f01c24c59960417f2c3e7c743c0a3a67184c1955c8509b946d03238e5e2528075bb5d8912c6b3ecbe3768
+DIST thunderbird-115.4.1-vi.xpi 742633 BLAKE2B 
c037c0d201406a0eb8f6193412d300b8a62a845a22cbb1e1a450d7335ce5c5dbe5bf06c0d4be3ee9ce2b9c0326783d3478808dfb9e483810c50f4237df3929f7
 SHA512 
dd423457612aa07c20ca3cad518f765990ef8d5e0d3933412d41575774aa58c53cd8656b6dddb5fc59679c85257f11b21c03a56e06c09257879fd1250495af39
+DIST thunderbird-115.4.1-zh-CN.xpi 740611 BLAKE2B 
d021dfab257ff501968fe30e4b9a1cfb241635b556c35a63996f3a9ad40b6c77af6545a7b6d49ffbc036198a3e378222b41e96ef775c356d57af2c769c89b5dd
 SHA512 
82ddb41a722524db6226c7d943ec3284399645336f94a7579aba6d9b30585b31e8618313da40ea211ce092522d61c716f24f939f5f08e0f037738bfeca1e76c8
+DIST thunderbird-115.4.1-zh-TW.xpi 743527 BLAKE2B 
2d8d2994be4811e558905375bf93b86bea3b827f33d071df21a773ffbf98756f0638fe5ca747f482eb983ca5b7073b0881825f1b27c5454d1bd94498a5b3b9fe
 SHA512 
094f404ab4b191ef019c91b36eec3c1ed82a98d93dcfd51d75feac8792f3fd2cfa41b46f190c95e89e55b95cfeb4b99cc3302e1891eea70f57269c95bd4e33f5
+DIST thunderbird-115.4.1.source.tar.xz 537988108 BLAKE2B 
784ffa1b57cc6683f7e21d1dc00049f0b70fa591df4a46b099b8d2c205cad024008005d67f0cb76c7765a47ae176d8238fbebc8a27f63374f0f7c65c98c7d620
 SHA512 
ccf48a5376027b1e0182d4040a0571e5f34c2378349c0d11cb4e14c75f10247e2522e8d8d2a0a45022ff1a463a49f59b1cf611c70951cf5e1b383051c0573164

diff --git a/mail-client/thunderbird/thunderbird-115.4.1.ebuild 
b/mail-client/thunderbird/thunderbird-115.4.1.ebuild
new file mode 100644
index 000000000000..e4f3e9cdd119
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-115.4.1.ebuild
@@ -0,0 +1,1321 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-07.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 )
+       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-73.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
+
+       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)"
+
+       # 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