commit:     e8ecc73e90b44f8b00ef10fdccb46b10f17d8a4b
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 13 14:54:58 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 15:13:53 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e8ecc73e

www-client/firefox: add 102.0.1

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest               |   98 +++
 www-client/firefox/firefox-102.0.1.ebuild | 1293 +++++++++++++++++++++++++++++
 2 files changed, 1391 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 0875b5dc7197..cf75e33cbb43 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -96,6 +96,104 @@ DIST firefox-102.0-vi.xpi 563706 BLAKE2B 
42ffab120340561b147e432b20e95e841cc8dbf
 DIST firefox-102.0-xh.xpi 418248 BLAKE2B 
885d842dd0393964ab4fdf1e404d5b97bfe89d7c733cb0c7e0a889cc068c83849f0790eca76cf4eae7fc5c39ce4252d99e145fb401212d420b53a87caa6cabbc
 SHA512 
4d858b575b25a56dbd9b41298d95d422c5165981587fbc19517e8fea7fd46f3ef418c2ef8fabc10525caa844c74e773145bc302234ae816ec08e3e13527a288a
 DIST firefox-102.0-zh-CN.xpi 566189 BLAKE2B 
6cb83e63e0c213ef1b08458bfabfb4ba97c284c9b4f34d16e462be908c27d6ac3b385fddbd5b0ed224fc723a19c86b3902c6f1af18235cdcedc8367c786729b5
 SHA512 
36f1d5f3a8501e1e610cd55f7163e283a6def99103d89b2a7c86f381459db515edf2e01a749f7be80e8820225c11dd5bc20c8868dbfe94a273d3a5738e80d6be
 DIST firefox-102.0-zh-TW.xpi 567157 BLAKE2B 
111d1dced6e2dc46a5dfc37b37c3a91a3bd2adb4fee149b8fdcbd87f2c739be09dae198847550721bcd7565b71b43cb8926b57442bce7a5ba1adf0627155d394
 SHA512 
d907102b3a07b1ddad5f88719cf2a8939da117cd7eebd04ffd2f9a475cd54bb891ff2788a76e0da953e2ac24f2a2d9f1a36a4d3c230208491e169791ad098fc1
+DIST firefox-102.0.1-ach.xpi 443115 BLAKE2B 
bdbe6d960b55a4493bdf8ce7fdb7539d2da58d173ecc1546c7af04074d52a3d385252ee1bd38d54c62a04a1fc76cb209021dc33dd3c0108d6310edd5fe460d04
 SHA512 
d70333f2d6f537f5a00187a166a03e3a127e86b2761bb9c0dcf5325b43a778ac34cf596aaa4723cac41a0e8457149b20083a3ab262c1f6e4645893d93225040c
+DIST firefox-102.0.1-af.xpi 408456 BLAKE2B 
b97904a54ea7ec298b1abcc886cb3c4acc41d31c59e618cc42f46410a17022c770185e49e06d8d5a4fcd13f2b2958b95babab57b7486c0d03eb99e1efdff2f5e
 SHA512 
3d6910b80f4fb70a199254ea775508af08fd3c981262047a812f782a44108a799150fdad37a7da05b1c7a23f5e27ff86812493f03ceaa6518faf9e62be8f5997
+DIST firefox-102.0.1-an.xpi 486990 BLAKE2B 
42c0e97d1affa75b80744467140a30f2f08d5fdad6946f848f14e9b8f7a850270a0f3bcd74affd41c8dfcf3cd81e52e2b0222fef9e03b33171e7e60381e35ea8
 SHA512 
f3211edb5006176815fe92e2ad255ea66a5d58e2600c044c48a1c4b497654e897ea8693e7de580de731902f8ed5d52e96a41fa3a4169ac36acb8a9b604bd1442
+DIST firefox-102.0.1-ar.xpi 550929 BLAKE2B 
96832fa813c4dd496e204899e68cc6798188832c09d4bea03ea026dd2fd3a73b7102366d119262420333a5ba5231d294f2ec11283b4b731b011613e75c2f6866
 SHA512 
5e8a154c931918981c0161443e0afcf57cd8f2b34a53cfc4d9f783da8a6dced6c827550432a86f32c9cd5aafec97ab5e743a7afb401da4f933c234fe8f5f4360
+DIST firefox-102.0.1-ast.xpi 483319 BLAKE2B 
659eed9f9a62d567bcc9a56fdce315aff3c6b2667f6bcd48d8f7da94403bdae5161ca8eec4b317faee6412fcea01317fe6b41008b84017c48ccb13b3531d41bd
 SHA512 
3e0a00041ff7ef96682cff5b77670658d507232bb788c82219b833a01452c79b3f5bc6f08ab8fab00ff1f49460174f0d500edb32feebadff6969cd80f7f17be8
+DIST firefox-102.0.1-az.xpi 474709 BLAKE2B 
9a63ce3995d2a6011e0a87e6b1a57166b9a3ce37f482ebddcebd9dcaa6e191ab7a7e9c90b3f3103386d2c2d3c24cc22a745437357147cd980066b550672a9f3b
 SHA512 
40eee97abfb3471d62ca28c4246f0f957b5e08c3984068f719acc5048c203b99c764f30a68bb14b3e7f980c8388a5c59f0da42c4eecbea51ee5c8e75f83af5ae
+DIST firefox-102.0.1-be.xpi 613479 BLAKE2B 
90d0870b31feb7c4394f00b6ae9df045defb1189bb3f68a4ac382110d9708637e39de7f7781800988ae6aad1eabff8ab73434c557a13fc3ab158bfb10bd79139
 SHA512 
1529a59d0a126defa92f444301989de612cbc55776e4fd639315e3d705767d81ee0feb1a5769ed9da4c81f12cba340b06e381488579a5bcb94aa1f72f58345bb
+DIST firefox-102.0.1-bg.xpi 563643 BLAKE2B 
a0c5fe96bd35112d2815ac2ed25cdc2170a866b15109a7aaceb97808bc560077bdbf4dd2dbabdeaf23e20361d265713f4aae65e1808cd8649b9a0dc35a591e4f
 SHA512 
dc0a1094879067adec4d4b8756bafc853375916175d28141edcecfeac56b822ac5a6132778be902fc23155797363700348cdce0faef64503ff0fc46df489ff72
+DIST firefox-102.0.1-bn.xpi 565249 BLAKE2B 
2aae36d81eb3905eead903b1b992168d0729f54474c34aa235c0243573d128fbe0bcd06aaa18811c01e53b95fa93837bac713ab091799cd72e0d2ae943e25e9e
 SHA512 
e29f6e0446822eb1e4d4826ce88905e35794fdfd35fc985a656a8e0a20bdccd0800ee36dcdaac72f3761a65acadcec3e76c5b49dc2cffb8c0281c09374992a3e
+DIST firefox-102.0.1-br.xpi 521042 BLAKE2B 
357a298046c283e3dcc15f61ffeab53945d843d00736e4f35c68d3426887167bfdf6f02c0f791a3bcbbeb1552d6d502f497dbc322328f561b50d9cc3c941398a
 SHA512 
3a8fcdeceeefb00602634db5fadd3970ae29bec3de125610d72f4cbc0322141ddd519872cd8df3a1bddfe16f0b40a80fba232fc7b9bdbdd065744624e04a1178
+DIST firefox-102.0.1-bs.xpi 451830 BLAKE2B 
92edcd5eea1febdc1297c3c926d718a9aca09c42fa18c96f93254670c6a895f04356b7cd83620e737913a94ac275058aa5d0043c25a98e65288fb015024f6c9b
 SHA512 
b64817605df3b4c4d1a7ce614cb37bdb38d1c3d70ea59bc726e6d5fda8a54c09308e3812c662c00306d873e68c3630d9ca2ad08a4f63ed077fad5042bdc08169
+DIST firefox-102.0.1-ca-valencia.xpi 526198 BLAKE2B 
9ed0d28c23e66414b509502123e6fd6e37741f0d91bffe62374f549cfd1967ad20fb25e9cb4f83f269a5400ea6a5408d0ce77a51b53016cafd3216ea53d26d3a
 SHA512 
b7ca6b7b63941af36f895951f59527554df3bd9258c6fde85b376c3657dfcd54a01bc187b2b40009824e33f2345a266056ae5092238c30f89ede55f1d75ce103
+DIST firefox-102.0.1-ca.xpi 522661 BLAKE2B 
f068d70f3a1a9e8d98e00a7ea5459411508d70e69ecc3046dd172e42a8b958ee3050ddbb59d04e34b109a88594c527bc680b226be5edccef43eb63c181d6390d
 SHA512 
d3de95014ce68bdb942ee97c14e28590eb40aff0bcd126ee0fdf84e5a244498f1c4734995e09fed9abdf2454435ed59b231429787b177c4e820eef1f8428e778
+DIST firefox-102.0.1-cak.xpi 539685 BLAKE2B 
bf27985d0a7497515d2857582264dafcd43d008a19e575dd1d80449ba3a66913e651da6fda9e87fd44b8fd7ce8cef5aa1e3fd12a725ad473c71e64f50714b666
 SHA512 
eb4dcf9d7c62bfc0ba16654aa87018ce66ead1f72cbaf1013365ce248d74f364f680935bb814ef959d88cd0f8d304743691fb91f59c4178668f499883cf99151
+DIST firefox-102.0.1-cs.xpi 556817 BLAKE2B 
5bde1a50af74361679844f9f010c9f9cb4c1757253120cde18879264276a4fa59c673333057e394a8357ce02bc980a17983acfe9dda9536118ba08e6affc88db
 SHA512 
2aa5932918d013eaa85c5c8550b305bd26e9410918242dfd0d0bde9a853661c04fbf5801851eaf535aab355144a33bfe5fe0ce650d1c209d9aa3d861e74e8abe
+DIST firefox-102.0.1-cy.xpi 533737 BLAKE2B 
f38466e2c652734ea86a4281631a5664529ea64942c17ff45d15c4d858232bcba05ff15e01e48e2d7ea7a2af7ed0be48721f8843b79e43237f8db1dfd54f27ee
 SHA512 
5ed7011f52f4572e6e1c9127d62c7def446e41768b3f0cad1a80efecdb8dafadda54440a7b33b3d21e60a0426b5c78414a3c04e11b90f04264be8693005c136c
+DIST firefox-102.0.1-da.xpi 525903 BLAKE2B 
141a9e64778a7060203514341f5f67b19224dcb1d6d946ada6bf3bf0aac9a5c58b2dbd21b38894b1d6bfef8b0ee2517fad7b94c46bcfd64ce52827a964d3db0f
 SHA512 
84bb989044e5c4d7bb48590aef036ce5fe6e9ea36aff6fc4f5fe20c5e7b55d94ec540fe21caed474c36a172c608a6560843b769a0dcdb37a7d7ddd4ee26b818a
+DIST firefox-102.0.1-de.xpi 544842 BLAKE2B 
9aa588a063b6f2f6e91480e52bcc8dd1ca38994297fc14570c9fc850b3577d35a7cdf0187aaae958a5a0f6b175acb55dfb0bdcb28bc0f93ef06ba30287eac836
 SHA512 
c9a9ce63df57a170cee8949f8dad84cecb64499f03e5d0cf6425e8772d51d0e2bdeb987cb17cfbb136323cd91bf82126202f4f01915af5650cb986640215297e
+DIST firefox-102.0.1-dsb.xpi 557561 BLAKE2B 
20dadccb1b406bd42972e377f1c18f0e0f0cde08084d5601bae21edb59b7beb875c57164f393b98ba2208e31d852d9d229c6118898825a909e8d21ebb3084645
 SHA512 
4b0a4f8096f5780ab56dd9eaa4d2a2f7246d02a9044648878280c9a6558d2f16a74731033af90b74617226c7a4fa0a437bd0ef23e813f0df9cebd4d9628bed1d
+DIST firefox-102.0.1-el.xpi 628792 BLAKE2B 
8515b40d3dcda597b9fa6427bd7cfc71a6ad603104b99dfc3fd5c31b5cd709cf2a04f91f0d8c4bdb17497c7ac03960c6305de4ac5a688efe31cb4216c412f16f
 SHA512 
0fba348e19549c64b07f611e1daf5f352c8953bbbba0230ce9e56466337da44b39269b4d275fe548be087a791b77f358590a53b45a4d2722c3d88aea1bc6c236
+DIST firefox-102.0.1-en-CA.xpi 501971 BLAKE2B 
fea1e20b416c630b118ea78009ad12172a3e3203a51f3ac1fb425bb3e10ba4a42f0544c6807be19c2e342a88447fffd9b478884efe2e20628dbbbb4482de4d10
 SHA512 
67d2feac02b1902f527b1b390250956778c51f985b269050f93018d2b885d03f4dc0183fca6c46f4778164a358712eff5712d4313ba4da466efebe2c07b29ca4
+DIST firefox-102.0.1-en-GB.xpi 502452 BLAKE2B 
77fbad1b7ba0f1861f6f758c1fda33dc163e9d63145ad8c3e019992db1318b1df9b8d0b68ad23385c8998eb6a35b8761e9d38929a57265076eed0eb58d0f13e2
 SHA512 
6bf9160ae196ce96ea2c388c29c614305018551ee382543046c891a071451899e8164ded19b9766ce0e861cd0b558f396c39fcbf13cab81b499173ede7dc96a8
+DIST firefox-102.0.1-eo.xpi 528433 BLAKE2B 
703f7bc9b03f33bf4e1c4aed5876d81411c417fd688b88efbeb067fe4917fcd55b1bfb2c532b615e2d0ee82ad766a230dddd576114424fd3babd9726210c4cb7
 SHA512 
f6601e8d0ac59cc92df4fd6015b20ca31f0dc9cc16d86896d655dccaeb41efd7a28c69be1e65f00a717ee8271df8cc81dede31d04c484e9ba7fe90b41e6c2b65
+DIST firefox-102.0.1-es-AR.xpi 538389 BLAKE2B 
affa9c9f8dae6a04705d3a2bd06691f70b1458e28ec2e7f5f53e17b3df1b4188f76bc835a4d398d267958cc39760d927b690d7209e567d9b325f2e0c8098c809
 SHA512 
9e3c2d53cc2217c987d0229fb91c7554dbbf59d4bf25bd679773f545762389bf2006e74be4eb454c36a4b5f762b2b93ad251547ca04f2dbb772fce55b575d252
+DIST firefox-102.0.1-es-CL.xpi 537631 BLAKE2B 
8a4e951311a192bec777b901692225f55fd8bbf16cbcb7394c6cd4ae378db0c207667906ec4d40fe95d3e0c5af41e3a1de34836b30e4a4613415c3b937417abb
 SHA512 
77c340c17b8e8201ebf0ddfd4fa63d0f88034793d0dd658f4c1654bf77f2bae6cd728cdf9679ea5de6a67230c9f8f38b2aabf69898a7adb06f17a8728f3cb7d1
+DIST firefox-102.0.1-es-ES.xpi 529060 BLAKE2B 
34668b5a107d11ee0e0b6d951680f9150922f865029fcb595fae8c0ea797656ad3cfbb401ad0dd225900fd7af85e43f62376ec97564055c934aa92c274e41546
 SHA512 
5ed05c9b852bd5b0d4fe71f57ac6c9ee33a645823eca206ab78b7fe4195d358fda0a8367ffdaa719560e29d246290f3ea80080c77bf72dd8f8e2f7910fe9aa7a
+DIST firefox-102.0.1-es-MX.xpi 541457 BLAKE2B 
3b752a8c5890a96b9e44831ca650c1b2ed238535c6607a48b243134557a78ea32c1ad9472dbf4480833a16996dae9b30722b587314496ca33f8de195506a5842
 SHA512 
a69db678a1ae7dcaf224c6e9b5bedd48884455cf10be27692680714ebedd88feb03a8cba24899d0a6c52da7d438ec91ccd588186bdcab0b51fbfbc6069a7d38a
+DIST firefox-102.0.1-et.xpi 520007 BLAKE2B 
7a2469ae21a9c171c4021343cec7e86639bb7af5f8fbfb1a49163fedcf0d2124ab6e968988d4d9a50b438091e9e57c86a3a775dbb63110df3c66b97b459a8f42
 SHA512 
98426bfadac581d389ea04b02a90c71544051db3f10fb86eec70982bdc949ac6ea2511d5758bccb598d28b6176fa63a1161baf40e45a869feff30e3f99c6b26c
+DIST firefox-102.0.1-eu.xpi 528114 BLAKE2B 
34c7f29fc87cf39c6916ec027b638ac2d75ef11f9d2f63b05bd9d5a07420252fb592aff3910c69467e8d894e8194b0106b5e999c00749fd4dc12e37dfe9fa805
 SHA512 
a174c07982d1329e255693ffe20f5a5008bc8afd2cf93b7a13444f5bf8895d63dbb570a5a79e9688fbdf4fad69b93f3e628fd9a542dd7ec79a0285a636eaad59
+DIST firefox-102.0.1-fa.xpi 550824 BLAKE2B 
e3cb2c105cd7553a6907804410bf2340a63fd28cf834de4b6a110e8bd310d9ef91a6397865ce97a3db642696425ecbdda878708c681bcf4e43f5e563b58a0b44
 SHA512 
b7e80e256b8c64806c32dbc0cbe067ae9ae0aaad4e08f36da61ca089c0d4025e99bcf590309660c1e36e0fafd1d72eba47d8541c767bd65c569767d55af8c5be
+DIST firefox-102.0.1-ff.xpi 460982 BLAKE2B 
8ada7d15e53131f677bc29fd25a8ea84e54388054af38c8285efd991a7c00213ec0e9ea9e40f47034afea107f32ddb3bf33ff81c0ccc48cbcfb202bd1703ea60
 SHA512 
eed3cdc2d46b449ac128f48b89b334cd6bcac9eb6a0e1340e369d1b62257aee2e3109bf639a51a16e6c5cf157c34c0a71a3109d04ae0c379fd862bea24a0ce29
+DIST firefox-102.0.1-fi.xpi 524258 BLAKE2B 
4ab947240ec26a3ad05a6a8e274988f9712cd632b28201385aacde2c463b9003f77c169a68b8bd2abdec49b90b7dd710ac72697d47b7ca1a5e20bf49216830c6
 SHA512 
e36413329e7ba9242094f3c5d96173562c1fea7b9b9c83d4df6b5d9158e678c9454383bf4b9734f2695651bc2e43fd7dbeb7f042fd9beaf4b3faedb4406275cf
+DIST firefox-102.0.1-fr.xpi 549040 BLAKE2B 
0cb8979afa29b2bb57d00ab351c3995f5c75ac5a4a93ed0122f66dd90418bf5443894c446a96c43a4611d7ac24ab0e4bf99a5714742ac12133f887174a41993c
 SHA512 
c058e419193d0076eff32bc1d59441fb943548dd8c254074c0526939a7cd6ac0d6422a95428dc7adabc1e5deed12ca428afc22fee68f3d911624ea0f7854b213
+DIST firefox-102.0.1-fy-NL.xpi 534933 BLAKE2B 
e69d7cc5eb7837dc924cad3447d579bd661485611aacbbf24744484adce075b253eb496c649c182b86767fd35428d25c6628e8c42f07982a0486a509096f05d9
 SHA512 
49e28f257595e17c6e0f570429659b3d5848e2894c7f386aa8c0110342d395afdccc4a41eb4d6fe6eee012be0a782e1e6a6b1b5269bb279cc6b6ada5f35710bf
+DIST firefox-102.0.1-ga-IE.xpi 460704 BLAKE2B 
84aef85baf24510ee0e685f6629b2e44764fbddb331d2b4a827749971d9682400c2ebdf888e33687480d36f0edb408937496e0d540737036e72379d8f4150bac
 SHA512 
cc6deec0236d63d84cbda1ee3872b2c8d30753172a35ee6741806ab446bbccbfd1787318cc2d949951e3bfed52c09090c1aec6c599367574e101cfe7702aeb13
+DIST firefox-102.0.1-gd.xpi 522582 BLAKE2B 
6da9360c6c77acdf1c549d6afb96cf0ec5f982106c5de9b90bdaabd65243acc1a0c2afe7ca5db540444704f79eeb496da296ee9a752744563905622e75a80980
 SHA512 
3af727ec41ea27372bada01766525032b8b0200d65c7479ddc62ff5d984e8be9ca0ab65e6dc2deec483bc64e499852255991437457fe3b181b4bb7663361eeb9
+DIST firefox-102.0.1-gl.xpi 528501 BLAKE2B 
0ae6b62414c3c46087b0403fec178b968ea630f6321c6d8017a6ba0d07e90c14fe8bdf64a508f0b79117861fa2815e9982064facec21378d6bc12a1354e63996
 SHA512 
78cbc67e6c184c748a35617fa960f2bea85a4de3e4ab013091362c49fb978ebc479794330c1f41ddb90678e701a6587c07f8d3e33ce1be1460733cd1299ee7cd
+DIST firefox-102.0.1-gn.xpi 549549 BLAKE2B 
9b4ee0964beda6a95f937662c7706ba71613b648d94f5133ee7d0f594ab6c7c206604ffbf80a8aacf59fdd7922845daec43511c3026c7fdd2df879dd2abad954
 SHA512 
ff2d2db21b9278330fb8bb32a14669b46ca08764a60c1eefbb7e761ffbff42735c607452810538531b84bc40547dc424a13ac0ac092d6164794f6ee334851196
+DIST firefox-102.0.1-gu-IN.xpi 516025 BLAKE2B 
90f7846bc240fdc0104df74fa5f41742642cf8e25b2193a62025d9bdfc91d07f5400c3a8f25d4674d2f930906e31bfb9989531f588b96717e27f573d139c29ac
 SHA512 
96363a9bb3fe68d09bf0aa024334ca0e4694efb5432f8134023240405e12df1af710773c40c08bd7e2f57ee55bcd42977e5eb24a93c537de701d7a8c89b39cc9
+DIST firefox-102.0.1-he.xpi 549002 BLAKE2B 
40cff58674c4616cea8c2487f6fccc137bd5323a6e9bedb5dc8740363748047ef7bfa847503faa4d0caef9aae30ef017168e01e5dbc921056ae0aa8762012bc0
 SHA512 
21a09b2a3b2ca9c48a2279cb531b560caac40821088cdabdbaded1b1f34cf7c18a0c021c0425df1e6280863a31ea97435806cfb738595bf5fc5c7076f6c08b0b
+DIST firefox-102.0.1-hi-IN.xpi 546135 BLAKE2B 
9538def7adac70c7ec955752710c74ecbf6c9271533faf981b0bf478f34231708a2b2cb7f54719b814bc0244e0564b168748396c330358bd06a0bfa156a2393b
 SHA512 
79818e74cab237266f3763a72672605979528053499d6d58410e5562187f19c7b1affc664e885c697c333778d2fce3c3ba9b57c33b206a37b6ff5847a5a0bbc9
+DIST firefox-102.0.1-hr.xpi 518888 BLAKE2B 
b16e9de15838ed237bd240a161c9b317c1e3a480c040debd05d173803cb333a81bb1d27d710d11e28f9e00d157ab4169dd3b3df36f841366ba4ed31ea2a91c23
 SHA512 
b0b9d7e1982182d3d3d50a00e8850876d17a8099357d07bee26139557264b293455dac3bff75b4a6f93c62d986d7cb77d6044a8abe73f05af9b53ba39bf2ea88
+DIST firefox-102.0.1-hsb.xpi 553793 BLAKE2B 
41fbf62910131e0930520bf77943d00ec2e586d6db3e6b81ef0d7d70c0c4528f2bcf5cc33ae89495d241f21bda96373da3afd0321338901c38c5bf40824e1744
 SHA512 
2ad9b71d19e9c49b7eeb8de97935e13f34b1fb74797d14887cd066d57cd2a2b47f030e455814ec2c55caa4335ee40bcc2609d1e87ca144ca1d42012e729c130d
+DIST firefox-102.0.1-hu.xpi 556877 BLAKE2B 
e4899dd17ff3957d8d72630c92fa363805aeaedad035b5ee69a83cebaf8049619cd1ec2cabc90790a4dfabee17cf61b6f0891aa81401f8dc81da1aba4279ea3f
 SHA512 
f360a9582e69f4c01463e3a01aa7f42b603a6402da34eb05348efc3e700c1a473d1fd59c49da6bf410ebf687e2e2800c7a00076e83ea61e9c8d54606c6e4df61
+DIST firefox-102.0.1-hy-AM.xpi 567841 BLAKE2B 
be1eafedc8aa7966dc20db98beee27ba32b03733bd20ebfb4a181be6981bc83ff66d37a099d8ca191d98dda4bc7f78c94fb6c1d2ae01261fe1b6be029d501e0b
 SHA512 
160c71918ed1a29e4372d816e6fc2e8146863b8fd3d61578cc6e4d040de24c94e8a0d6ba03af583cd18684ec17b52588f09e3dfdc2faacd8aa3a7ac4d63c8757
+DIST firefox-102.0.1-ia.xpi 523746 BLAKE2B 
ed37baa30b7dcfef724f439abc31735108acefb9ca46b1ef6c8c4c1d03e7f7df80afe9973e9052f2bebd07d8b30cecfc8c89b477a564921ffefd82e4bee69040
 SHA512 
f57e2e05589aeb2b0b7c152ed9c59448c4f246e54848001f1cb989ebe115fbd2a5f5cc74dea67fbddf3bf1cad68ef57d1635118d48b5762304880af39f9ab3f3
+DIST firefox-102.0.1-id.xpi 521252 BLAKE2B 
9cdcd98e648ef36240f6c047167ac14ebe44208b2bc846b9b67e73549e0ae052f3ec9aa3dc2f4715ede558ed8e22ffc4494bd6715f12ee428ef72dcf5c49014b
 SHA512 
c390e6a2edcd2058469a44f404f81a79e9c69c78f7ecc312f6c3ee877b8342c5a11bb5befd733f932d012c35baf01ba3a5c3ce67b14045b2c6551ab42e2addb6
+DIST firefox-102.0.1-is.xpi 528381 BLAKE2B 
8cdd9e1b6a793b90c5d7277ddf5f9c86e1007c45d66bf4a079bd481af23310a5bcff0b41ec38e4549223d03b270bef0f9f0c7d4fe1343de34ce3af9cdd5abcfc
 SHA512 
fd3ef0533dfa670d6e92334480845662eccf681832c9e72bbaa3f5e72e35aaf72ed8e83e1c96095824e7e8e9d3bfe93616de2dac3a2143beae11b152d46670e4
+DIST firefox-102.0.1-it.xpi 449757 BLAKE2B 
008892e6efbfdef16d12236517b901fef137ac8f974612d2abf69272c5ce58added6eea9ab847f086387f434877b19ba83f7c2b88ee50aa99eff595ad5e59d1f
 SHA512 
80725de084a8dbee6a89f630257529b3b171a44a3c69cbb38a227cdce92fc0b7d1702e7837ee58f5c03cc516bd4f81202739dcb5a4236798bf01679163b306a4
+DIST firefox-102.0.1-ja.xpi 573750 BLAKE2B 
35865568a1a4d5f052a943da24d5abde6f5ccc80ad04db31313f15b7c564a0839f61a427576a08492046ffc16f49de5f9880abe32744823aa9b6f74e66d3df1b
 SHA512 
203c8293e1cd7f0beeda8ca392cdfae43b5ee7ab76fcf2be1cddcac4d8d686cb1bd26e82283019e5adfb6aee4ae8c7deb6f653f75aa989dff3ea4925aa7222ff
+DIST firefox-102.0.1-ka.xpi 581242 BLAKE2B 
ab1330c3e8ddf287bccd1c3b6bba86644056a1a1a71bd2b9e500e333cff41e82f6bb12ba9d67d93c686bd135776acb56f39bbf9af14bafc8f85db8fa6abbea1b
 SHA512 
1398e193bef367390a2bcd97553616f06b9c07e3fef9ece1cc677c56a82b85f9d4c67746ccd215215d206e53c98790999bdf3f87334676a2a4a24583ff2f6e4a
+DIST firefox-102.0.1-kab.xpi 543020 BLAKE2B 
7b08852638ebc9dd88c6a7c28c3818a74bae218234b1441ed1ec3643ed3dac08d92671a3f23615d363c005dfde076d3d8ae3a8821e99dc5f78458b10544e2857
 SHA512 
a7db631106b24adb5c0b546ad733b09f9f6fcf371d748a4241881e1e5288f52f96cef6e91eea97ae461801ebc3f6d61a3e076d99ac581064858361f318d18a83
+DIST firefox-102.0.1-kk.xpi 604865 BLAKE2B 
026b8f4ad2d94b746924a4fe394f9ef2502495b371ea8aa6a760bb1a0da3143c49f13a22e93e92baec519e676fa5cbe4975c661e44ca613bfc0fc2980cfe357d
 SHA512 
5dd3401f130ce83a8a1ddd77968e971710c3b76d5d7ed1ec453f2d7ba0ea3ed0416c429c1efaddae332f3d755d1e677402243e00fa53e737056e564e7484fba9
+DIST firefox-102.0.1-km.xpi 519619 BLAKE2B 
ee68832f27eafdbea215e426718d093f24b78e22f1187cee14fa976d33c1176639efdf2721ee37d6e83796d99525695944b741229ad2dbb3392077066909e0a1
 SHA512 
327e88abcdeaa4a1a2188fced1966cc5a8a508c2c12fe132f0e3e44af5339e24c12d52250995ba0b1b7604827e61cd565a3f55b2b41fc2bd560e27d1ee4d4755
+DIST firefox-102.0.1-kn.xpi 485573 BLAKE2B 
cb6bfeba97194fbbcdb89c744386bccb7735be06b46cd0daa94aaff54031bc1be64366f67e45804e86104cdfe6d07c8b038d0c1548a98a6c33c14c71cee2c17e
 SHA512 
bfb59c50040bc7c6426fa673f2e4083e4b4d4d14abede9ab55a552901de75ac1f394bd7961314044f8f1061c34b1aad74eaf2a195b11d92615b03cd2e26a3632
+DIST firefox-102.0.1-ko.xpi 570092 BLAKE2B 
8d8f736d57d38f25fbb21accccb8cfda50aaee5b91892005a6b451b00bd5d23d6f32dd2f42b12b582d7bab25dc150165b705886e4437432b6fa906a87734a4ce
 SHA512 
30e0e2f7ffea65881fca6ca163a789e23dbafe39968c0790f8d50871893f5aa7c00d1e4eb70961467bb1a930753c6436f8e06e6a6f809dee08f1aa223daff07a
+DIST firefox-102.0.1-lij.xpi 459199 BLAKE2B 
0528fe0f6ffbe00aee6b62a9f0d03cc07ce722b384b0bbaedee077b415a85a8eb11b5fbbf961c7ff335d86fb7171e8c7cd9b6405f9b4c543d552321eb166c99c
 SHA512 
6ead3b0c12d2a18bcf272d01fc0f6330d001e8f82bbc2cd35fc15b41230cd6328ea60ca10eb3dd6067f9a0244bdeafa34f8865807d0ce85cabd25d66009a687f
+DIST firefox-102.0.1-lt.xpi 549840 BLAKE2B 
99767dbce39b3160ae103d3a8f23d914d15d4bedca975f106fc7c0dcb93d567d38b3fb4000d0d40f64817dac19b36af9b6edbb24f0943677d75a4c6d9e5875d4
 SHA512 
180f8edf8e009659c5a2915d288cce9d395d83e15fff6bc26fbc63f9a7a1c99e7860238969d57c02cdae9d2cea82149786955ab21435b1b558ecf16a9fe7b4d1
+DIST firefox-102.0.1-lv.xpi 452074 BLAKE2B 
d106c7bd506e8d6a3375abb74e8d5cf8766b349dcd2b20db6ba684d158fe528af0adff4498bbc16a1aed6186410e07e2b1dc4c3435ea767107327824523eac1a
 SHA512 
17fd78718eb84508d0380335ac1fa64827ee08e8677f3a0d945acb0606a6aa36c8032f331eaaccbe9e3ea7c3b0c902512fcef87f7fc46d686c066c143a880614
+DIST firefox-102.0.1-mk.xpi 458905 BLAKE2B 
2f6e6359c7a078b5c086bdcb1f0b80bcb3bed64ad3ec7ef90c531378286a98d771f8a255c40d197142b2df4b59d6b6786f1eae2520bbb64291b455bf80de1eeb
 SHA512 
300fab3a6de65339a14e0a36570ab78865f160a09afe6d795601c35df2186a48846af6258233e344570b427fa93562165cc46bbad9d2d1baae15b8a6f3de1697
+DIST firefox-102.0.1-mr.xpi 519595 BLAKE2B 
b1f5e5b501975968e01db8ef4f7166e71a408e20093a62a3ebcf161efd4c2f67819dc140088d0844d103c3c5a79ddf997668f14d1459e443c0e46ad24472e6c8
 SHA512 
8511c5c228490bf7e66f62128c7e2d8dbff659d5a72847a12869993458f52be43ac2b9819a00d5b03f6fe15a05ebc451e118e2df6bc710413e2322c1e3c191ad
+DIST firefox-102.0.1-ms.xpi 437314 BLAKE2B 
18e8ac64eab5d9d751326922c64b3932b61f8196f13327a66b670f27127273ccf95a62b4ba2d2368a110fe276d5328dc296b587172d31090b8c47a4e991270ec
 SHA512 
ddad66f6d354acc27d0e107ed6275c0d9b6653f06b217ead726fee58be110d49a33fa90fb8f62e69104758a8ecf4c65d40f32c169b1a60c895823509dacf9e9c
+DIST firefox-102.0.1-my.xpi 498768 BLAKE2B 
2355beec7eafbf6f6c81a18f90803bc420bcb81f6eed4b23f247dc31ef8db75fa7394c4dbdb6d38ca8e5da4ff2f88ab7041ec44fe5d2c36c8fc66dc58733b045
 SHA512 
e67a04469797bf54951c5ee10b8784777d90a846c8c6de3ccb4a57ad2c2fde3d518a7b6a2ec26548045148f9366fe4701a1d2c9dfbe614fdbcd42396ce1e9139
+DIST firefox-102.0.1-nb-NO.xpi 521330 BLAKE2B 
db9dcbea29efe6ec8f8dc2be236a704e9322db28f42f30da8004d61153cc8f3330a6f7f0dc63fcb49b62bcfad184146e7b7f6f0717d2e239773529981331e7cc
 SHA512 
3c68bcc96e38675b4331a4929da9a922c1b0bd8032f22915864955508a8c9e68af35eea9368937a80b0a2f039c14d8c2c2e370713b6e5b82508e20d231982d1f
+DIST firefox-102.0.1-ne-NP.xpi 477721 BLAKE2B 
b3cc96b96d6c43ff3590d9805409f6401b7d3ef332cde89ad09797abdf8173481b28561c9cc9a7903663d2f4673d47fe84eaa91b26612b6af351383e63bec2be
 SHA512 
f9ae7435750e6459aa4c32d1e6683c47a195b42d529bd48e80656ce2e96a4feb6ed5d2c44cdb571ab1b41e109fd66350d4f76d70ccc04e2ca970425e5131603d
+DIST firefox-102.0.1-nl.xpi 528939 BLAKE2B 
9dbf09eb48682c371fe7229dd0db54a2ebaffa1eff6b1e1a50cb8febfe6f4f73da3ad38999155178e21540000759292d890bed578e1da32a64e2b268dd07611b
 SHA512 
7226df80563cd65593720af97be44750628fd0d3826dca3b510caffe39a88667505a6f9e04020365ebda5245a2b48cf224b97c5726598ab8f62d697dca002bda
+DIST firefox-102.0.1-nn-NO.xpi 523257 BLAKE2B 
d0bcfc7e2296a2c6cd95879bf3504b6a8093414b0e65a4f76a53f4eb3ae2003e2f5265962658f0bf52dcdbc0a81dd383c569fd95cd1f4e168421bd35201b930b
 SHA512 
00b102d46cb3d34ffd575b210824f340ae3f976e6d6759570c8c82536e0341f2301f6511323b9a59e31834d47ef20d71597ab345ecad086efaa5a34b31483b64
+DIST firefox-102.0.1-oc.xpi 544571 BLAKE2B 
8cc68f5a4aea28c98b7f748f43282734ad5fef46d68e089a8f2d46363eb102a249ca87fcbe08653e6f68b71edc471ac72b49375ad719e757d76bdcbb4415fe42
 SHA512 
1f726ee7b9209e1b9fbb69d24369a7096e12921b905c2563f59e022167322867bf4670f5b3a23e43c04c5f3e90e6671c0193d2a41b645addb6822602f3aa2ab7
+DIST firefox-102.0.1-pa-IN.xpi 587393 BLAKE2B 
30e3f205a53defa3cf12dba4dd53517c5f6dfd1c4fb44ca9ce91bc64264c07bd6c6b5698f42f8092920326891a1c271643b13d260506ab40527f30b036d2ad0c
 SHA512 
b7f2df8e1ad3a2b6fce4c6ed3d08abc94b85cb50a7d21d2bd1632c1111ccc4c6b98af2643344b4ce4917110038cc26fa23535ffa5028f30e0188cf7843c008a1
+DIST firefox-102.0.1-pl.xpi 548928 BLAKE2B 
b93acafb19168125678f0c28bb0de1c1168d5f468664e00087825b17659e3d721f7fcfa95245d67702884dc66fe801087698af772bd20e2a2cc3a02701470f20
 SHA512 
cd442939070af1de703d304d113955c6495cf084ab21770945c69ee8583bba68b663eb585b23c96fe40327796835b483b5debb63a2a5e505881333237c0a361c
+DIST firefox-102.0.1-pt-BR.xpi 534189 BLAKE2B 
fa548c6fa7d0c926293084914caded823f57444761be1dd7bddd47c33cf6e46a3eef280a7c84620fb216549cef1145504281041581101640c8912d6cef4d294f
 SHA512 
162c07ebf9273790f1a7034b224d017e59fc6675de8232731a6cc06392f283a67ddd05cf1dd065e522cfed9cd00f0932fa9ca0a2946bfaf7acba698753a38550
+DIST firefox-102.0.1-pt-PT.xpi 538009 BLAKE2B 
bbe21992d62f3b7acb34c07a91813eb6a7ec45c982fd77a5b06209ee2f490de6f4af087fb157ed242132561d8e4fd899224f0761362109630d7b1ed030f37358
 SHA512 
ababf1a498e47cee462e0620f0fa2598d79807b678bdfd2d65ee5bb946e59e8c61045fd1d402121a7a55e7083b49693ef5c90d1d91c4218e58e4091f83228b5e
+DIST firefox-102.0.1-rm.xpi 528324 BLAKE2B 
d8df1a6a85c7ddeb5f84442f49f48cffb3898f8a7b339c98007737617e03c6d8c64414a2f93571530e9d6e76f3508c890fcd15a8b4a593791ebadb11e82a83d9
 SHA512 
609d68b262aa0ff2e6fbc6a795c7c6089fb2612f84dc24f12b52c1a1be7673b095b9b2a1fb7a66a3a88b1904477237b2f87ea511d10f3bd4eb507a08530455c6
+DIST firefox-102.0.1-ro.xpi 515804 BLAKE2B 
6a1fb154f39444a1865b43de7f97025dfd8059faf2d9d0ca17f476083feb1a5757318643de8ec4a7875a9029f9f24783e7939963b1a699c9bcb6d309e8446ff3
 SHA512 
ca211518655932c6f0c4fc597ea490e9a7ee4bb9707ec364c0a6b517a9a7e695111e908981d17727c254facd49b337494a0c5a8566ea6fb8fa8a6951ea922f94
+DIST firefox-102.0.1-ru.xpi 617124 BLAKE2B 
ac3c50afd034cfc2a8a820fef179d436e8fa1a56cc3b4b2ccf998ded33e71618fd558d564a5b00e0d9b30f610e76ccaee1f8a5972ac2aa2955a6e8ec99630b06
 SHA512 
b24456cadc63b642392fe148a7efff14f1fa835b4ea1ada2155e34913c223b1aeeba7e66f4973fe2923eee4b49ce1513ee26ab7d7c8e58ab2fff936530fa3a56
+DIST firefox-102.0.1-sco.xpi 485592 BLAKE2B 
395b4bb4e7b0b5395c2b61a815ed7cfc7b851e20f9ca2c8c1c4361ad48169bcc5614602f70bfc219d061f3be5e01b70384d772efb94d526c9e0ab1b71b4f83bc
 SHA512 
54d5e8b88acfa7627452fd91b0571a6581778b69fac91781633e1c286fbb41d047149bbf9164b6dda91cf3fad9bfcbaea4939eb33210afba75f38e4753637630
+DIST firefox-102.0.1-si.xpi 473409 BLAKE2B 
6edc0ea5272c3e65be8746b44fa3bd53aa6613192b8c57b01445235d4db3494c27957db160f7882830a009abf500b916ce5fe5c3eec23741ee9ae381fbe04c4d
 SHA512 
52cc5fb2465a03de9d9f555b705ebdc6a08e5db26ae62310964d631f35d6f55f13f7b18630bab88425a9e2c4d051def0cc9e5f3efddd3ab6e7a51cc96e504f57
+DIST firefox-102.0.1-sk.xpi 557522 BLAKE2B 
e09ee8dc67f0387060c9d9d2dfd78defd401c90e6bfe5eeb8ea62ffa88fa3939eef7e6fdaea0dd16d6b5f8c3d319330381714273c73b518b22047e11158e693c
 SHA512 
971fe15c6815f58e2e21e02d33c95a11ab5ada592c73ada2458a0c256cd8c9b11cf9c6602cbfe2233fc90decc461291f69bf34ee26ed00d6847becab62d04e00
+DIST firefox-102.0.1-sl.xpi 531182 BLAKE2B 
99413d0e722b328324e8ff1abbc714c8220f6c22ea3d1161281bf788d7f01e3f691c994bb224fd44a800386470d1ab1afa8eb8e3e208e1b98cb27e16a4a57191
 SHA512 
3a37824a8826fe75f07187ec033f4087e44b0fa56771695319587c30ce16ef0985a44be6ba63c811dbe9f975fe87f922b1b14b74de2a6073ce9bc1861f32d215
+DIST firefox-102.0.1-son.xpi 415201 BLAKE2B 
d580deb09c319667aafe69facee4bd6da65571f14980b134ff2a29b1ed185aacdc328957c7cfdbd57d553840a29fac19d38a3548f9989b22dffd9303d1c2504d
 SHA512 
ef51d79c6101373a43abbee08701887af9b5929a70bf13ae3c276c668974df5235ed0a7d27c4339dbb74ea98819f6d9081002ee0eb0be83d9349be19587747f9
+DIST firefox-102.0.1-sq.xpi 546097 BLAKE2B 
40ccc6746e37f36c410efdbd0216a6064da941cfad1d6292e57dcd80f72d34b01496fcaddd11417b5191d3efa350aeaada0493546784e234bf202b7971e9808a
 SHA512 
a842e7254c3d1e4dbfde07b363f97d94f23a3df5c3af3a8b83973915f029e740e9cdcfd580a486d8ef0693fbb58f28b7744157753946958d9454b730f654b23f
+DIST firefox-102.0.1-sr.xpi 571118 BLAKE2B 
9370ffd53d4bc0df87607b62b1545c97e92d56a172425e93609c0c428a34cf60b6fdf31d70e351dbca29cbb4879f15a1626ea5b8f2231d81d18567c6f76a5de9
 SHA512 
9256d0f71474bf9bf6bba2df17e7df90eabd92adb8357c875c20cdced77471670f2a8f7e861f10d8c85127143a94cb08ef27057a7cac7771cd1169288a0356d9
+DIST firefox-102.0.1-sv-SE.xpi 531439 BLAKE2B 
5ec979ed227044ce1724eaa366335e4e95c34c33f08abcfecfa62eeb21de3175ade7c4b4b9ab7e8e57dd3a0bb204397c7a6b57b70755bb63927a5628bc309520
 SHA512 
0f2311580440d36d9e1596ff287db6d019610d7842c85a0d625a7747079b49a9ce594d38c285e1319eb80f69c6ee4493bb263669eb4eba7f7e68e860dd078b1b
+DIST firefox-102.0.1-szl.xpi 497434 BLAKE2B 
c3bf26bd59377ac03de131af0aa8fd3c135f983379801644979dfe6c553a4bdb3322b6e8b23577606fb7762f8d47013a7412946adb5d92e24205f689e83c26f1
 SHA512 
dc306666bbd5331764e28f3896ea77fca898ab50b9e1187ae9351728e02aa71d36a459b7148234aaa4ecd1b664d778da364f34c6dcae83cd0f79d0d7624d881a
+DIST firefox-102.0.1-ta.xpi 499405 BLAKE2B 
526affc4156c7ae00565990ff167e3011938142425616cf8a43049d9106b0c1e7c6923cd31bb7a0690e0ff3fd55f92bc50c12a67dd1f71db760593d05455d67a
 SHA512 
ad7055af19724291c3c190e470aedea8ab942ea075b39a59337d08d5580bd487afd0a5211b6b87205434f2b60af1b3cc76af3fe9f4b8ca6cae21a1445e69a261
+DIST firefox-102.0.1-te.xpi 540264 BLAKE2B 
0bc034e658a32474d0f6c8dc1c826aea228812501e75b356ed073bd04b9e87fce18a9b2a2c513ef83bf4e7e3e87dff3ee484571238859e5d0ecc5f8228c3ab0f
 SHA512 
bbda164ad7f6e8814566c2eb7f02a9cdc49de561071d78a7eee085597aeb1e0492ac45dd5920c67ad49a78357d588bf10a50373d0e2ec394d09e8569b2a226f6
+DIST firefox-102.0.1-th.xpi 598734 BLAKE2B 
3e9f25ade482a695e686a038c953b26022cc9bc022548c26b4c36e9d98854de0d176489c73559be73fc7723a3026bd30821d4a7b20edcb37b1945ad687e9e739
 SHA512 
2274bf0fdb9322d342aa8aca7d1f2e6e06b930045e3b2f1a5171986b769bfcab4ce5135599a90a05c0de0f59f56f61d60f8f76a47483edffa96c3ff547ba5c9e
+DIST firefox-102.0.1-tl.xpi 505603 BLAKE2B 
b6fba78a9d30c28b67f154cb89a861104ce04da99dceec62d2cc74d0d78d0dcb944f00f1f8caa91ee085d30fab15066ebb9e614ac54c2c2043b297d53c7be0a7
 SHA512 
4319ffd9cd39171f3e20c4888672ecffce2a00f919c7689b42edf74e929141c0e7745d7bf7163d3b42d8bd47f013e4cb7b157400ea5f259cffaac9ed30b886df
+DIST firefox-102.0.1-tr.xpi 544803 BLAKE2B 
ba2842cca390c9f12cf0c5ca8c08dcd85216452651ed448885321a83e3db4284809c7edcf82dc5a9c9ae50febd3502b29494b4b8cd59d3351fa8e91a26f6f261
 SHA512 
8418b8e531999653c681c0f13c2673d5cbf4fd6556653b91bf4defc67ce7b89ced86258a59595432f674c90ad84f4ad7ed417dc44bf8f578c69557f3c8ec50f2
+DIST firefox-102.0.1-trs.xpi 477878 BLAKE2B 
bdc2f8f7507b4d46aceebe1b6580ddee28c7f6f76b104370c281655512959d096ac9e06d5e85e7f1ee21537e249e6cfc6e7b6aaae3bfdf787a70a971059a36f3
 SHA512 
75ae2c20784f08bfb2f73ee0f4ebf8945941016823ac33019c720a675f1bfc22238b1a379714b8771e2e0bd8dc80f329b998fc5e0cf14e59be31a84c4ef789f6
+DIST firefox-102.0.1-uk.xpi 610931 BLAKE2B 
65ffa288a52a150bbf07f613861a10841def29fdc10a419019117a15a2ced627604a3ca998d8f110002584ca2506a41386cb4a617095b0714521350000e002bc
 SHA512 
d948c0b6e17ce43f209d35300827082a493be585a5490ca1b6c1148e626edb6850087a805b9ccb9f013d8a4d7b9ce5a0141a3651656afc7bc596ffa5444eb392
+DIST firefox-102.0.1-ur.xpi 547847 BLAKE2B 
bf7297c9f61f13f6982381a39bbb1b7a563f9fd78d24d5c275b007405f4a8915dec06845fab3e1da293f76e66d5bbdf502f57223dcf75ed3781bfb31103276e1
 SHA512 
cd63147c8dca534635e086becee91a1f618ab14df916804fd1355f2707bf928e7102110236348f1c12b9a9c4508f90b27f630b5ccdaa974af2b04173b3578882
+DIST firefox-102.0.1-uz.xpi 467337 BLAKE2B 
d91f549512e97716b83630c97da03368a86970ed18cb4712035f3e0b05c86893aaebee8d1a20770a89f2a7369b3c2a8ae39b8ae0e16d5675300005bc0b5d21bc
 SHA512 
1bc34fd4f393d687723b977406355813f915b2e82b3cc6470d69a6ed507c2d5a1a19c4c9ac5a553f10079bbad4ba1403d188400d4e6fdfb17d8be617efb583ad
+DIST firefox-102.0.1-vi.xpi 563718 BLAKE2B 
35c5e52eba1446e96c6d9663ce61bccba459e1b45440e74fb56754ebb3d7faa7ff43122fe85f1f18a28842c7830164e8149fdc8d5bfc8f3524a486d6880d9371
 SHA512 
51d32becec22ac976916dde9502e30be6530e262f1013499ea8f61af70c45d2f8aeb6685dfe858be31494ca45dceb5511cf8c03be9ca34524beb68b773d50350
+DIST firefox-102.0.1-xh.xpi 418245 BLAKE2B 
98dd31f5e54089e623e9fb3f27be33b8e1fd26b659b30f37f69ea329b888f5e9aab39c8395eaf2a6af76337809fe19bd0a5bf8e5842c32a6f1bc50177be12fd8
 SHA512 
060bb32766ccf65122e3e03957d7661efbdf83aa6bf6de5cb8c675042346738006e94e8874274277cdcd8d86a7a15e01250cb6f0f947af1e8d5e18e62b83dd6d
+DIST firefox-102.0.1-zh-CN.xpi 566194 BLAKE2B 
aa405e8beb475726c1a041afc455858ecc52a2f9a26b98b730bc88d51f8067eec1bf9772c361de47d9c1a6147302c8e5f05f266417b49c6bbaad9d21fa8356e9
 SHA512 
f408b895ab5fbde63fd764a030ca6b54c387aab2bfd106eb146802378130a15fa867ede47e9e7afb5934488a648777b21eda493e9aa2189b3a03b3b4378f020f
+DIST firefox-102.0.1-zh-TW.xpi 567164 BLAKE2B 
ae898adb1bba36de80168f2a589affebc9e78c9db67cb3d26bade74686b5349bf214f2e7b1b7818f758c14c4ca6c10bea4beffc85ca9eaed40774808947f1bb6
 SHA512 
fd38490ebf8d4ce2479d943e840a30b246f54a8fc4cc804b39a7286355f37b55a20c857ad4752b71d1266784fff5a7cd196048a9447f9e65fdc2580c252cfa1d
+DIST firefox-102.0.1.source.tar.xz 477609884 BLAKE2B 
20ff263286f5e14b3c69e09e40fd102a726b7396f5d04a5ae982a41212f4e1cd07d21435631fd655698bf03071118555a3dc53c4a889a323b9d11be2c993ec74
 SHA512 
a930d359fb81e473b963a93f6db5110871e9fd57f6d0f352513047d363d930dd4811e8dd786c2f6f3541c3871eb1c0169b718652d9ee076fd13a20f52af30417
 DIST firefox-102.0.source.tar.xz 482027632 BLAKE2B 
34a2b2f164aded6ed666220f983c694d20df094f032e218d682308e69045dcfe2e031b14dfc4802e5a8c18f892e6e6cfca74080de89d2091f1a7690ed5387d3e
 SHA512 
c7dd6d8d74c46573b16d097a5e5d230669e5778cd680b3b6f30510e989d21543138ced3bb013998b76614aa380b28efd8542450c591d8b724e03bd163d012057
 DIST firefox-91.11.0esr-ach.xpi 453206 BLAKE2B 
f639628151e4891ee209548962ca86de34f4ea124703db73ebb14fa266b2fd74282c256b74c8cb9b2f4fb0b4d41998f3d7b3447be4cf6cb45dbb231fe6b57ce4
 SHA512 
515e8424da6d1505480f15451c56363bf72471fa4d0e47b3e43b4cac261b088b82a85ad2f3234edfb8499beabf392e0636b227d0d7cc7285e544b1e2bdcdf395
 DIST firefox-91.11.0esr-af.xpi 426914 BLAKE2B 
1b999eb321f8bf49fc73bfe399030bdc167ba2822ed32e9ebcec3c6648a2c960dc4469a1dc9fc3553db8f3bf65efe5444aaa220bf50fa4d890c89b2542cdf25e
 SHA512 
04bcc68b861a7c9b2e18fc4fdfde0247ff51879f04e8dba9c2998e0cd93ca156f8cf56fb63de63bcf92c56c92da9b7e0379ed0847d251faade20b9e1df968d60

diff --git a/www-client/firefox/firefox-102.0.1.ebuild 
b/www-client/firefox/firefox-102.0.1.ebuild
new file mode 100644
index 000000000000..8d3b8220d02c
--- /dev/null
+++ b/www-client/firefox/firefox-102.0.1.ebuild
@@ -0,0 +1,1293 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+FIREFOX_PATCHSET="firefox-102-patches-01j.tar.xz"
+
+LLVM_MAX_SLOT=14
+
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+       llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
+       virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       
https://dev.gentoo.org/~{juippis,polynomial-c,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 )
+       wayland? ( dbus )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" || ( X wayland )"
+REQUIRED_USE+=" pgo? ( X )"
+REQUIRED_USE+=" screencast? ( wayland )"
+
+BDEPEND="${PYTHON_DEPS}
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.0
+       >=net-libs/nodejs-10.23.1
+       virtual/pkgconfig
+       >=virtual/rust-1.59.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] )
+                       )
+               )
+               (
+                       sys-devel/clang:12
+                       sys-devel/llvm:12
+                       clang? (
+                               =sys-devel/lld-12*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-12*[profile] )
+                       )
+               )
+       )
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )"
+
+COMMON_DEPEND="
+       dev-libs/atk
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.79
+       >=dev-libs/nspr-4.34
+       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-0.9.3:=
+               >=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}
+       !www-client/firefox:0
+       !www-client/firefox:esr
+       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="${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}"
+}
+
+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
+
+               if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \
+                       && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then
+                       # bug 792705
+                       eerror "Using GCC 11 to compile firefox is currently 
known to be broken (see bug #792705)."
+                       die "Set USE=clang or select <gcc-11 to build 
${CATEGORY}/${P}."
+               fi
+
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if use pgo ; then
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       use lto && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make 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 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_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 \
+               --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
+               virtx_cmd=virtx
+
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+       fi
+
+       if ! use X && use wayland; 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 
supported 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