From 7eea20cab7dd88130f5ace506b76e26f840a2dfd Mon Sep 17 00:00:00 2001 From: Joonas Niilola Date: Wed, 14 Jan 2026 13:52:09 +0200 Subject: [PATCH] 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 --- mail-client/thunderbird/Manifest | 66 + .../thunderbird/thunderbird-147.0.ebuild | 1157 +++++++++++++++++ 2 files changed, 1223 insertions(+) create mode 100644 mail-client/thunderbird/thunderbird-147.0.ebuild diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest index 7bb6311c18069..1a2847c5e0ecf 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 0000000000000..b72e26eff40cb --- /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 +}