commit:     a6f96f350b74a65923ca6239879a5f96e100ef69
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 30 16:53:56 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Sep 30 18:03:51 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6f96f35

mail-client/thunderbird: bump to v78.3.1

Closes: https://bugs.gentoo.org/698986
Closes: https://bugs.gentoo.org/733062
Bug: https://bugs.gentoo.org/745432
Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 mail-client/thunderbird/Manifest                   |  66 ++
 .../thunderbird/files/gentoo-default-prefs.js      |   7 +
 .../thunderbird/files/icon/thunderbird-r2.desktop  |  30 +
 .../thunderbird/files/thunderbird-wayland.sh       |   7 +
 mail-client/thunderbird/files/thunderbird-x11.sh   |   7 +
 mail-client/thunderbird/files/thunderbird.sh       | 128 +++
 mail-client/thunderbird/metadata.xml               |   2 +
 mail-client/thunderbird/thunderbird-78.3.1.ebuild  | 990 +++++++++++++++++++++
 8 files changed, 1237 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 5a073a1bdfc..1f901d9c08f 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -1,4 +1,5 @@
 DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B 
f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7
 SHA512 
9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128
+DIST firefox-esr-78-patches-02.tar.xz 36288 BLAKE2B 
f177027ea550b4f41616c104865a4d1a99fa0a84ca431176b5191107f23b2fcdd8361ad97493d3182d01dfeb7f2805caf16725b8a81bf1f7847cf400f87018d6
 SHA512 
7eff0a4f5d2b4abcb0293877b3fe562b5fa2581f46b4905ff8ad839559049e4d903dcca4aad6a7196720cc7b3cd93ae88ca0093da51f70e56609faaadf646c78
 DIST gdata-provider-4.4.1.tar.xz 78728 BLAKE2B 
bfe04d714334c38c932d2186ffd859583176ef455b283534c5f8f9e1ab7dc13bdfb8c15db6007de482ab015afc2b8524aad725380bec75ee5f59ea81d6307ba9
 SHA512 
6c9b5ac41a1064bd1799d2a2f633c3064b27f1294ac3c8908cdef6c1d2eea7b602f2f7bf240b71f507fe9ad286588f030e12f49a41b3bed7bbcc99f3021369f9
 DIST lightning-6.2.5.tar.xz 1745976 BLAKE2B 
31e237f8d34ab2a2ac522767460467257d1f49d15fbe24f5b80dde9fb709ffafd0c0442d99c6643ce434cf7bdf0d670447f86da9fcdadc7ada6814431ef41e8a
 SHA512 
1e997bb91d484908f225cc6e971874d308e8a8e2451a3e678f8a74bcb9e360babbd1f8aebcafb3e628ef5b10eb697ee47af2bfedbc956fee71d99084c8816235
 DIST thunderbird-68.12.0-ar.xpi 617167 BLAKE2B 
ba476e918fb2a0229ff75eb8daeb7823fe285e79088788fcb0c638c99e55feb79f78a4df0ea2b0dd837be8d12988330fdfc1117dfbdc65e6fb99676b94aae404
 SHA512 
05169e14a9c8a8bd5e36dd377d4ccc034d3603320298eea5ef2eb329ec3f72595bb6afd57930d3b04c1cfc6b99c122d98a78a9f6a258e6b78c14843e68652adc
@@ -62,3 +63,68 @@ DIST thunderbird-68.12.0-vi.xpi 623422 BLAKE2B 
4b66830b6c485ce2b8d004741ba9ae2e6
 DIST thunderbird-68.12.0-zh-CN.xpi 626820 BLAKE2B 
301d3ad3413700879ff1d8f39c471d887ac250f3f1c0f4e47c755d7744aff322d6e71d19e5b62222569e839f4e354bf833e6a098b9d22e2039949a391b7234d9
 SHA512 
88fd1a6a69fbaa3636861cab50b6f2556b8bbc87f303e5e06285ce7cde51701998459fe6e7339578daad4acfba0d994ac7f2202ea266d6987c702a93d0588dce
 DIST thunderbird-68.12.0-zh-TW.xpi 627476 BLAKE2B 
d3f0ecd246e9834013494868303287403de78e67c028144f2cb7d4d929745728de5507a40b23dcd1fc04914fff9ff7fabfcbe080ca50768d48d12b61c147034e
 SHA512 
b8104fc5bfdab328e0e9d3ccf373b43fdd15741fec5084da64ff5a8e6221d1b9b383de8ee71a89000e643be3b761921d3490579d6d12c9e88359a32ba8d3a2e6
 DIST thunderbird-68.12.0.source.tar.xz 331226160 BLAKE2B 
2712dc52cb7ee2b2d75b08907f7dbf945e89f776d12550427134de7f03538f1f4b1c7e747c407becf9be4cd70c9506c5661a9d4fa0e4d19c2499f11384848dc0
 SHA512 
e7559536a9e024747e3ac7c20e4ffde5adf57657d02109ea32c39bf736ad03707fc7a14a0d3f1c91fa6fd69ead3c38d6c32ce78bd468834d9ba7f77f728332c6
+DIST thunderbird-78.3.1-af.xpi 548782 BLAKE2B 
4dc5e65a284fb0ce87a0665040d86961e998340449b1d51125a5b29bc44607524e85e095f001d1b9b7b7c55b6b368022a563c1404ba16e63ab2706b5db442a99
 SHA512 
2589639eb44d2b33caf89dec6933218aa9959ed4b449be30f6761c2cd894da1909851fb60404c11c2aba45b9a45dd0710ddcb52a813380a012a53e1159be4dc1
+DIST thunderbird-78.3.1-ar.xpi 649063 BLAKE2B 
df72eaaa069d3740abdce0a360bbc1576500164b898539e37f4ea356414b47e6b150f60f84428b30f072b98115de772162ec1c062eeb904443dcb2db36887f71
 SHA512 
33a83d85e26a58dabfc93e1af7fece7e4a6eec1f637697be4e0b81cdc379d593f78f70f57178912cbbed7dfa8928b9f177ac54092d85d1ced4317e4827a44938
+DIST thunderbird-78.3.1-ast.xpi 561707 BLAKE2B 
13d65d2e543bfc0c123bea1b2699f4fe5ef9fc095db49607096115eab485b8074530c689c2ec88689ae044f16d571416c108eefbc75d9bce37b8940f5e344f73
 SHA512 
7cf31eaf4333e35872bfb07876540ec2af44a7ac6d82eb34e873d97778cff5914000cc7fe8ed012c88747b539c5d11c65a50fba2cac2587a9dee7d1e49e76cbc
+DIST thunderbird-78.3.1-be.xpi 667138 BLAKE2B 
4b5acf2045f3a10622de056a5a047994ec0d9897cbb586b78c971802a632f4d290336338f592c422857c742b7dac97d22ddd51334f8b4c29c219102a0f0414d1
 SHA512 
618c1ce0164a56b9ffe374f2e17f6c23a8cf8c8fc3e7feeb337a4a381b2a2c8098adf10ce677e322564c3358ffc8d8c0b71e093fde6e4284ceba318eedc7cfb4
+DIST thunderbird-78.3.1-bg.xpi 672894 BLAKE2B 
f4f0386c29332c4abedf76b100a7f91ad3b2eaad056700a7396ec837da7b9511248efb82c12ea10b80e900930cccd6a14daa9329f2210ce84ab52ba91b5e3dda
 SHA512 
5f61710dbe5ffeb23d7d8af681324371c00d069c9eb90eebbefa3af06e9bb19d85b2db66980c385be4b4849183d247b7fe1b4da64b78e2af2fd6c40a8c0e264f
+DIST thunderbird-78.3.1-br.xpi 604955 BLAKE2B 
12f35d2db76715824bfb614b9bec7c2dbd548db253439e90bbf98990888d9bee90f6862b55662f4c2ebf5167e80f6685ca0c2bbca3bdb761ab20abc16d1f947e
 SHA512 
f43fecd3ea16ee18198da6af80236200d38c0cf7016e4db0e376d3ceff6dfc3f607398d0fec6ece764b36f5a1c7ce3322c9d07ddbd2a0a0b6bbbb826a8ea8925
+DIST thunderbird-78.3.1-ca.xpi 620862 BLAKE2B 
995a8a5f8ab01d12b0bdeeafd411ee1fc9c675c51a3fb3f3eab3e763a761d72b5bd6811547ee68c3d1637bd316edfe584ed5e8f609b712704262a37f4bcf6109
 SHA512 
427f8a5481c56a3d651c777e675e3f963ddbce2853f3cc9e464fe951d779a51bc2fb7e09579de1dbd4638abf6e3496a54f1838452145b62f6dda2e9cd7f8922e
+DIST thunderbird-78.3.1-cak.xpi 636111 BLAKE2B 
e997193b02c5e3b2181449d1a9362c614f334012449b016fb010e51dca2b70ac2c018d716e9d74da8bf522501f577b983a40fea3ae5f2a13c227dfaabd1ba9e1
 SHA512 
7174bcbf8283612d5e02bbda2f17599728a40f80326c924680f2aa937a9b740c2971c06b928702b986ae6ee6cfce6c9b3142a3ee034bdad12b758dec12ab9ca2
+DIST thunderbird-78.3.1-cs.xpi 635782 BLAKE2B 
ffc9b07f3ab3e0b3c5893d6f8891ab18ec4b5c303ab248e20ce201e90228be04593ee0536bf1469e5ed38dbbc2a6f6eb048f92f90f595e655cb2c9e9e0374331
 SHA512 
acf70ac0e9917e26645c6c718471e957e57b522c845b9d96416a7bb852fceab225826a36022874f6bc32c2468420f5f95e4a8202b753070cde2e1de7b187f599
+DIST thunderbird-78.3.1-cy.xpi 646684 BLAKE2B 
8fd3129d58954dc8bc615c659f4d257b6429f73f319996992ce66d7bf73237eee1b15f6077c98a4b68f7115ab6c4968d2136d04fe1fce4e0d847b24439047d11
 SHA512 
ade5c2bbc35120f7d7c9ee0c5ecec6848af49e69c5780460318d1e0e5d3499e455488c571ceab0e69870d0700ea28dd4d03c697fa5cfa22815e724285c096c2e
+DIST thunderbird-78.3.1-da.xpi 621423 BLAKE2B 
6f7beb82d02a699f8bd8030ebd5deab9ceed2bfb3b71ae3f35cdd347c9750621de7881700d9af49e5284d1540c0ef828415586550d743d1d3b359790752bad54
 SHA512 
b2f0b03fd6ebd4c2e2574c33c3df2119b94c187091d00a8c3fc93ed77a64888c0e33b38f5fd17ae00a4a9aeb028e8a5e7e1c2fb084e6a41e6f4871047cb7ae0c
+DIST thunderbird-78.3.1-de.xpi 665616 BLAKE2B 
95fc97e2aeea007b0246736fa9fdd049d73ecd07059a73b1302439985e2179e718121b624e7fd3ca9a8113b3300eff24ac41e4b17857aee2d77749ccf1103010
 SHA512 
6213f36d707e637fbe9a5c4962308363e682d99857a0f2ad7ec5043c8214f06b2da3a58f9ffc184fd120f99c569df6592287033267c2d71b376e366d096cd017
+DIST thunderbird-78.3.1-dsb.xpi 667214 BLAKE2B 
f9f4f28da04930d13ae4597b1b98f5a08d406228f4ff6ca81c8179a9ac2648e25885ebe58c82c075fe1e4ecfa98240b869d0db71af24096030d4a9f393034ccb
 SHA512 
c2b127cec59a7d489fb68d014e96121c1836d24f69b5b4e9d36bba5ec967eb256681b82286534ad44d7ee542f184756d9cff2b2596e2a654e3d3094449eb21e7
+DIST thunderbird-78.3.1-el.xpi 774935 BLAKE2B 
6de9247fa5c607619bef641e3498947ca814eba543da21e529cf44fe3051c14e666f9ec38cb36ffd4ffab617f2afc3c3635af138d20e4e37b653b5fd65950a83
 SHA512 
2c226faf878c2b719bae93e1a1cf497bfa5c6c4062d8264d7872027d0cc0f3f4cf31bd9e225c320375ee1f90248fa464844300258cb4f3d01105b12498b48cc5
+DIST thunderbird-78.3.1-en-CA.xpi 612236 BLAKE2B 
7ae0e62ce467e400e42b7adc22fc2812ed54829eda0109b10a0c387e1a0ca52ce8cb2980988622d7319cfa8920b377cf443946d082783cdbd1d2b3d3ab89f706
 SHA512 
8242a669120be9e9e47aaf6bf266b1fc79b82529471acde533c71fc86e357d2efa90415843058ad0d2550cfab863412115e9acec0b467339bed3d278f75a6129
+DIST thunderbird-78.3.1-en-GB.xpi 611650 BLAKE2B 
08a855964fb3f44498072edc0ccd10b8da6b52cdf9fda408e7d613a3b88dba61206a1923ed214533c8e8227d7c5cfa336080776f8fde429b12de03e2cb6ab633
 SHA512 
8741513f4e9c26a1550dd4124a315d1b17ecff9dd0c2abcd16337e61f431c53beca83e01db8725a2409d185d47917cea7a4fb9c4428c4c70457958b3924ec92c
+DIST thunderbird-78.3.1-es-AR.xpi 658242 BLAKE2B 
38d2ba10e42e3c48a29b2f21680ff948f748ae96f7ffc5fc5efd347055fc03432090c0c74063b763d9fc10c00414c4ae668884cdccfe24fa1775a1f5d72a017d
 SHA512 
119657565129f7529d48a313474c4e3ab4e163e7257c6e2ca571d68094bd9d66c8fae0b0e404960176dd116349c7b832f9aabdfbc3588cde0e02fd88be992508
+DIST thunderbird-78.3.1-es-ES.xpi 570250 BLAKE2B 
90184b8c0e9a7e6a0dcf4d4ed47c012ef26c072639d701ba276144e335c797b3e3b6afcea49b7a4e1099858eb16cf0b1d25c5f10f13682d0ae545f33abd3ddf4
 SHA512 
46fcc62fb91452524c59cfc22ee440ba7d9b1c088d34792ad5ab53f1038f4fc08a17b38a4cce6cb190b2e1dc2922e9a0b75d7e2d96782edb1965b23d65067e4e
+DIST thunderbird-78.3.1-et.xpi 598159 BLAKE2B 
524440339ddc0f749e9c48f1bdc6139e75d7788c298a72686e91240597432f18b2c0669553683aa3b551a827ee88b6f487f3bf16dcdbaaa3bf1f5b6272beba37
 SHA512 
059cff9a9033d43d19eafab739c7e886e1a6fbfde9be91a5826f025e34794c3f1372728974da701518fb9c81e1f694cbc979d3e50b3b97d6c70716299c041233
+DIST thunderbird-78.3.1-eu.xpi 633360 BLAKE2B 
c5b3315ec5a0995187dfaa52b6fe7047554bf40b1dfb85df00eee624b6f02b7416367fcc24a221fbbfb1962e6e8ffe897e225e191867c2851d6f9d5613727b8d
 SHA512 
d7f7361e1d0bc4fea5613e1d3365272042e70e12a6a4da5f25681b3173b3ba681ae7280c739caf89ea8d762d32a70d70e8ab1abd39d26036576bfcee96f8d3d6
+DIST thunderbird-78.3.1-fa.xpi 640169 BLAKE2B 
7a5ff7350ad93ab5350e60fc1ea7bad47b8300a04bb6cec0e9139f32e1393ae0cfeb83d1756f9617bae1e55f8d02343c5d0db209242e714d16e0ce5adf85b2fc
 SHA512 
6b7a5f6f416b719f7dc1ef8419c60e87403ca81d95300530e2b6d95772cb922f75d619549a123c735e224e4db08b55b1c4c297b0de3a66585d65d363fb846a04
+DIST thunderbird-78.3.1-fi.xpi 642882 BLAKE2B 
fe3fbdb6488806441c58d822d1cce751eaa373a3df6fb042af17a5896004e6e59fdbf323349d509d83c7d604ca573b88e2d249be5fbad77a0c06ef690eed7ea7
 SHA512 
e7adadc00ec3616f68b90d3b48928025847c7691daed391c54b1155df389f8b1ca7644bce13b225e5977237ba7c47594e8a2c2c7b2fe9b0832ce716a2966a98f
+DIST thunderbird-78.3.1-fr.xpi 669932 BLAKE2B 
697e4ddd6aa6209bec3755c2579d623708453c4764ea1d4485748387d61619772e9838657ca7998abefaec7764d2c61d836ec62b5e736d352800f4c5ecb0dcf9
 SHA512 
c3bc9ef32f22db6bedd41136b63a51e77e31d9886858c4df56e4044a63885fee21fbee164ecb53e03028cf37ca3cc8bd27c2603c1fb707f269a179faccae7549
+DIST thunderbird-78.3.1-fy-NL.xpi 653515 BLAKE2B 
3a529efe3409e0a73408ff4a7b46571f1386d294b043828eb6985e259e12e165155bdadf239322fc671c4c5a565d674c1752ce2e66a54af72e8dba15cb083560
 SHA512 
e56584b69aa292b820c1c5fdddca4c2fb715d8e33b7e742ceac781152078847a1891f2b2d511d0188eeb86c2bc646376473e5382322ed4e2c317c2c67609cf0b
+DIST thunderbird-78.3.1-ga-IE.xpi 601172 BLAKE2B 
1dbc1e10785a3d7bca215234aa85f8d16c03afa2c30e1c2d304903390836fae3e092f222984b0ae48c6bdc415128f88fb172671433cd028f97eda6aba312167f
 SHA512 
61a595a25fbae0f87e318072b04423b5b88204439ae0713ce5d234fb2f6565fec79e32a8209288870a7b9e81771787339be4c4bcb039256536326f8485f68854
+DIST thunderbird-78.3.1-gd.xpi 609820 BLAKE2B 
5a59a4b5bb9aa6765344890a967f5ea7322a5be57079393c6e8bc5a24bf41a3fd6111fc134b14c5335c47949d5ef2b2cee120dd2d9196a54aa0856147838c272
 SHA512 
bdf20675f57bf037c0003d480d8ccba7e06ee83412317c7229e70d29c0f9add266414ed539818175481d49d6444463495b0a0f9aec050a0ca0db8c143596cc10
+DIST thunderbird-78.3.1-gl.xpi 616197 BLAKE2B 
50133bb1aea400e500dbbd34e0530d2965b81411d2726857dffe6d76f7c9c60fdde0adcd1af2b45578d536d8d508febe44efe3f1f74f8e1bc233f4aec50b8ed2
 SHA512 
454baabe2d5084ed8b9b57369711ec7924d77b8d5bd0ae740091ff15068892a0b89603f6ba6078da3fbd74712b8d0dae4facd302009463e14611f308eb3a1922
+DIST thunderbird-78.3.1-he.xpi 640978 BLAKE2B 
58a4f377aa8ee88d4ec73bb7b67729bb35f7d013b2cb28dfe3b81103e1537faf7938e872e887fcd3e3699db2eee11179ba777a54e574cca7c753b40b6f65a423
 SHA512 
1b71d51a2a78f800b4e3c4e73ce8690499615f7f75975c6d159ae025c8751723ef2b1f3cc19967115d21f746f20576ee789c4b35776f5a980e95a6be64807ffe
+DIST thunderbird-78.3.1-hr.xpi 629425 BLAKE2B 
a02e62c2544a97bc506606529b8dd0171c1579868ff1ee3ebe780487def6fe4306ee6148f87aae591cba4bbad8aebdf7a0d70991adf26b7f9bc3c8a350dfb6c6
 SHA512 
c3cba6adb7b0119a0bde17ee6a0a9a4f5a42025359f6abfbdce9b596e18f20866eaae618ce123908c8178172fd7542ce906ad730c2f00182f22b757f4280f12c
+DIST thunderbird-78.3.1-hsb.xpi 669044 BLAKE2B 
236ef3c424164c3b25af50b2832720a66fe9cba1afbe7e9e6c87e1a0e1277eb53e0473b8da4ac68c412e825b12e1b2510bc7d738bcd996a3b2b429f73bed8946
 SHA512 
c00827dc37274dfe7d59d18f15588d80dd31f62fe51c304fc035c10520d2d38d5d9c50f5ac8e8255d4c9db6bfc4cd4ffb9b3105b210a62a6207698a4de180f7f
+DIST thunderbird-78.3.1-hu.xpi 680276 BLAKE2B 
63e5ae79a62b6e1f8495ce354f5550054373018f9537416b0b65132d8a9fee9cc7979ca73f1ae13aa2c6de4a51fbeaa5a3d0a0d9fa36246e0786cd7143e66e62
 SHA512 
7008a82af0366dfa206039da35ecace8d819459d475ff2f7fffc0d1c8ff81aa6ae8dd4c1b1970da86e4209ff9c6c7f1ae13ab5c85d96ac46a7f3edb5dd5a167e
+DIST thunderbird-78.3.1-hy-AM.xpi 713775 BLAKE2B 
6f60d07c8b2395157e7295b82753a8d908ca30872f4d652db5f9d7e1f670874cb4e0eaf948b8e5b37e69faa9940526be2966d555cdc01e64ca4546e1e952956b
 SHA512 
8881730a3f7c27dd4df5bbafdcc04907b8cbc7aa145bb0c8e044f00e6a4749bcaebff35573b40556a46463e920385c9e5ecd2814376c84fad58fd0101ace31e4
+DIST thunderbird-78.3.1-id.xpi 621070 BLAKE2B 
7fa306b8dce3b384614f3051370ff675fc8c365577668df090c4efbf296eb80de5b8e9a8262d7789616882b077a59f7a91546b45fb55abb04cb3830deac4cbe1
 SHA512 
a3f81788c3f52f80bd912da95512829ed84043465b03228a2832d6d427ef4b1709c69582d4b76e1cefe3e2d90bbd558c0b6a91bb846010f3fbe89f40a4830153
+DIST thunderbird-78.3.1-is.xpi 582081 BLAKE2B 
4c2eb7f2688d4dd69f7efe6af569550abb0b6ba635fa887afe13b28a4e4591311e1f7efefb2d650e32a16215fc9374b25a2b72da62805af9f175086ba99e215f
 SHA512 
7f2e399743e3163c18fdb6728b164d66cb2ef40e67dc7fc63eede9ece19dc000cf31942f8594b14572d79eefd7ae913b7a82ebcb2ea9e48fac44709204d870a6
+DIST thunderbird-78.3.1-it.xpi 573401 BLAKE2B 
422db414da26dc9df7e8f38f00d00e1127615ba6e0086bb75f88788f8aa4609e3cab7a5ed8cb239b156312fed090c622aa4b43f266f2c05739efab635c9e3dcf
 SHA512 
69fa612c28224a6472a0ffbc1034003e8fd628eaf8c983932a530dde5e3049afb9de2cdd039b5a582de7e2a7080845577e627a253af1eb846163c0f6489025e8
+DIST thunderbird-78.3.1-ja.xpi 722921 BLAKE2B 
825c4668dcbfe1e2223ceb46b61cd8d7db72e131bc37d85997c71263ea18044260dd5602a4295b97070b7c7e4dc778874731a9acaffaad64f9e97a98cf567ec7
 SHA512 
dfd831e9ccd4eef5f6028ef7cda086dc9a652c8febf613b35a87d3b5ff64736962c0b4824404f9f2146d3115fcb3489936a35c199d751b588880186570d4d79a
+DIST thunderbird-78.3.1-ka.xpi 717490 BLAKE2B 
c4c2d820262bb4cefd4b83a59e1ec684933229f496196d61c8b402c1360ae35d5eeae7a1d1fc2173f9d10a2790bf42ea79c92fb0f80a5cf69d1babc99ff5df2a
 SHA512 
5489f8e470df550fc4d6cd83dda29e62d69819e6f539805bccb14a436213c834aad349ba600ead36153d142deaed9a7ec2b8ec6e5247d2e51adcb1f95a140baf
+DIST thunderbird-78.3.1-kab.xpi 652354 BLAKE2B 
f29a58957db51af566853e28aeeb3f33d31bb8c56b2705f1fbd263418e41c6acd49e8c8211ecda7fc8c29cde98161a84687fc2f22e327eb0905220b7d258957b
 SHA512 
fd57398522951d615ff406130eb4f9320ec7c8bd6815530d83b857baa53bd55ae44c87652ecdbd93c6a74f6f28c503f7889cd8e7e92fd9493fa76266b0318e42
+DIST thunderbird-78.3.1-kk.xpi 720911 BLAKE2B 
df08f3625194041473bf2df8ee8efe6d0c0866976a283b2cdce469339a31a3665eb9d2096e035fa38713ffa8377af84b8a4883b4e821b7e4ed7d3f009a2faa82
 SHA512 
8b1697f76701616c6ccd30f5e3a93d2a506287dc8dc46051377ecf877875c712b5e92fb94ebbe690767dc23974d7d79fac2ccb1a3c6d0f5447582f5a4c278c9f
+DIST thunderbird-78.3.1-ko.xpi 688662 BLAKE2B 
65f6fa0d16fb8d5dfd07664a8c57aecfcc0a21ae18c5dc3d5f2ac3a26e7dfe3c82a8cc64b5eb389701581de838fe0e11a9553078a12c3158ed3a03137029f2a6
 SHA512 
20e3b6672444323f8e2b7250a6e539d3e11fef6de3967b1c677c29457227a024e5db9dadfc1d713a59d6624b76cfc8a0fbeec4fd9cb85a5cde2be7061e23e6f5
+DIST thunderbird-78.3.1-lt.xpi 660723 BLAKE2B 
a411b460c32439edf00fca6746b5b72167db3b8c1d6cd6243b6de213d835b2110479e9478babd1cb40256d4223268971fc44041388e576a5a2736d3e4bafb56a
 SHA512 
5941c8ba6f95bc6501e9844f3e73e52d96927531a53234c340eea63da6b8fc2a6dcb37f7ba89baf15b809311db91c5e5ee212578fe9fa4fc34b765242e6b5baf
+DIST thunderbird-78.3.1-ms.xpi 572598 BLAKE2B 
99bfcb01d80352698272e4c00e18fd1448dd057c0496b4f81f208e693bcc67fe92880bfc1fa7a55065ca95794fa36f43859110ac7d1e6058d62e0ad36efa9adc
 SHA512 
04a0f67fc24f21bc1108976a06ac663690e9ddbba68068a8fde267ad070310a695ba410c20ffa17e7a0745311c34f59cb4e939837c4c804c0386868f4e812736
+DIST thunderbird-78.3.1-nb-NO.xpi 637687 BLAKE2B 
da46540fe9570f04e254153df3a9b606e4a095236f7cd72b0976d0bd405368b7b6a1e703777bffac34d448c30256149a1aa3fa681f258fd50d9b4946efe9a732
 SHA512 
af76ee9f52ee23c4b50e47886232ad1ddab3b7e56e481239e2b61bc1b7b44185c30d13cc76157c0ca7bef2c8ed71c70cea7acda9d17c87f55180103cb2a8e6bc
+DIST thunderbird-78.3.1-nl.xpi 644785 BLAKE2B 
030af1b512ba282402564c7ffaa5ebcfdf59feecf17f38800e068382362d482136ad0653b11c186572182ca97759f52080af1dfea7058627b97e220102cb719e
 SHA512 
43572179ee12444378d0c82080d4d8ca78cd407eb5612fdc326f09330b8e5c9348cd033c8a808a3e47e8b232eba57dc02e6f7e5d3d66b2009790e31d036fc0c0
+DIST thunderbird-78.3.1-nn-NO.xpi 641129 BLAKE2B 
f0625a150b2f8ce8f2395060570e748b26fcea764abd4277302782ed9a36f1d01de9119a2e78ff3a6b1062bac14a31e3eb7eeb6ba07f6ec529a5589aedb0168e
 SHA512 
2aabaffcb7a53254d14fa5e9b464f5c4e2f61c96a726f9da07aa5d7d676b313ca61859ff3e9332011413635660b2d816092713661e1250a19219d7955f5414dc
+DIST thunderbird-78.3.1-pa-IN.xpi 633700 BLAKE2B 
d395a8f9bfb9ffe050f1c32f36873c0e91d7b62984779145132d1989f7eb35ce8c602bc61d9c0072334526b68592c88d4b389f2c38e2520fe9cdfc4a54889e69
 SHA512 
c14c765fae3e704812589d86961f0829607a44ad5e27021981b67d5474e7049e009b32d7f66a9a1e0ebc9bf15d42e9cc2130a3fe678d7be13f9e123c15acfdd3
+DIST thunderbird-78.3.1-pl.xpi 637576 BLAKE2B 
f5443fa4e6b61e97914b97205930fde4332a2c5f7ad2fbe0b266a0ef5748d172ffc69674db2645b362bc707c93b0f129fe92045732a1aad60f273a62e2d15c03
 SHA512 
5b470814f52dea00f83828230e013f60f4f60cf29a3afc394ad056da875442d026c6df0cdc8f9a9260a1b476225f4585847daafffa7c67c23615059d3fb72719
+DIST thunderbird-78.3.1-pt-BR.xpi 649863 BLAKE2B 
dc64cdd0ba41588be1dbbe3f024d6b1a52633483523388cafa5da3e3aa0139716a485bf19ac87e9671634a2fe1cff622817b17e83f6317b70cea50c851f67aa5
 SHA512 
57170789cba1d3ea0f5293d5c3e89bb36408a7db5d8749f322b4e07f4273cb8bea1b3d21cd2d9a169fd1b9f1ac274714de2a340d8c5c0408892f85a09c584c12
+DIST thunderbird-78.3.1-pt-PT.xpi 655963 BLAKE2B 
dc0e8dd6353aa4c3fd6935818289bd812d8829732ed75b838669813fd36810ef7c3b520f10eb6de13a892a9e4cbeac2dc70e8fd6750e379c5af2321a2d13f6b2
 SHA512 
8eee29ede9b7a0dae952f56eb1b32c2dca2eb994a893010012f49dd8509ac57b3c681ecc107bacf828aea39d3c00ef2e17dbc6e7eaa7e64be963517978fbb834
+DIST thunderbird-78.3.1-rm.xpi 646970 BLAKE2B 
b82d1f6480f5dee6fb45c731ab3ba9a7d41cc1836ac016e6504332e06143658350a1d15b95701ec025235e48b99e2293422e48efabedbac05abae5bceb6aefea
 SHA512 
7149edb2ae34646a921ec1bf17c0c7b738a5af69cb1cef0b85d65e0fcb06d027b7ae40606b3e8f3bf600eec26dcd23decf163f6e22f8c2fa8864478d8dfde9be
+DIST thunderbird-78.3.1-ro.xpi 663069 BLAKE2B 
99680865354b7630b3dbf084380de27441e14a3476507663e8ea7d9beb42d8c5da4ed25c80cd8feeee40c4a10ad01c1edb4c42b3ce31b4edd86bced5b48e9d5b
 SHA512 
05d987df713a6122ca040faba84b453646adf86c2821abf5ecf6148653ec6a0acf2f9dab004cc2079630879cd39e4fb9939fc6a7b6e67b520538b33d901c7c11
+DIST thunderbird-78.3.1-ru.xpi 756670 BLAKE2B 
7d09c57855488b01f9979e2f6e99ec8db318f778ff183d4b6ef83eba84f24f438e923ce60f1a8860f11208db5a6429ec9ca0ff519d46e5f38b285d0519a3506c
 SHA512 
6cb05d8fa9f856ffc9f7f85c8a02699421559b83c15c06a08c6c91f1afd64c7e5520536d7e09557f1e1d752f2137c83078f9573aff8e876e4b23cf8f73ac801d
+DIST thunderbird-78.3.1-si.xpi 651575 BLAKE2B 
1121bb3cbffa8b7bb5ef3cbbe43afa1f2bbe859fa9449d052eafac03eda8e034f560559748a3e119cd35c04830156816c132f760868b64477be712c5866d8638
 SHA512 
bf911bf0cab1811c733a5dd0cf213511cf2a09dd792ae932ff4cfedab0e17de97ef3d6cb89812564cc87787dc66c564121ac205d56241439596fb758170546ec
+DIST thunderbird-78.3.1-sk.xpi 643646 BLAKE2B 
5f125c4f2b8fef0c3ff05340cc0b42709a85e88eba74769d0445174cc11c1e67b99f5e63f5eeefb62f99e14ba71e851832c0cc11e870568fb3d72dae8a40a891
 SHA512 
5b03c9e7402307814c856b2522060705d2c69eb257065c3831c413156f75915ad0336dcaccc9916e566f4d97903de4be8e0bbf5fc91c6a432b25bfb076932f94
+DIST thunderbird-78.3.1-sl.xpi 632783 BLAKE2B 
ae517f5529e4c1f5fac4f9d3610627b2232af269614b00078c5bb81b9f1d1201f275ff81675145e80ebf8f8cbcb758382083c869f0ef15f9bf5f1c7df919ef1c
 SHA512 
1af6cabae65d89b822fd4e47d750dbb492c6fd99ca03959fdc62411beb284c8f7fd21de9e3a2d24ea8d9b175aa173627a591d2d3807ba80d233a171217eec1a3
+DIST thunderbird-78.3.1-sq.xpi 658261 BLAKE2B 
d53fe15652b9ce481510ec29fc63e9e54ccffb6cdf24ae942a10240a2e83e833da53bdc294724a97f229a602cd2e35166122ebf3b64caf70335ded5404963b53
 SHA512 
0c7fdce68e8bee7dfe007c16488aab3e4fe72e5f08ffcb20d7042b911c8bd1190694341ea7e6aafa6bd079aa05fd10a6bf099552b6b89c9c7e0b82d5f224fe76
+DIST thunderbird-78.3.1-sr.xpi 683545 BLAKE2B 
63b03414500ef514c3bb389528b8396cb800b8a0d21f27e82db30350f93f3a61dd5ef4e174b8121a974e05cec4145e5077990437782c6405fefe6fdf46a43186
 SHA512 
5d320b9d235125e5aeb30e9fc24e8f69e34f2d50ca9a9876b497e533af389c89da5a2dae501165f8d88ef6f91fbf16001fb2679292e9a06b8d06c8a40e6046fd
+DIST thunderbird-78.3.1-sv-SE.xpi 649319 BLAKE2B 
7df7855f3e0929c54555be90c59c94913de0d8894d0e14192445c7343d0ea3f8ef76542dbddf2c0e6d18048cf501809363f5ed508724c1b6ec7d68aa477a7f7d
 SHA512 
2fe6160b86f394ba1452a0c9329e4df36e642e6fea06a88a0eca3f546736128f70ad70567fb35e82570792046eac576a226a9f9bae5ff2833599d8c33740989f
+DIST thunderbird-78.3.1-th.xpi 712506 BLAKE2B 
93caee49f04cc5510591daaa6783d951e3ef71122a01f360e2616f42d7e6566c7daf92792c93bb85e293b325e1c5d393ebf49d56ab1f3866d04ba7a8b40d6582
 SHA512 
d1a77b81cb85ed54b5ca2ae95a136497a5a4cb700b150811c4eaac73ff27292ee3d95ac1cb0afb7be49f1ffe4a22277420e514542812b142fb7ab73ac9c64039
+DIST thunderbird-78.3.1-tr.xpi 649516 BLAKE2B 
2b75c653a1951836cc50c754e5b89765e1bd776e2334028f8156839af779b73651b85e58d698f419ca109c43ca9cc878e01c3fd68f48997361ed3cd89598d9e4
 SHA512 
df9433590f181530661f00312a88b44b6d5f2327f5c0d1e2f80e602b571bc620789936524a13e0784c398f47ee66ddb752d2e735d7404fd43fc4262c11410af5
+DIST thunderbird-78.3.1-uz.xpi 587044 BLAKE2B 
42fc36748431c3b220a745018eb45a1259d11bafa72f0692c674e28fcfaab188eabb1ade199362a17c4f7f54923975645aa5b1d5368e94b07abf6948ed7dd1df
 SHA512 
ad51facbefd36118cacbf4841a16aa7a8887774db423d0082c514ac750b2c3b772c1296f0c8cd07bbd061fd41076709f0c40b836594d4a7799d0726860e099f7
+DIST thunderbird-78.3.1-vi.xpi 675050 BLAKE2B 
ce2b4b590242dd840cad62ccbd5c146d26b5c7cee1e01437cc5fd1bed004241ddb458f18e72ebf168eb867fba19c7a04b7521a35527844712bce08d3a5a45b81
 SHA512 
36bb9da0979cf9f6661c9c295a90e8cd10c1abedc3b6693f6f5925555e71893a58ae3d0c6e27b8f3057977bc9cb4a450b419ac9981c75daa2c13b39edc55a93b
+DIST thunderbird-78.3.1-zh-CN.xpi 687634 BLAKE2B 
c5e3aa4419c8637630e9b030380d971b76a103f974c67b7778c789d11dec6192e36e868b6571ca10050e1b7d580edee10f5cf494a7c2235206c298dd1deeb0da
 SHA512 
0a550fbd21cb3fb047b1965ab62d0ea68b58bd49907c16c603f5e202ea20c2dd621abafa8aa41c0f4c0eb08dd09ee0fe44e294d3ae003699b6d18efaea294e19
+DIST thunderbird-78.3.1-zh-TW.xpi 688074 BLAKE2B 
5e12b4cbf2f142a8de23356712162df9d370df06a1172acd3e9272cb3717776c6747cfb4975524cc1ef8efc026cbdbbc251898d67e2fca38aa9f982af12ed497
 SHA512 
f47fc7545dad00baad3e7088ff6ba06865a3d24cacad274740c7efb16c47b36682c0c56a5d00f07614eb609b6dc140318396e5c3b14a6b316c501dcb2d72bb11
+DIST thunderbird-78.3.1.source.tar.xz 353920472 BLAKE2B 
5afcec30c23480a239f3cfff56d67e403d300be00e1f374e9ee8a594d9845e9fba4262c410b552cc2ce9b529d8cb9221f81f2367d9c6ee0776d496af0ae88a58
 SHA512 
16b05e51776ba16503bc5fba02a6d0b5050a206e264a4707544354ad76af61902fd2dcf5d97b82b432dc69362ccd18543a0acccd80e06648e6c6f470886da450

diff --git a/mail-client/thunderbird/files/gentoo-default-prefs.js 
b/mail-client/thunderbird/files/gentoo-default-prefs.js
new file mode 100644
index 00000000000..4b5121a8d27
--- /dev/null
+++ b/mail-client/thunderbird/files/gentoo-default-prefs.js
@@ -0,0 +1,7 @@
+pref("general.smoothScroll",               true);
+pref("general.autoScroll",                 false);
+pref("general.useragent.locale",           
"chrome://global/locale/intl.properties");
+pref("mail.shell.checkDefaultClient",      false);
+pref("intl.locale.requested",              "");
+/* Disable DoH by default */
+pref("network.trr.mode",                   5);

diff --git a/mail-client/thunderbird/files/icon/thunderbird-r2.desktop 
b/mail-client/thunderbird/files/icon/thunderbird-r2.desktop
new file mode 100644
index 00000000000..f5760f39c28
--- /dev/null
+++ b/mail-client/thunderbird/files/icon/thunderbird-r2.desktop
@@ -0,0 +1,30 @@
+[Desktop Entry]
+Version=1.0
+Name=@NAME@
+GenericName=Email
+Comment=Send and Receive Email
+Comment[ca]=Llegiu i escriviu correu
+Comment[cs]=Čtení a psaní pošty
+Comment[de]=Emails lesen und verfassen
+Comment[fi]=Lue ja kirjoita sähköposteja
+Comment[fr]=Lire et écrire des courriels
+Comment[it]=Leggere e scrivere email
+Comment[ja]=メールの読み書き
+Comment[pl]=Czytanie i wysyłanie e-maili
+Comment[pt_BR]=Ler e escrever suas mensagens
+Comment[sv]=Läs och skriv e-post
+Exec=@EXEC@ %u
+Icon=@ICON@
+Terminal=false
+Type=Application
+MimeType=message/rfc822;x-scheme-handler/mailto;
+StartupNotify=true
+Categories=Network;Email;
+Keywords=email;messages;
+Actions=profile-manager-window;
+
+[Desktop Action profile-manager-window]
+Name=Open the Profile Manager
+Name[de]=Profilverwaltung öffnen
+Name[cs]=Správa profilů
+Exec=@EXEC@ --ProfileManager

diff --git a/mail-client/thunderbird/files/thunderbird-wayland.sh 
b/mail-client/thunderbird/files/thunderbird-wayland.sh
new file mode 100644
index 00000000000..2cfdc5e1e53
--- /dev/null
+++ b/mail-client/thunderbird/files/thunderbird-wayland.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+#
+# Run Mozilla Thunderbird under Wayland
+#
+export MOZ_ENABLE_WAYLAND=1
+exec @PREFIX@/bin/thunderbird "$@"

diff --git a/mail-client/thunderbird/files/thunderbird-x11.sh 
b/mail-client/thunderbird/files/thunderbird-x11.sh
new file mode 100644
index 00000000000..2f4e410c8dc
--- /dev/null
+++ b/mail-client/thunderbird/files/thunderbird-x11.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+#
+# Run Mozilla Thunderbird on X11
+#
+export MOZ_DISABLE_WAYLAND=1
+exec @PREFIX@/bin/thunderbird "$@"

diff --git a/mail-client/thunderbird/files/thunderbird.sh 
b/mail-client/thunderbird/files/thunderbird.sh
new file mode 100644
index 00000000000..7345cfcdef1
--- /dev/null
+++ b/mail-client/thunderbird/files/thunderbird.sh
@@ -0,0 +1,128 @@
+#!/bin/bash
+
+##
+## Usage:
+##
+## $ thunderbird
+##
+## This script is meant to run Mozilla Thunderbird in Gentoo.
+
+cmdname=$(basename "$0")
+
+##
+## Variables
+##
+MOZ_ARCH=$(uname -m)
+case ${MOZ_ARCH} in
+       x86_64|s390x|sparc64)
+               MOZ_LIB_DIR="@PREFIX@/lib64"
+               SECONDARY_LIB_DIR="@PREFIX@/lib"
+               ;;
+       *)
+               MOZ_LIB_DIR="@PREFIX@/lib"
+               SECONDARY_LIB_DIR="@PREFIX@/lib64"
+               ;;
+esac
+
+MOZ_THUNDERBIRD_FILE="thunderbird"
+
+if [[ ! -r ${MOZ_LIB_DIR}/thunderbird/${MOZ_THUNDERBIRD_FILE} ]]; then
+       if [[ ! -r ${SECONDARY_LIB_DIR}/thunderbird/${MOZ_THUNDERBIRD_FILE} ]]; 
then
+               echo "Error: ${MOZ_LIB_DIR}/thunderbird/${MOZ_THUNDERBIRD_FILE} 
not found" >&2
+               if [[ -d $SECONDARY_LIB_DIR ]]; then
+                       echo "       
${SECONDARY_LIB_DIR}/thunderbird/${MOZ_THUNDERBIRD_FILE} not found" >&2
+               fi
+               exit 1
+       fi
+       MOZ_LIB_DIR="$SECONDARY_LIB_DIR"
+fi
+MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/thunderbird"
+MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}"
+MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_THUNDERBIRD_FILE}"
+DESKTOP_FILE="thunderbird"
+
+##
+## Enable Wayland backend?
+##
+if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then
+       if [[ -n "$WAYLAND_DISPLAY" ]]; then
+               DESKTOP_FILE="thunderbird-wayland"
+               export MOZ_ENABLE_WAYLAND=1
+       fi
+elif [[ -n ${MOZ_DISABLE_WAYLAND} ]]; then
+       DESKTOP_FILE="thunderbird-x11"
+fi
+
+##
+## Use D-Bus remote exclusively when there's Wayland display.
+##
+if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+       export MOZ_DBUS_REMOTE=1
+fi
+
+##
+## Make sure that we set the plugin path
+##
+MOZ_PLUGIN_DIR="plugins"
+
+if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then
+       
MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+else
+       MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then
+       
MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+export MOZ_PLUGIN_PATH
+
+##
+## Set MOZ_APP_LAUNCHER for gnome-session
+##
+export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}"
+
+##
+## Disable the GNOME crash dialog, Mozilla has its own
+##
+if [[ "$XDG_CURRENT_DESKTOP" == "GNOME" ]]; then
+       GNOME_DISABLE_CRASH_DIALOG=1
+       export GNOME_DISABLE_CRASH_DIALOG
+fi
+
+##
+## Enable Xinput2 (#617344)
+##
+
+# respect user settings
+MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto}
+
+if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then
+       # enabling XINPUT2 should be safe for all wayland users
+       MOZ_USE_XINPUT2=1
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then
+       # XINPUT2 is known to cause problems for KWin users
+       MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then
+       # LXQt uses KWin
+       MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then
+       # should work on Mate, Xfce, FluxBox, OpenBox and all the others ...
+       MOZ_USE_XINPUT2=1
+fi
+
+[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2}
+
+# Don't throw "old profile" dialog box.
+export MOZ_ALLOW_DOWNGRADE=1
+
+##
+## Route to the correct .desktop file to get proper
+## name and actions
+##
+if [[ $@ != *"--name "* ]]; then
+       set -- --name "${DESKTOP_FILE}" "$@"
+fi
+
+# Run the mail client
+exec ${MOZ_PROGRAM} "$@"

diff --git a/mail-client/thunderbird/metadata.xml 
b/mail-client/thunderbird/metadata.xml
index 6024b9a56d6..ebca529ee30 100644
--- a/mail-client/thunderbird/metadata.xml
+++ b/mail-client/thunderbird/metadata.xml
@@ -18,6 +18,8 @@
                (note 38.0 and above bundles calendar support when this flag is 
off)</flag>
        <flag name="lto">Enable Link Time Optimization (LTO). Requires Gold 
linker when using GCC
                or LDD linker when using Clang</flag>
+       <flag name="openh264">Use <pkg>media-libs/openh264</pkg> for H.264 
support
+               instead of downloading binary blob from Mozilla at 
runtime</flag>
        <flag name="pgo">Add support for profile-guided optimization using 
gcc-4.5,
                for faster binaries. This option will double the compile 
time.</flag>
        <flag name="system-av1">Use the system-wide <pkg>media-libs/dav1d</pkg>

diff --git a/mail-client/thunderbird/thunderbird-78.3.1.ebuild 
b/mail-client/thunderbird/thunderbird-78.3.1.ebuild
new file mode 100644
index 00000000000..70cf6ee6ed4
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-78.3.1.ebuild
@@ -0,0 +1,990 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-esr-78-patches-02.tar.xz"
+
+LLVM_MAX_SLOT=10
+
+PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=
+
+# Convert the ebuild version to the upstream mozilla version, used by 
mozlinguas
+MOZ_PV="${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
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \
+       multiprocessing pax-utils python-any-r1 toolchain-funcs \
+       virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       
https://dev.gentoo.org/~{axz,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${PN}-${MOZ_PV}.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.mozilla.org/thunderbird";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="0/$(ver_cut 1)"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+IUSE="clang cpu_flags_arm_neon dbus debug eme-free +gmp-autoupdate
+       hardened jack lto +openh264 pgo pulseaudio selinux
+       +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+       +system-libvpx +system-webp wayland wifi"
+
+BDEPEND="${PYTHON_DEPS}
+       app-arch/unzip
+       >=dev-util/cbindgen-0.14.3
+       >=net-libs/nodejs-10.19.0
+       virtual/pkgconfig
+       >=virtual/rust-1.43.0
+       || (
+               (
+                       sys-devel/clang:10
+                       sys-devel/llvm:10
+                       clang? (
+                               =sys-devel/lld-10*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-10*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:9
+                       sys-devel/llvm:9
+                       clang? (
+                               =sys-devel/lld-9*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-9*[profile] )
+                       )
+               )
+       )
+       lto? (
+               !clang? ( sys-devel/binutils[gold] )
+       )
+       amd64? ( >=dev-lang/yasm-1.1 )
+       x86? ( >=dev-lang/yasm-1.1 )
+       !system-av1? (
+               amd64? ( >=dev-lang/nasm-2.13 )
+               x86? ( >=dev-lang/nasm-2.13 )
+       )"
+
+CDEPEND="
+       >=dev-libs/nss-3.53.1
+       >=dev-libs/nspr-4.25
+       dev-libs/atk
+       dev-libs/expat
+       >=x11-libs/cairo-1.10[X]
+       >=x11-libs/gtk+-2.18:2
+       >=x11-libs/gtk+-3.4.0:3[X]
+       x11-libs/gdk-pixbuf
+       >=x11-libs/pango-1.22.0
+       >=media-libs/libpng-1.6.35:0=[apng]
+       >=media-libs/mesa-10.2:*
+       media-libs/fontconfig
+       >=media-libs/freetype-2.4.10
+       kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
+       virtual/freedesktop-icon-theme
+       >=x11-libs/pixman-0.19.2
+       >=dev-libs/glib-2.26:2
+       >=sys-libs/zlib-1.2.3
+       >=dev-libs/libffi-3.0.10:=
+       media-video/ffmpeg
+       x11-libs/libX11
+       x11-libs/libXcomposite
+       x11-libs/libXdamage
+       x11-libs/libXext
+       x11-libs/libXfixes
+       x11-libs/libXrender
+       x11-libs/libXt
+       dbus? (
+               sys-apps/dbus
+               dev-libs/dbus-glib
+       )
+       system-av1? (
+               >=media-libs/dav1d-0.3.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-libs/harfbuzz-2.6.8:0=
+               >=media-gfx/graphite2-1.3.13
+       )
+       system-icu? ( >=dev-libs/icu-67.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+       system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
+       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       wifi? (
+               kernel_linux? (
+                       sys-apps/dbus
+                       dev-libs/dbus-glib
+                       net-misc/networkmanager
+               )
+       )
+       jack? ( virtual/jack )
+       selinux? ( sec-policy/selinux-mozilla )"
+
+RDEPEND="${CDEPEND}
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4
+               )
+       )
+       selinux? ( sec-policy/selinux-mozilla )"
+
+DEPEND="${CDEPEND}
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       wayland? ( >=x11-libs/gtk+-3.11:3[wayland] )
+       amd64? ( virtual/opengl )
+       x86? ( virtual/opengl )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+       MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+       if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+               ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang ; then
+               if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+                       ewarn "=sys-devel/lld-${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}*" ; then
+                               ewarn 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               fi
+       fi
+
+       einfo "Will use LLVM slot ${LLVM_SLOT}!" >&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 et eu fa fi fr fy-NL ga-IE gd gl he hr hsb hu hy-AM
+       id is it ja ka kab kk ko lt ms nb-NO nl nn-NO pa-IN pl pt-BR
+       pt-PT rm ro ru si sk sl sq sr sv-SE th tr 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 -> 
${PN}-${MOZ_PV}-${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}"
+}
+
+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="13G"
+               else
+                       CHECKREQS_DISK_BUILD="5400M"
+               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="13G"
+               else
+                       CHECKREQS_DISK_BUILD="5400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if ! 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
+       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() {
+       use pgo && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # 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
+
+       # Clearing checksums where we have applied patches
+       moz_clear_vendor_checksums target-lexicon-0.9.0
+
+       # 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
+
+       xdg_src_prepare
+}
+
+src_configure() {
+       local have_switched_compiler=
+       if use clang && ! tc-is-clang ; then
+               # Force clang
+               einfo "Enforcing the use of clang due to USE=clang ..."
+               have_switched_compiler=yes
+               CC=${CHOST}-clang
+               CXX=${CHOST}-clang++
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+       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
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+       # 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 MOZCONFIG
+       export MOZCONFIG="${S}/.mozconfig"
+
+       # Initialize MOZCONFIG
+       mozconfig_add_options_ac '' --enable-application=comm/mail
+       mozconfig_add_options_ac '' --enable-calendar
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld when using clang
+                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+               else
+                       # Linking only works when using ld.gold when LTO is 
enabled
+                       mozconfig_add_options_ac "forcing ld=gold due to 
USE=lto" --enable-linker=gold
+
+                       # ThinLTO is currently broken, see bmo#1644409
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+               fi
+
+               if use pgo ; then
+                       mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+               fi
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # This is upstream's default
+                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+               elif tc-ld-is-gold ; then
+                       mozconfig_add_options_ac "linker is set to gold" 
--enable-linker=gold
+               else
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+       fi
+
+       # LTO flag was handled via configure
+       filter-flags '-flto*'
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               if is-flag '-g*' ; then
+                       mozconfig_add_options_ac '+debug' 
--enable-debug-symbols=$(get-flag '-g*')
+               else
+                       mozconfig_add_options_ac '+debug' --enable-debug-symbols
+               fi
+
+               mozconfig_add_options_ac '+debug' --disable-optimize
+       else
+               if is-flag '-g*' ; then
+                       mozconfig_add_options_ac '+debug' 
--enable-debug-symbols=$(get-flag '-g*')
+               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*'
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-install-strip \
+               --disable-strip \
+               --disable-updater \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-png \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${SYSROOT}${EPREFIX}/usr/include" \
+               --x-libraries="${SYSROOT}${EPREFIX}/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 && [[ ${CHOST} != armv*h* ]] ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-google.key" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google 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 system-libevent 
"${SYSROOT}${EPREFIX}/usr"
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+
+       use eme-free && mozconfig_annotate '+eme-free' --disable-eme
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+       fi
+
+       mozconfig_use_enable jack
+
+       mozconfig_use_enable pulseaudio
+       # force the deprecated alsa sound code if pulseaudio is disabled
+       if use kernel_linux && ! use pulseaudio ; then
+               mozconfig_add_options_ac '-pulseaudio' --enable-alsa
+       fi
+
+       mozconfig_use_enable wifi necko-wifi
+
+       if use wayland ; then
+               mozconfig_add_options_ac '+wayland' 
--enable-default-toolkit=cairo-gtk3-wayland
+       else
+               mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3
+       fi
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm | ppc64)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif tc-ld-is-gold ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export MACH_USE_SYSTEM_PYTHON=1
+
+       # Disable notification when build system has finished
+       export MOZ_NOSPAM=1
+
+       # Build system requires xargs but is unable to find it
+       mozconfig_add_options_mk 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+       # Set build dir
+       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+       # Handle EXTRA_CONF and show summary
+       local ac opt hash reason
+
+       # Apply EXTRA_ECONF entries to $MOZCONFIG
+       if [[ -n ${EXTRA_ECONF} ]] ; then
+               IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+               for opt in "${ac[@]}"; do
+                       mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+               done
+       fi
+
+       echo
+       echo "=========================================================="
+       echo "Building ${PF} with the following configuration"
+       grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+               [[ -z ${hash} || ${hash} == \# ]] \
+                       || die "error reading mozconfig: ${ac} ${opt} ${hash} 
${reason}"
+               printf "    %-30s  %s\n" "${opt}" "${reason:-mozilla.org 
default}"
+       done
+       echo "=========================================================="
+       echo
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       if use pgo ; then
+               virtx_cmd=virtx
+
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+       fi
+
+       local -x GDK_BACKEND=x11
+
+       ${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/firefox \
+               "${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}"/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.js all-gentoo.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js"
+
+       # 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
+
+       if ! use gmp-autoupdate ; then
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       einfo "Disabling auto-update for ${plugin} plugin ..."
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to 
disable autoupdate for ${plugin} media plugin"
+                       pref("media.${plugin}.autoupdate",   false);
+                       EOF
+               done
+       fi
+
+       # 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 menus
+       local wrapper_wayland="${PN}-wayland.sh"
+       local wrapper_x11="${PN}-x11.sh"
+       local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
+       local display_protocols="auto X11"
+       local icon="${PN}"
+       local name="Mozilla ${PN^}"
+       local use_wayland="false"
+
+       if use wayland ; then
+               display_protocols+=" Wayland"
+               use_wayland="true"
+       fi
+
+       local app_name desktop_filename display_protocol exec_command
+       for display_protocol in ${display_protocols} ; do
+               app_name="${name} on ${display_protocol}"
+               desktop_filename="${PN}-${display_protocol,,}.desktop"
+
+               case ${display_protocol} in
+                       Wayland)
+                               exec_command="${PN}-wayland --name 
${PN}-wayland"
+                               newbin "${FILESDIR}/${wrapper_wayland}" 
${PN}-wayland
+                               ;;
+                       X11)
+                               if ! use wayland ; then
+                                       # Exit loop here because there's no 
choice so
+                                       # we don't need wrapper/.desktop file 
for X11.
+                                       continue
+                               fi
+
+                               exec_command="${PN}-x11 --name ${PN}-x11"
+                               newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11
+                               ;;
+                       *)
+                               app_name="${name}"
+                               desktop_filename="${PN}.desktop"
+                               exec_command="${PN}"
+                               ;;
+               esac
+
+               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
+       done
+
+       # Install generic wrapper script
+       rm "${ED}/usr/bin/${PN}" || die
+       newbin "${FILESDIR}/${PN}.sh" ${PN}
+
+       # Update wrapper
+       local wrapper
+       for wrapper in \
+               "${ED}/usr/bin/${PN}" \
+               "${ED}/usr/bin/${PN}-x11" \
+               "${ED}/usr/bin/${PN}-wayland" \
+       ; do
+               [[ ! -f "${wrapper}" ]] && continue
+
+               sed -i \
+                       -e "s:@PREFIX@:${EPREFIX}/usr:" \
+                       -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+                       "${wrapper}" \
+                       || die
+       done
+}
+
+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 gmp-autoupdate ; then
+               elog "USE='-gmp-autoupdate' has disabled the following plugins 
from updating or"
+               elog "installing into new profiles:"
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       elog "\t ${plugin}"
+               done
+               elog
+       fi
+
+       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
+
+       local show_doh_information
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+       fi
+
+       if [[ -n "${show_doh_information}" ]] ; then
+               elog
+               elog "Note regarding Trusted Recursive Resolver aka 
DNS-over-HTTPS (DoH):"
+               elog "Due to privacy concerns (encrypting DNS might be a good 
thing, sending all"
+               elog "DNS traffic to Cloudflare by default is not a good idea 
and applications"
+               elog "should respect OS configured settings), 
\"network.trr.mode\" was set to 5"
+               elog "(\"Off by choice\") by default."
+               elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+       fi
+}

Reply via email to