commit:     4cc2f780bb221daa41352616282da595ab35a319
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 15 18:13:14 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Dec 15 18:27:32 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4cc2f780

mail-client/thunderbird: bump to v78.6.0

Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 mail-client/thunderbird/Manifest                   |   65 ++
 mail-client/thunderbird/files/distribution.ini     |    9 +
 .../thunderbird/files/gentoo-hwaccel-prefs.js      |    3 +
 mail-client/thunderbird/metadata.xml               |    1 +
 mail-client/thunderbird/thunderbird-78.6.0.ebuild  | 1046 ++++++++++++++++++++
 5 files changed, 1124 insertions(+)

diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest
index fd74e030700..fbbefb31475 100644
--- a/mail-client/thunderbird/Manifest
+++ b/mail-client/thunderbird/Manifest
@@ -64,3 +64,68 @@ DIST thunderbird-78.5.1-vi.xpi 674603 BLAKE2B 
47d7902b363d3f383d18be1446b83aa67b
 DIST thunderbird-78.5.1-zh-CN.xpi 687173 BLAKE2B 
559fe08784381491f4711200b8024a43a3a539b234aa8f4c4a0836899774a792805c1e5f74a77c33ea3d61392d2e7a6a3521903d1d776e8fe671d2667c6f5f32
 SHA512 
917ddc49e8603eed925678e57d9a00da85da42676ae7b0a9e567e84f8cb8daf8014b897cc9a651ce60a683d17cd9510400647e5621261ae483fd6634cbeaea36
 DIST thunderbird-78.5.1-zh-TW.xpi 687617 BLAKE2B 
905f1290f151c44961c3052237b57732f1be545a60189e2fd1621b1b31d522cfc8cbb7e49fed1d8b8795d936a830c7f5dc33e0b27d8caff31309d09429397e76
 SHA512 
1bf9343592d4df3f5f091ae6fe63b58c2c43bec0581124db88e7c714877e364f0a97d252736dec6cf3522134a7eceb7ca00ffa00274e5690f39e6a4de1f05a8c
 DIST thunderbird-78.5.1.source.tar.xz 352743032 BLAKE2B 
b713b157e273a01ad215bfe751d79948884b9320b59689e0ae1916dee730b54f9147f7c895ec629f06cf4b6da7bff9045bece54704c5d683d9c1deaf41298e8d
 SHA512 
3fb50ee1b5ec4bedaca0c68a86286f5141d3e350025b9d928348c55e57e07013124ef8b0315ee6cb16c08777ba8b0fb715ddc4b5fef2481e32f2b676090a2d80
+DIST thunderbird-78.6.0-af.xpi 548345 BLAKE2B 
d89ee0a52cbbdfe33efb93f5ad4d89523f486b18fe62f5292dbad19b2ac7f8134d83b9c40e9424318d40de4a8d9f745f61faf0614015ce6ae1ae8b42b9fd0be0
 SHA512 
273c352acfce808b97bad77f0b9a3b02296ea78e086baf7b2a3c5d6c980edcdc20e2f525aa24dfffaee74a027a8bb2d34ec09f221f76a67bbcb145c6d21ed417
+DIST thunderbird-78.6.0-ar.xpi 648600 BLAKE2B 
274020f982e55bb6892153e3a19b55a6bf5a845e85fdf144f114ae2be4a4607fe3f140ea67e89ea2a3b921355f550b23e5eb88723a58803c4aac08af7f7b161d
 SHA512 
b73e36dd0a086cdcda34757a0e30dd6aa82791862d60d7c0f87bd8687d52d71da81dc1684130182be07001a777512897dcf4f95e23db344f97991ff937aae5df
+DIST thunderbird-78.6.0-ast.xpi 561260 BLAKE2B 
f6eff5ea45de17a5b370539ab83de54a04d6afa603e122f2afc8875e3f2b3205fbbedff7c3df99532c7ffa8985167a1b124ca586376a3a8b3f84e6023123ee92
 SHA512 
a7ce5cfaf4c96bdc63dc99aa1e5a31eb5e4f90a45350b3bcae2fedf2925a2372fe0058754f490e5e0a114ee5d6341fe8b632f4e3c01924da3f79738a55201117
+DIST thunderbird-78.6.0-be.xpi 666670 BLAKE2B 
13402ba59c35c3d20c25cb18f8786c0a0b83088e8ee46a0b3c0fd86f0069c3848e966a9ef7c2546e0d665d01e16ee7372d1c920be902f18a0efa36d0ccacd8da
 SHA512 
4ca4be8284f64132c99c11e4428fa7e4638b8a970eb31f61b5368a18425b7736622ff21b38907450361b943b680d50b2f0b293f6dc943cc8b665ff8af8cdbe8b
+DIST thunderbird-78.6.0-bg.xpi 672417 BLAKE2B 
f2fef6a49108146a3f4d0c4feb36cf199a5043a85544f4e0d8cee271f180126ad0f035f34bf4978071be3f7f7bbd15b25f9bb6addc5bc05aa7e8a22eae3c6c9e
 SHA512 
aa18a8bf86ffdd83f292942f338e4ae6085ee50e0b573f95bf0c9fa99e257719e934e48d6347c99b39c7aa128a34cd6986154cfd8cea8e5c50a023a8b669a861
+DIST thunderbird-78.6.0-br.xpi 604528 BLAKE2B 
4c1a1159eb3c2433ba2334833799cbd321b43165331cf4cd3fbc6f0e29f543aecd8755632938151220a30d69f6f9e503d22a1656d0488a1d57b36a7b982ae148
 SHA512 
85c9c83e535c87faeb98e2adb7b7ce41752d913e23cb7a92bcc3f5b7af412c184a3995bc0956872c9474dc45b00f6db00058f485a7ff202d478179b8b34af656
+DIST thunderbird-78.6.0-ca.xpi 620436 BLAKE2B 
0124303d8e022da4a2a67df03e18d3c64559966c952a9df14a2d09de954467954cc9231904c649c09b40a4956752156b6eeafc4d904fdd9866a0e8bfb01aac6c
 SHA512 
9d6debedb42e0d314dd4a8f14eba786ee32afb582791e2568a3a528cedef414c01a3df40bee44514ce8cb3e498a49998430b52b1cb3db3bda78989f1775b7a01
+DIST thunderbird-78.6.0-cak.xpi 635657 BLAKE2B 
095934912bf56eeffdbb66c782a32ed30a3f1d940eafa086a69e385a2d913c38510eb5e3522c4df8d25e6d97e9bb4ac5bf5552ce096d7b92f14da2fe68676777
 SHA512 
b998c8972f193a57e0a601f0a6d51130567fd5a74d7d31fdca03cb2ae0d716196bcc36718ce936c15f92d24a2035e19479546dec618685505b4a3ba59ec00653
+DIST thunderbird-78.6.0-cs.xpi 635346 BLAKE2B 
58d56bef182faa2996db3a66909e4daa113a66193b2bb1bed629e772792c2933ca7983062ab2828aed9957bb0303074d02c0729650939153deb0646eb47d71d0
 SHA512 
317573845d2d470a5466dd0863e2c462ad2357b3f6ce422ad74f9db53ceb6876095452bed13cf83cb46ec78c47145d2168b51c600fc17ec1bf0c8e458e15eb0a
+DIST thunderbird-78.6.0-cy.xpi 646243 BLAKE2B 
c02bbe1a26c4c295d04750adb393a786fda6acdfdac420c155f57ca90470ad2ff07f4bed50819bedf1739c0b14b5facd8223a68fb358b832ec683a970a058593
 SHA512 
836171f65ce69d61c0f2043c18db13f2fdf8e38b28982b89bb547de07930c1dd807f710efeb50b61c203c5f91648499dd58488dd6e41b050aaf78f5f1560deec
+DIST thunderbird-78.6.0-da.xpi 620993 BLAKE2B 
089edb401b604309848a8c45ada0e048a76670d2ae85138b60d798afdee0597f8a3cf9d7344755a207c381cd74444f55e0c634c72b01863dbc6d547838d894b8
 SHA512 
e5d19b04b314dc29ba822ea6ccaa77ec54ee526838ca4b565ab74b63a8b521e7060af8d416a285b56db91631284b34941bce7e664643042440528e8165a01c65
+DIST thunderbird-78.6.0-de.xpi 665191 BLAKE2B 
8236d20a297bb3f0b9ef0b9f7cd8eb49877aeb8d12b38a3de7204fbeaf544b109ab4d420c1792277dd4570d94a564ed13617287f6b3f9331404b213acca097bc
 SHA512 
0ef3ba13a9feeb3496d295553f6908a0329f426b8b0fb1646a2f0c7638c4557765da5a39b58e4269dfe593a43909aa712024e16e0450df7c4db5a938172b855a
+DIST thunderbird-78.6.0-dsb.xpi 666771 BLAKE2B 
e1c15e7a2c5eca6630a5ff739c40dbc095903326ea324e8c2fd6356603737d18cc837cc511c0fcad0c322bc007b7c6d7f706f2062e8a8ceafa92ceb04fd952f6
 SHA512 
a831c73ead0e13ab05ae95b972055a3b329092b622c19cba1bf4fd917e85514b55d4fe1c31b1af51173f855f36b4a9bcc631bcf1081fda74d2bdde7a9584526e
+DIST thunderbird-78.6.0-el.xpi 774448 BLAKE2B 
6f6044403442a9375eb42f9b6731a014aa2d008f713666a8caab5dcd6260ede83a7292ab2ca1920fa33fbe87c5e07c66b56feebbe7c8ec580db7624df45f317c
 SHA512 
63264d5332a089e838f4a968f2c804d3e8411a68639caea65b7d6a13cb0569f5e44b2ade846032bb79f13499e9565ce231ccb55ba48ca3a2502c92e0f40adedb
+DIST thunderbird-78.6.0-en-CA.xpi 611773 BLAKE2B 
1b608542c77d41edb37c583cbd74ff1932dd21e36954678161c57f6820ceba4c14408dc7d79a8d7a86bfd4d493ff45028fe520abff79719db025442de6d88b65
 SHA512 
0077c9b65b56e8b1c5f7dfedf2bb2d45896b4a02b5c6ace9e8e03d6499c96cf4a9ed1dc9eaa85a71357f9a1a5a60b5f8f6e21a92992ac5544c3d1992815204f0
+DIST thunderbird-78.6.0-en-GB.xpi 611183 BLAKE2B 
9bc2ea427279866563e421c6ca7efb739b96a9d5aa11591b3595cb54a9293bd1876290e385f64206142d833ab3339321af6ebe30f234472cca48affbd5ee0127
 SHA512 
12761b4b100bd845f2f55c2b724b2bd350a0290ff821df84c4f732d5947e2cb974368ca0063f98e3e8ab264da4e2acda7499255dd82e96bf30b7e7e32b4fb1c3
+DIST thunderbird-78.6.0-es-AR.xpi 657788 BLAKE2B 
2d14ebb13dbdd93d4f095d1c9a1345b68e9e6d488059e88bc3643695fa31cc46e8edd76aaeb8beb10c1fd7a1dbab313b0c693a68d46322159781e6efd199ac3c
 SHA512 
0417c7c47a22c9e548120202d35b52fd4bf7bd6b08e4c9771cc027348bec1fa8db3cd551f41726cc61a830397738274d0483d1cbd507b90c501b53495f22f6e7
+DIST thunderbird-78.6.0-es-ES.xpi 569804 BLAKE2B 
33bb8080008ef53e82cfb7f36c4ab8e21691f9fbe43c1691ffac98dfde64c707415bf8e0d8488a058c8e35813ae910dcd4e82126779ae2259dd9450c4bb87a21
 SHA512 
7c6cce31958b93afbbe4fcf99a62c4a73f2e37eaf51a54945d0ce2190df635eb53498d3d455e7b53fff035f9dd76b92b4478cf44594d67d293a5ca549ca43e36
+DIST thunderbird-78.6.0-et.xpi 597728 BLAKE2B 
d0aebfc5fe1335eed6dbe6e42015d59b4aedbf45f91f44950f125ffb8952395119f8427c83c0749b1d682fcff553e556ae41d2ea8ff011a2d3931bc78a05d285
 SHA512 
5381bb92715ad132cd8c68d9781c4c975a59df64000a6ea71a0113cfda54ddcacebfca8b90bd030128110c915293df26a2c34a10f9ebc2ffdf0a5b24eb39d18e
+DIST thunderbird-78.6.0-eu.xpi 632962 BLAKE2B 
c97291230b26dc72d0113af0f4cc8d8d4bf5be645bc784b8802852f6c58ef9e691bd73a15843b974ad9b2eb5ff48b291a35c774e3fdcfc54af492aa9f9f02e22
 SHA512 
3f38183f140aa30e7b947f47a9da01454722ceb69c75819c0a8831938faba084b3b2398ae5136dd3c72b8a504df78bae6948b6491b8ff8ff9f3a675b934d2a60
+DIST thunderbird-78.6.0-fa.xpi 639756 BLAKE2B 
e61f2625fdb7cfa1d3276b5f0a1fe13d89a7632e1437f7c32262dd0df994b41868094f57915d4b389d1277a0a7c8692203da82381a1b809178084b80e6deb391
 SHA512 
d8e4488007f6dcee3b499e8306086860d3d2d2e4031c0a03022402d1eac2dc7f35a77ed49d2de8ad0e1ce50450152c3f8e1a685f416c2b4aa14239b05e4b0d94
+DIST thunderbird-78.6.0-fi.xpi 642454 BLAKE2B 
b29324602268c3b347f8876f1c0e27de28b04c49b862bb93a614bcca40250c79f644887261468f2b110b6d71a1ad5da0d45bdf40301ea24a159bdce5da914273
 SHA512 
9b69c8a1ae2e04aa9282066cdde5831960d34bfee69188aa8fe0be69db799b79c3ea11f55d1c084b4d3376974c667d8dec57592937c4988617d1cf1dc81690ac
+DIST thunderbird-78.6.0-fr.xpi 669493 BLAKE2B 
fa3b3bfceed1852a3500b3804679d57f897a017d195f011fd79b9476f73d385f15ce3316cfc349d31c9fb03635aa5286e212343cf9b6b45be5532bd9eb698996
 SHA512 
bfbf57fe957bad0043b51950354cf1619a497c224ee3c84893f888d6ad72e695fc6a20a9c44c8cfe48d64f89f80304a8d814a600371708415c2671f28b9b7d50
+DIST thunderbird-78.6.0-fy-NL.xpi 653072 BLAKE2B 
468c42637d99472415f5ab81d3126fcbcf2eab5e67803e16b7d0d0117fa039983e1d43d2c7ebbec0acff9d6dd20047c558d583ea2c7104b277e68989da90d9c4
 SHA512 
c4e4999c76af1c94cbf5009f23d500f2e5351fc38ce18c45c06dc85d6e548be411632b3c3cdd84f37a476cc391bf9000de7c0f4331bfad445b8e13aa153b2951
+DIST thunderbird-78.6.0-ga-IE.xpi 600703 BLAKE2B 
7692232fdea4a106ec0c47c20f170ba0ed021438e41893159038bf9fdf5e00f7dd6e67bb53ab515c9d3bdfe540c5b65e29e2ebfd81506e48e9920b60128b32ee
 SHA512 
d16ee32e21c3cfa354e34b74864f732b2edeb63177ab0ad19731f12ec724f4c59a684e013f0ca083edec9335039419e53b7c86cdcf01cf5bdb02896f7ac7acbe
+DIST thunderbird-78.6.0-gd.xpi 609381 BLAKE2B 
7813fc3edc1080148a59eda5ceb3b2cc0fa47f734c18dde4412398169746fd037c364f7159b1ad1877cf7a2a0bc590b53df552ab2f00fdde0aac83eddf40cdee
 SHA512 
a775f12c9a85c4be2ff7777e3cef7f921e6d70be3e1439c363007d383773b56657600eb816299035d959d97708e786319f927410dd83758c5b605c17447418c1
+DIST thunderbird-78.6.0-gl.xpi 615720 BLAKE2B 
766c20db8418c07016c8acf90adfec3a64c86e6fa4f6f37b51fc92a36e4af9a588d4456177acd7ecf207e7d076f1ba4159eb00c94179a0082759d9ee1fceef4e
 SHA512 
ea9003203e13a5beeac91b691e1fad55eadd83113a586943330e58bcfa00451acea801d374064d98e6649650545392b6bb5ff69d2cdcdf08c223dfad25058a32
+DIST thunderbird-78.6.0-he.xpi 640498 BLAKE2B 
8b372d45238bf88182a53c2129e856c2c4ae59406bcb3f22740d5e8fdd941b351df58baef25e9857eeb42583fca4b99e1153bd5239f6ebdbadb9ff8d12c139d8
 SHA512 
586869e7648df55872fc824d13bf279cfb0ea2f133fabb235ba6230619a2ca7f0dd505cfe71b8788a2e965f3657aa98fbe5b79acd1995576d2507e56e0398c45
+DIST thunderbird-78.6.0-hr.xpi 629032 BLAKE2B 
7f7410f9a10c348db7c605e485cd90ec0b88e028ff13577c10017e27c91a3f182edf2a5121febfe97ac849529b47f395aaac8b18bc0e705f28d4d5f6b5a7b27c
 SHA512 
950c929465b15e13f06b065f967d58ab51b741cf788b58f3e54c15f7917b6dfa372213e4e685310c08e76274237f113b8edb457c29a1beb93e7643cbfd724558
+DIST thunderbird-78.6.0-hsb.xpi 668602 BLAKE2B 
de71c85a194402ec9e5f7e80e51cda8b25237c47354990da6ad187638d7e4a76ca49a7ef6bf84d24737669dfeda31ef26afbd57d09633a3d16d56c619a9baba3
 SHA512 
e2d20a2c3eae77227587b3f90621bd84a3b4c5fe289b97a03b3951c0a050a85faff3f2d4cd51f0e644ec073706e2249e304a5ccd00072ff70d37fcff902c14d0
+DIST thunderbird-78.6.0-hu.xpi 679831 BLAKE2B 
a5597ac70728c3d89c4af989b31dfb73e1dcdce1b6426b1eba03dacb17881d818b5f1e146ab808199e07f3f81bf6e31b0e5a89519d79ef5040cfba3a58843000
 SHA512 
df8a66b3907adda26bfc55eebcd463fcb2c93fd907c6c72a133a66a2848a9fca7cc1d78e25b745d750bbd5c8a47354a225891095d9d036ffd8f529eac4078b0b
+DIST thunderbird-78.6.0-hy-AM.xpi 713334 BLAKE2B 
d3fe1317a7bb149a60ffc85786c37b4b53a6b2ec41d4099357ee3e7d7a5d48aa477f4212a2419f94cbba117ce7e773c7f04467edd38ced72867545fa6c3aca9a
 SHA512 
9c7a3b685d60f1ef899a0e61752740f1f15c8ff6d1f156d6b1dd1b90ea69f3c319a0fc5fbfdabad954f20b87c712bcf4a7d1010de7b8fe06618c24a4ae0dec51
+DIST thunderbird-78.6.0-id.xpi 620680 BLAKE2B 
e09060c821c4ec6c2fd047bf2fc01cc161fc984807d2fda7d571483029d5ab9be28b1f2950d279e8ba3aa86443e3eb7774dc15b377a048a75d0dfd8fd6541bdd
 SHA512 
ea81176725de1a79cd6bebda2e41f01a852db5b8d3b2466919e77afe31335255a3fabd9d88bde684c5bd4fac447f106a183e217e72a15f436a92bc7f064d0acb
+DIST thunderbird-78.6.0-is.xpi 581641 BLAKE2B 
0debf74e2280b2a1f0d733a6845f5d71c46f1ad0c3cb771e382247369d1d6529e410b98515019f7bbfc2ad4ddb600cb4f0922bb5f9f043d77a0c285e82c7ba94
 SHA512 
bb9a1144afe77eba866d03bc0eaa507e7e12fe785af4a7d0d61be2257511d48c83569fadaa7b71c71b3d74796296f34424c10ad6c6735d401542be23d97e27b9
+DIST thunderbird-78.6.0-it.xpi 572959 BLAKE2B 
00f7fe1681a7e79acfbec06877732c1603263fc58ff1e8a595c672f8dc6e7368f0b028b7eecc2988dea2249a4b35db806c1b9e08e8effc67347c2f1572dc7342
 SHA512 
de3c634a4763a0efa48dfa921986f12dbdb5d8890628996a8b26f10e35dbff833851381a2b3846328e52d702d33eebaa0aa6859ed3c61dc19ffcededb99b1cc9
+DIST thunderbird-78.6.0-ja.xpi 722456 BLAKE2B 
122ebc20541bd219124b2241e90401067a4c58a1b00e171827a95df43781b875703fd8e4b5388327b8f883da8fc87839d13c02883c284333947036da6e183a46
 SHA512 
70d5b3aa1efe0c6ad54c7b15599f6c63b0deaecd0f46cc20ccb16201d24a081f45f62f73907defc6d5b73d2bd3e3e8f959ddb5744d0f94b880403595802ba856
+DIST thunderbird-78.6.0-ka.xpi 717013 BLAKE2B 
0733225b0cd6852aaa15f24fb99659e622f40894ad81dde4119d1e3b536038d310280f5edef41257355e6485e17e5db56a7532a20c6ba7f498b272f725a9d61b
 SHA512 
2c4ecf76f42b2e0421a08d7825b8fed3a02f340634ea5136024dc4bd4833b93f5079ea31911db0af26472ea2fc1ba8ab0b47e5debaed8345533f1f1ef37fb7b1
+DIST thunderbird-78.6.0-kab.xpi 651911 BLAKE2B 
ae8db244f9b001eb84d463dfc20e032471c956164f366e9eadfa309f79879e7f52f3edc4436db2d4f0e41e76cfa8865f3debec2aa9f7eb4fad156d3c01bf551a
 SHA512 
8ea02eb64f8852929b5a48c5616140ba24dd0d056e5371c6489fe080a8c4604108ec2b38ae6ed937304889aa58608a9815813f3bd1a1149940ce994528a1594a
+DIST thunderbird-78.6.0-kk.xpi 720467 BLAKE2B 
6ebbff20d3d5182cc605f16ba98d99559f84b0e7db007e2a8bd7808eb71697b4d60d0ebeb4d2e738b41f546eb1c026d9d827579f566dfc5dae0e984cf73f729c
 SHA512 
41e5fb9a5c03114b465ea1f7d1d7d41a9bb1a8147ce89ebf043a96ace293321c6a933b166637ff750bf3bfbb7722b39d589910d1e88680e18871f1c473b475ab
+DIST thunderbird-78.6.0-ko.xpi 688206 BLAKE2B 
d3d98362817d725aa1d69a1a7c0b8d84d517108b72a1bd37d8d43a647aac22032b7a3c6f1783913176fee64c501f55ed00ed6e1fabfd33e9d51963777d81fc33
 SHA512 
f7db483586c0d2f562316b63324a996355572177d83cc664db34048e4e613f2302f007cddb356381f93cf3526a33ee5a5b516fb9469775a99b634f5712651979
+DIST thunderbird-78.6.0-lt.xpi 660294 BLAKE2B 
a8fb815d4ce796391acc4f4eab4dc75c943b7b0814aa056d85d8fb687903a5bd11b7ddb839100b3a183ea027ef934f0fdf635956ca83885fee302f8270f5012a
 SHA512 
f31729b94c20292a88deacf4e44a19fb9e3843334f87a062d1e0f482f1b7b2c81cb61c96ffc2a9e71f90823c0571c51ea5c3b6e1df83b7194cee00e93a200560
+DIST thunderbird-78.6.0-ms.xpi 572178 BLAKE2B 
434711867a334f60871e013b10ef6b0cd5df01df9a254f80922db1fd4399ff367112595e6a04645274fd18b679c4536ba9f71d66108a2a1a8550458601b6fc34
 SHA512 
98b1db595979d635fd83013b878a91c7a54459755fa60db97f080d98328cbf967b4a4d6e12f47229d7162cfe06697b6adf87bd6a1b76bb151af0a45f2241fde1
+DIST thunderbird-78.6.0-nb-NO.xpi 637238 BLAKE2B 
c245f36cecd8416110390f9d654fc2b03fbb89a54e2f04cdc56771b72f88fbece43e78833c8d178ef733e1a1748e691ecca7e18858520cde82ebf310ae1570aa
 SHA512 
5790635192abd36c6649af9024498a1830a6dcbfa4f830b54ab9940e908ad0184c696acfca3f07856f507b22793f7c401f914ad179c9d02ddfb278a4ce9e558c
+DIST thunderbird-78.6.0-nl.xpi 644358 BLAKE2B 
1e6ef2483d2f7aea4645dffc6180b5bfada30e7eaeae017d25c62428e599549c9d7c7c6a1440d0456b52bf0fece5a3e3b04f015c685e37b05329e4d88a1c50fe
 SHA512 
40cdb1860ff159c6929523278e2e08c0701333e76b15fd27689e424450363c4ee0f85088f3963fef3cc1dde891a886b31b48316eebe8c4f4c6cbeec4c35d603f
+DIST thunderbird-78.6.0-nn-NO.xpi 640689 BLAKE2B 
9d7b6894ca31a9ce1d85ae57bc368b9d1c8ba7af2a98255e2e57253b6c5867e3657a5ba12b632fdc52985a4242fffe21bce69f4c085859454c3f1e6d6d58b24d
 SHA512 
cc37e910819df0245d9b69364eec7c95bd5753fc4513188e8793c5e6e44ce7732261fe22fed4683e535dc68bfd047c4aec9d106a3e0912911bc9a522bb83335d
+DIST thunderbird-78.6.0-pa-IN.xpi 633216 BLAKE2B 
689f49261d4d87262bc6b25e69dbbe97cb9d1c70124c67e0f48e8476ccb1d43875695f48276db8295296cf79fa8c9be404253a590c348c182d872bdf4e4ba7a8
 SHA512 
21a6c9e18e089c57541b827449b51d2591a7d4b815398faf36f727eedf17c8b97923687a6ac6947e89aebb1ecf4f10effb3aab39798a8ff3d2e99b0f2939984f
+DIST thunderbird-78.6.0-pl.xpi 637127 BLAKE2B 
80440ea54e6135d51b34db18b5f1848fbdc0f0adb04aaccd8ace85c2d7521af9b3c0d33abc81b36c631db77b95663ad5dd4ac19364e8300183c6f6a82adea037
 SHA512 
e0a35f5a5fc44e3ad0150eb93e6e542c4676b02e16b797c04ddeed551bba191750f58dd743431350af3fe44d318483a6b823767a3a9ebc5a75483d0706a407dd
+DIST thunderbird-78.6.0-pt-BR.xpi 649417 BLAKE2B 
c4f22032da235c6f3828205dea272020d198ea6211d595900c9bdeacb890ac4e3e3b162f5cdc2cd163ce3be698bb8df56c7bfcba1d45709567c5e2eeae2e3494
 SHA512 
5223246ab5c33ecf43d6b81f1c26eebdb25d667726bb7ba5eadf7c4d8c774207543f098c049893b42965b8495f2162f00cf2abccf85ea6e7f141a9a0169eedb2
+DIST thunderbird-78.6.0-pt-PT.xpi 655498 BLAKE2B 
256ce12702391fd3c9fb8de6e4f0257032d41679b2bdf9e43e7a96adf281722a714bf60004b4dfec4b210f7c7b64913114686f76d3d10af26e83573e45f09ccf
 SHA512 
5a81abf08b6115480573e729bfb5c00bb1c8449b35b6b8ab8523e9c84c9d00e53973e4072a99a736c9d6a44afcfc4d5587df9e1b5036966d18cb5393d3523eb3
+DIST thunderbird-78.6.0-rm.xpi 646529 BLAKE2B 
eac9273aab4ee9fa46880e0f92d0041c1fc003523fa191918f34bc7219d6e4a5075bb815047881a07b8522a212d76a75c838ba0ced3c8af3cef5466d5aee8a40
 SHA512 
5b56d907789c926e92344ddbeae276e6879ac7d9171d52f235ef1a319422ba6f6b2c0d905d1e43eb28a65153ca8869fb69a3592a16a308a6fc0e3a7df981f79c
+DIST thunderbird-78.6.0-ro.xpi 662631 BLAKE2B 
026ef09f7d7d489e30a28fd0f65a48a3cf0188812b3e34aa5768ade6a8638fd7e49c006ad8c7140c227e9cfd03a451c6206c0ffd55619834b6a735e5cc50f72d
 SHA512 
4912ba964500b233b4caf08c004d69623d2fb864bdaf4ae46f0fc65c2552fb75d7da5c20815e471971457ef5a98661e3424218f78f88fa63077f542ae8bff312
+DIST thunderbird-78.6.0-ru.xpi 756183 BLAKE2B 
8051edc385f5c9bc6263fdbafeb777a1c168a4f54f577867d965f5aa91e2b454b8734a64e4a2aeff91447676461d15c815c9a73b10213d60843c8da8e086a413
 SHA512 
d3f60e3b8efc6dc4fc1fc390dc3afa29f74e71df0efc553e2011f2bef341cce0522c861ac3f131ed4adf9f172d8390597de0aa094670e0a1e34e36afddcc0ad9
+DIST thunderbird-78.6.0-si.xpi 651097 BLAKE2B 
70b48d07ddabec8fbf9257f8d3eca281ad35b262abb189445990b628efbb59af527135e873e96c5072c71b7b18325ed656b7873f98121660922b3e19c24ac2d7
 SHA512 
4c5769c720616276f900f21afbd580ad2bc97f86522eff3b75a09f69f2146f9510742c2d83f4080e7a23b97caafd0d30a40e6a6bebd819d1d67a1412831f6e4a
+DIST thunderbird-78.6.0-sk.xpi 643224 BLAKE2B 
efebcbcc0fdb45cb68a392837a893b8c6efac3ffa578024698834b3c4b6a1991ded082368d780832719c6d64cc049a4d989614d6d0cfe8b3f9450d1f9d763616
 SHA512 
2b3c748650b642e7790b854f897cae928197914feb95cab8003c0b33a3dbea050bc60fbdffc32327c458e052a8db8f7e670c4caed8fe5895b2033851215d9484
+DIST thunderbird-78.6.0-sl.xpi 632386 BLAKE2B 
703614849ff79d90dcbdada61cd90f493e5bb1747465c4e037a5e5c668e5e0129d03a19fe9e5161c83ec64e9f5f23a134a1b8d7cfb7d3bfd40bb6ab4dec140b9
 SHA512 
73a5584dd6b27905c64ad3f4a20f089ced5f7987865b316145d8d7160e863381eafeed10918ca18bb58dbce4d9d302c72b511996aea9ec789d90e1e0e5137683
+DIST thunderbird-78.6.0-sq.xpi 657824 BLAKE2B 
37c210e46f0865db3feb8fc05e0baf0fbbe5d0c7e2e40248b915cbca82e6f96f3ff1cd968a0979571fcb036fa06e155ce7e118c6ceea962bce28dc9b18201dc3
 SHA512 
d90f97a383602752adecdbff4c76e50cb5c5ce31589d2d1165bea6c5fe30d80382fc9294f7c7d1df6c33327f99ec87e7ab797645e5ea4ebd89acfeb2bc0a8e7a
+DIST thunderbird-78.6.0-sr.xpi 683113 BLAKE2B 
f3dbfd42ccb3d7476af6861e1e8650507240b179ee4d6b356797e95436fe43875c8e239facbcf75884a3c1cccdc2224d1da46cf142b571f6e6d24a49d5bd2c7c
 SHA512 
7a3201573cba6949ccba92a5d6801e61775e8dc2e1dd1f5e5f64806559081c84364f974e93de032845fba12e469add4ed731975bc0490dbed03d928b65ae8783
+DIST thunderbird-78.6.0-sv-SE.xpi 648865 BLAKE2B 
2682a73db0092415272cf1b99409f282b7b39538f018d697483b6b4a13b81182916f76f1fcfb608dd91e50a239e11e0d973333b5972f3d926322372118940043
 SHA512 
9509af73ae1efd8f7aeea319c736d962d81c0ab4708b4be5c5637d73c7fa804cd3a30b507f3d18c365f8ca1cee78ebe9a1797cbe4db7c91bd220fd82ef4a5be6
+DIST thunderbird-78.6.0-th.xpi 712032 BLAKE2B 
0945fefe03f853e36e2d48b0991b0fc48e2c5a63c18405844ae0c225d302925a81ac3eb30221aeb16e68902aaa099669f961002f917663271c0c8de39c5402e2
 SHA512 
8e26902e33bb940ceb7e23ddbecd3991caf08ce3e9aa9049a02fdeff377d741ca69aff8e412c0f87329f67d92e7fb77f6a652fd05e3ae5422972776394f4bab8
+DIST thunderbird-78.6.0-tr.xpi 649077 BLAKE2B 
0cb4d4ca9cc747f9d430873f4801d0c019701f07fcdf6846263437fc9c072251f0d957eed792fd51df02b80493742d22b24bfa3da2bed358fc7023fd23d4a99b
 SHA512 
a98868cf4efd6fcbd0d52278b7d5a35ea0db4b0d8fcb4b0bc449fa73771f1f80d5b542521450f755c09cd509b0a806716b527ff5b36ff6c87ca1aa8dde654951
+DIST thunderbird-78.6.0-uz.xpi 586592 BLAKE2B 
00ade31247f6aebdbb7c3d1dbe4913646ea752041cdd83e6c67779c764ce2f2530e9dc38125d92d9930cf5b5f4615a67b8ec1261e887412f00fdb54f502e553f
 SHA512 
a5d20d2910e70535da06ce1a52d28190934834b609af2c689f6695e2c4b4e0fb20f438ebd4d8ddb4ef7f327acc845144ffbad4965840e72d069662a345d980fb
+DIST thunderbird-78.6.0-vi.xpi 674599 BLAKE2B 
dcc41dcfcb211f9362b92dde02fffecc83c53e279e97e6620247e617a9da03d641301ddfcb244f6977e932cd3a5e97528fb6d66c098e41394b9b8e2600cb9f52
 SHA512 
a73b25e4fcb1d110ae79fc14e000bc4f2fcf0870d521f4d2c98bb8774c889ba308aedc5a200f4b344aa12bca954d829abc4bfb4fabf1d14d15af2fb9e0a77eec
+DIST thunderbird-78.6.0-zh-CN.xpi 687180 BLAKE2B 
4b662680445032e207b21136af182358b4d353d487baa42022f42b4ce0a9d413fcf7ddfd7b5a0ec6418c38d6979eb8adfbe5c435632873642f9f25a8614b9c90
 SHA512 
4655c5b71b75a483779b1ee974961f2f11f70d4f3ff60e0d7422681a6fc14ef7b44c7e1ac409c319081b88bdf4a76fa6dc3ca51fe19a0ec87b0df8716674439d
+DIST thunderbird-78.6.0-zh-TW.xpi 687618 BLAKE2B 
56a70374a090c6e8118d513dc3f55e7b8b4dc51853cf8a243f369de3f5449a311d9da6b789d4ea326b36db4f386a0926964a3d3d8f64656a2a037dc3e8b45221
 SHA512 
26ae0da18bd99aa0bbb32fcc5a8e5cb2e22cf60bdef93be2805174c85a1372f59b3099fed24ee5d88c754ada0293fcac8d3ad2d029a622240d583ddfaca87da2
+DIST thunderbird-78.6.0.source.tar.xz 353496712 BLAKE2B 
71cba995bc99181c7bee5ad99c3441301f12b79d4db3491d79df3c89f06927ab62261a12cbaae0031bce880f817eee9d35b3e2a66acfd3c070b902f6db1c25e6
 SHA512 
36194e8bf58117d8accbd6d8dc52a6241d8c572c023db1b271db3b73098652a608da28134865099792fbeb0a2f0d3705d98093447b64fa19eab7efb3e3bdd421

diff --git a/mail-client/thunderbird/files/distribution.ini 
b/mail-client/thunderbird/files/distribution.ini
new file mode 100644
index 00000000000..ab0d14912f4
--- /dev/null
+++ b/mail-client/thunderbird/files/distribution.ini
@@ -0,0 +1,9 @@
+[Global]
+id=gentoo
+version=1.0
+about=Mozilla Thunderbird for Gentoo
+about.de=Mozilla Thunderbird für Gentoo
+
+[Preferences]
+app.distributor="gentoo"
+app.distributor.channel="gentoo"

diff --git a/mail-client/thunderbird/files/gentoo-hwaccel-prefs.js 
b/mail-client/thunderbird/files/gentoo-hwaccel-prefs.js
new file mode 100644
index 00000000000..a00144a7ad1
--- /dev/null
+++ b/mail-client/thunderbird/files/gentoo-hwaccel-prefs.js
@@ -0,0 +1,3 @@
+/* Force hardware accelerated rendering due to USE=hwaccel */
+pref("layers.acceleration.force-enabled",  true);
+pref("webgl.force-enabled",                true);

diff --git a/mail-client/thunderbird/metadata.xml 
b/mail-client/thunderbird/metadata.xml
index ae7a481e18f..bc4d1af369a 100644
--- a/mail-client/thunderbird/metadata.xml
+++ b/mail-client/thunderbird/metadata.xml
@@ -8,6 +8,7 @@
 <use>
        <flag name="clang">Use Clang compiler instead of GCC</flag>
        <flag name="eme-free">Disable EME (DRM plugin) cabability at build 
time</flag>
+       <flag name="hwaccel">Force-enable hardware-accelerated rendering 
(Mozilla bug 594876)</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

diff --git a/mail-client/thunderbird/thunderbird-78.6.0.ebuild 
b/mail-client/thunderbird/thunderbird-78.6.0.ebuild
new file mode 100644
index 00000000000..ed887f80307
--- /dev/null
+++ b/mail-client/thunderbird/thunderbird-78.6.0.ebuild
@@ -0,0 +1,1046 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-78esr-patches-07.tar.xz"
+
+LLVM_MAX_SLOT=11
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \
+       multiprocessing pax-utils python-any-r1 toolchain-funcs \
+       virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       
https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.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
+       hardened hwaccel 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
+       app-arch/zip
+       >=dev-util/cbindgen-0.14.3
+       >=net-libs/nodejs-10.21.0
+       virtual/pkgconfig
+       >=virtual/rust-1.41.0
+       || (
+               (
+                       sys-devel/clang:11
+                       sys-devel/llvm:11
+                       clang? (
+                               =sys-devel/lld-11*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-11*[profile] )
+                       )
+               )
+               (
+                       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 )
+       !<x11-plugins/enigmail-2.2"
+
+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%_*}"
+
+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 "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       af ar ast be bg br ca cak cs cy da de dsb el en-CA en-GB en-US
+       es-AR es-ES 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 -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
+               SRC_URI+=" )"
+               IUSE+=" l10n_${xflag/[_@]/-}"
+       done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -ne 1 ]] ; then
+               die "${FUNCNAME} requires exact one argument"
+       fi
+
+       einfo "Clearing cargo checksums for ${1} ..."
+
+       sed -i \
+               -e 's/\("files":{\)[^}]*/\1/' \
+               "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+               || die
+}
+
+moz_install_xpi() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local DESTDIR=${1}
+       shift
+
+       insinto "${DESTDIR}"
+
+       local emid xpi_file xpi_tmp_dir
+       for xpi_file in "${@}" ; do
+               emid=
+               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+               # Unpack XPI
+               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+               # Determine extension ID
+               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
+               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
+               else
+                       die "failed to determine extension id"
+               fi
+
+               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+               newins "${xpi_file}" "${emid}.xpi"
+       done
+}
+
+mozconfig_add_options_ac() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_add_options_mk() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_use_enable() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_enable "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+mozconfig_use_with() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_with "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if ! 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
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       use lto && 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() {
+       # Show flags set at the beginning
+       einfo "Current CFLAGS:    ${CFLAGS}"
+       einfo "Current LDFLAGS:   ${LDFLAGS}"
+       einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+       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
+               AR=llvm-ar
+               CC=${CHOST}-clang
+               CXX=${CHOST}-clang++
+               NM=llvm-nm
+               RANLIB=llvm-ranlib
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               AR=gcc-ar
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+               NM=gcc-nm
+               RANLIB=gcc-ranlib
+       fi
+
+       if [[ -n "${have_switched_compiler}" ]] ; then
+               # Because we switched active compiler we have to ensure
+               # that no unsupported flags are set
+               strip-unsupported-flags
+       fi
+
+       # Ensure we use correct toolchain
+       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
+
+       # Set Gentoo defaults
+       export MOZILLA_OFFICIAL=1
+
+       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_add_options_ac '+eme-free' --disable-eme
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+       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
+
+       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
+
+                       if use clang ; then
+                               # Used in build/pgo/profileserver.py
+                               export LLVM_PROFDATA="llvm-profdata"
+                       fi
+               fi
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # 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
+               mozconfig_add_options_ac '+debug' --disable-optimize
+       else
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # 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)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif tc-ld-is-gold || use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       if ! use elibc_glibc ; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export 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}"
+
+       # Show flags we will use
+       einfo "Build CFLAGS:    ${CFLAGS}"
+       einfo "Build LDFLAGS:   ${LDFLAGS}"
+       einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+       # 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/${PN} \
+               "${BUILD_DIR}"/dist/bin/plugin-container
+
+       DESTDIR="${D}" ./mach install || die
+
+       # Upstream cannot ship symlink but we can (bmo#658850)
+       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+       # Don't install llvm-symbolizer from sys-devel/llvm package
+       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+       fi
+
+       # Install policy (currently only used to disable application updates)
+       insinto "${MOZILLA_FIVE_HOME}/distribution"
+       newins "${FILESDIR}"/distribution.ini distribution.ini
+       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+       # Install system-wide preferences
+       local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref"
+       insinto "${PREFS_DIR}"
+       newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.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
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+               >>"${GENTOO_PREFS}" \
+               || die "failed to add prefs to force hardware-accelerated 
rendering to all-gentoo.js"
+       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 ${MOZ_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
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       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:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+                       -e "s:@APULSELIB_DIR@:${apulselib}:" \
+                       -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 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