commit:     acd5a3473a97ec2aa931d7902c4b3464870f4d4b
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  6 15:13:30 2021 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon Dec  6 15:27:51 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=acd5a347

www-client/firefox: bump to v91.4.0 ESR

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

 www-client/firefox/Manifest              |   99 +++
 www-client/firefox/firefox-91.4.0.ebuild | 1234 ++++++++++++++++++++++++++++++
 2 files changed, 1333 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 654271fd031e..84fb8b544780 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -193,7 +193,106 @@ DIST firefox-91.3.0esr-xh.xpi 435358 BLAKE2B 
96c7c7f452184145ef154126b6c2fe6216f
 DIST firefox-91.3.0esr-zh-CN.xpi 583248 BLAKE2B 
3caf831df6288ec5c1025f20c1834b6993fb5f50349d9b8715e6e020ebe5e1dcb0bf62592f800e03066cf1564a8bcfe0cddc8e90f72f6d7e3298e1ecc97c71b3
 SHA512 
95044ccbd6ef200deec8e4d3143a3989277fa309182248d8bf3941c25778841243f525410c391d49aee33a6bfc9d6d625ea45ce96ab7df9e2d70264ce1a3a438
 DIST firefox-91.3.0esr-zh-TW.xpi 583430 BLAKE2B 
848ba2ff85a16105153a1810594ec9c76f4376aed110a896cb2de21b8a98574ed6d8ef1b5b290a2c650cac072e4bc7420405263595225170d51682fd5a0b8fd3
 SHA512 
0d4ab413bda98207f76d4b8ff5f895dbe2e42e67856a93027de18175927e24f7b3d1eb4beb6c1902f2dbd6bdd4e6e3ac164a7a1061de77acd43331b1dbc1d68a
 DIST firefox-91.3.0esr.source.tar.xz 381117132 BLAKE2B 
316ac4c7e673eb1db88da9e7c1ea7eea6c3f6b6ca4d4066100c165512e52374c84f637aed1fd5037b126ce2cf51945a5a6276a4974f557ed1da7ffe1674135f2
 SHA512 
7cf6efd165acc134bf576715580c103a2fc10ab928ede4c18f69908c62a04eb0f60affa8ceafd5883b393c31b85cae6821d0ae063c9e78117456d475947deaa9
+DIST firefox-91.4.0esr-ach.xpi 451228 BLAKE2B 
525aac7e80d504b87a565f045f6ffefb5b8743d9f0606564d6c10dd2ba6ede526d451bd08bdf9ff4abea578f55cbf7dde1c0542ff8ac3640c3c8bda920d146fb
 SHA512 
42be3bdc43b561b2148fcc08be8c4645c6ec15ebc1d689489f922c31234df2a88fa1dd481b7d8122c822b8487e2d1cd4e7a546909000603cc1d056afa83ff5e5
+DIST firefox-91.4.0esr-af.xpi 425096 BLAKE2B 
8af222eee5d909eeaa76168a1601e59abf870e1d351b49495074c27eb12e1fe1160293aaa972633002a9e9bdae02a555e395f962de8fd9283ce86556ac73d6de
 SHA512 
1a82f635d36a646973b0f08b1746bd476283f6e807ac31ef9fef48e59130367c7e138ba92038f7f2778c8f4455f9d6726871bbb9d563495b68b0e3f72cf1bd02
+DIST firefox-91.4.0esr-an.xpi 497865 BLAKE2B 
c4903662ae08d04a5193f4355ab273d09b71fefe3ed69f93ee80b577ea76ca0ff1921f31c8d4de852569a41d6eef54ae039d6557437761fce42d5c7babc632b9
 SHA512 
35da11f247f7180e2c5e720a1989d57bf575c7c8844b231c38b598c0df166891b9fbc86360fe7865908eee7f4119c037664f74002093a056e601fc65634361cb
+DIST firefox-91.4.0esr-ar.xpi 557243 BLAKE2B 
e1f4dd28e26227ef345673ac6b69eccbb3083d619fe0ad691586f2c132912589552e3a2d463efae30ac109d3bcef7a2b94aba78b0dd89b4a1ddec9537adb2e14
 SHA512 
cc5e9e60cc65314fef7c6b001a773f8ae7763342ba2979606dc4ef3efeab2af5cfe0443c953dd0796a2cc4f5bcd4671a6223fb921559d455794ac3c2606751fd
+DIST firefox-91.4.0esr-ast.xpi 496964 BLAKE2B 
6cd56181f48260dc85982220d32599c5d99fc7607ee17cf607976d945b8fc04217e9bb5ed150db6e8b0d691c6d219f9adbe9e26fc52af8af106b1b635caec105
 SHA512 
619f8f5d96d325a068cd27589de9cf230be74b613d8cb983e4833cfc59641b5e716a3d7f1ea69027e1baea4ab5a34f21f836141e5bfc4d8257c8d81077c29804
+DIST firefox-91.4.0esr-az.xpi 487259 BLAKE2B 
533a12abce11c5d39eb21291aae74efe0ca1a77a2169ce5be11cc64864b1cda5b28f04153c1f0c1c368b5183b248aca9596fc0c8e19466a5dc433ea5a54cdd54
 SHA512 
ea239697a214b6756e091655608514f3746a6ac0661cabe0241004d90854baf7d0f3191de361216dec70db00534bdd432495fc45531c1ba1162bf61d35ad4e5f
+DIST firefox-91.4.0esr-be.xpi 617852 BLAKE2B 
0e9fa980b3bc459e3b9bb7f3e63c6c3b21a2ae30995412b62dd55d2865c5e8144d5bb236a884680839a227e2e5456b107cb4c39ef1220b6186ab8ed8649eb170
 SHA512 
848d39d99f72bdc0b470c9e0a9a347edc3a661a43342e68085c33974bbac0d7085548fadb391fa4eec12aa24d4e577e670899d503a70bcbd02d83032b4d6c8b3
+DIST firefox-91.4.0esr-bg.xpi 566071 BLAKE2B 
ce4def1ff088bba14618de255e33dcafe2c0e1116f5d58166361f1f8a27a7c608e5ebead3270766111598c2d43ce5a9b413798c4aa722960bcbd7da07386538f
 SHA512 
e964a9ca742de974334b5f9a54dc3a0e6d7488a181ae7696a6130e2307d85cf1d39307ee4442bc663dab7a9a4d1850117a5eaac22e670852cedde4a18d2e0c46
+DIST firefox-91.4.0esr-bn.xpi 554437 BLAKE2B 
f0b7e820e5a06f9ba829fe61b903d8d363eb4793f8ba7463096ea9acd68abab500465c52ca9d577fda0b9f36eefcbdf62a4811be15abe9e2ed3af752853c5980
 SHA512 
95bed68b2e1c2954a8447cf5d782c9e650bd06e522163341890aa7e751ebd906404dfa8fa68e66749c0a69e5a1a17fabec827ecc0fac2bcd3db5ed4cb423346f
+DIST firefox-91.4.0esr-br.xpi 522501 BLAKE2B 
b2b2e43d3d6a0dce53b8fa6329951bb3ae14513a53f42078545c1bac0b42ed3854e367bfa9ddeeabea995c6f0c2709150dfeae474b6c9d22465057ae2c6cfbd1
 SHA512 
f4a4a21ccb7b7609dd7050f5fac57834b3806916ae2fe5a8d46dfea43715a80387ae776edc84cd151b2913ba0b3250896b2e0667dbcde5501873512a9897db26
+DIST firefox-91.4.0esr-bs.xpi 461651 BLAKE2B 
173ae71acf7d349526871b71a17742723d5ec4ca8a4e4786c7e60611579aa1dc2d7d3aa98db263a0d6e3e9246b45fb1f923662691df5c0e7b9bf4119abb3bc5a
 SHA512 
98227011b4167c3635507c1d3984854e049bc12f7d9ac27678bcc8c3db2c00df461d1b937c30e0ccade7fb90cff10ca354be84050f63730b05e6261bedc18c5e
+DIST firefox-91.4.0esr-ca-valencia.xpi 527261 BLAKE2B 
08da181d15b6859851f294a97548685797e6de5a954615990bae0fb0de0f8a8af4267516397e7773e6d239734c12dfeb5c3597ed66e917cdd35b7ee929a27522
 SHA512 
e91197cff0a966fa294f9e7027eff1134b196489ff5ccf943f3c91a0deccc60a9b4acd02e932074196e5fcaf3702453058aca1f5efe57766d44cd21a7ea35082
+DIST firefox-91.4.0esr-ca.xpi 527631 BLAKE2B 
d759ba35fe9940a21ac969b9386f236ada30b5ea4ccfa702714de5aa2310a150db48a2dc5e2c46087e4d0d2abb51e60672eba9b9e8e941d3c33d2529328c13eb
 SHA512 
2abef3037ba8d26669d64c710acb681136794e9d51c47f25dcc8d668e8cae65b708b072569379d6c272a54ba6027212696ac31777d79421eca3acd0fcbc75b91
+DIST firefox-91.4.0esr-cak.xpi 550924 BLAKE2B 
d41287e5d63273e97ba55748d6f94462db7fd0508be4bff7d59c7e79504f7f173826b891e52355545edc9110619755ab5b8bc635e65d2019d012df7185fba24c
 SHA512 
86b021881ebc4bb1855cfc52509b16f864314947d7122da415ce057dc7daf7a3d4aa9621ed668152302f9eda1250c7426a8df9a717d92f7d1591097c4aea6c55
+DIST firefox-91.4.0esr-cs.xpi 559274 BLAKE2B 
a8e0f05e08b85020a70ba313ec16a4cdbe2e1815070449485bde0436750e42ca39bb1d2b530cf4c69928ac96a37f24868ad5dd09182c627ba8916cfb1eece052
 SHA512 
2a706df50f8245863b9d66265055c83ebe2fd8e19e2ec7f203aff4036025411a7c9163cf60b6f37e042d3f11cb5b4b3de920de2b26db9559525339261212201b
+DIST firefox-91.4.0esr-cy.xpi 538234 BLAKE2B 
dbc2747859d76eb542c30719364963b112e0643592ea6ebab75167eaa5db5f5c62427d601c3bd2106001965e988b098191b2c53b7be1a8237dbe3375aeb56e91
 SHA512 
3a4fa4f2a52bf028ba8b2bf370eea3ae0a0a50fe98e42eae8eed8aa0d5c828aabbf72b21a70dc99ccef3b6ce59956e01a0970b44bc9cd82cf3f7d30f48f9a898
+DIST firefox-91.4.0esr-da.xpi 530228 BLAKE2B 
ad7891974d63bef156efea37a634a53548fc924590c7caddc4df1aad12541f2052123aff1656064e38743764a6c5933b968ae750831dc5b7686f42cdc64cb7d2
 SHA512 
1feafd2c5af269318109e11f47bd1dc30c28027b02deeb2910c21e84ca988c0ef6e5b85adead7aa73581bcdc861445899996e61b370a039355bf15d63ea3309f
+DIST firefox-91.4.0esr-de.xpi 549363 BLAKE2B 
8660c7d0d22382487bf45d573f93424706b07b4275e553e00faab26debaa156309918983b18ba60710b5694da7628c8bad89a92709f67303f63fb4974cf32143
 SHA512 
badfc5b13084cb6938a08e403fafbe128fe62f3eb799754b89037204f72a254601073d46b10d614f120ee9ae834cbac63ef6d2b2e632a1dbd29d8ba466f6a00e
+DIST firefox-91.4.0esr-dsb.xpi 562054 BLAKE2B 
03ceae4f7c0b21a4a73ede81da1d87f28b36691ecfade984e0150367faec8397ebad2a53b5709105afd437fbc84da1673259993cf9c95c415a962db827a96a9e
 SHA512 
bf46da14c7539d4e69a2a4ae9e11949b9013798587ed99d15831ba8e654d1d623dcbd26150668839b06196e24999b7ff6cc8f31c0c664b6d338e8423b813a26b
+DIST firefox-91.4.0esr-el.xpi 634551 BLAKE2B 
4d6d237e1657db12df1d13887d45c636e0fbadc79feb9c27a16243bd6157c5b7f7d0c1b1cf29e05d58709c228929c0a4d2c4732d4c1d0f844f11606c50243494
 SHA512 
433003408c24815a5e05e0595a21fb6b5f1710cd672b343f9a708299e8c61f621d0b01cd9895610fd87214b6108ccbe9efbf8053a687b669d60864f69c45b2df
+DIST firefox-91.4.0esr-en-CA.xpi 506461 BLAKE2B 
499bccc90ee2ccaf44fd82292ef193223b8ce0a8ee8714694d668fc52a1e550dcd90d75455810a3f167d50060decd5d491660f4958847872f30211477fc53329
 SHA512 
79db782768da33dbdf707d8e67d0fa361fd7651576b7fce5ba55fcea9d5b36b20961eb5564ca9f54dbf5dd8d21f8b106d1b7fcbe7b6e6c4704d54f9c0190e579
+DIST firefox-91.4.0esr-en-GB.xpi 507019 BLAKE2B 
e1143c3c00e0ec03be030b12b9988b7ad088fe2c833524b796ad4ad4e0a2e10d1754b217dc8e2bf280b1dd92a4a8f9cee9fb55875b6540847591827a0f687e99
 SHA512 
53cf821d5413f60c13e50cdaf9244b80c4f4783cd6bfe7c7c340b99c0d4f1f479950affcabca33db1d28da3302e30b157e78e972384b1d56eba06043c06d6d64
+DIST firefox-91.4.0esr-eo.xpi 528486 BLAKE2B 
e5c361e4c4fdee20d33ece92d5130f182a5af860d916040463e8292f14799bda0ced5da3cdd09844a85799e5991d9f25721e60c4a8e9b0321028d2f25a26085c
 SHA512 
4c93457f3276f66d442321454d9ee020ab24966552ceafa980212638379a15da213f9bd08dfacab104803ab1258f3e3fa92c6f4a81548c7ee973871151900175
+DIST firefox-91.4.0esr-es-AR.xpi 542781 BLAKE2B 
661c003673dddce5ca3cbddaf6a7166f65ddbd62eccfda55fd6e110ce2ee416d48a2be1522bd298e64c54aba72c8e0b55c233a5da46551970b1553c78911142a
 SHA512 
cd7d4c39b4b010dd8c17497450297b7c3f8ccbbad1bc5b598700b88e4432c8c6a4c07652fe4f818b6c58028fa243bbfd987436ea9749303fe6e33da5756c68d6
+DIST firefox-91.4.0esr-es-CL.xpi 542423 BLAKE2B 
f620a3f923167105b6222f4f814bd16a3d39c791e91a034c10c4e2a74e82231ef11f967d4d10b74a51de965825b3d95213c0a4044d500e0825c22c74def52b7f
 SHA512 
1df5c356c657bf009c0702d178c0a97ca6425350aefe46246d585bc914f9e957d45be2b8f098c79aeb6802c715879faa3c9ebda96ce1a1855151d0f031ff9c27
+DIST firefox-91.4.0esr-es-ES.xpi 533117 BLAKE2B 
645808f4c09423f43cd323eaf5190259702fcabc29aa816a3eb64e63394b5571e0c4e23a87a5feb9e79145fc3d2dc6c4e48d12fa2f0df199690f8245aae877fb
 SHA512 
4920c49813d2b996ca832f452d51226365bb39a44ac62645e3418749fbdd08e8e5ec8091eb9108e9039206d434091be570aa71cbb9732516752cf616b4465dc5
+DIST firefox-91.4.0esr-es-MX.xpi 541516 BLAKE2B 
457044739b4f864c7c5647056c4b31eacb32d79296488668429683a33f7a4438b13a8832763f9e7628ae6094d8b7dd1ac72944d931e96a0e4a1a6883d5cd8878
 SHA512 
79b184125aae7311195d268af0d97aa274c9d26d8fd1d8b557db9860dd8e5cb17a5307a39a22be150fec18adc69649dae5e76922e9c46fe29cb32a6bfef8b46b
+DIST firefox-91.4.0esr-et.xpi 480346 BLAKE2B 
5ac5375095f433be0d2d474c7ea808f826c2123b82ebdbd541bd03914972b4546c940f1334711ff16c75b9d07ef179bdecef8aba80b02c0350c4696d86655530
 SHA512 
d86bee23f2a22a09b8cd331a3f1ba3a17a3509c1941af64111d604895e8ae48c0ed36daaa72610037aacd039d2e1ae80a08182014163cb054a57bb4bd3c99029
+DIST firefox-91.4.0esr-eu.xpi 532520 BLAKE2B 
88fce18bde87ac875adfb43fa5741ba2ff568f0ce8c1260c474d3f3a7af879ef4af699ee8a6b24d99aa6228dacca67b7897e9588f2b4c30679fe37bfcd511693
 SHA512 
c1cbafc7a7f2c462d7c2f43b830397dd02f9b6e12c01e45be154105b36cb62e56d18f662086dbe4127d91927dd5980157dc90dd4a8bbae8a663beb42dacc7a47
+DIST firefox-91.4.0esr-fa.xpi 553970 BLAKE2B 
568cf1029ad7150c72f06adbdc80ce16235f6905fdd7545ab9aa8b5923b5f585f2e2d889260b5ee3cb30f6a0dfcbc24afc5b2e7307055dc4bfb02e735e40d640
 SHA512 
6c0d5114943d27b4d8b50a99235d6e85e6674a810e95c1999cd2061cdb9a7f1f63444857fe69d893a864a3f083ecd86fc4641d59edb9b15ec6f1287feb2a13ff
+DIST firefox-91.4.0esr-ff.xpi 469973 BLAKE2B 
6dcbacee6086dec58fc2b619004cd505eecfb20ac914b2592c6e18864b4c016b535949241f1e8e806ef7609a3534c272b0339a701ca07fe92aa5e0fa2c7bf8e9
 SHA512 
3250d9e7c14370ad5379b081dfc4831ec5c4db6361cee3014f1c31d0b963d82da8cc5895ee8793d383fc508e0d78fb289f592f8dc1f75e1e70b61ffb6218111e
+DIST firefox-91.4.0esr-fi.xpi 526622 BLAKE2B 
b77cbdf5370e3535a3352cb956eac60f2f3facaa6f9934d6bd75d8570b0bac801a9f56cb44044974b9669595c54dbed95e48568759cfaf0f853f8fd89fc3b91b
 SHA512 
38d6d9d1243ff26fc588b984114f8669136ac7e78e421d1dec0ea6bd12116ae49d85de5f3b559f21b0510c01a203cb8acc19f625047e13fd5d79238832a2af94
+DIST firefox-91.4.0esr-fr.xpi 553503 BLAKE2B 
393c700caec3ccee3ca5e679f63b8463461750872c54090d5f619501ae4dadf0a475ca47da1dd7efd80335854b094d52f08df7ec4939a3978b7130ef8875c840
 SHA512 
fef38c360e58008da3ecfb261fc8cfc904fb4512159d4367e7e3d08173c1e675d2fd9a5ee0db5cf440f2eae18314998515a0fa1e78c855ec2b45cc95f70376fb
+DIST firefox-91.4.0esr-fy-NL.xpi 539366 BLAKE2B 
618c96d6156799c5744d311368d7b29edb79887c6997260bdf74bc3ba6b6452ce7fa76265965e78732bd746dc19bf1512e7ddd9edd43dda9faa6166417cf6274
 SHA512 
062d45aa56fda9e7e77d0badde5a519190fdc804dee5d648d9d2ea75174ec6412395784992b50ac58e79d821492b248e6757f2c99c63a5649bd5bc52de74973a
+DIST firefox-91.4.0esr-ga-IE.xpi 457892 BLAKE2B 
f3f5c1ea1c1e122a896bf88774f8b76b8dfe48183c8896f5c64c705dc1ff0283a2f17b534301f4dbe2b621b5f6f6251d2085b28476ff21aeadc1cd15d9a14378
 SHA512 
e5aeb011f6e6b5adea4c04b01f994a6d4e3b4d368fd8a1efefd48fb631fca757463a71f2c3b519af7216ef42d540367fae3423e6e2dea038e51075c10b4c7b33
+DIST firefox-91.4.0esr-gd.xpi 529204 BLAKE2B 
2d61fd5f3c221dc9ccf9a72948d28a9615c6d920989ede46ff888bd0f63754eef7db995d3744be398249db8aa7bec0d37f61c58ea1de016d4ccbb62b471ac58c
 SHA512 
62222ade8a1ab7a60168040c25929155f5e9a6a769d40885b7f6471bfdd523457e09cd4810227dee5dc97092fe2862a66af62843a18a17be8cd0cb4d09116e6b
+DIST firefox-91.4.0esr-gl.xpi 537265 BLAKE2B 
f3913d321f6abea828a18f774e475da4d9d91bebe3e596a77719216ffbef7602a10c4501d0fa6c1ca1404c1121773a9cc2b4d8b1c02e20d971ea1516a05fec3f
 SHA512 
1f3177618c182cec06c9c9d69efb016dd09ca80dcd1a809a5308c32e32737a3c18170de3f9f88b04f71a42b2090051c6c62f8578ad55488c5322e9667a0b1301
+DIST firefox-91.4.0esr-gn.xpi 554090 BLAKE2B 
216907423db0a9ea6af0003cda1fa12b6b44fbfbaca7b71d241e9e05365e07ac99b2b2d8654937a840b4747a2916228edb9e66a56203e3b19e8fc4fc41daef6b
 SHA512 
306e3474f30cd22e52e17a7f338f1ce28b2aa03cc8129eda8b24cf379d686068bc93cfe9c3cbbddf4e60fcb278a5c0c9cfa443fd4f34bd4b6bff3f924a6cee1c
+DIST firefox-91.4.0esr-gu-IN.xpi 527245 BLAKE2B 
2dc7bff6a9a8117907aa0534100cda919926191793171b0e35dda3e3e0c66d7768ad77b24266de265b5a3dfca206d6c3f968870b2184badb71d99c1b0ab9e650
 SHA512 
ff631f7094c1d3d496a18bfc9279424f8165f2d3c0e9eb40a723e1f586e32602d9cd387cc4eadd6bb0e7a80996b94e5e9a774e4f2b010427cd26efcacd4fa947
+DIST firefox-91.4.0esr-he.xpi 553037 BLAKE2B 
3700b0298b76cceef7a2363e1e99c9ca16d3e778def977f1f7ce93f3f6059e4f7dd136773a3e77dcca18511920f078a1f763d111a616e198bbcbecf9ab155584
 SHA512 
70e5125db74d1427d70cbb5e68c34520a960874897299eb35ef2846123ab82b737fd71d32adc92e7d04f632e4ee8b64a154aa0f8357a9ece277ab7669df717be
+DIST firefox-91.4.0esr-hi-IN.xpi 554560 BLAKE2B 
2551147898282dc511a36400e392b3c4e19b4dd935ded68c61211afcad796cef7a22061768d6ce486e81e958fcb49f9a4c1f303fb847d0e9fc8c4066281d7fb6
 SHA512 
315fd73b64538eaa6c83bd32afe47a64eb16c3cac4c8710b79cbeb38b8e6de1d6e14b678e4d078b8a39735694a21add2695720f7bdcd96f7b5f41438b66bd6c4
+DIST firefox-91.4.0esr-hr.xpi 528149 BLAKE2B 
307d94c1a9efc507f931e69c34ca89d13b0327176a8b022f497ec33d8e1698daee5f1cd3d61eb21892db2647654d155cef12b8fcd14b61394d3e80129217fdea
 SHA512 
d25661ee98fe4dd552a98d5cf9d2a315551a6ef80e4a36418486967e0a85e7f09c26e3d01d4d692e57c12f10336898d854f57ed6d8b4576a7cd43da641b1817a
+DIST firefox-91.4.0esr-hsb.xpi 558158 BLAKE2B 
429e76be5ec37826ef7a41b32fd966e4bd8bc62719732a9b2e0f52665dc3ccd91abe83857c687384610f28c5c887952a9c9662d7394071a49482600b21e01bf0
 SHA512 
d79e612ab8b21ead195298493b6e97cc38a648b66da8653032483c7cb4b481efb08bcd4aee6197a69c5d8692fcb1c85dff88a3e28b327e85855598ddb7d5207a
+DIST firefox-91.4.0esr-hu.xpi 561985 BLAKE2B 
d30551d2c287d19ffafcb034eeb3a1c645784307f545cd489a1bed92f445edfbd04794918e9a06c608c25b917f22f7c69be76b8b05f053ab83157895b76c5c3a
 SHA512 
05fbbc80885d2fe40d4e2dc8b8b95ad3495a979c9b69a223cf38b67a3cb55dfae636bd63e051cbcea777085173797a075b8c37ca626984b7bf5165267e9c8485
+DIST firefox-91.4.0esr-hy-AM.xpi 576131 BLAKE2B 
adaa4291a56a0b7fb202e890d0f8a05b7dcf56d9b6ee38015895c145050d5d4022f5150770eca71403229423945f6692dea4c4ab43e9301403d6a5dcb54ef93f
 SHA512 
1f233daad38800c7adce495053bc76ed5a101893b1d0187b73062bd45e96b3cebe83eb435c44da7b374ea0a76e00bfa78e3d816b050492497c1e254f25ab7708
+DIST firefox-91.4.0esr-ia.xpi 528328 BLAKE2B 
71c39e655836fcb82004fe6a7d6308ab337d41b89312c57bc8c8081a05accf3a75cbf2dd443da4b3e99f35fe47e091219a27c94c8a971e3a5ce1fa9ad3ea6a50
 SHA512 
e345f378dd823b2e11a6efc4e9d9301d8eb5368e32d1a3b8e27ed9379c2c311214e67099f3ea6ef19c86eb40cf80f46eee0333e5e1d787f2c1c529a79797f323
+DIST firefox-91.4.0esr-id.xpi 517718 BLAKE2B 
6ae152e686f9b55c067d9e3758f71e7690b8421352bcc562a375daa47ed1a7a811ab1f62f61c6a9ba9351952bb90bb208893787f4eae63943202d36545184f1e
 SHA512 
a2974e9ecd45c4615164eaf55cebc7f01737f5dfdaf3547add722f33d215b013f4fe18546259dfb2943e08707ac196c74a5c5ecb6d2e931142b2874220b97e72
+DIST firefox-91.4.0esr-is.xpi 467919 BLAKE2B 
3abc9ab10dd2eaee9bd335b715300bca43a03c63a7a2a292d45d2ac9f43b216848d498a02493e77ff5be9855f77290d23ae8c635aef29566702c55bde158a465
 SHA512 
293295d4dc560beb034fe565ecb828f80a1bac7486e297b315c0aa452ecf5ba759017e61f9a3edcebd8bdf2a6a02b5c7c8a3ea4db119d19cce76ca8df5eed197
+DIST firefox-91.4.0esr-it.xpi 455746 BLAKE2B 
dbaaed50f0d19596bd2eb7fe1584fa14296041e04eb987a845d21883ac14df80c33fe5fce6a5b66d8a062d5ce147242a31860d1d250038c0a6f56b738477f774
 SHA512 
6b517797d0df3d163fec14137184ae112c948c3146c271806546d9288e424797cbc8d664346d02e3eb702c1c920ee67d084015815da45457ff317bd4d4c060b9
+DIST firefox-91.4.0esr-ja.xpi 584266 BLAKE2B 
8fd1614855bca5054cdab88daf77681fd9b8ec8487e62dafa6cf415322bb5992dcb57b4337c2afa7d9fcb863e4c26d608ec44af887f4faeb99c9322dd15cf8ed
 SHA512 
d82eeb7df6274d12e53b48a6a5c5687dfaf963b9a41173eac1d7dbd1cb0d620f33f3551682f4e07343dc97ac9bb3d5993ee5c26978798522a8972b655426f908
+DIST firefox-91.4.0esr-ka.xpi 582191 BLAKE2B 
50fbd0919e98d1fbec2f88506a412246590308c76ac541c9728236007e2c4a4e9d7e2c85eccb2c52fa376bd1453557f6a17ce688ed93e72994fb44cf21e0e1f8
 SHA512 
e867e77a3817c23104dde4f989cd0590d78cdf278d0b8ceffd5189e6b7bf37e86394fa246b444b86f1a8e79a627f02c316aa1a891c6caf33d791021004a3c890
+DIST firefox-91.4.0esr-kab.xpi 541441 BLAKE2B 
4960041931a5e4ed22aae97f6a6ed72d2b181042a67ba85c9c96a44740ce2ed1644a14759c4704f6faa36e6395e600d1977447e98b38d6b6da415c974dc62260
 SHA512 
b114aa5f922a831e3fea8f2ad25ae54dbfb0840fb3979a55d72ce2b3ca59644e14075ef0da57c6b465603d51edf4ae81cdfd926f9ac0e428b09523d9e47a09ed
+DIST firefox-91.4.0esr-kk.xpi 602422 BLAKE2B 
b635982be599b6adbac1593e844f65e49987ea649abc6a41e0d5c112f1e2973c703025c834efc1f3161415e93e9e2dbcd3b76c03a845b380fc4641c14f004ac0
 SHA512 
81d163e25d069de9fd14440219f96ac5dde744458bea87bb906b2bdad21dcdf749b1639c6e3bae54e9cf50ff13f4425d07cd861c2890bb5c1b4cf902ec3c3aed
+DIST firefox-91.4.0esr-km.xpi 531026 BLAKE2B 
694d6ffbf2e5155dbd5e6aad9cfc161309a9b4056b2e41bc4506700a69e1f5bc4ab458892bd6987ec9e67ab454c43fe9bbe4e3d2eb38dfc8681e2f4e29695f5d
 SHA512 
d7e5e2b75885c03631154de1dba4bce1e605805751a2d34a2beaa50232e4af51a7c7069454be077ce65555903fabc5009195bb37978bb0fbc8d7ac976e5b52d1
+DIST firefox-91.4.0esr-kn.xpi 496518 BLAKE2B 
c0e0d5d8ef46e3cc3e013ee3eed5b5ccf71ad9b9331fe1c56ad451b9e5c70f04561ec29159f5d82e6007ac97d407535ff923be297500fcd5990e1d0d917d2360
 SHA512 
6185590550c9d78444c96f0f66fe6a7ef2ef46cc0220e485ddc8a9fedcaff2d779e2096dcced729c5d19732b7bb7408ea2550d87c66f5f94afddcedacb4eaaad
+DIST firefox-91.4.0esr-ko.xpi 574828 BLAKE2B 
22ab4c2598fab7105f4fab62f7d37390a2c3ff5ff1334309ec7cc60406d1c4bbeab617c5511a0fbd0ea74ac7dceffab416aec2aeb6b2b307fd0c2a7b115a5952
 SHA512 
40ccea4f669d3d559837b0196fc1688d75e02aa39162e02913cb0d9c19a1d57d4705ba789d53c38f4cd2afcc888eb153e2ef79a0c618e04460b90f3ea95f329a
+DIST firefox-91.4.0esr-lij.xpi 468276 BLAKE2B 
b53d636db515a94135faa29e5951ef9f9628603bc6fb6d8e288c7e713294babcef48aabc70d53a1a2e5c5141551e2d5f3e941579f0cf40e553c3c8e8a98e8306
 SHA512 
c1e27148d9e18eaf972ab2e12ef6474afdce88f0eda7e81d20326bcc5f815b78fa60cf79c9bbb5483902141d8b46c048c94e06230ce5d13526f1aa56985f6885
+DIST firefox-91.4.0esr-lt.xpi 556483 BLAKE2B 
76b7dec6dbbb222e8763b18563e33a74666aa1f566b31671eb44cc3908ec8cbccf73a496840be41ddbc7619c02bb8a2663af72417e4cef2f3cd48690606acfc5
 SHA512 
99dc34d152d48d544059f5e2c5e070dba68f6278de804a82b82919058a3308858fa00556f306fa67ec9e2dbf73b8bad7ad6eb29c415b34cca191271d7d3b4bd1
+DIST firefox-91.4.0esr-lv.xpi 460155 BLAKE2B 
1f0de8813c7c05d4c8208adc0377637a1df9bdf0f5639c2bf2d5b440bc5c0772e60499acb1630e65f8912a253d7cd449b9afdad0b45a77d6b15c82ee3cb51bd0
 SHA512 
8f2506be64284e762b90f5c4771730f627110aac5377281ea17647d1bcf61e2911d0ec3d7664a7f6d3d7799e0a18f72422117d9cee36d8b18188da729bcffbcb
+DIST firefox-91.4.0esr-mk.xpi 463732 BLAKE2B 
215c755574ce9204e1facb159b99b88730fa920b2029cdbe78a7e6815df30e4187e8b726f6893dca78a6bd71814524f742fc939f84198b81c6dd8590d3ab9ff5
 SHA512 
8fdc6e67a9ddf65281ca2e90942a3eff163eaddb694abf01672f1f2e5e7845d49543079e396ccc8a2403a2189143dda32f9053873c5e1927c3b09b7b7fc0cef9
+DIST firefox-91.4.0esr-mr.xpi 529969 BLAKE2B 
f9bd79323f907b67bb845f91138837d4ae30ff2f74366258a95f4104ea07c3840daec921a516fb929a59fda61df69a5f3ac0a18bb4bc73b26f9296f81286cd3a
 SHA512 
0f489e4036ab4ccf7e07262f9253882505c0bba20f1e07f57e0fbedfc6e98c430e847e1d95285999fbde16be0d0757127447ed20c83fbecb0500df1f1b1c529b
+DIST firefox-91.4.0esr-ms.xpi 445085 BLAKE2B 
d8771fe6917e27c3052ea72b416dba33126bb7fb7bc6c29040df431385f04f2aa44ed80ec63f507ade28e6f64d6d02a63ced4349a6f2b7a899bab709a994fbb0
 SHA512 
8b0b4c4050cb7343b1bf13495c712352f244dd746f126fc4ffa620ce29cbf4bddfd3f02d822626e01c7a200f025073ccc918c7a759133bc772c2158edfe52bf3
+DIST firefox-91.4.0esr-my.xpi 514591 BLAKE2B 
35db61858c48264ebadf7ee856861ef29c7da74f98816c72ca230eecd7051e960fb3206571b31fb1c4a13c2e02e1f4ee7922b0194f78e2751f99c57e1f08003f
 SHA512 
5906da191e64af4273b077d49eb518d00ed96d13e54839e9b5f2a283f548b825d1c1331076644ca7791dc4cf3beec0e43b59331c741ef0a760281430a10d93a8
+DIST firefox-91.4.0esr-nb-NO.xpi 525627 BLAKE2B 
e96be9c59aaca41b37df77fc20be03fc011a20e121a35166dce6e2e69fd9f9245d373656e5122d876baab34e28a1360e9f7e1ef00c4b97ad409421bcc2fa595b
 SHA512 
900267d676c41c0f83ba866139851a193f0267fbd531d0524f0e21b356763dc898f5777081870f6f3e4c69fc64653a93631c085bf4b6a420895b23e0032b0630
+DIST firefox-91.4.0esr-ne-NP.xpi 474185 BLAKE2B 
c3e041da59a92cf37e5b3a69debdce9392d2a95cfd513a3ded00c583ba424292ce54b8a7b7f9cb34b20d731803d0b5766e943132f868db1ef9fcb81a9e271a83
 SHA512 
3412c5be0a63dcc86831a9c85cd744528fc4d009c01295984e9b1fb9f8498abc17bab6dcd2a6dd5770d390bb6fcb9b934c2c367d71270f272fac222924bc01fc
+DIST firefox-91.4.0esr-nl.xpi 533414 BLAKE2B 
fe2537d5846d6d62fbab558cf4e5083c187237a364a6b80da8d17edebd1e973599d8cd6895d55991c20196cadfc45c06bfeae616a8542355b82bcadaef2ad4cd
 SHA512 
6a156e7ee152273bfdd49d5af28d26b3733bbbd7c8b4d448d0413cd1dce0d086dbff1246c7464ca7925a502a71bcdb85b7346ff25888f3bd891fa76a59c94d30
+DIST firefox-91.4.0esr-nn-NO.xpi 527058 BLAKE2B 
64e769dda2316320d75bc24b28827feb92cfe788dd349ff69c0f708f7f5578c565e85789a39fce97aa37a7e3f7647fa702209446cfa4bc3b391b606c2584bb57
 SHA512 
bf95f24d1d226fed9e75fc027166a6cfda3e691748fd06b132953d56c31e42ad8ed261264d5e225b7de32c138876873e40a8e67b564f507a50f80851d44f2784
+DIST firefox-91.4.0esr-oc.xpi 548919 BLAKE2B 
0ace64b36a718a54d6b33d1d93107ee9485324c7b1b4137dc9fe84dcf70b85bf0f4ae75aedb67686972b493049bad11e7362bbd462d04f2a18ec78c942f0eb00
 SHA512 
27a72e76cb3b51589dc460b6995ee57fcfcf4f8e579a95edba87e0ab18ae857d289061933127968bde3aa29df3ed4f2772bc44105068019c0c74e453e7473e56
+DIST firefox-91.4.0esr-pa-IN.xpi 589463 BLAKE2B 
7379cba877a4d5837fc597b9f18ef300b1093a66349dcc4c8d2d25b85074c8d45e1647ae22db909e3825f5dc3da0b606d6cb5d6723014943f6a292e61b3c2078
 SHA512 
da19812759622e3e76d02ea54c7431aea15293af2029817ef3005aa58421c7da1a144fe93905eb078653ccfce0436cc107039ccbed15d562ef5ce091d98f6d6a
+DIST firefox-91.4.0esr-pl.xpi 552660 BLAKE2B 
ce354c26bb6f8564f9fd776f1befa924c9e139d0d4b09684f1df0866717829551c260da38f3f819e39f2ad98dbd1e047b9458ae1f7f10f1f2df36df6942920e2
 SHA512 
8bc536bb7f45f6571cc625cae8178db182382846f49bb14d3c840f21c3fe778c396b1ad5ffa05bcaa53aca017cd8b9e3a1fc921024a88f67ddd497f76fc19bbf
+DIST firefox-91.4.0esr-pt-BR.xpi 538494 BLAKE2B 
064f775abe3f0e7f692cf8ee7ec8de788f0099fd8a41d0f0c64d13fe309dd7596005a2b7af2f869a3e994879be2d94cd9fcd99ba25b3bf388a8ad08bd802c088
 SHA512 
c04526f15cad1e32371d3e1d95fe8975614cf3295f3a80299a7a0b921c2746ce4c4df0392d7e3e24926516aa5eaec0f48460601d3154ad2abe230b7b20502a84
+DIST firefox-91.4.0esr-pt-PT.xpi 542430 BLAKE2B 
51460fd6d910c847d1e7ff7d918990dd41d0e875c1d76d36a6c7e56192058c76594f561eabc394e08ef635b9be4cc6344c758733de83baeb71410b663122c55c
 SHA512 
cb5741451651dcd8720f79297c632b410ff22b9a4fcecc6c12359fd03e06ed414b87a07ddaafad5b49da4582068ad268b0bade8cd51ddd2bcdca3fca007cf3f9
+DIST firefox-91.4.0esr-rm.xpi 533244 BLAKE2B 
0844973f8a88e55f1e60c41ebfd6e73051f0f1b7ecffa64343efcbe52cf1f9783379975b6a258b80e18352c384ccea76cdeecb9dd153bcbeedd3932a257d266e
 SHA512 
1e6fd16b476a6440af3754411071ed0c5d3b483ea1b3dd1bab921175042f4ab7d894a308839e3d1cf67efa78884249f1589bab85892f46520196badc8c5dd928
+DIST firefox-91.4.0esr-ro.xpi 526985 BLAKE2B 
e8ce39ccb62069614e4a811061865cbac81a712ce5a8bcf1f56b9962367e69dbafa4f591ff695ae086ad95bf018c45158763835487b0ab388cb3424df3e5224f
 SHA512 
a8f003cb9d935bf5528291e9b9175183036e069cd8f71b0d8aa13a2d387b9446c743b958f212141c956e4b52074c3d49b7839e6b1c7708c9d9d66bfa68504763
+DIST firefox-91.4.0esr-ru.xpi 622479 BLAKE2B 
5c546e993726cfe05930d6663e55a9254e94808d91e8964bd6253b5a66b3f7fe0aa17fb95c6fe2211b40f1eb3205a142ab31ce0fca63a351402d1bd9e5be6e05
 SHA512 
c8dbcec0fdd628d5ee2aa7bd35df9d000ae4639d767125f9e60bb706718acc3f3c827c2da8bda592847ec180208c4f4a01499d92414b10e9a101cdfe5540d137
+DIST firefox-91.4.0esr-sco.xpi 503271 BLAKE2B 
8085da172a519cf273a33e70dcd1f70f9423308186a09b2fc7775822e33a65ea3f0c751a8b04c812761259cff4fb604c5055dd34561581075c2bc71e7578c4db
 SHA512 
bee9ec974bb56b86f243cafa3810462e1ded2ed1b356a80179323404a6ebc8076e71088b35eb1948f825d0dbd70fcb4617aad068eadd26537f5e2f2b5bd68976
+DIST firefox-91.4.0esr-si.xpi 485754 BLAKE2B 
7898bc88ef5f480800efe25273b39345d5ecbf0f52fdd37db4f8c01b5f7aadf39def6ad1fcd8422fa2cc13542c73ac1ca4294ad01934895b857e5393df57b9b2
 SHA512 
3c0696368d4fe4963ff6ee4f4fa7ca15e4464eee567801e0ca10781095ca4d8a4128b0e393a1de6748492a001a941b3c9a072f07d3f4d020699f13dccbd36125
+DIST firefox-91.4.0esr-sk.xpi 562099 BLAKE2B 
c0c1e770acafcbb0c70a82235818b31d53f0b21447230fd88de12430585067ad418c59790f34ad45276b63e1f3cc6f07c3994d718bded1511f682445e83ec3b7
 SHA512 
dc3a49b3845ac78e6317a1651b072ea24c0c4e7aa68e2b61f0365d188e42cd6785cbdb1ae201b179d3a01fc3ef97f524b5fde1fd6649a3a86337a4db28a33c0d
+DIST firefox-91.4.0esr-sl.xpi 529903 BLAKE2B 
69b9dbd60e92aebd07b31d5b52e7b7bd3973a05281dcc5801010ab0ca2221a661232d054ee4b544b1f0458b3b73cfa14e28871162fa639e83908a046b5317ba7
 SHA512 
f1d61aa23c06a165c93c15455f11e27a9fc77629fdf6615297f258999c4e7a1fd6ff6ea89efc6694252acb3215e6c752d2fb1d2b1ccc1e1a4dea9f1c61f064c3
+DIST firefox-91.4.0esr-son.xpi 424145 BLAKE2B 
13973029336e622ae43522501fa715096db3bef7a2ab5b13e4ecc9bf45dda6083e5aef7b9daf078192f1ac2f846a29db58cfa7045915db01cd6f42721ce16614
 SHA512 
d397eab0f3e5ea3d9a7637f64bc1464f67adf76700a775524859d7e0833d1d4f7f9e1168e41a9e8283f8529c071128c5555ec4d270041dae1ce7113909d5b7d5
+DIST firefox-91.4.0esr-sq.xpi 544586 BLAKE2B 
4ac371a525dd2df44cf6997a0e1c866980d4d861a8e80ea1d496e7f81016c814e654e4d6b4ac797c2d3e702bc0adff7a129c41ed3907133d0d2d952b8a61fef3
 SHA512 
23a606954e4d205aed77efef69eb509e5fe95326398932e0a8af36bde2fc3cf67b08b9a967be1f1b2d9901c7969aa0d1872f6f631df5642ff56c689fba743db7
+DIST firefox-91.4.0esr-sr.xpi 583086 BLAKE2B 
46994159fc1ff22b78a6162c54e9dd93506fe604750a70c4a0fd395566403a46b95748c922696458a263307ed50472c4c9caeedb8959b65c002a18526795a0d3
 SHA512 
e8a9173c91738364e0ef4e9e8a42a5d9b75995ad10be60261407948404df0f31824c5dd93fb92e34b3f0a68ca7e41b51883b2e5eb45894d164ae8ea55d80dc20
+DIST firefox-91.4.0esr-sv-SE.xpi 536058 BLAKE2B 
11ca31308f043605fa59a2856c8210715990c4e014925fc4fc07dc90c1400d622fcbdbc283bf622206e8ee6a4dd706e1aaa20e12d252f61bbc30dc6708e710ce
 SHA512 
0be654894191d685a4ba9b4659d85b6ecdc1891687c10bfb89412f15ab8da4df07a1a9f64283efca4895b9c11413b9955283aa2bf3e088171e0e8f6ab5d5efb4
+DIST firefox-91.4.0esr-szl.xpi 508146 BLAKE2B 
347121bdaaafcf3f91726c7ec6daa5b45d56470c39ecce3d27f00f5d7c4fe52478f1c7b8390480c58896addab012aa74ff0b41bbac57e82f3c18567be9444a6a
 SHA512 
0564a38bc2c2eb65011d9e0a7d2ae923808739d5a29f8be54c2476ae11a607cec9fe9b2b3a28d35da9373dccfa803a19dd7084f0b85ba051e8bd7542ac52e7ce
+DIST firefox-91.4.0esr-ta.xpi 510667 BLAKE2B 
b4fc8de02fd9b4888158a4c10be33259bf60457f5ff210e595a1b93f723cce0d2abb260ea00d6138f0876cbb05cfa337b4eeb1aef6f008859fe968ed1c7cf0e3
 SHA512 
7492d64b776f6c187d186eb7479a2362da725be88c7ea6bf1d8b4914acd4f8130bbe9bc7b192770982645d2484ee0fcdb9b05356a5cdb416af208df583f6e590
+DIST firefox-91.4.0esr-te.xpi 547906 BLAKE2B 
2002d8dceeb2b0a61577cb334402b68cff1c2f613542d87985d2739740fdb577a38501d37df6708bb158685f2eccb7fba75467b25394ae9fee6acd1afc64c1f9
 SHA512 
8b85b5d1beecac77167ad9abced138a2f0e8cc3b68b2188fb80dfe1852fc299705d32e150c1f8e250929c7af10d787fb2477d1e731683d954ac48a6e9995d075
+DIST firefox-91.4.0esr-th.xpi 597694 BLAKE2B 
e34e0be0d0b93015c4ee577f70f796ff9fdf02e3bab0f25f3e51489ef05b831d06ab3bb7f52aa29b72dd1a0824d0b4aa69d6cc69635810caa8f73b89c8897947
 SHA512 
e3665e291f71f2b4d11c974c255eeb9e7fb079b705e1f70451e45ce3aa206ecd0ec5b28207b57cf56a84cd5175bb8a8b0735fc23825fb1dbf93635574ea40f4c
+DIST firefox-91.4.0esr-tl.xpi 513310 BLAKE2B 
b549526e3d1db282210c81c68960dcfb95d67eb554a0931869b1390ff6ad81796b2e0768bde840827b2b56cd74b064096330c3aaaeb9245026fe503a2dc3c8d1
 SHA512 
336cbe0837696ac1f2153edc21481dc658afc35b0c61ea0c87b996036647fa220c447f3e7a8f0413e219336845cc9eb049dedf16840066533bb02f8dc41e1f54
+DIST firefox-91.4.0esr-tr.xpi 548362 BLAKE2B 
c878ba25cc461624cd86a6a8789cda55dd018e66113a50dc280fd62d2f9c5ca79eb3c7c471ebe511fa451cc72a28f38d3f6538895ad8b5df81db45e68d74a408
 SHA512 
70fd852fa95f8adadb8a1c7feb3d67700598b720cc49a01e133c16213a92f9afd8238816150f79b2f15f24168f7839dc7e00ea9afb7b2453e446e0f375995260
+DIST firefox-91.4.0esr-trs.xpi 488758 BLAKE2B 
220d3383d3064b092c1eaaa19de4981f7edec0edbe1dacf06d866af846fc338120c64711f160a7a0ee04624528686b554c701e013042ebc907b439443754d8b6
 SHA512 
337d236b29d1cfc103052cd1c651e6140217c0afb9092be37feb81a964d8cebd6e26c8366457fe65ec4eb79379400f86c3635111f6ad17d11a86c304d395bca6
+DIST firefox-91.4.0esr-uk.xpi 615983 BLAKE2B 
f78f5dd87d49792374225e1ede6311f4c8ffe451b0427bd77f554487c255c94149e207183d79ad79c6eef5d96a3e4f8abfb6743d031bc7afb8ed93db5d9572ed
 SHA512 
ad06e287b5c96bb990621b410d9c45db92bc3bfd9c5c204acfbea22c4f4aa09ee9e0b4366ce1c5bf174fc38c7ee664c5cfbeac3fe38ac874007499b3553931cc
+DIST firefox-91.4.0esr-ur.xpi 554113 BLAKE2B 
5b7447e25f05d3211920051bc9e6fb807bf569dcb99f5a8ca383058a2fbcbe50aae5203f94f1242ae8e389a1ecf9a1602730a2445dfc5ca01afe96a551f7594e
 SHA512 
00bb497a1729a74a67a83b0a7512822c4415bdc71bf940f9731785cc87869d98514b9c8fb12e8167ed0eef80aae4cea0b30f0410fed43924108ba49f8d0bf841
+DIST firefox-91.4.0esr-uz.xpi 465013 BLAKE2B 
989f3dda30973403ca5c1eb8a129278105ef645889d4c6f32144c2970e54b13472860a815762f7b2c2bcc1646f227f0d63be5c284aa18a72b10a1d9366627234
 SHA512 
d38a60af12c379c3b4d0d24b478b3a964dc31afad481d3303a7cbf39555c29ef7fa33465203b632f88c586a4afac97da6d74a3ad1fe431d919133206c11ba439
+DIST firefox-91.4.0esr-vi.xpi 569116 BLAKE2B 
983c10b007eaa88f324a16cafb90924e1a1d14c118616d1c526d4dbbf3ed6db339978d2de49f53afb53555f5bfaa63f4a02fc4469035a102332bc305c16ee533
 SHA512 
e33542cba623880b69ff11551380e893f6e6485c13855a9c4121bc88c1037c22510ab12efdc47737e3b389f6bbe278957c8fdc9ff8ad2f3c7e831db9de328ce8
+DIST firefox-91.4.0esr-xh.xpi 426318 BLAKE2B 
caa90a68a11059bab6d54800936f247c692b7eb8aae30178934d2486e635bb86b540601610062f32c6496399cb6f446741cacc559b7abd280eaa5392a894322f
 SHA512 
08ef35e0bd42451280acf8b6d4c2c27b1c0b32fc070dd289d6405122f423e55b6eceb0b1235f865b5f95a0f257afb037f6cee48407014f7b435f712d7cd30867
+DIST firefox-91.4.0esr-zh-CN.xpi 571363 BLAKE2B 
353648ce0c0b12a1e922e4169e4ed31e0dab3337a2e5fa53879e38aa454933cf4e76191da186053d888f755a1bca176e7e23d856f5b7aa9ca088e12a59791b0d
 SHA512 
db04703780fe73b23025a984511f3e55189de663b563ed1c9dfb95de98e648842a623e5deac341fac9afd568b33f48ae574af8f5a49cbf808158551448deeaa8
+DIST firefox-91.4.0esr-zh-TW.xpi 572071 BLAKE2B 
df9f18fa4cbede2324aaff48c503b58cbe97f07394a2ddc00c7bb2a8e9e8f2ef0608374d726274bcd3890a97bcabbcbd25b56fe14db67c8cbe15948b612d5ba3
 SHA512 
e279a726a6014b6c473c275c8c3a786714757ca63d6311637f42787f2c5bc2778b36bf46302b932ee1a9cf478ac6a8e29382a389d84c29621d62642365b07360
+DIST firefox-91.4.0esr.source.tar.xz 379759164 BLAKE2B 
073ad017a7a5569713bfea850d5572c6cc0e7c46dc3c89878a6405b024ee9a46453c8588b78d547f838b9d55a93a509a293f578a3ffac35b952e2bce84e931a7
 SHA512 
781bf62a0e1215cad7d90de7c822978997bfeaf71bde4e7124a732921d130762c6654417c708a299726039d1603ff5e0796106118ad4b2ddef4e9dac84887765
 DIST firefox-91esr-patches-01.tar.xz 20768 BLAKE2B 
22ebd261b445f1920448d9243e3e15ed2e4d393099552bf43f26c9705dd00f8b87b5720e94fc43a31dd96c3a88398e17da80f81953f0bf9658d75e4a85a31fc9
 SHA512 
5935545535366abf8681286a9bd745f95f83ebf0d69ba5ce600ae513a4391fc16ea7eb4addbe8ad27f97eae3c1fcb05a78e2fc0fbd4cbf7798a83b778b5e1535
+DIST firefox-91esr-patches-02.tar.xz 16900 BLAKE2B 
6b8ca8bca3c35c6ea80b947610906e36883522e265e655a18c16ae3d62512de8c2b68666639a65c45d4d2949047994bbd4fb5506b1062441ac4774b14291e0c5
 SHA512 
7382ed736b830a260cfb78a14c8c34409741949f9fdcc95d4cae2cb0f0b2909b6fff3a3acf32209528c07aed89cc275ee37c76e34fec1c89a920662ad42a3bfe
 DIST firefox-93-patches-02.tar.xz 32064 BLAKE2B 
a99ebed6fb2e3af8c3d1ef60182e56636f68c596fcddb0450853eaca7b65fa786ce3187dae9d1c5fbce0b9d8de0b2a60d441b38a26d6b1dcad8881c46c11d913
 SHA512 
7f51f30815dc2386afa1349f512d156d2da3cb2a50cd9c14e763cfdf00535c78bff82f25820977252c3e5c086fe31d59a753dce2d3758ebe4f30dcda7a41056b
 DIST firefox-93.0-ach.xpi 452270 BLAKE2B 
c7fd81469026d99e21553ec59d0d005e906915483b3765898beba694cf31c02aef3c15789a5c2e2e2d1ee242aef323ca7fa1c142912917ec2ca02a8cb9c604fa
 SHA512 
9a4c7f880801eb1c4391a57107e88e3d43e6ce0a1bd617ba4d11951957e2d62116f102e55bb62db22378460c68d2ecb3a9b9b0285951c46846920ae02360749b
 DIST firefox-93.0-af.xpi 425657 BLAKE2B 
8f0f1df2ddc330f386d831696dbbbd15f639b0d95ae4d85b268924116f93f1bce22adc10b6053873f0ed6d69f9067515774b7904f7595c89a25edffde2e25e97
 SHA512 
f8c122c624c139c0afea5920f063b981665771ae107d32b654206dc0d00a8173230a357ca72649bc636d02825f1af90d291b5e09f9b7044d05b4af1ce39f6e6f

diff --git a/www-client/firefox/firefox-91.4.0.ebuild 
b/www-client/firefox/firefox-91.4.0.ebuild
new file mode 100644
index 000000000000..fce6b3ab8852
--- /dev/null
+++ b/www-client/firefox/firefox-91.4.0.ebuild
@@ -0,0 +1,1234 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-91esr-patches-02.tar.xz"
+
+LLVM_MAX_SLOT=13
+
+PYTHON_COMPAT=( python3_{7..10} )
+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/~{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 hardened hwaccel"
+IUSE+=" jack lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx +system-webp"
+IUSE+=" wayland wifi"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver"
+IUSE+=" +gmp-autoupdate"
+IUSE+=" screencast"
+
+REQUIRED_USE="debug? ( !system-av1 )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" 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.51.0
+       || (
+               (
+                       sys-devel/clang:13
+                       sys-devel/llvm:13
+                       clang? (
+                               =sys-devel/lld-13*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-13*[profile] )
+                       )
+               )
+               (
+                       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] )
+                       )
+               )
+       )
+       amd64? ( >=dev-lang/nasm-2.13 )
+       x86? ( >=dev-lang/nasm-2.13 )"
+
+CDEPEND="
+       >=dev-libs/nss-3.68
+       >=dev-libs/nspr-4.32
+       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/libxcb
+       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.8.1:0=
+               >=media-gfx/graphite2-1.3.13
+       )
+       system-icu? ( >=dev-libs/icu-69.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}
+       x11-libs/libICE
+       x11-libs/libSM
+       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=(
+       af ar ast be bg br ca cak cs cy da de dsb
+       el en-CA en-GB en-US es-AR es-ES et eu
+       fi fr fy-NL ga-IE gd gl he hr hsb hu
+       id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+       pa-IN pl pt-BR pt-PT rm ro ru
+       sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+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 use pgo ; then
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               fi
+
+               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 state path
+       export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+       # 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
+                       # ld.gold is known to fail:
+                       # 
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld.gold:
 internal error in set_xindex, at 
/var/tmp/portage/sys-devel/binutils-2.37_p1-r1/work/binutils-2.37/gold/object.h:1050
+
+                       # ThinLTO is currently broken, see bmo#1644409
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               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
+       export PIP_NO_CACHE_DIR=off
+
+       # 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 gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # Set dictionary path to use system hunspell
+       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
spellchecker.dictionary_path pref"
+       pref("spellchecker.dictionary_path",       
"${EPREFIX}/usr/share/myspell");
+       EOF
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+               >>"${GENTOO_PREFS}" \
+               || die "failed to add prefs to force hardware-accelerated 
rendering to all-gentoo.js"
+       fi
+
+       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 menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+       local desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if use wayland ; then
+               use_wayland="true"
+       fi
+
+       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
+
+       # Install wrapper script
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+       # Update wrapper
+       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}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+}
+
+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
+       local show_normandy_information
+       local show_shortcut_information
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+               show_normandy_information=yes
+               show_shortcut_information=no
+       else
+               local replacing_version
+               for replacing_version in ${REPLACING_VERSIONS} ; do
+                       if ver_test "${replacing_version}" -lt 91.0 ; then
+                               # Tell user that we no longer install a shortcut
+                               # per supported display protocol
+                               show_shortcut_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
+
+       if [[ -n "${show_shortcut_information}" ]] ; then
+               elog
+               elog "Since ${PN}-91.0 we no longer install multiple shortcuts 
for"
+               elog "each supported display protocol.  Instead we will only 
install"
+               elog "one generic Mozilla ${PN^} shortcut."
+               elog "If you still want to be able to select between running 
Mozilla ${PN^}"
+               elog "on X11 or Wayland, you have to re-create these shortcuts 
on your own."
+       fi
+}

Reply via email to