diff options
author | Joonas Niilola <juippis@gentoo.org> | 2023-10-26 09:14:15 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2023-10-26 09:14:15 +0300 |
commit | 2466af69511893843a33e57c3acc47737177113f (patch) | |
tree | 2710ba939d8a507c4994af7b36e9fbc8a172e71e /mail-client | |
parent | mail-client/thunderbird-bin: drop 115.4.0 (diff) | |
download | gentoo-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/Manifest | 65 | ||||
-rw-r--r-- | mail-client/thunderbird/thunderbird-115.4.1.ebuild | 1321 |
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 +} |