From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id C825C158176 for ; Fri, 17 Oct 2025 14:22:46 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id B2F8E3416C5 for ; Fri, 17 Oct 2025 14:22:46 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id A8C0F1104B5; Fri, 17 Oct 2025 14:22:45 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 9F4831104B5 for ; Fri, 17 Oct 2025 14:22:45 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0DB5934101D for ; Fri, 17 Oct 2025 14:22:45 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 707DE1290 for ; Fri, 17 Oct 2025 14:22:43 +0000 (UTC) From: "Joonas Niilola" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Joonas Niilola" Message-ID: <1760710897.8a205c1b6e91a1f81d9e76bc802308438b79a93a.juippis@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: mail-client/thunderbird/ X-VCS-Repository: repo/gentoo X-VCS-Files: mail-client/thunderbird/Manifest mail-client/thunderbird/thunderbird-144.0.1.ebuild X-VCS-Directories: mail-client/thunderbird/ X-VCS-Committer: juippis X-VCS-Committer-Name: Joonas Niilola X-VCS-Revision: 8a205c1b6e91a1f81d9e76bc802308438b79a93a X-VCS-Branch: master Date: Fri, 17 Oct 2025 14:22:43 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: b5392853-bdf4-4209-aea7-c9c95b3352bd X-Archives-Hash: f39cb9ad24c3c51154eb6be036cdf841 commit: 8a205c1b6e91a1f81d9e76bc802308438b79a93a Author: Joonas Niilola gentoo org> AuthorDate: Fri Oct 17 14:21:37 2025 +0000 Commit: Joonas Niilola gentoo org> CommitDate: Fri Oct 17 14:21:37 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8a205c1b mail-client/thunderbird: add 144.0.1 Signed-off-by: Joonas Niilola gentoo.org> mail-client/thunderbird/Manifest | 65 ++ mail-client/thunderbird/thunderbird-144.0.1.ebuild | 1155 ++++++++++++++++++++ 2 files changed, 1220 insertions(+) diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest index 873129df6505..7b1edac6b362 100644 --- a/mail-client/thunderbird/Manifest +++ b/mail-client/thunderbird/Manifest @@ -262,4 +262,69 @@ DIST thunderbird-144.0-uz.xpi 355482 BLAKE2B ecc1b8fc57707ac1186ae86acd7e7c9acae DIST thunderbird-144.0-vi.xpi 522915 BLAKE2B 213a470b0da51be434ce910f2ac83d52a22148156908ad7f159394e1dea23e6afb44171c9b9e0e6e52a81a1ff3cd23b275fd100a962c37577d654e5cb160ee4e SHA512 43fa5ebf1e8e701ed5c38d80bf79553f10457d4a60ba56b7fc89f57d1a8b689942f9d6b83cf016f51ba00063776b6b603456d20da15b4642114fbbb95e39845b DIST thunderbird-144.0-zh-CN.xpi 511832 BLAKE2B b1d6bf2899b12f6f80ac0dd79e484c49c9e837a11c8c638fa1bc6918c8d360767b6679046795d4c7eed6b4efa63ee0e40acfa5979d9661b80d1668e46a6e2969 SHA512 f39bf97da2765610e33eeca5d0dc7b887eb7130212e64e5e0802a94d225f9200a48642062855afcdb86668af8eb4c598693009adbfeb1f7c22dbeb93ff83489b DIST thunderbird-144.0-zh-TW.xpi 515424 BLAKE2B 66ddb28260f15abc1c3703d34e45ad341fb487cf5a24b287e34d0117ae2670e4744aa5afba9f526e67669a9420e4bb54661af5b75fa886605b9f5cc05bbc9e7f SHA512 cd58b523ff18b550bc62b0f5825917d297090a86c3b6f4fba0c746513e5d86f69f7dc7a33497d9bc2eaf98165d8d1c974d2d9c3520ddb40395424ab36a74749f +DIST thunderbird-144.0.1-af.xpi 315658 BLAKE2B bb0c198c949bd5d2cc69ced273a295d93d705f4b7cc5070b94065a69f7391bd415697dfcdd8902b294c4fcea6ff3cef36ff0070d51e2eee96e730614264f1efd SHA512 bd92cb7eb90a1d8effcd58d51dcea40ca9de1fcc10c11bd7f8b92a48fbb5e40785ee7e34031d9fdd531943af95722cb9a9b85f94bed6d7953ea85936d653ede6 +DIST thunderbird-144.0.1-ar.xpi 436469 BLAKE2B d7504369150bca69b6329ae626be46ba662850ebb46eb91308a48b03252572a0d95f16e604811b4c7c024f952459eafd4bb3251fafce3bcd0df160729029a7d4 SHA512 b3ccc173e6d31ca782731232396b4364c007c37637723b25fd4d36a763e4f50be8f0e367ca128fff5769c7d77a8a5bc59181a626532b17ccbd9dc6c811d9d0c8 +DIST thunderbird-144.0.1-ast.xpi 339889 BLAKE2B 4c67b45ddc15f653b550342aa02f6b204031007ec341167ba234f0131d546d4bc6f38ff4c6a2f6cd728e79ff4b1171bceeaadadbb8a957c991c92b9e0c83d0b0 SHA512 b31e2bebb8cb9152f7a4b028c1c957e846d225e46bc340a3db7d6cd6db43a84469b5a9914929f15884a11a8a1b8d328761bdf82ece06ae6704c80c50437aca1b +DIST thunderbird-144.0.1-be.xpi 522822 BLAKE2B 0afaa9ad0e056644bb5663619466c353481acb2d4260096ffa1690ade217c5efb0c92b73c3b4ac7171efe59d6b91fde7deabaa5ea4261bcf55e2e18b6aed701e SHA512 e8b7527e66d7dbd215669b0f2757fccbf6a679ea0d8fd964635aba42b3dd996d5715e5740c82d8ae2663c99753d115e1ded99a163d4f3dfe5cfa851bf547ac0a +DIST thunderbird-144.0.1-bg.xpi 542318 BLAKE2B 122707151b3359ecce44946a8850e11743437d085f15a564847da53dff033e23770d87776e9ba9262bfa670dce6ffb33ed1f2e9a71d8051db67d8989e8e1d2f7 SHA512 36f06668843f1331fbe67fd704925575470276b1d6fabb8d8c90f298b1e61b230d775e2f9fee16091366d071d17aea60ca59dde944d2d20d794711abdcfc1c92 +DIST thunderbird-144.0.1-br.xpi 403218 BLAKE2B 519a45d6eb272d5c5421ca6ffdb6b2f3e46599b1b5897c76818fcde08c332b84f5b2b98c582bb4328a440d2f9f6c41dfc49d4c6fe82170da6e36fc0db2af35b8 SHA512 f01c8b60ca38226ce3229c014d618849b96d948ae4fc9b76cd039f24e9dbf77823afa7f00ac5f8eb6d9eaf56599ac27fd6b2768e64c6e10de2c20b9393b4769f +DIST thunderbird-144.0.1-ca.xpi 440924 BLAKE2B bf5acc55525a42a39bacfcaa12e88b50edf7e4cffe46a661cd5677dccdde069ea3bdd30476166b48ba45c55a3521a74a21133f1eaaebd45990dd95e8b91dc950 SHA512 81ee7ffb14dccf1849a22a6b9f905d53aaec4c09cc3dca1fe743146359f273a786aeada5d8949bb9f67ef779210b43715f58c45081f49afa96e8571457c2a6fa +DIST thunderbird-144.0.1-cak.xpi 417855 BLAKE2B ec8acbfed08db2f8d2fa2aeb8d5b83dcba72ea7975aed238cc169cdf8b3c535d6702b2633b719d08e3ed257a119dcbd37cd565d280bbe10e33113b592a2645de SHA512 7715f6a14c570f7ba827d3ef53e26fa125fb24f2b32b9e5e6942f61457c53de0ccc25835dfc81775936365bcaed9d92638f7868483a3aeb384606061482cfc2e +DIST thunderbird-144.0.1-cs.xpi 524093 BLAKE2B 9aff5affcf4a1cdabc88728ccf2dedb8edc19addb9a2393da7e1b0b33db6564764c05c1d982cafed6f3f1774d624ce113085d376e8709be74c0a0c1c97ddd385 SHA512 a6e5d88c542167ebd5e6b013ef1fbfd310aec584bf80a3a79d66cd2d701be0551e23c3a75c49ce6671cdf2127f1d54d731b885255905d9c8c9121fe289cb4d63 +DIST thunderbird-144.0.1-cy.xpi 491998 BLAKE2B 1b2dae4583ba4341207d2736a3fc6ee4859a6741f58556341c336e5ecfad3e0d95c3b3201fb5c6d2169dcbf7bee6c14804d58244b4ced3a8ed484b526aa14241 SHA512 f01ad57240ded4329b30cecaf62ea77ba79399fa617382497ead355b3cc3c59eb7671607208fb5fd2a22f2810878b27c99b953c1888d77cc1a14b055f31e820c +DIST thunderbird-144.0.1-da.xpi 479543 BLAKE2B 77cccef5b0395be1f7d493f1ea33308c90c119f646c517d0537f748917792d82cb24f4a982addddc0ce132cff71860626b66d1d2f472b4cc4a7a815e2beeb340 SHA512 940f03ebf68c2504046d740befee6ad9114ed3f92534660de4d9098865ff09374b30b6b3aab64596e65497338b9bd0b71e90e34520594849a0088e696dbc3b7e +DIST thunderbird-144.0.1-de.xpi 509373 BLAKE2B 55aa9949ca65f71914493bc1036a078d7770088a728be80ead36c3de8e333e177ef824f611ac02a613904cd001e215d4694c13432173cca8a4a8debccca85736 SHA512 daf0bf3342601ca5f46b8914f889a1f3949406a11e992719013fcd5a2442897da34770fc9911abbac0aa075a920a136fc0dbd09420380ac620539e4bb87bf0c2 +DIST thunderbird-144.0.1-dsb.xpi 522257 BLAKE2B e3ccad70c1968c198c4ae351bad5895fac6e968cc7fbc623ab7807fde48012d38604bb138bedaf7e1623aa1e6d2c35f4c8adb565dfbb5d6e78ffb5ee8bc45275 SHA512 ec1ea0f1127b31a13b47ae0e90c299fd215acd20d46baf9e056bceec0cdec93a47e9f6e70f39e8a7d4a67bfd6f92e611adab7c55829088330c61c83c42e4dd0d +DIST thunderbird-144.0.1-el.xpi 613759 BLAKE2B b5c7e851673fa91c8d93f2364c9b87d541ebc955505a8528b1a6372df78af66f9c5a65b8f387d109bd55c44da047b4375f3571e13744d6659dbbe10418f32b6d SHA512 a78cb274237cc1fe5e4b8a1167cd5efa916316176265a3c87d59bd50693c732e41b81e9217883d3b63df29d6ec31463c54dfa7cacbe098756fd1b963b08bc9bb +DIST thunderbird-144.0.1-en-CA.xpi 454530 BLAKE2B e2a5901ee7fe03fa7f8c4b0d598136b69c26430cbad67d9690a18fdbcd9cde9a2d106d19aabfee69635a01982f82c6e27268d6a313b624f8f8ee8732df86645f SHA512 e8060bf08bc7cecb3565db94c8d9641fc416ef78c9f14a633a559e30e76b689c79435d3ece804938371939bc7803083a9904cbbfc039c11425d961dd28f08240 +DIST thunderbird-144.0.1-en-GB.xpi 455918 BLAKE2B cb8223f9ff63de3477fc8dc09d4a09fc1314de8774afe7515351da0f6d4237ca6126197220ca2147916fb89f98bd736498a72c77a9d54a236e51d2688719ed45 SHA512 82e64874a7b4be024bc533dcc4f018187fa324d837b91f578ad63ac164060ffd4482be91c7b7c83f442dcee1560d516f0dd2b471c4d56feb49befa3a2d6da6e1 +DIST thunderbird-144.0.1-es-AR.xpi 499443 BLAKE2B 266b30f791f8ddb0888669e4f407e259e7efbbc95538f91caa7f00bb2fa9999de26f1a48b437680131bf7fb121ec7fc9696dcc433bbd2963fe8e5c6db252ad9d SHA512 5028ba1c9af9a57de1666ee81520cade23ac3c8b8e2f48052958208224168185af9dcc91108db9316556bfd35886d5cb3a146bac3216781acd428c8b7e1b0a90 +DIST thunderbird-144.0.1-es-ES.xpi 501079 BLAKE2B 1b1eaeedd4aa09681f2a53a760d02a147d65c774ac1ad6d03efd80001120a11147442db26d251c7b5ad890a176c39b5c8ec7c1d71e19410dd05afafed11ff8e5 SHA512 1d8e8619fa9064dcb96dfc5f1fd7eefa0a6f8e33890077d3e1332e11a1bb71d7ca34bd92cda15dcc38d4d9f2b22fa098ed2f14c8ae3ada842f2f919a60c5d458 +DIST thunderbird-144.0.1-es-MX.xpi 489466 BLAKE2B f846652720dd529eb909497be26efc4689b30e407391ed82ad211b2c52998a9ff9ed7ee330dd94929562ff78128dd3457262950a3a54165c95b44e8e22d5436e SHA512 dd1a89bb19c88ec6db40aad9320e211aacee86089d732f5b07c35edf967f6f1aa39bc30410b21ddd6a4d10a0c6e59416cd99b66a72db594dfe7fd7d5b68570a2 +DIST thunderbird-144.0.1-et.xpi 443870 BLAKE2B ace950d7d95fe6abf74a2d3717bada7216542088b938fe54e03668922cc4c0a9ab8e487bd6ac3ac5b1ef2544b7490e3a67bcfbe73f1d8840fd0668b410dd13ac SHA512 dfd7e0c31d1ef17f651b1014366eccfea0513a2ed201ff655d40c178300444745f3e257211d00b425e9417ca4b8f8247fccfe0c0c49a38a8d455b01a94a282aa +DIST thunderbird-144.0.1-eu.xpi 476295 BLAKE2B 4d5c057ee75741e32cbcee4db05512cb8abd9aeacf62c41692bb2403236a9868a737f0f2794ae486ce13ca0bcd3963e82f2d5a33faf3d0404ba196d0e8befbc0 SHA512 c49f3eeab0866709c21a1a88e95b6137859ef50391e5284f5b47fdb9ff0246f95285dcf167955980efee27e4e5113e0b75cb4a81ac595cbd996f72a811fe5476 +DIST thunderbird-144.0.1-fi.xpi 478848 BLAKE2B f7bdb281b54842840505a87be086378b817615ce80fa6ace0717fbb46a6373fd39c45078b4bffc5a459ce222e3c36bca96b6a7fd616e4fc4061026c57dd6bcde SHA512 75be7d352c25420c53486f1188624df3f15d3d9a739733167cc0f10a79a1726f6f10ce450e24725febe9e5c3de2ef64b7ff1e744a306e173196c35de27ccc8d2 +DIST thunderbird-144.0.1-fr.xpi 512563 BLAKE2B b8a6f3644313ec96c02d2240cfb045d3e39db7f4d1fac90c869e965705d4d1dfd3eb6c592aea47f5bae6dffd2b7855aa089a959b3c89930cb4141eb497e54ffd SHA512 4280e0814c7580290ed726934d2170e4f0c38e124b741b76592d213c8d59475741a33fd0e02d6c0fc9bd8a27634b43aeaf6a9e0aa0b43c91d7d95e9373f9cd5e +DIST thunderbird-144.0.1-fy-NL.xpi 494866 BLAKE2B 97deba2a78bc501e18fd82abe5850e93363b1aff31c63b849cd413346326d7cb9a8ad52b42f150500f26533d1dfd9a59172fdfdf990c573c403c367d26a351ef SHA512 d2061bcd9c0875b3bf1fec4e92ca1c687a8460711d1daf3b4fba154943cf9f66bd8bf7f1a759e912038eabec89398e39ca96e0fa087653c5e3247a2f6e639edf +DIST thunderbird-144.0.1-ga-IE.xpi 377002 BLAKE2B 13b276144322e683c0cf9efe2368b55fec4d0de2e6a66c50c7551c8ab3078cfe071cf42c91cb37405bc3219c01f4479462a4207c215950ba73cc96db1e4067ca SHA512 7bad2092b2a170e3321bb2c3cf0b705bdd70ebf6b9a80bbc168e0db5a9b65f95d17f49d4a5636363c09c59f596e40e027ade40db6245e56333520b3f7bca84c4 +DIST thunderbird-144.0.1-gd.xpi 462262 BLAKE2B 367c6dbb54e8c44e98f01b53fb760a8abd2ec781511ba08fc6d068b880d94d1f14e8f02bc4497b70e04f168ed51ac4911480ea3bda9dd4c9a5bc3d9855da5456 SHA512 a98f62895487dec8ca4fb6ecc7033e9e4b8af3d5d3abd13126e33a69d825c8ba784e7fa75b55d8e7c1fea882a852bd427a9d35da3804282a8453b17e9c0bf8d2 +DIST thunderbird-144.0.1-gl.xpi 491795 BLAKE2B d4803cf23ea75e014b9c8dd64277fb57a714a914096af7922c2229d60a30c73590e7c16fc94806d00f5e922609600e286c2e0b023c57c2da98a317562e2ed718 SHA512 61cd2cc28dcec12ff51b5ec07a89869e184852826e91325ef57935d6b6fa810f7d1b81fc611342ceb86d2ced7c0a84c673cc8e7b25c71b92f643f6685415084f +DIST thunderbird-144.0.1-he.xpi 443224 BLAKE2B 494a014590837af8eb7266a482074ab2514c3198f3b7effb1a137c14a06f612bdb5b932c73e3b0ca3b1aa29ec4bac3408719e128d728e9234df5dd252245687d SHA512 0858572164408d63675b2e42f71a433fd6a43b6dce17e4437c21f7e3f48e2f6157a00b5db406105cc4667aa4b9d00e361831a251b051c8e8132e543aa2080e7e +DIST thunderbird-144.0.1-hr.xpi 470723 BLAKE2B bf890b611a591b118595559222821e1abdc31bf7bb66074bdfa77e8a8a16e073165152437e6ee864d22af60c26a5c002d246300548e3c3371648562bb5e0af12 SHA512 c368abd49b62da7c84a44d9cb5090c081ddf9cc77e059fe476878ab170402af08731523e162017e46c6f42c0499296420ace7bb9f2f78c3eaea54f35bc5025b3 +DIST thunderbird-144.0.1-hsb.xpi 519288 BLAKE2B 92844f17034e138037fbbf24982b80b9b8bc13f8eef6aa83480b1fe43a6f5fda9bd66db65a50a874aa952b261b91b2cbd2d189b148434366d2345a39f2cd9311 SHA512 1659010cd1449c877b3bf9e385ca4f85a2b68d329c9ee21e1bba53ecac06eec72268f9d4da665f2b7ca2ea234213f82f26b10f7f0437ccd567c0bfd06f704851 +DIST thunderbird-144.0.1-hu.xpi 521442 BLAKE2B eaf11424b66e460afdcd2cb49f38f2aa429dfb7823610c26e37d49a07ae2ea3f708ce9a057dce5ee19047da0cf1b91b09174af7094956d5ea89619a4c61730c1 SHA512 2a3e9fe7db9cee8ea6d367176c5676a547a6f01c1d1464010042a09e8376153453b8a1bd0f409e0271e1d792ab6210dd1060268e2c1d857c537da478bae0ee7f +DIST thunderbird-144.0.1-id.xpi 467932 BLAKE2B babaf9ebb34f85894debf60080f1df6806951196d0b4ba6c6a361b6322c72b737aab81af2d2986d318f78d96116ee84f146c8dc63711b768d97c90b3f13abad0 SHA512 e7f025940e8508098f702032401b50a1b448b901f0b020da837058e1da5e62cef5bee825089725197f93b08d4020672900ff70e3290d283cd11136f6325477f5 +DIST thunderbird-144.0.1-is.xpi 485417 BLAKE2B b79be04b00ff3f2cc493b971b4c3e56b6d6a02a2cf508c433d20154315f44e88c7ce516b3300c432311e82cc4696d84b416d8d0e9b2b2a2e3717ad8aa75d7a8c SHA512 5cdcc799bffacf40a3cbb6fd14f8bcae39b7a5ad6c310f295c522fcfd3c4a587cc1ac28fc0f574bd741f059ff99e3729735d74a5ab3c93e23e61ffb4ea71c679 +DIST thunderbird-144.0.1-it.xpi 492603 BLAKE2B 47f1cbf94f6a998ee7e8bc639fc4670bc44a23f3fd785c51292e0c83b4490e0da7b998cdad85f17049f41dcaa42b5e3cd1c53348284463c069ebec8ce0de5f4d SHA512 a5db19ac84084abe29b2423acd15a03b840b3031e689b61c60ba4b273cc5fcbc8f0eee893495300b4f4c47be22c6afb87622dbcc231d050af0382b7fe152bcfe +DIST thunderbird-144.0.1-ja.xpi 543511 BLAKE2B 02bec1806e65f74aea58287939edf88554ca2b1617233aec805dbd9f712339df34abe25410821750c0c07e5d675ebc0764cf1a7f96ca4f47368a3be0cb92ff35 SHA512 104202c55dbfacd596e1ff953d8d8b8dc93893b55e698717c51efb9866829b829f2338dab00e46e855068de681accb5bb166bc45aafe0e13ee29678fe5eed345 +DIST thunderbird-144.0.1-ka.xpi 559509 BLAKE2B 657bbd8ad3e3cbc2f350c9ff4c7c715047060e9816e8232fd03ecaf15261efd09eeb183374c482933ff7391b6389bfbb0734f9cd903df0dfa1ef8a039545afba SHA512 a730aaf18e758706fb75aab905c3ca53626eb674a07c67f6c0095cad29d691cbe4f7309ac9c4f921ccedce89517e854e6818cfbd3ba6cdec206dd99b77c800b8 +DIST thunderbird-144.0.1-kab.xpi 471392 BLAKE2B 08e875f7531956de1da396332efd807ea29001af620dcae118f7bc9964bd8fdddcd8b93d6600d153d970f0f9b67fb8edb63c50ebfcfed96b4a6b7bc4135a5b28 SHA512 fecf2e3465040d51a4e2a2f907039b595ae5bec96428376cdcfdf7f83bcc039004947fa0f03812a01fecb272137fc56351f09bd255ea7ba0b89f0b01407a1d29 +DIST thunderbird-144.0.1-kk.xpi 577609 BLAKE2B 80fdefbb79c925965966ec9b67032b6485b041ecf30c5fca3ae9d08ef356fd91f78a33486a7c52eccd3e80372222074da21235f10d29f65c6a90806abf33f139 SHA512 7eeb56332a7b4facd31c12288e72b5b46254055e6cd3f72c2ac4400e786df9abd7c2ae811e7da2cef59b18179399d347442f5c68d9d7a6ea8f3bce190a22329a +DIST thunderbird-144.0.1-ko.xpi 519211 BLAKE2B 89010ec46a81ca18ed7d7ba580eeda28a7183b97aaa68ea374a380136983b064fb22524cd9732a1e5cf0e28646f2725746d77268088eb5a35c1c95c5e435f370 SHA512 152d32f4b6338aaa988698ea4368d7bcd6b3c05f94e16739e05745e90bff450192eaeb4df5833ab08b3b17c87f1611fa793d160f1d316b930f4589ae48a18cb6 +DIST thunderbird-144.0.1-lt.xpi 453901 BLAKE2B b6205a04a69cae0dde66cab6e03e00a436b30f733bad211de0329fa1e9b8c286c5611dd09fa755c3bd960b6b3d324ef850f2cf4289dd62f5821a2ab6e18c57bf SHA512 f99db9f56d238257cfc85bba6e0df4efe866b6d5abaa39c5f853c1c25828c5a5f8f66bb14b7374e26b8c5032eacda1713138975192b37bfc6c9554aebb570b34 +DIST thunderbird-144.0.1-lv.xpi 392220 BLAKE2B 73f242e9b6df1698e414a949f0efc30976613a55f263817e0738350b1eb1458ce2a10be8e31c503b919d433ca6b5c7d9580ad4382a905d1b14fd486d7ac7206b SHA512 17dea1a2d5084d8075ba36b7453a66be74dbb336f62eadbd3b3b149a5166b5a04cd0903582b0f3ab3ad27effe420864baabb61e52dfbf64c81e37b5886d5fe0b +DIST thunderbird-144.0.1-ms.xpi 352559 BLAKE2B 3a617ea03db276decee3614355b21b0c74d1f68d95ce37d5d8f17250abe3c95b493b85d4136e98325f2f0d4136cb73c7d912757a0d674b3a620c4246a9017b90 SHA512 d13bbf8256736ecb56bc884e4f58b990620e232a6cdf75ead5412fb30ea9166b5506dc15930bdbe460698b148df745960729dda6d2503b2bb180ad94ba6e76ba +DIST thunderbird-144.0.1-nb-NO.xpi 480219 BLAKE2B 59631d7c4afef8cd245f43ded6dbca9ab97ff05564a406f18fc73c1bb9cb4a20859d13091f621f1397945bf06ec1a4dd9c1f29c8bdb42657a8373b4598fc8f3b SHA512 c24d7d07e8860ec0230e2f06bc37cc813a645a98dff2ecb4f59def376ca94a637052b79aee2313d6f2a81fc1bcaebfa1d04969e7318397c5d75afc6b2d2e297d +DIST thunderbird-144.0.1-nl.xpi 486177 BLAKE2B c7ba05c9852a774d4a6558f876c2a3eba0d34b6274c32f0f5978244e7dadbe32f2c6a3a2213c3d5f97c9d8105d51084579fb155bee1d1a325c6aac537899b591 SHA512 776d09d40c03a80a253cfa32d08b0c227ff4e85020948d9307f7b5de3bca43a62bfa7ce356f7c4e702b90bd890050959401dcbaa46a9b1c33bd0cd636c7343e4 +DIST thunderbird-144.0.1-nn-NO.xpi 483698 BLAKE2B 5440fa2729e2e62cb8a2be41973b7c65ce89d80abc7a96af1fb0f38be05f54ec1f61affa7dde39c40933c41cb1118dd46bd1e29546ff67d2c3ad38459ebd6e9d SHA512 6bd1bc5f8107fe6a842a74a36d8b2f60f1504bd42cb18105a6cc1a84b258addababc85dc6a30db2abe332c5a8be0956312bbb1afaf40bb3461a779f845062cb1 +DIST thunderbird-144.0.1-pa-IN.xpi 435512 BLAKE2B d5e55e43954ff45aa9b6d10473fc8293c34380f75294853046a9026b49fae79ce83d555dec6bf5265ca206b357dce0b2f067020530ddfb00727df4d1cde8fd31 SHA512 0cb1d840ae11097526a540a3e6764a859d189839081f8a6d1041c40f7ac177491ccb7c9ea913d2fca956acca2f78c9d29021cb03f8622f05c72caf43f7c1d9d2 +DIST thunderbird-144.0.1-pl.xpi 518948 BLAKE2B 29da3e93e30546c065b3cc2bc17b369c7d0059214fc39684a169becf57732dd6a73a0472517c47dc1e7501495cd79b7377b436b3e6d65da056fec582e6edcfce SHA512 48916bbbc424c681cdb33aa63465433f7258b9c43c65ff4a60b43715b61f1e5f3b4e811bc0f32600786acc67e3d3e20d553c00513cdb847d2dd34f0cdcc6d017 +DIST thunderbird-144.0.1-pt-BR.xpi 493860 BLAKE2B b87f45bb140e2800851a57bea1cc690017418e9393ff374c730f107405e46ceeaf2a6ee72406f2146454cac0d677d83a523704046535e7ac0d014ef17b87499c SHA512 8c04f3a5096cf4e6e6713428269605c174eb4e56676a4d259bf8f7bb85d7ffa3777124a11155e11ff07e5e6264c83042906de28c3ea11b9e53690d3b74a63c65 +DIST thunderbird-144.0.1-pt-PT.xpi 488524 BLAKE2B adc3042285373f6ff399844bea389d5093b74bc1c34fec86f556cd973dbdc9bdcb2f9925f9c507557cc5ad7d89379a66f96affc68ba19b6b3f35fbec66d94f10 SHA512 cf37d4c5b2ab82fd12f4e1d7999978ee11a0120a47f15dcc752f612a5104c772c9760e072b0bafda32ea6eaa911b8012d3c8651d1f5fcd8e9ee425cc16353c3a +DIST thunderbird-144.0.1-rm.xpi 490344 BLAKE2B 429fc9846ecd30a817a5f3c3f565a910b2a47ed03fd21ed1012a2ac2d012d63552f125162acdebd613e89127a66f89da118ba1b04946294dc4136a388ff8c567 SHA512 e4167dde8921b37ce9aa27e573565531f9bd2db0e74b07259107499e4c89f72e62f7f3c2d47b324bf1e1d39b06199604a484e735c0d7b09470411cf28f59299c +DIST thunderbird-144.0.1-ro.xpi 463390 BLAKE2B d338ddc26f4eefdb3fe2e93cbbc9353a566219763834aa83e01d5db1eb3de41e21d423ce1a3fa54dc781a23ad82bd9f5f573cce0ce6578266ea02b741704f94a SHA512 3fa33f0d9d0ea045f3f3451b4b41287b270ba68108fc46adff9afd335d24353d0c8d75dd57bbf490c97620e35bd419be00020ec8c7b457f44501e8cf066dc342 +DIST thunderbird-144.0.1-ru.xpi 598047 BLAKE2B 744e35ecbc4810e3aa38a66f8ad069512819ac19bcfb919e673f61f9703f5d58f1fe698358eb705eb2d375a041f5256434fba04128b337e63bc5c9e444dd5090 SHA512 8c178b0703c85e380de7d9a79808a505a13a8e673a56e9d47004382f7178cdddf61d3f684e2dbb5cb058ebfd000a09db1e7a3a53889a7fc2817dd9ecb23350e5 +DIST thunderbird-144.0.1-sk.xpi 523813 BLAKE2B c7a5d83b9751691f84ba8781af44ad55baf5b845e88710b9393c2c386eeefa5e3367a860d778dd348618901ea371e4e82fe4e50edeafe22e753b1e0eae708c3a SHA512 1a1c6b59fcccab4d441cf35672b54f209d875c4b7cc379a05a87a29b07784773bd3cb16fabc2ff37b60f24673e32c7af39fb15ad5cfa037953045304340e2d4a +DIST thunderbird-144.0.1-sl.xpi 489576 BLAKE2B 8118fec7d6e52273b11185538f0dd2dbaeac1df944ce129e7a3e8c0e8278bbfb44d5351366203b2a478b2cecdbe49f181e52a637aa077d0865d927d077488755 SHA512 ece9e8df3efc6342518d2096d96fd7e3a81e3cfa37c7678c6ad95313603cd846d942b03350ca63698da7b9a01a04699b1ad5fcfdc509360415d9777f9c114ade +DIST thunderbird-144.0.1-sq.xpi 504313 BLAKE2B 44a9c012117291b696bb1e0a6d91ef0867e5141c1da823ba44892c7e2ec7cd21e8e5b195aab6c80c707881c1e207f0a06e3468bc39df76e46d08ae9892723c42 SHA512 f455165c6b3b4d91da4f34567f6fabace434d97bd1e843183ac886c95ad70972659a54bc807701415d32316b5cd403fc63f180148148a007286617457c8b4a53 +DIST thunderbird-144.0.1-sr.xpi 496266 BLAKE2B bea4de01e122c7eb1a4a0aebe7910f6c71b89a92c1c510fc940f0f646675cf295c55a341fd2735b60b19e59259e1605d14ccac8b516f92adcc2af06c2a67fb3f SHA512 6a1ed4ca8490057ed1c5af52c6c8171575240d7c1ea4b349f894d097591de30a998fd905543ac90ed3551a8918a0d9c71077afa7ac60bdf78ecb87e83534a51b +DIST thunderbird-144.0.1-sv-SE.xpi 488506 BLAKE2B 3c2816bb4402de59d4014c365f09e857274bdb03a4cf09b1a7bf0629acdd193bf385cd3a69c6ee56fe20d482a2a81519e0ce7672b57645866b39a2943029ea9d SHA512 aeed56cba7db1e9c07c0bcfde0057d98862c2d9385f0d2eb3ae8c7ccfd977107e2e5f898d936858f449e71fbe3e23cb0e42fca91980095fca2f1db85e596c133 +DIST thunderbird-144.0.1-th.xpi 569582 BLAKE2B 98fc2ffc1712d76d9b181ce2963e6e6c07c48f373da6734d54bc3c4f1e2fcdcfa7add836f27c44ab39d74a86a2a0715c517a534557180468a657cae6a6668c03 SHA512 1317f7b2cd352cb884b884aaceaf8027fab43dcbd8d752a83d8529f0d78e5c5c95aed6c7ecd6718a097932b71c8b145a3b3e78ec81a3120ebdfb564ef53b5361 +DIST thunderbird-144.0.1-tr.xpi 499724 BLAKE2B dd65d898fca63d247028ca01fc1c0d85b19a4a348b89fab56a33ee5f56af1eb4f5a6a210257f0af71ebf148ed49ac599f917df9ff47fc05a6c2bd831c09fccb8 SHA512 e8be318715193f5e8246dd16ac24f26289bb3d3f1b867dca42b1cd9467c2b73c9789cb04755d2d928a951ae8af591b4917a55eaf8b3bd87768f67c8211b48eb9 +DIST thunderbird-144.0.1-uk.xpi 582672 BLAKE2B d0fd2f16fb56933abe9cc94351dc0c44a5fcdc5875d0d308488357fb870816810514d4568fe31e56877640a9610652adf509d24bb2cecb4dfa9ced8c8576e391 SHA512 8108f92e0c573c52d53210f54e79f7470982b1ca1e06770a9d6e2cb315a76732629954c21e72432c88d5ef1354df969fc1c58350f68b2a67f9f9c7a42b7b7911 +DIST thunderbird-144.0.1-uz.xpi 355480 BLAKE2B e0316cdc31a7a44447bd667214b135ff60e43464ad70ea276da749532ab88ce2521ecbd93145bbee0f9f8341aff2b69b6d9fd731caae8df19edf7881a429b368 SHA512 73ed894f2d6002663d9f1ef8d7c7b35a927619d8d58d0b55ab446a2dce2e8fb423b4d4d747e36a33b55e4402d78c638fa5c78726ffc80f78e41f173883463c4a +DIST thunderbird-144.0.1-vi.xpi 522914 BLAKE2B 2fc9a7841dcf8102c8e97800ad02d006003617e9637b56d8a0c2c6edba99646ed3f0d9529374afb74591e283eaf5a73d4c98c936ca224f0e5f7752b165067f7f SHA512 3e7bb52bf2bdf6fea12713b672c9c63a0ce0c0a962bd94e6ce7ac23c353e0b5bb17f0d090897ed09b06024fb2da879244a2306d03ab34504fa652298f31705c1 +DIST thunderbird-144.0.1-zh-CN.xpi 511831 BLAKE2B ffea3f5cba9957586d1459b7de5627c23a61dd2c2b38f6eb1281753810098e556ed873a20366ece07ef55ec31fe8e9d346b57d0ce5d6a8e42dbdca31d5933f7b SHA512 98a84ea781470d870424ffe4d8cae08b2ba1267bc5a15c2d94cd805a59cd68095e836aaa4756126fccdbf809e8c00e3b11c781773c725027d71338563b8032e1 +DIST thunderbird-144.0.1-zh-TW.xpi 515420 BLAKE2B 7649b3fe4d56640e85d15fa367b9ac19d5e5a0ce0d9c6e8043003b51566bd391a1db677e5da1ec75345169e130275b5370fdf6930a197140fa2b1dbba628b39e SHA512 ae454845e85a70a30758707c730c38313be0ed1a2d268b58ebb6083d0af6dc6b2c088fd5289c868962d76f127554e2ddc0701ea0b0778f4a388c7ea8da0aad76 +DIST thunderbird-144.0.1.source.tar.xz 774861288 BLAKE2B caca9857d87bfb14ca1ce8a0f6a28bde82d0af3ba9777b7b3c535f570d68cb071b7a69f37be0e246f3ed8291dce068b70e116d70ef9017b99ab4823fdca3bffe SHA512 e1859ecd247260c9303a335d14f51d2b80bca7fe0125c41cf6f6bdf1331072dcef490d75fba588b37db5410ce2e7084bbe1c8f568d40c46303891ae2bfbe431c DIST thunderbird-144.0.source.tar.xz 762262852 BLAKE2B 835bad05e2c4c4e04a94659c8e008002ddb9fdbef701f22677046799a45de0b71b2d9b139bc3ca728f2a19b9dd16b346876d4e144812ff1d4408dd36d6dcfe95 SHA512 8557262b5abe8f1445cf2f8714b2241b4a4ce007c5e81a1d4b199aafe55cdd660c88d3ad4c210b5f96b2a4a85ba3f90650f6d3adea0bc756a344079efc0e4ccc diff --git a/mail-client/thunderbird/thunderbird-144.0.1.ebuild b/mail-client/thunderbird/thunderbird-144.0.1.ebuild new file mode 100644 index 000000000000..e3d51e30d516 --- /dev/null +++ b/mail-client/thunderbird/thunderbird-144.0.1.ebuild @@ -0,0 +1,1155 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-144-patches-02.tar.xz" + +LLVM_COMPAT=( 19 20 ) + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +RUST_MIN_VER="1.82.0" +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= + +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 check-reqs desktop eapi9-ver 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 ~loong ~ppc64 ~x86" + +IUSE="+clang 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-pipewire system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +system-librnp" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 )" + +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.27.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 + 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.116 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + =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-76.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-pipewire? ( media-video/pipewire:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + ) + ) + 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/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + jack? ( virtual/jack )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +llvm_check_deps() { + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/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 "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 + # 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="7400M" + 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="7400M" + 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#915651 and bmo#1988166 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + rm -v "${WORKDIR}"/firefox-patches/*bmo-1988166-musl-remove-nonexisting-system-header-req.patch || die + fi + + # Enable jpeg-xl only in Firefox. + rm -v "${WORKDIR}"/firefox-patches/*bgo-928126-enable-jxl.patch || die + + 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 loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-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" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-dbus \ + --enable-js-shell \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --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-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use loong ; 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 loong || use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + fi + + 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-pipewire + 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 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 loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/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 + + if ver_replacing -lt 136.0 ; then + elog "In this version of Thunderbird, upstream introduced an in-app notification" + elog "system. Setting pref 'mail.inappnotifications.enabled' to false and nullifying" + elog "'mail.inappnotifications.url' may help you avoid these messages, if you don't" + elog "wish to receive them." + 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 +}