commit: 7eea20cab7dd88130f5ace506b76e26f840a2dfd
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 14 11:52:09 2026 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jan 14 11:55:15 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7eea20ca
mail-client/thunderbird: add 147.0
- include a patch to remove nonexistent files from certain cargo checksums
(bmo#2006630),
- sync changes from firefox:rapid.
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
mail-client/thunderbird/Manifest | 66 ++
mail-client/thunderbird/thunderbird-147.0.ebuild | 1157 ++++++++++++++++++++++
2 files changed, 1223 insertions(+)
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 7bb6311c1806..1a2847c5e0ec 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -1,6 +1,7 @@
DIST firefox-139-loong-patches-02.tar.xz 3096 BLAKE2B
2e9c0f3dac780c808a13f70fe3808df9976898360b55113def97bf3594893166e0647c70ebc389b2d14fa2c2453fc1dd68aba20d92178670ef97d70c34205e1c
SHA512
e1244007290e2e15d14cf519e3ade6a4da06abe41c416de60569a11396609661cb62fb5b592e763cc079406699dc33d6a34851f71068f4d09bdf34021b035a59
DIST firefox-140esr-patches-04.tar.xz 124424 BLAKE2B
89fd2cedb67a9d82c339fed01b79c9c4b3f58051b68764121f982d4eba04d979c9d16238a7599fbab4f9d3965253f3ec4886f2da590b05116bc6ea0ee027e935
SHA512
b8c268fd5118007490edb7ef99f90148af4fa88ec7cdec03d028630476c85862e896b1ad3a6964215835f6f442aa71df96d6dd9aab632802773792bced8dc17b
DIST firefox-146-patches-01.tar.xz 10568 BLAKE2B
643ed4298d7ab2251ae1f813473a7b461aa386dfb72984e46201b22b6cb0f69f28e92b44a4783dda32a81b4b0dacbe8b47a25b9232481ecd79a19550e74e4812
SHA512
9e2474eedda1c2644ddcb0f9fd2d90ede764469337eab1267d3d4dbe8e3487bb519106449acf1da9798050d61a51e96a882f365e4587f88747161f6418203e4e
+DIST firefox-147-patches-01t.tar.xz 47372 BLAKE2B
27c8ec917b10b3ad0ab035cf98b0578acff26a627360ae4d74bcbaf1c8e1775a4d7fd4f0175787cb8f0abec71c0f9e23db18ececa890c387869c1cfe4964ccdb
SHA512
9cc23c92b442205314c044dff704ea33cc3f22d43a88d4c2f4bb0d2e21b89488c6b9935195339031729573c722493403ac845cbaddbbcf0a927e7d506f21b67c
DIST thunderbird-140.6.0esr-af.xpi 316217 BLAKE2B
c7238abeeca8275eeafa982c35d46816de5c0c0751f037f6acfc07833077c521a752946b56b1c3b92e756212be2105b8203b4172da6cfffb66f47d1f34f2aee7
SHA512
f7ae8f8ba1e12e85a6cade91d0520ef957f1ea4b8da086805aec9c5e2d22b0d3667b5437bd5a9177c9a7e4e4759e083e23ac4b6473a3858d98465073540d2148
DIST thunderbird-140.6.0esr-ar.xpi 436191 BLAKE2B
6a00d9f3b2a2985058dee6065c320b66d37a187f48be4d6ba7f970382a2ab564d12d1bb4babd2692572c7f1e7cb320e8d03e510814e295bb9c00a7eea1ab076e
SHA512
38c52544ff236113c57a1722e2767a2838a371bc93c2b028d0cc52e188bf407d35e99d37584d3c15fee465975e5f8d0c2489d987220e7016a9436f50f21bb903
DIST thunderbird-140.6.0esr-ast.xpi 340597 BLAKE2B
2e7eea3d13f0e84650f425d5ec8a4705ad78416f095726db60fd0f2cbfc0947e9b3b02439db7c7dae310f8fa8a92f63f24b2a47287f60f03b886e8124bc97510
SHA512
c479cf7a42b8698b520a6bd29490000d47c8be24d37b49b1344d797a2d80fabe9a42676403fa210cfd12d676695fbf90e09325b4ded1ad69f05fc68f1b4fd255
@@ -196,3 +197,68 @@ DIST thunderbird-146.0.1-zh-CN.xpi 513421 BLAKE2B
e74df18e649754cf5f72eb241836c6
DIST thunderbird-146.0.1-zh-TW.xpi 517243 BLAKE2B
1c52bcf03653370927fcc82bb3664a079468d352071d4bf69105b2a05164633584740e7b61717a6017bb78d0f90b2fae977f1bcf14bab6dd82ccb676696c3cbd
SHA512
051c8b0a55b8639c080e84a30f31fe09418e9fa877f3e659fa7c67e47ceced474dbb217b7b31af6d10cbf426a190439f747b1437875d8f54c6291f15c730654c
DIST thunderbird-146.0.1.source.tar.xz 781793608 BLAKE2B
4b3851dfd699c8652e65e96a64dc1659babcfa727c2931fc1392acccfc3fb7f555a69cfa152d37a538eacddc5230a2fc67fe2f91cb697e30c564e9da9593e71a
SHA512
8a3b2de246c7c597574fce596836c7ef7b24bd21573feb15c308003f34b82335ad865aa0f81b24d1669c8023c0448c0e273a63019aab13356b023c2e8adc2c47
DIST thunderbird-146.0.source.tar.xz 775218464 BLAKE2B
f45051ae82cf1b5c163619a28e8a356e4a32f86695d1a5f49f3137818dc13a3fa615dcf586484a8ac35d845c709cc9d1c194b4f8e8f5ebb8224958a9487b9d7a
SHA512
b135ba414f08e2867466e652c6bc5d2b9c60e047fe27e855e7373ab67940d7da8c6028b8467b0b449f6c87f13662375220b70a05570a87eb230e21ab5ed5a186
+DIST thunderbird-147.0-af.xpi 312140 BLAKE2B
a64fe3fcf2fbd31b611b8ac256c583f00dfe22570625d67ea9d09262a43d9f606027c0d48cec432b87c4375635c574158b71d81c732324345863894da6cc3caf
SHA512
f7359dd68984f2904270912703e6d14bece1af9cd100a8d0d886069951b99bed221247d3ab4edd6a8a90250bccc0ba28d7c33dcf47088cefe7b394187998463a
+DIST thunderbird-147.0-ar.xpi 434056 BLAKE2B
89fd64ed7d762c3968abede40a87f86dd7534e7889c69573bb1090aae2c6f3a59a1abc844b495364f6a631b2a4e79cffe307b7edd74308c5bd980934d2f510ec
SHA512
fb2f52b76f9630eb7f9373dd4bf1339daa0e9909e3f2f171596c3345eaeec992f547062b346ce0705980f8c79d3a3d37262dd960d55afaf1d9c53078ad74ef4f
+DIST thunderbird-147.0-ast.xpi 336204 BLAKE2B
b32e09d2bc3ef5cf0c156f107bb808f23a682b353323c4402c9a7d74a1843a18408bb3d64517048b765830494fbdf1609d52a67577c37bfa2b987bfb00ae6d50
SHA512
bc864cedc8d4a259fdaf6ff254369eff2ce9589a29102c3050d69e52c8013cf971a02030f07c2b55c66fdf35467f818aa06534736ba456de2ca3ab7e40678159
+DIST thunderbird-147.0-be.xpi 522285 BLAKE2B
7a106f1c40b11cd550c18adf075a937812c8c23750284bb9155e408f08c2b5e90002fe8bf64255def2088dea9983e623d2d1d209ebc06526fff6f68b955240e7
SHA512
3b09e50ca58282dbd53c7c31ce6fa0c2ccc1d89ebdefe8a91168416655896c5fb70177ba4a4826b7559cb78afa652134287a8f3218d853a2c78720cb8d4d5c8c
+DIST thunderbird-147.0-bg.xpi 543152 BLAKE2B
3e1f0e39a8eda767a490f7b1ef3085f6e2b8d351e673a7aee457a8a3bfdae95035ca48b5fd2c1ecd0cf244e7f86ac7e97be4a59140340ed442af6de04df31870
SHA512
1592dad0cad77f4d8710b95ba0282c6698168528e60643946dc517ae4e98c8e3fb0c12e19daf6a89fbb04885ada208b6e05881baed4d38a6435c0ae76ed82c17
+DIST thunderbird-147.0-br.xpi 401079 BLAKE2B
2946c7a3a02c2d3b7e1efa520c9ab714d83c65bd827d48c06301bb181124b44d85ee7a9ad083a4aa996f63709d7642d9058ac693075abdd4cdc317327ad85af3
SHA512
01b55b163283a6b756cbbf56c632e7d4b9efac96f9c0716be7022ed101edbf316f32727dede4045b86d6e56985d6848dd3158d30498bf40bac4861c9654f3087
+DIST thunderbird-147.0-ca.xpi 438291 BLAKE2B
0b41b81e5fb101b75950a91eecabd297d75c556daed6826e7298d30262b29da2ee943456e751891d82f60fdba78c35b3f90d56530e8be5f2f2e244df27f38ad3
SHA512
5064010337f94bc37c2bcdfad68110da4de96e6a2eb120ff05ead3a6472866ac0e70169e0432f1786ef3e5a19aab1d61b6aaa2ca186399781704ad670b768f72
+DIST thunderbird-147.0-cak.xpi 414737 BLAKE2B
356ac1ae367b0f04ee6bee36ab0a9a4f3665f079ffda3ef2aee0a5be45728a4d03ed32afc45253a9adabf7950a22223e466e46fd579ecc6167cd6b78338cecd3
SHA512
a963014e75db9564fb08b9783992fe87209a5741989e00d94d470cbdb644de303455cd37b7c033ea9116ce6799e4bc19d78df81b1fbcaea8df09e3e12702b1aa
+DIST thunderbird-147.0-cs.xpi 527262 BLAKE2B
197292fd5b5d89ae1670efb5ded93102430e08f78d92f4fad3e4e052b503ca423057680fd50aeb1a8cc967eedde488fe2ed543599158db69291cbae51bd021e1
SHA512
b1f8cf66e0b02d0baef6c8411fadf5e01f24bbf301e3c636218903580e176aa29f5a10e8282f18811b0ed463e5dfda93f750c03b2161d4e0501f2e0599718b7d
+DIST thunderbird-147.0-cy.xpi 494798 BLAKE2B
dca6c2ab08eb5f6d797c6fe8ff8763ffbae5ad4debb244953344576da4e2e8ab41041e3b5f64c555ce65217a1e30c4bcdc0d280a4e85677a4f30543fcfd0b4c8
SHA512
4731e26941aa57de5cb94038092a1893ddebb17577a5db211050842d1a84e6cd1ee8bb0ba1dc21ad69229b39c0b4f8541add35680bc615a09f060471adcbe6da
+DIST thunderbird-147.0-da.xpi 483074 BLAKE2B
e34fd2018b16329982734f747d1afedcf27c9941509c882d0aa89e1630a29f3884cb440c8d7467cd25fe1961eda122b77819dd2d9de54814dbefb7de1f0d4905
SHA512
11061235549e50ce3dea252f77b65e235664df2c157c2564ef3aeb7ee9ebfb2e946d866b669c386920da08de7a232dc067ac52b836c8040802eec116f316d914
+DIST thunderbird-147.0-de.xpi 511735 BLAKE2B
0db9bf46be7b712ecc722d288f118b1c1a6d8dfa7c2eae98b6d8a42f6956cdaba34f887227b57ce705957a5341ca13a1d785af7d3e23089a439f3dcfa5d9227a
SHA512
3832710e1fb64cf6b64800a0be5ce91484f01ab75848dc4551f3ea650c5aa8fe6370ea81291adb2fc39acb283674f7fe0793236a035b6ec9f557f2d2e66fd575
+DIST thunderbird-147.0-dsb.xpi 524692 BLAKE2B
68e75dac56ae280ab1d9b6d0860ff97f7e4fdcb86975881277a66ad9ab56c581447be82b53266245f58a15416800d1274618fedbb4f00fb0caec6e8f0046a801
SHA512
c1b1209147cca59cb6180754046d916d199089b70cfdfe7cfcc807fdba0a215d03474f546f88c53811a6d74a0f56e7401f5d5c265e4ac7d83a3fe92900336452
+DIST thunderbird-147.0-el.xpi 616559 BLAKE2B
a074f2d6af52f7118d19615fd35f609408e77a37c11752c32a9c4a6c0f9bea71d89c264983927c3dab8f4a036ef741381d8ea613a421dd90bdca8506ef28020b
SHA512
e41bc367e5c33fdf312f82365dd2df1a7d30be758886b6760e6bbb5e3f4ea1bb8597f066d2a26d4358dfadc24d06c0899984bf993fb442c45c978ba1a7edf6d9
+DIST thunderbird-147.0-en-CA.xpi 458144 BLAKE2B
9f362599c8be3f54618e2a143eb123c1037880ef8054ad127099ea723d5beac0b93d558b1dc2d8a7c15839ced5725ad25221a1686eb9d553828cba35ca8aae45
SHA512
c62b1ea8b9f2e8af2f4c80e84dc8e45c568bb2d6ed4b8a67f5d50454f419f531b2a4a310056d8a9b5852af5c195948d5509b8db040b2b3a41f8652ec56af0d52
+DIST thunderbird-147.0-en-GB.xpi 458132 BLAKE2B
d9dffef5860b967705ed20090d9c0feddb4f240f289bd9cc57704888bcc8b7c12fde78656a92ad333900476958606eb68467b6d8be217490d943f15ebad33fdd
SHA512
86f33f37426c1ef165bc3f6525b189433ac458fb758dfa7c26269a42cf331feb541dd378e4ba8117c9b0f0f644772c2089f92f62c29535a1823d53f42983e099
+DIST thunderbird-147.0-es-AR.xpi 501883 BLAKE2B
b51ea52a55baa9e6f30d3b4249e485b5b539e79854d2cfe3c6544bc99cfc8683db2fbef209c96f3ab0494f8676e8a0bd69f791b066b7e6087e4e4273b8bb607e
SHA512
6991d84918c3af88731fccb06a61673b5d0d59f7d576a9b796637a2ed59ec0119b4d93f44e6b5bc3914e198e96786232a14b46f6a262e43b7cf4a96c180eae70
+DIST thunderbird-147.0-es-ES.xpi 504070 BLAKE2B
883e4812a380add89a372793c59089ff33256447771483e7dc67a3cff128e5e5c90faf229ca2479c340b30ebcc6622bbd7c80a64ade5f6113588010845ad79c1
SHA512
1cf4b197cf9ef55cd50722c6c268798240aa85806a2aa8c142b1152964edf35a81e1b3fcb455e6ae0142a251ebdfac1afc44f6ec9ca9ae5b1a8da68f659ee1e3
+DIST thunderbird-147.0-es-MX.xpi 489658 BLAKE2B
c4fc7ce564df24640842cbdfbccef51c46ad175a10f116c742ee2eaa76f2e4090468d0c28318b899ab1bbc248460a7520b4b76b2baea4cec47dd54e5dccdd45f
SHA512
911a54e3b32b1e714900a89a4359c9a3963717df4bd66ae53611949584b2c9f507862175a4921b9ebd2168b10cea44ca54a1ba2df90b55d87c4eb637dada5e1a
+DIST thunderbird-147.0-et.xpi 441295 BLAKE2B
8acfc9620249098b1c7b55c83bd499cf50ec955eeaadd6bd20b706296570a86b7ec87ed3219081cd65d1bf422c3230e7a8a64420cacc8e0aa811965d8fc7c814
SHA512
2b1767d27867bbc478cedc84254571bba831b27ee2a357f29f627d34b92eb6fde05f2c522b8fc8ddbacf5e0845fff9ac79dc86f917e38db10453a9814e43e975
+DIST thunderbird-147.0-eu.xpi 479688 BLAKE2B
03e250cdb3e648d800b2a2025c7ab4466dcc0a6a300180da7507ff66767abfcde87d11c749a7e0bddcdd5237050e8ec7b58d3ec0a551acbd8d7152d2901adbac
SHA512
75ac5528e436f5bcf99cbd54dc287329cece5947e203ab6e110363b2847db883a1fe1b55c4064bd9bfbdb55ba7bd5619835e59d596bf8cba80beb105057807c7
+DIST thunderbird-147.0-fi.xpi 479304 BLAKE2B
cb78c64c4dc9b5266e07f7947a5c90f22c4d7a9731adb9e68ddd4023443a6bed1087a8ff58eabb842e7dc9584fb1badcd8558e52b4229b6c39ddf7daff951dd2
SHA512
b84e14db13a2d99155c2c96299605b2617b5ffa88f064818b8ee48ae9b33c6c521b22236ee7a56127567a1efa42629354ddd56fc5aced9ba3c0664e86019aa07
+DIST thunderbird-147.0-fr.xpi 515109 BLAKE2B
c62ba33caebad184507936f7171b36a8b97c37c2251c765a151e7bf7ca551782fc4cec7d431656583aff119e1e5a04da13cc23af579c08d8e799a645899c412e
SHA512
05fcf576a949551e781e6ccb7669c7ab39a5114697ffd5241837535ae234590b2fad32f8de83c579aa07a54297be021a8d3b501a7bb51d041f67c44ca10f94a8
+DIST thunderbird-147.0-fy-NL.xpi 497416 BLAKE2B
a0f3e15975ea21b3edd1ffe41014271aa822eaa0ddf2f65649989461a2c61b077e849e607943202d11c443dc0ce47f2a73abd5ee6be4fb2944d2d8d309d78d28
SHA512
1bf07ce6f51463be30cd4cfeb955e7f291dc804adde1707484a77fc0f523bb95edf0a5d467bdeffb3b6766d96aef4f01dd960469c679a616c7f12d5c26a5b0ee
+DIST thunderbird-147.0-ga-IE.xpi 374258 BLAKE2B
7c742b9eb22f854a86d5e99643f61efa836119c8714c72e40f2ef1cb3fae272d29cf6cf8c8e2a24c64c7d27e89688fd9c597467316845c2e750f8ba99954feb7
SHA512
be74cd06b0577b8cdb59714f1ae8d31e12d626eba8b4817cb6ab3677f80d42c4c3cc0af7028e4730fc778fd7184a3b9f5a30e0f537406b078093d792675f1693
+DIST thunderbird-147.0-gd.xpi 459623 BLAKE2B
019d7ea6d43fa76cfadd2e7504bf1a5605a9757ec3c04a77ad76d9a502f887f75d1659107b8423a9db84f211ec97014b617ad0f31dabca3006067f420e67bd28
SHA512
9ca7bd5d622f6a1c262b3262b689647a0dc3960580fe129c988aa702e5681c22a90b517c6f3f8daa8fd8147e1c5e640ad2c7a84be1f1735d75893e7a88708c0f
+DIST thunderbird-147.0-gl.xpi 488945 BLAKE2B
ce2c39dbefd9914a1d11c92f3480423a0dc8846eb91883297a639f0ceb6d0feb552c24b434ced08ffcd906358d644dcede3958ca73b96d1e7476023b85e051cd
SHA512
5c3a04d93823f85ec4338c59c95ef889afa31b84454d126881e0cd03bb87f0bcf36080021a8e5cfc63e2d751cbad6b524b8775171953d225a495c229322fbabf
+DIST thunderbird-147.0-he.xpi 444177 BLAKE2B
b1c23dda6ec08f04dc0897a8877302c08c2438cbfa330c6786b5dce016cb9eee9d96a78719d2845c3de1aa949bbfd8894e6d335795fc4b92ccd88c652650291a
SHA512
326330d36db2f8e9ed1253afe58cdf8f6c285b364b561681a2b6fbb827882c673ac68716457e62297b555ea9e45eb3455341d6667c73e8cf172144ad160da640
+DIST thunderbird-147.0-hr.xpi 476173 BLAKE2B
2555894b164acf3579423d47a5fa4519eda8af073a90e351c6f5b91fbf681f6b8b5e56e458d4e22e34066d74f40287867fa9bbe955d3ccb61d4a31c4dc36e153
SHA512
cac0f1119e4655a3d77a12e0df069a93956a32b9754e5b656936f1b9ff745cf220b19de2e0738a045f5a91c84fb3f0dad4d6cc3a523d2734995e7b5c8d9852e2
+DIST thunderbird-147.0-hsb.xpi 521893 BLAKE2B
b2a910561055bec22efbe54e17682047fc6b41563b7ccf75f355696e4c3f14fc8e40c114712d908df8b2509ec6a4799a3965de9d0b9fd7460b8f7bc3293c6131
SHA512
2ed90fb10adce40435bbbfc2fd7fb1b8adfc6d67f17f91304a8122f4297723659566caefd8f4409650e3a00df1b65124ce32d58c464950ed753f661e167374d5
+DIST thunderbird-147.0-hu.xpi 524503 BLAKE2B
ff9fbe96184ff3c9192748baf036a130e393c87499e58f42c74a852f81a29df9b261b09ac29194509fbf9f79c90e40da12fb410f69fc58bd0fdb55bd066edeb7
SHA512
f89a5a5b1176e379ee0d26192da89af4ad10c5d0546927c99cafea90f8cded97155cfad7961bcaff4012c82d07ba144c4e7032b3dd483220fbc5b1c0e2a6674d
+DIST thunderbird-147.0-id.xpi 471094 BLAKE2B
1b72e2bcd71e6c955f8b7a09057f124aab58765cca1f358fb27f3baa2e406f9175cbf9b1dbc76cd64bce05b0dac8c770f0f1753d158d5549242c3f1054430d3a
SHA512
fbba284be7023a3176f8cd22f551accd298b5277cd059e9fa254f08e4c95a0834ec310d90c98299cd3baec64f5f70f68c8f15277ad6c086abe3a463fc5f006c4
+DIST thunderbird-147.0-is.xpi 485923 BLAKE2B
5ea1827665f3599d2a84e8771049f15e2a262df0474929d57d015e8b91cb48d3bb6cd0a80b1152e69bf2ee446815c4ae83f6588046989aae2b85d4195d05d80f
SHA512
939e3381116be23b1f2a8882d6bbab741d83f2fd3530018196b68c3067b70439ce37d0ee9743e0fdf3bea991110ec27065a20d47b2f4066ec2b6c857c019752f
+DIST thunderbird-147.0-it.xpi 494991 BLAKE2B
ddb58a24098cccd4a2f08c0bb6f020cd9574342c73af78e058a7fee0b95993afb9a432dfe3316a55b08071a9fa0f8534f9cf1ba5d0f7d52e77637d171c928f15
SHA512
ce7500f812dc71257496968923fa4cec89bd439eec0a35d31348053d80f1c29a9bfd006d9a9bc14f1aba01734e4b7b738fe856ce7cfd07f5a75be82d4ce6b6e0
+DIST thunderbird-147.0-ja.xpi 546207 BLAKE2B
2052a202f302db415e944bf416657b6a55c768f03ab496e7f7c7b06cc184615c70bb6d7009b3c1b8bf0161d386cde86680d5248c9a696e523aa6c59b32b808fb
SHA512
7c6c886588708edd4604669e98f40aab2e74dd5113c900cdbe5f9c19ab6613ea617720d2b49983d584e6aaa836889bee19a8cb7af4d6f92d865549dcfcbbcbc0
+DIST thunderbird-147.0-ka.xpi 562232 BLAKE2B
eff8a25638ca2ceaa4d5901752fc5cb755a8fe5fcaf7ac3c5f19bb0378d48561a9238543562028684ddbc45c2ce756e94738ea2d2c413e196e5857dbeadd1cc5
SHA512
9d017e9da60085ecd783190f242f21f7ec91d26eda7e510ee2fc5d1e823f9f8345ab9738a902d47137f3acd8e88ad42521552dccd0d97f797c377200cc5d8eaf
+DIST thunderbird-147.0-kab.xpi 469114 BLAKE2B
4d319c965d186d9b05798fd997fa323f3c6abf670c9f3e6365806c6d1105204cf272faecac36be2109ce81e18fc3a44421e1ab45da59f28a8ae25c7da411d1cb
SHA512
c4a0bd30a079aa404fb33aa65b8ccff540d5680be07c8879c1d4e15a52322661f1de49e4fdf65770a154d1127321788a0d4b8a336d9a06f049052b5599d67762
+DIST thunderbird-147.0-kk.xpi 586395 BLAKE2B
d780a739045ca938b241e0196397fd1ea53ded8f5ed7dbd05493aeea7003f3075766ce56d2a87568370dec89c54ccdea794b10633e1eafa364b472aaa07610d8
SHA512
965606eafd607499e06599fe6c8af2f829265c863e0fc6731f6cbddc147acdac46528b2aae3cec48a957849454e62442f07a4416b7996a4a932c7917a5e31e3f
+DIST thunderbird-147.0-ko.xpi 519363 BLAKE2B
09cbe32a52db325a7502068c14143e0d0cd010c83f2c404ab32123f8f76c93c89377c97e9a10ca46f1d089884c378697775568ad27b17fb2845bd81604906dd9
SHA512
187dc9a21d8953d5303ed8d1e10fe5bd66c2f9ef2da86f5a6ef0e9da0ed6e98a19565e53d93810aaafacdf73148630d3f1a3f64ef33a733ed41434b77063fb48
+DIST thunderbird-147.0-lt.xpi 451108 BLAKE2B
9897c94d83f5d379be2241e2709398dbcbe4d19b06eddaef5274304bc98f9cb00d29695bb4fc3f33c226d260104a206b65b9a943084f88b6a2ee7ae60c5dcb2c
SHA512
2094e2d441e89a2f94e92a7409c0895a0e6b5efff5ebce22e4363597e4bb3ea5c658e88d8326eb7014a48c9cf2c88f434a3b002dd93cce4d6abdc6aaf5f3f4db
+DIST thunderbird-147.0-lv.xpi 388699 BLAKE2B
5fd2608f2fbda9e173396a397fbff3c4f8f8c87bf7c7684fc2748a54d92d534f1ef79befcec33f3a8356eefc5063f6225a6b0269601510aca80a64067071181c
SHA512
c2987f8ace62ae004d293bd71c9f966de3551e25079d8708eb85030a97c43f0cbdd81c3b6b5db0a773a8d7960a22e991bda585762f99f69b439ad3fb53274239
+DIST thunderbird-147.0-ms.xpi 350559 BLAKE2B
7460075146ff8d756e9d6075e9598a319e90f838344368eddebf2e03c90fb5ded9fb05ec81288bd939ab17ec0c6d54b80f529fb274723b881ac383ac7cc1ed94
SHA512
db8674c4fc7bfa27c56afaa60c0d1cc9c4ff9ba00c7725937a42db5a5e60860630b556a0de4397c5c3cdf092a1db8ea39d2451a17e9a219c6c7f9bf2c51e9f51
+DIST thunderbird-147.0-nb-NO.xpi 482518 BLAKE2B
c45c7ec2b0fd94833d41a2e7793a66c74aed18951739ddd9cac39437958d2f734521943ff2a710f4f1ae12db30c9ff77f0ea94b2e8735df10b2f6ef3865a419c
SHA512
c648da3b98e8b5fc24723b409fb903c6c0f5dc2c289402e08b732ca3e2200f69c4a12fcab042361cf2fd70ea18c548635b2f20bd0598296d539480ebc92bb0b8
+DIST thunderbird-147.0-nl.xpi 488672 BLAKE2B
f077e7a0b4ff8629614f93c037ff690861f3005c2157136e6effbdfc7856ac82ea23251f78941a2634753ec171fdaddbfc0ec2d7b469f5c834ada51a94580020
SHA512
53a40d050497d38ff64adee5968d1047f9a5aff6609e7beba1268a06e060218bc30e02510542eba9f1bf67dc2a28d48aa0988b008619bb105139e07976b1e196
+DIST thunderbird-147.0-nn-NO.xpi 486396 BLAKE2B
6d47b4fe540823869a9888c66e4b6f6bfb50326da51cd915deacbbbd4e66931b3f4b012482c5a7ae0e347d4940b820b9b113c0d179a4778825d31f36420c3e75
SHA512
134dc18ad67d333a907bb9d2284525437caff9f7d43d89eac48d3fbe70585bfcd919e2b659fb097f53b9579ee4962596059065c4eb9981c0e330cc6a88f4b390
+DIST thunderbird-147.0-pa-IN.xpi 435804 BLAKE2B
6ebfa855b05343eecbb342134c2d70ae8027863c93fc1bb9e9c314c00a58a87fe58ed08b516bf075c4b7b26bd26b151e5fbfa5f9d40184773b79dd33afa648b5
SHA512
88381153750e18a9b616da045134b0d6560c977107c92e13d34936bcaeaee1a2cc2f3e3948f57668ff0e3a1015993ca2ec53ea0ea7eea35cb46ae13feb7b5dcd
+DIST thunderbird-147.0-pl.xpi 522617 BLAKE2B
d094a6fc93cb9a50763f9617fad7975b3a144b820676275434b5815e7c5c03b53ad4a98f8c2111423fd17d1e63673da991bc68c4dbdb56641284f05f26eb396e
SHA512
587ad1046866dbf386aab9856ea895bcf764de95f51515c0fa153a53d16914a0ce57c52483dc6321329c74b3dac7509c3e1f715c6a61c6fee4bb907214681bfe
+DIST thunderbird-147.0-pt-BR.xpi 496743 BLAKE2B
edfba08ff55ee99862267e1b1023fdc104f0d8e4cb223293ea636d4184950bb391ed6c35ae390a08f9d26b868b3fb7c4a273e3833b94d360f03d034171c71db3
SHA512
c6c696d674444fc84bb624bde2cf120dcd04c8a6abd99736d876718d58ff28a19cfc1a85fe47a1367d0f2d2ff62fcfb91c7cfeac695cf1a41e5a3124aec654de
+DIST thunderbird-147.0-pt-PT.xpi 486033 BLAKE2B
c109ac5fab4745495d74042e9015030d6d456ff165fe008803612632a807ea10da303a97d49dce6be4878d893aa1204d2a55ddde9be01c4f947200e2f1699411
SHA512
9da557bf6f328bde0c0c9d995e5f8b742f4b05476af5755c4e0e1a684ee95dbab829857db80825f58086378aa6e2f5644f709cf1ad3e0647c15072cd8044f39a
+DIST thunderbird-147.0-rm.xpi 487589 BLAKE2B
0dbbe83f8505eef928fa2ba2656105b89860da3dbc5a05abc16865b59e078795c50202711222d1b2727275394edb192f1bde306867848e433679ba5e3e872ba4
SHA512
3f54031a8d96ba6b6daf920c2374b0f91a863bd4554d84d9da618b0d2ae9f5fd5f9268d9b9c367d2f6ab5e7b711fd9bb893913ca3e72c86c6d0e7a9e88ed3e05
+DIST thunderbird-147.0-ro.xpi 507922 BLAKE2B
a95cb9791f23bbc3fabd928fc30c430359200ac7e9537dd50d7b8417ed33472c9fa58892a3bdd66288bcbc6e11303fda2162074f6f3a33f31edfa0f5566c1ec2
SHA512
0ac7eff98cccdfcf14fc108e042a77b328273427ed45fdb103cfe58e085adbd95e9ce89fc42de85e36220da040b19fcbc5fa00e95a9820c57c15a5b3a171428f
+DIST thunderbird-147.0-ru.xpi 601166 BLAKE2B
ec64890a47a9f506ccf11fc962df9cb537d201dc614f7cda2a4d666c2cf612a623f0b080ade5d545742cbc1804e6da4c1827d3a7cb4f9338f22b1f93ce9e2b90
SHA512
5f42c9d0fad32dbfb69c7207c686b42e3423a2c46e6d4b835241fccbd63788c5388bcf184b4e42d0255c00563d132fa42b9244a848596bb27a67024ed7750e3e
+DIST thunderbird-147.0-sk.xpi 527054 BLAKE2B
36550bb5d023730a12739211b2565a8470283cb272cc9bd684489d86caefb625897bb652396f3604d9818a81cf8779ef1810296667411ad0a7fe6faca6388c53
SHA512
5e180f80fbd51b31dfce74a83ab9966fd166ceef951b3548396ad84666ae26d3608fbe328ca54e85fd88500250d2d925c23788fcd817c5b4d9adecd90b520962
+DIST thunderbird-147.0-sl.xpi 491182 BLAKE2B
911865534dc61d77e1ea2e15a7fd8c2052d97056d51bcd26bba12f55915a7f3dcf8b1b742ea603f40b51b1976a84df7a615026f0b1f0656096bd11fccdc1ee25
SHA512
4b408e8fcc2ecedb2899e3e85af6421dfd49d97ab16d27d09d32814331104aba1fc8c7c9f50bf73ec7400948dfd0ebcbeff64061f1840757856b5427c54dfd3b
+DIST thunderbird-147.0-sq.xpi 513075 BLAKE2B
9c9c99708a9c8307ee08431bedacb118c3a2db2bde4d40ab62c8829df4a94f5df2929138e31b32e08a8f49a7a0422f62c8e20e2b3bfd194340f3b0e5428069e6
SHA512
8ce8d3304f6892ce3f602a3c6a9c84d65c0fb182c11f642f2de833bc5e011cdd4e66690203f49e294d3416dbe6b9d77c3419bbe312dab9480636411c28020997
+DIST thunderbird-147.0-sr.xpi 493074 BLAKE2B
f71b759a53091504864b386d01e36b086d09f9f190da77824fa14f6649cad693b30f759a176db06d768e36c4bc7c78aba28c9a27d3ee7c12aff053547d0f9568
SHA512
e880c659c92fda08f6d08bbf95dd1cb4e8b25f61365ca2ed708c453b2636611d3302a7fb3199fe44e71be61c0332c60c40edc06dae681d88060b2af21de92db4
+DIST thunderbird-147.0-sv-SE.xpi 490952 BLAKE2B
2cde2214614d50952eeee5318fae9562d1c6e943d1a76708c4ad17600bebe2f3818a6a5c53799da3d895ae9885275206ecfb60261d4b2efa324d5c1b5f7b4336
SHA512
44f17e018befb5be77591e43acd21cee4d2c949aed41bc7c6f7922140f9f25f9935c71e98f2fa2ff02d7da622ff7aff26a221a5e6e70e5667b86ac5c30aabbe3
+DIST thunderbird-147.0-th.xpi 568261 BLAKE2B
f16c84e1d76bfc8de98f2b5835bf87c7be324772729ad17f4ad75e442b12b99669b8622aa174f4e12ed1ead852c90bf40a12da8b322bda7029a1e98d60eecb0d
SHA512
72cf87fa0013773410d0325552d0f2da894d1564efb247b54342ce69175d21911d64372046d05ad5555cf4c0b9a6f5ecb68b2c964d38ea2bc4a982703aeb5acd
+DIST thunderbird-147.0-tr.xpi 502700 BLAKE2B
8848acfdd2db909cdd20699e913f41f0be41d2750d7fdd3969fa9594b6bb0a724c886eaec629fc5b3f3d081608449542a549c2204f0800d98314d138737c1a04
SHA512
566bf38d754e420c33dc1fc48a107c39c07a5d5060bca76786a32d644af69b7ae04dca65d2e467e41152e2030fad075b4104c3b20b149d54534bc00fdb4d8528
+DIST thunderbird-147.0-uk.xpi 581403 BLAKE2B
708adf126b197ac2ad4a4c5205c6129ab508f776278711fb79e680621244737066cec860d9d7354e5b35a63d87bf94f2cd1b6fa61673fe61344edf499e7d18f1
SHA512
961d9d051a96f781d3ba5f86bdd7332ab0cb5129f867c46c653b18fcc91a4175ebbfc8eadd76e7ec1d978a9c41b603d8db19806985710061e86535e748f26d91
+DIST thunderbird-147.0-uz.xpi 352853 BLAKE2B
265b41778f264cba71aed0ab0edf29aa8163a3507a0590a66068309edd5e670feac3532c1ab0c96c404a77e1d7bc06649591c12f02d0fbb133611cc91c4d4021
SHA512
74a025576405bd9f0ce4ad9af30cda8fe28826fa64cbf01d002af4335046443d455d42c53765fadb64dabffaf12971edd8ff979ac1c68c9dd087a146f0b737a4
+DIST thunderbird-147.0-vi.xpi 525244 BLAKE2B
69c041687feeb5667d7020da7527ce18bd47c612a2183cefd9278134db19ad4c86b9a7d24bdab125b3b9cb02b11bea19ea212c4a9eaa468a3059bb2be8ca033b
SHA512
2a3cf8aa906c5b2cd3b40ebdf28531fab361d2a1d219d995d8c41c38cdb93a8d0e5e4c0dbb0fa93217f8392248eef25695502abd8c635f4afd1b08a6d3a9687b
+DIST thunderbird-147.0-zh-CN.xpi 514161 BLAKE2B
619857edf1cfc6277eb8b51e92db033676c1fd51abbb98950d8175b2077028fca5db1c6be03be9cadebf3bbba4d85bff43b824ada70cd4490b80da59fbbae7f9
SHA512
f26fb76ab74540e0347c282c25932356d1e1d0fb47d6cbcb8928110d3714b9f8eb2f1e09cd8d5958c81aae46246bf8600051428cf5c635b23d56ea4bacd6d641
+DIST thunderbird-147.0-zh-TW.xpi 517868 BLAKE2B
3d89c8b0931a0cc5adde833ad8fb0ba2c0651e317ae0633160bd9af259ddaafc4c39fdfeab985775b0075df5082d74285d48bf5692a6f0db6daf9d49b9cfe9d3
SHA512
fdd6f43f5467aec5c5e290c2088f63d42b88d31f138fece1d5893ef4bec9d9cc54339cf240f04fda9c6b033a5a47c39f09a4ac99dc2389daee1c28617aa233a4
+DIST thunderbird-147.0.source.tar.xz 780223936 BLAKE2B
59fe7ef910e65dfa5b2e7ad5308123df86b854c336fac47c2e8e96ab4d40c04ac28561084796a8c33d7c9159d2186abacb8362cbc6c12440b5965ee3c6fab5cc
SHA512
d04a135f23572123d5cca41c2611704aa06cb81e0226c89c267dc527f59fb0d9d5d8b8a49cd126626c2fd934624c9d2420ae71dd10a912b3011f3342fbaf7511
diff --git a/mail-client/thunderbird/thunderbird-147.0.ebuild
b/mail-client/thunderbird/thunderbird-147.0.ebuild
new file mode 100644
index 000000000000..b72e26eff40c
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-147.0.ebuild
@@ -0,0 +1,1157 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-147-patches-01t.tar.xz"
+
+LLVM_COMPAT=( 19 20 21 )
+
+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"
+
+# "-system-librnp" requires clang, bmo#2006910
+REQUIRED_USE="|| ( X wayland )
+ !system-librnp? ( clang )
+ 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.29.1
+ 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/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.119
+ >=dev-libs/nspr-4.38
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-apps/dbus
+ virtual/zlib:=
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libdrm
+ x11-libs/pango
+ x11-libs/pixman
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-gfx/graphite2-1.3.13
+ >=media-libs/harfbuzz-2.8.1:0=
+ )
+ system-icu? ( >=dev-libs/icu-78.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
+ # mozconfig_add_options_ac "+hardened stl"
--enable-stl-hardening # not available in TB
+ 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
+}