summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-08-11 07:02:28 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-08-11 07:02:28 +0100
commit068424b26532f3551a81421a9be67ed206e5c11a (patch)
tree583b8d979899a463a4ef5b26d3d49e85df987623 /www-client/firefox
parentd162ba1860a88062f4cd61f8b52fc303ba0b2991 (diff)
gentoo resync : 11.08.2021
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest198
-rw-r--r--www-client/firefox/files/firefox-r1.sh116
-rw-r--r--www-client/firefox/firefox-78.13.0.ebuild1187
-rw-r--r--www-client/firefox/firefox-91.0.ebuild1148
4 files changed, 2649 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 3ed441dae41d..a78f676eda71 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -1,5 +1,6 @@
AUX disable-auto-update.policy.json 53 BLAKE2B f8df63721191d84d8f1ceec263f63c44fd5dadeae0939baf9a4a6b1852516722b2a3d94b8d403cc7b6c6b525d5236f357ab65a72d716aab1f5bef47800b5a18c SHA512 5ed67bde39175d4d10d50ba5b12063961e725e94948eadb354c0588b30d3f97d2178b66c1af466a6e7bd208ab694227a1391c4141f88d3da1a1178454eba5308
AUX distribution.ini 1090 BLAKE2B d1ec76caf937a8d3d0898979c236b8cc39004d2d2c467da16356350fa59938f75f43a2b6830783ea4193cfb896a0d39c0b147527e0459ea5b4e6963b6e1b363a SHA512 6b7221646aeb7c8e08dcb800e54263407ec6cc8529dcc4438d52b36a5bb59431396a561958d405a33d0f455720fc1621adae4a667ec04e612c8b142eb6e80092
+AUX firefox-r1.sh 2836 BLAKE2B f2a80753f78bcae89f52ca161a0c558c3df5dd40d52f3aecdd1999dced5b025d222399d6603df17116539376f86ecf9cb615c592f7f6953876655609a69c0ac2 SHA512 8f174aa111416ebd2a092bbfd906c1b8e7fc7100da484a5d337c07cedbc761c443efa777df7340526da0f1116291550db08e150de326067b49fd4547db7f7a88
AUX firefox-wayland.sh 110 BLAKE2B 60875713743e7a65b0c5a7649b8a016dc5005b723640378c4b60ec29f017d7a227cdcddf3b77faa2cae33683b1b8dbf0688968071d9936def4bda4f66ca0aef1 SHA512 58d6b3fb5e9af26ce9c55d0da304eec65a5380ddd58e16dd28cc80ec035a9d1b88bd3815cb74a6999125d1540e77a42182c15e142803b326ddc9c3626e8cb484
AUX firefox-x11.sh 104 BLAKE2B 8d374235286fac0cfd113f851b0f48e9b23685f6890c6a959e4a071c6c2a58fd274aa7a88c750496420ce6918c06825d2c03cb159638db6567e3d773f3168cf7 SHA512 59cae56b34507f463c4480a7335ea25070beb450e3c93d3adcb782e070cb558544f05c7a784419d48f33cbdca7ed7b2c740c361da8ea081d0323677ffcef79ef
AUX firefox.sh 3103 BLAKE2B 43066a1aa148d2162f7c6ac422dd6983d7c4504ff09271da2ccd22adab9f834b5343e7970271ca995e2a85c17455988cac0d6235cfab40eff033ac29d33efb08 SHA512 7d443dc42bae690d22437be1cd025d8b21c7d31debdde1995495e6cab8ceb94ab0bcd63513ed5f68fefd2e1991db414c7134bb621f3079772e60e4ac9876903c
@@ -103,7 +104,104 @@ DIST firefox-78.12.0esr-xh.xpi 427839 BLAKE2B b6cf89388e45ca74b4d3042f9bf30535cd
DIST firefox-78.12.0esr-zh-CN.xpi 564771 BLAKE2B b745ddf8c8ad7686e5ca7142338ef4b2f2e362874d9b087c4f4980f4d9e96f076bb318e0782c8c2404c00e71f585aaa76b26da0e369fb02b9121402b5471fa06 SHA512 cb707c11c8c0554e6255e725ab5c68f3b15c2d34d85f84fc6ab4ee7eae83fa91b35be282d592b845f09539ec43d1dde8167bad1eb24b86adbbe236c72854764a
DIST firefox-78.12.0esr-zh-TW.xpi 564742 BLAKE2B 3d4b211b35c9aabe2c610b621c175bcfa4fb0f1ba4af607407b9002a475407f53cb8f2e7250a96fa93abd5ee74bd3ee5b0aff01a91e45ca7211fadb2b03e5e1c SHA512 a241c3af98170e0885b63ec0c140fb1ad7749a5bc762b7154b77282d33bbcf7926550182d261e3ac4b0084d4b8d98b30111dc459f3cbf2d9ccdf9f6b811222b5
DIST firefox-78.12.0esr.source.tar.xz 333737488 BLAKE2B 775a55511a48f4210807d2648833bca6f95d9f4cd48b5d0de8cf0bf2609590c1615fca7ff855ae3643a25466d131e15dc293e6a57aa05e1d91d2cf819b0b89ca SHA512 646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a
+DIST firefox-78.13.0esr-ach.xpi 460301 BLAKE2B ca4cd3d8d2384de6fd855bb6bf2b6f4a5bae9addb51e7a092eebd8e6f4de1b5cb7f452c58636679e68f58c89ae816eca6108813df8bea4272553602b65a40630 SHA512 b93d460f80a2403946c0daa8a083670b3f95cd91d5b9d9620b1ccd71f4a2eeaa6d9ee9acf73517e6efb56b39d8a4058f66e328b058df5c143006d18fae2d647b
+DIST firefox-78.13.0esr-af.xpi 428367 BLAKE2B deb1463defa2b2567b7f1ac2e6a12cdbd7b723ce1d1242d55fe34d3422ae52651bce6e785347647b59ab75bd9c8e42ab75fa6bbaf74ca5449844873077a826e6 SHA512 777c8f15e6a004e2fe1a48011187fe6d7d7ff2c8372885043e57e646a9c4913ded02695d970cdf0660adbd90840ea791008c342f33eca77b92e8809f1b659c38
+DIST firefox-78.13.0esr-an.xpi 508374 BLAKE2B c1c02f6732ea63a2692b2f82540c61a50a661c681f433299acaeca1008be387f489e58fc3e776762e0fda1799b956b503b3b941974bf2f03835c59cc2b724d89 SHA512 138363db07e7e2972cfb59ae76134f6604494659b0459596a1af56c37b33d0713c1632e34d239486c7b8adf46bb86aa84e9db3bc9ba428862ab075de76056451
+DIST firefox-78.13.0esr-ar.xpi 560955 BLAKE2B 2f2250f5cee51a85ebc0d44c5e683594b9cda155a70f6c168185a737495c1f7b1084e5505679aa990eb73aceb186accb786f8f12c9fcbe53bc6d5ab6636c8905 SHA512 7bf2a63204528769a443586ce47de9085f151883aca910d3814bc6bd70dc8cfb0ed5c4a96cbed68d15b06fd3d8f256eb4a23be62c2173ea76a8fc7aeac1f2240
+DIST firefox-78.13.0esr-ast.xpi 456379 BLAKE2B 2590ef002c4db03b5f92f12622700dd78e49692429ee9360bb70ca974e73ca46fc05c5fe7a77af5ac77470ed558461612c0461efa8d75a8aafc510d93aed6ccc SHA512 ac9fe567c893f2f5c4e6091b3f84481c0898b64a09430bd7cfa96b4be1824618a0ba17916e424ebc7a2561f1b7c6ec6de8862d27eaff2c05aa6f2610981283e8
+DIST firefox-78.13.0esr-az.xpi 497445 BLAKE2B 295eeb81ba639a847094db720a7b2f34a9672f4499b4a079abe957a913d5953f62e3f9186d888c97540814428a80abdcf1550ed15347a471bbce53e51850578e SHA512 80d2ecd9f0d58fc3c3ecf2141f599bae11ea9a754d417316a020b4687baa308a6595c5112927fe48d7af425f876bf647f6eb217cb59902bde76a8ff967465f3e
+DIST firefox-78.13.0esr-be.xpi 608659 BLAKE2B df63d42565cb7848711d843ad02a3a6eeebedb08ad59a76c54798314b13905c3f4cf86cce9451766bda8a30b791da37ecaa294ef430b549dcf118126b13222ad SHA512 0bb5a0e882f56cc15749b61f62b6a9039188767a8cbdf4d8e9039ba3a922c1e3b973baa01b9ab26474ee9491acb48ae803e63a95824481dc0a096683b2c670bd
+DIST firefox-78.13.0esr-bg.xpi 553974 BLAKE2B b76e7290edf1aa1c87a8b2a0dba09cb091be43484687c96d651a382cb8fe74cc13ed3c728a3ebf74caa90e5a5a24a8cc8dedb7fbaeacdb0583327b9f31fb0747 SHA512 e6119e25a36a04a2188d17d6fa5b77760c14353f54b96f7e29ed1381900fb756b2564d6f89175f8d3a68c33a00888c3d0514ac03d61423ca323869e69d8de7e7
+DIST firefox-78.13.0esr-bn.xpi 572607 BLAKE2B 575dccdfc43d46905e16adc80ed82b00b74a7b83d837c9e839873136e67a961e13a72a0b5d4b8312a3ddd9cc87845a9b4fc61ea6f7308709c21134a3a4ea5acf SHA512 32178259c4df33e5c67cd2e91358f88d2e43dcccb5ad702abe8e4bb06b36b15d767e5a9f67c89010e8a241d0e678a9ba49d82b55721927a83a2bb5b188c7e5a9
+DIST firefox-78.13.0esr-br.xpi 507138 BLAKE2B f556789f0afb060aecdf9c0dd18b0944b0ad68d88625df9a7bc0d1f2fe78735e97bc674a3cbcad3b20d50d8c21d4dd4f6ddf847ec38a9487593e9f401d4bf54d SHA512 91392d621a1f146c110720bb4bb62275c5befd87e056eb56f06be5c5592344fdc991f9e62bd0baa368688e01dc99f17e3ae01c633e2b1baa14c7ce8e3f555fc7
+DIST firefox-78.13.0esr-bs.xpi 463805 BLAKE2B 5ab8913e373789d6d24a6c74b7e00ed7954fdd47b86805a4de07a462c803b074f39ba469e33be282888c8f5ff7cc7e04b6892fafaf5290b62bd2ab1295b33fe7 SHA512 150ced0674293c1256dd1a02cf1b0c522c015eda48c46f80a34730c4158c9b03e409d12283bc10ce76cc19120105771bcf748d0a21fd3453541bba1693ee6fe8
+DIST firefox-78.13.0esr-ca-valencia.xpi 517183 BLAKE2B b7caad787c6899d90df5ee7f7ba4af71693b9f05b8e2409eb2002a6c4bede51e0dad61704a174de79526e6c0ec7a93aba7aac6f3d8dbbbf38639a79c0dee7cb6 SHA512 e220126c1c12fffcbb4b362a13b75a0c7283dd1a15f38d6e891c447fa9bdbf570e617cd50f6208316bf01f00a34398ed6eb5d2abc9cb60873199ae5a3108d959
+DIST firefox-78.13.0esr-ca.xpi 514178 BLAKE2B 80ff5a01ffdbcf6cd996d3cff9d92d5883645a788c46ef703a85e5167c3c331ffcbb6dd87f2f48e2910c01039c157696ebe6602df37ed2b5dcf9fb84ad5c0575 SHA512 c335b3b3fe9d15b81513060b6b5450e55db662e63105be5f99cb99ace6560e272669279cbe9d8142a0dfda6d38e5d24bfaec3a27a7303042806425c8e93ba95a
+DIST firefox-78.13.0esr-cak.xpi 551550 BLAKE2B 5659d9f973b24825959dca2d57dba1700562a7ce99fcdd752bd4e20644ae5d6941138c3dfdc4a186aae987bbe17d4fe124f644f927d4bf57cdc82372e28d8be0 SHA512 52b26214ee19f9f61630f39445f7335b7616b72367071834d4d94a9119065974acde2d64a676649570aa6541e635643563ff94fd34794001be249e98fd6389ae
+DIST firefox-78.13.0esr-cs.xpi 540320 BLAKE2B 0363a36a5e83979b8f9fe559941e9b8cbea3e90605fbe94faaf9045e4b6be3db4c59a777eeab5806e5f37987a60e85853f8b933342bcf3d6cafad41f8b55f24a SHA512 2b2a6814038e4213f5142477016356b9480c6fc7887051c3ba8a3d31011d0f03a42a92fd55f431ca25920cbf0350f8aab73b120e12e6e82d7d095bfc1e3a392b
+DIST firefox-78.13.0esr-cy.xpi 530701 BLAKE2B 9cd88db7de2620fb592d6fed33c13f6b54ccec9982feadf9a66153478eced45223d6421781bbf428e68ef29e7a5971e06fdc7ba95ed3e373a7ba2f429ccfd736 SHA512 a9f66379d99576040d7861bc3c06df7df904ed29e71f8686b790527de27b123bc13d00e22c4db10ca8d03a64e84fb8bac11148fac6866ac788858a5b79cde7c5
+DIST firefox-78.13.0esr-da.xpi 520278 BLAKE2B a7d0c1a095a8f9ced42ff51c85f2a24bc74a1c29d06d394cc587c0347a070a36865c2c4a0b988eddec0bd1ec3b3b6e155425a0aa8d852e1e99a6f791c4e67a37 SHA512 34d9c20c1d5899c11d08369baf7b94a50711b94c135a0a67dfe8281ae12b0e512ec2594c36edb5dcc93f609fc3e98714bf4dc89525d5a8ca19418bf6e31f45f2
+DIST firefox-78.13.0esr-de.xpi 542854 BLAKE2B 434ccafabcffab6226280155b3172da15fe5f12a2263f2eacd6a80d05509b220b4acc1da8c13f77ebbf15a1d755c3eba12e2789a6f0a46e4f497431e79447641 SHA512 f6818cd5eaed1d0bd2c1a35ccf93cbd396407ebcc09c428ba7692f75bdaa7b106da44e85a4b6dcfe66a06821943d3b0bc413424dc9b7820da1b9abb9a3545653
+DIST firefox-78.13.0esr-dsb.xpi 554282 BLAKE2B b509ff153d52f499c53a193be91439652eab0573231f228efb406716a3d280b6aa382edfa1f379c66dbd00a6ef4105ce9855bb6f86208e365fcf1c505af00e93 SHA512 241e36d1bc70f5c234572e9a4e048c6be55c0967743fdde19c53398e4030f4729371fa34656429d4bf9ac80a1b58e7786d19cb69859a8646184c405e6a90adcb
+DIST firefox-78.13.0esr-el.xpi 626572 BLAKE2B a89297cae63836060f439e897b956a2b00e438c40fee704acda87acb169fd9d91297ab69e5101b126bf29335b2bb4f3223b4a2dbdbedf1b40a010debd2a07f02 SHA512 68daa7d62fa75cc282c44a0378021f4b676411cec1608d5603213efbccd96ba239bdfbf1162de79a1c5b40fa4146d586247bcd20a913505b42c43e5017c9cf6b
+DIST firefox-78.13.0esr-en-CA.xpi 497730 BLAKE2B 944e287896bae91b9ae305ffffd4ed2784e43cbca3ecb8d0d4ea6a4fa66234173614b0c99d99a1abfce1f21083c88353c600901ef12b1976c5e8e01fa5f46008 SHA512 367804a19076a3ca6cea35931cfa3811e71639139bacb156e44b4ec1a19266a699d4b927b8344ffe28067eaefd18e005babc20a83220b627c59f50309de1492f
+DIST firefox-78.13.0esr-en-GB.xpi 497574 BLAKE2B 3f867c5fd234e67783dc7155cacc1812b6bd8a6fb8759b64dfdbff59f8dd72123e9087eff71d03dbd018109c9937f9efe3a3d8d1d54be0b8e68e0f8e19a15b12 SHA512 4bc690ca4634cb29c355973d37d2d94a1968dabe60836696d147e5d5052ac46b620e99c5a8e478a68d2c3965006b8644ee2dc2a844ee1b128286731512deca79
+DIST firefox-78.13.0esr-eo.xpi 525738 BLAKE2B d9c055bc8aaede7c7cc13fbe308218e69540374588b7094a1b20086bbdd75cc335f93d4d09c54f5bab809c722a29449773e027d79c457f35a43932c410e22514 SHA512 4c8a269b33986d82e77a53bf03875071aec11be9063ab93f1e878f8395075b7e3552695f8f34b14d878d49896ab1a85f2c9598287e22fa6f4ad771622fc525c7
+DIST firefox-78.13.0esr-es-AR.xpi 535813 BLAKE2B 08c7bff8682f82cb51dffcd0911efdb962b2acb2998c9f25815686c73d153015b158e3f8088658c023044740d7a9354b27582cb229db834d641df77e6ab51731 SHA512 39b1f25407b73e9354beda25e4f087c77d0a3bbc9957e2867c810c66f423519ef2a747e05ceff8a236567ed1ce653103fa59b9cdb1324c86291c549955c377ee
+DIST firefox-78.13.0esr-es-CL.xpi 535356 BLAKE2B 0a1b73b7935fc91aac2b98e6a0eafe8345b5477d8b9b906852c702cd95210b71de31c535503fe417f4a0d6f8082b3d13e6b60ad100ab7919150c6ca7c6c09435 SHA512 b36a2a63a0ce754954095eeafdfd40b91645298722daa6fc01b5d60dc66bc960e115a4067f6624ab865bed44c012c21c9694fac2ccdba74b6882a6ea3f14691b
+DIST firefox-78.13.0esr-es-ES.xpi 522699 BLAKE2B fb73ee445bb400a48824ce5de31aa1fec6be4252fc455397bedcae5edd3358028b69af4b1c56474d5da6c513ef274aff1144391fea32ff5c87d039c35ca76975 SHA512 758af7ac3853349013aa99df4df894ebe0b60e45152814eaf37e38b8cea3d1a1850d731eab3343256c3269f3a1f0437f3fa1ab920f16212034e79e79c398c5e4
+DIST firefox-78.13.0esr-es-MX.xpi 532313 BLAKE2B cafefc82f7fd260bd60157807ae83fc8a4856ac9ab72c7c71502bcbc14429acf72953e488a18d64bddef798fcce3b842a17dc937853d7d99635fd7a49ec6cd24 SHA512 3931f1c79a950c4787e088450a40f5044b73d5684d4f47c6480cf161b5fc0a7dfc30edfdc3ab317686d3113a90ae549748b6f6b02740103da86b8c1afa053a28
+DIST firefox-78.13.0esr-et.xpi 485253 BLAKE2B 4b237896b91c661ecb7afffdfcea8959f675ea1f2ad29691ffa07a71d3a22cfa7af701805b14c05f75e84316aabb0a6437d4458ac55659458b720e1754900495 SHA512 ea5309cd03aa32dd440ed5a72f5e1cb7e430c0440ebc91c5e8b45ed51785bb91cd3c9bd774f28cbebf1c523d7ef2de6de504b8318f015b587f6caeea31475c93
+DIST firefox-78.13.0esr-eu.xpi 505872 BLAKE2B af7b75906a36768399651abe01aca22cf4f2764e954c3b9ff5bb500b8c0d63114d6c1d15b06e24e2ab141740e15e8647bddb62bcf2ff6f7e400cd700837c4955 SHA512 d4718873c1c30dc55d50d4905bb25f3eaa2919349a34218ccf1d828238798aaa72c0cbaae6f2d8af0af69581eb952b69742b98498256c1fb54902d8d4856ec0d
+DIST firefox-78.13.0esr-fa.xpi 538920 BLAKE2B 5c38fcfe7792e5887a3bf10bfad34305074f9525b1b8ffc3ef3a02d9872281a8adc1deb00e68f4066170ae27401836beed9928b2aafc15567b5ea8b27fc2436c SHA512 6ed1a37f6ae15e7937e8a60e056df155d4b977d2895466bc37a042b3b9379a10db015fcabffbb703d1d65d1a7e66c62f014b876d7fdee99243f2406984b1d727
+DIST firefox-78.13.0esr-ff.xpi 481616 BLAKE2B 646dcb5075bb6aab65df2c83cf526f8427f41cb2359ab8887942eda4a377d5c718136ca0125a11d78e07a983c7529aea0c567fa76e150278b42c46d16547de85 SHA512 18a06d0fd236d58f41acf6491dc9bb391040d268a3fbb5945b88e656ad5d44d941562d042aa419b944850cd8c4e290f2246f43f8b70a8bc70e24aa7300c83d60
+DIST firefox-78.13.0esr-fi.xpi 517928 BLAKE2B 696e294eee7dab802b9d3713e333f10e0b7a5cdf6d190daa3cc22cf624d663f016d6175544501665b973317ceff446b2d3be354aeccb13a8ddb3842541e153f2 SHA512 a5a49de966bb9334acb2a036e23732eb56b8f4359e5982a88b68ba62fbf3503993044c79b592fb1d8e397db3b55f1afb863fab0f4fa271f9e8ca1f260a3d4dc3
+DIST firefox-78.13.0esr-fr.xpi 545877 BLAKE2B 86f92a9272466277e953cd91023bab29a3e0a602c320a846d74926bf94c145d8d8e05ca9c48f4060842633a92678bc747e97a2b6e3d1d80b13da473c5f6bfb9b SHA512 b9f3ac1736b5644d155b59e1386f0f28db160ce964b0fd7ab2d6559358ae902ff8da9b4d82cd6a8b41a15e6634c3c3a484712e0b1ec08c75e46619c213a80b7a
+DIST firefox-78.13.0esr-fy-NL.xpi 532480 BLAKE2B 0a0a44fd4c7b75c74905aa3f9691681a37fc6794e23e53d77105ea23b8bdaee8dd455ec58d0e5a4e009508ddf6310d77e67ae3e427d84492d89afb1a25bf68cc SHA512 23f552a6ac6e1d95911c8b2167d578fadc22583c7630105f38ec3cbe7ff8f4356a6e0fe3698b9ea7b6fd3a9c8f7313e4c901e4f2d67f288fa95f2d6e41d59fda
+DIST firefox-78.13.0esr-ga-IE.xpi 466892 BLAKE2B 2ed1c00d30929cd84413276f3dff260ffbfa474bd86dbf8abd63f72c28ef90679b398558eac9719c477c85aea9e48e6c1916d2f9294c6494209962b6e56ad88e SHA512 854679fb5656890c485a4e8566553420e54d7c5a18b394cba45fee608bfddc37b82bc3b352a5378ea87d8304beb77946a1b764713e2edc4a111d49ff75fa0df6
+DIST firefox-78.13.0esr-gd.xpi 491890 BLAKE2B 7af9f281bf698be6378b7e691aed329b33dccd187227551701f61c46cb419634b65ea17999a19da4a1664501fcd8ef038d6852b4c7d62e25d78f440ba2f20ece SHA512 f29b1e1086af3a93af4b8012680d052b666b1bbe4526c32be44b7126bd1127bf46e248faf78c579c4e4c1b962587ce7b18643954125426ad4ce9f02b5a4ae480
+DIST firefox-78.13.0esr-gl.xpi 528418 BLAKE2B a21b06208cc51a02321b216a0e0cf6df5bddfb3f749ae2d831b8a0de5f7550cc8e174be5f2402c67890cca798cb629dca13bfe68d10802bdd2523255638149f1 SHA512 3dc680e75e5489936a2110dc336374e71838c044fef7e3030ee17e80b23f3f171a802fef13b8e2ab6fcd34041bb5eddbdac6ee7036a65f1077f15f0d343a2952
+DIST firefox-78.13.0esr-gn.xpi 546474 BLAKE2B 529dfe3f5603b2c0144c8d65f6e2d0d41dca61c90c38178a80342f11d4eea9993385bac6a2bd33f3b1fe3c406cde0cb775f113a8a0ecaf8a205278276893325a SHA512 bfa84b5e81b898b8d88cd43632c538dabe8c00a708c905c91e222f88a9220e1d6c4415328dcc3b84d928279b3b5dea3eda9b39d15d1b3aaee8754fa904878476
+DIST firefox-78.13.0esr-gu-IN.xpi 541439 BLAKE2B 59b1cf09802c2d009c6df58d6ad231d3d3ce8a831ac9c9eb9ecc6eb00108d3d24c7eecda7937e3e7fcc94ef13bfc4f8d05d93546d775b5d5295dfdc1e60f8617 SHA512 6b0ddde030a780d90b146651f9e16c7beb1f455ecb3a2eec5fbde2b218e17b3536c111d52502e3a65ce2385575e13ea8f9fe1bce95f9ec88de70ed31a4003c43
+DIST firefox-78.13.0esr-he.xpi 545594 BLAKE2B e9c4af2587e618f4ddd0929357d497f1e4b95749e17c09d5e439b5a3aaaf7a766aad12b303a48f810219df5f50384cd325ba6df7b3b9e98fe45f7d75c329de46 SHA512 cdd10acb879c693409efafca19fabedb5d3fbca29185c0f38fe6e2af4f82e2ecfe0a88cf8c45945e8044daf1fdaf11a49aff9805175d9ca7f941ba9603d4a03e
+DIST firefox-78.13.0esr-hi-IN.xpi 567845 BLAKE2B b7bc36271cd92e2829e73339e150cceef02fc9c651b1e77b322364fe2b2f95e7f7b0f18160b33d475cfb46d376c1dd98ce9ceadff9cdfd622148135f3d7a5c0d SHA512 958cebf9c6730a6a71a2cfa50adfade1dd690ed4584cad4508ea3ab5fb1abb700e82454961c63d6d7f34e14611a1d121922a4fd5b015142783d1f0b79f3786bd
+DIST firefox-78.13.0esr-hr.xpi 522682 BLAKE2B c3f4bd7e567f191a2a4b501ffc00de72f2966e07a290ef4cb2d9015c398e95479f3272b38e776eac6b7275951489206088c3e96922751afa822f5d71b682033a SHA512 483bcd5387f00c9bb74280277086444ddd1127841aad5f72c8e1d99f77c7ab234b154abe6dc27fbfb9238063324c315b5429d8ae4040a7ccdb3385d30c3bbeb0
+DIST firefox-78.13.0esr-hsb.xpi 550660 BLAKE2B 7f5a35319c0849296114aca6bf8037598f9308e41a8fe1ed68b959543a744fb93644f94135f71fb33390c1ab4d961c520e8b57d4ce0943932eb520caee346312 SHA512 df10e5678e7c1815300a355e9dfe6d0b2a350d882bd31e7100155ffc5a70759d2bcf844740376897ce447ccfe7ba2b6a79ac5272b0d1dc22872bd9829dc688c1
+DIST firefox-78.13.0esr-hu.xpi 554890 BLAKE2B a04c706fb83ddd09972498124ab4c69cd73eeb317acf4d4b3592cbf06c2fab686b79e39f6462c9d59bbdfca51d3285bed1429b00f4f4bafbee1114d6a42da746 SHA512 aa4c125c04ca979aeb4a41d1f52ebeddf82eb7835862462412ff4859c5476a3339c7bcc6cbf6466f242a71f7296ef44f910d37c767dbd83d6a73cef2fb26a654
+DIST firefox-78.13.0esr-hy-AM.xpi 588992 BLAKE2B b683f8b09b032e371250712bea407e54065409e0c9fe3c013944ca7f7b89b65398803cb1afb2a56c6caab6a2449fcd6f68418a8a874fc4245fc3bf2739da7537 SHA512 e8fa0f96b46814b5fbe74b075f42004003ac648e22ccf12ec3c867c361d110c258ff3aca7e31be742a659698f3d04e11a13cb169da03681e5467b7c6c1194f9a
+DIST firefox-78.13.0esr-ia.xpi 518833 BLAKE2B 8ad262af0d970e96bd459b2591eba045cc4609f0898b0c99ede204aeffb422c4fcdedeec0701fa50cc16c686303611f2626161cefa17236fe5cf584dce31266e SHA512 9cc3a0e5f504ab24e70735e5aa688440dd769ffd456ecf2d2fadb3297ee8df7b7526bed89d04c08203ca99e3f3613356faea1e0f7e75bff73c2828cc1639f388
+DIST firefox-78.13.0esr-id.xpi 509572 BLAKE2B 1431d40db2eb8d14a68cb6f822a04005579ffca6a04b8063250ba6b252560442fb2b0c560b5831c47180bdf1f9b663add2bf1340838bd6ca15eec365a0bac299 SHA512 9ad680701be2bc0ba280c21a28e6e0587fd14bfd4f5337b1338e5b8881e7df0cf38e0eb4586115c3684c42a3b4f11160e800480cdf9ccedaadd3e1dbe6d75597
+DIST firefox-78.13.0esr-is.xpi 477021 BLAKE2B 2982ac46efe36f2dd5c36ba6a8edac87d37aff888dd2ac4cc4e6888254abb0e0a0e507cd67a6b317290357182ec21361495d354ff48e24b74a3b82e9e9b77701 SHA512 84ae935d055a5482036892c220fe8d952919854674b8625405aa178bd081363c96c87a2b27a522e14fb468d019e4e335bb8010ade498ff4274383637b3632911
+DIST firefox-78.13.0esr-it.xpi 449811 BLAKE2B 4130a27de327b1cb8d1545a256a46ca8642d210c2355342433c2ec94a302276bbfe000bfc676eb8bbc05547b8febd05edb5627ab9e2a8a61e917975695c3aee5 SHA512 555239c44184d6316fdf75fed7bf56a0a7dfe2d0e1a66852073f3200012ceb3860f92e36b63676c0d2450089a9c24048ee8f04e31b53e00a817f60123a4408a7
+DIST firefox-78.13.0esr-ja.xpi 578208 BLAKE2B f8d8256f6d35965b9360c3783ae263a73b918896b0294d403242bb91d19b06eadd9ebb20e01b643ca9bba781b72b16bc10d419d7f53d1cc1970e76b77e7e449b SHA512 f3fbfa55276b171acdb3e875f17b61c2a7d050b12c0416c3bc85846c037256e9d3591cdf87b20c1e25bc3337f6182d8266152f722f94a3412afb326d9c0c94bb
+DIST firefox-78.13.0esr-ka.xpi 579100 BLAKE2B 5fa3d8ffc64ef29876c63cd135252844e1f049412a2f858106655b0321344dc185df11f1a2c7fba2b707bc282784b6508235aac645a445fadda4ec9834e8df86 SHA512 b4184ed89b260503ef8cb5210a180d15c931d486c02efd9e28c0aa2cd7ddfa845ce063139e325562d372a00384d0fbf722975c6ab6377e82c3ac08dd76febf33
+DIST firefox-78.13.0esr-kab.xpi 539740 BLAKE2B 791c4d2e5c7e4126dd49f7187e2f81f958750bfc7ed53979c664d9763a8fd6e22b86716f6817726916cd8de87fbadaee34f74c97ab194f4458b0922e75a7d061 SHA512 075ed489d539dea49f7766654b8bd49f5159cd3bd182b75977e8416e651e7b87fe3f33c91ff2247a4318aab326c2ae4ee0209da57b7e83619c05df6124486256
+DIST firefox-78.13.0esr-kk.xpi 593250 BLAKE2B fc0f6063d7b39e94a4d07cd633cb7b1c7e9925c18f0dd91b0a802a230bf494522dfd459820ca77116b0e5db7a78f6b486cfdd38f2bc602b82c74adfcde911a95 SHA512 b929b0c0ba3873eac4d72090b73d35761a76c5518835e580bbbd3ec2710f3bd049368c4461dec24a6de0fa30dc1a217acdb563b64e785f93d5fb04f93fa04020
+DIST firefox-78.13.0esr-km.xpi 527364 BLAKE2B 3402e64a044aaf15a822fd2b51ba6a9beffc216ec8263a6f503bdf7f4977a4e37305b19ae8937167667a9470bb9667726bf77c76594bb3c35a0198505ec75db7 SHA512 149193ac6cc08908b9dce860aa4a2cc02d8c8ed3d2eb12ddac6f0b9f8338d778198fdc853af8a505a1fea1c202a9543dc79b58ce07ff0d7f0d9601b73b59862d
+DIST firefox-78.13.0esr-kn.xpi 506746 BLAKE2B f590d5ce7321758d8c10080ca80de1b605664fd56a844120ebe17308ab5ee134260a662e239156db445a727f02477d8a8b5bffbb125cdc629c80ef1fb3e94ae9 SHA512 fae713254c36a2741776f743e33f8bb9872e16f7b5a7d8076a157f0188916be7862582ecee1a3508e1441dce34e1a7765a2e897bd96879706421c4e598ee9296
+DIST firefox-78.13.0esr-ko.xpi 567536 BLAKE2B b9e0f99a91a22ce59fa94f35bc2b000091fb97d385a3e472189db6a68891bc8e45a7a259f937c60bfb3c9a7f3b245567d3cd9f3c357aefa074de41142405d4bc SHA512 81ce1e71d87a7136a55b853138be17e1bd5d310f81033e5ea2c695552fc72eaa4f81b3167889532b217b731804bed0efdb5b59ae5caafa50a27b778d32f17ebd
+DIST firefox-78.13.0esr-lij.xpi 475236 BLAKE2B a87fc4fb6f385fde26475e0a4ac0d7b0c1c0c566eb5f95cc4aa9d3e7bf255be99294a283fd5fe76e3c565dadc4b50e77cfc071db58fd0418b7aca52a0ea91040 SHA512 4dc2ad8c6cf9973704ac4338625a4cfc7a0bd86f1c1672622a831d6ab81781ed3c877f5809d2d69d074e5777eac7577d29fe29f54e3efe4ca57b92e1d348f45b
+DIST firefox-78.13.0esr-lt.xpi 540686 BLAKE2B 50fda225b85f7c980dc311fe49ebacfc3de0166c2719450262f3f3ee4fc499ef6ea71a6e458d96fa8633a2c25b7a7e5df9c2cf5d48bb70166eff88f14b342cc5 SHA512 bd5e2316f1cd2696a5b1a2aa3803c812babd11bce880bcde436d735f8610e701e0a31e662d9ff61732e2e110e1001ceea25c0b3f41911e2b50b1c4eea4fa820f
+DIST firefox-78.13.0esr-lv.xpi 467471 BLAKE2B 580dc5573d73da24983fb6fe3453c42aad828d180cc63db26da786b4e15e9b78c7ee4ed49bb601c0fbdcf0ace4693158d6a30bdbf4f6dead254a05e457393819 SHA512 9dd2ae04f93afaf63a0254b0b3277f14867d125984b41fa322c475fcc99b3ea8061efb8d419460bd6dee58d01dfe1f5dea8c83910b1f66850d5bc1f458767023
+DIST firefox-78.13.0esr-mk.xpi 460033 BLAKE2B af225cfb8e47eeadb443df6dd961235339d79bb7eb0ccd0b19347043894a5b0467575f5dcf5c503db456db830b65c60df25b35a512c2eaf49e5e34d334bd80da SHA512 16ecb8e2cbefdec9c9a14c9df7e017bc555ccfd3dd71cb9bcf8ea788498bcc3c4b465e89fa7e90272c8a188a6dc87fdb7d73c9e17157f2d9112bd9a3b8b84ab2
+DIST firefox-78.13.0esr-mr.xpi 541568 BLAKE2B 827b193174ee8f91121726cd67f4d5248ca2090e8bf76a0dcf9396fe2844e98486f7bb6910b5c43c34b1d24fdb6d89a635696136aabb3a6eac0a32b6a00c33c2 SHA512 844e201cc429aaba56a0daf2cb4648a8c8d85a50c374236c1c90a91c77a546847df92f269313d4907ed5738cbb4763084beb8e92748cd5fb7ae23afdaff88b72
+DIST firefox-78.13.0esr-ms.xpi 453064 BLAKE2B 4e47558d7d5f2c27b79a992bc0fca4e2f7f7736fbd5187bf90a0a31cc9d98a9d5fd5583a3153b479d5821f6884829eaef4441d6a18bcb38df5f58eadab75db1e SHA512 2108b828e90d7353c1f4282997fc2567edf9bbdb3f009578a80aa9f0f8d7db754cef9492afc63039178b5dd0462a21401a29005b914538880c4b8e84bffbb41d
+DIST firefox-78.13.0esr-my.xpi 526325 BLAKE2B 00cafe6ec345ba38731feef5e350f1174d9b41b90bab13b40925457f4e6771553ddd13a4dc06fd26a94fdc8d7934b15b065376eed8d49d41ae40de03cfd5fcd0 SHA512 2606263dbbedc8efdbd3723d6f99e9796e897c9fdd1dbe61c3825b00f0f0f1ce66c7e1c8615904cc98cb5fbd5042dcaaac8ecf3a5e77f2dd9bf646c06466c5f2
+DIST firefox-78.13.0esr-nb-NO.xpi 518522 BLAKE2B 783d790d25456aa126585c05cf5199fa02765c8a697bf2b05484eb17b3f0d402aee1346d3bbcc7e01b195dcb206b876e28d15798dfc2f137c98b8f141929ab38 SHA512 7a71a8e6dd4db1285c49443357b4583946f98bbb6e4b677a3da8ecd8b50834308751df78d4487302f5392ff87c73a826984769bfbfaedcc976447bea73ed5d59
+DIST firefox-78.13.0esr-ne-NP.xpi 483409 BLAKE2B 41f2e4fbb40432630f7c99f2593e151e0c5bf010c6c041a269b683628e3154d044791b50b2aefaeda083620c55815cb85428fc82dc6271c07a55407bc3e0f9eb SHA512 45bd2e9ed018edbe9a6e8d403bd26692fb66f52714ac452372479f0cced5f16de2a16d4691a2666a9f2e8717a58929ec09b2af285d207e10a51f4af4018ab436
+DIST firefox-78.13.0esr-nl.xpi 526215 BLAKE2B bf51749af575c21d582715041bcf20577d091cedf5d3fb16e091beaf261ca55c6734be9509d98e4bdb009f3833b8fa279d872c74bca49388f84070fc9acbfe07 SHA512 9cc5abe3c4eaed94c8a0347b053f1255f85d111a57102efeee4e438111c320a9a7db18b2a7d069329a3794f327efaaf25455b9b3244c5405318727ffa9b1e8a7
+DIST firefox-78.13.0esr-nn-NO.xpi 520165 BLAKE2B 80e87cb105b316fc580a921076d090ab3529be9f6e1eb88eca943fef7fe050d940b9e909290fec05c14f504ec9951e54fed9e4eb5b1374c03820ce94d806e6b0 SHA512 1489aa7b3938794db8938e3037f25d9f6298f7231b2180332a93abccad37081b9c07dbdf27cae71706f9485ada48961ca3d787a5d64691686b0a546ebedef9d4
+DIST firefox-78.13.0esr-oc.xpi 542153 BLAKE2B 4e8e2b747714c7f25e774063f3182269b085a7b4d4e2c870ced81ab847f9c90472007f244100263615c49e752f6ba8581e51bb74a1ee3025e58ef431bcd38b52 SHA512 ea9b63c0bdc83ba26d65f49d7f0e77ee8c11771ec9464c3b5d55cfe73a3f4b86c4b8a01560da8ac227eb5843257415c235f4e345eb8d356bb07d4b9e70ef709f
+DIST firefox-78.13.0esr-pa-IN.xpi 580355 BLAKE2B 2f77ef3a465d6d08ff0c8ab0632cc1619014d80e50e3c1d3a62e6f0fc597d09bd1c75d5325ba8bdd62aedee6a89caf42c5e7a18d8be4886f56f21148c6d447e3 SHA512 73abc1399df17aefc22397c560e9d32a8fdb7e39b353e8f2b31f8575c9fa453d6ef3268a80f4e671b477ade868e5e7147a0ab23ee6ae84fc9172aaf6857f31aa
+DIST firefox-78.13.0esr-pl.xpi 545612 BLAKE2B d5e61f21c1be1b63c3afcd124b0a1b52542c462ee75c7c972b8a4e7120080da5658d9603ec96859b26210086c9f98a25855f2b74d5ab0235b4f04d716ebc2503 SHA512 df3acefdeed5c39bf855e9229a2197cabe9280928422b44580fab3ce02fd7577142b2c00602f1bf2aecb4eea5fe8c8ad92b39e56ab7b573a01e225804d971dad
+DIST firefox-78.13.0esr-pt-BR.xpi 527580 BLAKE2B 694dbbb70ac01e77543d0ea431a78b1013c04705109f39e9cde7fe12ec2e070094a1baf4bd1aa6e96612bdb8e18ed0b08309c4586457bca251877998a66d0f1f SHA512 5ac17545748321c02fd04f01bd4e3797367c357411a4a5b332e2d49bef2e2bef5c6e75e858e34b5e164a6c6daf9bf8b85cf74703c6daaa64280fd368baafbd73
+DIST firefox-78.13.0esr-pt-PT.xpi 532051 BLAKE2B f8c209fff3c12d322c2498f74aba778ddd2a1e5cdaf60b56024b2d9e973167cf367fd39d98f5dc72d5493d195bb9eb1722b7dd75ef68c742b6be5d72f14b8aa7 SHA512 aca4c5705fc06ad6816b329f89b41fb05febfa8dddc02aefa0e976ca124f56aa115a65a828cdcec78f66d86320282b2c3ee579add44116f7c459a38cbc88d4dc
+DIST firefox-78.13.0esr-rm.xpi 526714 BLAKE2B c54d926dd3a0abbdcdd325dda8656f5cb5f633cc0b7ce06ad825599e5ca0aca0b6f14ba7bb4aee0c943388130e28335e6d23117a998c1d22482b384360aa391a SHA512 85644a756b51515755321f6a9e1d82a0035b09aaf89412b7b67b2d62bd216c271554414fc9164574d6e153f7afc6b0f7ee93a0fe6a7ae7993babdc0d84382435
+DIST firefox-78.13.0esr-ro.xpi 535579 BLAKE2B 56cbd08104acc42032eec831607cbb823b3c3595679239dd01fd8d3c0c98ebee562637616c0f2619453c1c7da2b27221a311776d5c8ed75d00ea18e39328b694 SHA512 10c5f936179e329e87a754f8fa41ea805fb3313911a1c58a84e595b941508ccab408e88fa3aa5f5f5f03f737cd886ff1e7f2c3f4990fc11401bec4b5b656da79
+DIST firefox-78.13.0esr-ru.xpi 614590 BLAKE2B 610e6db11ec6f491da83ebf4ffe70540644eb88388d7642b2857ba5e3d9cee8a4945a6476ca031c7553c6cd95ab85f520a9ed3dfae5b626a3a1ff1d6635176c0 SHA512 3cfe6058b1d14224a7791bf485c909b21f8db81fdfce655a8af76baae86aab648a31d8dd694f1b782a30a5ada876224caa89d140529b9b0259b60ef3cb1ee440
+DIST firefox-78.13.0esr-si.xpi 492534 BLAKE2B f973d5db15c9fe7d7b0d0e82c2644e289cce4089be701ffc4870ea63c6d27e8701ed8a447e3431d03b1181d1fd926bda68651d5addefbf02560fd3cf1422e55d SHA512 544f386723eff09441da17bf69f8cc151f9bbd2b443a66837b3ef148d6568650049ab4b395d558d05c4a4c0935fb71a59dfb01c3c5a8a131a2e91760e2f5c05b
+DIST firefox-78.13.0esr-sk.xpi 534241 BLAKE2B cea9f20c5722f22f64faa1f6bbd5869cb69827b4922d1e91ad7f66c0472a3ff273792314ed164ac7be4779ac6de7f3cea22738638275c621256ea1771d0530e6 SHA512 26de99bc30eb0a90babe5e667376dc8901c5374b4cfbdae0160271ac48f7ecab8a553008acb5464b60eb2657832dd6fb527e7266678e4ff16a491155e00399fd
+DIST firefox-78.13.0esr-sl.xpi 520940 BLAKE2B 66c23d901ec5bd1111a4f3e292dae496fc7b82fa510bb45a4e5df72fef567ae2ad7fec2fb91a17247bb4cfa3e0d5048f84d380fc18231c1badabf7ee570c83d9 SHA512 e90031dfa2558f440a75a3a34cdfd21457d85766765129825cf675a5559879dd61000ad78127d7f64706aa7036575ccec2b4806479bd0766a73a96ac5d529c5b
+DIST firefox-78.13.0esr-son.xpi 424574 BLAKE2B ee31f8dcaee77b335343ecbbd7cc66b7ff3c5fba94002443f0eb23379500d96412a107158d36b9fd73ab61a3849dafb19a5a4831588d1d4f71fc6e5102af4cf6 SHA512 c1bb069fb3c74badd20a59cf977bb0b0245a4380332fbd64fcb6f02b7c52d3f65e7e3969907c1b0f71d09404487d59d525b4bc34b10577972f325f7892f2d426
+DIST firefox-78.13.0esr-sq.xpi 544908 BLAKE2B e5fb256ca63b3e8161d2875df741fb5318020d710d7dd9de734afb5c894c294a33d0527db4de79d2bb796661343965d347d892af5f1681a54dc0089c7fb32ea9 SHA512 a6e5b97c6defec1bd3ed6dbb0afb59df32891008dd291d8b7759e1f61514ec413a45e1eeba0706e41f088422a0cc33e4c1f58797fb006d0872d58125f064eb03
+DIST firefox-78.13.0esr-sr.xpi 561377 BLAKE2B 8b65c4b4bb7e39e33f57c530b10bfafabb78508a3037a254a234aaa754f0ba74528531bc68449e4facc01c8ae72a8c9fbf326472f5e8da2358e5ee9ffdd7a128 SHA512 5fff90b3e5784938c8b4f1101b6fa42383b1c62611af6b60902611bd126eca842c9deb518efb2cc91b0e63f0dd862216ab2510c0b61799be5cdd2ee8eb2c5cbc
+DIST firefox-78.13.0esr-sv-SE.xpi 529694 BLAKE2B 9b33ee7b142ba01d6d40f7141549df756fdb966e708a7b6c565a4b7fc9e6713bce724fd191b1796cbcb37e94ce6677b6e6fcace75f37c3072176e22deae81c14 SHA512 5b721c1395fcb8f615888687d5d6c07fe566a0508985b7a4c3bc2318febcb47e1e9b419dfd1cf5a7ef470c98b38ca5106f0325bb56dc1f74db34e4162b3a6b26
+DIST firefox-78.13.0esr-ta.xpi 521540 BLAKE2B 2903678a17137d22249274981012af216edbc345fa8ed8df501071153de8deb8cab85294208af268b2da50f4fe3e76c9805353d5e135e34aac22d0acd053fdab SHA512 a8ce09230ad06373484f5857f26cbbce439d0251cf76f0768da8f70e5fd141f39834b254db25c2e712db4df73b62e2ee71be3eb376bad7be84916daabeba2a06
+DIST firefox-78.13.0esr-te.xpi 558394 BLAKE2B 5234b1293098bdc8c029dedb08686a78fccb50e9f5281d3d760e6a73fa4ff3be4da590b184a9b2870d8f2d6b214a628f13106ceb7bf82f7acd8ed872dbeb6c4e SHA512 248db47c72c987163fae11fbf5972bcc02c18b877228b86d1848151b5475d8dc77a70de925287c89d692fc0a33c61386fbd8e18a4a153c67e6dc8a18371d57b9
+DIST firefox-78.13.0esr-th.xpi 592241 BLAKE2B b111dffec4ee4cdf8483b668a234850f6df45aa899dc8548f312c342f82abc81853467f1881a093398c1dcf59b63869badf293318e5238f70788a77ee8721c82 SHA512 f5e037e845c6bc88887c3bba090bcfe5c6863da4a2bea21c35ea1c1c4d4d69b05d3f303a62653c1be10d326ddc50a3a0595dc99d1e50fbe39914d5bef05b8d80
+DIST firefox-78.13.0esr-tl.xpi 521106 BLAKE2B 8a2a5e268388b65b9791bcf1d3dbcc00848bfd72f69d0d60bd28a2f5d3d3edc4581a0000e66a89c78013510e5b4570c78b73bfa35dcf7c148de06dcbe50effa9 SHA512 5225d642a2647c3097868bc893cd95968cadd61a2078c836cd52adf948d4dffaa8a02b0e3fc9d43bf609be629508bb049cd6add4110bb947acac33925edd0788
+DIST firefox-78.13.0esr-tr.xpi 539868 BLAKE2B a651d7bbdad1f1838aa08434ed972141d945377fde0c3aea31a168e1802070cf646cb9c45225c2e3093801299f859ee83186a08483f8f6a0b63d681c54277cbd SHA512 633c50d8147f12a28cfa2fb997728dcbf71cdb5ad5f253817edf212bd656094bb1bc44e0e30bbafa399cd94090cf16e932304801911878026bc88d97e1fea91e
+DIST firefox-78.13.0esr-trs.xpi 501218 BLAKE2B 2ddbbdc3fe7db8c96dcff4ea3303dc7dcf56428f181de240b0f1d643e8ca59d2a9f5498b95abe6aaa8bbca3adc48eee98e7f200a529d2e5a4606981001f9b75d SHA512 d2df6fbdec088bc74529d4ba698b9bb2d89631106a0d2f797e0ca80f9d742eb21980a3f6fb9a0ebdec65af2a3434767dd7d3bad7bf04c52b4088a6c1d7e176e1
+DIST firefox-78.13.0esr-uk.xpi 608596 BLAKE2B c521861f67e0e139b0ef3eb0729a0660a024cd4d73f50235b485e8dafa37eb876949ace28770c2302e3f407679bddf38ab14f72d4e832354ad25b25e7d7e2018 SHA512 6a52be7ffeb05baa95328d8d049cc30c15cd9f466484283ec671c0c90ca90b06f68e30c78861db4c72012afb474e4d0b983b05292fc29332b089196197ab6e68
+DIST firefox-78.13.0esr-ur.xpi 557945 BLAKE2B 11940d28eda4478582e6d3b5ea32a2fe263843e428f4c4115d289a15809bba99cec30059e6d9d87f5970bc3ed8542d59d35eb1da1a7c33dbf576996904eb274c SHA512 ee5101356c137867c3a74d40dce3c985dfc22ab093aee2c3f923c07b317a964b83949b5404ec457f988b7387b6f17b011f14cb23ebfdb3501df72d243876b030
+DIST firefox-78.13.0esr-uz.xpi 477557 BLAKE2B 22131d49584ea9d8512c296b6bfe4ea46dce2df22fe1e99bae58639ceecde4941ae5bada3a3265a7de73b43f855a8b895959ec08ac193bfd990db00a536f53b6 SHA512 e43f2930becaab2dcce6a8fc93581da735884a086e78310661ad24f8d8496397c8349152f565194cd9aa7e6bc02565e81d029e304f206aa6f84f85808c8734ff
+DIST firefox-78.13.0esr-vi.xpi 562865 BLAKE2B 695282cb29634e91f5401809e1010572aa1ef26b79414764136da8af68d30df0713ca208e5106d892110559df786291411754bff327d40acecc09af9a9273b36 SHA512 68be6d3df4a69d5429cd798c5eedb3c863f8b9246162abd7a2f534843cc352b395500bf2732eb0ab687d5e712db03e58c6534fa1eea5e4014ffd990ee795f8f1
+DIST firefox-78.13.0esr-xh.xpi 427848 BLAKE2B c31909945f72dadee041eb3bcb4042ea97e5da17084a10b9af54174970d5e76b7c0606d58746a5ab4e85743dd556e6cbe4c2e718e9553cc39e134989c7261b83 SHA512 d10ca999401c99dd32bcb9c92dd6bb4652d59877153c91553aa2e9a12bcc86869ee36b05f78f7f4600dfdf511d8a04a30b7a539e6cfd0a9d45454af5bebe2ba7
+DIST firefox-78.13.0esr-zh-CN.xpi 564769 BLAKE2B 2771f27244e43c48075f9f6babbbd362ef02ae6aa4ff344affc84fc96cd69427ba2f9650ede1aa27ad8c4e240030855df06f5d5ba133cf1f42bdc22ef7e049fb SHA512 9ea0f86c5529e9d069e1066974be9c50b93325be653711159215e06dcd4b0ad76c7e4a8ba954ec3e104b424918226c2b4999c7328638d352ff389b0e24b44b65
+DIST firefox-78.13.0esr-zh-TW.xpi 564747 BLAKE2B 0aeef4fb1a7f1290f84f7f18d4f1ad63dd267a2b7f472dd7c2aac55851776c9308457ea9d6abb297c661d18b8aaff274d50ee1f8b39ec36de9a804b62bb419bc SHA512 73e873090097c1021c34e4e063b9bbc729023279b94a451307332ae70fb5f60b9cec6b515d3366550d126368f913c574200664322ca20b95279f7171595120d5
+DIST firefox-78.13.0esr.source.tar.xz 333506484 BLAKE2B 1922e2f6b2ada46e581e4eaaa388873d31c6a922e5165ba225eeaccde5c1c6d7369a57ecf8e89371a34f692dca5754a461abb7d1c9bfda9cbc4f021d39549439 SHA512 78a5dc8713ab879ebfc3b8fd7a8219844d06f0d897342fdf9a11471633d98e148ff85cf10e561899df4910b94a33b57709b64788df4621a8c0b83eb9a7102cef
DIST firefox-78esr-patches-15.tar.xz 65604 BLAKE2B 86e421e555ffd5f7f201d0f1a1c446c649739c67cdf8dca536efa115e09d9c357ce1551b7270c77e8bfe7dd53e0f3e6386496283879cf5e0c59b3c864951ebb3 SHA512 b229e895f083a0404cda1da0d8ae937429d5975ac52ab20e8b15611d9c737381a1076ebfa8c8a127dacac0e12a2a905ffd579facde2d80c6facc911e5739e34b
+DIST firefox-78esr-patches-16.tar.xz 55964 BLAKE2B 79d3a465c69656bb55ee7c1e9060606464b6404435b92f534db275521ac2343e045feae1fff6166fde9e2599a82cd982b0b2395271b1033f0f784e745e2c6965 SHA512 3aa971c726646cbf37a14a0dba6c4ac966b88db655cd8b730c5572543bfbf682991ee7c139889541e4f6936c13f27233dc1837fbdb9ee340b33ebb2cec59b01f
DIST firefox-90-patches-01.tar.xz 33084 BLAKE2B 943f5f9f87c6ce110dbc52e78a58ca64ab11cbf3af01bed8c0d6f537baebc0ef89455f01b966f9f052f62ec7124fd0b4019e27e410ffaa0530874e5dda73b01f SHA512 90689ad703de17c02581a6b8aa1c013b9ab96da22a17dbb8e06fc9a5fb04d00358df9e44285b5350708b366b32a7e6c6130ef8dcdb74b0f2b5c0dd44293ba825
DIST firefox-90.0.2-ach.xpi 467582 BLAKE2B eb20fc04a512be8d1eba219f7541af93dda781080337d76bce276a5583bab5db1938bff037a238377250b6810232b77534bbcf835362ee385b4b1bb6aad60067 SHA512 2f726bfe18bc7e6aa3cde436e9c142382513a1175269b710449cbf7481dc3d91171d21ca1bc30563901bb35eb31befa3c2aba115ac596951d3d6aeb5b94bd1ed
DIST firefox-90.0.2-af.xpi 430709 BLAKE2B 05cc8dde801efd97dfe56d1d102fa48e1b6e62b3e905648007dc488149628ad3eb297445319f0f1b620f2549d7830c16b81c53e06fdff1d43fcc70e815875256 SHA512 3865c9e96b66def2e640d747cf73ec97127b58e15e0fa01d5374d2ebe35a91d16a8176b68f4025122af56648415b47d03fe6a4a1e007a64da8a9ff4e1eae8ef8
@@ -202,6 +300,106 @@ DIST firefox-90.0.2-xh.xpi 430182 BLAKE2B d849e34655c8b50abb2ce4d2197cdf8761b271
DIST firefox-90.0.2-zh-CN.xpi 588311 BLAKE2B 6656456291738d7b7651e14558a288eec053c1815fec33826e6db4c36058007d9131fb2c2847fda57f8ac75d8b5da9e7c0334db6c9cda0043c8bcb2a84db92c1 SHA512 6ee44936371e07a21903565bdacffb593a4a4fd64413bdc1f6998cb406afa11d934eea20e5ad5117468750d3eca53e80aa6afd9ece1c63ad4eae59a459a3b0c5
DIST firefox-90.0.2-zh-TW.xpi 588723 BLAKE2B 295e5ebb3f810f1ab8b66f301ee5fcd67d147cc640daabbb12e481baf835a439992fc5e1d1195bcd8b28e91336281b2e94d207d77261ec1297c784fdc3fba5eb SHA512 a6b5747fc3986357f13db401dd93763f370e547e3fae61330108debd981fbc630f6af8003d6146e73cdcc948e4b79fc00614e6a257358155b3cfe0176d2e55de
DIST firefox-90.0.2.source.tar.xz 380670372 BLAKE2B 782e548663d3538d834feeea54c9fa54ff5580472b967bb60be331e591b782fff2a6877f2e8db29511ac4b4b3dff847f30dc8f0a8333ece3d4156d6ac10a723d SHA512 4fda0b1e666fb0b1d846708fad2b48a5b53d48e7fc2a5da1f234b5b839c55265b41f6509e6b506d5e8a7455f816dfa5ab538589bc9e83b7e3846f0f72210513e
+DIST firefox-91-patches-01.tar.xz 22352 BLAKE2B 2761467fed0a288f5ed58a2806eb73a00ae91f35d62284b48adf39898603a1dade82f7fc9a98a6154ee580fa7b010dc4bc2e656e6505bf9e3682c23698d02829 SHA512 1149e413af3fea1756754fe7ce6a273b00f07918074e16576d25113408e9c5a99cebb7e3a5195ff8dda343b8249e90b2778186d103a88f117ca7a3ac50ffa968
+DIST firefox-91.0-ach.xpi 465289 BLAKE2B 5caa3a3103616976d61880b893e48c5d5e425b409702b8cbd327a1111e1e359fa0341894500351fe24cc73deb8e7228b009e36332642c12d3afa92f9bc79c76c SHA512 42ca4fa331f7a53171717831bc3309782f7cd91ff2a91a7d8169b04efa8896b200cb2937e4365f0413f74cac71c7c5a41085d4716beb9bf39b70f3f1993457c1
+DIST firefox-91.0-af.xpi 433157 BLAKE2B 054cf19dbe8bead4d2a88ad5e8a2c6ad21569af45a10be1dddf7d44b179017fcb5575fe26063740bdc59b6b411e5decf2658bdc266f6bcb642207abf543bd9e5 SHA512 a7d07c25cee103086992e106f1448d6a5f7b614755045e6cc8d7e165a289bc7675034dc85be171a3677739fb9d88c38b5f5cdec58f120a129a022369185f8492
+DIST firefox-91.0-an.xpi 511816 BLAKE2B 4ded8e0e43194412cd7641af85f238165a6b5a3d0d215ba913665efec8d172f940207320c75b4d38243d9a6a23d9ed9fbf01dd7ca78daf81dd7ebb480d34b396 SHA512 4edaa0cb4f24b0bf20be96f95fba5d9cacf29d47cd9f93b95c8a4314bae50901bdd4031277ac596a2a2b5077b52faccd21a73c4db1481c3501671f5c65c13922
+DIST firefox-91.0-ar.xpi 573966 BLAKE2B 0dca5dced622775462cd0a1995c2c533c0393b93755e3719780a90517d1936e044abef2bc9ae80896fad5db4333aca9649f6e0f7cdb2ee3fd8452e1e57629a4e SHA512 a8fe66283f9817e628443cacec970d817e169ec903e6cab8c360d65adaaefa86f5e511ca4336e02655c27d09f11af9bf02da0fd75c30b8f62ceefce807881aca
+DIST firefox-91.0-ast.xpi 502946 BLAKE2B 951da964221af2f004595b2ae73cea80dbd9e7941f9e3f1705c32e30eafcfd7a71d75531defe1ac04d2ae6e06f1b725dccdd85cb7b3f434fc1b8e6c02b6f1d49 SHA512 170a7f17a70671e7408454536549bb6075076edf322a1b269c2f63b89e52d8734c193aa3a5d853cbec7af45b4c944a298f55c37fa653fcb859411b89f4dfbf07
+DIST firefox-91.0-az.xpi 500890 BLAKE2B 635160c21c321ff882528882af81518a1c3201aa255b4099f7f388bd690160bec68706c9a533bd1e68b77b6ebc6c5898d09c2d1fb5d79aaa0ffeca43f8627714 SHA512 9fc084bb22205cce52c7e900729a781f516daa504a089f454e026c2f1e4bab57aaf66e467a2398a37bcd5b45c4eb17cb17073599ca2031a6fbd02b5139715f7f
+DIST firefox-91.0-be.xpi 630156 BLAKE2B 8134ec1b2f0a953c370f80f50d61141c8fda8f53cfadc717c6de7a15328952ff9c0d94b6a0b39497ead48892c24c34d615a085a3ac6c4488b6a278fd8af5db52 SHA512 78edc9ad3dba1938058ead00d24ea5c0a7fe566e42e42fdcb2c44dcc4dd05175b6660b375515e2261b9cd73f271b630db479b7dafa0566eaab083bfe4145da5b
+DIST firefox-91.0-bg.xpi 585083 BLAKE2B 4f9c2945e2d06d12d7ea87af65a3a17012f74bc1c2dcab36abff75cff295a7d1497a624d93fd17b5c8c94a776d6e0d47d9b0d66e7b6430ccfd285cd01ec96de8 SHA512 bef93bc67062febfbbcfe8e311de1f2f469a035b9a954d2cdd7af1c3c974fa49862636738b787c6ae75af0b300fc3318e31977fa080ffa44ae8f76e24c2b0108
+DIST firefox-91.0-bn.xpi 576492 BLAKE2B 5b5494475cc9b83c5648fcb947129e4d034783f5408449b4c24ea3800019fbe9351b67540783ed6e6a775059cebac645ae43de1e60a42917af2a7d3be631c3c1 SHA512 8a072652885a163ec0d52859222dc517d9c9781326e5c66749ed41cc53989a53924b55ef7c868f9181d603c5f99b342c8f88acd7fb8fcbdd50698fff85d78aef
+DIST firefox-91.0-br.xpi 534798 BLAKE2B ff332548e1d18b8542bbbc9b934b3c4bda2e98332781c2f2d7b340f2680bddf83267e91235b63b3f59d07865dc6c15fe07f17412ebd313ec1c9b4bf6750e2968 SHA512 cabfd979e9753c111af45cab45c588f760a948432c7ee0dd4b51f39084f86da9925494441ac8e28bb5983472ff594f1f00349a5ac3aa917a7cf125c3df0d04c4
+DIST firefox-91.0-bs.xpi 473109 BLAKE2B 3511606332aec32aba83e127fc720445cf93ccfe484131df1effed727daadddde779a987398d18f477745f07998c6cb81532c10c0853febba6b6af6ab55c5b6e SHA512 cef96b038b392241938d3c1b55ef28a589e900d4ce3f08b62ec16e0aa5944d7a5e91d10424707d48a65ccaf767d46da9945462d65432376b10582ae5b54c85ea
+DIST firefox-91.0-ca-valencia.xpi 543231 BLAKE2B d02783b71d9a22074cf2483c916220c73dc2a7c0d0488230dc034789a0564128cd91647922e1ce0486c57b27ac46f5d519b4718c8a78f3ef31b05558fa9d9377 SHA512 c0ba6960dcfb2242a1f37b5de636a2d4e503649db6660908b80ad9efce8e903acb46c59a7723e72a7f8656a0c443a8225166aff2a1ecc5fee56fcdfd92b31a59
+DIST firefox-91.0-ca.xpi 541002 BLAKE2B b6ff41c7f0a665bdc0ec5a31aa4bacb228967fd05ea3fe25afc3cca8b65be30bc3b9162102a881d897a9c72638ba73730a10bc119b0e4eb4eab04d4ddc033db4 SHA512 0e457a1e7740ecad698cdc3941aeef593e5418def7f75e56fb5ebd8a6159bcebbe573a32aa2058b367b1f2435dd7886f3440a041b2434b5da100acfb1a29b1f8
+DIST firefox-91.0-cak.xpi 568027 BLAKE2B 798700b46c0e9249d1a958b0d5cf112b9b59dbfa1d6d2e50c195ed158f7f1a8fa674b13407f43bfdaffc28955fdd621072802362ded7519a3c80a84a3f0bae20 SHA512 0d31367c46905f39e1ffe53833f4b23d6c4f31b6f0b6024a585573de234234a67f0b8ebdac47ea53e83bec5f36f82cf3330ee773903d00fead6b51b0990a55ff
+DIST firefox-91.0-cs.xpi 571502 BLAKE2B 9899c0b7694c4ecc90f791f7c1a4ebc5f5a39fd9ceaf2df537d00142cbd631225b7727a1b162939455f03c9fa7b2b815105cd57eb7afa9a95fbbfebc8e10726e SHA512 c0c118d39c2c52b674f1aff66c412cc9b4dfe44c93c46a0920e8dbb46458111c2bec977114438e505e157f38b8d5776af544542ef8eae589cfd0ed666e9fc3e8
+DIST firefox-91.0-cy.xpi 548299 BLAKE2B b7f2669ae8ddafbde2a47b41043e0ff003700475b2e52f58a6a7ff6287f76f8b369d420e814e383d16acec522883d90b35c1f283b7fa615337030eda2326f53c SHA512 b5cac20a52cce8c92d17982c2836ad6d13e7df1148d6d73ea9c89a8e59a734c24ee8748570badd23bbfdbaf1087a1f407305d7673cad19ab39f6e912a880d0a4
+DIST firefox-91.0-da.xpi 540526 BLAKE2B f636bfab26c458d19cf40dd923543bd6180ff41b0c2ec27d124cdb91c686c6def368f12622f226c6f452636a39ef1e61d767146ee4dab7e5c5239954b0da9d3c SHA512 23506c3ebaec29486543050bcbb4946b03f2a27b9d951c2702c785e5ad6bde34f16a4b676043a51d8addfb384d4c1c8fbccd7d49148627687fa27cb24551b197
+DIST firefox-91.0-de.xpi 560086 BLAKE2B ad0674c865a939b20272b919e941586806e6015dbfed780c75e39fdeff42e191b46cd245d433d3f4a76fb7472a2a10562747d15245b6c2d6c98cd0e3ab8b5b29 SHA512 13369fe4af14708d408f577980a98be9edba511e1fd18e5a5cb6b33a9ecb4837915853d76297b16276031ae24292510e83010bbc4c74706018c782d564e69991
+DIST firefox-91.0-dsb.xpi 572864 BLAKE2B 894cbca3eac24e94b3f0853ef274f4b7178d80825fb64db87b9be507a2ec195799e979a29be39a7a237ad953b779c0fb49981fbb3afc4359fe75e5ec5a0f1922 SHA512 d7d52841790252f97fb0f55e444d4e2d5dcb939497daebb7584444d4d69e606ab36074e022578579b125402a8a40146f0cbcf608e4ddb23860c70ecb1bdd8745
+DIST firefox-91.0-el.xpi 646570 BLAKE2B c293b47413c863655717c7534ca4d35f8ce8a10cedb9f7c62758303510710fbac2572baf700091f3b840ffe3f15592dae5b99ebbebc7afe84c3e85a50943fd35 SHA512 924e852a974cd095368413b6e70ff6fd77b9db4e8588cd6e3eb79224b16f2ac9d7bc67f8c81fc39b7b3fa000d29a5916f1e0623f57a01bb5dae8473b62e182d3
+DIST firefox-91.0-en-CA.xpi 515718 BLAKE2B cd987596e082ec2e7fb919b0891fde74e6e911e159e7aaecbd0c28da453e53fa0a5e224b1f43cc08e66c0babfd85778b69d76b914a6d3e97adb6ad5e74750658 SHA512 c7da5c36e8ff434db4065d2d8173c4cb6d367f72b28592d20919d30d361a4ec5eab8cb11da4ed214dba1daf820debeae99825f4ed958a4b674e94de019084307
+DIST firefox-91.0-en-GB.xpi 515983 BLAKE2B 74b6ba2a8e506bdad24c39c5a4eda6d146dae134f6acf76851d852a75537a667ca0312490ce2b5b113f66bb83921451518bdc8d85c682100454784c4203474ac SHA512 4bdbeec68aecf02a16963bffe80f2b7f63ff59fe3e9a12fd1ed18a9437447507ee5d8c54f53313f41dcc056cd66fe1d3a1a4091d631e45b960c1a2d141c2edfe
+DIST firefox-91.0-eo.xpi 542040 BLAKE2B 6706e2a3ac2524b4ca1f9616e28569e05ef6efcd0e88e7029da5206b1842593f206e9fb6202caab3ec4aba145ebf8152dcf0b33120d037fd4e1c95e7ae8199cb SHA512 ba5bd1c10bfc1846feced56e587bcfda9c2002f481b8b79bec1a5a501833d8f5fb2369701227da8e1b4f6518713bc7865c2b11bc62c97494c8a57e721cb3bf27
+DIST firefox-91.0-es-AR.xpi 553515 BLAKE2B f0da3acb9e615d76a6fdbdce625ba5bee2b346e2cfe827aef0d0e2a961be13019759adca530bc81ca8a9afe22083f3aa0a43c309f37869c7fee05a72f75edbc1 SHA512 930323c03bb7b610d1cfba677b6d23428ba675e6a1fa5365ea6bfac6a975e0f84537b07b5240628eb976a074738bb45abb46ed4ce9595159acc32fdf789fcd58
+DIST firefox-91.0-es-CL.xpi 552538 BLAKE2B cc9b6f067ab109423552477f93ffc219f0fc9bc45ed39ab6b4a03c997c47dec79dcf4e8f0fbc04dd961ec6c1159e099bd520a5d0f07f256ae806e6e5a4e53672 SHA512 99b42b5ec117f17b5a06b20ae4880f902dbd42fe05b5da6fd6ef734ee6720a10a9cd0993c4742e7bb6a03fb89d5695e4c0b35ec3375f5a87a952befc998a70c3
+DIST firefox-91.0-es-ES.xpi 542520 BLAKE2B 6037ac0d852618fb67ce12435bb789c31eb9565114f2c3f07395ab44f530aac2f5aab9c46b6fd499c10320012cd62c0299bd529181bf9432fcba6c3c1ed79e0d SHA512 8fd364d3ca28b0f7feddab8fac78c32c36868d3bfc05a8f986bf5c0c46dfc3e32435a1e129740014cd6af19717f14fdef32ba3688ccf79abd3b5fb3bda5f5d50
+DIST firefox-91.0-es-MX.xpi 556671 BLAKE2B 23950c4d58151a3c382dc7d2b5413cf584a25a27cce19d3cd827e8394742ef1f074a791dee5431ae2ec214cf0893ce62fe003e1aaf756989c6bdcf44ae0dc4ca SHA512 12584dcc7c7ef60ea27f0cc30b2b80fe86c29c54af36d05706cbacda15fa73e4b79ea5d3d39eab3b89a98eaf9d2d123505f73c5210c6014851d0e3706558c69f
+DIST firefox-91.0-et.xpi 494137 BLAKE2B b28f36710c19f400d2a42f3ab7fbcfad794a31a7dc2aa2ff60eab16f2664f31501145a65427900e0b3f2bef4a40f5ec62da8bd49f79325e7586e9788fa318caa SHA512 75e41f9accf57c8ee361df2391b49d3ff43159ccbfec48c9e67b9dae24012c7be78c525246b71ea78e7751f458746933f9212db7761e804556f9488c8c2e7531
+DIST firefox-91.0-eu.xpi 539054 BLAKE2B d2e88f54c308159ebc6d3da8256562b34d5b5bec6db0fc65c04a296f59bf388d5e6d82e798ac002c395114f17a0ad67142866e7cf1211e3eaef7a310de7e7ec3 SHA512 f35028251321707f2b4033f27fb4981bdf6f8ffed7ba3c616aae994c8767cb5681362b65df359133528223ef2e444f303cc3d0bf794a1d450a70a5ceb12db786
+DIST firefox-91.0-fa.xpi 561641 BLAKE2B acd8b361e2d2a4b3e18dfe7b997be1cfcdc30384012b370118e6684cbc13c0d7a4f30d7f13d370c1d3f235bfe701e830e8ce7bcffcad4fcb2ab4c513dbf3a27c SHA512 fd397bd20adc1bd89cf6ffa48186176e911a63258db7de1515de2af0f1b6a69d252a3e152c421a3ea7686a33f65e1a1e64bc5d33ba823453cd64037cee390e4c
+DIST firefox-91.0-ff.xpi 485698 BLAKE2B e4e30306a77a2c9d6540deab07f375b38c143d6c71678f032aed2c20967474eb9d822dbd63d128d4689329e6d3257d196f3165c239da111372321a1b5bc1b0f8 SHA512 9c4641708c37641311f11a93412d49dfb53809fbe349fb2fed6e4d05fe29734af1d6004f18344b40cdc3d3f72ea8106d6cb33029df38a75c9cc8d11d03d8069b
+DIST firefox-91.0-fi.xpi 539818 BLAKE2B 3a6ccea3fef665e9ccf1e58e23e7cc737499a0edf736d22f07b639f9b9c52478c18390fe7a8d4babbdc8fc06c613ea3c9d2ed10a84c63fdd1f4d333272816bf0 SHA512 043dc0af8f994de82f2ee6dd6ea944412ae0b30b2e2a1c22a5d78d065a406b35cf4d25a165996ee102b3017c9d2b310dd5c535ed5779237b70cc4d1a1885fc15
+DIST firefox-91.0-fr.xpi 564065 BLAKE2B 81f89f497651c117857e41992c37991128448a399df17add0ca93e225f1a2d1703e751cbad855da5110d2332b968403e3375e28e58452b3dbf2655214b6cc1c4 SHA512 e9b619f3a1f657d4bb05eae658d597243a5d0579db1c524637a16346f8c574d279484a79b23c691a2c04ba0b864cad64a055e13790b21fe9095a2e7e85d8bed6
+DIST firefox-91.0-fy-NL.xpi 549216 BLAKE2B 44dbcb8405a419a1a7826fb834dd7cdd2ebb75c2c979fccd978e4a8822714ea8b092834effd7a2801d8320934d5a64f3defa06560a03f658db89ca0f1dcb179f SHA512 543b769c0fcce6fb08892197e8e071bd34a6090a6909d02d1cd65d1d7245e8d307b534696985a3751efaf30b85b217aa2a6b23b3edcfb3d062afe232e7e75122
+DIST firefox-91.0-ga-IE.xpi 470708 BLAKE2B 33e16c7215da016ba38f650612758b53a4e90d441faf424d224501bcdbb27f57f69cc56dfba27da4015b364870fc7439718ea4da7b3ade860d18db8a06850651 SHA512 12ee445cf04d63206c00c472de89e0fcd289619e0e1267d43a552e831c17c6201f734f96dd179fc1ef196f3bc2029233bcab5f649f4f403bb27ac34dce8d30f2
+DIST firefox-91.0-gd.xpi 545681 BLAKE2B 70a801a71dbc71ba53a41a8d3f47ce053b67f076ccff55abcddcb00ea8fff6f5002c43542a1e5d1daa719605a542bce288bcaf3ae92bd9244c8de6efdf9b422c SHA512 b8ebbb02f6d253c763e86237c65acfdcd855678a195c6ab5160d89e696f69f3668048e082ca0002a509bb690eb9d4695195965dc734ff4377d793b615fa1710f
+DIST firefox-91.0-gl.xpi 548395 BLAKE2B 93b842d01c577fdfd551c9fa4ff0d4b4c2985fbe8bc07ff014b37e34845ebfdd32d1163149e1617e91432d5d5fc1d8a5096584cba16f2baaab7d0d77b02f248f SHA512 ff0f89c571da15a253ca312bf37073b47689c60b96c4f78742a7c7b2f5e580c33fb666dd93839e5990f1d9cc49a8ef58ac94d3b996b71374f5795548270b7632
+DIST firefox-91.0-gn.xpi 565280 BLAKE2B a39b3d17003e6f1217b2b251b21e49b91808d1c68b8632c035bc2ce6616b81219a90f539a95e148d59181a2ce40ac1564853b7eb24e6a24154e4eefe7dc9208f SHA512 63c0f6a80f0134c6541b684e24574684cad8d365a8fe4d30b46996ed2781fca9e24796def22f4a8bdf72360e080c2640c34a2bb1f02b55f802a6817a9c41ba7f
+DIST firefox-91.0-gu-IN.xpi 544528 BLAKE2B 73ce4f8b615affaf33ecf45b798d67f00aa034a467dd2d5edba1e5d97ff6dfe40de5bc13cfe6d6d1972704566459d71e3e789ce6237825c637477ca531505374 SHA512 c378380aba51d2c39b2fb074d6e5e810f7d20a5c4eccde237d880f9953dfa051e71808c9243b52adb4df1a8f80a3d35bfe96666d9822786c51d6113a25791f61
+DIST firefox-91.0-he.xpi 563141 BLAKE2B fcf2159b718fab7126a2b8cfe09cb0ba361f2138d872e3a55e81b10e30bf3349eb2988d3716569e4243bc7c0cfcbbfcef89ce60cbada0eec855a9a4e80cdf77f SHA512 9cf94c33e7fe9662237c750117601a868f6d4a65c9d7af8b67e5e03fa308c515e9b8be9fabaccbb9177c2cd55a08c1f1b94a60ef8556cac1287cab8486f3019a
+DIST firefox-91.0-hi-IN.xpi 575683 BLAKE2B 3dbca885603431e569d3e2e6db32a43da8642f832b0fcffe32928abacdc2af583d4c67095242fa7c67d912a8d53e76254c70496e51537acae7cf95be24f0205b SHA512 7e237c94a3ddb8be408a02e23251e9ed913686a6b649fbfa78fdeef3f7383e684e8636a71a61a7d5cdabd6cdfd4fdce2594ac57a552870ec51a42062bfe5bd44
+DIST firefox-91.0-hr.xpi 544093 BLAKE2B f5eda58802fed3f6b86f49d3a150df4cd8103cafd14b686435fcad064fea87cf98b70400bac75262beecafd4efe556bd1c3de72e5199212fe6e51b0ac72a1722 SHA512 42689ceb500dd877c861c0232664a4891c72eb000ecabfc7c1fcddad200913d5c70ddce30f2a1d17b0117e9ad75e4b12eb67d886c1ec21c81429eff6e52e53a6
+DIST firefox-91.0-hsb.xpi 568939 BLAKE2B c0efffd5ede68d6f77d92fe77f9efae9e95f8dfeaf7c178b71676d390ffd0f8c6f0f8d84a39abf5fe469b6452b578b81208ffff778b01ba56a90fedcebcc604b SHA512 8cbfecabdfc073f181a646cb63942b3933c555a553d6ff439bd7e7a32fca76495c999976e894074acbd3d1453a0e1360583813fccc65ed1c10332f77422720e3
+DIST firefox-91.0-hu.xpi 572762 BLAKE2B 527214a323d73161090256b10075ee4fcb70e23b8139c9199ef61fab56a38138b7ce905c1f02170aeeafc104d8de4a509a7bca78c3ea7be8e9cc20b4bcf8d565 SHA512 e12fc1a9def1b2fd2eef35f691b1e0b577d3116b08c45f2178b6b3be9ac6de5e60381f825e915cd4f88a686c39ff5b8b71710ecf433eed2a525aee0679b39132
+DIST firefox-91.0-hy-AM.xpi 599015 BLAKE2B 9483aaebb1da4e0f266948d03c6e37a3f046f8c4f983e412353bf5ee5eeeabce1e6600a1656f88375290b1bff218b3aca697f5b1b79c8fa45ea86f50f6cabac3 SHA512 a11ebb2f338352aca351b789a835db0222cbfeee6a053d21c66fc0203aa17a8280c9a7ab4b9519101259526e32f276305ce1364c3c40a49b1bdde10c96f22166
+DIST firefox-91.0-ia.xpi 538518 BLAKE2B abbdbc9dc6e443ddc5b13dd391a789641949a1ae366021ef26e8fd461bc11e8b49ea22ac5bf1658fb80792589f0ee6084e64cacc231678cef2cb36b5e83c4d2c SHA512 b06a9dbf2a7e3b23df9255d5a2760164e27494cf2c70d2b37747c25e7e9ae9ba9ecc961d290209c1cb9be0695b0785ca1f41a07568b24857d996ab430af1360c
+DIST firefox-91.0-id.xpi 533876 BLAKE2B b176f16b6dbbc9ae26ae172f5f6bbeaf8347964aa21da33916022e108b04daa0cc8701b7f3488c5074f59d47d4d87d397192a4fc75559c37462f7df580a24ba5 SHA512 a50be6a95d968befa539c568ed8c62fa6e96b8795faf8593afe24b54a4ccaf75ef71e283479793d2ca83892959f7145fb0fdff4043890b95c92ce74c2fa1885b
+DIST firefox-91.0-is.xpi 481332 BLAKE2B 4f20dcbf6673fbd03d91f384f36f6b6de5bf3f374d6121451917845cd4fb69394e88cda98ef83f9915954582f460bae6e0c0a9ff5549d22c6dbad02b02c4083d SHA512 6dc16097867d9d9744f1ce90e8df62c70f8d314299811caf1149758468ae274539754a1ac14f1a8ebaf08c801901f42589e61307959cd2d480a18e50069eed26
+DIST firefox-91.0-it.xpi 467045 BLAKE2B 475b1884e036d4606d9e4ea41dea6e8163f6e343469b83060b182026235b8ed2aa7295388621828653752c810787789d4c16fc15518507f4b54a0790526e2e59 SHA512 480500cab9415ec3f851e325d04c8e9fd90d9e19b84c04f0f66f2e12361151c70ea2fdf2ac7bbf0f219d6a2a9c25776b07f201cde624c9cf44811aa1fe65613f
+DIST firefox-91.0-ja.xpi 599317 BLAKE2B ef486f48c54e6d0f4cef51c8202dfc73072c7b860cdfbba785b25443c6737c71a73335fbb1baa516937c05a3b33098414c4adcdedd529226149466d9e9494b64 SHA512 6e3d9cb272764b53a62b7dff03cc944623be38d0fdc9b4aca91992d314e7befeddea42ab59d4aaf8a6a536531a027ade5e185c7e0557bbc955841cc257cc7fcf
+DIST firefox-91.0-ka.xpi 600143 BLAKE2B 7d0477d2aa144231546d917f31777a657a4c973acf3bccd9cc743394c0ca86634df8f4fa2bfb6a5fdc22cf9f67c95e44999df801cb2284d3f266872149bd7a43 SHA512 9a952a328f0cfe6b994ba293974fd3542cef2286dd4adf441e09c49ca236b4549785bea97890608d2cbcce32c217d6d6a81197d931d0e676b4c1023a5996fb75
+DIST firefox-91.0-kab.xpi 557817 BLAKE2B 1dd2a6d9d471a0fed234b7912e3266b4890d1954a4d9c0c39e7db28d949e0d0d3aaadde70aa4f74603f686735b738e1f31c0c05d2b764aa58693e1f4091cf756 SHA512 361d2082f6b815b02a61257161efd3ffdec63e259ac10f60f18ea5621112fbd7285434f1d8cfcce4859db6ce9c9ab78b3d2b28dc25ab144c49d5c4962781a027
+DIST firefox-91.0-kk.xpi 614347 BLAKE2B fa493a734850f1d15de1cca43b3f3ac219f03df23a349c52637646b37205e4d3549323b72094fb14fa3153f4a997eeb2d65e667271bedbe0ba58d7150a010948 SHA512 960284bd5cd82b0335eeb4c59acec2ed1cf3e2239d60329c746a99350f2a0748def8cfb6677cf6cd84fa3d96afafeddd7cd7c9e3eea1eb3017a0260af68472fd
+DIST firefox-91.0-km.xpi 544984 BLAKE2B 16b1f51f6815ed86ba2be8306e3c4701ac34170d9c9a4b44006517f9c143b47d051578f01788976ab9e0e98555b66cbbf94964c32542d0d26fe022ce5c59f25f SHA512 daf94d05f4557fa0a4c0592c047660d44a2570737d346e0b837913b2c23394098b940b8d41a6c50a49c20855cd848c391f99b8f99370885ccd5ba367dc3ba2d0
+DIST firefox-91.0-kn.xpi 508509 BLAKE2B f157df3345e91c4a0db8561b5036ac45523e449e60ce2f97cc46f637257053d5b999140d9ce9ae8d2e529b50394b7f6a875b8d913053f93872636cea6d437330 SHA512 148d10e63e3b8a04a4d524d4b079cfaee4e5bcdaeab30e1f0ecf0250b0dd22f94ee6ce0f312ba5268d6a47f4d298e70ccff8b0275d0a47431a8e0696b358e928
+DIST firefox-91.0-ko.xpi 584341 BLAKE2B cc307a9e2a59b6c5702a27334a4ba03ac3d1db17c217d781880bc071ff6e8608bd463cd6772f05ccf39e5d1c16bc0622da2f37349653e904535d37ea0638d6f8 SHA512 7c43611c2bb301fde4058be2013da705f4fce857bd5997686e8f8e5c8b23237b65ea3d7966b9713f9ee969976fe2a39f18b270b9301776aba1aa45554e7bca90
+DIST firefox-91.0-lij.xpi 481935 BLAKE2B b53684a60ca34ff8bad862cf24edf9f0d1da536693c3314fb50653a0dc6a337bb3da80d92033b60294f365a5235ac3247787dbc813265f6218299ad3760c7c6d SHA512 625bf884951645c2a4b271948cf19d9e03fd0d11682f7fdfa95efbca6a0a2a0434561df3136324577629d71ce68d48ee3cf8a249fb3f401268c196e317e8b88e
+DIST firefox-91.0-lt.xpi 567601 BLAKE2B ca2618e06647ff5a3541248d95b9b93c85f239669b75c5876bf539c0c07cb30a7923b0d3135a1417782bb3bb41b2e21688663db02abfdd9ef3c8cdfe6ed23cd5 SHA512 a7190f62eedd11625c9c1791865b463877c98bf73ac6ef3abd10a89daf85d4f966307ae04b525b761ca5c7b18c188075cbb858d4b8c8b2aa8ca871c249aef3f0
+DIST firefox-91.0-lv.xpi 473335 BLAKE2B 86097eb1233969278f691db92ecdf0d259208fc2709434f90e57a39157b75d7319b0e3fc0cd5cce534b31634e84a3fc96157d14390d829f63fc84b35d629237b SHA512 fcc238b564ce02773640222b3b8b9de44586440729f59a702437751b37c259a0d3613d3b6296cce1656f3d36ca097ea3534f26e43c040ae2e0decc2caf8cd5d6
+DIST firefox-91.0-mk.xpi 473482 BLAKE2B 5404c3c38aa07977d5b09d29ec6a0c396c08b4c706bb549a103f8c98603d8ca87c844faf82a0d40cde680c91528add2fed66081501f963d0069d2e477763b2c8 SHA512 92aa41a4acec82a0b466ae7ac57f339d0d68be8e1787107647fcc343b152f85319c2d7f15dbef3850e414a01492eeb869b733b4909ff47048e0a2c557824c7d0
+DIST firefox-91.0-mr.xpi 544857 BLAKE2B a071cb0b89fe4bb5fd9e17934ea6c81bcccf212e22d46886e71608417ddab17d6a50cf686226ca18d00d595d9a0fc01b26bd6d71f6b64c0a8de2787543691d76 SHA512 d62ffd4a68cfe3a79ea9d51bd257046e1d35318561c43bcafecbe5ced002113d9b747499d7875288c0c18f39c097dfbd563e58877985396aff023b5f66f3c75a
+DIST firefox-91.0-ms.xpi 457208 BLAKE2B 3262d30d2f35eb49ee6d0465669f6fa6aad3a39750af0b02f138a125cf0e4616aaa9387dcc3dd2bd1013a9d5d8845457f45737482cb4c414bf13aa60a9aaff1d SHA512 4a388951a188451f0eb8f6d2bb18cb7e082c0842d441781fb0fe22b22b5f3322ba3eff7e55834e7a62464d8b06c6d760fb0d2ad81d46cd38360579ba4f4173d5
+DIST firefox-91.0-my.xpi 530139 BLAKE2B b62a2cb6f9c1398d0b6b8e15ed6cb3ab332b2a12b016402eb27bccc83507a4b425ab72f448c3c6ab75b23e290116cb8b47071e6aa739786982011846a32c29bf SHA512 78f965a40ea515a6e6f1ca2af88cf8609c04210d7471524c64a2d359634668b091a06d2280c3376babb59b767cfe2b6bd63d429dba45781aa6640d890f8d3e8b
+DIST firefox-91.0-nb-NO.xpi 534995 BLAKE2B 9e7118327229f119913e8ed956bc97d9f55665e46d5233a48404428ecb2c4ecd8c289dc6883ec6e12c0a1298a25803d14515394bb1349a1b47277bf0def19a22 SHA512 b05e123b56d9f01e35c47dc74366d7580fc2535b80856407b91ef222f75eff944348588667446b59f962f2c35cceb03c72398d6c55a89deda857fc4d7fb607b8
+DIST firefox-91.0-ne-NP.xpi 486180 BLAKE2B 056bc4ddb87578f7e8608848fe2bffcfe949d1ce31cb7a037fe8e3abe6213e3593aabdd067cd196920f4dcdddf1985cf78acc5f1c737f9e1b2fdef5b28f76d4f SHA512 60c0468a0cfe5bbcaad0a6d7b91f9df7879ef8603a469f83504b464ac1356be28fe0b16e2ad81939f79455a608c7f54ffa3136e6d8bd7e73d4c96572857c7c67
+DIST firefox-91.0-nl.xpi 543377 BLAKE2B 2814dd33998f8b200e1b6104a223dde198ec710313c29253c3f00f8e1308b940dd9d82a7c1ce8a9df46f4539993f5eb2f61909de34af66b06bb105efb4aa6d22 SHA512 5c06170f33e0f73d3d87c9bee1803fcb69e89b7e258b5f003b7a45365db8511fbf2088b515224d2197c0cf16e2eeac9198b9cc3b2fc80bb9ec3bcad785d11d57
+DIST firefox-91.0-nn-NO.xpi 537549 BLAKE2B 1024e59210b1f6ecb7bd4f9087b1100ada72527bec9243ec1f4ff7e9b79a647e52e86e926c1d87a96d40854a983ec91eb8ba1ec3b8ab152bc4a4174e23cad8b2 SHA512 9f8f0729977b4c0ce78f4c4ab0561b665743d003c66c4d7af1da81cff2d1e1ec1164f97a8342e6000ec552f162bd1a75634a5298a90b9d5231f08405245a07ae
+DIST firefox-91.0-oc.xpi 559030 BLAKE2B 9bfe51ea062bed0af912c899983ad903634e0072afda8746d6b50f15c96c0544a0f6087ad1e90474e4b46759795893f016c8e25636cd75fe45f9b695db244274 SHA512 1cbe98fa36343932f06b36464b4fb4d59cf1cd85f42ec1eeba8ba0ac5c55f870a1929c65e001efcd609a7d274615ba5508512326743ab29c28322a1c13dc9b22
+DIST firefox-91.0-pa-IN.xpi 605084 BLAKE2B 4df145130801eae8f102bc97d13cf7a5401fa742d437092b29ceba218055539d7f7d7a42d6dd303c4ef8f138ff2c093b4a8767dc3a3ddd36b44b2d5e71341821 SHA512 302e58a8e055c46a02e9126033c0f2971e59f6909d33b6e0fdc44b95937ad51db8147b181e4a13d62aef075f0776f9a8059fcbd3ab70625a14a6420b261eae35
+DIST firefox-91.0-pl.xpi 562847 BLAKE2B b493355e4b22e81eda20001abf25b2faf72933a39849188dd7ddf033bb42dd95a45bb59834ccccf841e417e8b6454eacd5ddd27aabeec5df446674356b1ae601 SHA512 183b78b428e5fdab7136bf0650c41564efc813f12fea9b0b2de43a81a0f18e79c7b667be9aac8907a0ccffcdec13a4043ca61691ff658c99c47e23c46b1b0146
+DIST firefox-91.0-pt-BR.xpi 549008 BLAKE2B dc488c58d6a9aeb7cd01d0ffb6b8091749bb043e87a3a85f6606658c5e7aeb0c1d31fb98d01ddff6dabf5eb170e779538ef953b4a90a580023bea38e9d8bdaa4 SHA512 fa560ec92e6efc682f7ba53112a5459199d2f49f6a5532c8f4b98473ed1fc7345da57acfb44c81aa2d887be0aa9c3feab920957eef643d5bbe4a3e2e1b9bc379
+DIST firefox-91.0-pt-PT.xpi 552660 BLAKE2B 585bf88ac927ca885aabcff8a4f1ebe7dd5081cbcbcde45615f2aa3bc0046090ecae14edf4d20198d3741bd25a317c265072455036cfa026515313db07a13a7b SHA512 44aba25a7169225c9b6f49bbe75a49033db25a801214ce113c01cb23bef48b0676e7e16abbbbb85509c8895b55d18fee4fe9923723b97819bbacfdc25e328bd5
+DIST firefox-91.0-rm.xpi 543750 BLAKE2B dd52ee4014a32fd0139ef9c9ce6a52da5e73a005ddd9daf33ab08f2e5c4ee2de4bd3839d6ed18f35211eaf8d7be48fce9ca12d8428e69297f6aaceabc9cd1123 SHA512 340936ac955f88dba046810cb98faf97f2fd1e82fe29320bb423cff9cdaa14a56cc8b301161e73a3d6fdc799910ba0629ec440c60f2fb49b4fc162711f3923a1
+DIST firefox-91.0-ro.xpi 544861 BLAKE2B df223fa4cf02cdf9b10a318059a20af93587051b405b5564425392d9021a28eef55bac3960f9c8030fe791801918840d8a53f4f01fe410399c6d7c181750d8fb SHA512 b00c3c77238d6b6d20811fedbafc3261e69569c305894b9ef79887741bc4b922f7b4847752658e989a0c04393b73d99a52b0dbbf4c0a50ff33af0710dbf1422d
+DIST firefox-91.0-ru.xpi 635030 BLAKE2B a2e492f36079e46997228a3be1dc7c26a2128d97fde32b6119bacbc389885a197c28a7fabfd28e554dff753da3d6986d716782e8728129dbd8de31638947a6c0 SHA512 affdd9b7c04cfd358fe59978a18796d84f6488df4f16e6ccaab6b30a478a34f34fc50c9a0b84fdd44b7bf356e0b7b4a644944e7b7c6356c72d2a7901cbea34a6
+DIST firefox-91.0-si.xpi 496839 BLAKE2B aa1615830c25f27756d4742ca97da6cd752918894ad19570c03b9d18c1372f301cc4e0b5b0cbc0ba85d8f94d63dc9b0e8d4473a7efd982c021e238d929d5a5ec SHA512 60f2b66781bf1584bd5d28fe92689bf9a7c3d8b5fcecc4867ad794e109d440d099654d47baac38e030f6d24bb8be68c43b0db28e1ea35f6bf5eb48809d226990
+DIST firefox-91.0-sk.xpi 572081 BLAKE2B 5e872b8e610d44e05474c9b60e00dbf38262cfc17dc56c57b3608af616efff65f0b15c86e3ed3dcca0e9ff3de9e1575408651fe0867c65058765f68f441f6b58 SHA512 79789c47680a6f34113845add7cf8470124ab5dcdd171dea6dfdff2a8a114ea133d660be68f3551709a723feac1566635179cab48f11ba8fcfee6811a4316db3
+DIST firefox-91.0-sl.xpi 542775 BLAKE2B a0c8f588a1ecf684b5da0d592ea174dccdd471c70f7712e3d06d3190a36063bab2c42ca543fc42d24bdc7b2cc30e76a1c2fbbc2bf158ffe510f5ff2b16c3132b SHA512 37df4cf7c8cb1c7e09e0c95bd514f51979c595d2c65a36615d9a645cc31df5fbe18de2f16bac04cd0b7a479165610905968ae3ce8513f889272becea52ae90e9
+DIST firefox-91.0-son.xpi 432944 BLAKE2B e2a6a2b2e1046659f40b0e8dc85b99d2d19e19ae0670c87ebb5f60c0d799eca264912ef9be0c1125fa33f172e340f9243eddc64121858babb54cb87e3a6e5fb0 SHA512 03156f7974e940be06e2ebeb9715131009bb3d6fd2d39393e5b08c43b7a77ffa2f26bc93cd76639f3e33168adb2d6f7ed34cd57a9d8079f355a162dcad926a81
+DIST firefox-91.0-sq.xpi 562217 BLAKE2B 118e5f4f8fe7642183bbf71c1e5cfa874b923b85e9db4d429f0d5338434e9712bd6b4072f19f77c56213f81b992f3bd5b53dc63cd9c4ff5131c3c85ddf4cbfe7 SHA512 2257a1f266c8045d0323154a5d9e4cb3bd5ff2de5895871df422124fff0422aa23b4c69271301daf2f62c6dca4143c68c906188e65965a15c446e49a7db0f256
+DIST firefox-91.0-sr.xpi 596023 BLAKE2B 1cd0a25c8c549ffa2364aee8fec38adab4fd954c6c2fef55a1be2637af9a3d7385d26d346b2ef86d6e2cd72121ad44d9cec9c0675f52632231ad30ce154344fd SHA512 1736e357869d10fa43a2224242827525831bfbd663690727b2cc1df93d15429afd1f81efd73a0ef2d0ac9b278467cce6c0b60671538cf87b464ff1022302a039
+DIST firefox-91.0-sv-SE.xpi 546381 BLAKE2B 4cf1e08885cefd27ef193be88953202e9657ac88a79972d6ce7cca6ec375e738673074b5de364965e51c589a674b2f16674cb0e44879b37192652a75c97db2d4 SHA512 b42fe4ce6f43282235e5966578d227c75d36ca34358fa968a38b4b77cfef862f732a5e2740553808d3abdf666413740fe2bd5ed1490cac71273ff8f849cba235
+DIST firefox-91.0-szl.xpi 522367 BLAKE2B 053749a0877aafa4199765ffc28faa5dc589000b43729df663541189bfeac9886728001f8bdad57ab7303582886abd5dce0ee04c10ff8aaec976156f591fa8a4 SHA512 0c8a3c0a9ea5d7265404fff4da03cd3ae02ab4399695c632f39169d67cbbc3fc623a645a8076139a6010c15d131351eb23673306fe387e69660b8f021e34b17a
+DIST firefox-91.0-ta.xpi 523938 BLAKE2B 84d2fe504c115eae4d9eebcaa7f5aa30a5dd0da73a178fcfbd0a6806d48454db7edb3f73e5a7740450043548fa8ac951b90307ec95565e14f91a3e3eadfdcd1c SHA512 dfbb51e925b77663d69e07c122a96eb15b7dcc9a0d9f8210cb7568dfe491cda8b7a42f8bfca20d3edad30228ef23b697b115cafd7d7df92b4b5cd149fd1a4d75
+DIST firefox-91.0-te.xpi 564760 BLAKE2B c1bdcdb64f2519074b3204c7a37815ce3022af8aaf042e49eef3a60f51c9acdb65ac0ee769127284a26b9faf85d02ab8693cf508b4bb94eade46b1b02162e44f SHA512 655bbc6e1fd8a87a596d230a0a680da43db7e86270af93e7947dd7cc32fa6cfc1d0c6d4f4a24fbb1c0f27bd6ee8cf9230262fe59a1908badc54fca071aa6e1e2
+DIST firefox-91.0-th.xpi 614160 BLAKE2B c8b4524f2d81908f32f0815775e6f6145738384ee8ed9a51557a9d5baed533572484b77a07129c70f863d5ccf2d6b9df0f7944b95ce63c8bf4f8b71b228b33a3 SHA512 76c7613d8779a0197159c6bdba0c311fad3ea624b4de944e2d0fd25e03e9385145c2097b80ffe37452a0509b780c35b27e1ccd73e87ef26398e03db56d62d18e
+DIST firefox-91.0-tl.xpi 531314 BLAKE2B 0b4f982c9b7ecf422da6c3dd14d8a92b01000b61ad0c643f7268ed39635459f9ad4aaa489484d986908d32fad5d15758c3054d6ef8b5901f087f93b2f76938bc SHA512 3df710d6fdf2ebcf20e4012055e109564e5c7b44257f8183fdbb39f0a49f2a165904f16a3e199aa5fc68c516a14e18d34806537e9c9c024b563e01e3bf8f3798
+DIST firefox-91.0-tr.xpi 558465 BLAKE2B eecb412388348299dad551aa0b154427a8033a3a72bbf0a5213125f215062e0e3f2a1e166da6eab33b024668d7fff20f15cdedce7230acb1a88cc34f5e5bbd32 SHA512 aff6632794bed53331b459a4e860547dc24433abdb2e3ffa1c20356fe2c811b0d617814c49f3e50f204c38a74503f38e6a9db02344693c7818f5b36d38dcf4fb
+DIST firefox-91.0-trs.xpi 503654 BLAKE2B bcc134641064241e938dc54de465438e28ee02b9fd14a704d6ef34b4c57842667ccb8b98a957383e797c7f9bd37750b4b0ef0993ae371c1ea050f263a29f8b2c SHA512 a2fdd43966650398273f02e0296078ceb478b90ed48f3531525e63918a607627e5651c81dcf338c29c8b0fc825f8fdef70994f2377513e0f04ff66a42174367e
+DIST firefox-91.0-uk.xpi 628573 BLAKE2B 5c5fa5b70ecc57bcb3d2871525ccffb85d6f50d526305674292e687b4cd3fbb8fbbd75f31604e43b36e011231f508d6c4cbabd281f4d0743bc253f392f755aaa SHA512 e9ab80fc640986d309fa0e938279ddba8498493bd4a779516f60e5acef62e5776fa98a802b6b68a065b57f10ae3525821191bdc73c9a674ef670d22a0de04731
+DIST firefox-91.0-ur.xpi 572682 BLAKE2B 59813662712c2a4d237ce0c8b623240fe8d19576d77eef0489655bfce728296fd6cb13a92525358a18339f54d0a97cdd4a3ddbc21a7180e8213a3ebe96b6fb58 SHA512 10a062fca9ef824159a8ad40ac111ff4d9d87cd7a5de7f2a9342159b5a2ca6adfe076940a94f58a6fb0e6d099a12c45a8c3fd2ae4d88f8f503ccee78a588a220
+DIST firefox-91.0-uz.xpi 480952 BLAKE2B 9c81c2b7e32ebfce449c44e19b823d5536c1ec08b34b6db304c639f90cb180e3a697dc1883fe173952f5ef08253c533f4fb7a00e780d033320275310f65195e5 SHA512 4533906fe6854abc703639a9260f262a1a4a53a13e90ebb8916a8a52998935102b8be2b7d04d2176d47b3efef6960f31dc860c0aa6dd727ac26d70fb2f3e31e8
+DIST firefox-91.0-vi.xpi 580502 BLAKE2B 7c6886328396a24e164fdd9fe8d61a012c09dc1cdeb26c858b16e73acce75e8bd542017c620d25f8f111b6decf36db02588b62b653a112eb7d9f4c00887a9103 SHA512 83d85d88605f20180f3d9c70e215345d5e74e4100faf589a2934d4eaf6d46b15ab5139a8bacbfa7373fa45d9bac77cd111793420c725c1a67cd5da2babfaf0cc
+DIST firefox-91.0-xh.xpi 435046 BLAKE2B 39d8bbf73f7360899ff2e3e17ea76aa23096b090d1941c69df45b58e4ccd32ea44fb8ac6f7bc73e7ca61871aca9f94f2b815a5484c3e46adaae36afe02ae82fb SHA512 68ea88ed0116d662f08f7ce581cd3f14d3685e7a41b1fc0cf104204f09750e5b1b6e3f7884385498888b419091b991907f2fe159465e00313dcc4e69511b9a4d
+DIST firefox-91.0-zh-CN.xpi 581935 BLAKE2B 346ca8b1d7d99c31544e58e679988f0b53277c0d59dcc6be642a5fac863c1691c1e1ec66b815f7644383b907d04eb3481c850d0c5919dbabd159475cce1de831 SHA512 0456290e208fa190ea6e0a9f07a86c0ddbfbbfbcda7fe5c2d292bc6718de38838b30ad9412b8d26e57f56d7d42be76122a6d6b409d0c2ee298f738bbe3b98d4c
+DIST firefox-91.0-zh-TW.xpi 582117 BLAKE2B 0f39cab747215ec9ab3e3da043e8650ab654f5dcaf8c26e7f96b373f6fa101a7c8960f3873fb5cadaae879170dcf27d67d06791b7e25732964c3f5f830e7e137 SHA512 5e504c968fae303241b8ba475f030fd228d19deeb54df80520e32dfd005b626dc6fcc4dfc4c906d614b8e747094d474734d0a9c47baabd5121271f8063df4985
+DIST firefox-91.0.source.tar.xz 380788436 BLAKE2B 14cbe36c19b9dc64d3903994681bc42f2fbca30b97413088155620ec2a93433898bb1d247b55701bda61c4144cb8f1e460f6c2d5d5cdb57081a760f291c1a0d4 SHA512 a02486a3996570e0cc815e92c98890bca1d27ce0018c2ee3d4bff9a6e54dbc8f5926fea8b5864f208e15389d631685b2add1e4e9e51146e40224d16d5c02f730
EBUILD firefox-78.12.0.ebuild 34230 BLAKE2B 0d4f4b33aa635820ac38bb1a9b6023fb2716646791e165505ec60e155f956d389a3e6c249473ef2271045a597b45e57b006db59391074446149448ce57c601bc SHA512 c37b7749a18d72327c7656d59277336aefd355ec3983e69843878bd39b58afd3f1383c8edcc76fe95cdc2c6635aa056d0b3ce0af023a58c541f21ce40b5250c4
+EBUILD firefox-78.13.0.ebuild 34233 BLAKE2B 6be8c798440724a12489306086b3c82774b7b3fd6dfddedbb2dcc1c60ae858b2d864f2d4c92db6b21246f24b3384e5992395bd6abfde26ca4b933ac5ed965e67 SHA512 79d31d10c7e064886c4f1668c3e79958936849b6b975de03f3b337a7672b2a44e52f4167fa0c5dc8d08333eca982f918165dfb9418b47c6a8e7068a6b6bb8b38
EBUILD firefox-90.0.2.ebuild 34223 BLAKE2B 037f674055e4d81adf41ca0f708a5c728a3932ff86673261031aa4ac94ba3e785af06ac1e13615bb836456049a37632f8c0301538863056702d702b564293e2e SHA512 e999a8e1f13e4d79ce8f346a0d3899cbe54e444641d445769f15075f932e60e4916b6082ec353ad1965411f180557654c087e6d171e9f59384c3d9f243659445
+EBUILD firefox-91.0.ebuild 33559 BLAKE2B 7a5ef0bddaaf05420fcb561429e6adc0d7124fe4f8841cc41bd4508e6046c4514c740f5c48620ec5b5ab8c3b7d61c406c493ecda740a7db0d0f4ba55698b4255 SHA512 cb8234c829a142aba6f59ad3315858b61ec4ac4bf582ddc7475f060cde99ffdaf00cca504a4fb1030e69bcff128579a39bd7a3b38a4e3adeeb8368ab01ad0789
MISC metadata.xml 2150 BLAKE2B cd105f3b1d98b1fde124c6362c2e23563c03086a507bdc0eb0e4944f2050787f96967c4cba6f4605e4adcdb200d0c0fded6cc2bcda7ea7720d270e1fd6f33525 SHA512 a588a09ad3481522b44097b3c5e51211d5fc918a6733f3b6f1b1cd7994523894917fa737de944c235d45bfb9b57def205ce645ff1ac62ef7d6c3f3c51d387556
diff --git a/www-client/firefox/files/firefox-r1.sh b/www-client/firefox/files/firefox-r1.sh
new file mode 100644
index 000000000000..853a4efacdfa
--- /dev/null
+++ b/www-client/firefox/files/firefox-r1.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+##
+## Usage:
+##
+## $ firefox
+##
+## This script is meant to run Mozilla Firefox in Gentoo.
+
+cmdname=$(basename "$0")
+
+##
+## Variables
+##
+MOZ_ARCH=$(uname -m)
+case ${MOZ_ARCH} in
+ x86_64|s390x|sparc64)
+ MOZ_LIB_DIR="@PREFIX@/lib64"
+ SECONDARY_LIB_DIR="@PREFIX@/lib"
+ ;;
+ *)
+ MOZ_LIB_DIR="@PREFIX@/lib"
+ SECONDARY_LIB_DIR="@PREFIX@/lib64"
+ ;;
+esac
+
+MOZ_FIREFOX_FILE="firefox"
+
+if [[ ! -r ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ if [[ ! -r ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ echo "Error: ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ if [[ -d ${SECONDARY_LIB_DIR} ]]; then
+ echo " ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ fi
+ exit 1
+ fi
+ MOZ_LIB_DIR="${SECONDARY_LIB_DIR}"
+fi
+MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/firefox"
+MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_FIREFOX_FILE}"
+
+##
+## Enable Wayland backend?
+##
+if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then
+ if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+ export MOZ_ENABLE_WAYLAND=1
+ fi
+fi
+
+##
+## Use D-Bus remote exclusively when there's Wayland display.
+##
+if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+ export MOZ_DBUS_REMOTE=1
+fi
+
+##
+## Make sure that we set the plugin path
+##
+MOZ_PLUGIN_DIR="plugins"
+
+if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+else
+ MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+export MOZ_PLUGIN_PATH
+
+##
+## Set MOZ_APP_LAUNCHER for gnome-session
+##
+export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}"
+
+##
+## Disable the GNOME crash dialog, Mozilla has its own
+##
+if [[ "${XDG_CURRENT_DESKTOP}" == "GNOME" ]]; then
+ GNOME_DISABLE_CRASH_DIALOG=1
+ export GNOME_DISABLE_CRASH_DIALOG
+fi
+
+##
+## Enable Xinput2 (#617344)
+##
+
+# respect user settings
+MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto}
+
+if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then
+ # enabling XINPUT2 should be safe for all wayland users
+ MOZ_USE_XINPUT2=1
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then
+ # XINPUT2 is known to cause problems for KWin users
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then
+ # LXQt uses KWin
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then
+ # should work on Mate, Xfce, FluxBox, OpenBox and all the others ...
+ MOZ_USE_XINPUT2=1
+fi
+
+[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2}
+
+# Don't throw "old profile" dialog box.
+export MOZ_ALLOW_DOWNGRADE=1
+
+# Run the browser
+exec ${MOZ_PROGRAM} "${@}"
diff --git a/www-client/firefox/firefox-78.13.0.ebuild b/www-client/firefox/firefox-78.13.0.ebuild
new file mode 100644
index 000000000000..51ddc48081d5
--- /dev/null
+++ b/www-client/firefox/firefox-78.13.0.ebuild
@@ -0,0 +1,1187 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-78esr-patches-16.tar.xz"
+
+LLVM_MAX_SLOT=12
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
+ virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="0/esr$(ver_cut 1)"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate
+ hardened hwaccel jack lto +openh264 pgo pulseaudio screencast selinux
+ +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+ +system-libvpx +system-webp wayland wifi"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ screencast? ( wayland )
+ wifi? ( dbus )"
+
+BDEPEND="${PYTHON_DEPS}
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.14.3
+ >=net-libs/nodejs-10.21.0
+ virtual/pkgconfig
+ >=virtual/rust-1.41.0
+ || (
+ (
+ sys-devel/clang:12
+ sys-devel/llvm:12
+ clang? (
+ =sys-devel/lld-12*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:11
+ sys-devel/llvm:11
+ clang? (
+ =sys-devel/lld-11*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:10
+ sys-devel/llvm:10
+ clang? (
+ =sys-devel/lld-10*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] )
+ )
+ )
+ )
+ lto? (
+ !clang? ( sys-devel/binutils[gold] )
+ )
+ amd64? ( >=dev-lang/yasm-1.1 )
+ x86? ( >=dev-lang/yasm-1.1 )
+ !system-av1? (
+ amd64? ( >=dev-lang/nasm-2.13 )
+ x86? ( >=dev-lang/nasm-2.13 )
+ )"
+
+CDEPEND="
+ >=dev-libs/nss-3.53.1
+ >=dev-libs/nspr-4.25
+ dev-libs/atk
+ dev-libs/expat
+ >=x11-libs/cairo-1.10[X]
+ >=x11-libs/gtk+-2.18:2
+ >=x11-libs/gtk+-3.4.0:3[X]
+ x11-libs/gdk-pixbuf
+ >=x11-libs/pango-1.22.0
+ >=media-libs/libpng-1.6.35:0=[apng]
+ >=media-libs/mesa-10.2:*
+ media-libs/fontconfig
+ >=media-libs/freetype-2.4.10
+ kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
+ virtual/freedesktop-icon-theme
+ >=x11-libs/pixman-0.19.2
+ >=dev-libs/glib-2.26:2
+ >=sys-libs/zlib-1.2.3
+ >=dev-libs/libffi-3.0.10:=
+ media-video/ffmpeg
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrender
+ x11-libs/libXt
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ screencast? ( media-video/pipewire:0/0.3 )
+ system-av1? (
+ >=media-libs/dav1d-0.3.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.6.8:0=
+ >=media-gfx/graphite2-1.3.13
+ )
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wifi? (
+ kernel_linux? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ )
+ )
+ jack? ( virtual/jack )
+ selinux? ( sec-policy/selinux-mozilla )"
+
+RDEPEND="${CDEPEND}
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4
+ )
+ )
+ selinux? ( sec-policy/selinux-mozilla )"
+
+DEPEND="${CDEPEND}
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ wayland? ( >=x11-libs/gtk+-3.11:3[wayland] )
+ amd64? ( virtual/opengl )
+ x86? ( virtual/opengl )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy
+ da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu
+ fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM
+ ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my
+ nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru
+ si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi
+ xh zh-CN zh-TW
+)
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+ || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ # temp fix for https://bugs.gentoo.org/768543
+ # we can assume that rust 1.{49,50}.0 always uses llvm 11
+ local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
+ [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
+ [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
+
+ if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
+ local version_llvm_rust="11"
+ else
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+ fi
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+ MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py \
+ || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clearing checksums where we have applied patches
+ moz_clear_vendor_checksums target-lexicon-0.9.0
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_src_prepare
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ have_switched_compiler=yes
+ AR=llvm-ar
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-install-strip \
+ --disable-strip \
+ --disable-updater \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-png \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${SYSROOT}${EPREFIX}/usr/include" \
+ --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr"
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ mozconfig_use_enable jack
+
+ mozconfig_use_enable pulseaudio
+ # force the deprecated alsa sound code if pulseaudio is disabled
+ if use kernel_linux && ! use pulseaudio ; then
+ mozconfig_add_options_ac '-pulseaudio' --enable-alsa
+ fi
+
+ mozconfig_use_enable screencast pipewire
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland
+ else
+ mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld when using clang
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+ else
+ # Linking only works when using ld.gold when LTO is enabled
+ mozconfig_add_options_ac "forcing ld=gold due to USE=lto" --enable-linker=gold
+
+ # ThinLTO is currently broken, see bmo#1644409
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # This is upstream's default
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ elif tc-ld-is-gold ; then
+ mozconfig_add_options_ac "linker is set to gold" --enable-linker=gold
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ else
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif tc-ld-is-gold || use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc ; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export MACH_USE_SYSTEM_PYTHON=1
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Build system requires xargs but is unable to find it
+ mozconfig_add_options_mk 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if use pgo ; then
+ virtx_cmd=virtx
+
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+ fi
+
+ local -x GDK_BACKEND=x11
+
+ ${virtx_cmd} ./mach build --verbose \
+ || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menus
+ local wrapper_wayland="${PN}-wayland.sh"
+ local wrapper_x11="${PN}-x11.sh"
+ local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
+ local display_protocols="auto X11"
+ local icon="${PN}"
+ local name="Mozilla ${MOZ_PN^}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ display_protocols+=" Wayland"
+ use_wayland="true"
+ fi
+
+ local app_name desktop_filename display_protocol exec_command
+ for display_protocol in ${display_protocols} ; do
+ app_name="${name} on ${display_protocol}"
+ desktop_filename="${PN}-${display_protocol,,}.desktop"
+
+ case ${display_protocol} in
+ Wayland)
+ exec_command="${PN}-wayland --name ${PN}-wayland"
+ newbin "${FILESDIR}/${wrapper_wayland}" ${PN}-wayland
+ ;;
+ X11)
+ if ! use wayland ; then
+ # Exit loop here because there's no choice so
+ # we don't need wrapper/.desktop file for X11.
+ continue
+ fi
+
+ exec_command="${PN}-x11 --name ${PN}-x11"
+ newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11
+ ;;
+ *)
+ app_name="${name}"
+ desktop_filename="${PN}.desktop"
+ exec_command="${PN}"
+ ;;
+ esac
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+ done
+
+ # Install generic wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}.sh" ${PN}
+
+ # Update wrapper
+ local wrapper
+ for wrapper in \
+ "${ED}/usr/bin/${PN}" \
+ "${ED}/usr/bin/${PN}-x11" \
+ "${ED}/usr/bin/${PN}-wayland" \
+ ; do
+ [[ ! -f "${wrapper}" ]] && continue
+
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${wrapper}" \
+ || die
+ done
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+
+ # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # does not need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ einfo "APULSE found; Generating library symlinks for sound support ..."
+ local lib
+ pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+ for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+ # A quickpkg rolled by hand will grab symlinks as part of the package,
+ # so we need to avoid creating them if they already exist.
+ if [[ ! -L ${lib##*/} ]] ; then
+ ln -s "${lib}" ${lib##*/} || die
+ fi
+ done
+ popd &>/dev/null || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use gmp-autoupdate ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ elog "\t ${plugin}"
+ done
+ elog
+ fi
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ elog "Apulse was detected at merge time on this system and so it will always be"
+ elog "used for sound. If you wish to use pulseaudio instead please unmerge"
+ elog "media-sound/apulse."
+ elog
+ fi
+
+ local show_doh_information show_normandy_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 70 ; then
+ # Tell user only once about our DoH default
+ show_doh_information=yes
+ fi
+
+ if ver_test "${replacing_version}" -lt 74.0-r2 ; then
+ # Tell user only once about our Normandy default
+ show_normandy_information=yes
+ fi
+ done
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+}
diff --git a/www-client/firefox/firefox-91.0.ebuild b/www-client/firefox/firefox-91.0.ebuild
new file mode 100644
index 000000000000..fb09d71fe9f7
--- /dev/null
+++ b/www-client/firefox/firefox-91.0.ebuild
@@ -0,0 +1,1148 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-91-patches-01.tar.xz"
+
+LLVM_MAX_SLOT=12
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
+ virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="0/$(ver_cut 1)"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate
+ hardened hwaccel jack lto +openh264 pgo pulseaudio screencast sndio selinux
+ +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+ +system-libvpx +system-webp wayland wifi"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ screencast? ( wayland )"
+
+BDEPEND="${PYTHON_DEPS}
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.19.0
+ >=net-libs/nodejs-10.23.1
+ virtual/pkgconfig
+ >=virtual/rust-1.51.0
+ || (
+ (
+ sys-devel/clang:12
+ sys-devel/llvm:12
+ clang? (
+ =sys-devel/lld-12*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:11
+ sys-devel/llvm:11
+ clang? (
+ =sys-devel/lld-11*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:10
+ sys-devel/llvm:10
+ clang? (
+ =sys-devel/lld-10*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] )
+ )
+ )
+ )
+ amd64? ( >=dev-lang/nasm-2.13 )
+ x86? ( >=dev-lang/nasm-2.13 )"
+
+CDEPEND="
+ >=dev-libs/nss-3.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/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-67.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wifi? (
+ kernel_linux? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ )
+ )
+ jack? ( virtual/jack )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( media-sound/sndio )"
+
+RDEPEND="${CDEPEND}
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4
+ )
+ )
+ selinux? ( sec-policy/selinux-mozilla )"
+
+DEPEND="${CDEPEND}
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ wayland? ( >=x11-libs/gtk+-3.11:3[wayland] )
+ amd64? ( virtual/opengl )
+ x86? ( virtual/opengl )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy
+ da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu
+ fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM
+ ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my
+ nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru
+ si sk sl son sq sr sv-SE szl ta te th tl tr trs uk ur uz vi
+ xh zh-CN zh-TW
+)
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+ || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ # temp fix for https://bugs.gentoo.org/768543
+ # we can assume that rust 1.{49,50}.0 always uses llvm 11
+ local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
+ [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
+ [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
+
+ if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
+ local version_llvm_rust="11"
+ else
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+ fi
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \
+ && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then
+ # bug 792705
+ eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)."
+ die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}."
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+ MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py \
+ || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clearing checksums where we have applied patches
+ moz_clear_vendor_checksums target-lexicon-0.9.0
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_src_prepare
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ have_switched_compiler=yes
+ AR=llvm-ar
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-install-strip \
+ --disable-strip \
+ --disable-updater \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-png \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${SYSROOT}${EPREFIX}/usr/include" \
+ --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr"
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ mozconfig_use_enable jack
+
+ mozconfig_use_enable pulseaudio
+ # force the deprecated alsa sound code if pulseaudio is disabled
+ if use kernel_linux && ! use pulseaudio ; then
+ mozconfig_add_options_ac '-pulseaudio' --enable-alsa
+ fi
+
+ mozconfig_use_enable sndio
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland
+ else
+ mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld when using clang
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+ else
+ # ThinLTO is currently broken, see bmo#1644409
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # This is upstream's default
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ else
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif tc-ld-is-gold || use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc ; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export MACH_USE_SYSTEM_PYTHON=1
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if use pgo ; then
+ virtx_cmd=virtx
+
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+ fi
+
+ local -x GDK_BACKEND=x11
+
+ ${virtx_cmd} ./mach build --verbose \
+ || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${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 show_normandy_information 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 firefox-91.0 we no longer install multiple shortcuts for"
+ elog "each supported display protocol. Instead we will only install"
+ elog "one generic Mozilla Firefox shortcut."
+ elog "If you still want to be able to select between running Mozilla Firefox"
+ elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
+ fi
+}