summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-05-04 22:28:33 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-05-04 22:28:33 +0100
commita978c074e4272bb901fbe4a10de0a7b2af574f17 (patch)
tree8c764c1cc0576389ce22abd317bceba71ea5732d /www-client/firefox
parent40aaaa64e86ba6710bbeb31c4615a6ce80e75e11 (diff)
gentoo resync : 04.05.2021
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest101
-rw-r--r--www-client/firefox/firefox-78.10.1.ebuild1175
-rw-r--r--www-client/firefox/firefox-88.0-r1.ebuild1164
-rw-r--r--www-client/firefox/metadata.xml1
4 files changed, 2440 insertions, 1 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 0b9a3d77c9a6..9a0e2bb13e46 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -103,8 +103,105 @@ DIST firefox-78.10.0esr-xh.xpi 427850 BLAKE2B 72d4821a3bd389f4a9577f72c6b03e5bab
DIST firefox-78.10.0esr-zh-CN.xpi 564772 BLAKE2B bb36091f3062e3dafc6fd5e13255def73fbcffb32a71109386a6b51675b849621220803a43fc5f9a7afbb9b352b6ffd01e0ef19f8b8f935d062841736d9dcb58 SHA512 f3f0da1a79ad7ac5b0fdbc8b32f3c572c78627965ca4b08612b5b658267f726e831b502c63641ba88b0dcfb395317e1e98c76cb7deba03d98bff5a33769f6db5
DIST firefox-78.10.0esr-zh-TW.xpi 564736 BLAKE2B 102c5584ac0f8268e7db3431bb37c3b73e279a83f5aff8cd4c468fa321795676142bc75a031a07e913305d524155db43aa7b09c513ad7831ecde452f8c62de3c SHA512 0e300cb71c12ee2c3e861d077bb9658a995369274cf93d6f5122246be9dc871de710935547e9722251585618543f1e302d44f744b68d0d586ac1f307fb9baca8
DIST firefox-78.10.0esr.source.tar.xz 334642452 BLAKE2B a57e39e5f8d5bab08359957017bb44369598b49987b561176bcbb88b0bc10cd05214fd084faed872f4006e90e1b84a2f9b6f46049da763ef554d235c00d07519 SHA512 5e2cf137dc781855542c29df6152fa74ba749801640ade3cf01487ce993786b87a4f603d25c0af9323e67c7e15c75655523428c1c1426527b8623c7ded9f5946
+DIST firefox-78.10.1esr-ach.xpi 460302 BLAKE2B ee0481573067f25ca05964c9cca588cc56eb144d5942f0523a46ac97b8654403f0ecdaed9bd7645ee960a9bd6d758b326efaec6417e7f7e278995cee98dd610d SHA512 5f7872431bd06156edd436d0f2480e19be0282053d473667788c2519752c5d1d3d0e7816404478cc30524ece2075cc665d3c03a51d11ebee97c631742110788b
+DIST firefox-78.10.1esr-af.xpi 428353 BLAKE2B e6dbc7e8dfa4cd872472dbb0e588dc908270f53f3119d34bf42d1ed520726f787d5cac6e7434cd73e33be374d9ec37128adcced6c7bfff376f30713d99a084fc SHA512 d82d33cd0c9c79b27b6acf7d134f2ace43c7647ac6fda831d36a1ccd855fda3dd6b0d07b11692ffefb61a2f82d4e5f2423ba0f0f7853ca88aa59674eb82cf28b
+DIST firefox-78.10.1esr-an.xpi 508382 BLAKE2B b6d3364ae48ce0cd9de236c0fda9261793d2524060c53b6416a239d9f7d884bf1fa83c9394495507d9f12219803b4cd36291def2deed0b17e8a4d2d5ce25251f SHA512 207fe0d279866c726a8620281b05592daa98306f80a0ca628f78890c3da560fa0f5db20f44e0827d81d6d40c20749f8447c186550408cb450000f604ba29c3ce
+DIST firefox-78.10.1esr-ar.xpi 560955 BLAKE2B e4dca6c04f4813a0cf254d473a773c57214408a3917f52525e0f9625ba456ed927604d392f2953278f68f17e8f70eadd90db1b118a9076c4f37a5407fe137fad SHA512 8fdb4c9a0034a41a5d061651246eafb20f5e69a7ea958ec226375be0789e5987ccb0b08c36c703f99bde4ed99682ddc66ed7d0f26d681d256209485a7964052d
+DIST firefox-78.10.1esr-ast.xpi 456396 BLAKE2B a6137c4575c3d156ed3a1f7cc9019ab1b23dfb63593f5ad7dfbd0e76a1599f819de688f8c3d2717b0faa084da6446fa5711ff62360be7386efa2289f375e1c53 SHA512 d2fc9474db5956384efedcd4f11e78945a4bda3e9f8ff7835e13cdac580c1ff0fceccd6fa2d0a3fd51e01e7d706f1db468df4fdaa3a387d753c3f88e53e16c73
+DIST firefox-78.10.1esr-az.xpi 497431 BLAKE2B dbb11fd66b09cad24b18eba4328b9aa4074db2704621f75e24a21099b543de4bbd7be0a44712d9b43d33903d3ef3bb0aeacaa3295741f63fa1a28d0557d230b5 SHA512 36a2f052d5be6844c879f4fe3a48c4ceec9a5f0bfc3e2d93e6e067a842f55cbfb967eb7346931e785dbe4a9893f32edd35edfe63f87d322625c6590f20ca83ac
+DIST firefox-78.10.1esr-be.xpi 608649 BLAKE2B 65120b60423f3378b158427f5a9ae827dc1059ed5bd01b857b2d392ccd699a78cb6426d6c4baf39b353179613a0192fed091d92f8b440d08acf698c8219635f1 SHA512 4edf19b28d049f69092258aecb6a8e8a68e1fab3904bcfd0f609300f4568e14ddbd06318ab9b62e56d833a1b274b768d146faa0ffc43c21011f9d02aef25b05b
+DIST firefox-78.10.1esr-bg.xpi 553972 BLAKE2B 0daab4fb6f827b7a3e199ef185c8e319832a2ec751e8e16a335ee7ed499e4c1b88253d07b4ba5b2c6dbc1f0f7d0cc138de5f58350270b3b39833f7c311bbcd95 SHA512 ba853ec5fdbd15e268d74dcbc1cf8b19ae3ab8e50d43b50f7c77bb42f696d90ae351c0c03fe04d25de8019be11e93b15b090fac8e427ec448fd62bae460cb727
+DIST firefox-78.10.1esr-bn.xpi 572614 BLAKE2B 89de8e53cb7ccc491abe32aea3e1c5f3438ad638caba0eb3ea80a0b5935fab744ae1d2fcf7300704ab7253a1c5189b73b95c317929e86da49f0d714620c0278e SHA512 2e5a271032ef0bdbf182e49f3d621af66591071323c6a83bc53befe96625c1c5218843a15fe1c5826dad0eb6fc88b1b96dbd15b5fdbdf523ac1d218ad4e8c6ae
+DIST firefox-78.10.1esr-br.xpi 507132 BLAKE2B b668b5bb198266d3c6c09400003d15deef5580bb0a4a8697a6d655d6559cd45b52b56514f1679ba3cb09f0ac56a3fa0ef07cd717d3e7e794a6dc1eb0e38ac7e7 SHA512 fef97bb0b6ea8ee8f80fa8527fc8a582886fc38ac56605c13f065324d0eaba55b194ac5c1edd03cf3c542eee8fb954440fc5b1196ab0804d5fdb90accf9eabdd
+DIST firefox-78.10.1esr-bs.xpi 463819 BLAKE2B 43a8d07a07b574e1c38175a3100f3a54426b1ab19f5e1fbebc85b22d152b17138d9426e5749f9d5ca84c2cdc51c0ec993de6a9064376341a45c4059c91fb4311 SHA512 bd7d2448206397c070533456ee9b558082388aa2ce443e62150da4ca5b3af9c5e1b21b9187ed483b36c10ea44b5102d5e6d0702779b2bd7e2261796dcd2e7e46
+DIST firefox-78.10.1esr-ca-valencia.xpi 517180 BLAKE2B dd7fd278fc4aaed89cb29d157f4da97e508d08eb3e8bfffb698008841a055e51cebdee7e86e3a2a3414233fe86c542df5dd6c283800cf6506ecead9bf0138af1 SHA512 31242d5ea5ce744bb35d5f8098876f2eabff45ce608b965d1be31b9a47bf0d998373171da8b5a97665885a12ad3dc6e1b022b82fb1e0239090607cf60843121e
+DIST firefox-78.10.1esr-ca.xpi 514170 BLAKE2B 2547640500b68c683db9cffa7d2cfc353b8f6ec11b2c2f5101043807318e30f1e97e5ed127411355503abfa526c7ffbfaa4b9ec78d282c8f08e43afd5333024c SHA512 8193a4d6da2701302c162034a6a590aaae9c10cf6bd11d57172a5b259d35877a4e6c167a5c49c207e3df0d62384eddf78776e0d52c42015f9956a2c4dc8b439f
+DIST firefox-78.10.1esr-cak.xpi 551542 BLAKE2B c0e1631887968c252ec7b178fec87897283f4f7af9b08e68c904958a585cec5623232f23fe2ed66d5ce8cce1c8ff5b6cd6e042a42a6cfd3ff771721df054dc49 SHA512 49777d75ac2212cc8ef98010c473ce2e1013bc817af4e68c82ef15c39c02a01a8904643cc9331bf2efe61ff2c60461fb2ddb65fb05c1545404ba9b890f85263a
+DIST firefox-78.10.1esr-cs.xpi 540323 BLAKE2B 934e6956bcdcef25389ba67c085b1e75e0172d427d469dc135af11e3eac5be0dfa4dd9273a84647d9969eab1873979607f6e8a7a464c270272114b2a64dc4d38 SHA512 651ee21e418e0c5600d3ae9092772cf76f6a7216c75736f6eb5465fc5f498d890991080ca256cb2e125c89f2c3ee96ac0c6bc4bd6732f698454d073af376b9bf
+DIST firefox-78.10.1esr-cy.xpi 530695 BLAKE2B 5189fe0a56c174570e3217e616424457def7c1481f1533d261ce37902e654d49e9f584208165c3aa178e5fcfe842b06091413c7964d97dad492e970b611ba309 SHA512 0320bcd97ce6cbb622fa56e62ba860823d844f7a9ca990498d51332a00ae7f9a64501c413b5d51405e38e7fb6a5b64f92ba4b4a3f769ea771d1485e679aa6a81
+DIST firefox-78.10.1esr-da.xpi 520283 BLAKE2B bb9a412c4ba96e7641d4bcb698aecdeee99e32ce3965573fd6d036d536fa7744ff4e4afcc41ace100324493bdec95e5222ebfb531603f7bd0913672ae8f12b0a SHA512 15a7f3b19fe195c36bb56fa69036610c1470af92cd778945baec5a00cb8634c446a2b4ef3b7c67839634efeba27122e4725e7866c99cd1b8c88ede798942bdb3
+DIST firefox-78.10.1esr-de.xpi 542848 BLAKE2B e9a357e48ac47635ea2a132eaf0c0beda65408c3ce43d3723844c87f6eb5fc576b77980c4c0e8ae6f192b7a5aa6267116af43c218b181912e8a01afc4af8b433 SHA512 1a027024f465b5fc43ba3a7f9183e517a2242f88d7cafbb9f171caab0176414bfee8347c1c7e35a1bf2fa2651d5cfd038ab7763f045249f79a85887b6b698d95
+DIST firefox-78.10.1esr-dsb.xpi 554280 BLAKE2B 5b4d23d7b383bfc4bdad352e4a4b3f1e9613263b47572acbd713224e064924b318b551bdb4e5f52ed5bb1803b51044b25be296c1b425a0821a87ca6f75963544 SHA512 8e310bbb5a0b6dd24d812fe03689fffcf7162fcdbd5d388830026012f8327c02d87bf337455510c6416630e3f6e3aa799d8c9d72dbdf483a349404a85a7e67ba
+DIST firefox-78.10.1esr-el.xpi 626562 BLAKE2B 1838ad508b5c5eda68cf2f9a14ba20b78eb386b251aaa8fd3040e9f61bb23f114ac06dc28f194e60c4965940528e434ea65e8e2d9e3c0732b805634f0758be79 SHA512 98eabcd4be809c7cd57ae1c6c2cd48e7179e2ce6309489ca42594ae9103a91a561518421628256794690ee2800ac11f5249db855c86abfb6e8f1416d79ef14aa
+DIST firefox-78.10.1esr-en-CA.xpi 497733 BLAKE2B 901230ec2feef027821e9e286afa21d5f5ddbbddc5e3ef008345102c7bb58f228f4e6a007eff012510ec76eb164f258497408e91d73adbc3d1fea297cc1e088a SHA512 694e106f0b5b6340b54c68368037ac239cbd911e51b3fc8fd11d879bee17733ee57015f2bd2058bdac0a77eb430dfdcba7229a0178afb38cf03ac0de7b4575f7
+DIST firefox-78.10.1esr-en-GB.xpi 497580 BLAKE2B 2c61e1fc4aadbf162f838366a6dfb075836bd4e4e1acf6afd3a3217fb30d4bf5c50717de031c1875134e364a00323a08536a80b7ba69e08c359c612c0b6d4298 SHA512 da566e351e9b52c36c43720fc709af8ab892b729f1c7934796b400e7a521cb7d8ac2bbbffbc3d3d2775d25c80364477017b6a5eb9473264022b26cb91cd6b0b1
+DIST firefox-78.10.1esr-eo.xpi 525732 BLAKE2B b305eccf0360e6cab855f54aef3eb55e21cd3194ed18fbf328e8b82d775a79e8187c016a414cbcd3938a560a8c797c729d0d67508cd4a9ae31d489d4c36725ac SHA512 021808a824be5a00d7b22fe89a720a1a0ad1a9a1fb1846da3c6878c9baf563eedb9630099bfb80ffb2761411d5a5a68fdc80018f4dd2193656a4a07c81366f11
+DIST firefox-78.10.1esr-es-AR.xpi 535809 BLAKE2B fd6099322654aac1eda0814533b2a7af277eb97c515af030d8a204dae4874c167618c87d40b74e8b0fa1eb2019503d42d900be6fc8a8be9ccdaa8fafbe68d548 SHA512 19245d06b5ffee49585fd3e0a2e449f29ca23812bb630de76d40f46db2015645251b9109e1648a46ddd61f7ef0f631d41273550c701104cea8253073f2e8ca31
+DIST firefox-78.10.1esr-es-CL.xpi 535342 BLAKE2B cccb4a17885e5602a97f303fae51bee18ac09248a645362faa50076418057efb710a2b1aa1f01bac1c6a16b999dd6155ed197051884d332d75f632b4dc7ff63d SHA512 e3f8fca60be48f2626b3a4f6f293e9f187978e2abfa1471feb2fda542f542c29708716f17d203128b3ff677b9215aaa0c28ef8ed24005cc6e86e9d9dc5a8cff2
+DIST firefox-78.10.1esr-es-ES.xpi 522709 BLAKE2B a67072ec70b809468d3303c87b8b3bd9c8e0cfe0f055186b241335f564be408bd0ecabcf9e947b33c12e6f3b26129c0ed21aa61686b72078f18dc49f554d9cbe SHA512 4b745b3b36a100f2672ce4eb4840ea829e54949b59aaa41b09ece0ce0e66d64b6fba872c40fcfe293750949708f62524368b95af932e3d6e4ce28327c8a92182
+DIST firefox-78.10.1esr-es-MX.xpi 532299 BLAKE2B 5bbd3a78b0a1ee8c2b29f907745c9fb38bf1b5cfa212fc4457d51396e8a49962f78dbbcb422b1c250322f5725f67a066c14ac1ca080a72824c883b6b8ef68a05 SHA512 3597b08704420e08418e3f2118b112d2d6c80ece0e5d5af6c5d5ee9757f189a45caa94398da93e803fb4b7dde190a36c13ad9a97a246c0cf0b7ad5ed20d34d7d
+DIST firefox-78.10.1esr-et.xpi 485244 BLAKE2B 4ac097d00189d5aace3073726ba0e484d1c93ac6307df21be6b4822809537514cda88afd84d053a02677390434b2c981e4bf808ff226bdfb290b781968c32cda SHA512 9abcaca781fa1e4acca9fe0816b74b2053d6059adc53c3f1b7df87d863767a33b2db158f118af8dea6123baa966c03fca5a1dad6a5388ff10c50fc9879d92db4
+DIST firefox-78.10.1esr-eu.xpi 505864 BLAKE2B c5b026904f4c6ac2107ff6b21693b5a1101de381503d1b57160d738ef0ade2d0d5470efae2f766f646c766551f03e587e7ab2d046dde71b16b59fae42e8e90e0 SHA512 def9d103920cbba3e060d87f30e62cbb6e462e2e8f1da1cedf9c79cd5da588002c3b854540f11d5c0375f259238400521e7f3fbf98b2b9414ae1cf3fbe4122f9
+DIST firefox-78.10.1esr-fa.xpi 538941 BLAKE2B 0ea55340ec669afb99aa430419d711bccd76f8bdf936485f9eb19a301ac6b8f1058be2fc8229fa4c87bf5d2177b1b4dc51969eb9a57889122ea86d1262c6d56c SHA512 09b2a2a11741e4fe19437b67dddb01175dd3ec51acb706f9f63564f473dfdbab061f681b9bcc3eb58e1919e4a0d2287660494f34f4f9e42c991c54c789a86f0c
+DIST firefox-78.10.1esr-ff.xpi 481611 BLAKE2B f16f75bbf60f6fde288302588f294fbc79d81fdb96b0f643cb421077c1b74a38198c74b409bb18be16ee1bb7e2ccba367e23261d8b98ada1190deb1d1fbd9cb2 SHA512 5cb048448d273c9c428c79bf509d374b648ca583f9ac305c06cc6a9ab14970ba17e6581f059bfce61b9647790f51a79804a689971b927d15f5684ac3ecd31990
+DIST firefox-78.10.1esr-fi.xpi 517930 BLAKE2B 353eab761b981f564bab6c3fd6e2b7372b69572d2038d2b715b3432c989560879e1670506a48404cd6a848980b0de6bcde4fb224329071ffe1692ade7c7b6298 SHA512 6d8307e88abb6436a51e66c2970e847529512ce4384532b0234a75e7f7ffd6411d1a610ccff7d2f2eafb4efb536c26c6c1338ac1afe12ca52944428aa0d66255
+DIST firefox-78.10.1esr-fr.xpi 545900 BLAKE2B 336b2a842bb64eac726ee8905046e77f89646db72d7f4bdff29b763844093823d6b0a15e422d2e67205b30dad6816742f0b1c16e2e42dbdc69dcf80ed56bee57 SHA512 ffdef506d9475e5e96e3999c88c4aeed22cfc0fcd90a6c10c6b4b92a94c51a866c5fff4c40d7778f50ff2e433ab81c0a9f0b2f253324e9f6a46bcbec3cb87be6
+DIST firefox-78.10.1esr-fy-NL.xpi 532492 BLAKE2B f47a98e4cff32067f7405186e456ac75598a6654399149c1bc4e900ec1ae4a29c3ada1d8105ca00188dc1c934ee2e0e5dca4b3ce8c6e9f397760153897662042 SHA512 fc30b064c000b8b5dad5cedda7d7c6d7e0643b10e47ec5ca808042545f83dc2a17ba4027104482e12d6eb9cd56d627784ec031672c30120cf851ee8ec459b2d7
+DIST firefox-78.10.1esr-ga-IE.xpi 466899 BLAKE2B 3c1c418b1878b1b6c1183068637ba416ac3a9b9019ee9132615328431d82547212b8d59773701c2b7ee1b70e0fa8850b9b7751a54bc279bc4f49009822acc945 SHA512 eb97ebd4e40ebe9a2d4ad93345772a10cdfd937071c10321e179ac39333553b74810e789e8aa646a2f57c6211800277643c294703342c8b7620a15c76b378a76
+DIST firefox-78.10.1esr-gd.xpi 491879 BLAKE2B 4d509cafc985ce0658113cd60c318073e0a92704d98bef798223b42c5b95aa228c189579168e400dff7a725fdafa335ff1ac511a61cafbefcc98fda14f43308f SHA512 aec0488d10a075fdee38753a82958e2fa72a883e030c90dbb63e35c3d3e329668dd33ba881d125df8e3300aba8008c7332e744d221262d949dcdffbe8d811d06
+DIST firefox-78.10.1esr-gl.xpi 528408 BLAKE2B f52c9a3368869b0501e1230882c39ad3bf8583ef1472ff8b0aaf6a779564e9fd6f61fd6f8537f92c791876c3d5f7f13758e435640653dac7c9442b1a8c85caf4 SHA512 602513baec13cbe379232e8c9d044a0a70b3d652a99fb1858147fce26a033e0232c675a43bea89807f1b4bd576622a9f9514d73f1d158f6b5f644e4499ff00d2
+DIST firefox-78.10.1esr-gn.xpi 546470 BLAKE2B 6449b28cdf1a8f275252a5967c2a8c842049b0a623b61c2992010764a80c97865a5e8b39b551cb194a7d3c1fd7a5f04e0883bf234059b3b4f5ad5314f9a4b8b6 SHA512 2917b85e0474ca3e5e837157e1663dea3609c03d43829068250c426b2d7e0bcd17d4e170e0d8f672c15cdeda49a84fe3ea007c6d01b9014f4d51acb687bd37ab
+DIST firefox-78.10.1esr-gu-IN.xpi 541433 BLAKE2B 58b4c5a8cbbf015cea037c45bb9f43c4454a31dd09cd762f01c05db77539427657764b8c92b109fbc87421b77de4ba6c9f7795a16061d84deb23de54b5dfb59a SHA512 98b9607d5d23669ae045bfe86d27fce8c6e6d407affbdf3c63cef66d2d5b443123e84e8c48f84aac47e3278aee37343fff045c69d7deb4035811d7db4a8f511a
+DIST firefox-78.10.1esr-he.xpi 545574 BLAKE2B 17ff863da8932d568c6074ec2b520592cec42686b212c3d3de65f50a16d2e2832dc5227648c2d581cdc1b728f160e3427ca65adf9b419c870e0f0428c7ad07c8 SHA512 df7226758967b766434f1117b370673a9dc942d5c7a65acebfca750efbac14c81d65688faf4d471895797d58fe85e816164e027aca8a464efb813341d9109550
+DIST firefox-78.10.1esr-hi-IN.xpi 567858 BLAKE2B 2d99f17144bda4e838869f02f7616add2e97d461b5f201d76ec0672dadc3918006e1c8db3cb8b63c4927678a2aa74886b7ed81c92d3744e06b8687118808bc8a SHA512 0c0b5053b08a9d53b3b92036c7dbabfdc0d2acf1e69a36aefd9c0fa978d8d20281c9cc3a2de3197875de7e1396b457956dfe1b1df374c995a7aa7183e1543bd7
+DIST firefox-78.10.1esr-hr.xpi 522692 BLAKE2B a7109de1971f88df7a9952bdd8cad18451695a3445a3d02f87e203a5578ade82a65a9910831ac7687a8f7db2103eabd27434766a3787bb41fceed704bde4ca4e SHA512 44d076935251198c84440447f99166dad1e1042cc9def38f0fa93b0030888f15bd5422b64eeb3fa851e50d36bcd9c3963a521c83881549b81a078ac447dbcaa0
+DIST firefox-78.10.1esr-hsb.xpi 550664 BLAKE2B 497e402fd871bc9fab9e8505429c239b8dce48d4432ae58f2a46fc37a79014584010e8b3997e2d0d2871dcebe32253cf82cd71ec5d24f7c329964bdf03733a42 SHA512 9d0a02607c2385eb5013cccc8415e0f82cd792c0739882c09861b2165c0a4e7fc14ffa68600e925d36eeddfdca623d0e21cf223a4d62a6c77ce35f1e706140ef
+DIST firefox-78.10.1esr-hu.xpi 554881 BLAKE2B 92fc2156d102fbb5eeac87627643d61c49a9ac77f689ebf801aae59441dcb2875e512d88d6056a49b215ad76f851fac7abfedb17146c454ed77da9ef0b673f42 SHA512 29dab4f08d67640bb4719c809f4be128a28fce1d93abf250dfeb72930a845eec6155ee3fcbfaca5ee2a8870c57dd5048ddfafac3cacc3b674ecf75922306642f
+DIST firefox-78.10.1esr-hy-AM.xpi 588983 BLAKE2B 03cd9bbeec2093ef44daf8d230809f092821c544c42866c858a680529d95405ed368cbd1a2f192ea10a8067579396a70c48e54443ced9c5aca6dbbc49d74df17 SHA512 60f659c319e6444199c33b33f0b0af04b3db4f14bf5be52ef63c03527067b6426c2fb1b0ffcf4cb2077209ae5ad0ed4649344c1e130141cee9f7561040cc0df2
+DIST firefox-78.10.1esr-ia.xpi 518807 BLAKE2B 9c680837a946c3a83ef100699ec6dd9c167180bc96b62e02f50ab0882c014e7ee764732b66d41ca2f166116d49efc9b6cb07fde54847ade02c61c8ff335ec5c1 SHA512 b441e0817dccdb0613a33bb56523a76738114bac7232e69a677f034306f342345508a187956fdbeb09ec67b41de383a7543859fcc21394a7c0652b397c481789
+DIST firefox-78.10.1esr-id.xpi 509566 BLAKE2B 19e6a7713cc8e0652c60a8cbb09baef08b19027b43a3b80f1e7fac592d631e60b228872178fa593a8327bfeff8e767f6f0f6b0d501536adf94e9656080accbb1 SHA512 157ff8d6ae8d168195b05e3f961eefa9c33028b372be6981c4909011d33987af5098608d0ad4b52a946d1bc6ac66ef84cda4a4beef41cdb228fad32861e04c0e
+DIST firefox-78.10.1esr-is.xpi 477022 BLAKE2B 129e97f012bfa0e3b834d9564758330a48f7ada476f64b433738eef67320a58721ede5d65dbbbd040015574e0524ccbbc97246f305a59dc5d8fb0c3968ec3080 SHA512 60a3d73afb1d3ebaadde1c7dfa5edbeb331c076c40dd452616a9c4fabf2613ddc15ad1ec5e17631fb1486098d08e53c030a8d078da5284a5b61f7690eeec2128
+DIST firefox-78.10.1esr-it.xpi 449805 BLAKE2B 11ecccdf516b0e3f98e930fec0ee17bb6e24f48a1134b6a5bc8d8ffad8b3e05cf25f79a3ce59fe8c0161fea9786ef433f8768ce7bb77c1bbdec9151730c6b52b SHA512 b0084e6f680470e770e3c19ce6274a17c3932e793dc07cd3b748c68b051e183f53b058770dac45d4f3f7d75f5394ed20a41263c3bf5017aff91b3f8f422a3475
+DIST firefox-78.10.1esr-ja.xpi 578195 BLAKE2B 3965dd951ad0d5e600393d7c89f72024cdf5560d923903f7bafdad9207f8bc09a6cf5da65f8a1fc3bfae352309a28d694965e47a7bc674f8a7df5706bf81911f SHA512 c8927059b3158ba00a1eba5bb746a02ac0ceccd0a46ac98213580066eafdbda940a0c7585d995c2c6456b189733206a80049360e671d0a1e642e7c6d7aec69de
+DIST firefox-78.10.1esr-ka.xpi 579099 BLAKE2B 7d8c7572233b32cec3250d5191c0b60636935a5c281c821eaa6e50fe15c6ab0825973c533ec9dab5b1f0bafab1a5a7a3616d529d8b053780d1a297f3c4d2ab06 SHA512 db8af9fb4d2440827ae5a9527c70062a8d2377d333f57f72db0471a7ae3aba0c900c6c386ce23fdee898965fa36c2e08ad48dc712f9a8c6eeab90f2a794039cb
+DIST firefox-78.10.1esr-kab.xpi 539734 BLAKE2B a8b5fdbcafac9a85cced7f4c45fd42b9a254310401466def5ef712b0b51b969b8d77f76b26c29a76156085d1c20d758ca0e457e5b2b5505bdfbd155202175f96 SHA512 125b1e57fb499c4703f516029ef546e97707ff9350693b587f2c6a5098d9323c283db05dcf2441a7c006de950d9971289515e859f904ab9569f7eb61416ab891
+DIST firefox-78.10.1esr-kk.xpi 593264 BLAKE2B c0834bf8bb2d3f318f5b605f1b5548a5ce0bde12dde6fff987192477861e04bf7712816dffbee76344399df2794e6da852f80653f1cee3747ffdee010c60baf1 SHA512 84c050cea7d40d81b5e003b5234040bf31f8f37b55e20bc95105d8f4b304ceb40fc5728e2279f230f93ade23a1a3d8b6e6c9f21eec41ca4318565843ff7a9890
+DIST firefox-78.10.1esr-km.xpi 527372 BLAKE2B caa16e4c9a488ed9d1c7f8724aab35e5a724f15ebdb423261c5fcf6a3e18fe743c3281b926d952de9d6140018e8284b178f2580caf3684a65b5a44682e743af3 SHA512 cbab9592b3fb9e72ebb6e4c54d76a862b8052d1c75a642d2bc11f1b2caa0678b563fcb4ee83af3753e193e89e8beb5197819fd3876c81a64d2428cae816bd14f
+DIST firefox-78.10.1esr-kn.xpi 506751 BLAKE2B b4c3755c6f42357cbd13f50a158df49352f82c802faf3ddd31bbe6776d963e57daf0b855adcd04e5b5083c3cd770360e282aef9a02b606aafa5462a40349f3e1 SHA512 ad472884f423a6c8aa8056d2841ebc18b7fd00f47a8949068d052f71418d7af6ca42dc0a3d9aca6da52645d746d0c84b2d554204ed197961a6cd9e206f4567f5
+DIST firefox-78.10.1esr-ko.xpi 567535 BLAKE2B 947d5dc87955d17dc3e5c3ff73e4add1f51352139e13d421853e6a647b9792e714f501c1431f361c6d567775e9987a50968ce70155acc5a1dc9fa1d9e2cb9084 SHA512 1d7f0ae2a7b5397c8a2e030fae4b156c0e9cd267c5107541a7606e1ec4cf7e342170acb605072f46ac83a215b023fa56606605dfa3d13bcb5af48b434c31ad14
+DIST firefox-78.10.1esr-lij.xpi 475238 BLAKE2B 180368469ce5ebc94445a3a752c47d62a37a3afbf2cfd2b74aa06264fe56abd8a936c146f3904ea4042059563e6a28415fe37455f7934dcbc107fa87238fe64f SHA512 20b73e6e253edec351dbe080ffa963bdb0b84a92aadfbe80ea5538542b3536e5806d95866f344dd4fb63d0c58ef972b7d13ec320200e2e2ec90bda272222c7fe
+DIST firefox-78.10.1esr-lt.xpi 540709 BLAKE2B cfc3294dbc299c0a966a659de29eabcf370618dded589d478954bbac0232bd469e02409d67f69af9a8d767f8f0ad9951ec8bf21221cbf06f3bd502f1b517e636 SHA512 f71e3bd60670a2a15ea40cd5134b82de45efa009245b3a2b68226cb35010ac515d24d6aeaae8100b8d08de76ba99aa2f652f8348ed839669c1b5343c8794b50f
+DIST firefox-78.10.1esr-lv.xpi 467461 BLAKE2B 83905f99de334b4fe633c81023cf519bbff88fc096fbe51959d5e09a9f6ccbf50d6515a707252243bff6583be72a2dbefe4a1639374d1144fd49bdecc97d3c23 SHA512 7b6edab1f381c24dfc7ae6bc680844af4d8aba58da3d6bec4d694dfa4d634f6aab2af26aa9cbddaeb1042d2546fb34b386c60dc635d35a20225511d09270a24c
+DIST firefox-78.10.1esr-mk.xpi 460027 BLAKE2B 31a148a8620fe6cc92275d90c0c18f6f91196da467cfe61df0745ceab269712c4b85f7ab342de67ad3fe37cafa6cd24a0308507806c1d8efd45947f41519e32e SHA512 9a40835fe0583d44f7cda6e756dce1439175a0cf6aa774a2e475eaa0c7a7966d8961523de9974978fcb705e79eaf766a0ff65974c7278c69164a6913cc8acbd4
+DIST firefox-78.10.1esr-mr.xpi 541573 BLAKE2B 11ceccc886ce1d3316d80d7ec0059d4c015c6cf60b5dd09ca1f80182ad941c57ca63842be80e7debc171786bcdb301471cec0e5087e5c320ba8e35911d144b86 SHA512 3d73db13795608b7451b6001b58a66e9e9c6bf5a673b25fcf753b2078bd6b119d285f1f4377f77ecc6f0767d2327e923a5dc6e591330e6f61c479a48fc8375b4
+DIST firefox-78.10.1esr-ms.xpi 453064 BLAKE2B 5bb1e2f87e1f3f327ea503b798b845ec0303103a19bc3f55cf12058ef461899bcc01e87312a36abfd4cfef0d32edbe306addf9d40701b2767f100562d6d24af7 SHA512 237de2d811d3ca7e03ec823add2fc934dadc763a57d93e5eff55f3e1189ca9b8e225bf6a8d415d948ff92a9c8916a80c417ab805b0f0c9233d6ab234b6802dfa
+DIST firefox-78.10.1esr-my.xpi 526336 BLAKE2B 7f3411841f08e5109521738c494a3ec6345889f4dab1bd68d896fe4f09be30b31c7ddc5a2a8c5aaaa6e8e7e1cf6620d39890b06e9b90279da4e591f68a34fe79 SHA512 c4fb3768770fbd560d236cb4d899351c86400bd86ca0adf025fc7fce5833cfd42a2bb658fafca2395f780db7d59d5663e2696c8a970c5663787221d3e51edf47
+DIST firefox-78.10.1esr-nb-NO.xpi 518524 BLAKE2B 35b579f15030eae28e6bfc16d93aadd75c8b600829e0f538d28ebff31d539e20046365b957e7de2765d012c683a6706fcfd8d2d10f72d9afa33990f8b28d8101 SHA512 1e8bcacf55da5b82afa98554e2cedb1ae2bd5d919f31cbb8d5f80d5b903f1ef522b62009952dd9c3cc86297346b221549396cd5189933dda34c648a280662624
+DIST firefox-78.10.1esr-ne-NP.xpi 483404 BLAKE2B 7cc67155dd46778f63ac677ea6ee379c972c5f32a3e0fe357bb8caf774899d361465d25da215652e8b73cfe9364fdf6cea13870bd1df3977e8345b1b3fa35716 SHA512 dc7e4ee14646deb36ba38ae1f4daea77b619fe019f49b76082a0e21e7e3f28caf54daddb4ca40267de53dbac4f2c6fc8ae28198c56a80d892b0e5445828d8924
+DIST firefox-78.10.1esr-nl.xpi 526195 BLAKE2B 7258ecaef8003769b0b2ea3332293807aeaa3aa1e0971a9e0d05a260afcd4e9c384a7137fcadf5cd5603ad174b4e0a0c8fc2440f07edb976706a158ac053e854 SHA512 95634a362125ff877aa6b23481946d26fbbaa7dba38e6f5a1f5a41d9e2352bc0526534e796bf08def8bf9c009bc47c6bf72c953a45c1c2752055f52a4d744a2a
+DIST firefox-78.10.1esr-nn-NO.xpi 520173 BLAKE2B 38b18da49be6b9f781894a1bb809aa914a623c0016503fc0463042af6063e8f853cb90a37873b234770d5c4a1ebdeb3539bb4a5f8d6bea881e136369af7b5093 SHA512 56d26c90863e5773bd6a7cb05a8a7da404b2bfbfcf773b1167c83a0c8c2364d740b60a723354bcf61c0b92d54ab94ac24b5ac95f7bcd8d8b50eef518998f47ea
+DIST firefox-78.10.1esr-oc.xpi 542166 BLAKE2B d45aaf3b30c5be66a78bd32ebe108627d2ca160cba7beff37014ce3b22481e858c5b9f1b048cba9525c28c991eecb4d39ee0ee0e2f076f25d74abed0fcfbc07f SHA512 e9bdc86ebdc20bc29bcf6928ef122730b73ef0f1e3bd05f65e7f8ba7520ce7e9bf0c1ef86082a0ad33b186ad22b2cba262e8b5a328bc93145ba8b6a8cff2cbbc
+DIST firefox-78.10.1esr-pa-IN.xpi 580364 BLAKE2B ec7e5d12e0650ffb00cb1131c37c6082c015d8fa973c2df544ed7362f545893efc666d024238052358fe4993c8898f29ab2eb162b00d771ed435f73888dad982 SHA512 af2190e70839854b9d050c021fbb7009a61f065ba07cb3c8cc2f23b001b7838ad6c20d5b36b8ee51ff073be8b8dd4f311767b1b3825ba2cba99cce76597a64d9
+DIST firefox-78.10.1esr-pl.xpi 545612 BLAKE2B 82de4ea07c3418649f3ccf2988086d567db1dc9806d29cf328f57c8314b541fec81014ac4b578a9ff5f14f891be59eb8c489c862a6abcaf64e90331dcb61fa84 SHA512 56300cafc45336ea277b642f576b8937d2bfdc232285444a43200b35a80ab4ab384edfbba24315a6326f6b534bd500de54e8f595484263b956ac078fceed2173
+DIST firefox-78.10.1esr-pt-BR.xpi 527575 BLAKE2B 841f8cbc8f51a81028529b565b6a8685280f7c84abdf0e3ee327a1abf6765bff7618c67130eea67ce670f7f112bf37cc0ee9b2b1799a70aa06c89e803218854f SHA512 a047da3b03a134c6150e29283919b5ddedea4529d24dc33990b58930e5888d0c4ce61e8617fb1a95f28b89ee84225d4fe80d6986f50131210f33232100f3ca61
+DIST firefox-78.10.1esr-pt-PT.xpi 532055 BLAKE2B 71015dbacc1277b63b5ddfc00852c3a4bf0fec800bec6200167f37ac2c14c30c587d535f669752dee64a666d7ebf4f496f5d3a88553605704c3b703a0c6e796f SHA512 a52872b491a4bcafa083be20ae423c598a9e454964743d57e4677606a4696aa98e5e5a3aba837b7c3eb2e2b1a13abfe347906e85ec7462203c492d499e4557f2
+DIST firefox-78.10.1esr-rm.xpi 526697 BLAKE2B ac92621360eede6da7d48454eb853cb49c209344f210970d6b026d2e47b2aa95f7d88eea966088411853859d976b1230fe7bffab6f4c87d30cb2954b05f92391 SHA512 dca1abc4d44526d50686bb2341d1265b6ecfdc27837cb33f77e391fd05f5c93d9afe573d0b1087aebbcdd06dea1ea7a68c806b20e325d28ac7fa602b5738cb67
+DIST firefox-78.10.1esr-ro.xpi 535565 BLAKE2B de92b2cc232139856a4f7244b1bc5076c2813a4fe30b114610aa4e27daeae21e1757eaff8149162dbcf518e7ac168eac669bf1d039779bd298a3d860245af065 SHA512 25fa22b99acab134fa9a5e14f404613cd0609fad287f29dfb1801331d7bc4972fd1fc510651b0ff72c4ebdd7fff897c4bc1f939c0501b9cfc18b3dac218411e0
+DIST firefox-78.10.1esr-ru.xpi 614598 BLAKE2B 771e83cc8cf67f3e52b846c21a0dc7daea369ce12b2e2fa4ecb1999c8718dbf146b60bc935b80f1c67f9a0c8cb4083019e3bc61efaa8dc878333736cc39cd60e SHA512 51a0be13a29e22851d3d7dfda34193ed0e4624b3772b09d7a9231ce3fc507406923132669fd0577a93e0b6db91eaf4f056ac724924dc01a6debc11f3696b048f
+DIST firefox-78.10.1esr-si.xpi 492523 BLAKE2B fe08197754df0000690c08542ade1d05f348625913fab215e4ed2af100f209c9da651536c1e0f7c3aeefdb24675300c73d56a81f14b8e9521e88711aeda8ab1d SHA512 2f65da990c530cb860fac31c34b9db0a6c81e0914e047de6df9a65d87459ce830ca937ce36de5f0cd610f3c51ee3c3765c3d2a083f741fa48759c3c6172faf17
+DIST firefox-78.10.1esr-sk.xpi 534236 BLAKE2B de4d657f2fe4c1786579f3550bd68cd75c926534d9fb088ede61e9447776be6ed1186df42dc165603401e7b0ebae07e676098ea4c599ebb38a941e2c9f7f96f4 SHA512 aa89bd3f0408dce7c0cd7b71bcfcb1ad4dc5984ab2e38c0e7abc53db91e9c143ef2fccd2de8a9731df088857e4e9d23ee0c6ee85edb4102dab3bd4e079796290
+DIST firefox-78.10.1esr-sl.xpi 520937 BLAKE2B 5f6de76966499515a33dd06335671228bfbb0e75a74c92365af5491a9376b15b6f448ed0858f7463051371cf5d3858541802d49a87e78551b15cc8e5bf768113 SHA512 ba1671c719442630bd02a746c35223e920cea1f46588b26c519d9e8e268d5d24fcac04797087dd1a6ffefea34a11dbc74a4c892a8b2944bd9a52b1d466eb87dd
+DIST firefox-78.10.1esr-son.xpi 424586 BLAKE2B 52294102ef80129afa9440dfcfb9d715d62802b6258c34fe8c5c2e4b81c2dd0a9ca499b5d0e4b98633d38bca3f57e7a647663016d6d04e47a95b0f9777782d11 SHA512 8bff8e618b3d97cf6d7b459e3e5c6cf62b7ea33012e61c1c93fe8825aa19f63154a5bb24d03f2fb1d31c1b6d67df25bfbcf7264544c47a0e906f7a9cd7c3bc0f
+DIST firefox-78.10.1esr-sq.xpi 544903 BLAKE2B 31ee53bdd31e0610fa5b14cc6494c19c0bcadb5ec74a7f74373c9882a94110bb3ff6a9571068676766c55a36a2c77cfd83a97ec201ffc4889de67fdfeeffa510 SHA512 df96abcdd26494868c0f7bd44554ca1a6e84e10583603fb56cd6b425af66822dfb40cdc937db8c27ca2a12a441a1fe04178a339726d258f00df59a8ed3306e7f
+DIST firefox-78.10.1esr-sr.xpi 561399 BLAKE2B cc78560c3dac5901e2024553b2bc4ce4059cdca5657c695546f4770247239e85d7e867737d81b0927014ca5bc64d6a1cb79636cb4226aa944b516f6d1e3c7548 SHA512 5d939c9843c8bb488a93f21ca168713ad08ac2f27db1b86f2aa2cb9e2af45056d8311badb30e5bff8f029660e1bca7200bc234dfd3d278df24066cb4a36b5e22
+DIST firefox-78.10.1esr-sv-SE.xpi 529706 BLAKE2B 47010bc4055ced72f58802a780a0216e180e3cb5497cf60a82e01e10017942fd508bd8e5cd669c1f16bf5cd8608c09da5cc2d788d833dfe26390614c42f9c768 SHA512 bf7ff0262ea992f465484b946ba5b1250037c70e3dc6e9b85637fcac0ddb06c2693e7e028214fa1ad2bc60bad86490aa2d26c23c667fc58478df0806b359348f
+DIST firefox-78.10.1esr-ta.xpi 521539 BLAKE2B 2afdda9921e542d5aefcf33a61794984e2f9ce3ec973c4dfb3623603c049fbfc6bee6defa195f66f9135d5d91d5f7dc43a2525e530f430805976e5bed7b5dcd2 SHA512 f7f10050ee97409621fc09215176efccf45ba2cfe0f1bbd282664e847e92695c16f6ad9b429314e659e5ce1bd6a45be3707e795541584b8ef1d6312e4665893b
+DIST firefox-78.10.1esr-te.xpi 558398 BLAKE2B 75e073367f56ac659422441933472be48fce11c10f00b8b1b5380ae50731733030d58ee01253edfb3272a50add8e19aabee2629a0810cb4cc6616f3cf8d43634 SHA512 54fad23525da58b08d456f82fd514e1dd8ff5cfb228bcb7b844dcd7a6640e008824592a175a5645d4d131c152cdb2215d3d6dae3ba10f97a47f751e9fbec1b7e
+DIST firefox-78.10.1esr-th.xpi 592241 BLAKE2B 2f9f34b0ac4db68d6e92f0836425a04f79a9afefd54c8999ed3ab614d95a6dfe2d60da41b83bd3d16aa475ca5085a25a7a2ea7539a93134413ffaa6232c0b055 SHA512 6bad15faef8973d28b40ad3c974a2aeec3d2aba43c42cb998e232d678097124889453010b40d45c88dfe157d175e10c68c7f800ee7897e99c9557ed9ea473988
+DIST firefox-78.10.1esr-tl.xpi 521124 BLAKE2B 3d7d00f0a8bb09bbe3d690de516b8ac8329e0ee129f716e680bba4a7b78caba5da1b8d07a1dc8f5470d61d18e664992b6801ee8aa1a2f003302ca789b3c53ae0 SHA512 5aa08265c6b2b5f06f0e4e19cbbf2495f898de7531ac6d24e36870f386efe00133839e1383c1b0e75024b9631e1826ea455ae43f4b3278b6aa8d19d2701e5757
+DIST firefox-78.10.1esr-tr.xpi 539876 BLAKE2B 22b765a3390ba58f3297470f21fa724563547dd3e858b16c0644f1eebf25730d2e1ffc0a627711a9b7c8a96977f9ee221ad9fc2d05c5de2f56a94bc4e6ce972e SHA512 c80a09817bbf6ded22d3b26eb382967ddd119d0091b3d3c756b129ab7b4172c6ca0175757397c1a2bbd77a1d8d9090af64778266aa3189c4eea36abbea76bd3e
+DIST firefox-78.10.1esr-trs.xpi 501217 BLAKE2B 2f2c30f49d8474e5c0200999dcf80b566747bc069013e214e731decbb5fea56a1689ada37a6ad9d427ac1259dc5dc5921654d5360de1fa290bb098070b0db565 SHA512 7d36cc08ae8ec678dbe8e8df6c4252758856dd7fe82fa20e536e431f8c8791be7d3e5830dffa6a4d3ba7d3c4c927fb4ca333925d27f40c12f62618f936cc804a
+DIST firefox-78.10.1esr-uk.xpi 608593 BLAKE2B 70f2792523ac9c7800dcbd2f3b77d6657882a44088e558ebb1fd30ae267e916f6ca5f08e1709008afe24d625ebdc2e2b111b0abb0b5ee6917b2e089d4cfea484 SHA512 b565840c2b38ae80d881788e981d06af0bdd62fe3557905869cea085fb0aa3a32dfdf0e885db72e2eff2d2d05df8f44d3afc4b53a34dd7a9f876f6673c2eb037
+DIST firefox-78.10.1esr-ur.xpi 557945 BLAKE2B 72919c78210d68a228efe5ca205a1cc7e69848e58f8ac5ff52372299cb0c154348d201b6d8dced83b308cbdc4a0b4ba53d2d2163ee525bd6c5b055ca78e4475f SHA512 11ca07b1a4ea77c6dd33c14e56ded32ca8b1ff69753c1b101fcbe3dc1c8d762aed0896f38936525a700a75e19f931a50008c98e14809d49723a689054da2bb3f
+DIST firefox-78.10.1esr-uz.xpi 477553 BLAKE2B b1836002868d5555648f5fd45c07ce0199a3470d22e20ee2449b85ac3bac381e35b3dcdf0a96937a3b375ce636c1c8e41e3529a79df6a701b2f5ab928eadccd9 SHA512 8c276ffb25492483d5f3f706883d9ed087f6f3325511c76d264c03e53a3d07c7048da7a7f47abba5a7e72cd505182457adc385e6e20a780e7f46da7c0cd76913
+DIST firefox-78.10.1esr-vi.xpi 562857 BLAKE2B 040b48be2f4f570f70f283d5d69d414350ada47037e4e784ec3d86f7f1bcbaa0e4b658e16d98bc9f49b4989332cc87937ef6cff68e258a5abc80dfd8c577a41c SHA512 1e034b1bafea67b32a9bc97db6bfc08f73c8c8ac6e8e740385e89e9fd0b73a47d68c190e41ff07f2eb7cd0c8fe2738dfd41a7ecef4c0248904b2810951f38b25
+DIST firefox-78.10.1esr-xh.xpi 427838 BLAKE2B 38e5467a0b7e4078d1028d6581d489692f7fd80bb90656e38aacfcc58ba2a70b2f2f66e849a95014cdf410d15a3bdee43c0efe541f14c248d61c6c87c9f0c3b8 SHA512 64acb38fbb462473d5d6fad208f8836cc44fbae9a3b96e0017cb07edf3a1c55bea9c871d2151a8dd095d4bc143645f8e8b2b77d3b10f143024666c07ae0df2d5
+DIST firefox-78.10.1esr-zh-CN.xpi 564762 BLAKE2B c8da00eb046e32d468f8ec626a2bc6fa2d0e041792a7abe4b2dfd45e10f70f834ed40ce7a8126494cc5656b5ab0c4b16d260dd1c6e4a5b42b82672542238a3f4 SHA512 8058f1ff786345518c474536d04e922c6c00029434ae7b7e2d3d477cbc9c847a37aa4790ba45d524fdc7995bda9823d4caa98ba147d0f3cb9b946c1328e519ba
+DIST firefox-78.10.1esr-zh-TW.xpi 564732 BLAKE2B ff88fe6d855fa1c1aa41d69490ade25b1676f2b92cc1b01855551455d7a4bc312b56c1594d1c74359b75914a08d48894986ce67d38da31a071ac7fa8d8635fc5 SHA512 7f6d87c8070a35d70b111454b8978e0c7c43e787541607af966a74223434a51043cd7522c102d1d285bb88b86d361fb6270782f3e7040e79bec8e1878584aa2d
+DIST firefox-78.10.1esr.source.tar.xz 334444960 BLAKE2B 76f9bae7f9fddbf3ab14293d1ec9e51b173961d0d5e0e1ef98b65328294f520369b89fb300a91d9f502b93215a15c228925a469b7b14ec576c9a9be874a6561a SHA512 a22773d9b3f0dca253805257f358a906769d23f15115e3a8851024f701e27dee45f056f7d34ebf1fcde0a3f91ec299639c2a12556e938a232cdea9e59835fde1
DIST firefox-78esr-patches-12.tar.xz 67840 BLAKE2B d85abdbb54a252852badac50866cf5b5009c050ec4aa80ae2454eef2719e80f3442f5a74ec58d3c36531539042830427cd85507b708c1d5b36ea44dd0cef60b7 SHA512 4445c0880fc234c3838394483ce986e4e222260a99427069ba9c55b56fcd49a485ec916ee6aa2629f922390e92bfcd78028e30cc2e62fad9bc080ae45b26ba2e
DIST firefox-88-patches-01.tar.xz 22344 BLAKE2B b4c1a96fa339dc5ccbd631a1ce03ccdea2bc5598644f331a14db061c5cc94168ee51ecc61a62f05bdd4f7eebdb41bbb646ec1a56e1570572ebcb892a4273be3f SHA512 6688e2e918530d3ff3fce9b2ce233356d7409c293fd4465afebc5e6886ced1d9bdcc48405ac3c4b7524a26a225919cfcf1accd3c14a01c073feb6dd1ae73cd45
+DIST firefox-88-patches-02.tar.xz 37656 BLAKE2B 74e77ef98522686b27398aad6369603f3f62dfdd58b6d396ccca26a732b333912d9e37d53374b051c990798e3353ec29d6cfc512f77f117f861974ff041e9c2d SHA512 401c72e6c510e50bf0030f7366fa0a5643dfbe630a131e584ba09240660344a611c956b70381c5320ceaae92e7cc3c207431938b53fc0286c88942d4f9d75771
DIST firefox-88.0-ach.xpi 466425 BLAKE2B 571f2d86a1535d58b32b3647166fdf86014af4ec1cea5369f73d0b0991bd3b4c9940f77d1833b0f260885c663c9915171124495958ddbdc887e7d5fe3564ee56 SHA512 0cef9516afd5907b206f4b467de63d0bb51414d5cc86c49c6e3f0d6fd8964f66790b441b34ca37ccc5a8d333b9d42fc602a2bed8bd81bc1c9dd5f5ad29eefbd7
DIST firefox-88.0-af.xpi 430681 BLAKE2B b7930a70b8eaf3f09bd4be9d34c698672b7f09fe643a50e6d04f8de3be5591beedbc651a9a85de45e1a2052ee80f279e4c1b60d37fb03f6ab7fa0f8c0d3ce96a SHA512 7d7292d6f258328318bb7d09b1053618a9b304fc5884de769db4f909b49438156d2eac8f3f8cf62fbfa115190f143713b350aea529d07e0a6a5c3da626096eeb
DIST firefox-88.0-an.xpi 514139 BLAKE2B 925eab38b565d0e3aa53d34df5170945c2319a41ad2e3bc5e452dee4ea44e8f8dbf2044a29dc68e8e8a48187af9013fe098757a0d03029b863d8676b44c94598 SHA512 6c2a7360f89083b989ca0e9465dbcc1ce0920608dfeacb720273989200c4e2d4838836a53a192fc366b21941d7c2ed9811c8d8ce507f80d3db8778874103da71
@@ -203,5 +300,7 @@ DIST firefox-88.0-zh-CN.xpi 579523 BLAKE2B 996493a9857012eed8e6674d55cfa7633be05
DIST firefox-88.0-zh-TW.xpi 579885 BLAKE2B 0529b6b29dfdd592075c1a30c6333a6730d97ae569e0844399f2f7f1f06640a1b67592664b51d0aa99b66af6c3645ca5adbe05188e69a1aec3b239680163f874 SHA512 7cadd4dd3a16dea32bdc5fac540f7fb75107d8bcecbf015ccb688ef482d3a37e3a7f4454596dae1703092902cfa6e777b5ade53a6cb67ba9552f184c494a18b6
DIST firefox-88.0.source.tar.xz 373744508 BLAKE2B 2ce5a9e21f51d78e7dd576805d9b0d56308d5a7a99aaa4f7ef85746d0bd1b6b420b5b35adc850721ca89ffeeadd69bf3fe10de66ffe7b88f99a34fa18346b610 SHA512 f58f44f2f0d0f54eae5ab4fa439205feb8b9209b1bf2ea2ae0c9691e9e583bae2cbd4033edb5bdf4e37eda5b95fca688499bed000fe26ced8ff4bbc49347ce31
EBUILD firefox-78.10.0.ebuild 33920 BLAKE2B 0b9be399bbc89cde2dead9a1f7d7ed02c1f77a3a70882fddfa1d4d58b077a80763e0cd3c97a1b84829d3d0006680adf63b5c324f630a5cd85f639faefd4cf1a8 SHA512 b6212532361669c36d2504a60d4f0a091c4c8d7f11aabe51ed4f5e4d2f63d439407f36a30704a4e404947d698c453b08d5ff7d0acf2f0d409f55ee1712c5aa33
+EBUILD firefox-78.10.1.ebuild 33920 BLAKE2B 0b9be399bbc89cde2dead9a1f7d7ed02c1f77a3a70882fddfa1d4d58b077a80763e0cd3c97a1b84829d3d0006680adf63b5c324f630a5cd85f639faefd4cf1a8 SHA512 b6212532361669c36d2504a60d4f0a091c4c8d7f11aabe51ed4f5e4d2f63d439407f36a30704a4e404947d698c453b08d5ff7d0acf2f0d409f55ee1712c5aa33
+EBUILD firefox-88.0-r1.ebuild 33639 BLAKE2B 7d95f1f2909907428be5d216c699e80210f3ac8085a342f1b65ad61732830b12e9391bfb3d5c4c1aa595e9071d000ed119f243ead7b10bd5cb22c1bdb94b1c56 SHA512 18f2e4a13ed60f769017ef4b34bc5a9908228041bb9374878951b4f5e1be1534a7c41596e8f01eb2c7e958ab7708d858a02d5b32b00be32e9e617b570353bd57
EBUILD firefox-88.0.ebuild 33657 BLAKE2B f3c1146baeca1de4126273b813c17b9362f06328316fdfd7b88ec28c5684ca288d63512c07c6b41c997f88ef048630beee14c3c4c0958563ab88a833b50a6523 SHA512 ccda49595592542b906a5f34bc8af2ca89c16ae7330baa65cc7398399484bfa661ab0e0193d082523ba9cb3413fbb23deeae437327f6d223d552c5c11fbc1b50
-MISC metadata.xml 2063 BLAKE2B 4c632fd591403d8045cbf3448fd459d82b0433351305fb12322b6a1157c279311ad1a9fcba9af4576f336035f841a95b82ee7a5602d62f1b741748df7443a861 SHA512 75bb3db236d0941e6632def252cb0b90cb374fc4f1dd66e499522e446c5fe8186f57a9898cdade933da205c12b0e70d4e1bdec0d8bfd9689d37d03667eb92f5f
+MISC metadata.xml 2150 BLAKE2B cd105f3b1d98b1fde124c6362c2e23563c03086a507bdc0eb0e4944f2050787f96967c4cba6f4605e4adcdb200d0c0fded6cc2bcda7ea7720d270e1fd6f33525 SHA512 a588a09ad3481522b44097b3c5e51211d5fc918a6733f3b6f1b1cd7994523894917fa737de944c235d45bfb9b57def205ce645ff1ac62ef7d6c3f3c51d387556
diff --git a/www-client/firefox/firefox-78.10.1.ebuild b/www-client/firefox/firefox-78.10.1.ebuild
new file mode 100644
index 000000000000..0668b5cf9276
--- /dev/null
+++ b/www-client/firefox/firefox-78.10.1.ebuild
@@ -0,0 +1,1175 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-78esr-patches-12.tar.xz"
+
+LLVM_MAX_SLOT=11
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \
+ multiprocessing pax-utils python-any-r1 toolchain-funcs \
+ virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="amd64 arm64 ~ppc64 x86"
+
+SLOT="0/esr$(ver_cut 1)"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate
+ hardened hwaccel jack lto +openh264 pgo pulseaudio screencast selinux
+ +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+ +system-libvpx +system-webp wayland wifi"
+
+REQUIRED_USE="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: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
+ ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+ ewarn "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy
+ da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu
+ fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM
+ ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my
+ nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru
+ si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi
+ xh zh-CN zh-TW
+)
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+ || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="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
+}
+
+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-88.0-r1.ebuild b/www-client/firefox/firefox-88.0-r1.ebuild
new file mode 100644
index 000000000000..d8805e8f672a
--- /dev/null
+++ b/www-client/firefox/firefox-88.0-r1.ebuild
@@ -0,0 +1,1164 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-88-patches-02.tar.xz"
+
+LLVM_MAX_SLOT=11
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \
+ multiprocessing pax-utils python-any-r1 toolchain-funcs \
+ virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="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.16.0
+ >=net-libs/nodejs-10.23.1
+ virtual/pkgconfig
+ >=virtual/rust-1.47.0
+ || (
+ (
+ sys-devel/clang:11
+ sys-devel/llvm:11
+ clang? (
+ =sys-devel/lld-11*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:10
+ sys-devel/llvm:10
+ clang? (
+ =sys-devel/lld-10*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] )
+ )
+ )
+ )
+ amd64? ( >=dev-lang/nasm-2.13 )
+ x86? ( >=dev-lang/nasm-2.13 )"
+
+CDEPEND="
+ >=dev-libs/nss-3.63
+ >=dev-libs/nspr-4.29
+ 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.8.1:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.7.4:0=
+ >=media-gfx/graphite2-1.3.13
+ )
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wifi? (
+ kernel_linux? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ )
+ )
+ jack? ( virtual/jack )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( media-sound/sndio )"
+
+RDEPEND="${CDEPEND}
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4
+ )
+ )
+ selinux? ( sec-policy/selinux-mozilla )"
+
+DEPEND="${CDEPEND}
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ wayland? ( >=x11-libs/gtk+-3.11:3[wayland] )
+ amd64? ( virtual/opengl )
+ x86? ( virtual/opengl )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+ ewarn "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy
+ da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu
+ fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM
+ ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my
+ nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru
+ si sk sl son sq sr sv-SE 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
+
+ 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
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py \
+ || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clearing checksums where we have applied patches
+ moz_clear_vendor_checksums target-lexicon-0.9.0
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_src_prepare
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ have_switched_compiler=yes
+ AR=llvm-ar
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-install-strip \
+ --disable-strip \
+ --disable-updater \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-png \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${SYSROOT}${EPREFIX}/usr/include" \
+ --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr"
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ mozconfig_use_enable jack
+
+ mozconfig_use_enable pulseaudio
+ # force the deprecated alsa sound code if pulseaudio is disabled
+ if use kernel_linux && ! use pulseaudio ; then
+ mozconfig_add_options_ac '-pulseaudio' --enable-alsa
+ fi
+
+ mozconfig_use_enable sndio
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland
+ else
+ mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld when using clang
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+ else
+ # ThinLTO is currently broken, see bmo#1644409
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # This is upstream's default
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ else
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif tc-ld-is-gold || use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc ; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export MACH_USE_SYSTEM_PYTHON=1
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if use pgo ; then
+ virtx_cmd=virtx
+
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+ fi
+
+ local -x GDK_BACKEND=x11
+
+ ${virtx_cmd} ./mach build --verbose \
+ || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menus
+ local wrapper_wayland="${PN}-wayland.sh"
+ local wrapper_x11="${PN}-x11.sh"
+ local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
+ local display_protocols="auto X11"
+ local icon="${PN}"
+ local name="Mozilla ${MOZ_PN^}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ display_protocols+=" Wayland"
+ use_wayland="true"
+ fi
+
+ local app_name desktop_filename display_protocol exec_command
+ for display_protocol in ${display_protocols} ; do
+ app_name="${name} on ${display_protocol}"
+ desktop_filename="${PN}-${display_protocol,,}.desktop"
+
+ case ${display_protocol} in
+ Wayland)
+ exec_command="${PN}-wayland --name ${PN}-wayland"
+ newbin "${FILESDIR}/${wrapper_wayland}" ${PN}-wayland
+ ;;
+ X11)
+ if ! use wayland ; then
+ # Exit loop here because there's no choice so
+ # we don't need wrapper/.desktop file for X11.
+ continue
+ fi
+
+ exec_command="${PN}-x11 --name ${PN}-x11"
+ newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11
+ ;;
+ *)
+ app_name="${name}"
+ desktop_filename="${PN}.desktop"
+ exec_command="${PN}"
+ ;;
+ esac
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+ done
+
+ # Install generic wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}.sh" ${PN}
+
+ # Update wrapper
+ local wrapper
+ for wrapper in \
+ "${ED}/usr/bin/${PN}" \
+ "${ED}/usr/bin/${PN}-x11" \
+ "${ED}/usr/bin/${PN}-wayland" \
+ ; do
+ [[ ! -f "${wrapper}" ]] && continue
+
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${wrapper}" \
+ || die
+ done
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+
+ # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # does not need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ einfo "APULSE found; Generating library symlinks for sound support ..."
+ local lib
+ pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+ for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+ # A quickpkg rolled by hand will grab symlinks as part of the package,
+ # so we need to avoid creating them if they already exist.
+ if [[ ! -L ${lib##*/} ]] ; then
+ ln -s "${lib}" ${lib##*/} || die
+ fi
+ done
+ popd &>/dev/null || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use gmp-autoupdate ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ elog "\t ${plugin}"
+ done
+ elog
+ fi
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ elog "Apulse was detected at merge time on this system and so it will always be"
+ elog "used for sound. If you wish to use pulseaudio instead please unmerge"
+ elog "media-sound/apulse."
+ elog
+ fi
+
+ local show_doh_information show_normandy_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 70 ; then
+ # Tell user only once about our DoH default
+ show_doh_information=yes
+ fi
+
+ if ver_test "${replacing_version}" -lt 74.0-r2 ; then
+ # Tell user only once about our Normandy default
+ show_normandy_information=yes
+ fi
+ done
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+}
diff --git a/www-client/firefox/metadata.xml b/www-client/firefox/metadata.xml
index cf156f6bb8eb..4db9e7c3ab66 100644
--- a/www-client/firefox/metadata.xml
+++ b/www-client/firefox/metadata.xml
@@ -19,6 +19,7 @@
<flag name="pgo">Add support for profile-guided optimization using gcc-4.5,
for faster binaries. This option will double the compile time.</flag>
<flag name="screencast">Enable support for remote desktop and screen cast using <pkg>media-video/pipewire</pkg></flag>
+ <flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag>
<flag name="system-av1">Use the system-wide <pkg>media-libs/dav1d</pkg>
and <pkg>media-libs/libaom</pkg> library instead of bundled.</flag>
<flag name="system-harfbuzz">Use the system-wide <pkg>media-libs/harfbuzz</pkg>