summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2020-09-30 18:53:56 +0200
committerThomas Deutschmann <whissi@gentoo.org>2020-09-30 20:03:51 +0200
commita6f96f350b74a65923ca6239879a5f96e100ef69 (patch)
tree4f1587dc75e08abaf7eb0e405a0a04d4cdd47ce7
parentdev-libs/librelp: bump to v1.8.0 (diff)
downloadgentoo-a6f96f35.tar.gz
gentoo-a6f96f35.tar.bz2
gentoo-a6f96f35.zip
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@gentoo.org>
-rw-r--r--mail-client/thunderbird/Manifest66
-rw-r--r--mail-client/thunderbird/files/gentoo-default-prefs.js7
-rw-r--r--mail-client/thunderbird/files/icon/thunderbird-r2.desktop30
-rw-r--r--mail-client/thunderbird/files/thunderbird-wayland.sh7
-rw-r--r--mail-client/thunderbird/files/thunderbird-x11.sh7
-rw-r--r--mail-client/thunderbird/files/thunderbird.sh128
-rw-r--r--mail-client/thunderbird/metadata.xml2
-rw-r--r--mail-client/thunderbird/thunderbird-78.3.1.ebuild990
8 files changed, 1237 insertions, 0 deletions
diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index 5a073a1bdfca..1f901d9c08fa 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 000000000000..4b5121a8d272
--- /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 000000000000..f5760f39c285
--- /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 000000000000..2cfdc5e1e53d
--- /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 000000000000..2f4e410c8dcc
--- /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 000000000000..7345cfcdef14
--- /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 6024b9a56d6e..ebca529ee305 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 000000000000..70cf6ee6ed49
--- /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
+}