commit:     15ac4bb53f345968163553213bf2f018a7249ab6
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  4 14:56:50 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Oct  4 14:56:50 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15ac4bb5

www-client/firefox: add 105.0.2

 - enable wayland+pgo,
 - virtwl() function copied from
   https://cgit.alxu.ca/gentoo-overlay.git/tree/eclass/virtualwl.eclass

Closes: https://bugs.gentoo.org/848858
Closes: https://bugs.gentoo.org/767997
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest               |   98 +++
 www-client/firefox/firefox-105.0.2.ebuild | 1317 +++++++++++++++++++++++++++++
 2 files changed, 1415 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index e85378d07cc6..b6b13d230990 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -196,3 +196,101 @@ DIST firefox-105.0.1-xh.xpi 435741 BLAKE2B 
4cc4ab55df561b95948dd6b5e389bf6a1e357
 DIST firefox-105.0.1-zh-CN.xpi 596364 BLAKE2B 
18c80655c480efedd506922bfc0d4430eda525a1b4a15db66851032c25dd0e103efd8e246003699996a01137972ceff1b60ca50cafa8ee8c9ac8b2657726654f
 SHA512 
51a8bcd726e46f28e404f3866abb8ef36b01163ffaa42e23ff73cf596b920b7225f0bafa2f587389f585577aca379c4ab1805c808dedb36ddf05dc90468417c7
 DIST firefox-105.0.1-zh-TW.xpi 597433 BLAKE2B 
904ba9a3e987c3cde42aec94017000d5744e69195dc7382891f6443aa748f26f670bcc7c6e9da8f1954da8bc295c2f469fa666ca02141caa71fc467d5b4715f7
 SHA512 
c39cf3d846c43a1942ced5ead5c70610faa6089b8d87dd32a16d7d5909a28e051b122699947a8117e2ea34a8ba463d5b481f68fb231b33872b5c4b4d70e25024
 DIST firefox-105.0.1.source.tar.xz 475536540 BLAKE2B 
9ee260d5fbebf48fa3158e917e04707ceadf21961623b323d7f3c598ae754bf7cb9280d9cfe009c48ca52e9dd2d6c40d1b788f429bb0e3e9d620163dad3b2b4b
 SHA512 
66ef7cd5028953e7da9d55e127135739c9d85be68ec633b71c52d6c9427edb0bd8a38504148484cd322adcefb57bfefe6e57cb15855f195508fe438864f4322b
+DIST firefox-105.0.2-ach.xpi 462391 BLAKE2B 
9f81f3f73fd3f616495e0d3e215cd3164a407a28ec5ccb89a723fa02f32131251b5eab3fc91be15dbcc80fc77041c360791c638c63f8463fd9e2063ade45397a
 SHA512 
c6f202ad025b5cce4b92ed32a55996f5bae9f6a2cbc5d26ead6399332cfe41d9020afe01ad3f4dd21f42d81982ad61e4f718bda006027fb8edc51e2103f17d42
+DIST firefox-105.0.2-af.xpi 426879 BLAKE2B 
4635cfeb46eec321bf06b9d2ff2866a112817155de4dfd13fffed3e53ae3e121eaa398655a817bb2d728b86f2d7ab80be680f7a49a252a147785245aa0a7c107
 SHA512 
5a98eba4e0a00baac7c0f3f824816efb206c4bd8381af56f8956164d50f1afe74988a34bd5f74d5076baab55c6bafb9d08169f6b9491f6fd5e4da3cc40cc0832
+DIST firefox-105.0.2-an.xpi 507319 BLAKE2B 
01c9eedc3a2784b3bde71d9e9edb5a2da8b329c21e5a048334cbc021f67f3980905ad0040cd9a3ddc12f7b844957817351f471711172f55242edacfae6d5f65a
 SHA512 
d3857557ca2cfc20bc95d61d564e17d102d56c5de5f8b9f8529ff098aa3fe6dd3264d7cdddd78498252f42053349f68ddce496d2c5b61bc6d0e08a618dee605f
+DIST firefox-105.0.2-ar.xpi 571520 BLAKE2B 
ac4ee3a8906ee9e32256038753854badec8ce610930276b558f64b6cb17c09d7b995e8f1de48b9a13fb52a1a5708821a27b9502fcc83ed4f1e7f12ed84264def
 SHA512 
d082aac8ce3d1d5e0afa5b019c57dbb47b1d43b75334f451b21b1a931b29325bf70849c581dab334f0f49cee70eca1aec1eb5fb745f4197d4c51623edfb0bb54
+DIST firefox-105.0.2-ast.xpi 502233 BLAKE2B 
6b3baca0af83953bce5214c82ca7b3b89585fc9aecb4e22e676fbd86f4ecd9769bee90d2e7f53786a65d47605f25709aa36701b33a05e2b85279d4a9d4ab7d0f
 SHA512 
c65f70642a917a40eb63a95d4e773afadbdb0048ba1b4f6120f11d22d15317c1326ae47755425e396a2c05a8d36d02e9153047ba7a3b9b5902bf90e15bb1f39f
+DIST firefox-105.0.2-az.xpi 494481 BLAKE2B 
5f3c0f47c70945512bcd2d8ce77163d1222cafac66d6f40cf72f3c3285efe86c0a77b0d43e9f023f8175247330d11242bb9b0cc25aac5b4e984c060240f8a0a1
 SHA512 
09c48ec36988b66486a8cca6584f9e95172f24ec2b9222aa148c82f923a5fb773f65e6ba8effbc9de051488b6e2b7fb3e2c8ebb24084d0513b604574d66c49dd
+DIST firefox-105.0.2-be.xpi 647127 BLAKE2B 
a35edee8ea0dbcf970797ce1ef26e58d7b336bf4ea81fc5df4e85ae64a2a316237ba35c76a49cdd19006063d03cbcdb633353948b131cb099d3d7a09c2abb0c2
 SHA512 
26f97144bc0aa86917d39abf2df6a7ff71b0b32840730f67bf55c7ead27fd2711fe935753df3c743a00548bc777b8e300558a2a0a77c9b88e911b799cd3a69e1
+DIST firefox-105.0.2-bg.xpi 587140 BLAKE2B 
6af462bb2ab04a951c7761218667058daa3c8d0c94e052176b38cc5223addc08392769778af58377876aadb6d72d5f5dc729d15ff11a171574f904f6c875ba5e
 SHA512 
71839cfc774a01cf5e006acc6a3cd9f78f748f1c3902826d59c28a22dfbc8d930b9f6d695b1eb06ac4b24b8e4e01046d26b7252bddafc64fd435e63dcdb92ddc
+DIST firefox-105.0.2-bn.xpi 585368 BLAKE2B 
f04d81ac30695ccf974ae20e685cba3a714203dd5aec27b8a474fdfaf51033661852bea98408a9c4f3ef8417e39cf973e95a0aaeee6f3c844ef3019a6eb971cc
 SHA512 
788cf144dfb42b5433c718bb422a5654ce1f6f726ed2a65b3b3fda9e9ba50ce2a5c094dd8419b0c97bc59ff81872d9cbf9477dd44214584559075fcae0b9c252
+DIST firefox-105.0.2-br.xpi 539966 BLAKE2B 
0a4b89e3fdf802b3eb1993a9d63bb525abcd39531106f429033f35e5c88e03f00b5ddc4ca14bfd7bd57bec09822b5ecbfb1179d293593d28ace4b7448e60686b
 SHA512 
bb546c791a44da27146c1874286d9a1ac3fc50d5c455d1ea9e6821d1422fdd4333cc7a0cdcf6d2d81d2a5c40e890bbbb849d38d336ac9c4490e0e50dbdae223a
+DIST firefox-105.0.2-bs.xpi 470953 BLAKE2B 
28e3474d912227a80b43da629b9bbe0e2d3e4e31f0605c697b9464eff598dd1f95181ebf1c2f7ef67e374e0387c77812664260bd0504fdbec371ce060e3831fe
 SHA512 
b70570bce2139c7117fbc8159ce194e7d4b9d2777c551cc81c258ebbe66fd79ce0c215afc6b2f9b0678a7a62377653942b7c2c8b8091129cb3c585a2d543efa4
+DIST firefox-105.0.2-ca-valencia.xpi 546426 BLAKE2B 
65326ae5b3b91f00ad7c3c31125a39142492c767559cba70437f8232d02e4a13428a972ca1d2f253b1e488a4b4f3311a3bdf3e6e116af13d9a89051530d5ca5a
 SHA512 
16a40af9545846298d55070136e43af57295c264cd8dcc93633ce11041400707fe8211063e46333cb7dadeb489c031919fb46ebe442b1a391038309bc33d1436
+DIST firefox-105.0.2-ca.xpi 549857 BLAKE2B 
00b0b750ff0c9f3e208fd1705ec209084c34bf4e56ff46277b0aed73036d1c96a68ffeadd2a36111c631355f374ab160c79c422b099d6ad2fbbdb90074aa773f
 SHA512 
912b56033a54ea3d45633f5393748377d178cee7c2f472248d69c0545b705266f7305d112715d36ba575dff9aa09a95f4e0bc36672101c161d57c39d5944076a
+DIST firefox-105.0.2-cak.xpi 559990 BLAKE2B 
9ae57c23e5a4b5b4921e1c09510f0964bbb448f6e5e55a2caa8cb676478fb71a3771b47c1ee1e2250589bcb5517a6a951502fed9c4f955f9f182986e6fdd1fe7
 SHA512 
600a1b9babe5b40442d10b0162e6080920f563cadbe03d15457aa4a71088e56017936c78e0eeb6ec21fc37f20d3d4b6b47dc3bcd607e79e9165cc58c0124ee03
+DIST firefox-105.0.2-cs.xpi 581735 BLAKE2B 
ccb36c77d6ddba17017b748c34de7ed0f37b07748051d148c7660dc75127e9df8f4d3c02a542226073f28755eda2d19b3037175a479f9d30b04a57bec267b33b
 SHA512 
21bd4ae4f92dc1c6bd87a5989c198e8cfdb9b4ec604e4c6fe455d48f792e2c03b63cef9c052bbe24fe1f153637df4261bc04a312037b477d6386a8b1b0882a56
+DIST firefox-105.0.2-cy.xpi 562730 BLAKE2B 
c00bdaf2d4b8b8a89b4f9cff462d6ccc771a208c2b2cdf8d5f83eeef9975f91122e3cee6c843fd88f3c880015995b60a4fe659d3d18246099b3a1cc107bc65fe
 SHA512 
c62d561bcc3294be67231b12ad326fb910f96c2500dfd405db73ec3dd77e9983eb3754d6a2f37eeb6ef3507a44699d4e9f707da0782abcaedada21d7dac011d0
+DIST firefox-105.0.2-da.xpi 553592 BLAKE2B 
d619659f46f6fadcd0149dbf2f74acd69a7bce12c6a12e0dd29a70492bf0630fde34e23bfe7948907542ad91a321b75877d9d71d11482c3afed00929b2533eef
 SHA512 
775de9c470f9cd08eaae484e3e7fc6083464ed9636f49a5328be596dc1ae7e57167e4dde462a74f8b0a754ef8a84f48a9f33fc8d37852409787f6f9704f9c802
+DIST firefox-105.0.2-de.xpi 574355 BLAKE2B 
53b41e092a4f341eeaf28ae621f4ec3e8776cd482a53098cace4fdcdedc30cc4144e996530acb8f76aac8e8baf7cf2b6ead541783d90db2e63c143c6e9479257
 SHA512 
caa2f03277946d819214df127ebb5d13534fa1ac9633e560b4194234faf893c48b7becc6238d1e30100d431289dc2469e623998fa517308d64b6e31bb7dade56
+DIST firefox-105.0.2-dsb.xpi 587695 BLAKE2B 
a9b84253f0d47007924a99d7b5bbf3b289a2363f56ff3ef9d2d727eb85ef7dc71258952ce8b3443f2ac2ee4137afac328cdce83d108989d8141a92401c821fd7
 SHA512 
944f42bf5ba38d2f9aacf65bf3a762bce77dd5b9dc53e33004482b868a8c69dab934c1d883c2ebcb9661ee730efb427b2b0e166d24381796b04580f719daf279
+DIST firefox-105.0.2-el.xpi 663186 BLAKE2B 
511539d15d52006e37e0327c1c0b22401e71504233cc25e9ebfe679262e05cb65627f065d1fe6a37a171abd058c1db92ef78432803a120d74cac8298cd60fd1f
 SHA512 
beb94e7f840dac1745c6d332d6694be9f803a950976e573f29646b0faad5df91e7d821fb3fde945b5285e5e7e10f0ec39e2f60e5e35d98ee90c47d7cdadcdf89
+DIST firefox-105.0.2-en-CA.xpi 523073 BLAKE2B 
748421a0eff80fbff1f9dbb80b646480b73c48825704fac6f8b0a8affe1a1832bb3bc11011d837919134594de78c7a4c939d49322983e3797b3b99ce59d26c67
 SHA512 
e02a51f671cc79140d0c1c8b4884c30653037fc7e90e0f0063b67895e524f6db7576efc521dbd31a0dc8f4bc13bf787e445f005b17d6036b496c6e19a5f3bacc
+DIST firefox-105.0.2-en-GB.xpi 530696 BLAKE2B 
94a7ac14d7f783521dea81b62766b4f3a51b82368c097df055bd277dbbc183e0184f19422adf89247cbdd48acaaf609ae3a50b29a8d9b8ef5601b2929308961b
 SHA512 
fe6dfd391693661a481b6939597276e821cba417eea8ff6243da77bcb823a137f359a54fd633f55a5b72094e8a48f251f3d319e9ca09a0e05263a212293d1bff
+DIST firefox-105.0.2-eo.xpi 554046 BLAKE2B 
9f071b86a6d9b1d080d37de736d37eccb034dc2d04a87d6c1f8243dd1729c0a15de017c5373c152a26644f3c9f7c1c86d72f0723be8cb258d801ceb9235a77b3
 SHA512 
05c48cddd2c9d773561aaf5b331112b58c79e4c9e0ab3823549a5360b618932bed00cea63d7c5486c66c64218aef78318cf5746641557872eab8ac75d0613de2
+DIST firefox-105.0.2-es-AR.xpi 568715 BLAKE2B 
48f6219030d8de47ea70e2575c20758e38ab7b568543c166c6e5b263ecb57b6e9fbd749074216f791f65854bcf1c8144bc181cb05b0fd6656d9dbab8573d4901
 SHA512 
89a4c9bf604b12ac2e8c3838810ea8fdf9b230ac2f19be15939e5ccb8776f2f3f1439be2287341ebe0921ec78a040631ac7ce1bf1c034ba7ed1f730e8968e440
+DIST firefox-105.0.2-es-CL.xpi 567813 BLAKE2B 
712cc833ae89c4d95107cd99f75faa387531b867599a2e26973ee5ca1d053ebe1ad4a206f7b8befd9766caddc8ac96e9f68f2a0d2581f3cf2be2c2e3b7e59b75
 SHA512 
8120371a7346ff95da760e27c250f50c223d5b32fa0e6fce73914e37a47beebae60885b5537cf627a15d4f75e5a777211d8a9bfe27f34c8370e2a21e1c0fc676
+DIST firefox-105.0.2-es-ES.xpi 553328 BLAKE2B 
be7eb7433d61cd31989ed80974a27424caa31958217b0d35e9bfb9ad711bd1adb670d9dc0ee7aa71bb6f136d74521d7dcf1dce69675be939d7d9171ee74bed4e
 SHA512 
b28cdd4117168a21c705ba8e20373574c422b0d4938396b297f76395792282a920eca98dc2c6b0d9bd1df20f7dd8dae5f67a9e6865c9da2dbcc882fd94e6f3b5
+DIST firefox-105.0.2-es-MX.xpi 571868 BLAKE2B 
c543064b6d40624e9f57d9ffc80541ff6f2fd1f4d742572c9665a696fb56bcd190a5de3637d1790fa0b25f3ad1759bd3b4be74c444747184c5003902197b6569
 SHA512 
eb6b65b9e2dc341cddd35aee7b5afd06bea4ee53cb5f8172e103d64ed985d8049c70e9249a8f8c51074d2c727c66d6c159a0435c09899c8ea36c862688e5f724
+DIST firefox-105.0.2-et.xpi 539893 BLAKE2B 
c28506dae8d9f1efadc99cf8de6f9bbecbb37c4780c1e10d2bd976b5816cc6f7e603c19ff0413e5e47eabdfb343ce884416aea5ddf64426949f929fe35d86e4a
 SHA512 
889a3ea25723267092a1cf7479987ef93b6305947bd2fb7682803e44aaa94365ea6da1f955d560b567ea77166201cfff9e0857ba0a2a891703860d898917fe66
+DIST firefox-105.0.2-eu.xpi 556241 BLAKE2B 
6357354b9234585062fa200ba378919cd60a6f84b7382f33e71530c2d688b33e1ac7bd91093d718c04e766178c44099ac78794315c4373d1232aad70898d1e6a
 SHA512 
1a6413a3d4af7fbf174fb245fbf558549db51ed1d51861b86656222c1ec00fea70253720412fd7bd1a30e0fe034d0aa77fe53164022355f8cf0d9db974f60385
+DIST firefox-105.0.2-fa.xpi 571117 BLAKE2B 
fca76032dc92af5b980e5683c3a6a3bc69a3f1608ffc4e0144e61b19fa3d4e48632f4b5eb7bcb9f4899dd1241fb649f8d195a685ff6b9938a8bac46fbf939151
 SHA512 
004e0cf5efc9ca14df73529a2449b7ece5ced626288d9424e3913921901c6fd9de617f75fe13330a866fe28c9a47913abbd232fe24bdf6539e6000a14e18540c
+DIST firefox-105.0.2-ff.xpi 481142 BLAKE2B 
0382a55580a424337ec6dbd3efdbcea4ff6f98ad98593a3e6df7392e2aab1d06ca2063b5ec1c86f8dda857c50be39af0cf36d605791f32d6c02b326651e32341
 SHA512 
728f94c6b71498cab1e66f3aef0f561e3d676ebdc1bac5398980397afed21da232ac9c2985ffee079a53a198d5a5dd5f9c8e520f6a3a8b3b70fde14ea07e75b8
+DIST firefox-105.0.2-fi.xpi 552067 BLAKE2B 
273af3719257320d79ac206c907bea0b278241d2497f798f9afd8925827b6fecc9462d16b67cb7cb54586322ee7a476419f29cad33b1508a99c26d22d027e755
 SHA512 
4ff1b20dccd06ea78ac2b8588e88254662d119637edb4b3d176e204a42e6201eb81381e7b53fb4d98c37a19addaba6ae3698dfeaaa6d2a23065af1378fd8956a
+DIST firefox-105.0.2-fr.xpi 580226 BLAKE2B 
997438094937024513daa2fcbbc5a7dccb70706e0292ab58630d7fa83668535e099163cf336418e8651407e246837ae919663053108ac8dcbc8749f39fb06b12
 SHA512 
87cc753dd7d07f791996fcaa13d4a058ffc7db7884b8150630d25e5da4cda5eca5eec0db3a054dca5c9dbf31e802b65c0aeab83492f76f240cfb1f8ee48e6c45
+DIST firefox-105.0.2-fy-NL.xpi 564523 BLAKE2B 
9fd34d35c3f9b1b7716cce11aea6902813a4227259b33324150fbb494753d92a35b3f54775aebc2957fafc0b8967ddd68d59509c960758a2cba3e6417c6e5f47
 SHA512 
b9ab504502de460bb98f96001f96794545c2d565c9b78cbd5e581b51ff7234a4f92e5e1129f953b4ae0c862a45ae0df30a43edfe4ba7e0b2e8ac2bd2bd0d43b4
+DIST firefox-105.0.2-ga-IE.xpi 479298 BLAKE2B 
ee35cbc6b9f94671afc3223de9e7f070f20b96de787e30535975db1d6eddeebca4a9f8477400d05d4248f2b635cb094992f01d9b8f798eaf57f97150afadfca1
 SHA512 
922659b1536a28a73ff8047a5cdd2cc3875e2c761cb98acb239f1eabc72aa39647a4f086cfc12af3fe69e46bf9203fce7c12813b99bc72712889c43c373b72c0
+DIST firefox-105.0.2-gd.xpi 552649 BLAKE2B 
74e95bcddd8aa7ae80c03d31d3bcc78bf5d2e4a32636c6da7f550ebc2c1fedcd4f209722761f140e66bff3b3eb7f3bf0b0f7b9ce432323e82c97fdca37155d5e
 SHA512 
4c153764aec66677b7d9da70643710bc0553ebfefc2bd5d365afa0267396fe0f34f98bfa08cb118acaa42b36574842720048da88833b9bce594550ad9be7035e
+DIST firefox-105.0.2-gl.xpi 548793 BLAKE2B 
135d55e43c2c59357f8b074b32d8b5767973ec9336eed0778990d010ca77a5c99dae77d5f91b331d509905dabb142e5d0ba9475d0fc7368d6522f672d7edbcb9
 SHA512 
d63d78644218a73e819df2f72eb686b2cf67732db33f6b63b254cba1da1ee8c6a866ff0b58c039854d7dc7287f78461ae1982884826648b81ec828e994458476
+DIST firefox-105.0.2-gn.xpi 579022 BLAKE2B 
5db2fdfce8876095a6f3eec8c2d028319a383a46527e6e99cc4f197c32ec137b0e3d6a268e26b9df4ec70cfbd32c865ba15efa907c1cceb41d4df6025111b925
 SHA512 
5cbac237d4169bd69ca0e436a3cf17ffa7d2119924f37de749ca6dbb26a6238b5af79e3970d9f630e52b9655d3b6914d2a8880ac98c7b0be1779be0397f4b8c3
+DIST firefox-105.0.2-gu-IN.xpi 536346 BLAKE2B 
d01ee9f850392293e9f8c8b3c58f345b270ee18902ce76fc3a5917a7a1522abc91e7dc64c7169a95ec5e4e8160e228c4006b2b2cfdd29596fe4486eb064f9399
 SHA512 
adbd5a13cc0c3b88b61fe2e534ac9cdf62eb3d368de75b38c82d877714f3c30d348cb96a12b9af9c43347fd5aaba66dded560365cefdd24d53cdaac402d30158
+DIST firefox-105.0.2-he.xpi 575463 BLAKE2B 
cf12486a720fc4214b5df159d7ea5d2bdf82ad3d9566e31b298b3aa2ccff286d1b59677ee6bdbce7ed1a2e8ceca575869aee01752211c678e3ea62d9ad429597
 SHA512 
1b2fdaf49a552f960b625c45647e919c458f25edb3b47215a3a3a1e7ea2fbd50993578bd60244ca40195ca69efd1f0502958afad26f4d5678c8dcd55cb2ce95f
+DIST firefox-105.0.2-hi-IN.xpi 566805 BLAKE2B 
bfc296aa079b42deca8ab19da62568389263b7755883879c88f026f4ba3badb2a84762708d011f5d7aeb33574d4d80dff6a76b9a946ed01b3b5013a17c75c476
 SHA512 
39185e597b71e97e2a126fdcdb193152f3c191af86c4f8b73129a0cf2c6146b67084a492bfde5a648d28bf735082e0dbf86be9290c25230a4bb1e1495d71ea82
+DIST firefox-105.0.2-hr.xpi 539465 BLAKE2B 
161d395c3c18d89d80ad88f0aa4e6ea43b47bdb6cd7da1dc85f1c200b9ab3ad74770a3adfa15e767f0461452da5a260a67217947f44d8bb7cbe769c3e921bffc
 SHA512 
85e9dd87f45634ce5344b9f4f705251413be8048fd438e341d8311424e81fb03626d4b67df11fd31fe9fdd41a71705d47fe2f358b2a11deea0b8715f5f36ddcf
+DIST firefox-105.0.2-hsb.xpi 583869 BLAKE2B 
7e9c3b2b5190f9aadf66486cc6b7ddf9b551309ff9f202bdc419c992d75d0285adf78d669522fa801d814176d6ae7dde95b1e8ee2e0a89cab34c759cc0c85bfe
 SHA512 
2105e5bac07bc11cca7357853abe9d13d37681cb051cd89e34b8c5662168deef74bb63fb36c264ed05af7912770e14f4b0d6bd2c2372cd197d9469594c7b1058
+DIST firefox-105.0.2-hu.xpi 588455 BLAKE2B 
31bc6acb3bae6f04331894bbd0bfb7d75cfec5986d49e0754cd6da5fa7be082c3bdc662dd302546c0a79b70342bc6984fb905380bbb95ab9382832bbc14bc021
 SHA512 
f829abe9d78b76f12e27b36c2f0560156d0d603ed5c21fee94a30013c6201d9d4fd002ec9ae775f48c3549067ebd1f6ffe6d024833e8e8432b69248eac742112
+DIST firefox-105.0.2-hy-AM.xpi 591365 BLAKE2B 
a03540a5115f6e00d13d809402486b9ec5566c9dfeb0c5a40b67f959dc20b0f2a363b437ff629dc9ddb6022c00c3d5320f05b182ac3e37ca05f37de2b64450f0
 SHA512 
31e36b5ca62cbd39630a82715b4e7fc9b96b151e4e4c4e84ebcf6fb5e580b3fe02ba5d24bf164abb4b2eab78609a0564486e6b0e9d55783db95a4337d9b61b15
+DIST firefox-105.0.2-ia.xpi 553264 BLAKE2B 
ab39a8ae95b164e223aa903510f00fa6059306ee6442c4ac894d6de0f50aaa30d4a15d38f16ac06940f705cedad6d3d1c830fe3a6cfe8c3434201458b15c92fd
 SHA512 
a368af9ab1c8bdcdb8df23c16d8072c076af2aae511cc2a84c1f693f232f3305a26b6440f850a12aaa4ee05fe5cc750dd6a0c425b06712070a5e8cd210edb74c
+DIST firefox-105.0.2-id.xpi 550335 BLAKE2B 
dc8a6307176a2f8f2a6368749e8f9e9a7320d4244434768b85183505a9c8d5163542a453641725586c76bec814ede5a19a88112f996a8fe9be31cd7b4a5ceeff
 SHA512 
fbc9068c66d3e7f16aca2d8e51411f57f1976a95859f2b794c07c74a135f0c85e008ef59b9a4ead8852cbafd8c9189adb6dbbe6fb9ddfc393fab6c659abb9311
+DIST firefox-105.0.2-is.xpi 560812 BLAKE2B 
1182c294e5a76da3f13b71f46b11424e8e2dee07ec598051969a30ddbc2abd077dc4d44ef4f4f9cdc524b87335e7e25b3efbad1782b40c42f9246d454da36c81
 SHA512 
936c3e0e52113544e6f5780cc3ad9026b2a9545bb1cd505f40592efed072d7aa5c66ea1aaefe5cb0e5bacca9c75fa8f77fbfd21bc67384dbbf3fd17141abcbb9
+DIST firefox-105.0.2-it.xpi 471258 BLAKE2B 
05cff008ec080bf47918fb0f4dabaf17f3826fd68c6c02fefcb59c867011e62246d5c142e843be4db65bd594bae40e6d29f02e750b390be60e8923e0ba4591a1
 SHA512 
e41202b8dc98966c4624654d4d748adec28c9374dcec30386b99bf604be2d0fe93b80b18149c224f041f4af8c9e41fe4cf35727a5e7f10420ee44efec9fc7135
+DIST firefox-105.0.2-ja.xpi 593781 BLAKE2B 
fa2b731ec606d949f3456787c80cd783c5310362f23ef440df46b83def7ac57ea54986283077bc37345c52874edafe147aab6feef11cc314704948e9c8685586
 SHA512 
77c3e9076b2a24b2bc999fed73338d1c628bb8d3bbdec2165cb9098bb56eb389cdcb3bceb3f3a0cd8b60622ee36d289de9febd008fd64efe21e58030e1ee1f7c
+DIST firefox-105.0.2-ka.xpi 614606 BLAKE2B 
5db2ebb8c3330339397b1c4a0029673a4b87b473cac6199c5316659dced0c09fd156a48ab1710bfeac8b627f8c499f5731b71bac4b2b80dc87c8bdba3514c75c
 SHA512 
6a5602c95d56da7eaa968996547e9b08dbc60c43d0e990ae61f652af0c894a20ec7398b9b4e3026aaf2ceb1e3d017e47aeddffac5244ec0f43c51ad4361a9efe
+DIST firefox-105.0.2-kab.xpi 573733 BLAKE2B 
fc06539af9610e0219c9c76fd558ca348a93ef70e84bb1edb0c0f9d6cb093a633121dc84577b4721d77fce17a4acebcec765c1bd6d1cc5a9b31f4400ae1f6464
 SHA512 
56ce13fd7acbe8f89004014c27271ea037e20a7f2d7bbaab2ee3acc12e3381ec9e2d1f91f2794c289d337280ef2902446fd577db8d435e543aa62ae16b4bb30b
+DIST firefox-105.0.2-kk.xpi 631204 BLAKE2B 
77de41694d8b20d475ff5804bf03faa81cf6e8335fd3e5ad31adc541aa29638c3d3f6e43895afd7961ec32133b2a3deed1bbb5a77eec12399de417e5c53a06d6
 SHA512 
8433172fd1518933e17f36f146b2aebe6433a786c9d0a5fef2643aa7cb5b2c57108baaf83187860798e21d533dc0677814bbdbbcca8c5ec0662e027d78b788c2
+DIST firefox-105.0.2-km.xpi 540639 BLAKE2B 
dc637b0f092d4987174c71ff4d4effa805d73f5b40280df5de684081fa4fec4f076468566922fa88cae86fbbfe5cce43597b34f0107ce3f8dfb330a91b19fdf8
 SHA512 
9d34bc9d55b8af500520618eddf88167bd19684bb2855d6b21b2d95268eb9c84dfd6e725f1d999c288fc0ef200834fa37b90df241bcde013ab4fd6b83193aca8
+DIST firefox-105.0.2-kn.xpi 506463 BLAKE2B 
d738431c8d3b6bfbfe90106130c35033e3eb24513e2ac82088495240e855d5350a907aad0bebb407574e9f25c34cdc767f2f5e160cae9a50188acd5739563c92
 SHA512 
0c073a6a36655415030357e1a524253228edc79958c8f667cb97c9e0e2724e6d320160b5bd5b077e91661dd7b4e7aa6ebe70693f247c545078fedef82a67aa1d
+DIST firefox-105.0.2-ko.xpi 600527 BLAKE2B 
2c4b4484986851912c4cfbe016e2b080af2f2e571b1d3e105ae3861b8ae145b3de78d9d1dce2ab47b8595a65005c3ed37533f8c78c3c61bf4e735b1b024deeb4
 SHA512 
64641a3cd47d4ea247f98649ea37655c8121267be4ce86037a1d5b2d0a8a8227a11497d2375a41f0ad7b651a38b696721bbd8a5074a933a938e0a889a3dd502a
+DIST firefox-105.0.2-lij.xpi 479004 BLAKE2B 
5ebd246289cc6a3a3678d631e512eb87c9b6e1d3d32f57c57c06067aac810bfa57a719546ae68918d9a328a38ed7db16e4808e982eda410c603ac03ce7cca17e
 SHA512 
e8eff656624960054785f1f41316cd033e3cdf611519c7faa89787159c21998e1b0a4c02103fc7b3ea2b67f37e94abf222819d7603c200dd6d508bf0bcb9fb3b
+DIST firefox-105.0.2-lt.xpi 570062 BLAKE2B 
92ab598525aef040e1306ea1cf1cf87d9570b59af8150126415068633f380724e7aca9f280c12d9f5e7107c64afaffc0b65925eb4ed1f66f2b0decf645a13905
 SHA512 
f02380bb025843dd5699902d6ddd22e38051a9fe5909d9dd04c9d32ef1a4aa380404c031d88db3689a197b28a3f647a9a5d8bafec3034a21fcfcef226e0cef05
+DIST firefox-105.0.2-lv.xpi 472208 BLAKE2B 
8727f396c7e64de6d66e7677972ac7142557bfa3c4dba53d1ecc4c902ab9572968a8108f4f96e1b99862290e5c3d3cbbad54f83b37613684702ca1ebc888bdc6
 SHA512 
4a6cdf9945ff7e00d0abeaac8df1e484498d6e9da2e489828f75959890688c497972ac2a466cab487a32a7782033a70a3568f5ea1ed6b52659872542f14fbf30
+DIST firefox-105.0.2-mk.xpi 490866 BLAKE2B 
1a3259166faadf2996e60b7911981541c6dcd7eb6b2c74932fbcbb02ecdadd97a15215cf8a3276edf5fc400b60f2bca1d4e6ed056519b6f621112998a1586bfd
 SHA512 
7dd9b7fb92111e36cd9ee913fbaa85a8e8ea795e22b9867bd0ae465c2e2e3171516909266fc645c6d23c968a069237c19683f158b4475e6c41fc3363eb81abea
+DIST firefox-105.0.2-mr.xpi 539894 BLAKE2B 
cec13d18f7f9f159058f824a60347f017a95dfb8610b1d0fe06c29e06d3fc065511288c4418add83d06d730cc70338caed72068cf0ba3c7ef248dc91da261b1f
 SHA512 
3cdd72a08cfc9dab83319cbcff0bee1d5e23a568dfd62a3ed2822114ed07005d66e3f6db2df73892243159c589e26272231d13cb47ad194afb4578430596bce4
+DIST firefox-105.0.2-ms.xpi 457120 BLAKE2B 
0c22455c08f6206b4217464379a64658f14286300b600027c9991cb2c04f2448f45be2547959b4d6dd32ec73b96b7d10badb288d4c7992ab3b06e7768f79d4dc
 SHA512 
4162c44076a79251b63bae7a747561bf9721edde8a5434b988b98d34df724591f945010b03eb016d393cb5060309a0ef75cc875bd77ed5e60a858c23a452b31a
+DIST firefox-105.0.2-my.xpi 520844 BLAKE2B 
7b999dc1294e0573ee41386f4ec1a04f19572950085c342850b544939063682e2adbba6152dc80e0baac85a962373f9209b95006ccea845c4ec06a9a2cdb5ccc
 SHA512 
e0eb4c0c406cb17ebe92dbc1670bc65dbe2e357e95dbd3ff664f99bab7cc000d7adeca95dd9fbc0adf3e0cdadf190c030d0d4d25ae36198e03f973f9a4177c8a
+DIST firefox-105.0.2-nb-NO.xpi 549443 BLAKE2B 
9f956621045003c573e2caa5c74fe017b59eb1665456bb950d449a07f20c53ad2bb1e05e02f47280114f3bba36001bdc305ca196f6f19800b83e44d4d08eba2b
 SHA512 
9d79a8f27df35757f41d8ab5db1de6b787606d9f845bb88599cd9078448f08158e51f5d10d6ab4713e0ca4b3fb292335056211fb546b5ad2d914ef2e907a839a
+DIST firefox-105.0.2-ne-NP.xpi 498120 BLAKE2B 
a16bce2197c3808f16d2f36a49429dcc75006eed6ff528a6c0cf9ff57ad4193e54706f18ce78f489fa5c4631bf06c96798fd0daea5aa13afe3563a2dde8e6a5d
 SHA512 
8a06dc72092c6dc09edb29b9d188668615e2e34368321936af44bd38f58bb21c498a8176e2f56d6c102dfd7663398a6bcc4b21b12cd23a8efdb8d0a512965085
+DIST firefox-105.0.2-nl.xpi 558682 BLAKE2B 
25a6ad19d04bc652384b12eb70677ab8a7cc65d6268958466eae9d2f62bfe7e2c4a482de4c0968e35a752d3ded0dcd855e1e1867713f5e39928c15e72fa5c8c1
 SHA512 
0e2a606d4ca500d4b70e3f629b17b51f2fc7fef58a986a3515320b41e0479578d632924fdbd5b0af6a72f56e02ac4c4b6ec97f21363f48aaa0140656409f8c15
+DIST firefox-105.0.2-nn-NO.xpi 549960 BLAKE2B 
d4d83daa43a715e79c4a29e0a9b0c72667392ef2461c5996a4a1237d4ee2158dba6cb2853e977b5bf54c179c06c05884360f31625317c709f1e92b61ccee3746
 SHA512 
ca5721d397699573ccabbd27cedc011777abf1720e5e798d8946a96bc18949f23a1307271bc9948b26093fa855cce1b0a9af67be0dfc2e74bb2c0d49bf8966eb
+DIST firefox-105.0.2-oc.xpi 569604 BLAKE2B 
753263c3baf420a020eecef985a1d07f001077993cc2df29c1b7e935d7e13fccab041d6c7930beb44c6b26e430cdb1403ab1cf3e1977eb8b226067e34444d920
 SHA512 
6a8cdc4c0e72e0db6cdad8a0e23501aa8a3f7a3845dab0c37f9b107c856ba8a9d48454cbacbc3a135ee65360d1da6a7adb8d1476b8c141e45a8344c3708a64a3
+DIST firefox-105.0.2-pa-IN.xpi 621212 BLAKE2B 
bfadf1e8ab2df2be22f84fb7c8a901e104a032f22868908414323ce2a9be65de873be362e0e48b6f057f3d4d6dc56bfa325be8024fd584fe3cd60aecd7b4dfe9
 SHA512 
107853f670afa0acc5e8968f210b9d9a85e93da23030e05959ba413cf8579bfb924f3b5692d54d23bb94693e212b84b4d22c4f4560d24c3855d4e8c244c333dd
+DIST firefox-105.0.2-pl.xpi 579337 BLAKE2B 
9f694fb64a8037060211f669bd2b4865e12988e86b70965f49f9f8cd87d808a1dfc5d3a6bf7f22846da67e3c2c6f57cd9f8b051bd22df2bdb05dc40561117272
 SHA512 
0f79f8dad4ae55ced8e426136a27358254a5155f96ad6e74a1f3ac410180f3fab44b691ad9f3e90e446ece375c90b27fbe8df0dbc7b3dfd86e95c168c87fcbb3
+DIST firefox-105.0.2-pt-BR.xpi 563724 BLAKE2B 
6108ad4774905ed8e1978d4af9b19c5420032b9ca7619cbc5d129afbd91d17ab6ccc429a77e3fc83cd8e58649e5223f8e06c411cfebad0e683747f2db465d98f
 SHA512 
5d5e1834b394c1f27ce9acb0858aa114c9fbb97f9bc49d91b65e0d49d733b5233f7f01d30f4baab6adb62c9142cfdd96f8fe29e7c555c9fb60d18775131684b8
+DIST firefox-105.0.2-pt-PT.xpi 563885 BLAKE2B 
522266f206108090f0c5775a241d05ef52ff47bc866f75addef0dfe67c06d170874ec687541573a13d018578d1f27d04e40a6f3468819d37747bd35f7571915b
 SHA512 
5157855e5d111a693f1b904de840d1d9be7982389492888b1a95d1c78f5e4c1a08923d2a84333e3e1428d52dbfa7bd3096fe4045ceb6480a14eb2d7dbfc0d435
+DIST firefox-105.0.2-rm.xpi 547530 BLAKE2B 
41eb8198de05b03ac4bd46bf9f6f4f15b33f947fa6c166ed61ca874f5d5049f6b757b63824ed4ef78cf281c708a6d885c2eea2fbecc25451ff0a0ff6cd24d6ea
 SHA512 
716900f7c6dd71729558923d8c8922201e3daacb557fe5013fefc2222693ec2b4b7b1dd94c5dc600b97f09da32d5d6c3a01b7cd9c1027a406e7785e3c8f6586c
+DIST firefox-105.0.2-ro.xpi 537771 BLAKE2B 
4c4b399d81d0bf477206416767564ddd2ccb91cfbd266c9d23cb7bc781a4cafffa7ba86da3c7036cc64faf349afbc9c50676eb2797c8fee320b55f746a4ab4fb
 SHA512 
f6475731eb5ac23fea200f357a917fc705dd6bb53795e1b5d9511396f478ccb947a50f024447670d40b8f76d45fb8e64811cd08668e86b36583899199758fdce
+DIST firefox-105.0.2-ru.xpi 651176 BLAKE2B 
d23b863128d69f50b44955613c15604fc76c99f782501296455d7084b1a7c1ce4b29903652d48745e364d760bb23ba89070da078ed64d649d8809c5451f091fd
 SHA512 
df80b532a180e6174664fd3920180f6fd4dec999e67115054b46c34bd7a5feacd30d038fdca9c5251a11ec2c69addf1152ac39472178cfea07f2e324d92df77b
+DIST firefox-105.0.2-sco.xpi 505200 BLAKE2B 
fcbad87d322d5dfb0a08efb297b6e9eff29e6bb11feb1cffa29c825d0a57f06d6a6b3ea8c06c617b72e76543d0779bee550bfaf900ff8427b8f1140250323097
 SHA512 
0f3a4fc9f6eaaf98303f79e404dac201ff26bb9d131fb3747242fef3ec0e27173e669b00a06b9a26c452d544009404768426c7c40bb84d16060995205d0d124d
+DIST firefox-105.0.2-si.xpi 573141 BLAKE2B 
def1a9fee03d08b66f3bb2e1efb3ac15204ed8665b9c1f74019f2f416ba1d7921476be868c18fcb94b90e04ddb553543137f39d708819385fd7c8d2129582a81
 SHA512 
217dc40d788645d07f602f6909bfc3b4b6501161fb4a032da4ab19fba980d6fa680c6946833fceaca417f4b97de330b8bf73f38b9fd561cbc784aaa7b3185d55
+DIST firefox-105.0.2-sk.xpi 588220 BLAKE2B 
649bc547f8e0f76c54a851f4f9097d25f6076f16a3cd9f3b356af503a58fa6061c395dc7800ba8598e9a70ddb362a64120c4b0582b9006963032ca75396f36ed
 SHA512 
eafcd8fea9a51480177be4ae7c3d2622eff0c0642dc6d0d08e5c9406525d286dc0d430bade1877e2cb4a429b497fe3bebc1524fee770e15335751a7af4869419
+DIST firefox-105.0.2-sl.xpi 561133 BLAKE2B 
6f182a93f64f273fc251514c0cf8868513fbea4b519a51760e5eaeea0a1d224646087261e8115b20ee18fd800cdb1b5abc1e4d6cc27e6ce02e957b5283cecf0e
 SHA512 
e2fd7db4e37ba1fec406b554b8730d53ff36dfa4136efaef942fa05afc7b125f3bf98c0478fb6591f1dfed7a10bab4b9bf2d4710673e7c29f9274fbb91d70b57
+DIST firefox-105.0.2-son.xpi 433323 BLAKE2B 
423c15959c5b00bf743f6c9569d0059faac22066524cae248dcc49ff3192fd607ce5ca3258028cda10edb2c5222d759b08fc999451f16b0c1c6b0292fd378bbf
 SHA512 
d65d8bdd5cfa5135ce376e5c7f4f788d60250f13889dbdab6843afdc4ed30106ee055a904c8ffab3d77a48b9a56334772ca08d735979c9e04ed754d2de50ab82
+DIST firefox-105.0.2-sq.xpi 565442 BLAKE2B 
fdb1df972ffc71a77fb9f180bd2c4660012a3c7963c7db9bc06ebdb9b3296e2a0d1e431653074866f7e2ac171d892d25f1285210eb1e522ff71bf04acd5ed6e0
 SHA512 
8653eac8102c7b43da6fd30b7458a6036019de9d97a5f6fda4b0372b27f1d5a33f2887ef8f5d659948f108464421d6217c02e88d8cfebb0e079a510010e0cfe7
+DIST firefox-105.0.2-sr.xpi 604657 BLAKE2B 
9abf459951edd1f2d1a698215b63ec0f868d8bafa237a82ab433313a80e9220405fbf84863ae26cea1bf83e0eaac70a355e5710f2cb7b720f9c6545e86ba62e1
 SHA512 
894daf0c67f31d8f5668ffa7c977b80ca772d15698cbd2e2f6834c9ec23033d8143f4b1731ea4b448af0b510110539973f97b1275bfbab0b2bc1980d1b847ca2
+DIST firefox-105.0.2-sv-SE.xpi 560629 BLAKE2B 
f760e5db8f846aaccea52e8ba4b6afe4c23232e0199d11a7eb5c81180d06cc57a399f911089f788ea82c4424cede03f8785c65e13e539c5a94bad4752d932f71
 SHA512 
3325452ea4220f0a39f7da7564371da4093d375cccb51b668ef80af2b094b6e656cf350c0703e35afaeb4e314924c689c38de8826641c592d8580d5e7337247b
+DIST firefox-105.0.2-szl.xpi 520748 BLAKE2B 
52a69ee514be1c9b2cbc7059e5b504eff501201111832ff6d709e0b2fc331df4ebd43c522a9ad6e70a4263c0430755a1630ded0ecfc0f71f9d0f83812884c190
 SHA512 
63f4aa51177ada21945c3a3f854bc9832ff36c1c71b3b0c2ff63b15e30db872d7e68950079890bf61d0b3658682ee91a40f0019bc5f000de9672647ebd13d02e
+DIST firefox-105.0.2-ta.xpi 519016 BLAKE2B 
2a259071d0d6a77f6fb1856e2dfad5c06c9afdca1b5af52e9f922c69127e5767ba753497ec6a943086f91735c2837139c368e0168338a688eccd3c84fc8d35af
 SHA512 
b83e641dcd43ad819ff592f47e98117ef489b20e4d2d47b655e9ec2f4525001f2e56fd138c2e744aa3ac872b9f87956414c63fe38d2956d75c1900a799cb9bfb
+DIST firefox-105.0.2-te.xpi 560557 BLAKE2B 
334813703d71c92753165f3a6ff07269721f6d50d32afd691655a82dc95f2afabbf8b69983c4e34c105b24d13d5df38ba1ff119fb6df3996b7c98afd00dd80aa
 SHA512 
bc8adb85c9f65cd9eea265d37bf323c1b80917dca252e6d522b33a7edfb49244869a093c62726f0f74e52562361edcc558a585d99fa2af0baa7c6b6da9606853
+DIST firefox-105.0.2-th.xpi 621832 BLAKE2B 
aa70347ecf893f0cdfffb9ac0e61f04efaf346f4f04f3b7c2a5f862ab00344631f1763c9393d04574433549d0b605b0874a95c1b175a44fcd9db13eb935059d5
 SHA512 
efdcc907cc964cd5dec9c5556535f565340b35e952483358d6e24be091a942a93dc848c7d632b2dd0fecd473df64a9316285fed6492bd771319d73d1f5d798e1
+DIST firefox-105.0.2-tl.xpi 528007 BLAKE2B 
7af70e5c8d1867c90331f5aff1c9aa7fcf95a1f39cd2379b4cb17bf30c9cfe6e60d8ce4368410cb532c6fd3cc1e21e74cdfc181f491dea35006bd17808980013
 SHA512 
d2d62fa4a327ccd3502b80fbde00f9d4c8644db114c2950901380e0083af6e4452ab9464a615133f0f8467cf16615d24b42efbe442748414b6ee808b3f4630d7
+DIST firefox-105.0.2-tr.xpi 574329 BLAKE2B 
a3a62faa581a789340d2ad212c4bf803e5ca14d2b6be4865cb0d12bbde07882a98500c34a62a2c55edd75268a4f67d896c593115aef2f72a8034e29a854dd14a
 SHA512 
e5f6421ce6e3da7b870c8cb1884dfa7bab71bacc707ba167dfcc7e558fdf6ac2c31e550067c0ffa7ec51a30f03b0f5bfc00d9ed1b1a81bb46ba06695c6ec7583
+DIST firefox-105.0.2-trs.xpi 498814 BLAKE2B 
ad77f52bf2ba9dca857b173726551c518ab14c7ada704ffbee4183a0b88ba87869be2eb6ae80f947a906f664f2ae4ea74f9060aa95547db1d14b0a7cae633357
 SHA512 
92f0f9ab1f2698bd9136119814a34153b131a2bbc5b358f18fd61205a1445b7fa945b24400a147bd2d6a2e27c23590dfcc1ecc7fd0eb7013f1f967d78f0170c8
+DIST firefox-105.0.2-uk.xpi 644340 BLAKE2B 
d7e9ef6b3de37799a2c432c9ba8d0e9c1aa00c12190823f7d33b7ad9580a85777b8aafb97eb0d31e590cd68737433d55188ce0068e63c6ebc22da08ef6225508
 SHA512 
77a246ea5d9735dcf485c19802ef4dcda67ed92da2a86cbd0fd7b10d49ffa96738458c019d1bdb7800ddee61f18f2a0d075e649894b879c085e9da0a66ce72f3
+DIST firefox-105.0.2-ur.xpi 566539 BLAKE2B 
bab7cd6dfe93afbc868e7d917fc981e5a6a075b28608640919e132c59c78ab5326e3715a754f060fd3723a477e5ba346db7ccadd20ae30421d95f3326d06c3f2
 SHA512 
950b4a90a382e48522e9b9ef90841e13a148d1fa1be510032010f7d9a55a818a4b6758958413a8d6aba36d8cbb3e3c3ea6abf89f05451438930550fe51cd99c7
+DIST firefox-105.0.2-uz.xpi 486870 BLAKE2B 
e3d241fc034cf2da5ac4cdd4152064a8ad9a353c7db528c32cd87ab0fdc02ddb310581911ae7cdc71d5898fafc4878c6a661b5fa69e3a060bc7888c4fe4d0f82
 SHA512 
bd5c01ca9564ef53fedbb1f1407c415c4f1220c2bef5dc6de4e647ae0ec45a60cedfc97eebfb8b036719553fd59da1c501032255d6ef07339bef442b559aff96
+DIST firefox-105.0.2-vi.xpi 595145 BLAKE2B 
1768fd7fc806be488ecf1ec4f71522bf9def3294369f79261d1a76d248bb1680c9333345000602b2a93ae22c68fc8523f751426b4f4e7c523a5b3cc141694f98
 SHA512 
a217641e3ebbc6b5e42c8932c16e8ad4364b75bed5b46caf1d0d4579faa2eef40e03854616b018b311d9fd2fa251a5bdc107ebf87629dc1faf38d037a7b2f1d6
+DIST firefox-105.0.2-xh.xpi 435744 BLAKE2B 
525f5a7ba427a5ae4323cfc71968f24598b1ad06a4a28b2bcafa457bd7f8a51a6a7e8f361e5d253a13a20e4989ff0e57e3a54acbca159506476963adc9041caa
 SHA512 
dc3057114fca4b5a34c22f463aa5d0f149c4d560a8d896e8efcf5aede896792220239d76dc96815481046c98113ccf2717da9e1743da3a34647153e4308d06db
+DIST firefox-105.0.2-zh-CN.xpi 596364 BLAKE2B 
9528ab694ce2070e977440bf4dc542774a1bfdef68612bde73a667799fdfb3c05031f6722ea397cc1cb1eccd2ce7ab4f23bbb6b06b5534f5372a291309f1b626
 SHA512 
43d867cfe07e90bb86647e2a8d66ca8d07e87dddabd3ce045c13d3512b346e16fb3f1f7c7bc2df37b257009d977fbc4bbaf4e7f3dd3919f529095cff02084c9c
+DIST firefox-105.0.2-zh-TW.xpi 597430 BLAKE2B 
57b1e25bcecd1b917348bcecfdfc247497c914ca2ee06531531bd34191bf9d588216ce9689926b8c1d4cd770d554ff066a2239d8d170d8fda90bb669d57b1bc7
 SHA512 
468570b38d2b4f637b22cd0c7f7010d7675e4859bf84d6cf5c00b6e548a91dcc55f49442bf6f9afa2ca4d9f35fdd1319b7feb6aecd56a1c5067726434149aa03
+DIST firefox-105.0.2.source.tar.xz 481457328 BLAKE2B 
0c789702678956fa51ddf3c2eea4f12a903cf62068759b66bff2d7239bfb40ca6e16bd0ec367f3ed00d2f3df68899e1b945e296577df0503380c9f872012d7c3
 SHA512 
49f4c0e7ecf2cef6fa7de8362185bd9ce6950304dadbbea0522a5782016587b9d58f32b45f0e0edf7a2cc31ea158ed10c886b287a18d1f2bff3daf50d9f0b926

diff --git a/www-client/firefox/firefox-105.0.2.ebuild 
b/www-client/firefox/firefox-105.0.2.ebuild
new file mode 100644
index 000000000000..489dc3c4062f
--- /dev/null
+++ b/www-client/firefox/firefox-105.0.2.ebuild
@@ -0,0 +1,1317 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-105-patches-05j.tar.xz"
+
+LLVM_MAX_SLOT=14
+
+PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+       llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
+       virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       
https://dev.gentoo.org/~{juippis,whissi,slashbeast}/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="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast +X"
+
+REQUIRED_USE="debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" || ( X wayland )"
+REQUIRED_USE+=" screencast? ( wayland )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:esr
+       screencast? ( media-video/pipewire:= )
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       >=virtual/rust-1.61.0
+       || (
+               (
+                       sys-devel/clang:14
+                       sys-devel/llvm:14
+                       clang? (
+                               =sys-devel/lld-14*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-14*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:13
+                       sys-devel/llvm:13
+                       clang? (
+                               =sys-devel/lld-13*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-13*[profile] )
+                       )
+               )
+       )
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               wayland? ( >=gui-libs/wlroots-0.15.1-r1[tinywl] )
+       )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.82
+       >=dev-libs/nspr-4.34.1
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               dev-libs/dbus-glib
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       screencast? ( media-video/pipewire:= )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       system-icu? ( >=dev-libs/icu-71.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-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libdrm
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       dev-libs/dbus-glib
+                       net-misc/networkmanager
+                       sys-apps/dbus
+               )
+       )
+       X? (
+               virtual/opengl
+               x11-libs/cairo[X]
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               x11-libs/libXext
+               x11-libs/libXfixes
+               x11-libs/libxkbcommon[X]
+               x11-libs/libXrandr
+               x11-libs/libXtst
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4
+               )
+       )"
+DEPEND="${COMMON_DEPEND}
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       X? (
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+       MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+       if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang ; then
+               if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+                       einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               fi
+       fi
+
+       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       af ar ast be bg br ca cak cs cy da de dsb
+       el en-CA en-GB en-US es-AR es-ES et eu
+       fi fr fy-NL ga-IE gd gl he hr hsb hu
+       id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+       pa-IN pl pt-BR pt-PT rm ro ru
+       sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+       # https://bugs.gentoo.org/587334
+       local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+               fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+       )
+
+       local lang xflag
+       for lang in "${MOZ_LANGS[@]}" ; do
+               # en and en_US are handled internally
+               if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+                       continue
+               fi
+
+               # strip region subtag if $lang is in the list
+               if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+                       xflag=${lang%%-*}
+               else
+                       xflag=${lang}
+               fi
+
+               SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+               SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
+               SRC_URI+=" )"
+               IUSE+=" l10n_${xflag/[_@]/-}"
+       done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -ne 1 ]] ; then
+               die "${FUNCNAME} requires exact one argument"
+       fi
+
+       einfo "Clearing cargo checksums for ${1} ..."
+
+       sed -i \
+               -e 's/\("files":{\)[^}]*/\1/' \
+               "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+               || die
+}
+
+moz_install_xpi() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local DESTDIR=${1}
+       shift
+
+       insinto "${DESTDIR}"
+
+       local emid xpi_file xpi_tmp_dir
+       for xpi_file in "${@}" ; do
+               emid=
+               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+               # Unpack XPI
+               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+               # Determine extension ID
+               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
+               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
+               else
+                       die "failed to determine extension id"
+               fi
+
+               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+               newins "${xpi_file}" "${emid}.xpi"
+       done
+}
+
+mozconfig_add_options_ac() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_add_options_mk() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_use_enable() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_enable "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+mozconfig_use_with() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_with "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+virtwl() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+       [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to 
be set; try xdg_environment_reset"
+       tinywl -h >/dev/null || die 'tinywl -h failed'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+}
+
+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="6600M"
+               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!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               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 use pgo ; then
+                       # Update 105.0: "/proc/self/oom_score_adj" isn't enough 
anymore with pgo, but not sure
+                       # whether that's due to better OOM handling by Firefox 
(bmo#1771712), or portage
+                       # (PORTAGE_SCHEDULING_POLICY) update...
+                       addpredict /proc
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       use lto && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+       ! use ppc64 && rm -v 
"${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # 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 audioipc
+       moz_clear_vendor_checksums audioipc-client
+       moz_clear_vendor_checksums audioipc-server
+
+       # 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_environment_reset
+}
+
+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
+               AS=llvm-as
+               CC=${CHOST}-clang
+               CXX=${CHOST}-clang++
+               NM=llvm-nm
+               RANLIB=llvm-ranlib
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               AR=gcc-ar
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+               NM=gcc-nm
+               RANLIB=gcc-ranlib
+       fi
+
+       if [[ -n "${have_switched_compiler}" ]] ; then
+               # Because we switched active compiler we have to ensure
+               # that no unsupported flags are set
+               strip-unsupported-flags
+       fi
+
+       # Ensure we use correct toolchain
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+       # Pass the correct toolchain paths through cbindgen
+       if tc-is-cross-compiler ; then
+               export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} 
--target=${CHOST} ${BINDGEN_CFLAGS-}"
+       fi
+
+       # Set MOZILLA_FIVE_HOME
+       export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+       # python/mach/mach/mixin/process.py fails to detect SHELL
+       export SHELL="${EPREFIX}/bin/bash"
+
+       # Set state path
+       export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+       # Set MOZCONFIG
+       export MOZCONFIG="${S}/.mozconfig"
+
+       # Initialize MOZCONFIG
+       mozconfig_add_options_ac '' --enable-application=browser
+
+       # Set Gentoo defaults
+       export MOZILLA_OFFICIAL=1
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-gpsd \
+               --disable-install-strip \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-updater \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --without-wasm-sandboxed-libraries \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${ESYSROOT}/usr/include" \
+               --x-libraries="${ESYSROOT}/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
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       if use ppc64; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       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
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+       mozconfig_use_enable libproxy
+
+       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
+
+       local myaudiobackends=""
+       use jack && myaudiobackends+="jack,"
+       use sndio && myaudiobackends+="sndio,"
+       use pulseaudio && myaudiobackends+="pulseaudio,"
+       ! use pulseaudio && myaudiobackends+="alsa,"
+
+       mozconfig_add_options_ac '--enable-audio-backends' 
--enable-audio-backends="${myaudiobackends::-1}"
+
+       mozconfig_use_enable wifi necko-wifi
+
+       if use X && use wayland ; then
+               mozconfig_add_options_ac '+x11+wayland' 
--enable-default-toolkit=cairo-gtk3-x11-wayland
+       elif ! use X && use wayland ; then
+               mozconfig_add_options_ac '+wayland' 
--enable-default-toolkit=cairo-gtk3-wayland-only
+       else
+               mozconfig_add_options_ac '+x11' 
--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
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+               if use pgo ; then
+                       mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+                       if use clang ; then
+                               # Used in build/pgo/profileserver.py
+                               export LLVM_PROFDATA="llvm-profdata"
+                       fi
+               fi
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # This is upstream's default
+                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+               else
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+       fi
+
+       # LTO flag was handled via configure
+       filter-flags '-flto*'
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+       else
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       elif tc-is-gcc ; then
+               if ver_test $(gcc-fullversion) -ge 10 ; then
+                       einfo "Forcing -fno-tree-loop-vectorize to workaround 
GCC bug, see bug 758446 ..."
+                       append-cxxflags -fno-tree-loop-vectorize
+               fi
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif 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
+       PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+       if use system-python-libs; then
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+       else
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+       fi
+
+       # 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
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+
+               if ! use X; then
+                       virtx_cmd=virtwl
+               else
+                       virtx_cmd=virtx
+               fi
+       fi
+
+       if ! use X; then
+               local -x GDK_BACKEND=wayland
+       else
+               local -x GDK_BACKEND=x11
+       fi
+
+       ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_install() {
+       # xpcshell is getting called during install
+       pax-mark m \
+               "${BUILD_DIR}"/dist/bin/xpcshell \
+               "${BUILD_DIR}"/dist/bin/${PN} \
+               "${BUILD_DIR}"/dist/bin/plugin-container
+
+       DESTDIR="${D}" ./mach install || die
+
+       # Upstream cannot ship symlink but we can (bmo#658850)
+       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+       # Don't install llvm-symbolizer from sys-devel/llvm package
+       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+       fi
+
+       # Install policy (currently only used to disable application updates)
+       insinto "${MOZILLA_FIVE_HOME}/distribution"
+       newins "${FILESDIR}"/distribution.ini distribution.ini
+       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+       # Install system-wide preferences
+       local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+       insinto "${PREFS_DIR}"
+       newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # Set dictionary path to use system hunspell
+       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
spellchecker.dictionary_path pref"
+       pref("spellchecker.dictionary_path",       
"${EPREFIX}/usr/share/myspell");
+       EOF
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+               >>"${GENTOO_PREFS}" \
+               || die "failed to add prefs to force hardware-accelerated 
rendering to all-gentoo.js"
+
+               if use wayland; then
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel wayland prefs"
+                       pref("gfx.x11-egl.force-enabled",          false);
+                       EOF
+               else
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel x11 prefs"
+                       pref("gfx.x11-egl.force-enabled",          true);
+                       EOF
+               fi
+       fi
+
+       if ! use gmp-autoupdate ; then
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       einfo "Disabling auto-update for ${plugin} plugin ..."
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to 
disable autoupdate for ${plugin} media plugin"
+                       pref("media.${plugin}.autoupdate",   false);
+                       EOF
+               done
+       fi
+
+       # Force the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
+       if use system-harfbuzz ; then
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
+               sticky_pref("gfx.font_rendering.graphite.enabled", true);
+               EOF
+       fi
+
+       # Install language packs
+       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
+       if [[ -n "${langpacks}" ]] ; then
+               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
+       fi
+
+       # Install geckodriver
+       if use geckodriver ; then
+               einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} 
..."
+               pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+               dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+       local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+       local icon size
+       for icon in "${icon_srcdir}"/default*.png ; do
+               size=${icon%.png}
+               size=${size##*/default}
+
+               if [[ ${size} -eq 48 ]] ; then
+                       newicon "${icon}" ${PN}.png
+               fi
+
+               newicon -s ${size} "${icon}" ${PN}.png
+       done
+
+       # Install menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+       local desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if use wayland ; then
+               use_wayland="true"
+       fi
+
+       cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+       sed -i \
+               -e "s:@NAME@:${app_name}:" \
+               -e "s:@EXEC@:${exec_command}:" \
+               -e "s:@ICON@:${icon}:" \
+               "${WORKDIR}/${PN}.desktop-template" \
+               || die
+
+       newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+       rm "${WORKDIR}/${PN}.desktop-template" || die
+
+       # Install wrapper script
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+       # Update wrapper
+       sed -i \
+               -e "s:@PREFIX@:${EPREFIX}/usr:" \
+               -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if ! use gmp-autoupdate ; then
+               elog "USE='-gmp-autoupdate' has disabled the following plugins 
from updating or"
+               elog "installing into new profiles:"
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       elog "\t ${plugin}"
+               done
+               elog
+       fi
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               elog
+       fi
+
+       local show_doh_information
+       local show_normandy_information
+       local show_shortcut_information
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+               show_normandy_information=yes
+               show_shortcut_information=no
+       else
+               local replacing_version
+               for replacing_version in ${REPLACING_VERSIONS} ; do
+                       if ver_test "${replacing_version}" -lt 91.0 ; then
+                               # Tell user that we no longer install a shortcut
+                               # per supported display protocol
+                               show_shortcut_information=yes
+                       fi
+               done
+       fi
+
+       if [[ -n "${show_doh_information}" ]] ; then
+               elog
+               elog "Note regarding Trusted Recursive Resolver aka 
DNS-over-HTTPS (DoH):"
+               elog "Due to privacy concerns (encrypting DNS might be a good 
thing, sending all"
+               elog "DNS traffic to Cloudflare by default is not a good idea 
and applications"
+               elog "should respect OS configured settings), 
\"network.trr.mode\" was set to 5"
+               elog "(\"Off by choice\") by default."
+               elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+       fi
+
+       # bug 713782
+       if [[ -n "${show_normandy_information}" ]] ; then
+               elog
+               elog "Upstream operates a service named Normandy which allows 
Mozilla to"
+               elog "push changes for default settings or even install new 
add-ons remotely."
+               elog "While this can be useful to address problems like 
'Armagadd-on 2.0' or"
+               elog "revert previous decisions to disable TLS 1.0/1.1, privacy 
and security"
+               elog "concerns prevail, which is why we have switched off the 
use of this"
+               elog "service by default."
+               elog
+               elog "To re-enable this service set"
+               elog
+               elog "    app.normandy.enabled=true"
+               elog
+               elog "in about:config."
+       fi
+
+       if [[ -n "${show_shortcut_information}" ]] ; then
+               elog
+               elog "Since ${PN}-91.0 we no longer install multiple shortcuts 
for"
+               elog "each supported display protocol.  Instead we will only 
install"
+               elog "one generic Mozilla ${PN^} shortcut."
+               elog "If you still want to be able to select between running 
Mozilla ${PN^}"
+               elog "on X11 or Wayland, you have to re-create these shortcuts 
on your own."
+       fi
+
+       # bug 835078
+       if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+               ewarn "You have nouveau drivers installed in your system and 
'hwaccel' "
+               ewarn "enabled for Firefox. Nouveau / your GPU might not 
support the "
+               ewarn "required EGL, so either disable 'hwaccel' or try the 
workaround "
+               ewarn "explained in https://bugs.gentoo.org/835078#c5 if 
Firefox crashes."
+       fi
+
+       elog
+       elog "Unfortunately Firefox-100.0 breaks compatibility with some sites 
using "
+       elog "useragent checks. To temporarily fix this, enter about:config and 
modify "
+       elog "network.http.useragent.forceVersion preference to \"99\"."
+       elog "Or install an addon to change your useragent."
+       elog "See: 
https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100";
+       elog
+}

Reply via email to