diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest index 393ef58ab68f8..81121f415637b 100644 --- a/mail-client/thunderbird/Manifest +++ b/mail-client/thunderbird/Manifest @@ -67,6 +67,71 @@ DIST thunderbird-128.10.1esr-vi.xpi 790627 BLAKE2B 191d11d802dc6cb6cb96f9cf1f2e9 DIST thunderbird-128.10.1esr-zh-CN.xpi 790965 BLAKE2B c0b33d73490a48ec8650a9177e05bbf0c686b65213e2244e6f94315941eb648f89ce9bfd6225b976f8e0e19a30d643da21b6a48468229eed889ba105c53d9e46 SHA512 abeae6372c7a7587f6006298dc1de002f3c61d62690fd4ee1bf98e113cabefffc4931aaeddf9efa094a2c35f83ef0587dd0d2f9606e6e9f0360d9093a8d207cf DIST thunderbird-128.10.1esr-zh-TW.xpi 794258 BLAKE2B 293a275cb1a1cecc205648a64f07d129af6800d26de8370cc9af311facd54fdf6ea8457c84264eb8982f6e16470ee3d018ac89bc19603c4390a4b443c75f9b9b SHA512 7560191fbfc4c683a8d6c47e24607308f4a949cf659c3aa6fd90d6bfcc5f9b116bfb58359dc31327c164caadcd8e1e289fc2919509802861406e874135bd7f2e DIST thunderbird-128.10.1esr.source.tar.xz 677156592 BLAKE2B c7861611d953b535e5f62e61935bc47c74508943b2bb2a5a9d401f8702e8ccabf8600c243c83595578c29d2d0ab376563559ea2b3049fb886b8a63577dab8f71 SHA512 09b54450928c6e0d948cd79a56c28bdb5fe5a81d7c710470a1ec195dd295c433b872682102c74930f19b1184391c30115293dadcd7dc8a08ae8baeb12770ef9c +DIST thunderbird-128.10.2esr-af.xpi 534914 BLAKE2B 74eb568898c8b6d52aa7d915ee28485e0c5588f579e1efd930bd2568c5efc710bf2a0931d5dc553281270090c099c751a0599bfcafca28d2f047ac7eb5a34f93 SHA512 57f7ffa5f903932adafd6725ee098da020946bb3c6837ad07fe9e348a5240ef02416635d20e19a31d51340c64a3ab67c998f5496082444a8a7797abe50602bb8 +DIST thunderbird-128.10.2esr-ar.xpi 686463 BLAKE2B 4f51ff9cfad62911321c55b90d548dcf8160dd271a652381d4a3d931883f6fde2bd2ef518a25e8b025c29aacecdd919a629d0d933b28c08854a4aa3560559b3b SHA512 7de16534b253983898db88aa0b0c3b31102e967379f20cd5f6f65b25a96a571bdf00051d2aa780855d5c1a66a807805294eaa15a232318a7927aa87e041faff1 +DIST thunderbird-128.10.2esr-ast.xpi 574781 BLAKE2B e033e37c6649e86881814959148ad3fa5937ebf8d0334fef44add1c94b759d73054cc6e751f19fae92d827ffb2dbf9263ce721289d7a5bf12d6d9e4ddc612a67 SHA512 9c0363acd9cea60169ab18a6067c80e964646afce34ab6f0669e87b91705f23ce16d4a3f37f8908d5b9b3266578064e4eefca16c8162353ce9f91e548583fda5 +DIST thunderbird-128.10.2esr-be.xpi 781612 BLAKE2B f9f23090e94a1ca703cc01ca5562d23fbb506f435a7c52c6e67b3a6ce4da59fe22d3a613d4294a7a6a7475941ea71dde45509f705a3f854cb284f54b1f5c9963 SHA512 45e8042067fe94cb30e1dadccd60e30fcb762667ce66a253795787d59ffbbaa68c6348f091401691fb2c040c32bde5e0fdaa53dee3c1ae13bb94a95c1d79be2e +DIST thunderbird-128.10.2esr-bg.xpi 814009 BLAKE2B ebc4720580902629c202d82e7f57455b5ec179c65c1c830844fedfd1de505d3c50dc13009e3242324b66da68839cadd737af92083a1bce38e3ce5f1d166e7350 SHA512 eccb16c0ffb37dd10eeaadf4d14239df6fd208d36bd231627fcb24e21d54de1841f239b543ddee78972f2dc5502fd98a1faddaba116fd462b9771dca9b5c0b78 +DIST thunderbird-128.10.2esr-br.xpi 650140 BLAKE2B add0de5637098519c73c8b3475b46c911f87cd7708a808631a8196bbcf55df768d318b0213efd2fa441c0d4c42315c1921380a6de16bbf8272f5dc2031b54c04 SHA512 1cf520721b293395437862487ab7dc468d3de961d093aaaef498bc512315c663888ac5033e623a1de3b555aa64b49253057b79a488cc5d37a74baa16d225cdac +DIST thunderbird-128.10.2esr-ca.xpi 704674 BLAKE2B bd8b26543e9891713d4e1ab7952c0cacd671a1144543d63a6c0bf981e6cfe087c56dc834261a0c127a4d75cf712f734aca15a1c6a72e217da4620bfd5b98f278 SHA512 a1a2e18cc7c6d21e180b2e83fdac16fa07f0de6c821977aa125d4e4c5fb3040b5f53d4bc9e9abd28a8eaf4472695ac3ae06680c57a8b3c9f2bb3a9897ce9d19c +DIST thunderbird-128.10.2esr-cak.xpi 669096 BLAKE2B 2ad85321d5588d61bc096d1ea2f51731e1b47b17917469ff3b2bbc3c7f5e0ddb9d9604db4f7b199e1608afd36861e31682183819fbb03b52e73bf205c869d099 SHA512 ea7b03763ea71c05a32be704f93bbc160d2707fa75553020cb2fa1e62ca376c9770326f4242c459805d70b19a9960df8d22f2c6d0ca2a9d384ef591e44bd0172 +DIST thunderbird-128.10.2esr-cs.xpi 789858 BLAKE2B f7eb7eb5e0abc5c3ff45b893b76da4abf331f659b6305fcc22b31facb9d7eca4c076905bd267f817f345fe113dc04a776dab62a59318a636b018892233283389 SHA512 8421c78fefe34bc1fdde572541082e5e8e0f70e487b018702f6e5af3b3409fe8e7ef0491b4f00cb99368ec5852f5fbf9d49bbf497b9d0fd7fcb683c9cb2c4e57 +DIST thunderbird-128.10.2esr-cy.xpi 753578 BLAKE2B 3609cad316b3d714f61d57fb215d8ddae8b2732103bf4522945998eb5d72f8176a4268f32eb4fdc9cfbf7d60ac943cccec7ead34e2d5226112762de694142893 SHA512 875ea9b558590e67bc7ffde41ef7f7b526d481bf143ef4d9870599a9b46384568f1876a85e8ea9eb054c65e590a6f3bdccdd582e7cf3644ddae1d7791019edb6 +DIST thunderbird-128.10.2esr-da.xpi 738602 BLAKE2B 16a2bc677197cdf6fe0c3035acb0114f17e7615d6c0a49548ac41883b8d01a9a673f0ff65645d6d8ebd651187bc9653b21639b8d9ede9c6b1c67108fb381cea1 SHA512 8db6f02069cf5810ec89f6935afaac38333ef82d00b4026b3c3b947eda59275c50d6a5ca31873e2ebcb6c1ff84a264c31f385f1710d89b8553766dd61d7eaa17 +DIST thunderbird-128.10.2esr-de.xpi 771421 BLAKE2B 7b9a03fed84a3b418f99a92499f8a13230aed2bc9eca7cb306a6904ecd4aa18b83490aa4fe3edb4b7942930aeb9e11e101bdb911de87911acd219147a825eabb SHA512 16dd8e2662da6d829253e49d7b45b8f6aed23730ae5bfd06fba70720f9d6c82363996929528d4d848f9134e8eaf29344e6cf2bf70dcb41d57c877cbff514916a +DIST thunderbird-128.10.2esr-dsb.xpi 787499 BLAKE2B 138c5207524a2039cc87faa82f090f50b08dbb41ee67bf21ce40fd2a3c1368d73197afe02a6c93a1a3c06e41d3f1ef94e6052fa298b018ba444d894c1dc8fe0b SHA512 bb630f1467a5ff384c0c005124c5730c84a7f62ba0051e97b40cd110e87a636dc9b961f71bfbe89e3328885d851a25a8b53357920ea77e2112767d5dca4ae534 +DIST thunderbird-128.10.2esr-el.xpi 892797 BLAKE2B ab0442a8ead7d488d267a865503fede8db0c7136913abf27313ad0d6091f5a80b24c678bf5b8b5226d9e6bd8bc93fcdfbf78bd6143345cde3a99d4d8e4a0f369 SHA512 71e624bb980048da4babc13f5322f178c7317e9e3686f91a01b692c9a9ac618b354887de6402c94873a8dbc269cb2ec2b2ca18d4c263ac83db3521393e98aab0 +DIST thunderbird-128.10.2esr-en-CA.xpi 705370 BLAKE2B ebe859bd0790064e05b7c5c781d8d48cee2b5cf6ae8173de8e42d8bdf3bcb546a1573a9ffcdaa313367ecae73ad215f549b542c06a0a6b8780f00fdc887f8539 SHA512 bbc270d4ef56e6c4c427c8a71b2eea23140461c73a565bfd331cfe086cc65d4cdbbb0bd38a4287457a59bb56da6848d820d3408f6b5ce05fe2161eaaf828635f +DIST thunderbird-128.10.2esr-en-GB.xpi 705109 BLAKE2B 5b879dd09168651730ab544aad611823c5a100e44922a800e49ffc9c291576de33a5281e91ebae808a232ff9d8605acd331cc6949a96967df713d1a696c15731 SHA512 40639378cd0c30578ca7acc9c37dfa94335af461eb26fd54270aeca3e232de56cd9c837b5b931d3eabcd2038afaa1c18105aa671e31fadf23a724fc2719e03be +DIST thunderbird-128.10.2esr-es-AR.xpi 760991 BLAKE2B 0f5f7438bef440a65e8f7facf78683c9ef8ff0bb24c276f428c8cad25f55eddf48d26cab8a9ca218108ff20f300c00f9cc3274cb7d429c992d1228fcc978c514 SHA512 e6726e63a6b187885f20cedf2330dbee6d0e0abfa4158ff13d69af70d71331e2ec170182d40990febd69d70462d5744ae0bca539352d8bc38af2baacf9516947 +DIST thunderbird-128.10.2esr-es-ES.xpi 761586 BLAKE2B c806ae0a9397c5f948ba37a2b212942049cfa57c53bf0053e07b59d1b3b02483857268fe3a60a7549aab2854cb6a99a48db3f9512e311de40fde3e1d3b88920c SHA512 8cbcf2c6669ed5a7636907f0d033b2ce97645f302d6716af00ad86d2f81bf62876094e63dcefaaf3b96d44fbe3770b99e37df7289b9f39308a241438611499c7 +DIST thunderbird-128.10.2esr-es-MX.xpi 756970 BLAKE2B a69b59bfc4b72d847032f5ae04a87e6fa34ee28f2f6f2efd70652f2a1ee2d6f6be2a86ad55244bbb8722e2c763cbe9663f4a93e53ed1d5a7515c1e860953b260 SHA512 61d7a4e30a4b170a2b47419f7351ea082b48f28128fcc0da07d61eeb970f83943cceb1fa8c17526889dbd9407b992ddf53d1d6cbe8ab49846d872b0d0d306118 +DIST thunderbird-128.10.2esr-et.xpi 692377 BLAKE2B cfc77cc08335f0e0f813dc92df268008c60595727f54b25b594b2cc27f2f2585d0bd3532b73ae3888af41eaafeacc1d0221da5bdb2aab7f14e7a0554d4749ff1 SHA512 6c447518f70d2c156431382d67d9037b97a968956727447f14d196b7bfad233711db0c95daa707eb8475657491ca4ce3b6d3fb23f77b11d532d31827adfface8 +DIST thunderbird-128.10.2esr-eu.xpi 737440 BLAKE2B a58f2ec3cca7b158a4bd09afceba1546e027f6b393418157787e7c0c378f6803ef7529e3773cf9a707696d090bf99a83b6e7c42d6af594be1cb2b7ccf950d010 SHA512 5a34c218cdb0de8210395675ec32dbfc66dfed371a8be92377afa8d4f85ed6b47e82e487e5918871f7975ed442f13e6f5cb3f09bf05fe048147e6d4b9902f72d +DIST thunderbird-128.10.2esr-fi.xpi 735348 BLAKE2B 3847b83c568ce93beabeb8fdd50e548cc3fb0b4c4582d81a5ac96b874589bd8465a13a3fd45c1f89e1d281d104f6e096f95f3ec51fe742089d124a22c90cabf2 SHA512 5be7fc1f14e860734550c3eac00585286fbc229c6098722338c19de0563afa23bd4dd55374c35bb1d4050c0d039aca6fe0ac37b37c841bfd1bdd26278f9a9c21 +DIST thunderbird-128.10.2esr-fr.xpi 775200 BLAKE2B 3c48124ee9aef5cf07f12d834269f4e1a9723dccb015d77720d7a9af0b55978e573bdeee5ad9c221ec7d35d200531ad6f0fef64e7f534bc934a78bf697594cae SHA512 e81203b74539a4b638224f095b4ab08c72a58e70ce9ba71acea6706d30dc817bccb81e05a159995f37eac7ad1a231421161c9413c12c6074a9a30f2b35295e92 +DIST thunderbird-128.10.2esr-fy-NL.xpi 756476 BLAKE2B dd5f19bbe17d54f7f35ddb0dac83b44ab090351cff367afa8cfea7d7fafebb2f28f4c647da15662b79aec826026cc7b1aa570e8557aa65510f6e89f1fe330339 SHA512 3149c4eea9f10cf2e22613cad42a7c0771b7f1ab3b64426474f598cd7dd4b86f471cf10440a7ec67a6f4f27b503f861ab392828cd7076701ee96cdbac19eeeaf +DIST thunderbird-128.10.2esr-ga-IE.xpi 614301 BLAKE2B 5a8294836f8ed402003a58c3406522a97aa8dbdf838b03787424bca61ea9c7cc5f673e1fedd5f403752d5fa34c8d837c6c4df71b920e0cf51cd2052a0673547a SHA512 f96128d5fa113ea9a67af3da41b609d6bcdaec9d4ac402dc1bc893208f27af60480d7ec2b6e1bbf9743a10f1a20b2ab28cd056a826a5da1e4b77de730956b13b +DIST thunderbird-128.10.2esr-gd.xpi 723346 BLAKE2B de9b0dc86d56af71804c67f940a8f4ee00e756629b38f2de2b1b52ca6d3295547846cac51d9a66630a09940f67cd24d6afcb20de54080743f1b8df81f3b33d0d SHA512 ba660a714558bf81830b9e7c38bcebc0d810d677953f1072dea2f4c2895dedde35c760dd1ff4f33a71f95e53d3763c77cd2a0c70daef0f2c53a16c7930537c82 +DIST thunderbird-128.10.2esr-gl.xpi 738663 BLAKE2B 6ee3cfd9ad1a62ab2e76d1fa99be7302714083605ad162c2937dc2cff8d1050059fa5269d4dc3043ea6c0dedcf0207b9b2c3de8482c64834957b9e7eb2461400 SHA512 0708c09e88ae01e981d481600874ffae19e2fbeb425a80a0f7234b88ca2da4403287754c39204a2f9158982a7a0e71a67717acb1dffe26e2af56c7de15cacba8 +DIST thunderbird-128.10.2esr-he.xpi 697002 BLAKE2B f30f9d4ad964acfb703077c1b8d88d154dc2a6bd034e8b80867b11e4d738ce6e9e2ca2e5cb78b5883dd1ba3138c0a58256de472646569263b02e7af1b29b707d SHA512 126010e12eb650967ec466e05c6909841dfb50576791ca9aeebc04d06710925f4fb26542ed640add194a6f9d31491e67e55281ae035458461b2e5020500d288b +DIST thunderbird-128.10.2esr-hr.xpi 724040 BLAKE2B ce475f3c30721f88de94c18d5896871181268c22e450ad13274ea62328096c1651e277c232e7ea41b8b4d8d9466ffab27593a9a817cb664ce3c142c9417e5c44 SHA512 ccfa15b40c8f2cc5001c6f1c06ef0d4e6ed0878393e6ca0fcb823edaa2a0b1772ddbe0501fc85627aa0b90e48e89432cc06a8dc33509eebb45cfc7e4336161c4 +DIST thunderbird-128.10.2esr-hsb.xpi 784037 BLAKE2B 78aced13ccd75cfcc8ddd8f9d770ec74bef2d56b6f9c7e50aaf40fc140079127751fdff9947e3c2f90cd7fb3dd77892ddc6e5458b71b2e905cc71de8f4123ed0 SHA512 3b5be7686963c5b848393becddd0b8dd3571e2db98d4ca43c18917735ce4c5e298cea8d11d385df044c515d379d29de764f36ac9a394cc6fcfc634536dec0b47 +DIST thunderbird-128.10.2esr-hu.xpi 787701 BLAKE2B 3bf566b9e189103c6d675a2f773763158b4d84c2fc7b5e24f139f847bc6f28a47f97ffa7af3fe656f8502bcc3d6961ffe0ba5a3c59021dbad44d0b0a57fde1fc SHA512 39df1e3aaf8ad020e7cf2133343c63ae59b372b026b22ed754899c37881f5899e8671fb3fa384c5c03df5c8ed965722b042aa8fb5eb3a528c5363e0684a595e8 +DIST thunderbird-128.10.2esr-id.xpi 721180 BLAKE2B f5ac56739f056866f06dabaef29ce29f9b05d632dd477fa34cf3ddbfa7b1f1ee025c26776dc405885581fb042e475fda13f713b18fe19e35d49e951e6bda2e0d SHA512 d3e3bc13157d31bd1b8a7ded9290040c885162fa69024da976ef47f044e3d1982dc38cf11eadc1ddc2b61ddcd57d0015ea8ac985253257eb5f5fff87c349c747 +DIST thunderbird-128.10.2esr-is.xpi 750936 BLAKE2B fb4a50444dcf92f5c0e196d9e64b403051e6b03be0b1e8cfdaebbe4bd539a7add2deba25d88aaa31eb7e99d8b0fb9c365703decd13af58c2c2cfd81e9bc46833 SHA512 ed5920f1b2d18da109955c3f60e755fb94acc42d8d8dbde0832a4259a7550851cd6fede67ad9bba02c64b04b3bdfca0256e18903c61e6f1388595a0a2ac58929 +DIST thunderbird-128.10.2esr-it.xpi 752078 BLAKE2B d59097283ae77625a4ce957bfb9d5d270c83bef96f19b9508c72eeecb9c37f195f28251b19474dc545987305b984b21632558169f4ad5ddc7d43bb4c38c9d2d1 SHA512 854feeb415299f3debf9f008e6c09a07b13551deecdaced2f83a0479c61e779fb217cc781b532e98b0743d8f86d967c2d8cc847c351ff4cc838deead64a40566 +DIST thunderbird-128.10.2esr-ja.xpi 822947 BLAKE2B d235b54e00353d1e54559f00dfa84bb1dd08fa1d18a23224f2510c2c9c9553b589996dd67f1b6a82fbb8f94ae9bc4b92c650560dd1afb66edf1c48bf8fcaf824 SHA512 14ee4c2e81167bd19f6f6e37c49413097b4e848a8e98ba783b4ff6df87b086d3978ac513b5958c3813b4d6cc3699468855ae7c9263041631d9c35845d00a71b8 +DIST thunderbird-128.10.2esr-ka.xpi 814153 BLAKE2B abd06e8d32154a7befe35e0c1f03cd0aa0c3abc18d8d4a86fbdab0495ae1f05623bad66418305265f7445eb941ddb60e05a7a4ebd699c9bf8961ee2d77502d8d SHA512 91cc110d2feca3202a5617a8b8acf70bea58370c2679ba82ccf66065afc6dd3b0f43b5ea64a84914f465b0fa17f1a589c0ff4fc60459e8880e86e758b84ab8fe +DIST thunderbird-128.10.2esr-kab.xpi 729660 BLAKE2B 43200c639d8114a34f6a4077b8aa491b57f364f31fdd4ce20f56fa87f53feb2b5339ecbb460a2751f32c8b8289955eb57c294726334c21ad62d8a131796aa3d4 SHA512 21fddbe2bf0f4d7048f506c21d21e5b8b3370c6c8bd50d4849b3d02393dbd2705f6f18315b76defbeeae297f68d7662376d6bcf8df67388130ae91428fad34a7 +DIST thunderbird-128.10.2esr-kk.xpi 856119 BLAKE2B 1cc9c3ac4ffa5d0d512393eb95ad54de9610172652b81e0c2b371ab3e353cb82fc51d4a3719f25aba0819282324c64e4ac4befb7c66a040a3e5d434177c4d676 SHA512 706248041b1225d8d1b7d031ce64b6c0f0fe9f9c40736de6b636381dedf2d2e586da4b4c98babf9932a1ed9aae78804945f334e57d7fe330489ecd498b337742 +DIST thunderbird-128.10.2esr-ko.xpi 790140 BLAKE2B 9590bd66846ee78558c1285fc9a73428c989a9811b23e361ddd197bdf3c4a68b4c5a649f8f946c28c89dd681f8927686f63c7b0a627341afe9ad5071481682b1 SHA512 393e564847a39467b54697a49e9b23bd53656728f4889ac6b0fc4d498e50b3887f224e84e7206c0583a9011c2e9253ebed7caabe09ce0c13a00e4b3b97cf3a50 +DIST thunderbird-128.10.2esr-lt.xpi 696750 BLAKE2B 92a541efb5d0931ff90e8cf0cd197be6d4629de8175a01c69a8794f72adbb5970423410e11a29ed3b058760ba8c97996f8b80b3d44ccc11b88d4639fde9c3903 SHA512 074ea6cae590beb730194bd71af33e137270776e8507ba1ca5dbc8c10005a98ece436c292afff3e52aa957112bc97471495a661e2ac469fa25a72b10b32ee597 +DIST thunderbird-128.10.2esr-lv.xpi 626198 BLAKE2B 6d2b35ca4a0d3daefb509d13efa51a15689d414e7c401692472503681e8a6e31cf46247980056ab328770ff62433a0712595214a59addbae09857fd3fe95d65b SHA512 e9dbe5a5288b38e9f43522bc15b8d9d8b319afa12c38c4b79c24ccfe0f1e446875d9f979e31e61d29370ce62acf858be98e1fa4bc4102e54d2ec00e69224dbcf +DIST thunderbird-128.10.2esr-ms.xpi 586658 BLAKE2B 1175197213e25466af395b19b334db808d478d2c64e5dfe33582d979a6a81a496b740f7f25bb281e86eac9d0bc2d03faa7dea039d1498c3ae4777f46d68cd4e1 SHA512 cabbfa09ac81e0f1bc9524cc6d202ce2ec17032abb3a0a0b11197103cec55d2434ddb61961d193f1763209b915202ebc7fa0d95b0c1dd86de7a1bb1c706b3646 +DIST thunderbird-128.10.2esr-nb-NO.xpi 700495 BLAKE2B 06c59e8c8a2972ff547a7ab7a4ce0a5df9c940161f739eb79e1f3c5d8761b36169adca76a40993c499f495f416fac9558b57ce2a35e72ef40d5a09e2b3e07135 SHA512 ef254ea5eee29027f1038cd3fa3a04b0fcb9df9f9ffbc8605c91414112d98748650a49d63e85c5ef44c814120f572cad0b9bdcab647816d60be0d4b286817bb3 +DIST thunderbird-128.10.2esr-nl.xpi 746758 BLAKE2B c2edb6511621d32576d59a540f2e32a642289eed7b27466d73d4a9c3f64cfa57f26842319197635cc0a5b09c07656e77f34328b896128d4875fec13b401205a0 SHA512 1211cf15e213d7f1397f10e4ee03a0f6cd77cb0b5974afadbcb126c175f5343ae468868a839f16cec29359c8c92261eb001fe1ba3ff5755300c1dd096fa0f411 +DIST thunderbird-128.10.2esr-nn-NO.xpi 726227 BLAKE2B 9d58beb4155413dc176cef1261fae0e683030e90fa2fb724005c4adcd1647b00ec0ee84d7c5a7990df12e2c5cae9760d275ec837767d1affb140d908dc62cb2f SHA512 a9bb7a1e94215d35e51c840aa2fcc8df5ccd5981e4e272a5e96636fc6354f20405eb02c81f0c2925b3f5f156f1fb7b85c6b23cd6649041199834a7388b555d8e +DIST thunderbird-128.10.2esr-pa-IN.xpi 687933 BLAKE2B 4e60283a9d79d779f9ec6c2fa2c95da3f650f7051e3931cf4c1b8042fc56074bf9a584595c93a764648202415a26f09810c16bb158e6f5e1618c7c491662d613 SHA512 7161d21a3633c3189f0141a27ab6902c1b3376ccd210b1732266d5450301cdfabd8d1c1125694b16f181dd13daf98d371466f23ff3bb2d3911d5283f29ee70cd +DIST thunderbird-128.10.2esr-pl.xpi 785523 BLAKE2B dac6699414119201abd15e0ecfbc37261744ed95e283cab365e2e4844272dcf52b061954f2722316642c5472c354308fa6413013e11c44623ea29909f1688594 SHA512 cb25f3d33818e677154c7a46f3df3900300d12cf3960719cbee753efcb4cd05195bcca7f9d8703349d8fd2f94477b041de87eeb8892fb71a21ffa9a83799b68a +DIST thunderbird-128.10.2esr-pt-BR.xpi 754956 BLAKE2B dac3ed0e0a07bcea8ca3531f8379437107314fbb6d407343f50854dfc4fd5c145570bfb116029b83b5a2a2449f961ecd8e43eec6c6de7ca0001f8cbe304b3c3c SHA512 30454de5df8a4a2d4db7f3c4da02e7432103f75990aad01f9151c2aa1a0704f30029bc431a50bee86a34d815aa60ddf4e85b6f300a0b6eaf14b9e81d66aa12ee +DIST thunderbird-128.10.2esr-pt-PT.xpi 747654 BLAKE2B 6da03d32e0d5a132964948da1ffcda91b4e68586d88ff190a9ce618a3ec2b6a2ad0f91a784f1cf2044d81691f51730f119cf49202581b550a24f5d3e89eec075 SHA512 9400bbd46c7375afcc8402696c45c19ffa7316f2b25322a09691ac536d7c25d344353c5fee7995f99b050ee4951c35a5db7a01f477dd621b8be10025c6f72925 +DIST thunderbird-128.10.2esr-rm.xpi 750657 BLAKE2B c9eff8b5958d4aa112bb0185303a5541fc43bb5844b1a3fa50fc43676b7e3ab42914631322d64145fd33f9ce6d474ebcbcf4866fc5aee32c6adc3f09fcf1585f SHA512 1f32fba063f6dd3aea654ce07ad3b1db4ed7c825373ab877060122d008ddd23008dd165e06d7b917e103b7c47205f10179e024ac7e519993b6e22d27d8667f8f +DIST thunderbird-128.10.2esr-ro.xpi 666553 BLAKE2B 408377b3dc35534cf41b2e8bf89820af659eb9c163e05ab433153f350a06278624480dc6ffa81bd2f56435560937e5313a2b70a7ccfe9be363037e65e5a1ce85 SHA512 774d7fcaa054ce71fdc3dd0a7508d999cc7434207855170de4c047c22a2b9e4f7844592d7b7c7ea59d9c566b5348c7c55c929e7155e8439ca760e463d3008442 +DIST thunderbird-128.10.2esr-ru.xpi 875879 BLAKE2B 7eae09de0e0b32fd64ad7e0d8a7bbe58ed01884585f1f1f62138de84b2372096cecd2c8b14c279a99597158636b8b8978ec2bd895a39e81345bfefd163130a5e SHA512 d0bcb2b8872af0d843fc72e9a3666854bd89adba9801d5418e4ed238832e973c811f4b83a3fe9fee610bd203224fd06fcff60a54f1b1bfc0f138b343cee66767 +DIST thunderbird-128.10.2esr-sk.xpi 789277 BLAKE2B d42820fca2d990fb3eeda59d582418be48c2234f13d34ac0b2e17748bddd57fea15d81fcaf7bc80b83e357a892ced6c048f474cd60e37040c340d2a61a366bcc SHA512 25fb10b6baf59188a23b669777a10940b48fd1e713ea803516834c20ea68ac738332bd73c8d24cfa45a8393453034c875c33153b8d5a20e494a4b71295aa831b +DIST thunderbird-128.10.2esr-sl.xpi 750622 BLAKE2B 98010c362c1e1df0cabe9fc0e6885c4cef4d51316e0ee48d887288dd55d3f9714022c75802882c7fccfb1a4bb5d7a8690eeaa85991cbee8a2876bdd06decf7bc SHA512 ae52af9f75466704d96f8473091136ed0e2cea78ed93ccf50b391ab529b1b24085431d66a3fa33c74b1e07de7f9a2fad6f836e94e2245061cd39d4f09ccd5fd9 +DIST thunderbird-128.10.2esr-sq.xpi 773100 BLAKE2B 8ac467dca81c80459c82ed9c2c3227ee751ab8ebd8d3a5e98365593282b68bf9e89432c21b62a6d4ec16360767eec05ea337b8b35241fa16fa28d99176fca8bb SHA512 4f4ce8fb39e672275c67b40a7bba68567a9a0f1002120af5b9dfa3b1be71b6a13b74ec81011cde49dfb4e4c32a93eadc1d77559262e6e3eb2bbd1d87c852f3f5 +DIST thunderbird-128.10.2esr-sr.xpi 766346 BLAKE2B 20fbc9f16d088ecae90a4d8010b75bb0d84435200f22604c001bbeaf2637a686bd955fb6c7a53fbb9500cc94ce568cad82d0cf412da78f0a802f5cf67ce86416 SHA512 1f33e00c4d6430f3cf9f182b3521513844da0a038f8e3d458d3d1f059bf2ffcafacc8d16dc9205ff0719028401bdbc0821b993c61c68ac4134a5182b06f67553 +DIST thunderbird-128.10.2esr-sv-SE.xpi 750538 BLAKE2B 8b92bb97c4491e305848cf356bd1219c00967f6c3d8d91256ba0496bb54bb1c12cb4310fd60141b27edd95522e5b07b23d0e94310443a62ce49d213ade6eb8f8 SHA512 42df55fccfd85ca203b8d6601e85ad776cf24980b643244850749d40b8b267438afaeab5152b76786e11c614416caa8658d490726f0c7e141c4e975b03e8de00 +DIST thunderbird-128.10.2esr-th.xpi 846502 BLAKE2B 217ca18127842368a96744c6b17a6e4394c15170ea685a6e54e0f880bd0eff06c74de364305d96ac260c9fc6b2e7e1077919a1ff917a01dde7b6e5156f7c5451 SHA512 c4fb131efb68ecdddd8ccc8295d28ec3f7277c3a6552dbefe20adcdd2e52c9757ce32e96e11ba27387db97a5f82aff3864311b8721a59419e204b81c09ad6d67 +DIST thunderbird-128.10.2esr-tr.xpi 762700 BLAKE2B b10a5af410e870eeb3f3d132d4d44fa3d809510ea436aaa7d2ec7aeed42dcce8596b3f77f9597abc228bbf95a0d8babcb8b693cf70d890e76f58f029e6299575 SHA512 66df96c0587e48112983b99b2af5035f09469a8670f625cb3718772ef44cb192d3f56f1a81243a7a6db2d14e84bbd5082848ebc19374bfd494b4f3d1bd28d689 +DIST thunderbird-128.10.2esr-uk.xpi 864132 BLAKE2B 5c158992960087f289f3a284b1e8e891b8317e1b9fc2b32949be1ee5e8b4b6313b008ed2bc2ddf91ca2989c2c999dcb4524a8124d7b2af883515409c912ae2b2 SHA512 90550e053ffa28c57bd231354eb315684280d26b833fa212e4e3ec4953ed1628fa1c04e84316ab58a886f7d6643e19d808efa152e3979913ad4ca6676b2d3c4d +DIST thunderbird-128.10.2esr-uz.xpi 589342 BLAKE2B c5ee5996e1bc007ef152e5095b41ffbf6ce201be93d3470f7f4abc864546345bc4c0aad04abfd6a39dadf984bcb5ec172e821e4ab44eae18bb525d64f8d4c7bc SHA512 779ab0ceaa06c4af0c4f83a36aed0fb3e0e29bae74d788e71c0d69f9350581c81ae5771abc9dccd4e760bcd0fce0cb1581bb2e08f083ad16bf28f65003b3413e +DIST thunderbird-128.10.2esr-vi.xpi 790627 BLAKE2B a22fd47014016672741c4a22bf19ecf1d934d956b880bdbff8c97c3704043cce33245ff3911b69c6208e2f6a6c38acb5cff293971f24ab81553a09645c71ceda SHA512 9b049d46980e18eee65c1512fc5fd0d3a69ccd42e572a897ec1331e69b1396c79e7bde53dba4fd5136637b6c6209795b800ee6ed75ebfcaff9e8467e3a7c094c +DIST thunderbird-128.10.2esr-zh-CN.xpi 790964 BLAKE2B f432ad4896332e1f632f691e66d6ea0bfe0b6ef6e87533cdfddfb97d1d4364cdff29412caecda3ee8483252de676d3ad58d79a83263f9907d06445bd47013e77 SHA512 64ddde62580b9d09fd64486d39bffa1e0bb9d4d6614357fde401203d5cbe8745c5133b4dda806544cf33865dd6d56ba6b9487101f7738d8123cbed12cb4c8c00 +DIST thunderbird-128.10.2esr-zh-TW.xpi 794258 BLAKE2B f2faf37d914c9c98dc3672f497a24e9a37b58a5624c23fb76db374f4b0c49df64bfc36d2c67ea6f26d63ef142fb2a1819c4d38474b3226521417cf8170463d5f SHA512 a94eac21587162f18d6ea84ce04317ce253795ce65362a3b5488291bd66dc2d1d43eee1f2fdc129c871aae65f3d84e5f98c77ae2659bb10ba2cc1aa0d182caf4 +DIST thunderbird-128.10.2esr.source.tar.xz 674082824 BLAKE2B 13e873607c312cf5521420db073108e4bc2d7cfd24a2765883ec8bd5b72cd5eaed027000cbe337117b0cf6949c7ea58dcea93cdc1f4690bd1c8417024f0c587c SHA512 2783ebbe89d7517099620bb537f4b9a4f85f9adf22c4c747b7989fced9fa4dada3bb05cf0c52eb460bd9700f85047a8689f59124956fdea24de7f6f668a087e5 DIST thunderbird-138.0.1-af.xpi 315687 BLAKE2B 7e46f99a8662119f8df95a3662adb7ff574e4541a4a26d5c0c705a4616ae83a096a76e8bd530967b456345b2c3f4b069c9dbc28cdbabf601e92381ff07f53527 SHA512 0cfa72fb6ec27db137f020941da2eb5e444ed7cb3ae0c5060b32a7b456476d60d4864a2f0f564ac8cdad31cc753b5f62b5a443f48854302b9b0b4602059412a0 DIST thunderbird-138.0.1-ar.xpi 432652 BLAKE2B 094ea38d277f6731427f1e572fbebac6df7a7fc1518a1bde7aef0a2b25e51f0192f5c301b479888ba577854a2e6b000350219dc2ab3f52fca086eacd04783625 SHA512 c9f5fe598968c6246f9ed0442c42a9f140e4aa7eeb8849d13f313f5c6f953467442c63f4edffdb5fcdf02ebfbfd1d8667e98be8515d0189c6e3d3f9d8bcd29d6 DIST thunderbird-138.0.1-ast.xpi 341394 BLAKE2B 5d54b5793efe1ca83a477d55b4c1a8aabed37d757fe973fe52b6101cde1662aaed20604cc22cb0fa7abd8b94b7da9d3bf047f9315f5d0c2f605d4ebaba0577f4 SHA512 a5884ac3164c3bbd2c6a95899f5e7fdf5171661c0d65fd04e899d29ccd24e97e46a899373104bd9e19a47617be494be716dee699782161ec42a9ca482ea1af98 diff --git a/mail-client/thunderbird/thunderbird-128.10.2.ebuild b/mail-client/thunderbird/thunderbird-128.10.2.ebuild new file mode 100644 index 0000000000000..1e1f68d257b6e --- /dev/null +++ b/mail-client/thunderbird/thunderbird-128.10.2.ebuild @@ -0,0 +1,1171 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-11.tar.xz" + +LLVM_COMPAT=( 18 19 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +RUST_MIN_VER="1.77.1" +RUST_NEEDS_LLVM=1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr. +MOZ_ESR=yes + +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-r1 multiprocessing \ + optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +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[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +IUSE="+clang +dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +rust-extensions +system-librnp" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + rust-extensions? ( dbus ) + wayland? ( dbus ) + wifi? ( dbus )" + +TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird ) + !system-librnp? ( dev-libs/jsoncpp ) + system-librnp? ( >=dev-util/librnp-0.17.1 )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + 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 + ) + !X? ( + || ( + gui-wm/tinywl + &2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + 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}" +} + +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' + + 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 debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="6800M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]] ; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="6800M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + 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 + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + 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 + + export use_lto +} + +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} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # 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 checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # 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" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF 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-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-js-shell \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --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-ffi \ + --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 '' --enable-update-channel=${update_channel} + + if ! use x86 ; 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, since it's not activated automatically via "known arches" list. + # Update 128.1.0: Disable jit on riscv (this line can be blanked to disable by default), + # bgo#937867. + use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-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_enable rust-extensions thunderbird-rust + + 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" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + 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-x11-only + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + 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 + + 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 + + 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 + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + 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*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # 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 + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + # 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 [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; 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 llvm-core/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-r1.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # 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 + + # 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 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 exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + 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:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die +} + +pkg_postinst() { + xdg_pkg_postinst + + 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 +}