summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2023-10-26 09:14:15 +0300
committerJoonas Niilola <juippis@gentoo.org>2023-10-26 09:14:15 +0300
commit2466af69511893843a33e57c3acc47737177113f (patch)
tree2710ba939d8a507c4994af7b36e9fbc8a172e71e /mail-client
parentmail-client/thunderbird-bin: drop 115.4.0 (diff)
downloadgentoo-2466af69511893843a33e57c3acc47737177113f.tar.gz
gentoo-2466af69511893843a33e57c3acc47737177113f.tar.bz2
gentoo-2466af69511893843a33e57c3acc47737177113f.zip
mail-client/thunderbird: add 115.4.1
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'mail-client')
-rw-r--r--mail-client/thunderbird/Manifest65
-rw-r--r--mail-client/thunderbird/thunderbird-115.4.1.ebuild1321
2 files changed, 1386 insertions, 0 deletions
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
+}