commit:     f1795f24a487a88fdaf10781a350657c54e0bf22
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  9 19:09:05 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon Nov  9 19:09:05 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1795f24

www-client/firefox: bump to v78.4.1

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

 www-client/firefox/Manifest              |   96 +++
 www-client/firefox/firefox-78.4.1.ebuild | 1120 ++++++++++++++++++++++++++++++
 2 files changed, 1216 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index fe6b51c3bb1..5559834a45d 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -94,6 +94,102 @@ DIST firefox-78.4.0esr-xh.xpi 458895 BLAKE2B 
d454fd2b7395a9fd549d0991bb292873af1
 DIST firefox-78.4.0esr-zh-CN.xpi 600179 BLAKE2B 
a03decf631d6c480990884462674921504439ac99826b512867af13a7ab7420d26b2d3ccc47ad17b33fefec79283f18dbd2a9c09827d64ad252327c2a6626652
 SHA512 
80f5d7763924122508b0bbd854acfbc6990781cdd4a9f82f04297d47b3d3bc8eb41544146318e3aadce96229ae6626da888b6ada214cfde20970831536d93e84
 DIST firefox-78.4.0esr-zh-TW.xpi 599271 BLAKE2B 
77d79eb6a564779f9225de067745c91763941953d0cc03dff9160eaf10a8711afba64155c373942193cd11db6c395c578ddafe3762506a30f4046ccfc8c591c4
 SHA512 
82a916f480bf7d69354c56e8d967f1e95b0b37b32d0d2c642567e6d03663f3015f0e2c70a602e502b11996ca5cdd72859aaf7b95ffb13d64890315894cbca6ac
 DIST firefox-78.4.0esr.source.tar.xz 335094656 BLAKE2B 
6c3e85353b52465e00393bed14dc067cf1663ce1d7d737de1d51ec6c747c465f998600ed5a03b1a5b116a65054f1addb31a23e8e0d8364a2763e3dab693d016b
 SHA512 
d9de975e9acf7dab6186db877fe2df87a0e9e3c016e884473ecb188025a31032b1fe7f202598285970ed7a48268c7f3e265657708725da4eb7846db85a036246
+DIST firefox-78.4.1esr-ach.xpi 500672 BLAKE2B 
c9241f614ffc831373b7f83da35fc02268e0b1a9eeccb541d486c52e254f4efeb48e2bdfc2382c0b085b6183893c362510a04e85568cc8e36d5ab13594709e48
 SHA512 
8d8b0d7515dcadf7453e1a439745be7e7a5415d6181928d810f1d03768768f6531e02a4ea27edcd29a9f2e2c9c0a15d64814342267c11f7f8b7272db52d7a62a
+DIST firefox-78.4.1esr-af.xpi 444081 BLAKE2B 
6cd3f018c3795e6b1897b83f96cc1def628ddbb576aacc32a8c8436fa797f42370a1fb4863960d02a970d79b4ff711c9f2ad5179a503c95a2201b5cfd56beb5f
 SHA512 
364952d6b25f598512d9fe668ad193800401c5338c4ce0ffb2f23fcebf9456459f513ba516a180a93388ad44766b627a08016abeb9ded7a025bc623f1a1bd3f7
+DIST firefox-78.4.1esr-an.xpi 511464 BLAKE2B 
7b1b315af4fca8d9e859e4231fe549c3d24df35c7e3f94ccdf262d49b0e1446efdb24c99ccce141804ddd1da980c19ff7956b8220affdc29539b5aa384b2b58c
 SHA512 
7695a8fda0179eaf1fc8b7a7d0c819a7576d079a85fd58b825259bf8131469c3b9a131c933ba2548cbeeac1f22762c4ebda323760375dbc12f63e81fd73ffa24
+DIST firefox-78.4.1esr-ar.xpi 588701 BLAKE2B 
88ea4918685e0388cc7c2dd3d07a607d3ab08102b2249df7d53074cf318d9d5680574f13b0656dfd71c612d90d1fd0b9ea5fa06b6673add084779cdffa4b5692
 SHA512 
e4899a7f5948b31586fa5508b948a5129975bbefc2c781cce98c4aaec57f23e5635f6a9fd7adc76a6881eb8d1c2ccbb12f3fbf8df21a4e02cc02521147cdb31a
+DIST firefox-78.4.1esr-ast.xpi 500542 BLAKE2B 
3fdd654e4ad837ee295b0f9e7cea41e6d4dd62e7ebe148de679b63a8837b229f0f87fd3cc47be7eb47feb5dec9e9ce9a6ec00dde95ca3f00fc31cf7e68cb77b0
 SHA512 
7186711912266f74fe662b626070ea7348d9649a15297c05c7e5ee9c25874b0b2cbade7a9652460516cd66220e2bab7831bbc3c1e73dd1f182ae9534c5de001c
+DIST firefox-78.4.1esr-az.xpi 537586 BLAKE2B 
b68d597c7b963bf3e41c4e59217e561f4ea1f8534524f73e96dc88c183a6093556eeac975b9de449389d1d8c6d97d140b2b01810f802d14b665f2eecc6b856e3
 SHA512 
d9d87cf1833c5a7463163a3160ec8007ac9413825a97e22117bcf445d9db41a7d21b592704579d849747922f487246bcd7a79188f2527543b8dd3bc5d1855a78
+DIST firefox-78.4.1esr-be.xpi 647666 BLAKE2B 
dcc2139a545077117528b9b30a9ff58a1a92f2711df260460ad06d457f481a2549a810e6c358ff6ab1902a39eda0160a22d3c45d5ea4b0671a8048c9d36d0e1f
 SHA512 
b95744ac5d8660e13a9b71fab70ae7e9b324ecc6b6ad740685cf3c35ac9f933f3cf43aa3463b9c1151ec5666cd6e84dd3d9a37ed3444b48530aeb108a8600487
+DIST firefox-78.4.1esr-bg.xpi 608535 BLAKE2B 
2c176fd469dc29c9879b33a3d09356b05d51a7849677c15be361acd03197e9f529a9096f03b79d58e4d0feafd38746aa8ce5d1c812dc2f3069aaccee48b7291b
 SHA512 
9592e308903d57b8c1a42eb9843f3dce509ca57d61cae3d474de2eace9f5a70c6a7eb022c27dcd4fa216eaae2c05a3976470a5a5acd3ce2f09e63e5a29a967ec
+DIST firefox-78.4.1esr-bn.xpi 634045 BLAKE2B 
5f40707f16621cf639fddeeba14c4b60d096010359e30246cfc1f195e3c498365c95733ddda2881d21b590164bf6a3bbca6a3c8a757ae2788404e7c0312ae346
 SHA512 
f8192c16116d9faac846a81284f02dbe01803da0b04fb73267f1cb4156bd97e580abb0021bcc4c1e6ec06559a48251f7dbcdfea925c864047aaa7449f5baeb7b
+DIST firefox-78.4.1esr-br.xpi 551260 BLAKE2B 
5335d48cde3fb04e354c12d7bea0e25e756b027943c5014da754ffc8182625dc95de3e2083b5d8822d70fd96e5bc4a51e01dbb219036990170fb0320e4ddaede
 SHA512 
b63f8c1fc1b425a77b34668f8ecbfeb20007146065f8e1fdfd1bf860bc81d456f1a6008da9f7d51bcb329cbfce3bfc8046e73ed8c906b40c154e66c965068815
+DIST firefox-78.4.1esr-bs.xpi 506394 BLAKE2B 
376b4bdf8c817799c4e80365a9eb45bd66d5dcf93970d9fc00ff4bb9f30b00319c24f0f27626c7e38d3440e58adc3338bd448846fd16bb88b8316c93fb9102d5
 SHA512 
5f57f316da4d9709643f0d2b14f8138a6279ae5551a30e676cd0c68eac0990ebbbc0eeb593213fc841e3a175cda0835c167e764dba32ca43e165e09be8ffe997
+DIST firefox-78.4.1esr-ca-valencia.xpi 558392 BLAKE2B 
3234e79bd3872f800b846ef92801bf087f6f7ffeb804d66c3086423fe0fc475c49f25cd451dca1ab0e5fc964ba1a475d47f26072d105ea5d493304174ae90a13
 SHA512 
f7c11040a97d8e859bfbeb804ac8aa7b519fa8175fa6a55cd35d54c19fad9451a63914de9911540e1b966882fac340e7995e7b8d57263af1d62cacd1d36810b9
+DIST firefox-78.4.1esr-ca.xpi 552881 BLAKE2B 
b6db49780f674ec6ffb40b741047646f5e4c18047a26524964f1d014845d748124edea84beab1f320719ed66cca05d21ce8bb2d62aae2bdd295a574a0ebcd005
 SHA512 
bb67676c9360e240ecdcbb7a0b5a962325988be960ce1c841fc87df11254f5cb2a7bdc10d7403efa859408cde14168fd728b65a5ba931007fb45e305b7903bfb
+DIST firefox-78.4.1esr-cak.xpi 584929 BLAKE2B 
8818df9c001fa355b87987109bdd3d93e71a503670d0da1bb2b5941a2df016b603231707835363cb1c1bdb7baa2e89ee9332e0129de8cd50d142f67d21e800db
 SHA512 
6e95c249e17348a4a3b2a3b6a2d7018078d85358ed8d54fe9fa598caa973be73ecf0339d95e8f325823a64eecf7260b0d002aa8735c439094ed0a103ed3d1ce7
+DIST firefox-78.4.1esr-cs.xpi 585533 BLAKE2B 
c284d73cb99ed4d7b48f559cba78a898e1e2ede7271819995b2c1c62e76742d45a9c13b543fe903e63e2dfc742a11f9b6c8ad6d22466c5c065e00cd1a788a376
 SHA512 
a6df083c9a9624257f6ac6ab148ca7cdf170b8ec69348a3064f17c9e33407c01a74bb9df70ad6dfb4c94b262f6e79cd03c177de521b6e7e36a78434fc9e20c27
+DIST firefox-78.4.1esr-cy.xpi 563226 BLAKE2B 
5a6de4b94e499850f2da37d1d59dd0e4770f1be8323bed711589e04098cd0e3ec815eb4faaa10bd393f5be5f72812a257b4e1f941826502d8b41fbc1f1ef05ad
 SHA512 
03e13ad7d4df5fc83e57482f14fac81717293fde34adab5178ae47a344e700a41968d6131eb5443c1d7b2a99ef11e2b934eb331eeb01318251b735f81146a749
+DIST firefox-78.4.1esr-da.xpi 552321 BLAKE2B 
2121b9bad5eae61055786ef2e52746fe1903cfbee181a5821eab70ff64b664acfd6ec7d366a924f97cef88ee260a4f9531592bc0b4a1d54b23e8fb06c415478b
 SHA512 
16a13a0a956572dee06723915c6f26d191669d7a909af392d0d546507f9bbeb1700cbd123bed19932e1d2653523bae51ad7b1705d911d35c087636a2718c9cbc
+DIST firefox-78.4.1esr-de.xpi 576945 BLAKE2B 
5fa54552e9d803c558f908dd37bcabe4d4c4edbf0986b3cab6345ce27d9a7bbdbf8f19a149720e6bc36bdfeceae996aa28070be6df284297b7a38a9b16912f4a
 SHA512 
e904444aa40eb5a9601c1ca4d8d0617c51d1128b5a39ae7458d03a7942fa7c1e701b87b5b7e4fc732b6d9df26c33a7f790103e92b3d1cdf7feab03ba9215c02e
+DIST firefox-78.4.1esr-dsb.xpi 589037 BLAKE2B 
5091c78a01ed6a19f43c222d7c6cd802e64de73b31abcabee8900ee56de1a9e52a44d3bbeddc1d132faf7e0a9702e5420c1fffd403a7b54f4a994c008b104ff7
 SHA512 
c22dd4e9309ce58e0246d991e1fe50b97d03b472b921d92fcc949ed6d7392121983b921f6a2dfde46dd3943d259247a8ae4f0a9b8cf1dd53fb6a943f6a5598fe
+DIST firefox-78.4.1esr-el.xpi 665908 BLAKE2B 
0fda612ed26a274a965c7860cf3fd4c7cf1a8654d0b6ed6cbd23ab2d00114db4a317196ea6ae1ad142efbba2f214919b1f9f9107f7a5f9690057324a96424766
 SHA512 
f562acffeb90d25dca6f919adc20b963f71e9fe0a3a9797424449576cb5b312d683ff346e436d4b47bedb9a5a4d6258a71a6ce254df97a77ddaea464468540e1
+DIST firefox-78.4.1esr-en-CA.xpi 531410 BLAKE2B 
6b07aab590dacb9908b9a5c92565a18f55cabc4d0caf5734cdf19c958ff88577a53ab83fbaad6b8f4824b520c81c8300e618a62ea955128e3a8be62c45672e65
 SHA512 
32c8048abdf3987901c841a6302cc762b11dc52a78fc6cf6438dc94824b3ffda70bd513efe361d8444ff40ab3dff551fbe7f7498493044c9d66cfb4d81cfd436
+DIST firefox-78.4.1esr-en-GB.xpi 531212 BLAKE2B 
2a04af91dde6bc48a86469aa568ad6b01734753722726332ff893f59f1f128317b3efedc956c2c1332ce9134e254619c860ccaadc0adc2d6dd377e3b771c22f6
 SHA512 
df42bbd84501104e8b17a43764eed92f80f702f377b9af74cdbd22eedddb88de37451bc48f6df6d9977bee25330eafd2a1c534cdd75aea93d369e4f15576f42d
+DIST firefox-78.4.1esr-eo.xpi 558622 BLAKE2B 
47cf9719de3f37c3a7a7172d618257465059305ec7bf51fb3cfe26fcf5f6818fbe9de913e00c237fd3a645cffae967d366e25e3fc502a9a54e9f1011c3acf3f8
 SHA512 
6de0a606e7e4867ccd02044c91615fce7463d057803cfd5d9f61606c7e09e3b75951d63c297589ff1b8f59bfdc751939a4947ea563f64ca7a06be9a13727d274
+DIST firefox-78.4.1esr-es-AR.xpi 568392 BLAKE2B 
7dd05402d5278e970979b17fb4c859fc9991953858e019d253d9900071b157e5ecd3210045162cd9446272413612ddf25ed78354433c70cf43e2959a34037597
 SHA512 
c79235b5a65ab156094f4a850f1cf96fa6c9245a0b6df354a28d01e7b62e699ba38b0c34a9312315107cf9c15388322b3224531801b911ac612a7ac693221fee
+DIST firefox-78.4.1esr-es-CL.xpi 567585 BLAKE2B 
b1459a6141915988f1ad65d6f8799c1f771d6453fdd1c5488635e7607ad9bf1f92cd60115cf0c79169015e4c202a94a33ff0f65cab838a87914faac04d00d076
 SHA512 
0ad80d786921e26a4437a95b9cd8d315a01178a315df0c0837a2da18b5eee3d198fe78598400fbf3ad77fa30d3129512631946c192632ed8fd72025ddb477c5b
+DIST firefox-78.4.1esr-es-ES.xpi 551505 BLAKE2B 
349b33831d7d1349f8b229f39eb6412ec903b01de7444106d637250e8569b2d7b8b9ec93fc950875407471f8cc9e882649723e6e0c939b1cf3c5417858b1d8ef
 SHA512 
e282ac35e9e47431ba975ea303f7678b89a6ead3b1276e7c0c6741af9a493f98e5dfcbcb4a1d9b9c00db7e88ecd652e5ee6e3acc36a91e374773193976062560
+DIST firefox-78.4.1esr-es-MX.xpi 569780 BLAKE2B 
a9b2c9d4130156f44697ee3c222ff71d7a368484da26efb296834a3af11504f1338a008e80857257590de2d97f08fcc373870c367d781a64b6fb37ac063cefdd
 SHA512 
f7ca995a7220979b9da10d49e48170bc17c8ba9f3e086b82a03665386497bf75f103273db049d574f8422360f6b1a09e8fd3c5f2a616c23e4b19fb5156a2d6f3
+DIST firefox-78.4.1esr-et.xpi 535626 BLAKE2B 
a9be6b4162ff1d73ef03ec4e1b16b534d9e57bbacc15afbfb5c39a0d85596dacbfb2a8ad25632c4e66e26869767b63e13c2eddc1856e52d0faecb4416192851f
 SHA512 
6e015658dbe065198c42b24a3651367f8f43b4fa92f3e3433c9f5ec6f8ec3925b071fdefe2f888f14f6130f4e804e3830aff89f3a290627cc89bbdc6ee915890
+DIST firefox-78.4.1esr-eu.xpi 556809 BLAKE2B 
cd6d5c48e20f01bfa1376f56c85faab0c12832dc66dfb919f677e2fc80dba9d0a5e1bf87ce961839c0633fd6c7a64afbfef1347188065e07e9abb8cd4772aec0
 SHA512 
a77472aabe841dfd0ac6356e4566812a8c16ca173a98f4ab6fc53618ccc4f645af9c651e641d4ef604dafbdaa275a45f21ce42b1146d4b8f46109ce3876890eb
+DIST firefox-78.4.1esr-fa.xpi 593501 BLAKE2B 
d697514267f5aa647e813eed42b182228535be17a393c80556b1cdd7f6be8c3cdee2918596011ed1290c60970b1cabf2e666472e288d0dfed41e01000b9e6a2c
 SHA512 
fe9ea5c9dedfb848d83ad0af7b1a0474bd0a90308961c89a699b45a139c1c536de80543a2ade238fef988eeb7dc74ce0071d37b846247afae1abf0ff20a31954
+DIST firefox-78.4.1esr-ff.xpi 531575 BLAKE2B 
458a075c8fc2fab5b71e271553d1c25f770ddd81b4fb8983eb00941e126108e5873765c3cc23d76b8895fad7c796305cac0b6b4256b45be40e71acccbc1a559d
 SHA512 
3ed6a88a30dd7f39118a068e39b9e18804b4d168ebf567b7978c1899aeeb7e1b6cac2b6c9c26987b33e9c583bd8e09bced2ce064be832b35e12e832dcaf88921
+DIST firefox-78.4.1esr-fi.xpi 554034 BLAKE2B 
5bd76fb180b3bdb86bbbb219c6587232a1391136c8d19b5d74d077f30802c923d795c2058b8ce24d664661a071f81d759fffc947457f4bcc9bb6b371234447e2
 SHA512 
2f1131876df3a7a01100327863132955efd13329e1b4adb282613d825e0376e6f968151a32991d278118802df5627cf4a09bf9aed6ba7e9d0e131ef1c92606a9
+DIST firefox-78.4.1esr-fr.xpi 580678 BLAKE2B 
0efe76a896cb580e12c3d6e18620efe7fd56031d03c3129c75b9f177819999a3c1eb6acfafbae1c7d689892309836467b6f323f3b56f5a2e3955eefa11d2b5f2
 SHA512 
2e05f021cb58fd52d880e6fd21f23673c22b6f6179ab6f386336c72a43880ab0d349d4ba28e5647800e86d715b0367ae4e041a8ac5906b8a2207d7fd3442847c
+DIST firefox-78.4.1esr-fy-NL.xpi 565453 BLAKE2B 
090243d8b8cb2206a0cf4344152645c34f00071031abaec1a8fca44a0cc3beae46cc49082dd6fd675942d745146e24576fa9c91a83a0444751e29482641bb356
 SHA512 
6eccac436dc7ba2fcaa2624740ce25324ea428f4c2c089dc72fd3a00a37984d9e50025753590ddb1004af3330a24ff154bb80a3fb97c4535fce65900fb8b2743
+DIST firefox-78.4.1esr-ga-IE.xpi 514578 BLAKE2B 
31b04df297c55f7e1a16063ebc47adb9408272d0aab60a6a9ec6180c6997a74577bf6d38e7c8f3d09cdb2d556015ce746a68579e6c8179400445cbe91767135a
 SHA512 
ba6bd1fe486df9c5d94ac7c94da4a9a08e3a33d10e1c3b713099b585841a151614b47707b5971440f7864b1be7c342f8d9e874e61f68a570c0b144ab88e242bb
+DIST firefox-78.4.1esr-gd.xpi 544418 BLAKE2B 
d3d84cfe0419c01996f1452b7e2ae56e3d91dc1a806a367edc08efd9e76bbc3fe4f9654fa62fbe71a6d680d1db5ada0cc2370493705ee88996055f4c7563fb69
 SHA512 
380ec39988515ab2e54d8e26d8864dc76af2bcea8d130ec893aea9aad5cd1a5942d962c558723bfcd50b3f3df879c0e7765861fd97c4ca6e08af6128a3c6c38f
+DIST firefox-78.4.1esr-gl.xpi 508275 BLAKE2B 
ebf161c32934bd585606559543d2155f5f742ef3cdc03dad2602d9a874d7f01e01609695ebe18d9c5d0893ce45eafb1278d24c3efad3af781389da8733295fb2
 SHA512 
c03cd177710c1f051bf125d8b93898ac5528edc4cba4d830ffecfaf877a33e53c5f71a0bd75616b6a0f12d2c88d8caf7e6b415e0a5d0ffdf8f3e0497d0e0e536
+DIST firefox-78.4.1esr-gn.xpi 582152 BLAKE2B 
f0bf7e6d3743d009186fc5f99c0acb6cac788c4776ec21ffad5ae06089778273a769f5ce151cec5799507174d6f1458a874f08826e0e01d6d921b829d352942a
 SHA512 
30cef51faf477107b5dcce8b06bf7263e5f7cd0f5a0b2beac3fd3294c57d087649ce2c664439dd7f2325568dd9bce89a606a767bbffa1e955e19d70d06fa3b35
+DIST firefox-78.4.1esr-gu-IN.xpi 602913 BLAKE2B 
c4b45c46eaf31b456a97c75b8b48b07ecdbd1c444806c8a8d7fb4c114f4cbba5390882127e654033582474b3dac2b7489175e13481cf32851dfd2f6390926279
 SHA512 
adc1d3ab611405a89883bc0aaa09149d06649b119f494ad92913a841eb5a07f36d8612f43c59409b272b960ff3abb2a4c2a4f8e3e1e7bf199e59be3651085d41
+DIST firefox-78.4.1esr-he.xpi 582420 BLAKE2B 
542889b7cea65b50e9b5a57c55bfab8e5feec504cc53f0ceb6d008cb4eb25308ffc6b530595bdc4b190e4abc04814d9a420c65074cdbdfb1aa2b292d1a84f326
 SHA512 
8c162958853d2b1063c0d8621da5c305bdd5edc471744094e6330f29da14957ff707a8145d2da69acd1ae754c58062737d383870a3b0750d503adbdf85ca663e
+DIST firefox-78.4.1esr-hi-IN.xpi 622433 BLAKE2B 
4c5fe16c4aded7867c6055bcb26a62884673a61758f20d28c13e0ef6875db355e91d61c747880dd8ecce1b16c600d933462756aaddf2edf81a0d7aa282d1b473
 SHA512 
02c33dcff2a35e4d6af59bb5ed80b072230d3dbe177ff0347b8accdf3edfcefb01d6553869b6e6abcbaec49bbd80866069e02e9349aa6c951ce82c7cf7049180
+DIST firefox-78.4.1esr-hr.xpi 560778 BLAKE2B 
c6298ac23aa9e8b15a4272eb6b854a7851b620fe0261ff7a9ee797fdd272c2f20ae80129a2c4d144523fb1b5141246ed8687c5edcecb0f49f679e6bf9338ad07
 SHA512 
9d5f14274e8ed7e6b9cd8f1dce91b0dadb1a191b8dd5b00ab9628118edeb97a64420707e9e8682761e6bc75f89180e9f29c1275f639d07cbf59cc1720ab26c55
+DIST firefox-78.4.1esr-hsb.xpi 585292 BLAKE2B 
4d1be9e68adb2bf6e308340d7b65acad872a54cd5786fa928720ce8b10a5bb4bec7ac1a5e1932f55e3638a82979064d612460b375d2b7b02c8470bd5e6ab678b
 SHA512 
a36566bd7c9f6f95934729e63b13695b739b1797f387ae663dcb57c96ef84cc849f122118b77185ccaad59fe2540cca654f75835e0237f647787894c56381ef7
+DIST firefox-78.4.1esr-hu.xpi 588750 BLAKE2B 
d87921414903174c60c117a1659710806e629508a72b7f62f0d1990d38d21dd27e2a2cc2424545d182bcf2dd4ad1a3e558ce87ebd50bdeed1c6c89c25361d7cc
 SHA512 
0387368285ca81820bb08e6a321a2bc340068fd8666c5653cd01764c30f80d94dce52884f3ca55d84c7c460563c4d8c6a2a284aa65d9be56fa4b2e8779ce3cdb
+DIST firefox-78.4.1esr-hy-AM.xpi 649352 BLAKE2B 
25a94c0ac7b1f4cb5cee48cd68ce589e7b521ce107c3e4e7325bdd4092ed3748ad4847c9c3c3f3512f3795df20dfeea25ed3e128a444c39eeb26e837721f6322
 SHA512 
a627068e77a5df8dabfa22ceee6d0ea79ebf77ca306648473f55248e4b46a411675d5c6890fb7d5c4b22d13a5c0fdc08a77495190c62b64dd1e086a80e645a39
+DIST firefox-78.4.1esr-ia.xpi 554118 BLAKE2B 
faa0b3aa5fbd09d145144bc8da32de8383a2a5b043b9994d58c99a0667494938aa0ee23ac82ab7d4e56ecf1a0f9681afbfdcf5c21b2d0f636d4f43f6c1308036
 SHA512 
39e9d0399e28450e365a776b46123e44cb91cf8f12a02c1bcb6baeaccd690bec9a101f6c1598be39bc578727e36856f94f5b3f099b9cf52c91a3735ea7512173
+DIST firefox-78.4.1esr-id.xpi 551933 BLAKE2B 
6788f1de7b9abe8e9cad3f33c1664fdac4d6af00405b71384d0e7bef431ede46cacde073637556dd10db653358c1f0a649881d535d413a8a5773d6578da45f04
 SHA512 
bf148e14ba1d83c8a5998bad814875552e2a0f51b28a85a0bdd4cd22c1e5728b2637fdad68bc5ca967b4f40cfedeea3f95059ad2293aeb88a2c3d8de5ced4a66
+DIST firefox-78.4.1esr-is.xpi 527499 BLAKE2B 
70971fa713863e917d408afa73e8fe78f06811f59d5f73d0d8009f9a0396411de7d230079de70ade1c23595e5b1a81bd348e38f1ad633e88bfa71e11060a6536
 SHA512 
dddbc1119d9e539dc132319c6a46b43f0e8429aff9267f143e0ab0e592567faea0a4cbf99a7cda551f7ad69f9fef3c32a69673f62cef6af59056d98fb049fff9
+DIST firefox-78.4.1esr-it.xpi 455019 BLAKE2B 
9e8439feed885ac0098449a46582381343e0532558ca5b687e2c9e12af481446591acefd6094f388d34942c207c9e8cae5501835997dbadfa42633b081b8c04b
 SHA512 
ca9485eed28e9ac2f183a0ddb91792ae52777adf9d1b5949fd0f66ca7b0a1b193b2cc1e1495cd0418dfe12b217b487ad86844fdbb5db87eacac7231e83c2782d
+DIST firefox-78.4.1esr-ja.xpi 615914 BLAKE2B 
e92376ec1af11e8948196dc27c2d6b14f20617a219ce4d06d59f9f972ccfb92c54da281404ead4b095df17d6a5832c76f9a87821da66e8b6206d26750536b3b0
 SHA512 
8b17151041f6348e0b1dbee82b999b5951ef0c10bfbace350944f7729893d533242de4fecf8b972e0cb1468858561129e4459f1ed4cdc414532cba237c0e73aa
+DIST firefox-78.4.1esr-ka.xpi 612302 BLAKE2B 
75ce1e932eb5122c1d4f34c1064d0cc5bd0e6fa78446bfd6df3265d4fe025fa34cf1caa3e8e5a89e78cc2579d29115c8982c710cca53cfadc22f50e16b8962f8
 SHA512 
b62b56bcbffd58522f8b33800218e82b7df955c4507a75e3c627fe2e3ce57199eda0d229e8136dc2e3d366981910361162cf504af470aafb4afd0ee3e35cef87
+DIST firefox-78.4.1esr-kab.xpi 574002 BLAKE2B 
e50fa95bbf52c2061df20b0be619720df8f42bcd8752f5f31f3d3b81fb704d8bd0a9726229a441a42a3041a25c053b998d242495170475d1b5925b0bc9c94cb6
 SHA512 
d1401c32b5f9f03997df895e376eec0852c011c33245957346b86c1b803f70e11c23984b125ccba94a66a749b106d802a125ffbec2bdd9d414f506436bd273cd
+DIST firefox-78.4.1esr-kk.xpi 642145 BLAKE2B 
a79132a4648e3cf1aca395902aaf2ed5baba75713dd803866f2cbb4959bd0ae80b4b15164407a0ef775e7a7001c8da4fedc73d8a96abc3fc0ec9a9fdd86106c3
 SHA512 
fd32ebd540e49844307019be21c233867c56c3dc1750260a155f181429f613fc5067cd0f091921d18b869aa76e180f8b7ae19e22a820b92d03bcd6391e8641d3
+DIST firefox-78.4.1esr-km.xpi 567233 BLAKE2B 
09029e7efe722f7b667c554f77dc8dc60fc5c44621d23a7a6e2b7929bbd3330406bcb9e7b2f7d6c66074cc7fb4838724e60382e63a2acfc20864827c8c772de1
 SHA512 
a8f026609e3ed3020338fc7252fd74056ee973dddae8586aaa1719d86652f714d663c28674519f082949b945ee7591f956033263f48d7e6c8c3a3a93a5b962fb
+DIST firefox-78.4.1esr-kn.xpi 558808 BLAKE2B 
10677595ef47bf60be15b2d0503a21a1cb474a0c701d414573e0c77c2c152cf7235808698dfbe21f7556b607f3d7a9dbd9925acf0b8e229e9dbb392ed5bb0b42
 SHA512 
3ee47ff127f972d49e0d711af94c62424c44692ac253223f56936c0d5d9af892f618fdfbce66bdc04c0702331a2d4875aba967de1b015ab58cb00149b75e94a4
+DIST firefox-78.4.1esr-ko.xpi 602753 BLAKE2B 
b4aa8ef7a9556502f8a39ae3978c767a5e52db54b24324f164e1d87bc160005f0f0c82cfc5bf909a8f1664374dfa9a5a37ea8e12e3d92327932e51e3643e600b
 SHA512 
c96b5c5b2dc5645bb64859b25044b54acf486e57c8438fff0aca957ae94038cd38519f870a354165ed7a10951f17b7751b8423aa037eee9486de0e93f60f6abf
+DIST firefox-78.4.1esr-lij.xpi 526114 BLAKE2B 
05c9abb924d5bf9a998671c6809af4feda97e4f2d63b8d2cd48cdc72dfad20430d4a14d360210fd70f210017ccd35a31ba46069abc11eb0109aaa1f1b717159d
 SHA512 
8dd5f58a01d6df4bce0d84190eac0216ad95e83d8ff164ebc54047b442a144ce6c3a1cf5839aa873db786b4abbd76302972a9d485aafbca3c06e478f05be113a
+DIST firefox-78.4.1esr-lt.xpi 579642 BLAKE2B 
6f06ef47200975fcbd22b3d5a5e0ecbf0902fbd03a219b7b5d7fe90683e895bde53d5be9b07b72e4de1fe0bbe34a7e920cec5bb71bf828dac5e55d1acae1f99d
 SHA512 
05203ba171f0a7361057979c201e5545225a04327e22b765b92b380df0bd7c927b0c37f2f774ffbe59adc4ec6dc16abdb649e58098a3154fe279a2f883f7313a
+DIST firefox-78.4.1esr-lv.xpi 516868 BLAKE2B 
66b9f263b090c5d860775fb4442d67991a8502eb824150f6760f86088aa996ad0af2fbebcd637ea229dfa8c0b26a71ded685ec355bdd1712c3543e406724fc75
 SHA512 
559329307fc7245d30c440da0478ee20d0c00518f1250d71e7e1af80ab0031981f44aa05bcad11fe3a28dc05d2f388cb42b6351766f4ddeeca8799a8973c4515
+DIST firefox-78.4.1esr-mk.xpi 482937 BLAKE2B 
521dfe37decb61a7c60634a0e71e6a13fe34a8c7b787159b870301a3aeb766a5b893c869ca8c8b4e82ebec112198d93bb582507e9d19389191807cf0c7f59277
 SHA512 
87275f8ad46f652738e5fa1c3b4efa6efe4ff3f2131148687f5ce444ba1eb3ecd85f0c2f051ed0c796992e7de7be47d1aaa6ec972701e329c6e6d9ea6a1eef68
+DIST firefox-78.4.1esr-mr.xpi 599915 BLAKE2B 
a6da4dd16d1be25d87213499917a17aed537d1e465ae62a71a1ef562b21d19167ab6e523a2e023e0ccb88160de907072b0b23444b20f2cc7e20ac573fd3d6536
 SHA512 
5c610ef324536873abb40adcda6aa66d7bc5601e1662b057b9384c9cc919fbc61f2ac529c954121557de0b27e431aab1fe489ec6658876ebd732d22a88d3a8ad
+DIST firefox-78.4.1esr-ms.xpi 500956 BLAKE2B 
b6f3960ee621469bf55d7e5d5af933770e4656810105f987a0fa59b7d16f09bd97b974aac0d9edd8c68b36aeb1e01e7abe50f04d27fce8448b2868099d62ef8f
 SHA512 
46207a65b95ac692724156b1d73032a0e38719deab6824a74ab2fe071d694b36a2cbf7652e7f52bae613f76ecec402545ee88880f3542a188ca4b073a80bb8b8
+DIST firefox-78.4.1esr-my.xpi 557200 BLAKE2B 
e5084224461d51e72390852107b3a7e317e91e5bcbff464f33cbb4333945d0e8f6ef3d6479e55280d07d04b755c3297f53dbfdac05554399d4b61a924ea0c237
 SHA512 
8a2707a039970d1166a574c7f6270583695d9f3b6cda9362b8e9dad83ed6654a56193490e2b2b899aa11537d06f999e010af4b98594ebc639bb1a699c8f22585
+DIST firefox-78.4.1esr-nb-NO.xpi 549572 BLAKE2B 
f7436bf5008957fca7acf2fefe237ef71f251ac8c61793b7667f4250c740817d405315931162f2f2b088e15b75f04681e8bbe7f9debb95240d3af1bb7f945ba5
 SHA512 
00c21aac918a40df90ac2272a0e2a3fcd2a66b247016c9f7b83e760ba38a721c7d7ff3bbffed5d6ec712156f060d1b945a41ccfcc74f83df8b10c9f3d0d23aac
+DIST firefox-78.4.1esr-ne-NP.xpi 529239 BLAKE2B 
c6dbab4abd1683b46a096b167ae40569ec360fc59409291932952cebd4be08c8fffa05112de88a5c6f8a08265b6e643d117fb3f8eee0e4c7b4a1d37c63fe7a69
 SHA512 
cbc8f046489e5466c9a8cf92b93979b0b16b4f5847b449ab45da27dcf7ff6dfc00ca4d01cdceac5d8d310d0d01bef471341aef8c90579c1f7d03117370a031c5
+DIST firefox-78.4.1esr-nl.xpi 558801 BLAKE2B 
f88de8c29a136042d2fae92bfb52500ae61239ed0b63b83e1d75891fc7618870882917e125f67df71c318a3a38e914caec2d8c8584b6b06864bdc984b38ed629
 SHA512 
5e82d146f8275a45d286273c9a73dd4dc718712116a95dfe6462df3077ce90f157376e402cd7324b0a6c4bbc691cfe2770f667f7e27be071a272b27851b64776
+DIST firefox-78.4.1esr-nn-NO.xpi 552128 BLAKE2B 
578f5cfeb33f2a5a0e8252d235061a2ae80b498bac20c071c377882ca12efa94d59d463161941d905ea063540cd77068a925b35dcf505b35a5f6462b4ac192c2
 SHA512 
da22dac70eb3dc99c1c0656054bcc0d04011345808383f1de3ef465ac7968c9983cfb43fb07352789bf95cda728de76a283be68d9c0c537f2936694938d68674
+DIST firefox-78.4.1esr-oc.xpi 576264 BLAKE2B 
2108ff824f57caa063c7c5478ec74886d80a74aac6d67ca1e913de98e07f52f1d7befef747725ca283629854379708909a6a5353ad35d07f75febe28536c09d4
 SHA512 
5627311702aee4af706b50c1827940ad546ffed83ccaf39d361aac244c92e445603ce1ccdf89b432ebd2e1c53e775958b8d84243f89f1bf391280f423fa3deb6
+DIST firefox-78.4.1esr-pa-IN.xpi 606188 BLAKE2B 
700bb212a35dc7fdfe84673f9ba3b530d5c336f4c8df0c1431ce776c4fe588bdb3b824b2b71ce7350e21bc0f0db1dd693e7dd2e928c3a895f70e683556851fe9
 SHA512 
140019ef9d579a5f89a4079c3910741578a4f6f7e498c04b58028f06deed5d9dcefbe5c020f66248046e71e7343a35628636b0b85e63394d62667be21872eb38
+DIST firefox-78.4.1esr-pl.xpi 574914 BLAKE2B 
8f42d1e1a635dff79c06e661c30d1da1211bab6a6eecf4648e4d04ab34698f738db3fd0c3e7cccfba72b93ee3c44500b80140df97d03bc3f02e6c6237292de4c
 SHA512 
351d6558c482c4f84af73cc79898d8ceb80fdc069b6ce1189b4e8799f7131ccf1872612d9bd2206697c9543068beb643effd1277a466c774eb1dc2f84a91110e
+DIST firefox-78.4.1esr-pt-BR.xpi 558032 BLAKE2B 
a32dd4028345a8f760aef290db90552c8a37d3decd356cd519946f245f407a7a7b083ded110bd6ed22bf559aea2366cb88ab9938b41c10ba0753ad5e40285894
 SHA512 
10a97dae9d415af94794235ac88dd108a75a8b3138de1441f1043a0737144455d21ac69d822ba0af0f8112f8ed83d18b2b79b30cb32ea742d0ce2f493c7075b9
+DIST firefox-78.4.1esr-pt-PT.xpi 565633 BLAKE2B 
2681f5e7690ef790201f140b8b796f1349c20bacfb06be162408458e977a85ebfdece5c6daec9020f2aa5aebe5ee3e62cf705f477cd9edba81a462fb3b88991e
 SHA512 
7886d05eb4f23fbcf7371d916cf10f9a7b217b477fc4bcbe985a324a876c973298b31343670f9e016dc28c25b018f4e139f8ee305b181e63070330077278c79c
+DIST firefox-78.4.1esr-rm.xpi 557926 BLAKE2B 
2ccae2445e2c36401e88704416ff6b787dbd36f7e5f9513837831ee880aca5af7a6a067ca53dcd3c295fbe75fdd98e7cf04051e4ae67b33ecf2bf4d0127233aa
 SHA512 
5174c6c918de2c0b7c608023a4883cd0f22be65727abfc1bd19040fc1500a000527f2085c8f8b35b5f0f350e1be57d0584553ff3a803abf55dbd825df69fdd71
+DIST firefox-78.4.1esr-ro.xpi 569395 BLAKE2B 
e01a41b96dca3ac6788ba01725ccb63bb9e39f7e46239a6ed9a62f5fb9284cbf09330a8a3170b6c07acbc652825937bbbd63d8821c49e440c25af20dfc815630
 SHA512 
67a6dd482dddf5c015ad0db3c9f6b745b5602d9e3ebb140a327a64d5873741465c2860e0f658a3ca26f03f4841727823821174d0872343bb2519ccd5c2e71faa
+DIST firefox-78.4.1esr-ru.xpi 650695 BLAKE2B 
30dc61bc56a46ffbdb0a2f2e1723eb0caff215dc1b195e4dce9d138d1a52850172c15d11b876c0567dfe38c527c46c556fc42710f5dc50013764a45dd5be0fe7
 SHA512 
29b903fa8ce09d86b3517afece67f9ffb3f33c1bd0475eadf77340830788a89226934b0ab32cbb7bbef7f6efaf47bfc7b7f2097f89498f44763626bb0167b8ab
+DIST firefox-78.4.1esr-si.xpi 534194 BLAKE2B 
5bd69cd2399d20263525c6075e49cc492662e62435b3b04ddc7fc131543fce5b7b1d1f5c9fafc1098da8e0a7925fdc2320befc62c2616a905283fbe07707749c
 SHA512 
241fac5ddce9c098b47e61ae8a2dea0a975daa9032f9ecfa370d0a17268545d4dd55677c4d010f8ef9cfc68bece6e8d542492c403896390639c631adf814e0c3
+DIST firefox-78.4.1esr-sk.xpi 578525 BLAKE2B 
b2d74bbae306a00bb8446758c1ac40479837ea551552eede86bc08dcfb4023628b8fa7587eab28148744b2e2468ff73a63cfdbd137ce4f4e9407d55997f869db
 SHA512 
8c284d84867f09836e5582ace7c905e04a248d028c4ee3d2a3bfd2183e4969a7c453322a9829c35da69e9b860b2a0976cc4e6be77f2eeb90b631cb1c65677c6e
+DIST firefox-78.4.1esr-sl.xpi 563033 BLAKE2B 
fa032aac291bbc53c1067ae409a9dcb1f32c5512fc01b905fc3d80ee59fdeee51fe61602539665f2f0e9ec43c987fd7b900a3e1afac00b1f92c7b5ce6fa90202
 SHA512 
e9a121d239469bf09caefcf842618ceff37215bdb300b53f9f5fa2e181f44979410c55550c7a7f22a42fb0411dfeb1b71272c5cf9b4b41613e21f80eebc17099
+DIST firefox-78.4.1esr-son.xpi 454241 BLAKE2B 
f4ba354db7215759e2a61e551cb8af017cc4546308ac74af37c5397573f344f3d998fb28dadf8f778609cda74ad64b3a7944a696c63810eed772e58230507c1a
 SHA512 
d611fefeee4c561ca0c96112795b5f74543faa5eef748056f4b8e0cad778d79da6ff01589f4366dfa633777f12a696f3ae941cb961056179fe80f1558a9b825f
+DIST firefox-78.4.1esr-sq.xpi 580002 BLAKE2B 
004af64e23e7657098b1bb74b03fa3be3537976fe40ef8eee87cb298b129607d2f4f482eb4f352d89b1ce9e5d9fcc0ebd8172a821a225bdced49a0efc25f26b7
 SHA512 
442d805d372abe0e47a6204859e8bd91cab926a0b98a69930e4b6b9cc2905f49db39a035a4c8d8ecb6d85e3b5b72c92bd2522137f85edca6523343b2cf735f12
+DIST firefox-78.4.1esr-sr.xpi 604547 BLAKE2B 
68f37b7963a5580e2a52fece6c7bf07e7ee38a73d60a843c38813ce436a497d89026c00ae88213392d71861857473010fae64e56c6bdca658e9838100fcf7a56
 SHA512 
78bd9056e8ceb7bbdc02dec8549ca3060733c16356069346280c1bf82de368a9f96f1b0622f1f083e41bcf92a4385aeeca6e90cf6cad787c384b469ec7122343
+DIST firefox-78.4.1esr-sv-SE.xpi 561875 BLAKE2B 
8b54d8852ddca0440e4d552c0f8ee41496148d46bcf24e8b43eb99d44db960dd260e7a81fd7b1681b3a266f48813c2208be6620d079766d63b7f945b5fd87de8
 SHA512 
f4702b76f68d3de965ca6e3d95704a8fb3a4532f2340ed4bf55b62dd55523def679cdacc4a16eda3f7870e1a6afc5987a3a1bc135e3c0ff96c8e35c17f5c4973
+DIST firefox-78.4.1esr-ta.xpi 572349 BLAKE2B 
a06c31e58ab36244b9e214a206dde66804077f120e55d189d4aa8527b57d8df3aeb1a34d19bba8062c9bfb51956a4f5c07a3f60554151eb701cc280721704cf9
 SHA512 
3998ffd29d8f9bbb89496a5713d90babbca82124198579556df2433187ad6e302797e87b8c3570880bb8b0334d5f6da8a0d121b9be9255275e870ec3253b2d45
+DIST firefox-78.4.1esr-te.xpi 591657 BLAKE2B 
5bd309bc52a849cb7c0b40eba3ab534f1938c9113f9d32c25b2eb0ad5b9033ecfd90cea8608cdacd02101e779a44e7c1a0327bf7f3411411e559b651efddf022
 SHA512 
a58159ca7ac1887bbf8aa6eb63d7abad82c1a6fbd3ce5f1750115e49e1517edeca332b5d7210d2a4ffba7c736c6c1ec9afad4ee6da2178885a5dd7aef4ee127a
+DIST firefox-78.4.1esr-th.xpi 628308 BLAKE2B 
811a3cf9d98b04d71354648eca84f86c56e2112ff3020c7bf5f3c6024322381471d84a67b4ec61344b2f0ac26d9c57913354dd15cb66d315155c8038fc0367d7
 SHA512 
05b33bda2c08df0185728c79d3ad01ea8d2712ba3415e91defb780f94c250359eb5febd87b1ffa24fc192320c2dfb96c41e595dbe85defd8a2347ca079c5350e
+DIST firefox-78.4.1esr-tl.xpi 552298 BLAKE2B 
6b6d3599b3b5d5401443b881407f5c4cb3d379155cd74c8fdf6f80de7a353cedc6bac333a4f12c854f974cf7191bedb821bb2c1f73d360353c80467743398375
 SHA512 
92a4dd6a9572dbed34c85490db118ead8bf14338314c419d6fa5162319f4b44f23afa233fbc195e42efc350fbd901781311ae3bc6adc69a8bfc307a9e68c512a
+DIST firefox-78.4.1esr-tr.xpi 576356 BLAKE2B 
372a1ea56ef074d0c15739e6253210bcfe95a0272f32210f6cd9971ab5b6a760b43a7bd3ac1c873f3c5b0e31f1eed886c199132a7a0be34a5e9297921cb7e721
 SHA512 
82d1b0be39b196f3c55267d3b853c0f08483a8154ece667e665a9581480a7dc17767a643c0e2a0eb728ba8b05c78f26282170cfe54d53cf59ffb93aa5f16ea7a
+DIST firefox-78.4.1esr-trs.xpi 540197 BLAKE2B 
66e19b1d069987d75240cb57d0807c1651b92602913c826048cc4c452708291eeba4c5952f30c9a35a4fb1252d51e06079ba9667fad64f523447c3c369cf31e3
 SHA512 
d3e76a11fddb02238649428224dc998c5e140d96c4e54fc5777103857a46c8632d0f65b642e02cea21960d8aa5daded0e40e307f20d24badc15ff9fd8c672277
+DIST firefox-78.4.1esr-uk.xpi 646863 BLAKE2B 
3c7835a626d0533d69fed3bf47c3b27766ad8323997fee6779f115e064c9931564d99fdb5366c0bf20efd1db176e84cee291b0f52ba959f7dda970cede7edd40
 SHA512 
76f9ac565d288d15cf67179241d960ac1c655f3a04e75b0d08f3a6c1b9af9f19b41616ecda7bdc767a55d873b07c89d844d86257a714b9704afd25f832eb7c94
+DIST firefox-78.4.1esr-ur.xpi 608136 BLAKE2B 
019bf0b8e056081b1296c64657cbabb7c658d5473b780bedccd320e39993038f16bb430c82e311cd2d57f3c18f55d109a0029d134947c1b8807fa1da37610b43
 SHA512 
59838b8a76a1d80e54f629934dd5f8de1f6363ae222d44a1cbd1f8ebce4d9fca38f3992975b095a4339022a83701f5392853e13e08aa507340a1dcd387115f38
+DIST firefox-78.4.1esr-uz.xpi 521138 BLAKE2B 
ca55f4624df3f19646b919fb7c24edf3ae8a79850a490faa174c523601913838470c470caad0780ccfc05caebc42aea05f2972338c9c3277977aad660b97a5a7
 SHA512 
c4bce6f31ad0d5defc0addfde6917388c46637035bf9150334f57ecf174ecd5171fbb08bff71e5094604896fe829fbf99908577756233826b6855e7606269b7a
+DIST firefox-78.4.1esr-vi.xpi 596835 BLAKE2B 
85558c438c348c870b16c54d0aca7c8f6648463040c61298161a93e84cecd6f4302ffd851753b65d90a78ae10069d23683b11ebcb8b85e5f8c305192b495dc4f
 SHA512 
69d053eaf2294c8583dd79c55a8f72c4fb628eba0def6a5fe8806e7394cf4e26b467d98003b3a499ad784c3f7986463c1ad24eab1ec718e590d7e0e994255622
+DIST firefox-78.4.1esr-xh.xpi 458906 BLAKE2B 
f02bd178123b30d731233ce95582b28cd7bf6143ff2a0957115d5b04cfcf8dfbb92727093d38a74dbcece2fa71783de03415dc662dbf2f3af9b6119759cd0588
 SHA512 
77f1b40120dbb105ca5a6a9dbf35b97501d7ff56dcf7e6fcceac8fb4f6e553f36a3b06606f5e22cc0ef9520bef0d818aa28a87224d033f0f66805f38a97e57bd
+DIST firefox-78.4.1esr-zh-CN.xpi 600187 BLAKE2B 
51460ea46512ab017a2b645d304365fb860b196f88f6b8502632ac656c9cef60fbfcbdec1e72af3a538262023720da0d99176a0f3627db78d752a7817c9c451a
 SHA512 
13c4957e13160882fa07218dcd3f81a73e869a0d03af201a8f4293b6265302925e50de5a7ef11b510b158b921a02947fa82c6e075185028ae7a0b67e6d0aea90
+DIST firefox-78.4.1esr-zh-TW.xpi 599284 BLAKE2B 
b765121ce6abba620914bba3e6491c39df629bfd5478985986d7b42483aca7d5bcfc72f9df3ae9830a84434d8ac2ca13baa38ee88703140864e4bb139fb98402
 SHA512 
502e07a7a48bcce03cbb55fd619a4e4bb3a5c771f93571ca4a4514d16bdf28bc228de04509666a8d22bd2f870c5243c38408078493b1007ee943d3830dae44cf
+DIST firefox-78.4.1esr.source.tar.xz 334673424 BLAKE2B 
3ba8bf545c4c2b92914bf7f63b539ba61dc2ee6c14fb8995a6d75adb4bd11988f1d47d2c64639cbecf7a4b01b99085e63af4eb3afc7a27047f03048ffa9c2c2d
 SHA512 
287096ad67e86b307554475c3b5d1003a325d6d13987bfbec2ec79aa0f8004dce1614ab62585ba5cf153545618906ab640cd4657d5a910085afb3d8ceb46e8de
 DIST firefox-78esr-patches-04.tar.xz 171504 BLAKE2B 
d51e55c255d1f5cfa0c7c030b1ea50cb54951bed3bc21b21f5cb3b1e4b8b2ad406b3d12db2baabd4a90e3c88a38f187f277e7a4afe441ea6cf82c48f84bb0ac5
 SHA512 
6f00ec898fafb34d7c7e0ff2a6fb5c1cbf1205458845e14eb39c131125c5bf6b2418fea1050bb72449ec40e18fd775fc844437ce0290281d66961de40a53235a
 DIST firefox-82-patches-01.tar.xz 31208 BLAKE2B 
e36f2b27db38b5f2f2104c66d504aa8b495e261e0faef83c1a65c8d69face4296d4cfc122201c7f36dde1c3a401f71b75bbf22f3fc07d05e1fb1a5e21b459e66
 SHA512 
25b6ed1215f621f97480be1f7db97c6458527dbc8d92ec52968a6f6ba0ba9df14ec085440283064cd840057964b2d0570563497689b03c69ccd0635967e52790
 DIST firefox-82-patches-02.tar.xz 31444 BLAKE2B 
b73f8e43ea8d33eabbd9a96d9e12a163a5f4b06751f2db8c077f87beeee6fe022e5ad5ce534eaa1ec8500cc291313313a1986535aa1dbe1d4209d6abfe6bced2
 SHA512 
7ae99697d81afe2e612d4c7575382b26fe8970072f276e849880aaaa3982e0d8d64e460c2455601fc9727f85cdd1931e1c300cf4bd0ee344a5d23e34f4e78e2f

diff --git a/www-client/firefox/firefox-78.4.1.ebuild 
b/www-client/firefox/firefox-78.4.1.ebuild
new file mode 100644
index 00000000000..366747a47d1
--- /dev/null
+++ b/www-client/firefox/firefox-78.4.1.ebuild
@@ -0,0 +1,1120 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-78esr-patches-04.tar.xz"
+
+LLVM_MAX_SLOT=11
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=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 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="screencast? ( wayland )"
+
+BDEPEND="${PYTHON_DEPS}
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.14.3
+       >=net-libs/nodejs-10.19.0
+       virtual/pkgconfig
+       >=virtual/rust-1.41.0
+       || (
+               (
+                       sys-devel/clang:11
+                       sys-devel/llvm:11
+                       clang? (
+                               =sys-devel/lld-11*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-11*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:10
+                       sys-devel/llvm:10
+                       clang? (
+                               =sys-devel/lld-10*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-10*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:9
+                       sys-devel/llvm:9
+                       clang? (
+                               =sys-devel/lld-9*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-9*[profile] )
+                       )
+               )
+       )
+       lto? (
+               !clang? ( sys-devel/binutils[gold] )
+       )
+       amd64? ( >=dev-lang/yasm-1.1 )
+       x86? ( >=dev-lang/yasm-1.1 )
+       !system-av1? (
+               amd64? ( >=dev-lang/nasm-2.13 )
+               x86? ( >=dev-lang/nasm-2.13 )
+       )"
+
+CDEPEND="
+       >=dev-libs/nss-3.53.1
+       >=dev-libs/nspr-4.25
+       dev-libs/atk
+       dev-libs/expat
+       >=x11-libs/cairo-1.10[X]
+       >=x11-libs/gtk+-2.18:2
+       >=x11-libs/gtk+-3.4.0:3[X]
+       x11-libs/gdk-pixbuf
+       >=x11-libs/pango-1.22.0
+       >=media-libs/libpng-1.6.35:0=[apng]
+       >=media-libs/mesa-10.2:*
+       media-libs/fontconfig
+       >=media-libs/freetype-2.4.10
+       kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
+       virtual/freedesktop-icon-theme
+       >=x11-libs/pixman-0.19.2
+       >=dev-libs/glib-2.26:2
+       >=sys-libs/zlib-1.2.3
+       >=dev-libs/libffi-3.0.10:=
+       media-video/ffmpeg
+       x11-libs/libX11
+       x11-libs/libXcomposite
+       x11-libs/libXdamage
+       x11-libs/libXext
+       x11-libs/libXfixes
+       x11-libs/libXrender
+       x11-libs/libXt
+       dbus? (
+               sys-apps/dbus
+               dev-libs/dbus-glib
+       )
+       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
+               ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang ; then
+               if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+                       ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+                               ewarn 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               fi
+       fi
+
+       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       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="13G"
+               else
+                       CHECKREQS_DISK_BUILD="5G"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13G"
+               else
+                       CHECKREQS_DISK_BUILD="5G"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       use lto && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # sed-in toolchain prefix
+       sed -i \
+               -e "s/objdump/${CHOST}-objdump/" \
+               "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py 
\
+               || die "sed failed to set toolchain prefix"
+
+       sed -i \
+               -e 's/ccache_stats = None/return None/' \
+               "${S}"/python/mozbuild/mozbuild/controller/building.py \
+               || die "sed failed to disable ccache stats call"
+
+       einfo "Removing pre-built binaries ..."
+       find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) 
-print -delete || die
+
+       # Clearing checksums where we have applied patches
+       moz_clear_vendor_checksums target-lexicon-0.9.0
+
+       # Create build dir
+       BUILD_DIR="${WORKDIR}/${PN}_build"
+       mkdir -p "${BUILD_DIR}" || die
+
+       # Write API keys to disk
+       echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+
+       xdg_src_prepare
+}
+
+src_configure() {
+       # Show flags set at the beginning
+       einfo "Current CFLAGS:    ${CFLAGS}"
+       einfo "Current LDFLAGS:   ${LDFLAGS}"
+       einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+       local have_switched_compiler=
+       if use clang && ! tc-is-clang ; then
+               # Force clang
+               einfo "Enforcing the use of clang due to USE=clang ..."
+               have_switched_compiler=yes
+               AR=llvm-ar
+               CC=${CHOST}-clang
+               CXX=${CHOST}-clang++
+               NM=llvm-nm
+               RANLIB=llvm-ranlib
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               AR=gcc-ar
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+               NM=gcc-nm
+               RANLIB=gcc-ranlib
+       fi
+
+       if [[ -n "${have_switched_compiler}" ]] ; then
+               # Because we switched active compiler we have to ensure
+               # that no unsupported flags are set
+               strip-unsupported-flags
+       fi
+
+       # Ensure we use correct toolchain
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+       # Set MOZILLA_FIVE_HOME
+       export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+       # python/mach/mach/mixin/process.py fails to detect SHELL
+       export SHELL="${EPREFIX}/bin/bash"
+
+       # Set MOZCONFIG
+       export MOZCONFIG="${S}/.mozconfig"
+
+       # Initialize MOZCONFIG
+       mozconfig_add_options_ac '' --enable-application=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-location-service-api-keyfile="${S}/api-google.key" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-harfbuzz system-graphite2
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent system-libevent 
"${SYSROOT}${EPREFIX}/usr"
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+
+       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+       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
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif tc-ld-is-gold || use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       if ! use elibc_glibc ; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export MACH_USE_SYSTEM_PYTHON=1
+
+       # Disable notification when build system has finished
+       export MOZ_NOSPAM=1
+
+       # Build system requires xargs but is unable to find it
+       mozconfig_add_options_mk 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+       # Set build dir
+       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+       # Show flags we will use
+       einfo "Build CFLAGS:    ${CFLAGS}"
+       einfo "Build LDFLAGS:   ${LDFLAGS}"
+       einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+       # Handle EXTRA_CONF and show summary
+       local ac opt hash reason
+
+       # Apply EXTRA_ECONF entries to $MOZCONFIG
+       if [[ -n ${EXTRA_ECONF} ]] ; then
+               IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+               for opt in "${ac[@]}"; do
+                       mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+               done
+       fi
+
+       echo
+       echo "=========================================================="
+       echo "Building ${PF} with the following configuration"
+       grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+               [[ -z ${hash} || ${hash} == \# ]] \
+                       || die "error reading mozconfig: ${ac} ${opt} ${hash} 
${reason}"
+               printf "    %-30s  %s\n" "${opt}" "${reason:-mozilla.org 
default}"
+       done
+       echo "=========================================================="
+       echo
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       if use pgo ; then
+               virtx_cmd=virtx
+
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+       fi
+
+       local -x GDK_BACKEND=x11
+
+       ${virtx_cmd} ./mach build --verbose \
+               || die
+}
+
+src_install() {
+       # xpcshell is getting called during install
+       pax-mark m \
+               "${BUILD_DIR}"/dist/bin/xpcshell \
+               "${BUILD_DIR}"/dist/bin/firefox \
+               "${BUILD_DIR}"/dist/bin/plugin-container
+
+       DESTDIR="${D}" ./mach install || die
+
+       # Upstream cannot ship symlink but we can (bmo#658850)
+       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+       # Don't install llvm-symbolizer from sys-devel/llvm package
+       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+       fi
+
+       # Install policy (currently only used to disable application updates)
+       insinto "${MOZILLA_FIVE_HOME}/distribution"
+       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+       # Install system-wide preferences
+       local PREFS_DIR="${MOZILLA_FIVE_HOME}/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
+}

Reply via email to