commit: 6ad2e32fae71c702633b319fe00d3b1958b8e861
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Thu May 1 04:36:59 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu May 1 04:36:59 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6ad2e32f
mail-client/thunderbird: add 138.0
- sync changes from firefox-138.0,
- remove "--enable/disable-thunderbird-rust" configure option completely
since it's now a core feature and not toggleable.
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
mail-client/thunderbird/Manifest | 66 ++
mail-client/thunderbird/thunderbird-138.0.ebuild | 1156 ++++++++++++++++++++++
2 files changed, 1222 insertions(+)
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 6a03283cac46..e69eeb6cfb57 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -2,6 +2,7 @@ DIST firefox-128esr-patches-09.tar.xz 17976 BLAKE2B
78f64f5086951f7bf2b304c11481
DIST firefox-137-loong-patches-01.tar.xz 5092 BLAKE2B
26ce17d911c2dc4b00d727d77aa14aaf379541bf19e0500382c892a1534fe04ec6f71126b32aeffc00bd1a2dd6810ea25ad25b7eeabaa2a2c70bf1158009da1e
SHA512
5c8ab65f3f24f3fc8ca5368f42d65b2873c9c15537e9ed088770a17f214a364e35cd6b79710b6e8d699afe4f84f29b004374537a96b11bee6f7df91d1f5535ce
DIST firefox-137-patches-01.tar.xz 13584 BLAKE2B
f22ee7977e738bb782014dda53ac20c4928fbef93616b1a11d474599d79a549dbf66e5a1eaf40d1ba1745bc3345162cf1f2107ef9a8ae72c63b8d9850460380d
SHA512
b577486e8cfb2dd2da37802a9a7f4e2bf16094bf4ed22a8c2bf91019cf74b23942a1884a58bcbad055c7ca480f944cae35e85aadf92d98059be0eaacd4b8a464
DIST firefox-137-patches-02.tar.xz 16008 BLAKE2B
6b1e4f0c7eba462abcc2bc26a463cf194e51023e2a2b91ac88b42cf817cc95bcc61472983a10ab8b959734d7c57fcf21e34e54f17bbf0f674589969e8bda6d15
SHA512
a573048d25cf0ec6bef8afdfc8a845488f910ad4437a2a87ac16131c258ec36fcea985487e415af00aee91072ef8cc924b395143587c3971d42a120de39c36d3
+DIST firefox-138-patches-01.tar.xz 13492 BLAKE2B
d88f9e457e549e2fa1e14dbc2d226affe723008bab29627e09b82e84262f468995f9e5821a76dedffa53eaf5c77b4dd18ef0ff3ea48e73dc752f12bed2fba890
SHA512
dc99145fefa8d4bc08627098cd068a6f4a4fa9023abe256f6cf8f60de8f9d88c9d6f981c5a87f688ec2c190015e5d06148ae49a78a0326de8d747e2309e781dd
DIST thunderbird-128.9.0esr-af.xpi 534911 BLAKE2B
5a1c56938294faa34f0977d2aff750bee6be148ba3bf461f3fcfdd923633ee6af4deafb9d8be1135981bd7ce5a4cb3cb0304e98d9c776559ba80ee562db6159d
SHA512
da3da34b7e99271dad924db5ae578838662c70dfb34b0470a0084ed46b60d852929d187b258dec4298958a05f792b6e7598910100c70087258f9f28501e1ffa4
DIST thunderbird-128.9.0esr-ar.xpi 686460 BLAKE2B
1d2760c20e419bb64637368e1eee7f589ea8a1be61715f245fde35ddc36205e5de41bccf1de76cf9f44122b428f0ebfbd8b8054ddfd2bc258e3e05480756c2c5
SHA512
48c304691c1caab6e782b1ed085d13cc78df4ccfe1ff5dece8ea8a4b34f731557888a049ebd5d66c11a2d9249d1d22e2eda9b4783fd9ceb598f07012570a5cb9
DIST thunderbird-128.9.0esr-ast.xpi 574778 BLAKE2B
71d2e27bc6e4b9af5cce9a5c5d1220243ca4b84b39c07202b2e81d00a99a4f40cb4c09fad9c6eb9da843e7f8866dbff16818ba20d04f7581d805152be66a8194
SHA512
96ba88bb6a1eb7ce04cb739037504d6d27c46c8996252baee069b18af939850d0f55e062da49086b4da122a2f3ff8a2f7ede126d05c26265c3d6b3f9adc622b0
@@ -327,3 +328,68 @@ DIST thunderbird-137.0.2-vi.xpi 513516 BLAKE2B
82fc18bca1bb1088b1732516edf25151b
DIST thunderbird-137.0.2-zh-CN.xpi 502841 BLAKE2B
03e095cb37346618c611e434a6b855924d7be4720b74fe4a7ecb60d41205539bdfe2eaeac239943c48645ce34f54623df911388e091ea8d137f97238a3684992
SHA512
7d9022cdcd1dfeffd2ada9e95e1b112e9149e973ad9115d84ac55991e6b28567ed44ab454b8b1b318b7d8556ac36a09a882ba2944c4baa2cbcafe651e6190f62
DIST thunderbird-137.0.2-zh-TW.xpi 505943 BLAKE2B
15ce3d3a5be8d70e460b2543aba53a664c08d3e441be0562d10261a326667c21f6fc6be726a339ebb1d3564edb9d24c90530c2d487199afed3c51c67022e0c5f
SHA512
062fa5f71f4dbd68b4c092c8afa2790fa682d5208b7fcbadb690cecf8d587509e4527d8036a538442454daa0e74b426fffb4b54a4bca6d0d520621a5756eb539
DIST thunderbird-137.0.2.source.tar.xz 724560064 BLAKE2B
7ac15397211bd92ad95f0502c5acbab38c156811b18b5bf039819bda45b1682b0fe6c6772f0f6ce05237510a7953ce9d0170ab440436631df3fc3ff4de02c926
SHA512
6cc631d14780f1bf9224208881c14834cef078688ffa006f50dfdd3a4e81c95255fb455f530a09a0f296dc494af104aefe2414ac53c6b8c9956ca1a9d7a7e053
+DIST thunderbird-138.0-af.xpi 315688 BLAKE2B
64741f3cf47df6a63e435cf00dde38a7ff34588f1054e2961825472747615215e4de4e51914f8e213690537d250ce46e21db7f21a14dd1ae24b616c879ce50b9
SHA512
59b5d5ebf0cc74944fe9a6a9ba71cd2d3234e6ab6037812e800c29059024adec81deed1370d0eabe9646e9fe78c800f7681d893d12b0420e8f5279f317314848
+DIST thunderbird-138.0-ar.xpi 432652 BLAKE2B
9116a43fe129535cf4f1a526651b618fd954fa37205c6a19463ea2c1cfa243ce30629d2997d1c157b1c00f7e4d7acba9f5d3b742b9f39c59f8b5b8e8b9d1de40
SHA512
ba150468fadc44d3ee043de582dc4a8097bb95619c25c54f2e6af7af2355fc3df3c815be28e313d9f60962f603d92568f431be8290b65fe244a9c34fd63d7258
+DIST thunderbird-138.0-ast.xpi 341396 BLAKE2B
975cbbb082388a01c6d9dae1a31bd33f2a481f320adcd2789e63b561a5dd2f0b515a7b1a29dc2c0291ca9755d46a7a12eee7e3962871e9fad0cdb5389ff1f0ca
SHA512
066cab65a47db2796777a04b99109ea658fec2094cb6c17c8dbb97992c864bfbebdce331c873227223aa8115f4021b2a7c54519f16395f4be1196bc59cf73211
+DIST thunderbird-138.0-be.xpi 516621 BLAKE2B
862e0c8ecb78e9441675efcb579f00bc3dc2f17b5eb0f740858b3f859e0d01a8cfae6d8b73f44175cb584cc9a694bcf815e1ec220abb062cbbe9794557b1318c
SHA512
17eca833f8ac32f76d4b9773bf288da3605375e94333e569b48a34c78b6eb6768212ceee6b8ee88a7384243e29b335a5f40e6d241eeec152525d9b7371076406
+DIST thunderbird-138.0-bg.xpi 533875 BLAKE2B
06ef83f2a20b41a0f35224ccbcfd8a6b9d2697c23609ddc2c3e93ed938e680fd3a8679fca08b08d4a29f49e904645eceeff5a1d5a707b1258e3e903a8a5ab94e
SHA512
29f60c43bdaf20bbbcfaf8a38c11a9c218d473fa4146a4e0169927afc5d1ff2e370ed948e4985de6b74dcc0e27dfca03aac01136c4400358ab54e77fd8b39a78
+DIST thunderbird-138.0-br.xpi 402266 BLAKE2B
0c17737f92eeb5226c2daa21c1607b9c83371b791ff02028467a41bcf84c990248e378dc75cb36f789d79cbc91815540f1386d1f4b3f006fcdbe0e643c8dfc04
SHA512
87bdf5cb78f0f3dbf871cd49a1445b71fa773d903c3c4166cf9b45ebc3e7adc7800ea7affd0beba0d0e795a11a489e0182b7a536d01378f94e5bc8027c78891c
+DIST thunderbird-138.0-ca.xpi 440427 BLAKE2B
82a24f5db1476b21ac9811aeaf20303ca8de4a354a81a765c054d0e526f12d2bdb1a7eb6a26fd9381a2061ed4be9a1ee108cd7549010f88d3f985a714c836083
SHA512
31a1d55bc9599f7b3088439a184b8442ac88fb7d5fa33afab98a644d5ed1bf96b9226a0cb08038713d8d0cbc9be7eb7fe2482b7be239e190c1ddec0b3ea2ef31
+DIST thunderbird-138.0-cak.xpi 418140 BLAKE2B
5cbc63f53fc37d9c753edf556b00d3eaea2f44609a3f87840ac5cb2df6771f2e8f396204623e767aab1bf3362c7a8ebca7c9057c6cb0d83c39aaaf9bc6c4bef8
SHA512
41171425b231d28f1c83846dc09590338ac6bc8783f7415dd6633d307df9f48034f4f8cf217541ebbbf425843e5bb3ab625b29b0883c9704b6ab7e68f2e4563d
+DIST thunderbird-138.0-cs.xpi 515257 BLAKE2B
94ca1ef873a29c22ee31fe9cb4c98b6a725bc116b983eec41d9380b9c15ecf4e3d222be29808034c69506b21ca8cc2a3007b33faa677bd2c8608a608db8b71f8
SHA512
e78e8ad473e6e32265fea1cb8bf018969a843c1af90372d6a733190001354fd2f9d5fe50db4d53ca6ca272ee21412587eaf3a1655f3f51289da5ebc6b8910b2d
+DIST thunderbird-138.0-cy.xpi 483841 BLAKE2B
b2be816c010a4ac6abe1d34cf5bae5eb1c253ddcc0fb57a4596ba4ae18aeb3d7f45df7297ffce8b19bd4ad4943853f7652c984a204120e8405546d047000564d
SHA512
8ca01c711bb507d67d0b32b05b1040d98f73ed50b3e964604668db54663a810481a7289aec836bc35d19435db99a4779d63a526d71f97a6f439208fd7a222621
+DIST thunderbird-138.0-da.xpi 471377 BLAKE2B
2543026c78c2c5278bdbecb1ada744bd3ef34bce6722b86925bdd3fa30b9990048a4f95ec50f614579670616c40213335ae8731e43bb2ee425cfe4e20536a850
SHA512
f267579a1dde90529577ce803521a71d3653cd5778fefe613e54bb2e081fb12322875b273e5410122c7fcf379265f0b16b5acc5fc3dc21edcabce534323ce23e
+DIST thunderbird-138.0-de.xpi 501141 BLAKE2B
6f6049fa4bbd000f6e0264b72853e6b0e80ed13cf381ad4b2a6faf71ef65a78f976f8f300b751659d49e93325d3650c51c4442ab6aa24ebb85a274c8b96c12df
SHA512
7a2ac4d7dc47fab70183e010838ab56aa5a5337327b9b1ac51ddc1df981290ee8eb47d802d841033e00674bfdaec5099f7055f69dc07adedab6e3ccd8192b960
+DIST thunderbird-138.0-dsb.xpi 513830 BLAKE2B
cc1e1c344f484e7773b983ca5f6739f355e28d67d2d9034cde51f1a6f3c834f3a47b8ff2a2c7cb43065040184b70a9ed9155107bdbb8ccb977957fc449852a6b
SHA512
06e833b3a3838cf8259aeedcc37e396b13d98326be90679d11228515bd866034d41b3878a0a0346404295fb9c3400ae381f32d484a4c71c6fbda0e944b0041dd
+DIST thunderbird-138.0-el.xpi 604268 BLAKE2B
48b4ff7952d240263d65ca8707cd1a46672add43c51b4632e0c2a571983964e20ffcae4e58ca22c0e272479fbecc58e65299a90efdb3026f29ddcbb2cb84503a
SHA512
73c759b546c35ed54ca20184797fa6b4706a3508f525e2c6a15ebacbf233d72414662b99bec3f115b785dbc04492083d8a74b2695a63b196bff2e6eb906ba269
+DIST thunderbird-138.0-en-CA.xpi 448565 BLAKE2B
a1075a04d838c23525257aa6f11a327da03139a659b6a178656b2a8d57eaa0a7798787c671a2c7ffd76032bc55c6ba76661003a54d17dbfdb7ea9b66b4ab03a7
SHA512
5c50903cbba0f7f6ea3edc335cbe61c1a0a33f083752ad5e4d4fb1a270dc6f29be3da42e85711c1b6da55eb84e0f8da323153d3cdfb890db2c49c6a8e3f89fab
+DIST thunderbird-138.0-en-GB.xpi 448929 BLAKE2B
b68be160ff1e042e4a466f9bc8d1250b80d4521408a2abe863c28edfdabce42ef94c20143e9b3fe3147fc76fdeafd93cec7e8c33a95d01a664bc4023ea42dccd
SHA512
8c97d6c62462a88246286b7c21dc7b9cdf3b1744e0e8c4057bcd3a1917d7b1f13edb6d9a69a0ed2d6214403781ecd29204bf99f3273264d0239f052eb7fa3edc
+DIST thunderbird-138.0-es-AR.xpi 491743 BLAKE2B
d4ca2a922bb1647823bd0cae991a41ba6ed567175b038883cd7951b920faef4ec60b7f672c38274050ef7385f17d166234414074361d3f1f9847dc3a3b12fc3c
SHA512
da302e39e6e7d6ce2fb8843cf4443233f338a2c7396b71e9ef81e638632f8357b49c9a626b1b2de3a1e0aecbcbf50860efe047b9c82a1e04537da89ae815dde1
+DIST thunderbird-138.0-es-ES.xpi 493687 BLAKE2B
bcda9e8b6391efbf7e8ef10f756d972a772e2ee126209af370446be444dde9310b9d6b207ce66bce87b7d144d1a394c7abe1fc536e740bc4380a296c6924cf20
SHA512
61b111ed5896a664b26e2d3153ef998b707c0e215a40a1763bfe374717f749c37e3c28aa9976fc98eb9c57ba18b41b7c922c9b5b1009e95f730ce41db136212e
+DIST thunderbird-138.0-es-MX.xpi 488410 BLAKE2B
cf26e5fdaec3436b06635564beac9da10535c01dca04dd675a018e2840e34e349cd7439aef43c4d5643b64615b7df615af002c1ed96a7251f5bd54aa7e1a1454
SHA512
9de1c06c18ab53fb265c55e03f8b435075e49c6d2e7086c86dc4b0e0feff1376a97da8b42d9382173fb71b1c8988e94b314e8c9c75610dbe055299a61d6d4b8e
+DIST thunderbird-138.0-et.xpi 438748 BLAKE2B
d582d0744f56e14cabca92f21c594eda77d014459bbaa4206c4365d7065065c538e37c243a1aca151aeed61ac3a812bd67498dd2af1c9c2f4fda44fa1d8a8798
SHA512
2c1e274860a40ac0dcc572371da9d62855dc6e55dadf37dc115cd5c07afd09648adecae5edfba341e281cbe860efc86cc92a4cc6a0f89898c2566d8c746ae0f1
+DIST thunderbird-138.0-eu.xpi 469451 BLAKE2B
6cd681c0791708557256c43064cee69bc7e733e79af7dab31c6483328a1dd2411d1f036a00e68310e96984d827afec5236bc3aa79d1e6f0cf99d395d2e1bc499
SHA512
39abceb2c4b97643ab9a7fe8f40421ae1a7f7f0cd49ed1c14c48140485b59019d9b0ee912e1fa84f0447acf576b177d38c0aae94aa37d3d73dcbffd0126a26d3
+DIST thunderbird-138.0-fi.xpi 470783 BLAKE2B
f4dac6ab17bc00af4bceb480ab682eb7a0b24ecee8fe5eed900dc4d7d3e6bfdb9f0419e421203bded60b4604287696f365bc2c73566c63f5340d71acb20b0d2e
SHA512
b2c4513aeca8449be39dd7ac21df77a979c8ddf95bf40e1b91f635a98d6965ff51e01c565ba5889abec4dd3ca6b57f3a0af0c5486298bc5360d5aeb6f39e58d4
+DIST thunderbird-138.0-fr.xpi 504512 BLAKE2B
7c4b06e32c436f1c7cf586a01e13b09de834116246d8ba6803c19b6832e2d2609967b128e5a3045b23c5370557737c4c1b2823c093834ba53d2f7fa697d7c1e9
SHA512
8406f692895277c415ccf6be365920dd3aeb24cafe8fc368a92208063cc645c3d487dac1bd9fdc1fa6c4ac7463bdd604bec8761a4c6a0eeaa64a5de5b7dfd22c
+DIST thunderbird-138.0-fy-NL.xpi 487022 BLAKE2B
46dcdb42a1b2ebb54af4a3f54f80bb425c12dd482d6bd746d709f96601d3cb96030a67a18d318ec91be8a83b208adee29d90130230e1fe52b6ac2d44f6efdbb8
SHA512
c9838124534c3e7e96e038da58ab88d0d3d7c7be3e141c82cd5a487cee1ef4dba254e391e742396857c8323b38e36299bfd6bcaad3d8bf4268d86088b707eb5f
+DIST thunderbird-138.0-ga-IE.xpi 376472 BLAKE2B
5682062e8d01f4204cb093fdb3feac1bbf9a2388d7f62ddda925bc537ea0ccd4ebada3b78c3058c06a7ab17573aec5c121c7dd9bf76c7a3fde19bf22084f91ce
SHA512
6ec5aed7a23d676a7497ab3938a4977f3a6a27436843a80fdc6c84e1b5dc00445c3f23b6f1beacd8af99999b96df5e2494847bf99d88298a956f5a946385e11c
+DIST thunderbird-138.0-gd.xpi 462107 BLAKE2B
a651f04a3fb744d1ee380fff5049efe1af3133be49b3ae8f90fd3c9acd876475426fb91060e3b6a05b770e0b8b6c5fad8e85ab4ff2bb654c984b1fbba4993c1e
SHA512
58392e9ba754360668fe29c9bb3fe3f4947265edb2f54bfff35d83cfd92df23a6cea449367ad4c34504cd78f6e30d36abf6f05108d56a60b7159caad3e9bade1
+DIST thunderbird-138.0-gl.xpi 470883 BLAKE2B
672ac3a16c185cd19885711e97777565ef078a3994159448f1852badc3dbaddfd107c7df86c41ec37b8e2b6a7c81f0d30dbc4c06c0f87136ab05d8818ec0503c
SHA512
aa6d9e25f8a20c4a35cf2ae366a40d999046e478a5ba42055a47b36f02995dad33fa3dd771d4c6d9db7dac3f594d9b04738f2731cb5f9e65593af1b1c49d840b
+DIST thunderbird-138.0-he.xpi 438481 BLAKE2B
3db77f2b7c6ed5eb33fc5f44456b7d9263eba1b12bded41e5b32b129791be3eb7aaac2ff6efd5508523847bb8fc5a327b9789c244266d7ff4d2de8a5561983b4
SHA512
c2bf48047d73150486134280342343f1117566de03f07fbc4f2b07d22569a1361f389581e614d8299669d988afb69472dd32c5cc4ed1259b3a07d224747e38f4
+DIST thunderbird-138.0-hr.xpi 458124 BLAKE2B
303c9376cbf8dd9585812882a194a4394a2bdc693d1f4009ee7c39d051f2c10d92362f4c3b6fef78db29e7ff3978f753ff8f8ca12e7df7b37ea3b59ecb49d4ec
SHA512
847f5b93261fd98dcec8c62e085797fca0ed5fd3f23f6737474e239fca3ec84c64c569165382aeb0e07aee2f6c82ca0d235cda1356039b8282177fad75c64146
+DIST thunderbird-138.0-hsb.xpi 510913 BLAKE2B
0ace147a5b199ce5771e74ae89a277e1de63896f74ba0dbdb43e3720d711a214ee219fb88f035ab12c0eb091882a18c8643ef7c2f2e56e464becc2032d68855c
SHA512
756b73bf93aef9c5d7376ed18892fb1849b9a9713d199c48a5b3e01b96b547fbe80246fbafc53e87a2c7d8b0cd76706dd5948c415f181568aba4a577906606c6
+DIST thunderbird-138.0-hu.xpi 513727 BLAKE2B
880495506ca1d251f675b0922eb4c7dae4b491c5ac95f4fd12ac3752563fc5af28dbd326821f5304d273702acc2ff5566c9c7c85f40a94ae541765130dfc4870
SHA512
06d95c62c2d9ad363c2516b9b83f348ea0388f6c53fa0f53d8f4caf367f7f4909ddfcddc66daa90375ad44eaef71112ec3214deebf09313acd6f8944ebcce2f7
+DIST thunderbird-138.0-id.xpi 463635 BLAKE2B
b8fcc195deecfba445bf8d27263c0fec4959b88bb8d757a5fd86be421749da1cdbba7025a5fa0faf7924cab5a523067dc369badb442da7e3eaafb9aa4e620d17
SHA512
abbb87903eebc6f1d0be85a4329693be9972b8b7872747864c134edcc8d90b898af8450119cf343c0a36f36ea6a8698cde79a5eee32344f4341fcb9156be403a
+DIST thunderbird-138.0-is.xpi 480773 BLAKE2B
abc814ac19dde2604bc61aed96d7434dd0f7b6f9797770d860d259a3488a7a80325d956606e2b85d19d4025d4c9899d7da08c3e26b4ce26638d797c2644e2867
SHA512
be79afd1c7ccedb3a76e0d49cab94aaf70e8dd35beb17b9d548c9486914e67d069eb1343164c38f2abdf91bd3040825c21d79cc4e16b65549abeec56d629e58c
+DIST thunderbird-138.0-it.xpi 484897 BLAKE2B
cb899f5eb30dc31bf36790519d559bbf0943faad22b7a1c824b8a0746b54b88e3547e4a846364c7ef1b7cc120b3fd3bed632b9c6691e7c01312e839568501492
SHA512
b623b1a50a8ac5095ea5fcdd199ab36975a3b8cf428810fa4d0a5333fd732e0b9b74a5e6d4b0db295a723be866fb2adc2a2feb69f6dd3c89cdf08da3df0f0945
+DIST thunderbird-138.0-ja.xpi 535301 BLAKE2B
194e78578dfb67dbdf5079a08c1ec89a4a9962651033fe0557c3fee76a95f99b198326e341efe0524c1fcb0d50fce0db371b06337101b9830069e2eb12ee94a6
SHA512
154ef21bc45fb07f9c9ad6f47af90aa29f7f17374d28085a925ba650d1963180800dcd2f061422141ee182dda7390ce4474a3769d5a9e3fe838b548bb9d55a1f
+DIST thunderbird-138.0-ka.xpi 540337 BLAKE2B
ec225fea08e8fa8e631f417281d6231747c7bea925dc343382b9e9de9bc4337baff3f63bbdb26af123d2e607134e0cc574d9aa513495027a99419165fc69df49
SHA512
14df52b5886f29a2b6cc5c92c446fb9783c9729bad38e9d7ad01f7f3e887b8755ed710a881356caf230608f1bbb6a9c81c18ea66cb6ebb3bc9a2d3dc1d5dde4c
+DIST thunderbird-138.0-kab.xpi 463062 BLAKE2B
66b672a50f0c573c9b0aa78463d988f76042bbae1596eaeee0abbf5bbc8d98348b9c23d211cdfa9089b9f2f880620afceb90aee17c1254ecea2669046f14b33e
SHA512
b0a4f7bdb287ede1735593a300968356dda01e11c5723626b57f66984a7dc5cff6a88fc957350fdc633a478082b24ea13db0d262c7bd8f0e1748d6398702b4da
+DIST thunderbird-138.0-kk.xpi 569095 BLAKE2B
314086d31a2d04aa1a5d624561c3a86cfa1d8d565bb656c73d7f4ff22e583d7164c2042516120cbd89ccd4c34264f661b8a8b5d52e0c2fc4f99d5e18fac17e37
SHA512
7fff5a4195fb0fbed6b72d30abeab8839fa472a05f30b439dec510f0b7dec0e948d36119b81d0a560797e9d282e69857d4ab6dcd51c6de32b1ac122e7306598e
+DIST thunderbird-138.0-ko.xpi 509787 BLAKE2B
731cb6fbf1a099fc21a2844b70593ef53e16380b3cffe4dd279812e7a29188eaaeaef6c2ec0ee457ba5f5bbe2c1681f41794ee7f3e323d1e797a8096c547b321
SHA512
fe620569b0721a8c68eb2da720ef7852fc593d52dc07921950003b73328d5f6e196b580f501b50195b3e8644115dfc2c559e5da787e55403cbf43ba2fcd4b488
+DIST thunderbird-138.0-lt.xpi 441911 BLAKE2B
fe52e0910836c7d16bfaf9c828c63e301b59660daa97f4cc7e9ef8e575ef3ea52a6ee1925a3663c0391ab9c186014ed56644255735ead9b798782b8affb9542c
SHA512
ee206d2110c6424563f0ad8f9cdaeaa64087e88c9882127d6a9e6d85e1a1673b47da1eaf61c7eafc051016809373edf2b4e126f1680074e4938908ca08eedf02
+DIST thunderbird-138.0-lv.xpi 391657 BLAKE2B
db1ce5d93bb604a0afddc589bf59542c2a0407ea21f79db9214207ff8f719012342ca7f7e21b398cb4bd1e1689e694c2224dcb22576ca1166dc940fadac4ad57
SHA512
f1f0eb7bcb1148b44f4fc9bb8d73580cd87f91ce2c734ba75b56b06118d62a1f240974cf1c5575010e1a3c5074690a1e07789c33b94014cc806a266883907965
+DIST thunderbird-138.0-ms.xpi 351836 BLAKE2B
d9f0f8bb6448e2c359163ba67c12e51e9405b06abbe6e2f13fdee10d4229a950c6f4601d48f8c0a91878cd8a72b7c8a0fd794a65ecbf390ee7a9be61573913c1
SHA512
0161ac8864cec4b0dccdc84a02673de5483a4f963fd3ed13713c0ea303beebf1bd01979d72fae11ab548a8779d7e90c148888042bac00ead845a1165a1dc9ace
+DIST thunderbird-138.0-nb-NO.xpi 443703 BLAKE2B
89bf61a110b2b62016cf527650e359d02f8d7577ffc8adc9514e0082857695c7815bb61f08670b29d90cb679a19b6199dd2765574cfebf734faf7f86ec447db8
SHA512
93afddb90a2feb2c6995c0c8dd825b43f4de3ec46f8f5b6be02a2746948e4f9f38433e269dc04e5507f7c4da742c68b85491484165f17c5c90008c4bd2228ad2
+DIST thunderbird-138.0-nl.xpi 478550 BLAKE2B
10ca3ed6bede78b6647325d782d747923d63927625119be5223291bc79745af3b40db9173a7af0845f01e1e8c12237116007241b7ddbcc6727d0f69f46107296
SHA512
b8004010f59f4633788f7823692d212822409eb91a900db4f98a65c5905e7978a8c330ab0fe98a10c69dae14cbf47945bf329af6a8294ab55c1ac47ea1bf4395
+DIST thunderbird-138.0-nn-NO.xpi 464543 BLAKE2B
3947b15769fd58d3bbaeabb8b276a1d9b94d11fb12e49bc838fa79752e9f15ea982422e09f243f87d57661546b756e874c1d2d82e62bfb7ebf8763a761706141
SHA512
4690db48e8a489f5ffec29844becff40d58e8b11980b45d453702867fc77355974cd2a7c78534bd56bbcfb6af8ddd35b4c41a9301684c96e309819edb72d7ee6
+DIST thunderbird-138.0-pa-IN.xpi 432790 BLAKE2B
60b38dda84478c2e6bbaf8d0f76395203c3007af6ebc6f99da1f4ed7b0ef5237fabbfb46ea58510b9912a4d65fa1df3dc12707862d721637f4eeb0ebf0c62219
SHA512
7c17f11956a544bc969e30dc1bf47e4a4dfcd7cda0f6f39a21a7f7b01438bbbb7186c770aa819323d69c908b578f5f4e0155fb8881e6140ada4457163e66b3e5
+DIST thunderbird-138.0-pl.xpi 511053 BLAKE2B
e9137b68309c77e0d4cf922f23aa4d5cc93f2921d3ea825c3c6d0c3f50523d6088f1da2e4ee621d4f434eb3fbc9185732b4520a69133e66bc51423807b19093d
SHA512
9052599b43730baf7a2946901bc917e225e9021c9aa63bb8d9448424de9db0a7b727c53ceafd63f57085f4c387f8b596f4c807f7ce8268f86520b7190166a60a
+DIST thunderbird-138.0-pt-BR.xpi 486096 BLAKE2B
2abb0f043c92a0f21c212e8d220096600b01f182ebfa2162746f83b00135874293943c4ec92aeb9206e605784c8fc12733d254c6beccf53de5402af64003f972
SHA512
9457576177a5f302ad5fd00cc11e910374afa14e87c16c76bb3c2456199f3d16ed8bd1d21ffe8f8c74b2e1ac5bb51a802fc40750925a9ffe08d2feffc7829360
+DIST thunderbird-138.0-pt-PT.xpi 481030 BLAKE2B
889e60b2ff980a96bf0042086cb8534da151473c4dd615b6d05e1bfc12d7bd10d75d64fdc7905f2ae7bcf2e31cfb86374f0aa55cd05da1ce5e2405fa6271689b
SHA512
7a9ee59149cce9b67f02482d10daf129f01c2c23119a5c11627eadf28ba2570affbfa41d170f0d9e0fbd5883caf8ef4b093cc2f97fc6912c6a28645377f5a610
+DIST thunderbird-138.0-rm.xpi 486828 BLAKE2B
86a3a9bb05ba5c3df79f7396587a3dba04ea67d7891c909b72a22edf32e7500eacfac18a39dbe5ffb380c298bba126565c746da028532a55b397010d03bd4b86
SHA512
59f9424ab7e1ac813afcaa70084905d17cdb4da97ca6edbd3506755da2e7c3f18274804af542766d73ba433617a0b712850ee90ada1b9fac967322df9d2de455
+DIST thunderbird-138.0-ro.xpi 417510 BLAKE2B
8451fdbbe54da460d511c92b85a8020e4500fcc55232b22917cece472e113edf964b45ef4d69d45f2169cd09ad184c17f74061815bbdeb0d47ba3ce639cd4d58
SHA512
3c41288a39a3cee055e8e4827779f0f41271465fc3c74605c8e071f96f5b76662e38e2053e6aba680674deba97c745764b8a717897859e733ca16ae0a4118355
+DIST thunderbird-138.0-ru.xpi 588301 BLAKE2B
36111a689a9763bf435c615099395ccb36108501a7b4dd687567e7152392e03827b3221c26f02215d315298e0ae95446d2f8a91eabec4a42fb35397d3ff2a780
SHA512
1f73e8e71005e4d5e48e184c658629c6b69bf50a193872a4dde9290a3ebc0fdf2b431a0177337c7378585a88d9ce6ff4179769c30a9445c70717723b1b30afaf
+DIST thunderbird-138.0-sk.xpi 515102 BLAKE2B
662078d7dcff1ca0132f122248d5b89bafcaf314ffe5436d65f2a350d793fdf05f4adc884599b2f3687717c597bf71e26b6760129cf7a4cb45fdb4eb94af06f6
SHA512
0d82b6201421f7bfc4fe4d59581c0c6a4d28e866891df5feda53951a6f91784a40c298fca5efb3558cdb5b64a6679f9e16d5b06b66e45348b82221927eeb3a9a
+DIST thunderbird-138.0-sl.xpi 481930 BLAKE2B
82fccb014e2287fa120903d49ba549c85892e2a85e81ffd9c0992d2fefa042a31871a711dee627e0857067de8f7f3c98ea2a2785292d4a30a702ee45d2a307aa
SHA512
7f19e3b0f4aa78efb618e90fa208fc0801710fd3f332ab6c84ac23bc50332ec672d382d7342ebfdbf96b40f8ad632c0c8e8f6ad3d1bdd226988377fa47c5a197
+DIST thunderbird-138.0-sq.xpi 501797 BLAKE2B
6171ce317c95f567b8fa2b9fda5cc5844c6083845996fb7e0d8af8ea57a3238dd02e6bc9e6eb46b9dc9f33dcc67bd91dec4d745dd5406a2e300222e3e1ba0cdb
SHA512
4f60885c7870782b6299baf0c443164797c1c753fca192dd7ab8420e5b3dfb785589330b69ee968e1dd39985c45357be346af0afdc5c156c807a10ccf37194d7
+DIST thunderbird-138.0-sr.xpi 495834 BLAKE2B
ff2d01a6e13bdbbc09228495427bc695bdd6fe9c57fccfd18b93663b83ba1d1b1899328576627cb08e2c405f8e4092c5b0999f02e1896807de5bc65b16bdf0e3
SHA512
b81ab865c01161022d8a0136b885c1bd5fe660ec68ae739bae2335d0db1018e7b6204275fb9294da95ffff6dfc114e681e5772793eff0d0ea549bb9e7d12a60e
+DIST thunderbird-138.0-sv-SE.xpi 480919 BLAKE2B
36a2b12fd81f86e516f8c0cae5bbca370ebf1f75342006c6f20ffdf2db6106a4f66e01fc6a31e51a2dc012dc96c58b1e13b371986c1413cf645cd6f00fb2e836
SHA512
f2f3b4dae74355d10be8d61904a2f9cb24999ab27453c620650c36c63e6d581f9712bc8b58389e34a3c8b2beab2944f4d36b7b8178753f58a94147445caef158
+DIST thunderbird-138.0-th.xpi 561779 BLAKE2B
56aff0268d3349de1ca3a334f51f24b73d9b67586029cb1b0149532477d0e395e26898acdf6324b300f33cdc40173640380256b4272ba64bcb25b70723c99395
SHA512
f687856d854c9fd554b9f6a9219ef89b155eb9372cef46f8183e04c3060952b552416927e2ae97cf0440b4ce4a14f2e4dc0ef1978d700895d3516a0510434f11
+DIST thunderbird-138.0-tr.xpi 491038 BLAKE2B
2f460034ef0781e064dbd49370feef3e808c4d736cbcfe16842dae727279aa8ac146441eebd1f1e839ca7d0530e9e4b857ab006c98b2e52ec72b2e428e51e4e6
SHA512
81465bd1c3168526a6386991b1b09fe44376f8e9d615a70ba12d130f71455c3e65828505a24c67c855cbfc2f6fc2583a467e000169f63fcafe55917e32d5f56f
+DIST thunderbird-138.0-uk.xpi 577317 BLAKE2B
9dd9dd1acd94ee7d8e9794699699b5eba476d53c5a1257732a92c75a400032649f3ac25e6b944dd4d9c0a7631d99dd3119142c61dec80bc7d5948e0f5ba2c71d
SHA512
16ec9ddd09f8f152d8a01e0b77ca941f39809b147aaaf65f66be5895a7f2463b9336d60fbdf357ce9f9cfd3c9ba8dbf609e44e10f3a85b4803feed490a5c2d17
+DIST thunderbird-138.0-uz.xpi 355027 BLAKE2B
b2b327824baa717e1e1266d37dbf0e1abdcb6ff13b234a4c10cfaca50b3361cf369aa3871b3816411f71b50adcaf7fa9a7216a877e3ddfb1af399e0dd07b5391
SHA512
da3bb130b059ce28c682c50f713a749d13806d550922f7e3d69796a204b3a320110fd3587d9386969abf8cc0791d3a8be6d7741f27cdfea82ef7cbd3312aca60
+DIST thunderbird-138.0-vi.xpi 514979 BLAKE2B
36570e18ee95a3a3636f4a5972cdbd373dc8774fdf69a4b6b798fa3c048cd895a7a9d0bbb9bf8fb45ead32f374a30c0163b827381bdd4c8eb9586360ef450797
SHA512
d680e1a13a130a5b355961c7308edfe72df0e67bc9de0491b968efbab260f5c0ab20bb06602308216b9cc221d4bfa08c36291cc6415409982538dde32c31500f
+DIST thunderbird-138.0-zh-CN.xpi 504314 BLAKE2B
8b6f9ed9fc6373b5b09db9db9c2156374f47b0b48d3b6f991a313f47ba723857769db63eae8978e09a435624aeaa9dbbeef403ad7554e9921518b28729f0312d
SHA512
97e98892189b795f35efc54213c07803d12bb3fd60e8e94d39432d0eaa2cc291a0cb77ea7029c45b8d607e05bb8ce60f7fb6ef842fa6c513e4fd319c74685aa0
+DIST thunderbird-138.0-zh-TW.xpi 507439 BLAKE2B
c769b1a876281667938575949d92c84cb9cabd3d84dee9d6d6bdf20cbfdec69618e0cd6f712051d6ac13796cfe73f9707d27dd090315a13d11af9c883d5b9680
SHA512
dc05052c9726bcda8940ca8add21b87e3e46efb1f8f86a31b4213197c389eba42f6ced8164d0f8f7f1ff6caa9315d006b82a5c1316db0f3dd238e83a0755629c
+DIST thunderbird-138.0.source.tar.xz 749291604 BLAKE2B
3c3985cc69e00884693ee12ac414dc2ed12e4c2d4b4b4534bc216744e4d006b1df8ea68667e35a6e597abf4abc7eb8657fa298effcce29e203355a37030d8c45
SHA512
923d76cf0a14f29146e5dcfc75dd9522d465512f6c604de6e0acc0812d4240331c170913a821fc0aa03d5945019577f996053498c9a7c691b21a2678a622ac02
diff --git a/mail-client/thunderbird/thunderbird-138.0.ebuild
b/mail-client/thunderbird/thunderbird-138.0.ebuild
new file mode 100644
index 000000000000..4bbeb1d3c1b0
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-138.0.ebuild
@@ -0,0 +1,1156 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-138-patches-01.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-137-loong-patches-01.tar.xz"
+
+LLVM_COMPAT=( 19 )
+
+PYTHON_COMPAT=( python3_{10..13} )
+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 autotools 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[@]}
+ loong? (
+
https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
+ )"
+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-png +system-webp wayland wifi +X"
+
+# Thunderbird-only USE flags.
+IUSE+=" +system-librnp"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )"
+
+TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird )
+ !system-librnp? ( dev-libs/jsoncpp )
+ system-librnp? ( >=dev-util/librnp-0.17.1 )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/lld:${LLVM_SLOT}
+ pgo? (
llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.28.0
+ net-libs/nodejs
+ virtual/pkgconfig
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ !X? (
+ || (
+ gui-wm/tinywl
+ <gui-libs/wlroots-0.17.3[tinywl(-)]
+ )
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${TB_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.110
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-apps/dbus
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ 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-76.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-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 on musl
+ if use elibc_glibc ; then
+ rm -v
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ fi
+
+ eapply "${WORKDIR}/firefox-patches"
+ use loong && eapply "${WORKDIR}/firefox-loong-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-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-nspr \
+ --with-system-nss \
+ --with-system-pixman \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+ # 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
+ use system-av1 && append-ldflags "-laom"
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ if use system-librnp; then
+ mozconfig_add_options_ac "+system-librnp"
--enable-compile-environment
+ mozconfig_use_with system-librnp
+ else
+ # This controls the backend of the bundled librnp. Choices are
"botan" and "openssl".
+ # RNP Upstream recommends to use botan. In Gentoo it's
preferred to use system-librnp.
+ mozconfig_add_options_ac "+bundled librnp backend = botan"
--with-librnp-backend="botan"
+ fi
+
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+
+ # Increase the FORTIFY_SOURCE value, #910071.
+ sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:'
"${S}"/build/moz.configure/toolchain.configure || die
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends'
--enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland'
--enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland'
--enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11'
--enable-default-toolkit=cairo-gtk3-x11-only
+ fi
+
+ if [[ ${use_lto} == "yes" ]] ; then
+ if use clang ; then
+ # Upstream only supports lld or mold when using clang.
+ if tc-ld-is-mold ; then
+ # mold expects the -flto line from *FLAGS
configuration, bgo#923119
+ append-ldflags "-flto=thin"
+ mozconfig_add_options_ac "using ld=mold due to
system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to
USE=clang and USE=lto" --enable-linker=lld
+ fi
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409.
+ # mold does not support gcc+lto combination.
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd"
--enable-linker=bfd
+ fi
+
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # lld is upstream's default
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to
system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to
USE=clang" --enable-linker=lld
+ fi
+
+ else
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to
system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "linker is set to bfd
due to USE=-clang" --enable-linker=bfd
+ fi
+ fi
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-jemalloc
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac 'Gentoo defaults'
--disable-real-time-tracing
+
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS'
--enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS'
--enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default'
--disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default"
--enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # elf-hack
+ # Filter "-z,pack-relative-relocs" and let the build system handle it
instead.
+ if use amd64 || use x86 ; then
+ filter-flags "-z,pack-relative-relocs"
+
+ if tc-ld-is-mold ; then
+ # relr-elf-hack is currently broken with mold,
bgo#916259
+ mozconfig_add_options_ac 'disable elf-hack with mold
linker' --disable-elf-hack
+ else
+ mozconfig_add_options_ac 'relr elf-hack'
--enable-elf-hack=relr
+ fi
+ elif use loong || use ppc64 || use riscv ; then
+ # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+ # see bgo #917049, #930046
+ :;
+ else
+ mozconfig_add_options_ac 'disable elf-hack on non-supported
arches' --disable-elf-hack
+ fi
+
+ if ! use elibc_glibc; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # System-av1 fix
+ use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support
arguments
+ mozconfig_add_options_ac 'Gentoo default'
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash}
${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org
default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then
+ # increase ulimit with mold+lto, bugs #892641, #907485
+ if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+ ewarn "Unable to modify ulimits - building with
mold+lto might fail due to low ulimit -n resources."
+ ewarn "Please see bugs #892641 & #907485."
+ else
+ ulimit -n 16384
+ fi
+ fi
+
+ if use pgo; then
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+
+ if ! use X; then
+ virtx_cmd=virtwl
+ else
+ virtx_cmd=virtx
+ fi
+ fi
+
+ if ! use X; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from llvm-core/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated
rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+ fi
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path",
"${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the
pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name
'*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions"
"${langpacks[@]}"
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/comm/mail/branding/thunderbird"
+ local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if [[ -n ${MOZ_ESR} ]] ; then
+ local desktop_filename="${PN}-esr.desktop"
+ else
+ local desktop_filename="${PN}.desktop"
+ fi
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" || die
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ver_replacing -lt 136.0 ; then
+ elog "In this version of Thunderbird, upstream introduced an
in-app notification"
+ elog "system. Setting pref 'mail.inappnotifications.enabled' to
false and nullifying"
+ elog "'mail.inappnotifications.url' may help you avoid these
messages, if you don't"
+ elog "wish to receive them."
+ fi
+
+ optfeature_header "Optional programs for extra features:"
+ optfeature "desktop notifications" x11-libs/libnotify
+ optfeature "encrypted chat support" net-libs/libotr
+ optfeature "fallback mouse cursor theme e.g. on WMs"
gnome-base/gsettings-desktop-schemas
+}