summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-07-17 19:04:28 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-07-17 19:04:28 +0100
commit514d1bbe260df2521fe60f1a3ec87cfcfde1a829 (patch)
tree555c194dbeb0fb2ac4ad3cde7c0f6a80fd330ce2 /www-client/firefox
parent4df3bf9762850b34cd1ead5c80374d1a0fc3362e (diff)
gentoo resync : 17.07.2021
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest197
-rw-r--r--www-client/firefox/firefox-78.12.0.ebuild1187
-rw-r--r--www-client/firefox/firefox-90.0.ebuild1182
3 files changed, 2566 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index b2b0f1e97acc..5de3ab18d0dd 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -103,7 +103,104 @@ DIST firefox-78.11.0esr-xh.xpi 427833 BLAKE2B 484282b3729b6218e07bb153120c50c8ae
DIST firefox-78.11.0esr-zh-CN.xpi 564767 BLAKE2B 6a77c82c031ae8e2ba8d6ef4f294049f219bf573e678fc9fce4b23a19a89ab9d15487e760e809eda5798f5ed213d3e21c20bf34782e201b1fe04e51d0af078c0 SHA512 f2680016d879ce3ebe93f308cccdb59d40a850641e6e433a3b7620566591877746957fd541b49e466d69ef708f4422bab26316c4632459b4c8c1546ad5581a89
DIST firefox-78.11.0esr-zh-TW.xpi 564742 BLAKE2B 3357a373a38d89cf4807ffa7d306091f65397f97ef3346603493b93e5daff42f0c55826d329df8d1bde7ff104862eac756aa811a4754d401448638fd251cf0f4 SHA512 08290cc90f946732c63aeb247ef4babc90128f04dcf3c32b623d0d822941bef9df1a2239c5bc1d067f04e4ba099cefe5255e4e43750f1053e133773258a68d43
DIST firefox-78.11.0esr.source.tar.xz 333002576 BLAKE2B a8268886f86afb41b86d227f8a8f642674ea9c0a85365acb517c6997099dbddad9779efa772cce645da6443a78d6e94c89a750152386f8dff7bbbf31bf5df129 SHA512 d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4
+DIST firefox-78.12.0esr-ach.xpi 460283 BLAKE2B a00bee0c7f0ec9c27454f618c0402721db074b6319c1b0964a5ccde3710175a20f9a6727eef881d8d3db7205b2f7bf5bcbf5c050c39cbd20f95cf23c6ee480f8 SHA512 6542b5683dd352ecafecb42a9bbdc438cdd927deb9e1c8f55f52a1c12690d1ac1281c379ed7dcedd6a62b4ff37b816b5a7870b0aa9a725444640a87b1e6749dc
+DIST firefox-78.12.0esr-af.xpi 428351 BLAKE2B b4f671687a03ed5e12e5c805b501ad3a975090168a60d4549326cfae17d0e31cbb7458e8118a8f85d566a75de97cd2b7a0f92f77f21e9b4a5cfd57163a54b163 SHA512 fa91d12158cf7d41000c3cb4beb0290c4fe760e5dcd27cd23d77b228f509558830ff4d2c29248bfc08f69c0a8592302cc6aa59fccb5b16f292e290bf9801f7f4
+DIST firefox-78.12.0esr-an.xpi 508377 BLAKE2B 63f4678044c1ff6088279a5fe25bc7a0eb0fb8eb8c2ca326c14ffad242be91892e8277bda016e852d61834bd095408d9c822e329918748248e4f8f0864c64718 SHA512 b1cbcf41150858ec827d485ca819490907d5604ceac758d478a5f39a20b1f204dfc674fa5563c25e8fd93d85f83faab3673e4d08becd6c628d1d8c118c22bbee
+DIST firefox-78.12.0esr-ar.xpi 560954 BLAKE2B 625905b86f9a7b9b8063873f7ba91d59196abc95a27b15764fbdd3bfea24d7aa69c7a9c4934fa9b0d8f210ff90b9782d981221bc8d892b5fa83b1c355166d554 SHA512 c0b09fe41708f1cab137a270ac848627ec98fc43e47c6a405d32db7e01a13338516cefb2f3cdf1a8590af00e75c3d4bec782646d6d143d2b103c7e5eb861dfdb
+DIST firefox-78.12.0esr-ast.xpi 456387 BLAKE2B d8a5fd537ccbbfcd654ac58ba963123380363bc5acc3261fcc5f4051d93e254a9f9cf2929de1dbb9c2092e2494c9744c973e1b8a2a12650655f8d25fba7fc749 SHA512 ec5e717088863808fe34f088336f13add49035ea8d7f323fc3c094316cf8044772d5ced904904cd170f471186028c0ecca21ea52cacffcff185548172f0abd69
+DIST firefox-78.12.0esr-az.xpi 497433 BLAKE2B bec0f0209a6f5d9043f4789df51c34519c5f33c08a2f6620041f591599929514658bfc7a5ea2cd457ded405f58e000861b6c9186972ee4390555d7fe0c5fb489 SHA512 49e2fc648e30e419407714677b59194196404c50c92e4d1affa01d66cb7719302979f3d4b74c7fca83fdbfc7ec5c406cf876b1fd342384870c39e08f72346d48
+DIST firefox-78.12.0esr-be.xpi 608650 BLAKE2B 0ab6829a8f7d49678d905f99e53375946a733e12ed46cd693fdae3da19aade621b572028f938d33c91da3e69280b53c6ab6a19690648a414127bf55a3279ea7f SHA512 de62c7f2e5c8ef8323eac321ff3c735cc165fcc53ecb044dbeec35a2196c52fe9cc083c95ce755b97c320f123500565e471fd8b0edcadee2b998d005402e6b84
+DIST firefox-78.12.0esr-bg.xpi 553973 BLAKE2B af6c0b0aaa207b9714269c2844eaaf4b7bbdff58350022bc816001711517f50e30b3eee62ed8dee53b906eb990373cd462d45b62cd112d44ac04e047638b5afc SHA512 3f50b3a300270a12b220ed903ba79738e807d71d731bb8755a543984b84272a7f67e1e4a05fc5ed7c87f391de69e9ede628f50a4f8faede4acf224adf0de4f7e
+DIST firefox-78.12.0esr-bn.xpi 572610 BLAKE2B d54b5abf4704b472537badef7559170f3663cabf6c7a48563fbac1b1f12f16bc048cc28e382f66aaa064fe5ab25b57e9ed58e94e9b285184d5a8ee1c2adc526c SHA512 3b116f3385d67f6901a801a758a02c834a9019696c498d085b7c0dec28d723b66f6485063db1ce7024e8b53793a3f146cac7337c130afd060c810d1e39ccd652
+DIST firefox-78.12.0esr-br.xpi 507129 BLAKE2B 19172ffbdc74639390d9beee945183e4f3ae068200af8caf697839774b942d251f36970f95b1ee17ea5726a4050a3ae77f22182810cb10668a17574aec522b4b SHA512 fc0c7f25f3b8a08052d5880e6c18df752b650c349411e464938d64850c7f8c5a471f5a7048fc13a6c7e8a0ef1b3bf7a7bec9da3b70bc4ca101f24288a09979d4
+DIST firefox-78.12.0esr-bs.xpi 463802 BLAKE2B b151773b4bb7e1c51566205e645c8a65a996bfcbd3a60f0648977f8a0784a6dae69ac799efbef5ba9daac906e48cc218e55d7c9a89181d8bd598930be5aac4a6 SHA512 85a7cf7f28c984f1330ef0e2b964d446bacb4f3369d1800031cccb61c43e10e990726af3d8aa8478af6eb416773c9e66f50793c87528435bbbd7b0c50e4d3b91
+DIST firefox-78.12.0esr-ca-valencia.xpi 517178 BLAKE2B d1574689812e3c1b01323d9eec83475d89e333e7ab8bdbb2b4cc11eed3cf7c56088adc3d1da7731c5ae65f3b9c0a76ab0743f50f3529dcd38d62be55c2862a9c SHA512 20b4b91a5e69975479a92f563042128d66d319843a71f7555f7fc53a1b9296d8eb8c60a3c647176a70408b616b5c5e44b901ed67bba46670dbf6cc31edc84e53
+DIST firefox-78.12.0esr-ca.xpi 514183 BLAKE2B 297626859bcd85f1e77f0eb37fb9c98175f8a7e6b45bf072405746b9428c2b789318db2f65fdb5dd906f8e21f7678d39efa62f031c4e884a689de5c7c2d7f3ea SHA512 24bcab6bb8d1e16d6098ace8502703e33e2c88c9d31a695c0783b103dc0212dbc48178a488a35b54fdc0a70675f0e37244cc4ae7bfa39d13614ff89fb2b2f7d9
+DIST firefox-78.12.0esr-cak.xpi 551556 BLAKE2B dfb1d7f88d2ceefd923f4af7239079ce2b1d0336cef47f26e35d5aead93351b05b26317875adf870acc817b71e02cfbf39e322377b3f89f93707182da13ed8d0 SHA512 1a1be2a52f85d06ddded2077ae330767c4629c363f7c11a1e4ac104d36ee4ae8640ae10d3dca1c94018c3cee6d94bbb241de6aacc49440479d5725074742fc75
+DIST firefox-78.12.0esr-cs.xpi 540329 BLAKE2B feaa6692d66d57084cedeacec0f3a49a5f175d59699af6980a12880ed3cb615fa5552f53a660adf9125a90703be743be15d6cdc651a68456ea22c4ac81a388ab SHA512 fa25f5f1cbe7dcff4e78fa02fc6996d1503c35b5b0a581172c6c111c86e1c65ef00dbac01372a33d929f03b15371545bb99801138afb26e39181248e663087f5
+DIST firefox-78.12.0esr-cy.xpi 530698 BLAKE2B 1e6cf6f9ac920a03315fd6901d79942cfc87387b00930b3a1feea7680d62a0683737463ba034530f65e9f85d1d99a3e2afc927cb6e221fcf1b1b9afe61d98919 SHA512 9456922b7291077fe26db1e4515742be7f860d294610022d384fbed1d5adf2ac973870e48e9695781fa82eeb92b431fd03dd15ff31a2f31082e340653c7a93f7
+DIST firefox-78.12.0esr-da.xpi 520269 BLAKE2B 3dc9ce7d730472394c3b237d5f9eef4b92dea1490cba2e73286aa48de477986ca6afe8a8a9f697ade06569f7ccb507a35ced025276b69d86b8ee7f0043ec1362 SHA512 6535bbd10493833c9f490806ebfcc7a02a122bd17c82468637e1e6c67f1f09aa207d5ee7a00f79796a70defe5ee53486db4e6f5ed9a712f06072ffe103948f9c
+DIST firefox-78.12.0esr-de.xpi 542853 BLAKE2B c52079da5fd96cc7a9f6636200764544c8d0c082cf9bb7dc3878740391b1b4eeca39721ae7a313e8614b71a80e856f413e79546b2cf62555f03800812759ce44 SHA512 1c66836985c31b6d46d4898ff6a73f2920d09d487f7deb4e5e0556cd84c7878da4c4ccd3131bee5ad8740bfe3b248c62e220d9a6c157dd5800111b288c339e9f
+DIST firefox-78.12.0esr-dsb.xpi 554280 BLAKE2B 3d14eaf320d18d7daabc8a0af83a34f52a616ed66f454ff2f8441cc776af604ddc90830f5bb6e1f777070607c73f25b522ca0c11faa34907ad52120e41ac56fa SHA512 4a05f52721ce363f4d977f92475029fa5a86445742acb1d3e4f023ba7875e9cc4b4ed290f75f3263c276066344e8d5af49fff4feba38485980b664c4f2bc93db
+DIST firefox-78.12.0esr-el.xpi 626568 BLAKE2B f89bfc615907dcfe53d870d6bab773f086c84e03d7632e826983da5271504528d3b453295d3edd1e5a9ce887af338f5fdc226c4fa7155f3fa9fc08c0ae09d378 SHA512 5997b04af48084cf9087110a42740e4e71d48ac4e0d52984e2e4dd62045001f14fb41105a693fb81a423bd985c464402a27d0217d0aef9efbb2e5fe975d74b33
+DIST firefox-78.12.0esr-en-CA.xpi 497732 BLAKE2B d7a74ba343baa1910eba123f801b82e18d9fdd1054e0df87ae234dc97ba5daa6a81d5b7dcd6fa403e0c52e884459c807b335094b4a8dbb09793a37d3731a4809 SHA512 78c05aa972db64a70980ea967f87edfd1edd08935313f70a43c0918c693e372dbff6f3ff1d233ca96268747e3f950e4666f23971d5d380f05a144d1be75d30b0
+DIST firefox-78.12.0esr-en-GB.xpi 497581 BLAKE2B 166282a2040172f9e8d209b9a8b098d4f56d1a4888ebc9b7ecd937991305827bf5f8bdafc75bf85effe97d4f809ca7a233b6f5ffd345e893fa3a5bc15fbf6445 SHA512 af372200fad2cfa9f653ac349289f0c20937f5ec798832e0d202f2f330fcba5fd04168b5960a5b8a534a1904bd5206f6745102e73ed6775dcd5120a120ba421c
+DIST firefox-78.12.0esr-eo.xpi 525738 BLAKE2B fa6cfd49fcda4fdfb54c93295978512a016f115cc0da9e54cc82f0da9c4fac90b2e2ea52d3ea41ee6b0654c90656b17d33ce316dee349da0dbe719eefdd6c6cf SHA512 8b11970ac93265c61c6518fa06eea0749f15f3cb94058e4f4c0db166fdde7261bb5bd9eca1e5f54db271570bf63d7f84d1ff5e141b20ec23ba09aeb9f30ab1e1
+DIST firefox-78.12.0esr-es-AR.xpi 535801 BLAKE2B 60688df3b040e8b17738c5c8f60e29bd9bca88f8d272e09ea9db60af859981ada067ab5ab7418153805a730e9fab1afcc0df2d55601c4d1dbc334d8ad56e42a4 SHA512 6567391847b866c5c4d53bc628259e69ca1038c468f0030536525d1bc5df19fab8654015f6404684156521a664422d41fdd341d8d4324e0ad8ecad1a96e759ca
+DIST firefox-78.12.0esr-es-CL.xpi 535347 BLAKE2B d31a9937488d728c9142f774a230f82fe955f4e735b9c4c71ba063e4c0fe80fc13a1227876dd14fec6bfe069cbe07e10e8ed93577bd214f5cd27581eeddd4b02 SHA512 49c96e3e2e79cd8b57d47e62a9f023ce52cf3b2ca82cd3d7f03d26f3c7433f080e915d4b0d0460af6d7f287ebdb8307e20a395ffcbcf926add14b31814f488c9
+DIST firefox-78.12.0esr-es-ES.xpi 522691 BLAKE2B ffdc2051ae8566d8320aa5cb100fab84df2e5ee1686353f21bffaeb15b7058e8920c46ac1a86f014ae2535435542e410b9464501d2306bc8215678eed917439d SHA512 754223da264548ed628611da8deec195ae5ac978c9f6244d2f132a7449c6693a09e0c808023dc3e18413e6372ea9957a8ed3d584fa06795b8355aac2823288c4
+DIST firefox-78.12.0esr-es-MX.xpi 532295 BLAKE2B dcc9269f6c4a5f55c871f11f81d29146d83c4e97b33ab509419b598d6716ce097760bbd677f7a5f0367323f31273837552db505c88920994a5e42f85616d84b6 SHA512 b3fd9d7fa72e730a215f3ef8b9cf45be999b5c393dd9a7f9a460bf83c52f10ca1057c52763f336dd3c5db3ad70bf9d0a6583a227b4403a4eb0137d33d0dfa24c
+DIST firefox-78.12.0esr-et.xpi 485252 BLAKE2B 181287684643149c2256a4c33c9486b947c8fcd973aa8bf76870082ab61ae735e997293abc852ff98611ecb1ccb9ee2f6f091604d3e7a67bfa570d741143ab93 SHA512 7661ba4923fbfda802225135ff2df04f5e6ea731bc8e3268dfef95749023b810997932efab11453f8b470d27372887e41d0231fd9a82936d376ad5a66705b4bf
+DIST firefox-78.12.0esr-eu.xpi 505876 BLAKE2B df642126d782f09639ea28f7cab53173f2039b0455f35589ecf9a1f07ec12331e555661c550bcb79391cb8203702312a36ec7385341ddfb487efa2cb218bd00f SHA512 905a1f112d2d5dc5e1ac465a4234ff64d08f44394c609c7dc11a895aa203b69bf9dfbf381b204b025d09a6a0db2eb95ceecb61d3b8f01014a9b003863480dacb
+DIST firefox-78.12.0esr-fa.xpi 538927 BLAKE2B bdab40593d23214daac28c7f6a2e4fda159b9af828158132354077596402dee1a09806ec8a699390f75dae82e548639b81a43ab4fbcbb331d9c2dce5309f4331 SHA512 34d8d6ed8aca43b5b70f595fc866390e389cdc79d7b48b8e66eb179c76f6cc09919b66fdee485b7646f386b79a1aaa6998f7b7c672ed7c286e646058484cc79b
+DIST firefox-78.12.0esr-ff.xpi 481609 BLAKE2B d076044f29ac3dcad8fe8dbcbcf2a8e8c6c52611d3cab47bc1a9341a42030c3cd48dfa595b8277933a4d038d81979a4cfc002d9a84c6203b2257126bed5e624f SHA512 620194c07b9a6eaaadc99617111c602d05ee573c8c3b95ed494e8322508b39d1e548d77f9014dd8ba3a2c2340239e1fab86a2788e1ade99b4dc6e16a205f7ee5
+DIST firefox-78.12.0esr-fi.xpi 517919 BLAKE2B 598654771e21d1c9964288f3c4fd53d2de6eb61cbe56fb6c0794904e8b12fcc0736191767658e9d5395ee99cdee0de56c2a7b07de16295573a4b7062d3703924 SHA512 a01cd7389cbb0a6adf05683a80b43b32119970181b0c32bec0383374e2fb4a5f767c3eeffff669a563fd6ae908ba431f67449d79433adc0c89133e59e6e67a22
+DIST firefox-78.12.0esr-fr.xpi 545884 BLAKE2B 1741066c45d77d6dfd4c33efa22cd04c343050a02e3f977cec5914729af87fd8cef2a2aea73afff9c9ab6b953d528bea7360b987ade059514ca03e72b937941b SHA512 4657093bf73e284491811cb3b98fde6b3b6fb47793a962700945f86091e677dcbb4431efa6a84b6f58320ab57ee88c0d8735a74c740ae6f21b76105740b26c1f
+DIST firefox-78.12.0esr-fy-NL.xpi 532485 BLAKE2B 8f3a639b2259781068c75163ed1a09ec9d11cfc0e07151caeaab881f75c551b1abebcc36a9c2373c5488ceac53762b911f348ff3781de598ee93e914f3c0bd5f SHA512 e816b480705a9e2ac5b46ec5e781ee15a5096f0ab78376599bbd447fc87007623b4324d675509e0115d20257d1efb03d66ee60d72530aa5c28db8d9a9afae4e9
+DIST firefox-78.12.0esr-ga-IE.xpi 466890 BLAKE2B 1642e6587825a9220424de58c5f7933402713cc8b43173247ad8bf47bcc1fe56feb5070616e29d6fcc4af66a2ff4023850d2873958082c6257656624daf73769 SHA512 fc1a6f74877ad6beb275b836f6ba1ed2b66e26170c15ecbd50a40d7cfa35b8e77b7eaea851e308213c73f57538a1fb32deadb44dad5a9d9bdec9de261c9cab08
+DIST firefox-78.12.0esr-gd.xpi 491887 BLAKE2B 86bb50326f52ec809777b1aa6dcfe3c5df6436eb0855ffc0ee7946a2266d4e70b8c596e4743be66c0d96d2e78eba74cfaacc044a4dff75dfa143899b964f3bb1 SHA512 41fe61ff05a39220faffb5c3cf131a92e00eda26f41bff0c61f8802abea179e0fb757ff74a2855921f2523cd1dd2bea4cb03589fc70210f7c6f25bdab321b726
+DIST firefox-78.12.0esr-gl.xpi 528408 BLAKE2B 7700bde64cc4ef05bbe29de4c7f066ca064c4f557787119e8bec5097ec947846d57f0a4494bc4bacb05d9044d8433db899840c7181f60b0d258290177530433d SHA512 9120e09f38178c72aa190ec1a78e1f750c748b1b5d62cea5abea3d7767cf7cd14000ae83dffba272311daecd3b811e00728f125d301de5a3fa7a78c1520e87ff
+DIST firefox-78.12.0esr-gn.xpi 546465 BLAKE2B d55ec543e9a8b4192e3d2b28f75305f9ee04d5dbab51a23edd216e20c70fd752e94567cd573eacd1727654a1e48ddd6c4640f43abd784f31aa4406769a25b7f1 SHA512 43c83e5bb7bb3d95856c05fd3a962eaf4cd01bde39576f43da4bc35e49b571c81f7baf4c84a8836d2bbfe5b50ce1c21bdf97c702511d74562e138bfe9c0e3b9a
+DIST firefox-78.12.0esr-gu-IN.xpi 541422 BLAKE2B ba3a82771dede3eb4a6971dd6c28a248139428dca3977df7a4279bd5a2028a2d01f3d078b748dc0c86923fa8677b2ebdbcfc1b99598b93d89d9688957404b3ca SHA512 62cd42cee8dc8531e1ddedfcb27e17d06f46ada4ae7be3c402badaa57fd84a3fcc70f6dd6afb1a2eb8b6ceefb979899aae1a67e08d73db073fd8f0d29a9a19c8
+DIST firefox-78.12.0esr-he.xpi 545595 BLAKE2B 8b2c65e9ecb12a9bca63694c4fa3ef6cd1cd04093e9f4da42bbf0b2bedbf90feca27a99d66652fd735f84c3f5f85e57b55734fddeaf748a8bac8212975343ed5 SHA512 209f3f6b1b2dd176fa340c65d3d880cbf7f02a850969ee333f0d98b7bf69bb2ea5a1c0dd434c0bbe06fa1ff74170f4bbb57112af072c5a045486ad9a3331e436
+DIST firefox-78.12.0esr-hi-IN.xpi 567860 BLAKE2B c6a65ab10c21bed41dc7eededef8092ddbdb0b09c6c4de87d4f0558c69c6d063595aa9c97ef3b7fc7f6fc88393609421cf5048b3e1d8130fd5c4e8361f70040c SHA512 cc2e2b370c0eabf2892993c1b97f0481f515b981c7f1fb4cbed8068fd13ffcc7ec0a3707dad53f691b5cf77816e24a8a04eadd88995daf572e34ed16ff95cb12
+DIST firefox-78.12.0esr-hr.xpi 522698 BLAKE2B 13c644feb97ebd9a5f0a0469bfb766a541fffd127fee2942cb9514404b9583c9d1ffb5eae668e2dd73190a82147fb304235f91c84fbe57c0cb359ccaed032bc1 SHA512 d5efdd70d10dd0a401d3d80976be737d5012ef33d95332b73d773793ffe567a7a447c8a65b9a2d931a4e6273c7623771b2c50a0c9424ada6dfc25b0722fe9911
+DIST firefox-78.12.0esr-hsb.xpi 550669 BLAKE2B 3a4224cf17d1faa79eb19c33922a1189604d8bbe206dd837931df509b0eab67d46ac90cc8a3464114c694037ef8896bff197d8fb0a74372093de70f765414810 SHA512 17e8bd7d8ea4e9b36ce32313792f2125f78db679218d530c4c226e8c86711a3bc79dc1ba40b66c04741a2601b4fd6bdad5d5eb732e365219fe2f2518256338a1
+DIST firefox-78.12.0esr-hu.xpi 554886 BLAKE2B 3ffed6828c76c5c51d6774653ad61777ee89943625c8ce59643f1af0df6e2a4d5dc918778c7c1bda9b3f72cce6fa534221d9b895ead11818348f9c7a0fa1bdfe SHA512 df432acbf507eca5bea458ce545de7521719ef1392a91e9717d538dc29d83135c9c5aa8bace1ca08788672eab7974d35883a4064d443aa6404cb408db784d77e
+DIST firefox-78.12.0esr-hy-AM.xpi 588981 BLAKE2B 7ff31af1fa503573f59ba57d072a24cd7ba8185a28256dd66c3e176ba21619b4175d4b40e3787c76ffd7944a8da059da588167cd773e3d8d5643e95e1fb33930 SHA512 3169381fbb21cbedd115613fc9ec96b1fa4fc9e6bc819a3e94134a05a8ac14ad5f2241426cf928d3ebdb3a48db8e49fd1596ead5a8cc40b9ad12385e6cdfe604
+DIST firefox-78.12.0esr-ia.xpi 518808 BLAKE2B 769860bd1a8940bfa4cff65682501db93e653facbe4c1ab1ebc4068864885266c0e203bbefe58f477e1fb3e397cb5ed7b0a1fdbd840bca9b89f7e2bda5bff705 SHA512 4d02668a8e6c30fbffe327692a0dda509daffd1f5eec08026f9b3944825333b0a38d3f71810220369b0bbee5f4c0082eb6d2fbbeea2aec873de720c4538e49d4
+DIST firefox-78.12.0esr-id.xpi 509561 BLAKE2B fcb2f7a558f6592260bec964de149001be7078e338f4d09446b01f1fa0d196252d2ce2fc1d2ffa4ea0de45d492323b4e9bd94ab268baa7f2f3f9c91aec7514e1 SHA512 098bbe019415541975e375f02de131af3a50b6ebaa3c39399b14b907e67740a28dbcfe4b15f0755011c5273504ecf74828c65c5d219b7a3dd7d9b9bd9de19179
+DIST firefox-78.12.0esr-is.xpi 477012 BLAKE2B 5bf1cbea09a85303ef4d3e25798c94a3a3e23d770536ad08c645490c042fad85f1254946aebe85c5388d54115d5c9bbc30c9c1ddf2e34ef40bc2b4b4c8642760 SHA512 fb385a03d574a8d280a54c977be14996d33d46d5b5495368e4226ecefb12e479bb57b21e28f3c23c14f4d1f0353c725cea3ea5e3e3498e4ade2a91ad59e0f847
+DIST firefox-78.12.0esr-it.xpi 449807 BLAKE2B 0b2b52d50fd220c7d250701bfa12ebeaa5863c78e8759948e481e22ea76cb10a406b2b32135a73f23155dd4c594002db777ca9ff4c4a64c0b87e642bdaf68c81 SHA512 b586eda2043774edc5008bfceef5f779d2e468f7304eea9bcf2d956078d95f04dc6dc49ce996496a131bbd366bb6b588d20b914ee393f175c94bfc52713af199
+DIST firefox-78.12.0esr-ja.xpi 578200 BLAKE2B 5178f4003c7ae8806b52223d1e1b599a693519f9daeacd5532c8dd6fcebc7cc82cb5539873eb4395dbb2a22ef6da5d09a9d9f9b0d395c7365fa1e6fe45e1b0b3 SHA512 268afcab72d2a5406b77d992ce005e336520f957bb81dac3491ea74b2d9e2906aa34dfb7f7ebb70b290737382237481bcfea0ce9f4c3316bd3c76f9698661e07
+DIST firefox-78.12.0esr-ka.xpi 579082 BLAKE2B ef8c55d39a2aa255eff85a7eb66f2a2d5c267948887fb9e975ba86d323518d863122bd5d48b2de158f35b084f54d6621189f4cb7df44dc271e85ab494fe113d4 SHA512 8db2582ed315e846e6eba468fb804cd7940984edf29a7b992a96eaebdca35110465457d55eeb5ba2557b4e868a0b0b600ccbb2023603104d7c934f80e022d951
+DIST firefox-78.12.0esr-kab.xpi 539732 BLAKE2B 8f5a140b2d2abf4958c6e437f26d49e6ce06511ac798505a2a7573010bde510ef523fa92d809e6dbe7dafe1e370932fd5db039099b2c619908d095d94b470ea5 SHA512 e4455e2031b86ae7b0b76da7b90f68cdec247ef9cadda2cbb7b86b85b80f296418cb3a034c6c630c9d62c056a35f0010b0f58ad53e634f7db68e4a4cdf09fa6a
+DIST firefox-78.12.0esr-kk.xpi 593260 BLAKE2B 68eea4cb0f257d4e1d0771d3e06324d4a556ba0c063a3d17f641330b289cd85c677f01c644713a882fdf3a94650d4824957dbebea37d0d87628c872c8f77a7c6 SHA512 e216c3727e7c1ef3c04862c207a9b22ee18202ace5dae589d19735e82496fa10560ca7c5e97750829ba7b9df57f0695778dc60794c837710be2509f139783fa5
+DIST firefox-78.12.0esr-km.xpi 527366 BLAKE2B d166e62391f2a93ee7ed06801bb1ea0d702ae4977c610aa013dbe7e21d2f7d243ed969370a8815a4173b5ed691b375804632222367e8b9c537ac7a03c3768e39 SHA512 ae50dcd81d874cd8802270903f4db23d7fac0ae9e913a674a2b487062cc901102723b3155e83a423ca07eb814f75fe5ab39b83ef36e203842c96af7d0bc587c6
+DIST firefox-78.12.0esr-kn.xpi 506748 BLAKE2B d753d31da106fb6857dddb21b95f755d8d8cd24f02e58a8d3b189530c568bbc94942d62afcaf49f3c82b209baeb455252a97892482538564c0986408c1fff3f9 SHA512 5134e70ab4ebd1b121a063e918924139a601c86af006d9e8f3a5025c68a6af550319511b4f032eda1c2a45fd7e857577d3ad4b7a6f86753b3f84c065e200ebf7
+DIST firefox-78.12.0esr-ko.xpi 567527 BLAKE2B 14b9d67c582ce2cacf1196ccfaa9f612e98547f30f321000650978422a2a0cd33f9c6f9f135b289baee75f28f3c30675ab486d37d4b028c39da9b26466a36837 SHA512 36bfd233884dff29ef3a41370df17cdd1f306b1b35bd81e8d2881c09a5f73536f834c6bce7f0b81b3b89862b19fdd507ce321e2b467de20586e829189a74f90b
+DIST firefox-78.12.0esr-lij.xpi 475236 BLAKE2B 89d82e8b109a625ad2b7440a908fce782b43e7bbc1b58b3c60a652334f25b2896640e1b97bf541c59cade8c6840425d6ef0cd9c8d8fef3224f77184f5515b5e8 SHA512 78b62ae948e65b53573c1c393b52242129e12e1a30dfff36ef2d435be0466c14cf09f28dca92b7d6ce67430a6c5f057178bb601d3378036db0cbd1ca13b5cc5e
+DIST firefox-78.12.0esr-lt.xpi 540687 BLAKE2B 36f07f0bd85470537f06e6f2a40ad5ff5143c256a44f6ee332caa4ff77f2dd87990c18368bd85ece775558f9312f3201bc30ec3b354ce3d25e822e6c98f6c938 SHA512 1df7b888852aa29de0de945e1d901a18b35537e4ab9ff9807e9efd3ff2c385292873862836bd40ad8eef1cfd5f6aa6b2fe7288334e2ee295ae12cdf29e6a3eb2
+DIST firefox-78.12.0esr-lv.xpi 467454 BLAKE2B 2eb95094f103059c77dcdad427394b70c26033b8fe9c2867750829b90deea9d1ffec738770fc0fa23ce2f84b8c92775307fc3ece15d2749419270ac1787e2d27 SHA512 4517bf89ecf9fdab3b68b58ae53709b327b38f6c546aec85ca339427e1e2f4e846b91f680d7dd59bdb935ad9c81dc2a85bb5e2803fa70a077a10fe082388def4
+DIST firefox-78.12.0esr-mk.xpi 460012 BLAKE2B 01b91f2059dea0e6aecebd98daf280a1d299a80d7777cd0e363b60cebc1f6bab04ae8cf6c666bedef33b9246cf623e8074ac9eca26d7a325451b5e1c673e9eee SHA512 641986710a8da7c4dd334039e403a8f42f0f143752555af72079246e001e8a4d7b8d013e900fb2b755ea60a2df2a748cd802398f694d6fb9e2c1cc61ee118f28
+DIST firefox-78.12.0esr-mr.xpi 541569 BLAKE2B ac084f640e23cdd07f93dc3b68d61eda67815c70f13d616d8440553f06d4f831d7815e390c88466d5fdff4767efc61196971bed750080b7940ca53ca76e5b26c SHA512 98282c85887e71dcdc08be45c46baf8893e9818880ad7096c57d946c2e08808fad74222c907c593a6f1d67f50f1cf6fa65e158f2379b3ff2e45c641c8975ab34
+DIST firefox-78.12.0esr-ms.xpi 453061 BLAKE2B 0fe96bd6db5f8f0fb9423a659a052a51a1bade98d9ec613efa29db87b6483e792ddbb6d6b6368cb7d9a1f52be42099d3fb927a4a438cb4aac32968089fac2376 SHA512 122da1a5bd6c521fbd93657afb26a734082f23b9e6e3d32c28345692c86665fe1310c74bebefdf65715451632e4f03bb3a0697e010712da7b90251e3e7a4c9ca
+DIST firefox-78.12.0esr-my.xpi 526323 BLAKE2B acd832cfa37ea57d3f475fc7d83747dedf76a81d3d783b83fc1dce42949e0cbbe905390945df314b14d67a4ae8a685abf8c20258bcb85bd04104faaebf18bfa3 SHA512 92b0fe9a657e3ca85d9b1c81d3435d94028e041098b7e1b52a26d4e9f378319cf70e9649585fdba5dac919c8189289394347466dd8be0492f05239ecfc4e5ca8
+DIST firefox-78.12.0esr-nb-NO.xpi 518519 BLAKE2B 3acb4ebe5add5433b603729a4afd3d07b5c611b14996f4723c865a4e4f77e77c7ab7b0a00c697190ad52733323a8d9807be5cf273bf4767b0b823fb0efc1be43 SHA512 9f1a0bfcd1c668ddcb7ce1ea52ce25ea3c490fb16ee8e4e475668b1e3a7e2e10db7dc36fa118b911f7b3b7e71054b664589763cb760232028552ea2220415a48
+DIST firefox-78.12.0esr-ne-NP.xpi 483409 BLAKE2B 24bc0e9eaca3055f2e6ed764b5ab230b161404694a7cff3c0d61de5d742fca558d894f72b00d8b9c2d7be5b96ea88eaf1656e90843f62afc325044fdc80bbd4d SHA512 ee4af731da6b770ea503aad20900da86aad7ebfb9e4509035a0efafb658eb62ef6633ebd6facdf38404dc2bf6e656eceeab6c4e358e472b7a220d7419ec28bb3
+DIST firefox-78.12.0esr-nl.xpi 526209 BLAKE2B cc7926d00063e84f4a9bfba8719d276c4c847152da283f0b36dce24cc1ab1f0ac0bffe29ce574362286c664564380e88f1575b19af5121f54caeca02f79a132a SHA512 5be0868df240c3f2bc5f62d62e33557bb5899d4afb8f775270a2a7e8d3cedd62b06f1bbad6ee4b42efe47faa974d2af684a629b910ffe3aa11877f0f0e772515
+DIST firefox-78.12.0esr-nn-NO.xpi 520165 BLAKE2B 5c730388fd83f76227e016a0cec35db136d4549105c7c55182125bbad7ed7b6797dab79d5a56cc1edb06d04cc6cff6734b9fc45db7c20b2efeee201f654d8247 SHA512 571606c967cc2d8343a9cd144b4c2b4f8739d43a899a60674d38822a8d8c488a6f4f38a3d7fe79b32a0e2c70b8d358ee0b6229bff4eeb16ad75e452629d78df6
+DIST firefox-78.12.0esr-oc.xpi 542161 BLAKE2B 56862a01dc976698fc1fa822cd4a540040cce2a98dbd8c68822d4d02daca9c30c785f2df4a4efa525f971aabbe90aa2f8d499b4b60ecf7fe064e4902a710742d SHA512 ebe47b83828bb15fd17829d5a741adaefba99702ea6642d0df89767ac0567905e0ba4d7c5014b453bb0ad235c317d1d9908fa9f3c956221d2330adab6ff09d06
+DIST firefox-78.12.0esr-pa-IN.xpi 580361 BLAKE2B 5708b864aa5bae9961c5aaeb75bc2d82e118e9ed4e5ce60b2202aeecb2ae9a55f3c2e5ea497352c7c5a5310be08c42ea7099199ccaa6ba5de5bd3ffce26f7406 SHA512 3a539f44c67f97f2e4a1c9cc29934e5135e241fe0adfd579571305baacfa545e602f78a2ac183086add7df444256eabee7e3ab32a626bc8d3ccb46d668831094
+DIST firefox-78.12.0esr-pl.xpi 545587 BLAKE2B ede715662416623631f16a1f3ded4a9beb8483a6155d541ab0d316902748295025fcc5a58a376d437ce496a0e23bb67772acf83b6477f70b0d0006c2ef58f5f4 SHA512 426b6385cee5ec7e1fdc97f8ebab31d9d3e7c7228cd791f2653a6e153c9c210e25ccb9040fdea89779664e8469958a3fce2036e31c00a51d48ef97eb1709cf85
+DIST firefox-78.12.0esr-pt-BR.xpi 527570 BLAKE2B 51dc9cf77c2f98cf5ed9045d355f8045dfa9bb3008dcaceb820b6df22d15e3fdf2d7fbcad986d17a93541051e863360786a3063d87233a9986f3a51cbcb821ea SHA512 9475a182f30f5124e9480def4c4d481ef744e9a57dd44418d9219ac464a9c52c35b50d713420b5957d3c18ac0b278ff0e9fd7ebbc8e7d723e3e54b697bf44786
+DIST firefox-78.12.0esr-pt-PT.xpi 532051 BLAKE2B 0296ef68afc434d5f382fae28f7d196fe535370fcf3aad8381fd485d52337e1655e7e175a73f69bea8f4ec9ea51c81f616fe6e01d893d43f37ff15a32e72c5bb SHA512 63cdc360ce7a950285c9ad2a8fefb15e1653db6cf03b5dc7ef94113be7a9abb79277e7a483a9969e317df5a80c0a780b480e36ec4b54b81e061eb6f8d78228f7
+DIST firefox-78.12.0esr-rm.xpi 526719 BLAKE2B 06fa9e1e88a49dff5b9e2d3a8257aa04f07f53761f9786b41f837315605c7df7d65c99a1d7faefa9d70a205801ef3a6de5e6037c3ebe740bbc848d2cec29526a SHA512 0562f349ff89dc6d58449ea84be5b7a3729b6a0a9da10eabe3e33ae0fdd67a356022e416a9164a76ee2b6ee53dafc683a5005709674a78c9b533c66cc45d0275
+DIST firefox-78.12.0esr-ro.xpi 535573 BLAKE2B 6873bee12b50838cf27b91c1d6bdd63a9e1cbe3c63e89c79ad2b8828f33c29dd95915cceec5fe42a3be12f8c1f59dd0225a9ace3bbef0d4e8cfcadf9724fe6f1 SHA512 73abbb7242568011eb39662e15ec2d63fc43fe269b21f82227d4b9a7eb89e9b3a7cc6ed9617600365360636a8df968cec87c966fd501ef1b4b12d276dd11c5f6
+DIST firefox-78.12.0esr-ru.xpi 614597 BLAKE2B 736786d92085cbb194dd371aee0a517ca6a17d9f6fc0db45e653af2052c5f5f39fe267b7ea826d102c68f699e991473474b0398175db17e3dcd58963a680d5b3 SHA512 432e4594e3c6446d9cfd24089a70960da19876b1e79e30f736471ac32f5772bce10c6c58be70237963174e828bb0f9ddbfbed2a314376d248fda9fe7d1d33f50
+DIST firefox-78.12.0esr-si.xpi 492527 BLAKE2B 1972bbf48b423af6d7642ab712affd8be3d2d9f22ee6fcd4d0ab5d79b34338d73bbd0f53f3809cf9a9c4adcb7a65a30ad5c751a8281efde29396e5eccdf49b20 SHA512 d223b49e703f2e4a0f26dee7353bbff6e865659abcb1e13dec3d2904e3c6a6d3d8c83216c038e425a65752e82b0ebe96368292f7d1229abe77994558394e439a
+DIST firefox-78.12.0esr-sk.xpi 534223 BLAKE2B 2b5e1c5e6013b69a7fd7bd47036c87fc12c4c53b8c3a8c2620dabe82594f4316dd71a038a47c3135a0b87a87cdf702ae0540f58906c0f6e0b181e0b9f68c2c4d SHA512 a3db60cc1d983eb7d1a3e3db671d82b80c657f294628a7d22652de82ed95ae3f149b7ff1e196d25fd6e25689c75c62b3027431fb33682ee9e7cfa5ab5ba529a7
+DIST firefox-78.12.0esr-sl.xpi 520944 BLAKE2B 9b4024810e61b3af52c866ab4abbcd660cd5da7a36245cfc134afa00e5e503edb22987c72a3d4180fee4aaee30549614063b297dd1a9db510705a665e4c59096 SHA512 69c1f56fcc966b29746f85a180e331c0646dd430f53cdcfcae3c958077d0bdc0d6332dc3c15910fa2e9dda6809fbe1c3982c9aa1f7bd7db6fcecd9d2fa4d99ac
+DIST firefox-78.12.0esr-son.xpi 424572 BLAKE2B d36a4002006b7c7f2a259e6b40bb4f385a2740b4e8ba9d3bd7b278baa24b0a1e62243982f34819f17a6824cc66f5ca4e7f32a355291ea33d8865172eda58cb69 SHA512 3a412d3ff10a11b9aab2751f7b15617cdfc4297d77301ed054119d4bf8746ebc132067e3dbb4100884de735d83f16ad326b4a7b4cabe150da609d8cafdade4a5
+DIST firefox-78.12.0esr-sq.xpi 544911 BLAKE2B a06a917f6dc1c3d0ccd712b3bd2ec1ce54c801c212c15da968282a7e169399690e7530b5b553dd11d3548df95e676c4882d54d394e593385a42c631d128be9ab SHA512 749552c95096d15e7c7eebd680dcd31d2565383222e4ccc8cc3fdf30b4536749726a5a6813c4ac665b57711265b1686073464743ba788d30f3b832c5107388e7
+DIST firefox-78.12.0esr-sr.xpi 561391 BLAKE2B c34eb03fcc556e2db09496931bd2d08ba9dc8a4ecff89ca03e19e8679deb0f4d03ffcea9f7d67eedb292a0dd4c65a66345eef45d5a284c72663c33b1bfb1d50c SHA512 8b5110e43de2c7afa4e6fe152c768ce1eeb3e21938abe34e27d9dce69f890ce3b3d90144639642afcb5c3a348ded6c412c7e48594c95657ee33275b056754868
+DIST firefox-78.12.0esr-sv-SE.xpi 529708 BLAKE2B fbd72399195f0824350510000c07ab0b8595d3315ba7ad983d4147aa86955a0843b5086046cf6d80bd8769ee7a21240d368b2ffa88194c2c07cfef55aa6adb98 SHA512 efdfa3f39ac1ec45d736590fbd5a36b81c5b6996e30129d2a7bec93f8d90fd6db31f997fe28f6dd430e10d9333edf5f5f2bbd72116ae73368b52522716f62b19
+DIST firefox-78.12.0esr-ta.xpi 521544 BLAKE2B e776dc5d8b1e01021a99ef84c94721342322a44399b689101d230881f9d212211e10a842a68675f2e11ae016eac93f061abd553998531b3c0d8a4f9e9f163680 SHA512 86c6631376f95e6c08d4e1d3bc0a2d5adb89cac885909d1f6a3b6ba8753d8d432784442aff27c71a673b9e0392b687e952284cd8ab3e36d06ac52e8a2ca55779
+DIST firefox-78.12.0esr-te.xpi 558391 BLAKE2B 2e0b60ebb90905fc49a2a2a5813aecc763ff598fa96f5af9f3f89ecde2914fff793d9029df1970cacc18a9b078b473ce62b0885df7f4832abeedda8cc03e520b SHA512 9058cdb3773e10366bac36dc77a122f4e6e83b84374c9d00861d40d28eb241425426644270eb31eea8098f8fac8b17da8db67b7f266bc7f6e86eb4e94863ea8d
+DIST firefox-78.12.0esr-th.xpi 592243 BLAKE2B ab688f807db0004f9e0de221079b1d107f5202686316c4a3c9bb7e899b057ca8682f29873039aaf9ae2f6cde0bd9141efc51eff00be1292df6ae43263dd80ff7 SHA512 310a04fbfa68f4f93becaf6baf10c98741f802556228076fe332672131b04903d35ea5354719a6b05a672e3b0b5ddee984abca97c62bbf198ac42b8ab2ed6995
+DIST firefox-78.12.0esr-tl.xpi 521109 BLAKE2B 4410a08723fbe30017adce09bb067712dc81580b6718ea6a9ae59222243d279f7418803fd624572cd5b543dac8922e5cb4d1613c70fc68f7ca9e09268c98ce97 SHA512 f7ab25435fb1a5c0550f7d15bca7ca93a8866c549756240ff6f7aabb843b7d780caf3b6fae8ab20685c03c65e419f88b3b4f6551d6524dc9ddd1d7cb857b92c9
+DIST firefox-78.12.0esr-tr.xpi 539884 BLAKE2B b2e56de6ae0ad00cc7c52d102d291d8d978bf0c24c88cfd5a6a9b856b9b31b40bfb6a26f709d51c848422c9925924bcb94f513a97d413cc33b0046d4cca42d64 SHA512 2eedae3645dc963a6016120007a634a0cfc4f1b38d27dc530340b6e8b8312c4d3a53de1529924688dd9d17b735cfeb27c6df10942dd72c2d138d35c27508bc25
+DIST firefox-78.12.0esr-trs.xpi 501218 BLAKE2B d9a566f1c0f5a5dcdc99e9c6b8e5fcd2b778b7589a3e2b5139b082189185d97f8dc7d35edf4a6980c964624d600495e902b2788dbd6b4359ec6aa45cbdecc744 SHA512 5faf29b0ee329c6dd2822491debe57c4f6ea8e6ec4275f25229a074d4274a6a843fd71c51d2714f44c07067dd92ac641548666fa017da644c300ff51ecd67588
+DIST firefox-78.12.0esr-uk.xpi 608585 BLAKE2B 96dcd88731f6ea3c9bf8cb1c0a6c10e37bd3dc5a8610a9e52b8bdc493bd898cd28c098e0850563d775f4f9c9e596f4b368baacea8eb9848d6aa3e428fed52676 SHA512 8d1176dfed8fbe3023fc850b2171e386ab6f2e1c38d3480fc7664291d8d59bfb8da90fc25562652e724de08454d3e2a57f537e3217c6540b75acb85db2de141d
+DIST firefox-78.12.0esr-ur.xpi 557951 BLAKE2B 201bec421aee0cdb63d211de89da044e5b6250c318831d1284dfbac2096404b9ba77b0ffd2b99c08653f9cfad3770b4045e90404eaa0e5587720c2adb8455fcb SHA512 d1bda9bb3207dbe654027175883c11cb9a82c11c23adee9a978ad5a6e9d5317cfaf0e87b4896c3f8ede86dcbb525b43be03218c2768b646023dad9a0c5ba6049
+DIST firefox-78.12.0esr-uz.xpi 477555 BLAKE2B 986bb748a2faa8b9a0aaa5ec874eea0a410502643ce71ebaafaeb184b97d4c4badb818a280339cedf6f401b34f79166c14dca08dbb8e714367f674b17bdee34a SHA512 1770757a2c1c3d9197ed08d6dc6514e8565292e1153c2c6d810ef299c5e070df1b67fb5996195541e880c71a63bb254905cd217f2532cbc7e75369241530494c
+DIST firefox-78.12.0esr-vi.xpi 562863 BLAKE2B b0c80866ab862e0d9d43306e897c8b3a06df6a03d62de0cb186b08ffc9307a68d17b361614046eb15388258af87938c93df9517e59b8736af2114e46a7a8cd2f SHA512 ea8aebe03949c8a364d0b47196bff4dbeff1eff1594f8b36dace7c6d401c3c353ed80bc89bdaf505f2b40abcb7c9c5ff13d38748f194629663f6e1cccb7c783f
+DIST firefox-78.12.0esr-xh.xpi 427839 BLAKE2B b6cf89388e45ca74b4d3042f9bf30535cd26a42aeda03b03340f2779ec0fe177653f43ffc3a6fad9a3ed98049950ad18b05a76b043d91ddad40f311e065fede2 SHA512 c146d9d5140ee3023a749d21bf4645e07f0ceae8f8b9d6ba91dd776c57e69b1c56e402fa3ec2b1d8da4918ee60e82b423c9994737e288d8a799c8c5ab1119116
+DIST firefox-78.12.0esr-zh-CN.xpi 564771 BLAKE2B b745ddf8c8ad7686e5ca7142338ef4b2f2e362874d9b087c4f4980f4d9e96f076bb318e0782c8c2404c00e71f585aaa76b26da0e369fb02b9121402b5471fa06 SHA512 cb707c11c8c0554e6255e725ab5c68f3b15c2d34d85f84fc6ab4ee7eae83fa91b35be282d592b845f09539ec43d1dde8167bad1eb24b86adbbe236c72854764a
+DIST firefox-78.12.0esr-zh-TW.xpi 564742 BLAKE2B 3d4b211b35c9aabe2c610b621c175bcfa4fb0f1ba4af607407b9002a475407f53cb8f2e7250a96fa93abd5ee74bd3ee5b0aff01a91e45ca7211fadb2b03e5e1c SHA512 a241c3af98170e0885b63ec0c140fb1ad7749a5bc762b7154b77282d33bbcf7926550182d261e3ac4b0084d4b8d98b30111dc459f3cbf2d9ccdf9f6b811222b5
+DIST firefox-78.12.0esr.source.tar.xz 333737488 BLAKE2B 775a55511a48f4210807d2648833bca6f95d9f4cd48b5d0de8cf0bf2609590c1615fca7ff855ae3643a25466d131e15dc293e6a57aa05e1d91d2cf819b0b89ca SHA512 646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a
DIST firefox-78esr-patches-14.tar.xz 82976 BLAKE2B 08cc3618c8069f4169b7647e7eb699153d558bb89f8a4f1ed74d5ccd339f77119cd8f253df011f0c2f255ad889b65e843171d7559f469788463ca7e9aa2e96aa SHA512 1611c6f9d2c7d586e7b53810c1cfdb2682f5d289b1b019b71694b1ab2d8bbdfe827a73cfaf59f7e4808c0b90409ca4fa57e27655d8cdf0c578ffdbad33659f26
+DIST firefox-78esr-patches-15.tar.xz 65604 BLAKE2B 86e421e555ffd5f7f201d0f1a1c446c649739c67cdf8dca536efa115e09d9c357ce1551b7270c77e8bfe7dd53e0f3e6386496283879cf5e0c59b3c864951ebb3 SHA512 b229e895f083a0404cda1da0d8ae937429d5975ac52ab20e8b15611d9c737381a1076ebfa8c8a127dacac0e12a2a905ffd579facde2d80c6facc911e5739e34b
DIST firefox-89-patches-02.tar.xz 34192 BLAKE2B 06d54c82c2c9202fd176ea850872be626d3da38cc42f14def0a29a18f4cb52b851b7984c3880d35cf16b66cd5316d8a65212d6242350f1bb4f981d5deb050e16 SHA512 0e43645a81c75dc22da7091e00b9a1cdf055d6b4c2ded7ca1c15badb87fcfd29a7afb43ca0142627388d81c8728095a41b7e2a5983cdb1ea447269d8e6057003
DIST firefox-89-patches-03.tar.xz 34700 BLAKE2B d2d7bc89abc5c6e3f18fed724dc81c347f99cbc8c162acf50823c51ab62a0fb8c54a2be8f3e77d928a3b31d806d5407b374152e356fa98f366c0f33a7f0781bd SHA512 c20b701c1d427eeaea4856b0e36ebc57a1a6e7aa676c6c34185ed8b597d744da26fb889e6170ca3c82996de9ec1b5efe16e02d1cbdb3d1562af92f272c18243c
DIST firefox-89.0-ach.xpi 467444 BLAKE2B 7620cb550d3f7b980cdf45ed15d2b964fdcd125c794a9f2b78892dec5d0250d15428ada892d5ac75223d6fc225aaff0d862624b7edc98e91549535b0ffbab909 SHA512 dd416ae0e9097a293acc6a70b2d857cf6b9ad65ff1d54d51c751cb938e7e703faf117d037ed3fc84b2e2108884369a803f7a7745c86130682ddedd3cdac81de5
@@ -397,8 +494,108 @@ DIST firefox-89.0.2-zh-CN.xpi 589249 BLAKE2B 86579e39b1ec66fa2dca51d662e4fc437e1
DIST firefox-89.0.2-zh-TW.xpi 589746 BLAKE2B a350222846df22392e9130bc12e03241ff7259bf20ba3495aa27e593c2418af4378bb7e6e526cd780b4a4c7ec1b35ddb87efeedf9c0c94ca034a923eda3ad3a0 SHA512 b6a65deb40680233a1724121090ae57eae2b2764ba92af7720cd4b185b9583a9b68dd9a87eb9e8c3bf563b7037cc3ff33bbe36c8a7facf624b1d75dc785032d3
DIST firefox-89.0.2.source.tar.xz 371053016 BLAKE2B b066b3fbe4f4751ed3cdb62e428a86c4e36996fff6689c20e25d9dd8f93a5ff049cabe5f5dab84f9daea4977d6310f43d0098d3e3fd733f2155162a6ce4785e9 SHA512 ffd98ab0887611c5b4aba68346c49a7a31a58150fd8bbae610a4d941c4cff0acef0daaebfbb577787a759b4c1ef3c1199f02681148612f4f5b709983e07e0ccb
DIST firefox-89.0.source.tar.xz 371153536 BLAKE2B da5d1347149664c2da3315f9ede38c576d64a532daf10a46dfd2f7cb226110aaec84ce9285e50c151c8665fe2bf3df1d8de8e744b0b8ccfb41103920c10a6b3e SHA512 5089720feda15d054d0aa4c3bdeb84760314dadd6381d7360e688d8e396154868220c6315add650d8d2a42652cb8a9bfeb833885812ef0bd70a74ee58ad18aa3
+DIST firefox-90-patches-01.tar.xz 33084 BLAKE2B 943f5f9f87c6ce110dbc52e78a58ca64ab11cbf3af01bed8c0d6f537baebc0ef89455f01b966f9f052f62ec7124fd0b4019e27e410ffaa0530874e5dda73b01f SHA512 90689ad703de17c02581a6b8aa1c013b9ab96da22a17dbb8e06fc9a5fb04d00358df9e44285b5350708b366b32a7e6c6130ef8dcdb74b0f2b5c0dd44293ba825
+DIST firefox-90.0-ach.xpi 467563 BLAKE2B 32799fb03cbe4c5566709b2109595c651f47095ff6996d8fcf751a900d691232f705d01cc3e5ebefb3854051702ec8daa0829ea7a1c35fa77a3449292bb88af6 SHA512 c623c3bd9e1d33aed1c15eabbb1996f3e345385cde7c0f07b7f8d08cc555c6cc845e7253a7d23c85616c1d82ebf79785657ecca6d7ef2177c76f73b619c7aa28
+DIST firefox-90.0-af.xpi 430689 BLAKE2B 3deb87157618596702035faed14d3a15980b2e02dd70ed29b90b8583084649b853aa71bcc306b8f2b25b17f8143cca4b9faf30913a5e284399c1b972fa4324a2 SHA512 8be725c9bd68647eb1de148682abe62220d2314a177af5de4986cc3b1b29b57204461aa131c8934bff6dff01fa482eeb454ff5b5779b1f059a66b3901a5dddd4
+DIST firefox-90.0-an.xpi 515442 BLAKE2B 48bfa7ee2a1f7bc1fe923d35feeb0a822c3fa576c70eefd9dd2b422a8d1140aefa8ace259d4a43c4161df62b85a824e402839548560e06655e8e9408ec9fecd5 SHA512 955f6cdb3bbc460f35a937e756e94c27336bc2fc03fbe9c617fb0a1b078e60bc21aecf5ccda5c04e6aba5ebe8572ec8896dce160e5454c686732cf7198af4c62
+DIST firefox-90.0-ar.xpi 580212 BLAKE2B d205daeab110cb91d0d0e00b52bc91e0bd50e28be89e09d3ed8a66562f5c0765e26ad085fff82cae0597bc8db14ac839be9714d24274ac42e198939dfc912942 SHA512 483e09e14a2069fa894c59700714330f6b6f71079a38375286e1d6de492fd8d06470447394db0bcdeae1f7f9585b0af3a0d13cb9ccb1f5048703adb5f2cde0db
+DIST firefox-90.0-ast.xpi 507901 BLAKE2B 53b3f9cd8c2ad1b0e92fd84bb168be6bbc5f9c9812135b2a07c26eb35c60ef96f2ea08ea5543edc6ffe8ae4feabe40d580bebc3d5b754ed391f77a0cf9e2c78d SHA512 ba6323fdb588370374f7ed3a119202bbc164efc6e880304b7684e3a324295b2e2f6ae69a7ab475c1d0c06140fc67f169189a19dd99c912d065aac9d0010b8338
+DIST firefox-90.0-az.xpi 503451 BLAKE2B a95953ea4e141533a6565194424c52ae18a256149ee5f7cdf1ae96b445dab707c91620a1c24052bfaab698bd9ae98c5b721ccfe6b931e9aa970ef50617794dee SHA512 a91d46a1e25c47af6c0a35e137cb30792e01279ec916b37819191421f9da3df89edbaf1d78bb66f2cc6bf097a231dffe99af17ee09b9b2882949a42be868c2ec
+DIST firefox-90.0-be.xpi 636663 BLAKE2B 137119942714f79c097328ca988e69fd6cf43f3fec8660f69931b0cf3a68b07d5b556ba648d83fee4d0153c5dd6b9996799b7af971477ed04b91957d6629d016 SHA512 a5bd4b5906994e348dc84cf87e536f60d1ec2de6e3ac16419cd5bfeea07c7ec26bed55aa0a7e567fec57091807c40b7f83eb5320e62f359108229ae6768d3e55
+DIST firefox-90.0-bg.xpi 590433 BLAKE2B 27bd2a13abfb6c2b1bdd4c18fa38616ee13d40b8f2ac654c0c4b943cc6ab7d6faa8157ac56862ae103f48efc6bc92be9c6b7143fec331651c3bbd46f4c4e3ae7 SHA512 7fa0da1229bee97bb794ab738f317dc92b944be545493f650d70a2df074c841b930aaa7b30a0ad31aa221bcb574c26a66a866b9b5d3fc71ac02721b66a3f8d38
+DIST firefox-90.0-bn.xpi 579581 BLAKE2B d71bee924b6b5ebad242afca2c2c6e3fe100d6ecc0ebebd1e1c92aab5f0c0186f4a09e36b72965612f19e5cee33fed0295fbf563b1be1b7c24893da92bb27dcd SHA512 54d35473905340f350238b0228ce6062fd297a8e0e75a2b810c8b23f4ebacbe665c66c41edb3399abea54da0764e524269b82b9971d164b68244f942bfd2d38e
+DIST firefox-90.0-br.xpi 537482 BLAKE2B d8338903de341d8953cc26e55f24576542ce260f176419c58bdddfeae8fd820ad0ababd0386b865833fa6a8f7ce89325b9fac6b440c09e9319ed30dd7f0ae925 SHA512 7f440a95f5685485f1f044d8a51c7f2f620d068378326f2d4fe5f3d7064a647a9a1a8766f76e80044d1a0d257571dcd1d8f4bc9645d4b97d5afd99bcc4006aba
+DIST firefox-90.0-bs.xpi 472329 BLAKE2B 369fa1661afa09732076ba20289879b40182e6a557ea5e8b3bfb28b6b80f3105d632635c83dae7dfa81848124423af48063378292aa62ead619c8efeba971ecf SHA512 93d02208fc1f1e52e88d4fce0203197e4f408b756c99d9d2afd87f8538d62d0d28b3b30924a5227afb9e43aafb1b0e9026e8f62ecc5c50a6e02ed3a233f8be2d
+DIST firefox-90.0-ca-valencia.xpi 548463 BLAKE2B 675978a75975c1675995c530a50acbc69512cfb01a6f3e0702aea62a3485c7300914e0a73028751c9523d9ac04c446cf64bfd031750e0b4bf5a2ed1622528206 SHA512 bcade267cfff945acf73bc25e54832860fb67ae4c5c6aa2b6b4bdca8ed96f51139bb89fd3b06bec778202c1c3b742b446df5b70fde360340cc070099bf3dc4db
+DIST firefox-90.0-ca.xpi 546572 BLAKE2B d31c776a9eda8701f64a3098afc2d7a8dd978f7f9cd65227d1fec33ff76f9ef4e298233f01f9e5f4cab95655b45c4e1fe0af18fea7b1a0f85aa6efccb9aad997 SHA512 24d176445e59841bedbc23dde5a63444ebd39ad34267bb0b175104160ca1307308f623428db91719c99b54e5e7ad6d33954e1ba55078bc09ad4dbedaffb02ce5
+DIST firefox-90.0-cak.xpi 573760 BLAKE2B 5f0e5d496b3d63013370df4711b7c66755eb0fe27313efd0631902633b37798bae92bcda2e80a438c884b1c6fba7b31a8cd9622196b40caa332feb682adb90a1 SHA512 3df9279d559302c71ad08b23fae14916104d7e71e1d526c0b9afbd010e251d20cdd4be1d9c02003518416521100193ee4a540387fff22c05d856f00b644815be
+DIST firefox-90.0-cs.xpi 577416 BLAKE2B 45c175f808c506bdc127dcee988c8b9d87f5937f1fe2715131a5c61798bb36a0fc37877ff7b1c77d05809d2cb599d26b76c171c18992b0c6800cf42ae3ca610f SHA512 f56a9995af925c012aefdbe6b033c5d0462261969fbdbcb5fc4df4d52a5dff4195966807168e0980dde23d1019f76261bcb1579f0798f518bd6a038449ed1ce6
+DIST firefox-90.0-cy.xpi 554150 BLAKE2B a490d71b138ae067a38282f171d7a68a1a05bbaf3a48686e4d82e77800e8e7b3064ee2aa1710a844b58cfa81338560099556b4380d73705b1691194afc896d6e SHA512 d31a25aecd483615a92c1e49f89a144b95b83c7824a768074d3f459dcad1f0a21e26a4e84defc02b107934cc1216aa067902be1513567af2517cb4e38f7cf2d9
+DIST firefox-90.0-da.xpi 543825 BLAKE2B 6ed1d88c459ca069111b03c3c989a64e9fa1bb93e25566b88a01f279bfc2488d2d26ace09c39dc6c26d3dc2382b26681c02492738bf25cf6845b679a44656bf4 SHA512 bd378ab445b1af8e7f5ac84158ad195ed5af17cad78102581aa308a53dccb9ece7678a744ac2fa66a27aed57f8648cc00a805ea3463926e24f111b5bebfc9a45
+DIST firefox-90.0-de.xpi 565902 BLAKE2B 4d4c383c0641a8db0444154d1dedd4bde0bc248b0e4f30b808da0504af397822beaee86e7018ef508f8f157619323e2a2ec2abf208215957b82ed3dd4ad0add0 SHA512 56378a0c6339e2020b43b5b00bf33682c1e9bed838f3018875b517ae031e2a2be041f699607ff1799897898f9025a14383eeb85a2e02577b06bfe3d21c862fb7
+DIST firefox-90.0-dsb.xpi 578727 BLAKE2B fa48732ba44d60039b66432c40a06a024a5fb70e671dfb4fedf44190fcf4fc70d471627e21000fe83a526d80ca303e936a6caecfe4a858537296bfcb4bd92366 SHA512 3a2dfec000f1767625a2acf64c7235e393ca5025d40b8cf7798b314fe38eff436eb0282c723fa18dd472249d7161eaa70df237b243c129515e67ee77d58e2e8c
+DIST firefox-90.0-el.xpi 653307 BLAKE2B 316f9167cbdc85f5d3c4d68d03e60f96a39b2afad05b058488427c3eca2eb3365575c3593af1bef3bbfc9384738f5f51f14ea1bceb20e922c69878a2cab72062 SHA512 0ab23944c3fd8cf5469d4735885957b3c0d60e61211bed09032eb0c7535f342ca15f1dcf75291c3ce5a53bd24b359bf76ecf97b105d6a89bf7b0e7ba88546e26
+DIST firefox-90.0-en-CA.xpi 520977 BLAKE2B fd3b74f5c93a4c8965e9a8904291932b703113e8486b956fe2446c3ebc39cd152a125a7400c818a3df94c8706cc0ae080b11c0a2b943148bcbe674221dd53c8a SHA512 e76081f56521ca5fb5a7b1e468c445f4dd4ea3fa45f5bbb4aa27b5ac918221030cc1609c533493c294e18c3e5bb1534ca32f0db94995bb8b9d76adca14274d34
+DIST firefox-90.0-en-GB.xpi 521292 BLAKE2B 40bb93be468cd6236d665b7e9b6b3dd6dcbb1305f72c909db2124009a086f3e3c41ff45f6177688b8a282b4190fdc77634326ca1eca6c67ab2706e08e63ab98a SHA512 0ead74b6066df59c9991b23a165f2fa0b9410f21c987502c4957718aea8e84a912ff418c98b2fcc0b013dbd93e32cdce4f2aa266c4b77719b8fc48f9a452ee61
+DIST firefox-90.0-eo.xpi 546166 BLAKE2B 2682594a5035eacf42878eae40671d1118335879bb13b7653b5e6dbf8ac0ce872ab7584c7a9ab167782daf10f6e4f830c6ff132e1fd6e5cffc10729cf2b869db SHA512 d71d6184f8c674f0ee7bcc0ba18c9b63fb3794c17f6bea96d4d37631af85d83c450f5bbbb8373847be7aa2a9b0153eb361666312ddf14b8e5b3cb4b732465536
+DIST firefox-90.0-es-AR.xpi 559086 BLAKE2B d5af456783fca0cb9cd49f8b6c54e250492c3d7aa18abe59d37f73166bf91758b12bb4818256e228c17f978fed692169e62b0b1a672256f2fd1b09787d757085 SHA512 118b985ab82a2ff336e54fe33e50ecf8596709b98bb22746f3fbab2d7ea0c1a5b54e6053715ed0f8492ad5cdb1d75bc7530d044d955d10c34ffc81579efe7a5e
+DIST firefox-90.0-es-CL.xpi 558215 BLAKE2B 1d2a20619f8a8e8d741e83d04996ff38431d2146a33859d9aae6acdf61f35adce111907d39178289ecff29a5ddffea8c687672f7b7a5498339476285fe5939c6 SHA512 499375fa66f30eab47e2025165f8bb1552aa7f6035a5b791033183538b4da932733671d1c49cafcefe63b7d772fe20c394d9bdcb91742b2af75543a025c4dd64
+DIST firefox-90.0-es-ES.xpi 548981 BLAKE2B 16bc31f2d79673e3eec33e2cffdb3ba5558885b128c07fad0f9c3792f3622851fa368a4abe4a7ce64e3266a04ab957dbf9160dd08e55496fd523820475da3a96 SHA512 a5521aa49cdaea721f2e86ef87a9a44ce962f6608af701a8cd584bce2f40dd21b88068fb1ae35ac8e31d2e5898fa1448e9e60ad63e4485171adc3dce4cf88fad
+DIST firefox-90.0-es-MX.xpi 562423 BLAKE2B 31f0a644fcfddac653df3a65737538c8328db89acaff6f0a5d9e1a6a235b3ce3d8f6659453b6cfddd668444600b354da0f75ca5a2527374521ace8b71a7d03c0 SHA512 39e86fd91bd0dfb9f2bf9b2a125f5f24933eee46e5bd4c0b8a8fde58be2553d06aa64e78d55d5bb71fa4a18e32821d9cfa5091bc9e0f2638a6c00a7ad2b18f6d
+DIST firefox-90.0-et.xpi 496625 BLAKE2B f8fccd6f5b29b327e615a952a37a42253977b199b97bbe0c1d133f3b012945ee1847e7491390be2491ca1a51b5fdac2f7c28784532f98916f1d5ad8d79eb8ae9 SHA512 0619938c68e77355853d35c93c94395e1af3397b0d59cacdf4390294e9dfe8d16d4f296a15c597cc2ed1bfdcb98977ccd0e41562f21c95d55d406fe94cf9c467
+DIST firefox-90.0-eu.xpi 544754 BLAKE2B 04ddc2acad0d690a825f698fac1546eaf3ea3a9883ea21cb04af71a67413a1c4d622530e3eca331f3ef0985ab361b85a88b144146b637f240c7142d32b79ce45 SHA512 13ca48fe8d68b7c5793835347b53370acda59e675f71d1f6e45ff2335b1e248d40011461046a9e20ed8b91284809de16e003156922fb9ded9de03f1952e9b180
+DIST firefox-90.0-fa.xpi 565131 BLAKE2B 88a9a812d8a789cd4b29954878881a521284034729f5fa02ba05d7e977adfe42dd8e84fb5087b7b8c9240211e606d43e7e22c680948d3efb2363e37163cc4e67 SHA512 15494cce88efe9dc6ed69ce3b83af28af3eaa6789bd9cf229ca95ed874b24b8ea55313ef892cca042ce70179fa3562333dc6052d31a5c21589c55bd518ad3ea4
+DIST firefox-90.0-ff.xpi 488036 BLAKE2B 78ca239db016327e60435dc49399833dc1a0dc6390a2746792322dc630bc67e6d31448abbf67e251c6df4bbe9d5946431e79e66fcd87a28156a77fa67f81b1dd SHA512 333952b47705ce0c3ea7bced147c4e5f67bffd2200571e612f89267a7cd9807dc1f27d3a5ed5a7ae524bab6745d3943765934a9bfae9e91eed0b26ec3523c13d
+DIST firefox-90.0-fi.xpi 545674 BLAKE2B b699657eb06eee0d8e4ccb38f41202a8c885a59715e11591875584386bf62d8ee9d2abe0148e6a8a7b5ddd7da4405c1cea547bd28b4ef27d3446af99ac4a4fb9 SHA512 71bf27f517554ce4e39d925952cb7bdf45c2b98a54873c5c3e49a92e101755c26e9b2a569e64a3b09d553e1815ca14e260c0fcb414b71a7c483177d77f79bd00
+DIST firefox-90.0-fr.xpi 570206 BLAKE2B 1f653ef6818815ce44d3e80631262d0f32e77417ae2cfbeb52665d997cf863f0829b0d2f55744344950bb803e41ca318dc38ea687f55f3abe31a3a986ae2ea95 SHA512 6f95585d94320ff0653eb6843637bc7e5108a6d6eacd65f6f0013566574006455d465b998c70ca8fa925c619c1af4c776d954dfd2d6b54668b00a607eb1c44f3
+DIST firefox-90.0-fy-NL.xpi 555035 BLAKE2B 81d94d506b33e9104eec3ee6a6c5b624c59d8dc6251986267b5353e1d632bb4806ae56ec8128945c027ef1da98ddf8402c03c64f3730cf32946b91a2bd503730 SHA512 bd14c44c5ad8a99706bb48c55e639b527abdcd56bf397831b646a1f87b10ae67d4c65f4efb2881accc317371f6508d371e0868718f8222c504c4c69315302e94
+DIST firefox-90.0-ga-IE.xpi 473114 BLAKE2B bf1f0c5bad975b321d14f3b9fe4801ecc54ce06b1e8d00ddbbb9788cf5784ded58cbc0f7e8e509cdcca627d874360b6af44e0049a8e574faf423271a1c85c681 SHA512 92a4ca47b73bb7f378b8e853dc64acf6f88cad51107b6bdc881ab949d516427f38d1a19053cc76ebdebe5d130c543b8966f0ec7caadfd2b4c2a55d21dddab3f8
+DIST firefox-90.0-gd.xpi 550980 BLAKE2B 74731a77f743e5794413c9d54d907989237a5442b2d3f9823bc82c8cff0551d8a24647da04d0f5c9f0199a6bc0c5e2f891d6f9b0a469f29815e00116b5e79e43 SHA512 6ff0f12fbaf7876830fdeec899a2ead59915dd1bff05cb360276c7687cd9190348121b5e8f507b3b0a7a4bd9608687d22e4c1958fd7e8359bf36d613cea22fa8
+DIST firefox-90.0-gl.xpi 554479 BLAKE2B f9ec20a5f708c5b75a24375ba007895b24d5f2b7564b8fea002e4ab71ba4e7e88096be816a140bfb46ad3ec298261dbb92d1f6b40b18132c852d11d9b76a0f57 SHA512 377687e31df8be4ffbf99fc0012638ba431b5b196ed8e8648456e1b50c27ab930d13e186ee80bbf2d4c68dd986a6c0b66a69d72dca15bdfe8cda9bc49b20286e
+DIST firefox-90.0-gn.xpi 571173 BLAKE2B 550bdf08040e6625aa93e3d3a817d659d3f02b9c6100e6ce2d3c59a6e41928308df4d234ed23b3b462f3c99b705479a72fd183b089600a242abbe4718ea5e88f SHA512 b53cdd1412cd9a0b35ece0209dbcdbe46f38ce491e645536288a55772f9e0d66417f3547adcab771d3965d10e524e750a622fc369309e7d0fef51c025a9eedd1
+DIST firefox-90.0-gu-IN.xpi 547532 BLAKE2B c4105a4770f38b5574306ec5061190485b9f5e3139c75081b2c62b70f647336806cf7327d090434e89ffbe17265a9e82914e3b31ce57186c77fbe2284f8d55a3 SHA512 657619850f6e9570336908aff0f1fd062e7faca8536629af44120395310bf5363cfa050e6edfe53676cc7f1cb2138240e1eac59a4b5c95b7442dddb693688489
+DIST firefox-90.0-he.xpi 569002 BLAKE2B f7a1c2569dc773c7e2f24ad9d2ee413e984d5ac3e406ade513d2d822d91fffc7eef3d9d178042bb6f9e72473327b4202559af244282456e749986820cfb50bdf SHA512 44a3df4722d0a56cbbb1cb3fd0ca9cb0cf87bfad587e087a0e789dbf4ec2efa3685eaea907842ae7e08768b394ebb324b63b8b372e33083e731b686f997444db
+DIST firefox-90.0-hi-IN.xpi 579612 BLAKE2B d18e5f0686fb7d288c23daa014f775e16bd8146e9a8de2bef800c73a3c8bf637e7d867ec0d575450b2299bf15ed5c9a4dc729e103528d8b3cd5803225e092c2d SHA512 0525344c2de8b733d6b0f0daf54700117e02c321f0b0a896b4d61506d5c5ec3fa68d653c9b039789761c4f9b9c37f3f46e938be7d36f19c36c62710aa3355f05
+DIST firefox-90.0-hr.xpi 549979 BLAKE2B 4b038eeb74e0099f17d98cead4035bdd6e1c098feda4b62f65c6ffb69cf9e596bbea1021b5b4f2f7766d4a94cd7e86f8b3fc5b4fc33ca682f5e098560228c7da SHA512 b0ee7854b55035421d2fb0b0da76f5d37a856f2d061d1c7117dbe3154cd6f013b3f52b691a76d3276b8c537f6ecb71fabacf99deb7d8da41ce194bd9455673d7
+DIST firefox-90.0-hsb.xpi 574891 BLAKE2B 8ce631e8e0da25b626a467ff2541f463fa37f047212a8324b0d50538aa1d437721c4b86030065f2ea0250c88c15582de8060c2fdc60912f9b748b3dd4b4eb9e2 SHA512 606503c1f799c0c77e944360b51b9d664c58600592c3a95ff9e0c10ca382f99ede94dc5f0854067c0e753943b7645c34046783ba91da30443e63ec4afaa86e6c
+DIST firefox-90.0-hu.xpi 578489 BLAKE2B 359b978f4c6487cd0ddf7707899cbe3e6bbf4437cf7833402a5f70a7e495bc1baca851e0c8e7a9d918e1b6b591cc80ac268b5ff904e8a74da31bcdc716742f66 SHA512 c581748c74b1f7aeea3788610bc9774a960731c3c2144d23ace39095f9a8ece066033e44ba26975ea665c333167daa0f1a9b4337afb675cd22ff4cebc3fa0281
+DIST firefox-90.0-hy-AM.xpi 604406 BLAKE2B 53477d73f7f82279f6419abfe24e6f4e1209c34c9ab2e8660aec885dc4e85c2a3ee6b8f899928f7ad1de724ea8420c99c3374ef1ad9ae72660ac8229c045908c SHA512 1223f05cbb0ce94c757becd3ee047eea6eff6ef70b1dd906e813418b2e38b41f670dddae33e3df8aad17a3c560e8ef091259b4dd5c3b53292594427a8386561f
+DIST firefox-90.0-ia.xpi 543872 BLAKE2B 5bd6328d26698b038c874d72d729580a9f2aa9ec0df27812441c000f34ba8df0bab67955ce1b709de41f6a8f7599470b401e43c9d2f466a10b0d9800a970d07c SHA512 338d93e7c2784bbc8791c58c6cc26eb25af1d49286dae31fd502e88a42c1d7ed8b11e4ab871ad3e98fb06c5f6bce6aa2ec8382a5706e2adfe17794cd8d87796e
+DIST firefox-90.0-id.xpi 540015 BLAKE2B 1942af5461812b4eba250e3689aed4858aa09611b834c98c2b4a38e69646864be37b2e266bd475e1b47f6ca3bdd21b1ceaa1570c9f4b2962164f93b8a23f2d64 SHA512 75cea336b92b702fb929f6479e8d6850cb2d658fd0d55433a5f46c0400f2d056ecb80069dd8fad082c32a88968d75b584451cd355b743d4e69c97cc6783673a5
+DIST firefox-90.0-is.xpi 483692 BLAKE2B f799ad05234f80b23a89236caaf6b0bd90b71f6b2196a1bcd88176b950e557b8a21ee71413471ddccdc5fa26a683d56333e9011189debb60bd23a7f9345c50ff SHA512 476a9cd620e89bd0fa3ec56ae9d0e3950f2ff78d21c69476df563fa2ee97a0751605426eea7c42063330c3b0cb3e46d337206b26592a5c162f32bcca4dcb1e66
+DIST firefox-90.0-it.xpi 472093 BLAKE2B 34dcc7ddbbfa669839c8b68d93f3908e50705df18a12dd487c29d4ddce71fcec585d746d71454908df4a0e0a9a6a3581a38ec06a233adcd0260dd891be738fd7 SHA512 415f5a8d510d23f294cfb56c38e16c0d7ceb1546553691ddac2290f72570909a171100c834311d98e9a4d8442630b2e0409859557432d77338ae3c9d47a267cb
+DIST firefox-90.0-ja.xpi 605292 BLAKE2B 7f8f68b679ccb019b5b547f8ed918c6d498338c07196212026228cf835e0256177dc9656ed75d05ce140d453cc2a1543c9020e8ea805b74ac58714c7c3fcd615 SHA512 3e9f688b8abc8b0bfbc1b5c836416cf6b62b072f6e1e1ab73feceb9f0eff2481cd360c6ebbe3da1e587711d05b39b763cdf0307394e885553c9aafdb1247e896
+DIST firefox-90.0-ka.xpi 606614 BLAKE2B 64955d19b193741b711e42cac6ba1f2bc9bf3834676ba3bf2911a1f7c91664f4f07dc4b80dda3619e1ec5819301ae69ae6aaec6c5994b9acbd6c112bb3c57569 SHA512 8a58f5ff2639a88dfd7d62675e12f70e97465452b3390a28dab31796553bcba1bc0ff858184059e7bd8b27a22f1c8dc6cc87b4440c66a7b6618ea0d1d1fbe6ad
+DIST firefox-90.0-kab.xpi 562715 BLAKE2B 82a78fa9b01453d2f4da7df71467cedf19decd1ccb78ac669f9be5f1390227d30815fb6bbac065e6881f610193decd1e4f10bfe2add01629f7b4554879460d8e SHA512 102cb22cbbafc580a3cb484b48d9bb0d5c55310ed7b68afe8821e113c8b11ca4527cd41251bb7f6378281e7bbab3025fca06b9da2a0baeaf11a72d9a87abaad7
+DIST firefox-90.0-kk.xpi 621566 BLAKE2B f3934bdeb01d07c045c12d49a6f414164aa3913971c3d6e51a9c1fe84698b15e13d31b9bd4e9f3268c077a7d308f6a1478f53a7d66a36502ab180bc625cc65d4 SHA512 e4cd27c5be6ee30f7b92edeefd3231517c3a0a7ee6a1da4d368bba4dcf9a533d48c01487f83b0f790c9569b172dde21037d0a893a64a4a35a198e85cf4eb49af
+DIST firefox-90.0-km.xpi 546420 BLAKE2B 67e38cda07fff9b6db7d52d719dbd373126fff7afb267b90c2b738970a8f80093974817c12bc9189beed7456d5ce07ed14b6a134c9d7ae3cb462fcc4a8d3e172 SHA512 0f3f9163e91f33482e635274d9a21d0242b872ff8963ee730e485ed8ac41195b80b83cb5eb085ea8525d58062b3ba1e148995aee90d1f091ac7f9d7343305784
+DIST firefox-90.0-kn.xpi 510713 BLAKE2B 8221d950f5b2c800091cfa603c2b09cb62faf7e168d4c69d34183ade90e65236ccddbdc5a08229afdd57b4ec3820c142cefab8f83d5b547c8e54fcec484e4ba6 SHA512 cef6240588221b3aa827c43dd12c36501b3df882407d027709994a41f1966503e868cbab83a5852499e5ca6b4a13e1d6c3b147b946a31d2c74e3e4ff3f808962
+DIST firefox-90.0-ko.xpi 590162 BLAKE2B f0b389d55b1c2fb4ef73ebbd232bcee385b9ce836ea9b841d3fd1ed17742da4e0ca7e289064ecc1839294047946d7ba2c5f69b4a135142c5b6671116d1adfed8 SHA512 88aa8474636ecb8a21e775a0511f0924e7e97847e5ece11ff1ae77731b15fe81e0983248bb6db98c607d678c844f02deb5ae2aaa193b0f85b8c705561e5368c3
+DIST firefox-90.0-lij.xpi 484749 BLAKE2B c213b46be98218aa9e44de3de39abec400066cd4ff42eeb0def53b777b24b1679e7381a8f73de402cd84bc6829ab52822184056a68f16df525e9e257327d287d SHA512 18cffdf992ca4a0e3a1dda002cfec132d8cb366970345f6fe40b265d2ac029029c0452bcc645c256dfbe2d91be4cfec7ccd244ea89843e381c4b50cec6ae9526
+DIST firefox-90.0-lt.xpi 571831 BLAKE2B 237d0eb3920a75fe20b9333a1457b244ab7624c1b99a8238626c26abbe808ff1e7d7d9d2df1118cb56cb6f381e692419c276d69891cf391dd70a59e6e266da57 SHA512 52400b77a1e418361253cdf61d5db08d4694c6137f249903d6a7497318d1719dc0a02a7f17d4cf08f6980fa88928d2ee2037376822ee627db75b0cbf06136ecb
+DIST firefox-90.0-lv.xpi 475673 BLAKE2B 7fd9ddd74129fadb9d0698f7c02e3d87c98f1e2cd1cf1d11a785f8221a8901266b313c3086831de27311d0555b082b8c9ee4b2fad7b37048c9b726f35bb0be10 SHA512 cf262dd372f1824c4301c18f6bba7b19b4c076d98edf7bc60c22f59db4cf1a5c7388bc8286e228bc20c7da43903f42613f4bdb33be0a2e70e7e9ee6629c6c447
+DIST firefox-90.0-mk.xpi 472340 BLAKE2B 9ba7fb3ac2ae0371fb200dbfabde855aef92e7994ce2e06ce09d160effac79ed9f9ef0ce6427bcee19d4d6cc22e0eebc4cee3983556fb4d81e07eee10c4158a5 SHA512 7866cd1e1313acb83783ceec316e83ca793021c015520538ebbcbf0950ee6e37ff40b04702ff58d9a180a700d202f5ac7a09361db7f9e974446448a5ceccff93
+DIST firefox-90.0-mr.xpi 547698 BLAKE2B 902ecabf3432b85d02b4181bba82da18abdc6a9d770aaf3c6bc5b5c19dd3203a5d9455d5dff894991d31c13788f1e6373321f894cf2bb65da8cea19f760149e7 SHA512 adc65c9bd3935ee226422fcf550c65fc3677c463a8a01355848df59cd80103d34d7f321e2f26c3d4c2d03e38168367cccbf933bf3d2026e57c01a32f19f95f2f
+DIST firefox-90.0-ms.xpi 459295 BLAKE2B 89c1840a161d6bf24bc9dd355b4d5eb942160f70e46d22691f508b6a65df2269993b0f9fe6c69fae38c9eb25ada957ee412484be65ca426aefd95dfb7d0c350b SHA512 b200d7aacbb54f60f11a496174e078f5168ececdd1ef31b563d991eb92e9e86bc3f8ce953b50eb8452084366713893c2cf54f403468d55a18c2e893d3214a1ef
+DIST firefox-90.0-my.xpi 531247 BLAKE2B f9b26f3915563af5a346529c07c56df081c9b53c92c8059644f144e981c9072f1b69dc869665d2bbdda74ce199a7b620eadf53369eff13c362b036820b6bf789 SHA512 1d0cc706fc66a204c4191919ec6f1f59a9151629e67930af77aada670a9374afaaf9673daf0baf94d0ea4700f5a6fc7c4dd58c76f92afd12e9897e1bd31200b1
+DIST firefox-90.0-nb-NO.xpi 540500 BLAKE2B 2be7d15aa82bb0ccecd7b2a74369dfc9117f90b4e7e136c7a5827871ace948b09ae54ed799dd389e6f016d54713748ca0413320b6cdfa5616788e3554a5445fc SHA512 352986e7bb4c197c919e45ab2fb0f5c5072187e0876a03093cbd6eba86d7fcd67ca3296d6e2f1f7c3f4acb378d497e52140f735befff8632e1bbef4d283c49ca
+DIST firefox-90.0-ne-NP.xpi 488256 BLAKE2B 9c59fa0abf571db52d06447afa84d019c0717b538765c0ed130a5f8e5f663ecf9690eb2bc975bfa45f002a4fce696699390d46c521d71e08af364373986963c9 SHA512 083ca5e10e202ed937709d2fb593f5d5a5c98bed8dc7c16a79c1bdc11542207279f39d6ab670e78ee439e75b6d94883e6c3591c73455ee4bbdb4ff7c64d9eaae
+DIST firefox-90.0-nl.xpi 548829 BLAKE2B 11b64e8506a8933c75d681f42647329022dfaec7c2ffdfd4558a3a35941c76d42dd742e17bd3f8265c06ce6be42feafc669237b46d291367ae318ef9002e1dad SHA512 bd9e67ad5bba772759bc637cebfa7b73e8eddf80e7acb80ef33015885c9ee55686888b2cf35f9c98ea0af2ce7aa577ae89da1ad44544b0268708337a4f6dc4e6
+DIST firefox-90.0-nn-NO.xpi 543209 BLAKE2B e094273a22660d972e3a66bb10d541584b90f6fe852d12f33637122bc4ccf361cbfc96ccfd8522e1038b6b51fbc43008f4453a8d346c007cb915afbb2c07e057 SHA512 eb6e3dfd45a89156ecf3ee959988257a01b4f31d855e631f8a388067d284b3be4a894b8deeea4b97d08aeaa236bab3e43f89661bb63cf6404ae63561c61756cc
+DIST firefox-90.0-oc.xpi 565284 BLAKE2B 3a905daa05ecf231b4d7de04b0156d904038ae8138d80d47f7679a3cdaf7c7e75c102b34f6102ace9747ed24def71cb116d19130b65c904ed07c55b47d5830dd SHA512 85fdc257a7895fb754d08005838a8be181e9fcb26bd83b03a08387a6c697ecbb121ebde701b2f7b2fe0cda4803ec6dae4b213882f5b84b091b2c639e823a691e
+DIST firefox-90.0-pa-IN.xpi 612467 BLAKE2B 765bf9ea57a6b5123a3af78a86db9977abf18f521e35954f9bd1f4191c89f4fbb8bbeb8bbd1746a38a8bb383f91476a7859dc782d4763104da1b9075c77ddeff SHA512 330a98398a366f2069367e20a7301834b96ee61626d0f8b13ff634e4b015438d204b836be47e48fec6568a279c8e5b7b04208a8b7c64e900dff47e16d0ef2703
+DIST firefox-90.0-pl.xpi 568697 BLAKE2B 6951be0a265cac3e51563448637b5b01bae34ebc0fba0cb9ae507429ae29052fcdf3401742ed48facfdababa61e0277aa296d3046621ae8f44984aaa43dc7d04 SHA512 6c46d7345fdf4aeb661d36fe64d7fae2032f9f0744138d64ca3be402947fba6406762b668b01b072972c61ff341dbd6660d12d53253147d91aeba8a88af4660f
+DIST firefox-90.0-pt-BR.xpi 554550 BLAKE2B f0cbc8f961504ec05c6a0619d973bf75e9e6382a9f3788ce7f8ba252a319e0d9fa17b6a08d0f61c02b71b3ae7e69f16542f567ee48bfe3347078c79c9b9451c7 SHA512 f1360b80a15f0884f881be20481250efe8defe00bbf6a9ee101f7ed5ff4475d2f1547a1b4ccd41d4d27b36b3bfaa0c5ac33b7b47a1160c62cc72ccd2d8b0c2c7
+DIST firefox-90.0-pt-PT.xpi 558175 BLAKE2B 93e7a8fbfd4cf67f71966de9cba7bcaeb6c5df845a81a060bed0ece24f7c3755959792e8f39342b657efab22e6b444233f7520485574950b2bf31beeff5b8610 SHA512 ce6830c9d7d5371cac1efb519fbd0d58af7e5354c2f31daf358eafc22b319322c0d7860ee524a75ae22014df001c90d840a3af59748db676de1c31c5fb96174c
+DIST firefox-90.0-rm.xpi 547502 BLAKE2B 7a4c701b1860734901d2af53e3dfde54f5d31aba55c545b388b729c6fd62fe5e55c54099ed743f7d0f255e74de81374bdb700c1c531977ef967a19c3d4fae3dd SHA512 b1bb9253705ca113dc5451556baa42eab4a901dd935e0fdae63b4eb97b8b709c2719cc7f923f312d8884267f7e9d9b60636b637566fb86cd9c0a537a50237368
+DIST firefox-90.0-ro.xpi 542098 BLAKE2B 848dd7d8771330e0b587330c75dd3d4d1dc41a6ec5ee11cf99e7e1ec6a79f872eaa300525e9bab5b35ee472d58017293c4442e9b5aea5d66600d52e01c946416 SHA512 a75f500a885aaa90a9a68194f76d8c200b6fc844b72b950ed7ceba2d926c6c1eaa7de6494f509f6c3eb33b10eb50a2759c558f25e714f7a05c5f2d373f86c2b4
+DIST firefox-90.0-ru.xpi 641411 BLAKE2B 25947442f4a5b6531e40e8f6a9d330b43c3a57f0fb9e1e584045b301926ac7e9de979bf5c5a13ea786b8fa9374a6beede07f471294d2f6b5bcdea11c2f22ca98 SHA512 64fc6ca0bf408fbaca4e1e3b015dc18b52d5fe215d219a09bc4d117c15977aaee5bde4ee3cf072bd45a3db2fdf8308b30a219a2e4ef272fe152c4c2129a47a9f
+DIST firefox-90.0-si.xpi 497028 BLAKE2B 59def630b55ffa186422fe06e5f54fb42ea80bc9b20044a5ed1185b4869dfb308c702882949cc8e4f185e2832da1d79c327d7edc27644ffcc23b0c988b8aef2a SHA512 81ab21fef01677b4977f82e69e8a6d6f5bb0fea2964c3a069b2fbfb09a154eb2e8db89bcdcacc4872cb327821dff9da8eae2f6b4dcc3a2123198942549a283fa
+DIST firefox-90.0-sk.xpi 578299 BLAKE2B 9a248c7b33a399b1126c19ea63a350061ead767635d79ca7568d3bdf24ef3e17bf11d9214345547f1339d304d75d1eebef717f6755a44c8e3ee63d5abaa28a13 SHA512 404bc0e44abd28792e79846dd53cd1d2357c107aebd880513a413ad5646f4d4d3ae9cecd1f3d552a7cde24bd2f8460505d0a6bf599059b75fea4dcce9ef32602
+DIST firefox-90.0-sl.xpi 547668 BLAKE2B 305438177f2c39dac8efccc2641fffe907c8f926b86b83154ba921888bf2564efe2356cbded91e5894a8a2f4eada25598068b3f2b9766133c4fbe5974696ea98 SHA512 9552189f41d5588c162c4956dc2610a122994a6a6050fd47a5c3746eb053f6c663a3ad2654f44449b1622952b194046202847df1ef9c96b6634d2279e31c0b4a
+DIST firefox-90.0-son.xpi 428005 BLAKE2B 32c27d503af60de3df42737c2c8063dc525ee9d6dc84a0d8e8a75d0e592177afedc0060d5c6366e0d38e29a7a2915c2b4e32e71df2442ff52c1dde249bbe2e4e SHA512 ae15d8df9b7f1d0a31cf91ab3002f44956428eb75ba3ac7799d1ac162775403018fc63b3fd83e300a32b9b96b03b01aa35113fb03f90b797928a8078be281413
+DIST firefox-90.0-sq.xpi 568611 BLAKE2B 69aa2a14bb28482f147ca7c7546345129c5297eb3d47656b598b1d3f3283851a48deb6cbd027da25cbb9f9857cf3c729bc51e74a3e1b58ec91829922409bb9a1 SHA512 079b802601f6f13ee2056b06cc31c5710bd26889983a4e853e9c49eb9d9be99277cdc383eb26b4329a43345f439059e494517de77b51dc0bdcc2253ac664e0ff
+DIST firefox-90.0-sr.xpi 602753 BLAKE2B 03c78a2e23fba5dcaa060ccef08087c1ee1ba04219f43f30eb99720233482c1bcb67cf482b4f87756ad842a24c8063515f4933cff3b23c7dc34669e38e8fd1e3 SHA512 ec1f954224cd30c9ca72c3d2c24d7a51c83265510cc4789122b594dcbcf73ae0af0135975e5eac6e2c3df726ec4cb8659accac74a36ff1fb924af2377593925b
+DIST firefox-90.0-sv-SE.xpi 551938 BLAKE2B 5ccd1c13e64cedbec503ab876761fa904a813a550fcefd3d6d33e5759dac84a1453c98eb50192da8f07b1c927d7dad8f94c96b06339c5a7f2c5c30d96b5f26d3 SHA512 c0b18e725b1f808dee8db82113652340aef16022fa1f0be7f0da482e02bb99f6551ba9d4042f4c11722cc49a67d4de959de2c9bc6c41ab82d8549187bf518d08
+DIST firefox-90.0-szl.xpi 525929 BLAKE2B 2b9b3105bd355c7c55743bf639afb46a83ae6c7978629623816fe6ddd3c76f7c2e0adb130f454ef1e86ebc8bd1d8dd7ab9c7cb66c226135c302e859cdab4caf5 SHA512 6802fed96cf50625b1e39c60c6f6b8d62bcef6d22e0cf214a42b52ffa6e964d2325b43b72e2cb873284160398791f9c9e71d4d33ef9bd047ed9943c584f49f12
+DIST firefox-90.0-ta.xpi 526006 BLAKE2B 838a382789cf83960cdff73da19c86b72da5368715e37146ace0905a130a3ee824d2c0d9ef1cc01ad523dfaa7e4a8a206a7e9defe2a86850b33b8f06664b882f SHA512 78cf985604d0a7d2b94c3761e6715741ecffc1e764473b722ee9a30be33db4f31beef4c3b929f453fa3d9a8de262a5353d351b393883f9d9459a9be666ec4a31
+DIST firefox-90.0-te.xpi 568740 BLAKE2B 03f5b4c5210bf79df7e23c0f167d85a3fa64ef9b08e7fa77616157a3162524a7986c9a6618c2af7498bf8f61361a5e3dc8a55b9e76a9ed2de47cd8949e76f860 SHA512 2436f569124c4f962cf979a834aae9e2da29277252d257b64160621efba26bd0e3f0628e18f49370e88910cacf7996dc053fa9bbdb51ef61b31b40b2c6b58859
+DIST firefox-90.0-th.xpi 620997 BLAKE2B 551c532cc3b6ca37a26d56bf5a84cd6f9300fda37e53a4bf8971c74b8796620d3f155d87f0847266987636033361466bdfa6e4ab8d157b191ef7ac8a3f9e623d SHA512 9b274c1bfd61f0fef46121f281474a283925dd0d7d07c956582ede8eff6e77d86154ead2f78a55670422e405a2452f3eaf3e5edf8158e334db126a5cfe4738d1
+DIST firefox-90.0-tl.xpi 533270 BLAKE2B 985d7179e6cc12521caa360d60ebb2d98efcaada1dc9c62fcc544ed96508ffa480e2226dad62c8f9b2570786300e6412eb877865fc899571b455a5355cb757a6 SHA512 57f03b901d7b801bef5f2a10ca54b4655679096055defd815222f9a7d9fb32725f161b33f0d1b90fd3e12d50f41cac08cc880467b50040adf8148784243c28d8
+DIST firefox-90.0-tr.xpi 564315 BLAKE2B 9c95d193b314848144e9eb97486b5714dc5d6397d0dd4e46c93f6e34f1b29edeb8b44b48708bb7d8aa7db689a2aa5bbd6f75637d7b2c6b09a7da53627eba9a8f SHA512 e1bc5f933c4f0072d7ec06d9090fc3ff586b1c9865810f7a2508d25a482096106624c474f4bf44f0a59543315a4e118da42225c8d19a6b03a36e8a01ad7b2240
+DIST firefox-90.0-trs.xpi 506674 BLAKE2B d4db6aa6e5004ee1573b367276c5bb842606cbf14acc687e51e586a0d8c0b972178b1b46a6d9a7348a53472b9f97b5f6493c2538bc4bfcafc2fdd07802381a36 SHA512 144a47fd20ac3c5b49b65b27e8703393cba1e61c0afac30ef24e5873b0e6f46b1f25ae0f1a64c1e7f43c11248c5cea9fa8a69e4011c833603d6c079045e3b545
+DIST firefox-90.0-uk.xpi 635104 BLAKE2B f4c5074c2bbf9213a2d2cc18f1042a3bfd8f1b2aa3adcfd721911df9530a140c4c08abad281b9ca35709ea644b27549a63892f4e56a5b7c46913e929f89378e4 SHA512 d509610a5a3467e845d825d36376c885d24b7d6a7e9baba2104a5bc12fcd51617aa8303fcac74d9194bdfcf4eda119129d3efdb76fe1d2e6e8b364fcacb7b596
+DIST firefox-90.0-ur.xpi 577979 BLAKE2B 9b9273337bf7c0aea20e372f680cea4a85a907a90ebc03ddfba4526b2c865576315c9e0384f380aa3ea6b16cdf588bdae1f10e003fcafa33fd44017eaf650c6e SHA512 276b26cbc2f47a19ff8dfb47e28ff3791436f0cede7f996dbdf092bf64ca36cfd2e164e4c8857225a3b0446a40d897aab69da9174c920780c7067b811917f2d0
+DIST firefox-90.0-uz.xpi 483028 BLAKE2B af935ab295326af2ab09f88d4ac9620a868355c1540c1fbfaee49b8b3efd41ecbcb9845d247d59cdf57bb25d471fd8202ae9dcc180f237b23f44dcd1cc3f24af SHA512 414bb6a1569fad5606b56df540bd5f1c5f4ee4531bc4b0c5b868ab41382e6dba91ba145f276485087a7b432d484def7229fdfdc73b40e826300e91a4b5017c7c
+DIST firefox-90.0-vi.xpi 586288 BLAKE2B 3e357d30dd5feddebba17a4fcb19cd4ea24ef8fbd4e6212757eb252284860b62a8786ec2631a8c02a992e9308d70c57284b58ec85a9e98a39ed736012977f01a SHA512 553533e250cb3d555fb90e2b8f3867ba0cfed55898810c136270407156ec6471ebe75cc930bd405b1afa81aa50c638b048ab1c3b187d1a3b289d0648d8eb396e
+DIST firefox-90.0-xh.xpi 430173 BLAKE2B f33cf177ca73a5e507f273d22842ee507252615260561dd7b34319491f8936b2b38ea4882800f4beeb4a5d99e7f702628f471e8539e3ac943f794fc9f23e777f SHA512 8af951cf3e3c57f0b881983862e4f75c7c696a24ad25ae01bf649c0aa2d36b3e658723b3ec964741adcfb49f1f7380214cef88500bb8bde74fb030aa9043f150
+DIST firefox-90.0-zh-CN.xpi 587658 BLAKE2B 316f42f5d3e28960afc1a9586771d8fc1f7c2a1ab429a1daf391817d089a02a92e3a757d0c73cfb43320d13f497d11b508848daf4bc1150353c37411f56823fa SHA512 bc7c6cb7300b0a3b002975a7e7b1c93bf89c4ffec272ceb980aa74bdaf4ed1d7786c545f1212dbe4aa7106eddf5b377cd0c9d0cc7e971b768246ad7ad9983733
+DIST firefox-90.0-zh-TW.xpi 588100 BLAKE2B 671eb44db05a61d0077e6320147df6aad5723721eaf39f256b636abba15c03fb37439fb931cd7159badfa4c3f6b7a71b4503b72d0d27573e33e540a351c71e99 SHA512 be1a2f630027ed5fe1e1961fdf13da78af800178153b8bd389c512e5e5bb5093ab3b3169232810e4e863f96514b6fa0c69c92107465525c863934726f68da21d
+DIST firefox-90.0.source.tar.xz 378743212 BLAKE2B 5f70cd3a8b0ece81c332de6be85f7fdcace3936e4f67b4f3cf080766c28fb1f90694e157dbd4f6fa8ed8aed5550a899eee8f000c2bea228af4546cfb02757ade SHA512 233ad59e4ab2f08d2253b49235b51b26fa32fb7c285928110573ccbe67c79965d9401a6c58a3af2ad22b8a58ca5d9b3154e3e8c9d29b153acd16152d9b75442c
EBUILD firefox-78.11.0.ebuild 34070 BLAKE2B 11606c90bf3c12271ef312aa067401e35aead267b40c6b918ed9a7d87113fc09ded50d5bef859997382cd2f9b33b46a86fa9c0d11406c78325654f6a471f5df8 SHA512 5840743899fef2473bf72c146767be95843758826d7a9a4b027a6772eb572f8f4f522ff975c088bd21888fdaae4e8395a9370d0257a05f2270d289b0ad79bb66
+EBUILD firefox-78.12.0.ebuild 34233 BLAKE2B 82fb1bfff27d50408ce56311ef52980ea2ec091469432a6af369a112a9bf3394473113c3ab83d470cf1ef001fdcbb7c25ae187347e895440ef405579fe8932a2 SHA512 66a473292653070f2f628a4f93002de011690ef7837ebf30963ceed04ff9570f01875b87e399f02dc90636977ed50e583e34698363a7fe9bc15268912611e068
EBUILD firefox-89.0.1.ebuild 34087 BLAKE2B 04586ee4ab959c80c56317329e24b1af104758187bae2103ce81c8be21d8cd05a888e44c1cff3668c998d62118e7f09e9b383b679baf24e35a44fb181b02a9b4 SHA512 bf8a35aae22c49d29ac20768a222aebc601f91cf9d00c69145c778bed70a52813134fca01d51f9da308cc9c5e017fc670be2423af40a68700c441af1016c0665
EBUILD firefox-89.0.2.ebuild 34087 BLAKE2B 04586ee4ab959c80c56317329e24b1af104758187bae2103ce81c8be21d8cd05a888e44c1cff3668c998d62118e7f09e9b383b679baf24e35a44fb181b02a9b4 SHA512 bf8a35aae22c49d29ac20768a222aebc601f91cf9d00c69145c778bed70a52813134fca01d51f9da308cc9c5e017fc670be2423af40a68700c441af1016c0665
EBUILD firefox-89.0.ebuild 34087 BLAKE2B ce7444269154d92c92311f1ac22cec0a1d08545c9e706f665236dbb9db357c51942c04bc48e05785f8df09863b11672ec2f541cc04d1565d36376562fb999932 SHA512 624d2ff7a355ea39b2a43f2fb68f59113845025aafb9e5a3a9938677926206d79795dcbc054afe373b2c6a78c294c32f45676c0fe37b12ca29ceceaeedf14d94
+EBUILD firefox-90.0.ebuild 34223 BLAKE2B 037f674055e4d81adf41ca0f708a5c728a3932ff86673261031aa4ac94ba3e785af06ac1e13615bb836456049a37632f8c0301538863056702d702b564293e2e SHA512 e999a8e1f13e4d79ce8f346a0d3899cbe54e444641d445769f15075f932e60e4916b6082ec353ad1965411f180557654c087e6d171e9f59384c3d9f243659445
MISC metadata.xml 2150 BLAKE2B cd105f3b1d98b1fde124c6362c2e23563c03086a507bdc0eb0e4944f2050787f96967c4cba6f4605e4adcdb200d0c0fded6cc2bcda7ea7720d270e1fd6f33525 SHA512 a588a09ad3481522b44097b3c5e51211d5fc918a6733f3b6f1b1cd7994523894917fa737de944c235d45bfb9b57def205ce645ff1ac62ef7d6c3f3c51d387556
diff --git a/www-client/firefox/firefox-78.12.0.ebuild b/www-client/firefox/firefox-78.12.0.ebuild
new file mode 100644
index 000000000000..3e0e8d7fc1ea
--- /dev/null
+++ b/www-client/firefox/firefox-78.12.0.ebuild
@@ -0,0 +1,1187 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-78esr-patches-15.tar.xz"
+
+LLVM_MAX_SLOT=12
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm 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="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="0/esr$(ver_cut 1)"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate
+ hardened hwaccel jack lto +openh264 pgo pulseaudio screencast selinux
+ +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+ +system-libvpx +system-webp wayland wifi"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ screencast? ( wayland )
+ wifi? ( dbus )"
+
+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:12
+ sys-devel/llvm:12
+ clang? (
+ =sys-devel/lld-12*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] )
+ )
+ )
+ (
+ 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] )
+ )
+ )
+ )
+ 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
+ )
+ screencast? ( media-video/pipewire:0/0.3 )
+ 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
+ einfo "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
+ einfo "=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
+ einfo "=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=(
+ ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy
+ da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu
+ fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM
+ ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my
+ nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru
+ si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi
+ xh 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!"
+
+ # temp fix for https://bugs.gentoo.org/768543
+ # we can assume that rust 1.{49,50}.0 always uses llvm 11
+ local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
+ [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
+ [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
+
+ if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
+ local version_llvm_rust="11"
+ else
+ 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!"
+ fi
+
+ 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
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+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
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_src_prepare
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang && ! 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
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+
+ # 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-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent 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
+
+ mozconfig_use_enable geckodriver
+
+ 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 screencast pipewire
+
+ 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
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ 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 BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if 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}/browser/defaults/preferences"
+ 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
+
+ # 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
+
+ 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 geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-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 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 show_normandy_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 70 ; then
+ # Tell user only once about our DoH default
+ show_doh_information=yes
+ fi
+
+ if ver_test "${replacing_version}" -lt 74.0-r2 ; then
+ # Tell user only once about our Normandy default
+ show_normandy_information=yes
+ fi
+ done
+ 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
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+}
diff --git a/www-client/firefox/firefox-90.0.ebuild b/www-client/firefox/firefox-90.0.ebuild
new file mode 100644
index 000000000000..b2acecd2054c
--- /dev/null
+++ b/www-client/firefox/firefox-90.0.ebuild
@@ -0,0 +1,1182 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-90-patches-01.tar.xz"
+
+LLVM_MAX_SLOT=12
+
+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 linux-info \
+ 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="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+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 geckodriver +gmp-autoupdate
+ hardened hwaccel jack lto +openh264 pgo pulseaudio screencast sndio selinux
+ +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+ +system-libvpx +system-webp wayland wifi"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ screencast? ( wayland )"
+
+BDEPEND="${PYTHON_DEPS}
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.19.0
+ >=net-libs/nodejs-10.23.1
+ virtual/pkgconfig
+ >=virtual/rust-1.47.0
+ || (
+ (
+ sys-devel/clang:12
+ sys-devel/llvm:12
+ clang? (
+ =sys-devel/lld-12*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] )
+ )
+ )
+ (
+ 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] )
+ )
+ )
+ )
+ amd64? ( >=dev-lang/nasm-2.13 )
+ x86? ( >=dev-lang/nasm-2.13 )"
+
+CDEPEND="
+ >=dev-libs/nss-3.66
+ >=dev-libs/nspr-4.29
+ dev-libs/atk
+ dev-libs/expat
+ >=x11-libs/cairo-1.10[X]
+ >=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
+ )
+ screencast? ( media-video/pipewire:0/0.3 )
+ system-av1? (
+ >=media-libs/dav1d-0.8.1:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.7.4: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 )
+ sndio? ( media-sound/sndio )"
+
+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
+ einfo "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
+ einfo "=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
+ einfo "=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=(
+ ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy
+ da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu
+ fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM
+ ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my
+ nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru
+ si sk sl son sq sr sv-SE szl ta te th tl tr trs uk ur uz vi
+ xh 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!"
+
+ # temp fix for https://bugs.gentoo.org/768543
+ # we can assume that rust 1.{49,50}.0 always uses llvm 11
+ local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
+ [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
+ [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
+
+ if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
+ local version_llvm_rust="11"
+ else
+ 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!"
+ fi
+
+ 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
+
+ if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \
+ && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then
+ # bug 792705
+ eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)."
+ die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}."
+ 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
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+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
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_src_prepare
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang && ! 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
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+
+ # 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-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent 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
+
+ mozconfig_use_enable geckodriver
+
+ 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 sndio
+
+ 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
+ # 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
+ 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
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ 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
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if 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}/browser/defaults/preferences"
+ 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
+
+ # 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
+
+ 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 geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-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 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 show_normandy_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 70 ; then
+ # Tell user only once about our DoH default
+ show_doh_information=yes
+ fi
+
+ if ver_test "${replacing_version}" -lt 74.0-r2 ; then
+ # Tell user only once about our Normandy default
+ show_normandy_information=yes
+ fi
+ done
+ 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
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+}