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
+}

Reply via email to