commit:     b396ca3c29de27dee8ceb5ebdd25282ec9e3fcf5
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Mon Sep  9 12:42:50 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Sep  9 12:58:50 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b396ca3c

mail-client/thunderbird: add 128.2.0

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

 mail-client/thunderbird/Manifest                   |   66 ++
 mail-client/thunderbird/thunderbird-128.2.0.ebuild | 1190 ++++++++++++++++++++
 2 files changed, 1256 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 8e930c14bee7..fe9c1c616efb 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -1,5 +1,6 @@
 DIST firefox-115esr-patches-13.tar.xz 51360 BLAKE2B 
a048bfadba989ebbd4c6e3df97d303d6853844e66ed92f5f5f322acf18866218b91d52dbbece63827de283eef855c932d67e329c8d93200aa83f11268a5d1b2f
 SHA512 
186ec72323e621362dcef1bc67c476716aff97dfad701faa9220a7302e798d3cb4ed90d5ea59e3e92f016be29875bb5219787635db99a8848b7c76e4e2e09e90
 DIST firefox-128esr-patches-02.tar.xz 20052 BLAKE2B 
1c5646e6111d400c4f85910380c407c0000efddd9f9dfc228b042bbbb38755d4a2003f5fe9717a13ec53693cd6fdb1cbf9822649e8726f165a9e3d101a8b213f
 SHA512 
ab0e7ad443d0b5d0a44867c9a732681df3bf28b30a2e14dc7d2eb43859483f452723b614ff6e8f52666be3840d88104aa2c82616628210215e1765b60beb3ea2
+DIST firefox-128esr-patches-03.tar.xz 14156 BLAKE2B 
9a618f0ddb8596b740893dc9113f374d193a00e4e8e76dbb2794928ceaafc7b5309cb6f69f6287ae1e423f0be0a060580b0d9d59307c9889362dd17fb7d31d3d
 SHA512 
c6ec7233b368fac623ec0cce6f5c37d358a0fa5bb2154dc67eebb50968376ca9d46f3a734f5d79a4aa4edde9e300a9c65315d0e499aa6a1325b6c76a6c164258
 DIST thunderbird-115.14.0-af.xpi 551075 BLAKE2B 
c059761dace91e4f5e98f1bdde879312f2eea951ade269c7b4239974aa4609cbc8f3090a0646e87fad840bfc166ce2421403e7c210c8ae965ae6385404d06c4d
 SHA512 
584013d7b6eea794448f4764c17de7b989155ca782f602948a2d0f745c4344954daacd35327bcb85f9e9cad99d5b917f748d47a4805cef171d806bd8211aa591
 DIST thunderbird-115.14.0-ar.xpi 673775 BLAKE2B 
ea5e62105a53306ee18dd332775eb4917c68d041f50b14fda1baaa9ad09df42e6dafb47a03023c3a46cbf5092009ac84ae97cfe82b6771a99dcc7e86c6844b32
 SHA512 
2767eef517e451aedfca4b9a8e254f4388afc1c6021cdc301bd56513073688a63ceb7891aa5bb9dd6c83ae2d5f9078e9b832bdf3e761c88e2379076d15baf519
 DIST thunderbird-115.14.0-ast.xpi 570025 BLAKE2B 
3477dcd1ca19880feeef3dba4fa07396e84acbb80345c1402fbfc1012451b2abdedb05b60f4907ff2873da174216e1275a61a281f4ccffd0030403b4813062c0
 SHA512 
a01c2d85389e7ca86af4bcc73565bca9faea308a77c16457dcb981492433a177761dd20daf3224ee64c7a527408265ae53fdfb2c2a5b4cfa0df8d2325240ca3a
@@ -260,3 +261,68 @@ DIST thunderbird-128.1.1-vi.xpi 784776 BLAKE2B 
addae70dfb4fcbeb4ee55d179c5be4617
 DIST thunderbird-128.1.1-zh-CN.xpi 784197 BLAKE2B 
8e4074448545cb54373406d0ce0295a68e6fdfababf38e95a4a473407cd824e189d62b27105156dc2f923beb6a9c2f2348d83802ce550dcb4d0a3c36d90d71ac
 SHA512 
b42683ec3970afa764f491ac1f47cd7ccc117646a2f377088902f0c1f46b7bc2719d318f86cddc483268dcc65a59c87a1b1ac6dc627dd58ec9fc1254d1d73794
 DIST thunderbird-128.1.1-zh-TW.xpi 787600 BLAKE2B 
9a56823925b2f0a5bff9c2c098d45d04242ac2a3d33603deaba17d346c6756b624f352d0a10fc6206a2f80c008fd822d9002c860ec89dbabcc9b398c7c4a0f3f
 SHA512 
997c503a8dbe3e8cd2d331de6633eb205a9d21a886284360793e481bbcbfcb2a60e0451a64aa78d536034376aee6dea660cc14f8c8bdf8255acfdd9733631276
 DIST thunderbird-128.1.1esr.source.tar.xz 667771968 BLAKE2B 
61cad10d9ec40d854ae7521b7cfd3075a9994d15a88af9171fec0ce228d08c7c75d41108f89a4bc8b5356322776cf25289e74f8b2b601bcfbe29b5b494bb11fa
 SHA512 
91e17d63383b05a7565838c61eda3b642f1bb3b4c43ae78a8810dd6d9ba2e5f10939be17598dd5e87bdf28d6f70ff9e154e54218aaf161bd89a5a6d30b504427
+DIST thunderbird-128.2.0-af.xpi 530351 BLAKE2B 
f4b04315d8618d6bd5709eb0c4cb96c361a1e2a93b2556ed9bb3c06a7b5c938667d170ffb26ff573c906e019be0602bcf6aa692184d2af713c78106392718d00
 SHA512 
4553dd36a166eded64956870e200fa598111fb970780a2b97f56319a465bb357b81e726f05bbf98cd5c09954e7a19e879b1de3a405bc0445de91ca2b7c44f707
+DIST thunderbird-128.2.0-ar.xpi 679867 BLAKE2B 
5b306c106986de11dd40335a5ff30611de6d787d8d4f235ed40efb03f13690aa3685be6c6219f23812ab61d4c6a197bfee464111cb020e0d3e6ed420f613e1a1
 SHA512 
688e9fd15d629ab219a9234241bbc731cec59746bab60d1c2201046a58968c0afc2c7ac058501e5f206358b2e76af91ce926974bcbc82b6ca168d09a09ff4563
+DIST thunderbird-128.2.0-ast.xpi 561055 BLAKE2B 
7e985f8fdf59dbc14168467b36a469fcc5eddacd7d049174713f1fe19bb5441320ca84171489a71ae3fea2f9e6267a98f2496e00df6f08b53eea9b17fc026a07
 SHA512 
edf8813fb11d6a7afd18b3d2253a41d1c4e450028dea2af61233e1602d98c65304038fabc0047c64aec91f65eb943b11b5b30662e4f3a44d21e04c74a4c50f14
+DIST thunderbird-128.2.0-be.xpi 755105 BLAKE2B 
3fec208e7f3b0817e3a8e8822abdcea3cee6787b8bf565f9f2b89e80637828a2acfabca1ff6e9f64fbf2f4d1d73c623bec56071cc35d4296c8eb4789030602cf
 SHA512 
4a208b9dff9389557f003f4637171b1e58eede69f2c875a5e9fedd488c3b80e84a7fe989d1e67c0b79e18e93df74ef04aa54d613cd1d01c8394a8d8f51531f82
+DIST thunderbird-128.2.0-bg.xpi 807860 BLAKE2B 
7aa592981e26c26ef9ece53278f3ba9d0752e9581af9e5958219350187ba252bcf0279cb2b546b9c1dbe400d043128827b74b5dfdf9164cc647d893f72dca979
 SHA512 
99442d6032ee1a2824a0186a22b29748b1b69b7c59a616438ebc6ddce732437ef8b42e9de7b6034bd3f8c763aa725ff699ec6c608199e6cfcb2e79115b745748
+DIST thunderbird-128.2.0-br.xpi 652477 BLAKE2B 
3cf8b378b67c62942a46cb685de9166d6ba8b8e3daae29859e871011e9d9f4558c2f5ab2010feefb85a534a63fcb7eae6d28749a551cc31fdca01a9b8255a2ea
 SHA512 
1d6408eb0688fde1ffa1de6e791380f5e3fc222a5ca1a971a6e9e0a9444de82a3184824f1e95cee71a97a784557d59473e408efee6e33cc07f5f249ad6039475
+DIST thunderbird-128.2.0-ca.xpi 708967 BLAKE2B 
76177b2b3e1ed5a9f7227364da6297f00e30ea5ff09ad93bd053e72593217c31b68b8e877e4e878cc50618e5e2179a984350c27b1e4be5ee2ace7a588197e5c2
 SHA512 
1c99399e388c47516a22d879cc23b14578c28364f0e957d82a7b92e75ee66922f748790a6522e0fa02073a820dcf0c190e9fb2b9a2087ad65499af1f6caae61d
+DIST thunderbird-128.2.0-cak.xpi 671704 BLAKE2B 
da438c852c579e6b02cafbc1b09b7d58e3cc76fb235fe157c19f3c044c2b2633ba77594059ba127252c3b362549431ffc293c88556a026ba8dbade3738d5515b
 SHA512 
c138049b26928ea03d9554f99a6fa42a641f1bd840e50f16bbf164f15e7a46696651f63fd170ad374ea9931cc61c903606e423a087c1f5fb82fe3b17387c90cd
+DIST thunderbird-128.2.0-cs.xpi 785045 BLAKE2B 
98ff73560bd028c0c1b8fc8b7e64fb9eb3af3966b55ad9b97310541308ea76eba7de9eea5de76f9e2fd459c66beaa6741a50303a16cf981f2892c329b388d74b
 SHA512 
2f289d2d43305b091787dbddd62d4c288e031608e4d3a8e73f99fabad1ee694c50d90d4c6c2fd7e14f5d6cbf6ea343cf794b98133744f7d2268c513d4e31aa31
+DIST thunderbird-128.2.0-cy.xpi 749051 BLAKE2B 
fb7d2c860c49878632e8dc71d1ecedb02e5c3ed2de7a342e2a7824d30384537ef9c44a1b47a28d7ecdf7c7c582f665ba24429168b421953fd1d3b4e2070fab60
 SHA512 
6a8264a6ef7e8646dce804a1e8a9c5d789c1fb16c0237b799c0c4752037d7d9e7695bc63f73c56e63388e4b9f05561e14e434f5e3d6538debe05051630da0cc7
+DIST thunderbird-128.2.0-da.xpi 734115 BLAKE2B 
95b06adf1ac0aad11ea642c4f0cd323766bed54c9ed691d2520686a59d1b1cf823e4c3c7a3f603f15be7872b41c637e655923026829b18e1ef118be0f021c99a
 SHA512 
c7342d1d4681106a01ecae25cfb1ee485172c9e7e36d10d0e227e24a1a5d4547f69f2f384c87839fcea1dbdb935f97e504d29e9cb0a39cfc6088282d3149c4ec
+DIST thunderbird-128.2.0-de.xpi 766251 BLAKE2B 
a1ebb1c4a90afd192e93e7187036ca9d77f4e76d28c3f5820115c99884f01da3a6ace89554767ea2f736ed46ceaf93a2b99d60296fa48a43ad00b7aef03167b4
 SHA512 
df8f8a6d95c2d698427985daf5b6c5922a4201d5314005adf9d66aece66642901a0fc6dd01e4c34ba54ee7c196897f91c7beae69c7c09a2f040ff4f5bb03741d
+DIST thunderbird-128.2.0-dsb.xpi 782743 BLAKE2B 
d2f4209c6da0d6ac196958cb230eb70859548c3867a0a955df8edfb09822e0dddcfed100530da19f6d09fcf389177cbb6713aaabdf7d36a18382388adbfb2ffa
 SHA512 
08fe7553f916fe0f8057a206cd4f1327e7bb6293ca6254433c08a1113a5f7ba83d26bdc6e16915e61bcff9c31ea4b8ed7d7bceb204f1e9cf8815c930aeeca302
+DIST thunderbird-128.2.0-el.xpi 889269 BLAKE2B 
64a9552d9147e5eef0e3b8d711053d89e7e9ed64820f9ddbf160f0e84fac09452bdb9fb4f0796e4d265f5e41f451e93ecc65f71da8ec9cdfd8f506f7400eeefe
 SHA512 
cd50a58fab6fdb5f2ddb062526547981b44d1193463033d9ee5be7c54f1834adb2a5410da7236678d447442d470f2fb32b389e40fc0961b0d053b8f008ad7914
+DIST thunderbird-128.2.0-en-CA.xpi 702143 BLAKE2B 
d28f797da6751302bd103ad4025e7e05e7f1746b7c2ef9bc36d5dab24a0e4248e3bd3e7aec345649379669e8d985eac709dcd2993758638a72011352c7302b1f
 SHA512 
192b530c7e5035ebe8b1d1f2d870ea0ae7586aea179b7b6a5410522a675bf79ce786a7187040a14f2af3225401c520aa30511eedb7c60876137e4246c1896b0a
+DIST thunderbird-128.2.0-en-GB.xpi 702700 BLAKE2B 
dca31bdcc8b9b1da3c4708800276b868d9b5206f55a52952564e98f52920f53c41850ba09553c51b55da9fff092c66e93491cc165c16f7c881c347f180ada6a5
 SHA512 
026ba038c4bfb2abd3f26c31ee826eed0d17d00d4ed1e58f25da2e6d6f297ad4e90c1e12d1b8e4e2b908b171ce0cbb4a1057354fc5cee66073c90311c7f54ae6
+DIST thunderbird-128.2.0-es-AR.xpi 758350 BLAKE2B 
64721c4eaeb8d7301bdbad809c7235b14b9d0f726fae6caa8acf61596bb9f150ff6feb8ad44a5d5792bceef40476690027f2e461ab12006e9c1abe8b2585e84d
 SHA512 
7552962ef95cfca777c57f4b8109b6ceb0de35387878d140ec4dbcfca556a3d640a0f0049177448d32cce48c17705caa112ceb6409e87c278acbed4f4d3a20f5
+DIST thunderbird-128.2.0-es-ES.xpi 723514 BLAKE2B 
3bbbc917ab62b65f315a77bd2c950e9c4aad0b448982a967000e3a754d7725c849ca38430ceaaad235816daf82b0ea2fabd666f9744ba05f57b14f90a856a5ff
 SHA512 
bb5fb42d34b405058c97e7e329a64c9892bdbfe530748167dec283eb34086cd2be772f54e2d56714eda85939fd54faba7f14677c66817d6573faff541d4f561a
+DIST thunderbird-128.2.0-es-MX.xpi 737707 BLAKE2B 
7260c4ae37fde04ebc0f23449192c8f329b007c9cb7b0e826cd7189dbd4ab966beb23599e4d106b4551c4a1f19b105ee6080a8f40b502d8ecde5f83e1efa6a75
 SHA512 
f38efcd62b3cdb38afcedc43fd228f77ad59caa859bb8481a6f4aea41aeca276134047700c312da3984ea40311a31afe4cb22f69eb105b2ef16eb8f017ec6e7e
+DIST thunderbird-128.2.0-et.xpi 696280 BLAKE2B 
bab80a3332acb3b5487068069728604d72235c9a0aeb9c793a4d8b6c61f6e7af29462b54d6a9bfe6d445e4cc454559f1fb4aee50830d57cf7f6b6eedab6e4362
 SHA512 
e34b4c6c5037401c4d6acb9d64b5984d18ae03c905360f2ae9504dea79afa4e0e9e9d2b93cd1cec843f0eb56945f9fc5070136eff9e4309163ebc4e88de376ac
+DIST thunderbird-128.2.0-eu.xpi 726802 BLAKE2B 
53b6e2830d8d5e95cd741522ea4d115509ebe4eb150606f4f997aae65b0f17b228c51633dc22df9360f8562801b6437df18f355bde3c21e6a3ee9df9b73a3940
 SHA512 
ebfce61496f2c7c202961be85e4da5aa488b1a91021bf911891cff40c32a3abf0bcc665e6c4d0c07d0778eccd0d61df5fd52163f00ab3b914637f705fcb44a65
+DIST thunderbird-128.2.0-fi.xpi 733651 BLAKE2B 
c7a50566eac18ca86f88b8a743679fd03c0b11a9c55ac4a7fa9c6aead7f7a54eaae89c4c8752a683dbeb58cd8037fa2d41cf7838a86314933c2297a70ee0c49b
 SHA512 
e1ecfdba4e0732a61c61bb931fac430f09642d7641e3cb3da4ec680ca1553a613a49937613a70a520aed158ffdf7f64ca9359c888e11563ab2941101361c29a4
+DIST thunderbird-128.2.0-fr.xpi 770186 BLAKE2B 
0eb14cb05d3411a583d48732d6f65dce30fbfed37640707a85e66cce770fa0786e66e02f0e96e2009467ecaa40ba532913a0c8a7615999565142560acd9951ea
 SHA512 
163daaaa076f00ee23ab0271249fa7a9c175b6a411f8d3309751e41f02c1f405531b0bb2ae0a29fdad6049ef9c4c8d71bbe479f084e7c98b56bf3be3ab3bda2d
+DIST thunderbird-128.2.0-fy-NL.xpi 752848 BLAKE2B 
ddb1920d1082090be895c41025b1313a824fd12c3ef819f4f0ef82ab693d871c210d0be4fb77831872a49b43fb57fbb0b4a6803717b00ea155e50b3ffe396a80
 SHA512 
cc336b67d0be16c82b4b3fac0bb5fe16f2c6f6fa711c5c0701970a37d75fc4c7869b329183471decd051566bdbedbacb360e49a283c1c116adf881de717745ce
+DIST thunderbird-128.2.0-ga-IE.xpi 615198 BLAKE2B 
3b89495c04e27b9bd4a185ab79d5f8f41a07409b0b77119f350c91ee512cde9fd99a97aa1eca0b9b8838e29b950ac093a9845f9da2e63bb1c1a84e06bf5cf614
 SHA512 
09e0f9f0a23c2c52e399d9999873d92893a49c829619861b4f0f72d0dad12b638403626519097e6bd059166752d100c9bda9a4f8a4f47a21478646daf66dc610
+DIST thunderbird-128.2.0-gd.xpi 727804 BLAKE2B 
8f75354d217d9d84c091ba029460332827f1de97e588c6613a33bc857da573f24d2a4ef66906c66ff5faf5b54a0c89179b96d668afd51dfe5148cee89a7f2bde
 SHA512 
4b9b3da0cdba5df1a505cd730073d2e8887d4099fdfe7fd5a0f914db2f4e73fab2da47286a84f2eea0bdbbcfd5585f425928b29e7d09f1f050eaf9d3480c036d
+DIST thunderbird-128.2.0-gl.xpi 736573 BLAKE2B 
3dd448d20d76383a5219db7d1e7ab5e21c793515943bb70bb1635862632cd7351c78268a687f8fa2d25ab2c7138118487f16243ab47e89dc33c921924560e285
 SHA512 
8975e87497557b9b427ff002d2fd156d2ef4e4b0036836af993f1a7b9c73c632c05d424bdc4e6359f6045bbea725ab3dee993e978b020f0480a1acd96395b2ce
+DIST thunderbird-128.2.0-he.xpi 700301 BLAKE2B 
aa7c9b89a6453aacc09c50d653148ed21ac53f29f88d24dbeef015bd60ac7aa1b3d7d33858c275b16ffb41cb54e4c2f41f09a9525ee6b19b98a9a993cc21a8e8
 SHA512 
3dd3929b600aab5d1a5c9f489fa326b48eb4de1740579e0d948d8b72aa2fb50e73bf337014be7d892c23cd1b2ab36a13d52da9b10dc4e5a220dff06dcf16afc9
+DIST thunderbird-128.2.0-hr.xpi 715018 BLAKE2B 
1a40b987f16a5067a0d26a70a12b8c380248ab7cffb3053cb9991453e35fd9ebaf5167a0870bc6ccb6642a5dd6605860680fe596986bdbd599d80121d4156141
 SHA512 
b02f671ce57339f85098afb41e27b09a516cd903906bd34dfbe199525fecd73cd0bca978464fddef302f38ccab1bc14d862840677e7fbdb1ba9fd20ea754280d
+DIST thunderbird-128.2.0-hsb.xpi 780137 BLAKE2B 
6d4610d5f13f7d211732b797ac79c105e2785a58873c49b7fdf948706eca001fef8523e1460f2485f79ac6876973297ebc02dabce837ac4f1c5413adc2d6849c
 SHA512 
746dcb7d355c429fd4c6b633885a86eeb37e300a738c5bcbda4ca91ac0f6ededcf915e9d6a5de54bf7b3c2e463cd86d2cdb7ec2342173ed1836ab19f1137a880
+DIST thunderbird-128.2.0-hu.xpi 782933 BLAKE2B 
e88c56b89ae79d46865281ca8472ebd6862ba5fc81364ac538a2aa2efc99079e849cfb9fc5645080646ae0eafae4a80dc8d2e46ee99ba115d4bda654d4a8c894
 SHA512 
028839eca290eb7b02c83bb1bb40ec0f35dcae7d446c06f0366ab7cc17c1bdb0adc0bd72a5a71b6b67a4deb607befd2c5de0372c695d3a1ced5407f8c853fae6
+DIST thunderbird-128.2.0-id.xpi 666011 BLAKE2B 
2b73fb3f7621e618e46479d657f8d20ad1fba7cbd4a8c5e0363c2b1ef021fbb03c934c5f11ad20ba4fa86413b93677add503077aafa42087e9fd78339886313d
 SHA512 
16871831e5b92d8721d52c72afc0af6df0a7048e58e6f59bff8ad09b6aee00c0090c465d00f9501ce0f53d3b10b905bfaa1571d3d3e9006385bd22cd1abc0af8
+DIST thunderbird-128.2.0-is.xpi 743886 BLAKE2B 
eecdf7c8a9eadba2944ecae09df3b12872c83e8dbcee9ad481106ce4716ae8db915e61437215311957c9b43dc45676f5a5d163311452e6a8aed3020d0dd056a8
 SHA512 
17d1bf8d5ca0aedb25bad3e61f4bfb098830a87d95ace1dd2d90fadc030e7bf668c7cceea170ea7d13d7cb80c6e3e36b6749cdf52b970150dc5ea6b9ae1a6bbe
+DIST thunderbird-128.2.0-it.xpi 690396 BLAKE2B 
cea4e519cf4fa3e326dac57f6e684da5d311e5312beb687b847965833e5acb28ce59b41c97d198863654d2cf49e494951306425385a33cbe27061c09694f030b
 SHA512 
8f473a1b0ffd9feec15e415f0c34ba69609e8a8ab271f3b36dacd4866f02affeeb73e4bb975db2375ce051f59969e54fe577591e9f6810e4a5440c659f4c9431
+DIST thunderbird-128.2.0-ja.xpi 819902 BLAKE2B 
3911492febf78bde263ab00d5410a5991ae8c67f0cea5443565e1552bd2cfa5a48e43d73c6fe83b94b222ff2d391afa4efe01c13ce6e7d6ea28f6095ae00847b
 SHA512 
b09cb2fb7b904d2048f1c37e4dfb74b9adf4b0b21023c55551ae51121acea85198a594701396e0d9058c267b83e8c1f2e6fc5b31f8fca8b001ed23f4cb5883e9
+DIST thunderbird-128.2.0-ka.xpi 796047 BLAKE2B 
69465d477abfde17660b651dae0ba9fe05cd4b6fcc119a03f1dd3b905bdef1692bb15dc66e6f0d9a7be426a9ad1319040991e2b9afaca9fbdeceafb50ad3f5c4
 SHA512 
b02d01ef4f9b75a2d103ad499120cd0f9d01ae2b74d8a922463c2c2d42ddc6dfe73dc7ecf51d7c8f5be235107bb1f8c7b484d747e39bd576165eafab2a0edfbb
+DIST thunderbird-128.2.0-kab.xpi 731859 BLAKE2B 
d1b0799ba696785afec55f4b96eab8ff1641a43066638d475467ef997a49e584a31a53ec726e46e1bb59b3f97b164dd0c785a25db89f13a646ba7b69e297def0
 SHA512 
777dd7242a23724a4ce559164c0ee20243fa137e99a7a9c31b1e99587606dcd66fe7d39a89a799ca294b9abdb537da5ede605eaca85b19a35f0cab99b7a11a5f
+DIST thunderbird-128.2.0-kk.xpi 857290 BLAKE2B 
39bbbc3e03fe9ce194cfe23cb1e65cb2e443b8c81d091bcb117daac219c76075ce2ddb6e8f3bb31eb9040bd7092bf84d0f532c3ad2293b1b298858d1cf9bb498
 SHA512 
8c9a2e6597246a166e0e5a51ec6309035788925e41a115e8e6b489fe1f6e6d528cf4ef535a010d83260a0f0aac375589e4bbdf711fa9b38b15980cb4db43d73e
+DIST thunderbird-128.2.0-ko.xpi 755165 BLAKE2B 
255e9a16f49e607314d365f313249343dbcf8f170abe2e93d3862be51746ffba7aba0f3611992c4458f0d1aa3f2f2000babfd7b09ae4cec828fdca661b308d14
 SHA512 
1fe409f22f094f9c5b2cc70561650ad4563836ab8a3c5cce846376f53572838a93cca38810e75f2b6d19bc44b156e9341f2ae05b5832ef7844b703ce922b3416
+DIST thunderbird-128.2.0-lt.xpi 700918 BLAKE2B 
622bbefcb2572593977459e9325fe25c979d00c7cfc08d04ec17734148a99f1a21535b00d90ccee31e87ca2f6a4260a241b6527ce1781586ab1c3f01ee4096ef
 SHA512 
42539e633382f62b7fc4adf26a87b0842071077f7e6c6262b78f9174b969dc16ec79640cd7990c0bf6761c14f848792f32c9140248d734d97178566417069691
+DIST thunderbird-128.2.0-lv.xpi 623624 BLAKE2B 
c1f55d36b94e2b564a4f2c88c8726d85772a4853bb9b54777bd6892566747e1076cbc985268c3b4bbd161d8f853e0df07360765b513e5fc4ed2da3da211c0b3d
 SHA512 
beea131a1297ac199c3b3ede8f8e09a576d70a6caca85b6073bc9d4bc6fa08186dc41936a5ea773957ee2fc395c618469acbf8bc41f5c30a193f19aeb9edc7b5
+DIST thunderbird-128.2.0-ms.xpi 581084 BLAKE2B 
f37963924f629b13445ed30156b5bb53282788e8d9f0a995eea822954661fb4ec729dfef397ddbf0cf439f06a6b8c0ac8ee9bcc1392662f0dddd0d4c5c30569b
 SHA512 
d3229b79de9b89f4d668e520f80376ab1a88fc7f160c0d5c105ce4b1ce4fb6293d55368eac7d85a2bee929403386c4ccb143be7656d325ad0ec5e0759885de2c
+DIST thunderbird-128.2.0-nb-NO.xpi 703763 BLAKE2B 
6f9bf5ea39c7350a1f3c1c7a7e5d3fb8417da27cf2c9bb0bdc36c8a777c0292346c662361fa4c4fc77d27f76d545921f40630b73d7bd730d5ace3b90768772f4
 SHA512 
580a7d4ccda3fa278647e6c1354cb9e70737ab6ca4fdf1ea2f335808f46369ca8908a77511dc0ca48c99beb45824afd708c9abb8617c8ff842c7547f2cf62f1a
+DIST thunderbird-128.2.0-nl.xpi 744105 BLAKE2B 
20a89e15ae7e3539d5a28f38c58d0c7611d101c95600731abcdb248e2e5a59272302a9a0fafad924d4d96150f68bfbd872d47da5293ab8d27f236790e0ba01aa
 SHA512 
9934e0042db3801c2fad3a2754d19f640354128dd376fc1db835b253c48cc83639be08de0162533e47db48d7869e689767cacad6ebaf136e22b831af587f6cb0
+DIST thunderbird-128.2.0-nn-NO.xpi 723768 BLAKE2B 
b1b6fafe6ffccc66f30665fc40c699daeb1c74c482573d1d2ceec565095b72f9eb40857954ab0cbd8de74022fed9f57275e22b5aa5f1169f6f4831b23543c781
 SHA512 
8f225825aef220b637fddab316e49d9a05535b19a83e224d6f7fbc88b56d100e8659e9c51658d2d6d082ce02b5db4ca4a4cfa94c3039a22d68df5c942ad28fc2
+DIST thunderbird-128.2.0-pa-IN.xpi 683076 BLAKE2B 
1e05f44edd29210a4179a0b6fb00ba8095a7d7ff7d50855f1b8d84c0deccd8149eceb8ec4813f15bcf73edc056c74a7c911fc4395352f1b0143721f3b9f1f67d
 SHA512 
1301414761d65b83d01b2605a70355b522bf66a2b9a01f7cebae46f8ba1aaf131d98b2989e2e740de2f11cb69067192db2156c286056ddec50bb42475a98641f
+DIST thunderbird-128.2.0-pl.xpi 762953 BLAKE2B 
431add2fd6a53522452e0d1ea78a855fb3e562bb83c8e68797dfe2534b07fbb99505755ff7263574fe5e945d5cb57a281d1a3adf960b1c1022bca7df7c7aeca4
 SHA512 
582a2a94f3a472a930561d0a2d297d30d0444673b3d188e6cb3c49999c99a90783dd9671329db625a619ed349b016ab0a1638ace68be065fe2785829d90fff0e
+DIST thunderbird-128.2.0-pt-BR.xpi 751314 BLAKE2B 
be58c6d7445ce7fcc4a8f1744861342b749dfd09c0729f0df6416dd2354f903315be0f24acacef461c0a658301077c9aac0b3f2696f6c8c274cd80aa84b49b7a
 SHA512 
fbda48a6f95cca8f7d02cebda30d2a129b113d4dceda4ea3a4fb1bdec837f61c91e39baf1a3677e0fd16cad49a07a59d8db9ff44d810bddd6af00b7a9981c048
+DIST thunderbird-128.2.0-pt-PT.xpi 746871 BLAKE2B 
2e798c17d91e7b178d827bfdb56714e5dad560880765248f6d122806a1f4ab1878e488727570c243dc5d28a4aa8a7ffec30e99c6592f1d7bc8e2beb7a0a185a9
 SHA512 
3c48f173e48e67a66668af76008da90092fc02c77ec8625fba28218fc693931ff8658adc5913e318900b02ae04131cba1201ba68c7536a1cf8470d38bcc8eeaa
+DIST thunderbird-128.2.0-rm.xpi 746778 BLAKE2B 
a7936361d462a4411c571ffd381f4f8be95868de1fa8f09b6c39e4d78af0a910aebe9fe79f890c09d1f1e9a395c1c7e77de2c76c4d2c3ffa0bbf544304fce875
 SHA512 
c80e6909801c63c0db8e7423248e74bf634bb6efe14ba8e04ec69f9d1e95a1b8a4f37b44144e3889c3daba6ba2871542093259ffa62dc6e981c05a25bbbe154f
+DIST thunderbird-128.2.0-ro.xpi 669742 BLAKE2B 
edc839c54e190a7141f703dfd67999c48788ca56a364042f9181e283cafff20e2acb1fef5deb7e3fa0a5760403c1580ebfdcf6476ebe886c585706fc4d0babfe
 SHA512 
dbc3f1a5b827d249ea7899ea67ceff9055eaeb7fb94c268d26829a056b7e377eea20ac64e685133ffa0418fec3b5114fdac53cb4f21de3006ee0994955f473da
+DIST thunderbird-128.2.0-ru.xpi 872246 BLAKE2B 
a05fa2c35876340956c853008bb9d42c9cf73f4f9fb49f289d55e9eaa5a68afa85f561736da5093ce9f3da33a0b48856840da36873d2dc060dfe22d0d181a713
 SHA512 
8fb14d376d25fc7690eb9d7cac23e12935d39809d481bd37038cf5993996e8da9af91369521e736f09e13891dbe2b6ff87538222500feda2166b73798ac5cc0e
+DIST thunderbird-128.2.0-sk.xpi 784171 BLAKE2B 
19c2bc75d192c4bb5a9e3b76fc69b7a78452256f3fcf460ab0efd02d63a78de18a69e55f94431f24d0cfb6ac5f41ef9882e6e5b84317bd05116681b0db058901
 SHA512 
935bc5c8c88c159c1a7179aab69dd1d3ea6507067a9341760ee6e8e3a6fe0a25d8b439d92072b031cf8a675bb47bd7b4d56c26da6a5ab738402247ee4941c497
+DIST thunderbird-128.2.0-sl.xpi 743551 BLAKE2B 
945d820ff6ac2f8a3cdc284e82ae93a9f67a6f2e645ecea7fbec070caef934d5d370c2d74dc0d8807dcadbf080a34c439889afe746200a32c3f8642d15efc573
 SHA512 
fa96809c273f08e93ee833eb64b923eb50c25a216ef69550dbdf7900d801dbe8baa4b87c00f1d08b0f805a7ba638174f03a5bd74db64e8eb7cb5bedab089d2bc
+DIST thunderbird-128.2.0-sq.xpi 765887 BLAKE2B 
768d4675b03246cf929a62ea94d9ab1118952bf7276bdfbd4e8445093f018d52b517257fbb2406f15885e29d2a2a40d971741491e64710452428c71e8d3169ae
 SHA512 
5a0ff4c52e61dbbbf87a3b012a3031f23a993d9287bda6cb9428e1de36bd0ccf93f0e1e7691fb234e696ac69587d99eff214699c7f0019ae261242b80b0662f7
+DIST thunderbird-128.2.0-sr.xpi 771006 BLAKE2B 
2163ba03ca321921386fa2f3aaeaeb0c55fe89c630495e8272b64d06c6ad1e28ea3940d13ed98285fe0c25bf35b9a725ad8a3f83ed0819163a901d22d02c1fe2
 SHA512 
c29b762cbcc86b7cf732207a86fb04f548d7e2de8051381a99590e02f49a310fa647af08455172f44f74c095ced5ec301133f82c2d3151534da8903d6c73f6bb
+DIST thunderbird-128.2.0-sv-SE.xpi 747521 BLAKE2B 
bab34c471bf2fa3cf15e568ad838c97bdb7e513f4b090c4596e677075bd68103f4f9045551b99cad35ee30c77d7791727b7fd42fa7aaa292511559a4af3d412e
 SHA512 
aead8781d882e5afb0a3751ebb37dc06e510b028e03f8653d197c7cb6070f958e023d8a59e3855bfcf87be4cfaa3901e53f76ae7413c84800f4991ca196790f5
+DIST thunderbird-128.2.0-th.xpi 813955 BLAKE2B 
6e6d87168c2eccd1879f28bcd20e75ee74e77334857c6537825ede0b67d00a6ceb29bcc69393231345e7949e19341f2b06567ac69ffaa241b9cf73a28693efea
 SHA512 
ac7714861e3384d0811eb6becd95d5da87bac4de8df2f78aa103972918259cf3e0947cbfa47eb355463aab3aa4be5abe80e127a61bf880994e192d635440636c
+DIST thunderbird-128.2.0-tr.xpi 758166 BLAKE2B 
7558c91ab4be059287a140e857580dbf88817b49f1cc28b16dbe7ed1c1f511356591cbe9657dda96b406462a0c8c15c5c214c9c29c1723c6baa03150401062e8
 SHA512 
ebd44f3cf3c257fec075c7697246337bfc1fd6f0866947457f975a62e2d57299e77b4e31b72b8340dffb494c1cbd804e773fc0f462d0ec7ee58573ceea027703
+DIST thunderbird-128.2.0-uk.xpi 856056 BLAKE2B 
3f3733a75f8a85abedc80936c9b1f89c4b3342e4d0337cc3da241ae392807929fa2dbcb9144a882e80167feec357b143f6abf707ee0b581d1cf68f6acb5d5d59
 SHA512 
c9c88a315305f76172c7df4dabff7cdb399e2eeb661cfb3b14bf489ca3ec004dc61dd70752436c9b318afa23b3984e697344b1cb1fcaeb7cb0fc92e11fa9de27
+DIST thunderbird-128.2.0-uz.xpi 592134 BLAKE2B 
392ceee3e9c43ed96190a7d320593796a7d87dcfdd61cac45a2438bc5c390365d3533029e1b5c35a3bb39bac179c51f1b35d70a52d067a4502da540efc2956ea
 SHA512 
00959d85d4cf38e203bd27dc1506ea4e4b326fdd3fee6973282180c0c04fcd1a3ff41e196f78c924fb7a666cf644f335523072e19a5a2790d642d1c97839e6e9
+DIST thunderbird-128.2.0-vi.xpi 787029 BLAKE2B 
8905a673b71236891630a9dfac65575e5cc30a4db1951de756dfcfb4a4b10b41fa3bab7a7da01b1502fc1b795aeea1b92eedc7b1abaaf6049d1bc483c52141a3
 SHA512 
d854fb027d13d24fa4f4783880f76531c2a08bbab5cab5bc041e42ac36954923b797024d99d7c36c032565d5155d6c2d147743cc425ebd8ac2bcfc2179110899
+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

diff --git a/mail-client/thunderbird/thunderbird-128.2.0.ebuild 
b/mail-client/thunderbird/thunderbird-128.2.0.ebuild
new file mode 100644
index 000000000000..37b1a02af219
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-128.2.0.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