commit:     d542a15d30071bbf753da0b851812f66084d20fe
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 17 07:11:48 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Sep 17 07:17:46 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d542a15d

mail-client/thunderbird: add 128.2.1

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 mail-client/thunderbird/Manifest                   |   65 ++
 mail-client/thunderbird/thunderbird-128.2.1.ebuild | 1190 ++++++++++++++++++++
 2 files changed, 1255 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index fe9c1c616efb..94e789805544 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -326,3 +326,68 @@ DIST thunderbird-128.2.0-vi.xpi 787029 BLAKE2B 
8905a673b71236891630a9dfac65575e5
 DIST thunderbird-128.2.0-zh-CN.xpi 785328 BLAKE2B 
a5cad2e891779711ab6be31929d96647c95b93bb50e6ec31f8a4b4f87eb2881f9ed20bf5818f4475aaaa301ed4a25a6a5350fdca9ce3d532747ff9a74593b535
 SHA512 
647dfe19d2866e1455d9c21ff0576f7a6ee5a780f5d07ca11cc02bade2a50cf42f21270d573f74258feba2a9adbede415fa4ae4a71e87f77a133e8931c259b47
 DIST thunderbird-128.2.0-zh-TW.xpi 789781 BLAKE2B 
2f584744f1ec20465b5e39d8cb966543a1d549fbfb133392aa6bea100f3657df9b29c01d4f07b3bdc4d531a370f7da8d0b85605a680d36919eaf2e4091b4aef6
 SHA512 
162d5a7ef2e84e55424a6fcb14d18999d0b4c781045180a30394d7f767507dc6b1b084b2d4f3bed63b11d605560bf1fd59fbed7ed0d1e0dce6e47511ed7e6a8e
 DIST thunderbird-128.2.0esr.source.tar.xz 674856032 BLAKE2B 
d86751b94bc6b611fa2ac740e79e57f4321d048e9bfb48f4237021ba2282036b79c449c08837b8b4c19e884cfb900493af4a8f6e221c56a4849241cd32d66de0
 SHA512 
24af7d705c13a0b49b0f9fa66a4d17ce4e95b65cc60f84f56364dc8fb480fb61b80166872e234a3c1cb843624874757407b2d9f0c5af82ddf2bf86de82571077
+DIST thunderbird-128.2.1-af.xpi 530350 BLAKE2B 
029e36e76659b7ba83108dc975b456f57c088271d8f423574222ea3074861e7c8828a2e1949ed3b5f0119c5a141a17292a8a8deda0a97e484e9ebdd293701a9f
 SHA512 
b4df011d615580de03296452a21012ca656b45889522bf80884a98bc3fac51f6913f34b525fc42953ee3e7ff2750c2bf6db4c0ae87c1af93f7fde709fc64b58c
+DIST thunderbird-128.2.1-ar.xpi 679867 BLAKE2B 
8bda4bb4bc068343bfbe89a59a24feb30c8205563031e549d0caa0fb30e89651dedd48ae0505bbf0c15bf56d2b568d7545d71808e78329ccccce038401f54206
 SHA512 
6d419a49791e9fee211fb3856390009326e86f99b45af0622f93a8f345abe15aba24b9c4504b905e11c96ceb267ffcbfe3e8eea9b010b55397a7ceff1156661d
+DIST thunderbird-128.2.1-ast.xpi 561054 BLAKE2B 
21f75810f09dc385b2932d2561044b12d38c04b70b06243b7b500142eb4c1acd82d079e07ea2d4acbf142aa836b9d1b48b8e24ab45733692a98b1250f107108a
 SHA512 
a57f06c1053fc94d4ad860312411008aae42fe71599aeb75f7f619e8049d8f3c872b741524c86dfcfa8c7984450086c5778aa73f62a7ef76967bbc3467aba51a
+DIST thunderbird-128.2.1-be.xpi 755106 BLAKE2B 
4c19d5e5c913bda45b91dadab5156f6c0590eaf687bd7f016164a4f1c4c0ca386dba7f3b30edcf3077c5097c3fcd0e56d8d3be73d0140b41fdda9000b8ba5ac6
 SHA512 
e68ef72706ace40ec52e0f0961f96c7878bb5021e710bb820538beff2afd8582fa5b251c937346488a5d53f25a54e843993d45d1ccbb1de204b4abc7aec76831
+DIST thunderbird-128.2.1-bg.xpi 807861 BLAKE2B 
f11eaecb49b7a4de63e2e0cf38726936384545f8313ecd4647b19f8a2f71acae5e897b2000e44bdb3a44875e1264aaf4f88dc2c1bd5926dbabedae3068dff70a
 SHA512 
d5f963301783d61f79a3a89d87f4e36f2d5e44de05937c895a1495a7d045565839efa884a75ba0de1e59e3a5b2006248ac0b02fedbbc6d8f0f9dc820da496006
+DIST thunderbird-128.2.1-br.xpi 652477 BLAKE2B 
4983dc599fa782e1138813b998205f136cf6946c0e10343ead4b4ae59046bad38e88bdb45f8ab776bf09e3524e8cb64bd9c87e5c3c9fb6d2a46d975e62bd76db
 SHA512 
789e9e2960548e30e11b48578d6f3fd9333e8cb6a8447519cfe40e931bc79d4d5edd25f2a1084b62276cfe1997d4089a71a03480a7ed0d770811f0c406843596
+DIST thunderbird-128.2.1-ca.xpi 708967 BLAKE2B 
d31dede8764c4703f7e1cb3a99f7060965fe826b9f2628aff1ae699eeeeca1b2091f5407f694d753a5dfc0f0472e293559644d11ee690c8e03bd9187631b5b23
 SHA512 
e78857f22081990ec3fb23cd99734d00d6df2242723fa6e5002a27bcb4540adea4c7a164587a3b5622f8fe6ac3e27d4ddf8bc1f3c519ba256be08a3a0169e1a7
+DIST thunderbird-128.2.1-cak.xpi 671704 BLAKE2B 
91652a7f2e314077a4ea1d5121daf18f01ca157aba0295b1fbea77782acc20414311286c5c69fb4ae7bf6b75ac101fb67aa7704bf55c90d83b39987256a35d77
 SHA512 
d141352ec32e5a22bae9054e0a1609f87454f6199f45bda581ec85d7b3208071e2edb009a96db63f4504773a0bca2948d592731d4362cc4964b23bb97aaa7dec
+DIST thunderbird-128.2.1-cs.xpi 785043 BLAKE2B 
614f7487f91c2008cc929a1fe9ef65dec6c1279dee8db443c0a17e6a5c20d674aadf3e21e9a10d9aed1a4f69decae46501bf07d0dfa22e7da7a0c409bbc8936d
 SHA512 
07a416b0c33b1dcfc95b0e7086c8a44aa1424b7fbff5e9bb08c0bc23ccbc13ba4a8cb6c7d7566a12a26c78bbb670c5d2539717a5bcb6c83d9376e1f936b4038a
+DIST thunderbird-128.2.1-cy.xpi 749052 BLAKE2B 
de84446f54c6c875f90daad0cf5f77dab164dcf2e4525592354307397af51bf825dba73e65299614880e5be8d44b08404a78281043b05767d2b1fbc1f6595b97
 SHA512 
2da1b3a314d1072c029ac00b6ef4f8bd4f23d34e69ed94255b01ba0b7932e8ec19c169efa65b730d822e4804d9419eb0aacd4ec4645f14b59b3f98a796892780
+DIST thunderbird-128.2.1-da.xpi 734116 BLAKE2B 
ed0e00f99e9af82fe622f11dd114848d654fc10268c6f7c2d488d1c40a18ad48e803a0a7c952a990fb3a4ccdea60109705bb36f6b24837f95875981f57066c76
 SHA512 
bea309acb790dd4e605d9fd83018d3436a76942f3a04adb546fc004a1ac30704670d69f8397cc32666a59b4180dc1320f49f945f96e17718a0f1a967a326747e
+DIST thunderbird-128.2.1-de.xpi 766250 BLAKE2B 
7befc0bd55804848152a38882b28b3179103b750e5ba03aca0d25ee8993b15c72ed8f913aa1204d093608ef8e7bc6292cb965ab7b34e4e568701135989dd755e
 SHA512 
8209b99caeb1807f6769efe8ac52780f25832179d6db98945c9b0cc5761ff5d7ec2c511afa359ba3bcb27ccc5f176bf761f639a8e68df8082a8615511a5cebc5
+DIST thunderbird-128.2.1-dsb.xpi 782740 BLAKE2B 
2efbe071cb3526babafb7d2eb67da841c558da46b5f5d9b0bf823a57f36f75fa55f12eb14834d83f04e5308c6450316148430d264540d541ae407bfe86254985
 SHA512 
665d1803cab339390b6713e9628a31008c62aec62dab9a14e77d380a507a427d51fed7969d17982ac77d2bf10621aa4dda72c1709d96415dd8d9f0793fb0e0d9
+DIST thunderbird-128.2.1-el.xpi 889269 BLAKE2B 
30fb03354dafd7fafe65ee852c24e639f577603db2d507aad0f4c4abfcb3adbe8d0bb3ac3eef5dce3905846f34acc25a8adb29a63d86fa7e99da9630629fa9cc
 SHA512 
9c890d99c9e56ad592860a5cc8254fc8e685f93e5e77950842aa9fceb475ad61508884ad9ee9fad83b502b5de5723f7d3d4581b93b7910b7e34af7b9c0a073f4
+DIST thunderbird-128.2.1-en-CA.xpi 702143 BLAKE2B 
caf415b29be838a19680ccbe85d9e5d79672544b11d9b6ee13c69c3643b9f6a64e6a148d5bdf833899c01fa69e9e2cd59a99dace7743c6786e0758d46c3ff179
 SHA512 
5b536083b37a40e8aa189485dbd4163eec28c12a1ef859c4d2187d4ff54eb0761dceebada0c5dfb797a5c47adaa39bcad655587a74b5dc3a70a4fe49b9dc1e6f
+DIST thunderbird-128.2.1-en-GB.xpi 702699 BLAKE2B 
d6daa753116c8f594628ab3eb444ddf89a3aa625835fecf3f06558de9c00d3fb7aae563785f227df866b008bde68eb448817d5ada60e67a11483a09ee0cc4fcb
 SHA512 
8df247357f8275d36455f5566856c1687bb45ad36b7211111b2bb9df639cbdc7d3ad32ef32fdbe5178ec7ffdebfcc6fb73854bd26892119adea09221f977b5e0
+DIST thunderbird-128.2.1-es-AR.xpi 758349 BLAKE2B 
8147f1d2cfc69e47f8438cdf231421b4e01b1b9e013a56755fe917ecfc835b04c06bb0e163b0898e7509e92f9cf0b9506c15ccbda54ecb16324491cce9695e68
 SHA512 
1d8c48570c62db60961308c401baced3f7a4b533c3cfd482760c33a736b647144bd674ec56ff0ab68eccf0144924218fcdb4b1169b0bbf68f46e059a748d242d
+DIST thunderbird-128.2.1-es-ES.xpi 723515 BLAKE2B 
8b01aa7bd41aab8f9b28688565ccbb91c69456ceea8cec9556b45ecb987e2a57139d021cfcc449553ca9e8487f818bbd3d16421dcdda57af81f06a96fc19bc50
 SHA512 
f81ba9665788c67cdf607b1d381fd5e55306e8796e4879c9a8ac86a1fc252ae8f574706cc59b86547d30db38a7e3c3c73fb1d2165170dea11507ce052815cf8f
+DIST thunderbird-128.2.1-es-MX.xpi 737708 BLAKE2B 
8c469daa61ec503df621fe7a4b1b2003495fadef96ea914507adeda2e4c6fc9378b553f351d9fdf5d3118b45251ebef3ac5f1d7b7a882f9c54c5f158f8955c06
 SHA512 
7797764b28d2b63e6741a4bb81b6841472fe0a49c29448edbe1f37fc5d7ea986c6e8c9eba2d47e0a73dc08c5985f9af406123ccb2ba7d853a11e528220c9d8e4
+DIST thunderbird-128.2.1-et.xpi 696281 BLAKE2B 
30a5b741615a7e8059e4e7eff46f13246fb4893a7487a2154d3aa4fb67d1fe9cf976db8de5fe3388284a669f21e5994b7b69bca622db842b621d38ee0f1232ad
 SHA512 
766771bd0036b80c201d8a4bf2328f14eb3f78f5e9cc128d82d48463803dd1e1bc91d74a92a98b0f9b37bdabee921d412b4844e75974c187f6ee8dd3ff78b4a7
+DIST thunderbird-128.2.1-eu.xpi 726802 BLAKE2B 
3302a687f6899ca2a02aab958d1a3d568245b67a8e2c8d7800cefc5c4e1235237cc446c34c130065d7a0c8cbc532fc8a732517fede5a138121f9a4a090b8e99f
 SHA512 
5b6f0770ac7d190aeff30bc177379aa5a7bdab682d9ce3944aec5215eec3b67bb807f0fb3d534c531619b7e81a494d16632be7b01e50dfbad862c82164da3364
+DIST thunderbird-128.2.1-fi.xpi 733651 BLAKE2B 
840f69360c340ec1bda7031530ca67448750f87d10dfe14601b4e43e261b4e531c08b030c3d4e2890731343cc6a84ff2baf7807b59f2968d7b94f6a436d91b3d
 SHA512 
15cacb9af1a626a7fdeefbe78c68fd9296a8743651f2a4a9c9b7e3fd9daab72166cf6f596835a9372dd5240789badce0ea46e4d4f657598660f25576c6f15ae4
+DIST thunderbird-128.2.1-fr.xpi 770186 BLAKE2B 
d8ef58005b2b3946dd6f5153308d937d54ff3ecdf0a7786c0e4ac673e01016753dcc8a5488a8f72b17a7bafec1f52c0f38e38a481122f543082b60c6f500c734
 SHA512 
bf338e98d6a1ca32f835e45d4557f4d9eb4d9de7ac7e5d73d241d5b24dd385427df4a37d0df518e4406f2d1badf93ccfbf0590b35ce1a9990d06deaa34ef70d2
+DIST thunderbird-128.2.1-fy-NL.xpi 752849 BLAKE2B 
96b36322f9fa2c27353d66d3e35c6117b3ad85b153417645bd715c631adb67486dae62ae8f85081563980634b96e4c8afe612f21eb1d6e6d21933f3b193d74ac
 SHA512 
0a29b05cdc6e282ab945007370cd56bd96f8f5e78c24b327ddf41e4abbf981ba595b06b1da81c63cb3b34478138f7a9abb83352e5bd1f098fb505a93bed2ec8f
+DIST thunderbird-128.2.1-ga-IE.xpi 615199 BLAKE2B 
3003eaa9db402e8794395bc0b6d17c7ed21844e4a9fdfe87222d7a3c2831900704ddc6302088034ae2aa3d99d6bd1ef8a991481513ca48f9df9e73b702fa0594
 SHA512 
fe2336002759657610d0afacf53eb4b071da742a0db53c511ad45721eb2616377012ba1376994980752209aa984d466db6322cb143d28223b2f076308dd4a910
+DIST thunderbird-128.2.1-gd.xpi 727803 BLAKE2B 
14f142e6a163013e32b6b636edd64980798adf0d4210d1d933a2e6a1f66846b817b3353ee64ffaae0cbe5aae19292875917dafbd9eafd3f2306e8e373261a8b3
 SHA512 
5e95eb3ae53a81e9577bf0018e37e3c48208683bde3731b823207b5ccc9bb28445d2cac05104a14c8c99105918d70baa9470e59bdd3cb13aa13f04f5e481dbc7
+DIST thunderbird-128.2.1-gl.xpi 736573 BLAKE2B 
e9dd27f657ba949ed0f9c1487d2c8a7e06786951a05993af2600d73c89c5766753436f1c78f18239f93cc6e277af86b50366247ac76b202697772f3f53f347f1
 SHA512 
4f5d2abaf85d9beb3688f6765ccf46de53de76b26cf538ab598070a6614976cb3e2ddc98ee12972cbc84fa20bd71e7906938bb92717a8b4221ec4331b7390a26
+DIST thunderbird-128.2.1-he.xpi 700302 BLAKE2B 
19ed0bd4d55435c88326450d0886e1fa482846f2f95ef4530bacf2b4955dbefb88960ba4f977451fd206a6f6f3b54f78a9b875ab67ccae6d12b4822ff08d7189
 SHA512 
609064139d4c03fa59eb3a5879f40fabfcf49cfcac3a5f0d6445116b625e255b8e000a008803dbb859d2613525f20a30383233979c1fa50d4a1d6fd6831c9c07
+DIST thunderbird-128.2.1-hr.xpi 715018 BLAKE2B 
9db282369838be56c22daf034c72276595bc49f0ad85f2a91d9b180e97b0efbbec5cfe71d676520ad3f3ea615298d677cf8accfb7c94dcb67a5f2675885bd61b
 SHA512 
2ccdda7f559a9ae2b36fd8b6b307ec058f8e657ba8261034f0c1c94f24641b7abd5184a088b858ee2ace635ac71f319b24bec237965209fbee0fc969b0b27b6d
+DIST thunderbird-128.2.1-hsb.xpi 780138 BLAKE2B 
73c1c8f8103bc5206d04cefee77b0f6b0d85ac4616b7587897ca2edd33e582e6290b06545168ae04386886b088f65474bc630ce6a705c6b7a2b2526c547d03fd
 SHA512 
b9d9e057eec2c2d7987e5bf23ee73c1091f15373ffd405b1fef3bf0b403a0018f8496bccf599283b67fb9f7e896b120746c574a2033e544e54b97716ff6794d6
+DIST thunderbird-128.2.1-hu.xpi 782933 BLAKE2B 
b6caedfeb71766bd61b097014b88534b2d57066b2f6f60ef12241052bc1ca2b90885f3368b145f6f03e4749d4df85788b789a90790f164dc5c0c0580b7a60a96
 SHA512 
1934e9090abaf8e2ab0c6d0f9dc328e04a6643908f8c15422115d9408f7915e30bb300813ae49abfa800fd765b126fca44b9e082a5e5fe39c0019d15dfda3a2e
+DIST thunderbird-128.2.1-id.xpi 666012 BLAKE2B 
b959625f7bcdb640cfc31bd4092ed67f4a9527562273ad5da8bf3afc63908481fa8ce4d6f481ea53c5f2b210d04bfbd5d5b9afb7960b786191e12cece7da850d
 SHA512 
8ca188e30c781b0bacf564ebc76d60360102152ad9c53128136fe09f8d4feef395a4c05ab5a8851ef011a9650c3aaa80e2e97f99341e72c3bf016299f7475dfb
+DIST thunderbird-128.2.1-is.xpi 743887 BLAKE2B 
5a84e49807f9a58d59b82adee236000bb4ebafbd693f2a86959846e112eb6f61ac02622cb1a5ca9cfef2bbb8623912d18424661f87ed83197f796781928381da
 SHA512 
bc59bc564522d4a1d6603114d66744762369c011c735a71959f80c5c568491ee5c6e81f30a655defe59b3f4ff21efad1dc6dda7b92487615c51a41078fe9126e
+DIST thunderbird-128.2.1-it.xpi 690399 BLAKE2B 
3fa933f6983bf5b1644de8181c59e9637e889e5ac772a61c739cfa186cb8acd3ba9196a07555c9cc49186b9fc2d15731aedf95024072ae7a763619a2b0f10f1f
 SHA512 
6345b513959a45f9963eddcc716ebc22b02545d565a283bf6e48ae19a98f67ea6403abd1e9154e319145761b3e88f97a5bb682fc01bbc11e1f527e013b65dc6e
+DIST thunderbird-128.2.1-ja.xpi 819903 BLAKE2B 
9ab5d6463167e0e7fd818a4d74ad1191b87b35073d9bab2b34732f3dbc3272210d1353e80d7b42a969af05119b57d80b8a23ba3ae9d6f55210f8edb673322274
 SHA512 
8f96304191f9f3f0780a184950bf4ee031fc7e768beadccd114a4e4a24fdee9353e7c3e134e139acf129c59d317abf544dee325f087cf0c5462b9ec5cc418e6b
+DIST thunderbird-128.2.1-ka.xpi 796046 BLAKE2B 
8ac49290a772133c51c2ee6a23ec81cdc5856571ba299ff7c6254222fa48189ed14bc2059a6213f221ce1ad985c2684a593f60f5159426dedfc09d9f7d998ea0
 SHA512 
5be26bdd75362aae33a9f77bd772caf34f67fbc98a90dcf3a17d215d6f40d382ac04fb0a5af99aff16d7d207e45e5b4fe9e53f368ce578e696adeaeb7564a44a
+DIST thunderbird-128.2.1-kab.xpi 731858 BLAKE2B 
0c669becc31864983bf1717b9dd2725b0f1df72a26ca976aae5db8ef21fac2b54596630b858fdf110b95747a7a4f9aa5771666cedfe1f40da0c2e27101b004aa
 SHA512 
1d79709a7a8c7171129a64093bde5263e2c35c17a4c99d0efa8e7e0f4f8d65d525d45e17ed51e7633ece13b46a0283c3b81a14d6ec72af046cfd311be6ea8614
+DIST thunderbird-128.2.1-kk.xpi 857290 BLAKE2B 
f5d67baa0271251c71c6d78e86e2763fbc6e223c14f8d2b388abd8d9a55d354eda30c99f2eb1b8fb9e1425b8bd74c0099895258e4e06ba025379a181a8020230
 SHA512 
582527b1aa96a9bffb00fc8b5b09de677268405b074a9f43aa47c29513c0110c22fc6b5f528e739d447b2556065c5e338635cb71bcb6c504be29d86adc8a3bc5
+DIST thunderbird-128.2.1-ko.xpi 755164 BLAKE2B 
2e8e5bdafb6cd287003e68552573434fad16a5269360c0c07a43d8f4193ba70d1dfac79e9a47fe038fceb8b21947d591352038612023e3a8ac8029f19991bab1
 SHA512 
2d95d891f8b99ba68eba67e3b54c2bdc440de4c8c5aa27d745cfdf96c1ab843b1cb24db736e85aef3c82d6b18ae1c339a0e0aa7617031314f3f934f25f5ff07b
+DIST thunderbird-128.2.1-lt.xpi 700919 BLAKE2B 
9279a164acdfa298ce75107669a3c38b3d661e3e882cddd8e63f90fadbd7c6eb46160f514282b241ee97c2ee7dbdcd1030e59e102c2e96a716a8575f6491a2e5
 SHA512 
fdc8943bcfc112676fb4211853eb2a33ff8a33488e55b01473214b75e33c18ffea7e3340cc291653260101eb2c3cfa1dcb45487b5f8406595d7d948b8852632d
+DIST thunderbird-128.2.1-lv.xpi 623625 BLAKE2B 
fadb3eef3480df834da8242ee71a21ca52084a5ada7664fa4dcb52284fcae079fa6bc075eae764192551d8908a1a7311cfc36543f9dcc2ebf94b2a5b2da8af22
 SHA512 
d1218de16de091b469e45bd1836dad34fdd1f4978b351aafa4712d2abc29db3400c6adb5b802625e6d104d45d20c2eb4e68a50375ad0075f9bd82bb95f2833f2
+DIST thunderbird-128.2.1-ms.xpi 581083 BLAKE2B 
dbe1ad18fecc692990d6d0bbf9b33f7ff34b8fd5854ec8ba8fb123f1f5f2b5d69bc186096dee9dde0798fee63171f4f768456fd02b536b54c01d792e5ae28bdc
 SHA512 
c6eaddc26b9ce6a8f71959878c43c59816cc8141c188859d1286a5656aed0c0f13fd73aa6e33996fe9e5f63d998cd04b40af6145c88f8f2d9ccff31e43cabce7
+DIST thunderbird-128.2.1-nb-NO.xpi 703765 BLAKE2B 
e5918468de4d57f17a4184f9de0c6f7fe3fc570845e4baeae2db4a5817d91f8d958668db357ce0cb73aa2029d270a69d14b91df020a33dc2f275c2c61d7b1eb6
 SHA512 
c72fdfb6b96929f978f4bf21f025a69e84ac9b1ca88b6aff8e1a5bc8d78a8dd3e680686133ba017f63b527e3b3e184a6612ec977ed94f65e478c04b30a1dfc44
+DIST thunderbird-128.2.1-nl.xpi 744107 BLAKE2B 
731d30bc43f2e8de96efff278d4c9d6fbff849be8c8e3d5a78f3ac70251ee9cd5057a96e08b0947aab762566317b1bc43b1bbba0b851eba8112a5f59e295c070
 SHA512 
a47fb34784617bb904a58dd521c6c994489ddc2f1352f56f40f8a4d787ecc3e3e085e5d85fb74b49a3d769f21b20d9cf82e24cbb48dc84c7e74c4fa10a8bd2fe
+DIST thunderbird-128.2.1-nn-NO.xpi 723768 BLAKE2B 
09756d7e04b5f25815a53dcee5393f4807eb229d8cf6b34c3c625c75dd3ad19559d7c45f9f5a27ea4d88178ee04a5fc8a353da9e3f6577142eba85f82687dce2
 SHA512 
6a78180385a8589a732f154d59114db64e50abdcf3a30c227861d1352f6a70cf3b899ea38d3a2f1a777ee551a17a41db9852055dd9debe79649ba6843f58a679
+DIST thunderbird-128.2.1-pa-IN.xpi 683076 BLAKE2B 
eedf1fd929ee7aa504d42918426403b2dafd98bd2b954d4db73a29e058b05510b37bd5e6ea803689791f4f13d78a15d07470f22a79506093fa4a219168cdca39
 SHA512 
ff3b7f2c167f4712020f4ee36dbbd25c26549ca2a0a7889bbf5f8815028233183ef87bf6080ed89010fcf6ca3944b5d964dcde74de85045dac85c9152b1e537f
+DIST thunderbird-128.2.1-pl.xpi 762952 BLAKE2B 
8a2c196b864f7f42a38533bdc13729107d1037d69ea6005311099d6cd44ef481635d9c0544529566b9a0783f3c5cdd1276954d3c7b4df1ceb9c6651ff99760fd
 SHA512 
92aa91dc7c2dcd8f340992e0abfa8089495dd6e4108be22b5bb2972e3a9a0f034f39502048f0b5c5568b6db01fa0360dde8a844ac315e7e66ac08754fa14aa4b
+DIST thunderbird-128.2.1-pt-BR.xpi 751314 BLAKE2B 
a575610d534e6845fafcc5d0839c309b553017d5badf0d843372ec40d4f8ea38676b0c34e82607f66e3a645d866b9fca74eaa02eae7a68fd35c10faff269e032
 SHA512 
b1b5812baa54eae0362676d4c5b3c25197c85d3822461fc40b46646d706a194fa73e5730f993f1978e9de7258e684bee09201530b70341b9a1be89dd02cd5d54
+DIST thunderbird-128.2.1-pt-PT.xpi 746870 BLAKE2B 
3edfd1060c9f6132984089b3fa24e267b51c60167c271cfd447ba76934a028bd3f243b9c271230594e6159d4f58c9b37b7afcdb18d5061093b311a4e9bf995c0
 SHA512 
9165ba22ec09aa949a442a3d6b8275dbebe67674b1c930267d9cc12c2270f345488bdbae7f32a9098182650112bab32a9cf4ae7c22accb6b358f8b9e2f06aab6
+DIST thunderbird-128.2.1-rm.xpi 746779 BLAKE2B 
4c56b2caf8f23df94b95db14b3887644a837d250e441085f8bb57966b0a7084a277986ece0d2a40e58dacae4c8f048d3c6c0b3aa8f64afd94db9115416bd8623
 SHA512 
b72e65bc157dcefba8577998dc916f334226d98e8d7bb1897d48fccc571c807797d6f675742459c586d18575290e68ac924c765f49b45bbb59cdd6a17782373e
+DIST thunderbird-128.2.1-ro.xpi 669742 BLAKE2B 
7269f94c345ab6f839dcfe10fb9c316240c23c814051b287376d0a939e37b8b9340be849d4959250cda057894445a5415d17ad6b2d12745403c48234cdefe208
 SHA512 
993952740d99f2f1f896d856c738a926d8320d05b33f514f25e5bbf879c24317c0f51dc979f06078ec8fb68624fc125835792f1a6246f78045de7bda08d1448b
+DIST thunderbird-128.2.1-ru.xpi 872247 BLAKE2B 
8f71476a0e71509f3448d1cff42b3f3d92b06c6d882ff8482f8f7ca529ab636762c526c74cfc02757955b8ccee69185b41b7b2e3722c25c86e28e469ce655a7c
 SHA512 
a132dd16295f4880009db20d56d1cd785a8c018969969b207dc1771bbc111ce1b8abfdb23dc7e3f6319690bda5b1f9707d07885a4d6bda3353ce574de02c562a
+DIST thunderbird-128.2.1-sk.xpi 784171 BLAKE2B 
65d26edd887434de33f21b43525062a6df131111ca40e66016ff40f72acdfb9f74b02e5628d95a8e5c05079c0d342f247191e511c7f144554494f6d2622c2a52
 SHA512 
0240b86e82d5ad761a006131b033ab40c836ffa0cb95b30f8301972c8a4a48ada0bf495571151f74a93f2d433b86c63c69ed436c826d994d9d599c45d4521931
+DIST thunderbird-128.2.1-sl.xpi 743550 BLAKE2B 
f79390d189d8997b39a88220e90407555cd1b41c7041f1fb6c31d04df029c3d32697f11ea56184f267fe76856385558ab2ed269c174aed2d1833b548b9342dda
 SHA512 
7236c4ccc161ff6551b14bf83efa218936ff9a59053db317f48477f509537bdb78777d5dac4a72a84670cb3015795327116acbe9a8ead2689c852762a5054b32
+DIST thunderbird-128.2.1-sq.xpi 765888 BLAKE2B 
4215519862d0a1e0e9b6962f30adc5d5fd5d215ef821f882e5b45aec1167a9809b6d98896d1b4a1595e8fb5e56824057ab83b99f747f3fa99688cc3eb83ee8e0
 SHA512 
5401ff6040bd50e1f53fc02621471aec876c5a54798c96a1088e416057a0112e23420dd0997e74e21c7961471b82ed0c6153090632724160aa3745e56ec8bf47
+DIST thunderbird-128.2.1-sr.xpi 771007 BLAKE2B 
83ed4a49c137b9983c8ba45b919b60fa723734c914e1c272b701242c78a93d3748183c34a37dbd3eae6268d6e5a3b6e13fc1f514300504835f9c3d5316824709
 SHA512 
87eaa384d0aab2de44157ec239bf87a5b5f2ae1a5d9036311dc887e97b63803621420a66a6be9a569084511593f570eb1019db83743357628fa2fb0726b83a22
+DIST thunderbird-128.2.1-sv-SE.xpi 747521 BLAKE2B 
84e07a98cf96cc87fcc410ddfd9889f23bb36abd7e8f2c13091faf039faf6d30e044ea4598dc127655dd57c3c3d66bbd8b9e11cbd08d17f30d71f15b5ddee1dd
 SHA512 
3412d1bee9bfc153be5c8c6c0c015d6fa3fa6d4d4c901ca914b0aee75aacb3648a1eb7dc77916d521d038f9220c80924859997f3bf9226e0726d330c7f91f5a5
+DIST thunderbird-128.2.1-th.xpi 813955 BLAKE2B 
7abdacbfeaf7692642e5e90f7c3009f48d2071989d7247ce1dbdc57c16b028250c8f286c7f178d0e4b83f2f2120d66d1474d9baf85337f7d0727d8975796e27c
 SHA512 
6f4ca7656ecf67a137f618e8bb6ab2a817968b1844a41d109d98bc665125ec68e5e007fbe7b76a28db8082b9c13659d82b3e31b82bbe27b0e6596fb799f95000
+DIST thunderbird-128.2.1-tr.xpi 758166 BLAKE2B 
eb4118bfce198810949f1b2fb399a405e80ce678d9ac35b3a0c9449fe222b23d49586ffb0bd0ec0c7a5b1425036d7162c2f81a832d0bb3a86a220d50d2032712
 SHA512 
98b5514915baba99cd2e060d3d91ac423147925aa6469a619b11f6a044e9ebeec8f57d7cdb220e034730cc496cda74664e0c5f07d9f326747c04a52f3eb82590
+DIST thunderbird-128.2.1-uk.xpi 856055 BLAKE2B 
9b92c639a835c7a089a71ce7d56f322cb1c1b98a4aa89c291b96051de729a6cb3790e58e08445c60d0ca91490ae0d596fe2fff9945a26bc6a47a3a547a59feca
 SHA512 
c33087e527575533563fd154808c364701c7b0dfbe512597206b6cbf086b6fc62b0757f7c0efe191edd7178609444c39a5626f39851d118205570eaf8bb9ef94
+DIST thunderbird-128.2.1-uz.xpi 592134 BLAKE2B 
30ace0cfffae65aabdb6613470ab7a71f36f9cf81077a1f86807cea47c652e7f62b4426150d09da56b7f626c914361cf61c16b9f31c58dc20aa3e4d0880919e1
 SHA512 
c5df80c44f719964e00143b5fb6347c447907b936b0d4e8900d01127ed13d86be4367aa63b688666028a9908706677b7e89fb239f61110195382f3623477791c
+DIST thunderbird-128.2.1-vi.xpi 787028 BLAKE2B 
b8855d3fe3afd29cf88252458cf5d298cc8ad531dd6470e1c21fc4c4cfdcb487692c5b12efd6bb1e57270ff16218a38fc503b676a7398dc5b0d5fff1342dbc98
 SHA512 
1caf0e8bd087531c373225bb54f30a49b3274a30a3e220e81bb2746b6fbf71ad18c50a36f644c90c02045eeaa14c54213429fb69c87b6bc2ec7fd91353e43b31
+DIST thunderbird-128.2.1-zh-CN.xpi 785328 BLAKE2B 
c0074053890028a8888e04fbc803337888715f9004b44823af4d6dcecfe6de70b8e8c5d45ca234d7ce4276bdd6e68d38e74866b9bc8da345b490b1dcbb870e28
 SHA512 
641c7296e86a859061116e7b5c9f0077d6dc02e1c81212c21ce0247e9e92a88f3d7fa2be307f717e6f95077c29c236487dc8fd93d7f9795aba569e36f9f5f1dc
+DIST thunderbird-128.2.1-zh-TW.xpi 789780 BLAKE2B 
26dd81ab3b1066b0e4e1fb94d7d1f0a6241a94420fdd34fcea42f841c6f86109a7d53e422ada0378b865998d7946bea315051e1df47f04e278840db4d94a752b
 SHA512 
6e8c435ed7f07b1dd1b201730049aeb924a7b1b44ae2fa9ed1a209e7862abd0316845c929fea24f73e43262f147b7e092bfe26ed7f3d2914c09bc60f160ccd98
+DIST thunderbird-128.2.1esr.source.tar.xz 672402456 BLAKE2B 
0a082fc46148162979c55da1e43d4592b1f012c01d227444f3157824a66dc7035cf81d9f200c834f62226415f52c550888bfee70eabea8c4765addef6409d3d3
 SHA512 
8a04c57f7c4c8f19ca3aa5f62a65fe05944a8425e074ff49ff087c542bb64091666078ed0b887528d2662d92e65f7a00a5fad98e7897d2f1e1def963923523f0

diff --git a/mail-client/thunderbird/thunderbird-128.2.1.ebuild 
b/mail-client/thunderbird/thunderbird-128.2.1.ebuild
new file mode 100644
index 000000000000..37b1a02af219
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-128.2.1.ebuild
@@ -0,0 +1,1190 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-03.tar.xz"
+
+LLVM_COMPAT=( 17 18 )
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+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 flag-o-matic gnome2-utils linux-info 
llvm-r1 multiprocessing \
+       optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}esr";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}esr-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}esr.source.tar.xz -> 
${MOZ_P_DISTFILES}esr.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="0"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy lto +openh264 
pgo pulseaudio sndio"
+IUSE+=" selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg 
+system-libevent"
+IUSE+=" +system-libvpx system-png +system-webp wayland wifi +X"
+
+# Thunderbird-only USE flags.
+IUSE+=" +system-librnp"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( lto )
+       wayland? ( dbus )
+       wifi? ( dbus )"
+
+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 '
+               sys-devel/clang:${LLVM_SLOT}
+               sys-devel/llvm:${LLVM_SLOT}
+               clang? (
+                       sys-devel/lld:${LLVM_SLOT}
+                       virtual/rust:0/llvm-${LLVM_SLOT}
+                       pgo? ( 
sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+               )
+       ')
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.26.0
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( >=virtual/rust-1.76 )
+       !elibc_glibc? ( dev-lang/rust )
+       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.101
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf:2
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? ( sys-apps/dbus )
+       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-74.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.35: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]
+                       )
+                       sys-apps/dbus
+               )
+       )
+       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 )
+       openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+llvm_check_deps() {
+       if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/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 "sys-devel/lld:${LLVM_SLOT}" ; then
+                       einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! 
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+                               einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." 
>&2
+                               return 1
+                       fi
+               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
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm-r1_pkg_setup
+
+               if use clang && use lto && tc-ld-is-lld ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               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
+}
+
+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; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       # Workaround for bgo#917599
+       if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+               eapply 
"${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch
+       fi
+       rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || 
die
+
+       # 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"
+
+       # 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"
+               else
+                       die "Unknown musl chost, please post your rustc -vV 
along with emerge --info on Gentoo's bug #915651"
+               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"
+
+       # Make ICU respect MAKEOPTS
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py || die "Failed sedding 
multiprocessing.cpu_count"
+
+       # Respect MAKEOPTS all around (maybe some find+sed is better)
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding 
multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py 
|| die "Failed sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               
"${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.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 -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.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-gpsd \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-valgrind \
+               --disable-wmf \
+               --enable-js-shell \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --enable-thunderbird-rust \
+               --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-nspr \
+               --with-system-nss \
+               --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 '' --update-channel=${update_channel}
+
+       if ! use x86 ; 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 ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # Enable JIT on riscv64 explicitly
+       # Can be removed once upstream enable it by default in the future.
+       use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' 
--enable-jit
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       if [[ -s "${S}/api-location.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-location.key"
+       else
+               einfo "Building without Location API key ..."
+       fi
+
+       if [[ -s "${S}/api-mozilla.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+       else
+               einfo "Building without Mozilla API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-harfbuzz system-graphite2
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-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 dbus
+       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
+
+       # LTO is handled via configure
+       filter-lto
+
+       if use lto ; 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
+
+               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
+       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
+
+       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 ppc64 || use riscv ; then
+               # '--disable-elf-hack' is not recognized on 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"
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # 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 tc-ld-is-mold && use lto; 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 sys-devel/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 desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       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:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" || die
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               elog
+       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