commit:     ad0bb230a41447e97ebe64e88783acaecde2cc86
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 11 09:52:04 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Apr 11 09:52:04 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ad0bb230

www-client/firefox: add 102.10.0

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

 www-client/firefox/Manifest                |   98 +++
 www-client/firefox/firefox-102.10.0.ebuild | 1278 ++++++++++++++++++++++++++++
 2 files changed, 1376 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 9b7012f8499b..82890b8192b5 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -1,3 +1,101 @@
+DIST firefox-102.10.0esr-ach.xpi 466443 BLAKE2B 
b081a2a28186ba81cf9fc2b4749a34b02ce55ea8de4a81860cf20bc04f5b54b236b719717cfbe56666d0bde19dfdb25db76e4d1f0ec65c6a6ee2736ecb74d66e
 SHA512 
d178890b9ac6740265f77e17f226d9974e5635af361fc237ab70e49cbc46d3113f6b55945c41f193dfba57ba9d702a5ffe0f84c1992134ba46b1ca35618e297a
+DIST firefox-102.10.0esr-af.xpi 429127 BLAKE2B 
1bbd305fe05f34a9e677ea1bc85d2020557cde0998c1907534bacbdf9bbe83d4269a996b447184a536f41d973db7cbf6a7f1e220700c2e7876afcea964f6a3b7
 SHA512 
3d9e2690bf9abaebb98448864bd4e3eca01ad5be59f6be0ed16b4049d79574b325ec59c504e1e9df89ff820d9064cde8ed03c160baa52f88f29e5311c6902851
+DIST firefox-102.10.0esr-an.xpi 510484 BLAKE2B 
f2e6516c41c384ea5034d5e8ae4c4a92d7ac175c9543293c2bfe22d5e3cb70ef60512d5cd612f459ca742239df8117159ae4099775fc98430d3e4a9cd4cd512b
 SHA512 
174ae302d19c95a75af320c40870ffe20946f1c6bf5359fe120c7633b73c7e3e93f378518cc7206d7c36e4e0fff97dd8fa0ce7ac8870cb6b681502c616f2ae6f
+DIST firefox-102.10.0esr-ar.xpi 578880 BLAKE2B 
d086879d719d599e911fcd3a8d0151a83f4ea3aa8a9fc2001a03a021da596856fdd33d2e92e6bb7939754b8d63921599e7cbe956fee5cce7bd5afa6d9d137da7
 SHA512 
f4505826f341bd1afcfc2430d41691c8056d37bfa60f36883dcc5cea82ed10e6c3da9e70ea2b2de7655dfa9db788640814d89d923cf12dc94d5656d7d7c19345
+DIST firefox-102.10.0esr-ast.xpi 498102 BLAKE2B 
964442596e6e3d3c0afce33fa3576d3fd4ded4a1a4775897fda625a5e99d673ecc887e09a01ed8da9e451c6d40a5e67c8d0aac3f638c8fac41fe544f13ea029c
 SHA512 
a034b3758d52f51d30cdc43265cb7edecd0eb7bde2bbba7dcc22e9831d8f9f734e54a2f8fb40ecdecbb6fb6daeccf32b73a5af30a2bd91ffffe0622a486870c2
+DIST firefox-102.10.0esr-az.xpi 500787 BLAKE2B 
944e10d8f786f94073cde7d3ba3956073d05f518a5ca1aaef65f5d9acb9482b8967c7705e63dd5264bb493f2346e97c9169b0010a8ad83f5b118ad6cfa7b2368
 SHA512 
27a15be295eac1c5489c06821e0e3fc808429dd55eb6e3dc396a8fef85ad29a9ae71c87aad53ae50ab224d1ed7fe167e9adb4c92996520e7971866826ce9b333
+DIST firefox-102.10.0esr-be.xpi 666682 BLAKE2B 
9832a3d0099190a0706a6700660993c3aa133dd539f2ffec7f5f1d263f7ba15a6005b8d5997d986e86368ccb4e340b8d446f47330a2cb8d382a11434d528b00d
 SHA512 
161707973d47228830dad0281fe79c7f7cb31b1755158a0689200e36db431d40df085a02d5ea71945008cc6e1b14250870ddfb9f4aa5786510b7cc5082b94c23
+DIST firefox-102.10.0esr-bg.xpi 591337 BLAKE2B 
2c3356f8a347c740c9a31ba5914a8fafb6ca55fe71c499efa4c2cb8347d61779e66f6e5c0aadec39d0d6afb970debd0be6a424d9266533b113ba6eff5059ceb7
 SHA512 
e5eb6cd1b7723197c7e5fbbf9c5d9ff6b1e99854ca21a7864ba0ac770a5c9be63abb57ea581bf7a9dceb0325497d211bdfe231b37a6b884bd223170749154e2a
+DIST firefox-102.10.0esr-bn.xpi 591684 BLAKE2B 
cb9c411e338c368fb00876a448ffe2eea29f62f14de1586b4abe87c80511373880dbef11e42d7b80a1dff90d64438323fb1b4329bb444e969a9b39fc2bcf12e9
 SHA512 
142ea0decb2759577208e90c8d70c7c976c5d14efbe57c29a7f2c8f0d212be950f72fca57507d401e4971b7df18efeeb921aa0f1759900dc1707928f58732a97
+DIST firefox-102.10.0esr-br.xpi 555853 BLAKE2B 
a787abdf5c1f7e142905e33ba114a401a65d36dae00c41ad4a203368cf6e539d82fdd68e32094b90b4a25051c8fe13bf020d22d3cc7da91f055dcd0caefb2195
 SHA512 
b6298f8192db598a14dc76e4600d33bc63efaa46e7efc94bf1a83e01f28a6b6addc01988ddeb1bc61156371d062e38d8b902ca49934f00a80f13df1096b3f086
+DIST firefox-102.10.0esr-bs.xpi 471729 BLAKE2B 
fc7f8426f46765a6dcd78c6a0ccee1f420c184b6c30a557137eb8ff7e36e0adf0e3e52f297277caa23386196a980eba89af31637591f046514cb4efc6cc40f00
 SHA512 
28afc0aebf7cebe6f0b3ec8061e1052a7e835fcafcbe8c39ef699a172a12d5b26f505423a053d87084d483cc14a76b351d3a4ed6e8e60e835051e1a5c91cac3c
+DIST firefox-102.10.0esr-ca-valencia.xpi 549192 BLAKE2B 
cb79579b9b61cd30b8af879f003077e381e07f270d011ba39563258f5254b7ee2d17f1acfa92d422b8c493def252b14bbb9af52b9b232691b6ac92cde330fb33
 SHA512 
49e70d28cb24c690bdc9667758662cc8ada4015c6b85b3b5b2fecbe1d143c5a2c11708d9ad38b1e88e07e175b5c50d7166338ea0a65bb5583678e89cc5cd23d8
+DIST firefox-102.10.0esr-ca.xpi 561930 BLAKE2B 
d46e280199e2c3dd16f44ed61e4bbe92393bdef658f6b3c130cb1b247e1cfcdc77ad84e5f89dcb2a1b6545915b6ab8adaebb284004ac0a14599811289c0a602f
 SHA512 
f7ba629ece292849382f804c09d65271e9fc8c732c1f272c454895291f2dcc0af48e1f17db0a4729db8b53d2e8c613207f0cd796a76c3d360c147cc9c5b71990
+DIST firefox-102.10.0esr-cak.xpi 563841 BLAKE2B 
5d1022b6fe89b6d6f04bafd041582ca5c83cdccb4581ca81ce22129d182aae7cdf021bf68c33ca2e90f3c75fb27ff940f5e0d7f0b89e47ad22746bba9942f6bc
 SHA512 
90f4e55658c9f4341fa551a480f0b3ea45d3ed006567027a8bfcd2c34ae2b3afaab7d99bf93e807fc53b799a11b18574a92f3bd2b9416f63aeb72a1b1e92dafe
+DIST firefox-102.10.0esr-cs.xpi 599807 BLAKE2B 
cb90d6965b65d3a9bc20f2e7d77c681fb7f0c92144088d8d77848ed17259e2e8493d2a4088e98c6c63c01193b05dd8e47e8f6b8a00ec7ebc1a14b813e7c6bb74
 SHA512 
3db0646d54e5ecffebdad8b7154d15b2906909fecf35b80a9911dfcc36c2fc29cc7ca6382ec7444eb64d29adf96139e8f4efd28f5673e34c88461f3ea4ebb246
+DIST firefox-102.10.0esr-cy.xpi 579217 BLAKE2B 
a2b45ad1a064b6c47d090d7411e1940a9584c07bc646d2f60cc813ba83086478b7358b57c1ac6e36dba3c37dcfa12d311d0b321732dea3ba9aaafed517ff289a
 SHA512 
6d3df7eb18e4f9f9941d2d4eec40b54b5496ab4575feb31cd22ffa7547b2db3a1972744a957920531cc10b27c96257e934ae9c8a6c523b75a29dbdb0a9085698
+DIST firefox-102.10.0esr-da.xpi 570515 BLAKE2B 
d8cdc29962b634efee24a451146bce045b638f585376c14dc7f24dc05fd1ca48c1e34342de486dc6589de8c35b5afbdef15ff9ebca10d57a8481062b48bc0e61
 SHA512 
f78957e28e71eec1f106b3b3d30bcc461e804d62631ea3cec2d2e30645444be1119b9f465fccda4e7bf2dd7b374bcaaf7b55b38bedd9f3e755fcb59eee87c2b8
+DIST firefox-102.10.0esr-de.xpi 591579 BLAKE2B 
94c1fa4a493674c31c23f9baa2410c0fad275b7ffe9c52546aa867b47919938b47640226e70647039e7169efa9a66cf105890bc5700b9a57e55fc2a04e7aea7a
 SHA512 
10b1575d6f9f7365b9e7be1648c50e52639c3800f6921cd7085d9c89f971003fa485b90223f92ad7a58138a55a401f29a64f8a14172aabc2c87e9263d915a902
+DIST firefox-102.10.0esr-dsb.xpi 600374 BLAKE2B 
be543399c75155619bb5d7ec961006645640e1808e7084a09c2222eb66e81380e1b0a6344ea1f65c08348d593a9cb05b64a565bc41e0a5c553f30fd1a8e7ec83
 SHA512 
dc61267ce6952c609a4848fb9d8f8587cf75d2594bdfd230b399dbf7a58015f5b91cbd11a015b7a09279fc52cd3ebe766d14ba5e402f3235b14fc392c3766553
+DIST firefox-102.10.0esr-el.xpi 681656 BLAKE2B 
c823110f1b12365e23a2c45ae6fe1daa66f9f4b61078bde89af711e5fb749c850e00631afa9fad204cc93f327e258b445f34d553ee915b9a4ff81d0b3c42f3b8
 SHA512 
0bf94570c51b3a1b765565c74e883941d66cb2f6c8d45d3ef016da9f6ed40a67fa675eaed0c4889a71c144302289c2787073c326406e73956b250d8063795d2d
+DIST firefox-102.10.0esr-en-CA.xpi 541064 BLAKE2B 
fb6f49ef42eb0e6269b9c43d6445dc024c6c2ef4041614285b56d870d0b7e3f21709c898157a0f7cc75e0748e1d21a9bdbb8c33911380f09bbb96f3d9110a4ac
 SHA512 
bb2cfd5b235c4107bbf77cc2acd0537088683caf20e24e926b8c0412ee277dd85de2a0bb22843771cff08fc07b9074c3e7b9af08fc7f2f2e40f29ca50d7920ac
+DIST firefox-102.10.0esr-en-GB.xpi 543999 BLAKE2B 
90d7b044b0f16fdf3658e7c0fdc245fa58bced8befee2c0fbe46c817bea5a17a3f8938178c985b8a884518b9ea81f5a3d1d64dd8bc70afa25cd320a7ff831ccf
 SHA512 
5eaf262fdf513de492888ad286645276b6344d8ff2df6b078a1e366523c4194b95c4842173db32c8651de99f0cceef832b240b8252acfd9d6a4a6c3b90801f1d
+DIST firefox-102.10.0esr-eo.xpi 571442 BLAKE2B 
40210f1f12c6af9dc35dc0027d9043ace0a465de006d849af3d577649d3a9d123ed66706d37cc97fd4deb007d9d35b2ee862981466a3d4ffcbfeccd12a58ec40
 SHA512 
b829f17edb8a760f201eafa03a0adc4b1a6d3d12724abe4230059dcbc4298dd010adeed410b14c48a6c04a61a6515e2263cabb21182707783c04a1270c68d02f
+DIST firefox-102.10.0esr-es-AR.xpi 584193 BLAKE2B 
ac9c6394dee02728da874cf0d9ed6d8f8d97a66387dd8f6e3264fd408675539b3c727f9187145b4ed822c4f13dcb9637bdccefc3ff37ba4e10311be633ef7793
 SHA512 
0021d74ea30e730a0d060c620bd476eb3cd3dd6ce69adea0ccf4d0a0fb99a87f1cff93f34769f6267a4ea922d3e81370a83b3e231c76e322ef8c01be34d5b57d
+DIST firefox-102.10.0esr-es-CL.xpi 583192 BLAKE2B 
d8fd095c9eae2726e3fccbf1d8cf901e9063aef349122451a11d18d1c236a7f665dc219e2ec18e1fbaa0ea0875126f219bff012f5398338f275577bd2482ffbd
 SHA512 
01688a98a0c69bd72c7d4287bbeb7c8156be2fc33af8beba9b86d36c9f73ea95d403f7fdee1a62d1da51c36cf53ee0b5a55c439fbd78d0655b25274fb4797a88
+DIST firefox-102.10.0esr-es-ES.xpi 576080 BLAKE2B 
bc8fa0826a673e8807f56d2d3c7021058d818210169e2b574767f475d4f0937cdb0c1bef7fde62eb87dfb468370d148433345eee9db1f47b1313976515269453
 SHA512 
8966ec45738374f5f9e9cbb36daf6c259577722c06e8e306272df98c5765e3b5a91d5b2fcff05f6085b50e548480e49085b07b541880b33195147fa786736d08
+DIST firefox-102.10.0esr-es-MX.xpi 586655 BLAKE2B 
d5ade1aeb7f732576ee4ff1e594665a20654da1292924b8ab2b608a14ff411c737c61145876b460b09fbe2cf19f55e8e443e7a2432b32ed7e308672e77016788
 SHA512 
f212ac57660169c8b57b169af7fd735f3da543c34268081b44d14fd710b3639b33fef83067df0beafbdddbb4081b62a5feb95135e2858e65e88d6f736fe26fb4
+DIST firefox-102.10.0esr-et.xpi 543297 BLAKE2B 
2bf93ecc36ef6f8dd5f789b96f5356ea8fb634cba9921f4586cc112adc40f381c364a7c3000b59a05ec532aae2a552608043e688b862c93a697366ee9ec01177
 SHA512 
6f5c48f45b217211107f2c037eca24dce462613c05f708de799687c75ec2b94531021490308aee4ef634ba7afb8f370073f73737195711807f016a85c0dd3fbf
+DIST firefox-102.10.0esr-eu.xpi 572527 BLAKE2B 
ba93a1686dc371e1e3d8130062795febe67d8315e52b95373b0e1375e2889eec809388720dc83c4b9bed3e35cb9ffc673988c0245306a263f91b78b287f1e1a7
 SHA512 
330a152c62f6b03d00b1f623f9ee1af8c0765e7f7b99a77729d2b84d9cd17990895443bd4ab63fed7b33d16c46c6506f095125056c4ea56a9eaf8a9237ec76ce
+DIST firefox-102.10.0esr-fa.xpi 583115 BLAKE2B 
15e6c496144acbbb7b6278de47fa857175045568b402e1991fdc259c611725d0394ec7d63ec4d214db88fd794cf103d6c06c01727795310791e81d5c6ad7059e
 SHA512 
49b873b0ce851d2371b0fc6b9491ef243868e2b60ee62b4dac1bc62350d369e84e2f7be93eb980e87435381a15d5c8fb0e9b937ec6eaf3bd463795e25faacd3e
+DIST firefox-102.10.0esr-ff.xpi 483129 BLAKE2B 
a7bb5a141922b21e222a94b6c3a714e721e3cc4adb8f36529054e84a898bacaf1a47cd59ff7bcb7d09c175bc7e25160a83e92a855f9584eaa70eba2cac1a01a4
 SHA512 
068fa8acb19a845316c5cb030e23ac4e640529a3500f2d12e57ba18821c3cca5484bf06b3427d922fa9ba2afc4120063d083de1eebb602d41e76b336d4aca196
+DIST firefox-102.10.0esr-fi.xpi 568233 BLAKE2B 
8dde0eaa0ef2737638908ff04c598a8a400256df94f11ec73779adb20d350c30db69da825daa57db273421d25599ed88c66a4f4bec02bfcb842c22d82fde4c41
 SHA512 
87b8434083bd1480f18ba92d1d9a1246cc07d30aaff27f8ee29f091c3b9fbf2e473627ed1cea8b461533371310ed61093cba5f5052285688a6f1ca82e4aa9f31
+DIST firefox-102.10.0esr-fr.xpi 595536 BLAKE2B 
ea29fe50bb19b28e9a4ed7629a6ad4bfab7c5922f45ad51f9b58abd1f73685702387f746de21d72340c413b2f77e8e6af9b0659307fdcf997e28d9f6333dc6aa
 SHA512 
961f58fef77e33ddb6311d7e97b939deb669c0fb8a40c610f4bceea081104ca9364342dc27e9e79684d84ff3d8390a1615ebb20e5451b79dfd12da3e20ed0979
+DIST firefox-102.10.0esr-fy-NL.xpi 580241 BLAKE2B 
ff7617594def0e24be829a940fb4b4027bdc598aab3d731e496408c1a7b82ef094056c86c9dfcc6c28f64ac8e70c2bf7f639e7ee33f13ca49ec88293124c14bd
 SHA512 
9c78732af0584972c2e4cffe1a9dd96d1b04cdc3632154575c66d5ad732413d92d309ae0e4e4b6833fa4749ebf5ba4c9eca83211326581be9874d7cbac82e784
+DIST firefox-102.10.0esr-ga-IE.xpi 480692 BLAKE2B 
ce5a5ad43374590d2598f456f11e8394f97221c113f20018b291015bed1e81217428eb10b6785f467dcb71c477f64f77cddccff11073d97429af3ffae025fbab
 SHA512 
d5ffa111abfdb08e976ca43a024a69c412c67e9f7cb28738631c6b8a0df5c0b1054cc50ea9fbcaa34c8228cb15a54c55619f7d64126e25aedd84222e0abca8cb
+DIST firefox-102.10.0esr-gd.xpi 557863 BLAKE2B 
6e6b67f34733d37f07cbc9417f993c51c8a10747afee637f88516fb6aac3d39a016fba2adb72aa238ea2f1665d6e3eaeb24ec467ce633d09b81cee7fde693cdd
 SHA512 
881d227b24ce38452a036090b321f3d074e5d7348b1967a3c607504b99ffbb3ca7190eb7d39621a9e4accca628ead51ef4fe1256de5184ad2b7cf7c5450b91bf
+DIST firefox-102.10.0esr-gl.xpi 550715 BLAKE2B 
3a7565d4ee54db463c5e0c31e2bf8d92c1434a5977a15f0e9daa27f66de438e299c44fa232a196c59f3f932861413c6a98e27c7b6c0aa9f15279d91c15295bc2
 SHA512 
6e5b5889fe006f8e0af49d3ec57e9c8974d41cf22c564d60e107bb79f6a4d99aba9c1410da9bac5165085a5afab0446b299296a20316433929b133f6bc6c6bf3
+DIST firefox-102.10.0esr-gn.xpi 595703 BLAKE2B 
b37a59d888bd55c6b16f9a45dd05d39c11658a62a94aef2c0a195d074a6fab90332e26ebb7168e770230a8f2a33826c832dbc4bd0aeb68c55f5d47819e9b3305
 SHA512 
38ab3354d1eec28809aee08c5f579e742f413fed9512915422821f7986c6bf1cfc042de5775a1d6b00a265cf39eee2de7d4c0ebe6d5d46dda23221a7aed13aa3
+DIST firefox-102.10.0esr-gu-IN.xpi 541901 BLAKE2B 
3e12ff1f4c2e20ac78917d25e850048f5234622146d2fc186963472c6f5718079377570fe626b361229624b33a4e2f877de982f0620baf36ac67f3ad5bac68a2
 SHA512 
607a00b72364ead71c8eaf78138e022f8a3ef23c2f509c80edb9d017b470efa66d0d93cda653659d1380499eb85a1e0a42921d81dd788619b596c69455ea3b53
+DIST firefox-102.10.0esr-he.xpi 591522 BLAKE2B 
79d8edb630e9c80f2e8945726ccef88b8d3e70a7b69d3d094b7c4a77a3889fe04dc643e77c1f4954bf03ee325ec7ba88518e9a7cb26d8961b398fa7c72406210
 SHA512 
c0c8c520696d719480abfa30bd6c822656bc4c1d73e5836460288b95a228f340440a0a64b95c8de568cc9cbfa73c3abe2c05e51afc768e4aa9de9fb9694611fb
+DIST firefox-102.10.0esr-hi-IN.xpi 570423 BLAKE2B 
68e8411f5a08cd39175a078ac0362277fa58af4272700fdd382fbd4c7656688605d01b2f27e911bfe60dc6a9bcabeec6b2f5bf87e49736a0601cd53f4ab6c207
 SHA512 
bd5b29356384236a236966c81fc008eafc240dc29675aa1e788b3e939f53833951de49649035526ac2bb02a5e39a80ebc6a6fdb308df2061c35b28e8578b7653
+DIST firefox-102.10.0esr-hr.xpi 555266 BLAKE2B 
37a652d705f4a5f2f94add1b8d63291dffeff589f7f90dbef65540fadcada4e027a6bb28bb18910f9c3560cd418da6bc23db0a1c83e8c61d2c219acc097a68f6
 SHA512 
d9ddd57d4771a47bc92239f52d463434057f88f7694d69371edec5216e4968bf5e383c4ffcd73b14e25af9eebbfd07681290736ba77ffe0cc64f430f7be43744
+DIST firefox-102.10.0esr-hsb.xpi 599179 BLAKE2B 
d9dd76de985fb107fed11ce7b7e0595dba4d4c0827a579873216d3ba3473ba4566ecb4ab048fccd0443a4046fb461552fa0f47b9d821535357a329dd820cb8bd
 SHA512 
759970b200e8fcde4d7521a0d2c43208fac88dc591de55d40b89d57400cde74b1ae217482ba1978bd1b17cb78c580da4c4f9d1f8b377f12766dbdd253fd6560f
+DIST firefox-102.10.0esr-hu.xpi 605250 BLAKE2B 
1b370818a97b44c76360680cdd0605c6eb4b508ceafc5a2213ff8376d4a55023e0348fafaf9dfa7a7acef760a3a58db42832788c25bcf7d26def6f719d460a87
 SHA512 
5bbc82763d8e11455896d1ee27302c775aa69c41aa819cb3b21660849f9234865248b293c2d11dae04dd99898cc8b0f3136ef2f4acda06416a33650b344efc40
+DIST firefox-102.10.0esr-hy-AM.xpi 607096 BLAKE2B 
246a297de96ca236654a1f88a054802bff605c78a6d954f8eb886d2d7f7bc5427d51110e23aebcba868303c7f7670a41d5341ae90c6dbaa2f6d858ebe131a3b8
 SHA512 
8a87d1033887684afbab37f150dd2e6571fa625d2eb23407e34662477b97cd8d1ae3a05fb39d1da3b858ea19bc74ea8dae1f3c601c98b5fa6f41a877a6334175
+DIST firefox-102.10.0esr-ia.xpi 567890 BLAKE2B 
1dd17aba7a5428387d19acffa2e716588f448e893051860ad0b520ce80de3e6ddbdcef66ffe71928ae5779286d7402af2b0f57b7c6df541dd9ee039673eb67ad
 SHA512 
274d3fc50d7c6a1d045b5719efeedc23b5dd1d711712afe345eef5c291641148f17999a9f457fbf7b350737ba174e927ed5ae7139139f296bd31c1395ee2d23a
+DIST firefox-102.10.0esr-id.xpi 564790 BLAKE2B 
de445deb1c032ac8c0ba786bb560aa3e60b8bb65d48f7e912525c472e4d6fd74bd0abf1276dd575b6793af60a49cba4e20f909af0754f43051c05a824a01a686
 SHA512 
8931b8c5279e0ed956622d0f780649c23340679f178d90e058334ed0d200e18647225235abb3c3253fa81c9583bbd0aa4b3f7246acc1254f36ed8d978addfd21
+DIST firefox-102.10.0esr-is.xpi 575735 BLAKE2B 
4ebe8cd8055d32e581d28c2a2d97d985862122267e85848679e0da342654f9e932aea2f9644bb3a3fa2cdea2ceef4ef1b4fe60d6ec0c6b9a21d051b52c1d5ef3
 SHA512 
c58ffddef248498c329795f01250f062b494e3de487754b5bb088988d3442d108e9b5824a206d8c4db5df8e2729c58d3d656414ee8243edac5f4ea783088642f
+DIST firefox-102.10.0esr-it.xpi 505289 BLAKE2B 
69c8d4764995d8309ab788f5371b9ddaa5f43bcb5c7b51f1e73658bfb917b9656fac9240f0a0ef110b5f2d0f1a39106446041b05f14ed4b9e9746709ab366d91
 SHA512 
0f84e366e6c367c41c498ba0444f14a4583569618c7aba1dad92026bf409ed49145463ae74d898ce5deb86d0d215771b5d49c646c3a75f62817904ae37937f14
+DIST firefox-102.10.0esr-ja.xpi 631477 BLAKE2B 
5363c3c129751437d368681c26e6fdbb40f10a6470fb3632dd90b4375146f857e7227d7b7c872faa3e24fc77853091cad069778a60bbcf46b2715337ee98ecbf
 SHA512 
88f145727f23605bb1cd7792a0126299b2be721d649c174b22c572de1196ce747280608e770492603926b7c9baec5e72c0b9b7bd27683658bbb9354973efdaf9
+DIST firefox-102.10.0esr-ka.xpi 635998 BLAKE2B 
0e0df153df4cdee7eec5bac8e3ae51702788597c4f37a87f03df480104aadafe162eeaa878d8c07fabc15b249c107f9fa08eebaa666455f4677ef7a81ef7e5d4
 SHA512 
a8e1d2621def842cf45359af7c99c5b371646b238c7685189efd0122428b320b8b982f0cffeef755b6de68e05b8f3580116c9be9e44a45bc98e61f955b2376a4
+DIST firefox-102.10.0esr-kab.xpi 583635 BLAKE2B 
c51957ba283455d41f934ed9739d69fc6db57bb355434a760cd75cac4bc5d037e1d4645be1d7d9c55fff48f487285bcc92f9a3c947f049da81c6b2d6d25a42e9
 SHA512 
322ba06925c38d3a085ff6028e72d6eefa1826b8d87ef8b327e341ae0a0e18ac1267e1db3ef92a9a62cf0eb17b7d3003444475bd275fb62a3698102473f3cfb5
+DIST firefox-102.10.0esr-kk.xpi 658887 BLAKE2B 
3c34368ef0fdfaf67de15f03adc31a745d9c6e3e43f746f1311795210e8b5c86f0da823e7b271d3ce782f2882f8ab92676721e68bbc0f4a58dcd4f0395e48d9e
 SHA512 
909054b66a770238c0d801cb1bf20cb213b86dd913e657fbf891b09ddcc47da67fdb22cf25da5ed108cb543596950e22bb434f7b979b38eddcb62665a8ff0a2f
+DIST firefox-102.10.0esr-km.xpi 543905 BLAKE2B 
128efc4e5fa3da71686dda25575060b0cab1a22b0525c2520b25b357d5512ca2a7c2b7695576e6f9ca69085f69d9604f4274ae97f431fbe18fc9e12803fca6e3
 SHA512 
48a57ab57f272e38ea753b570f2ae469524e15f40cae1c8e368536e19d4294c96a2f85a27d8dc1ee5c0b381a9dc455730bf19c734c89557de52f60b7d0381ca1
+DIST firefox-102.10.0esr-kn.xpi 508594 BLAKE2B 
6505ead743c26051b7fe9c388106a87da7feb37572e4c4cb82870f3d79fe60f0da4d3790fe2de8880e6c7e101117fba3fbbf68e7b577d3c3caf98b8e36e429e5
 SHA512 
196fed7bf2a097160ed71dc6fe2ef9dc3f1a217634f4687ade09b5e53378dd17950b2a05a9d97b369ae9966ffc5d569b781d7350ded009c07b6b59f82b4e8d2f
+DIST firefox-102.10.0esr-ko.xpi 617294 BLAKE2B 
09512b6cc8a8bf5f8f7969eeb0283effbb392c6c73dd840559f2f298d68a35c52f521c46505c0927fcecedf61764004ad0b2df6d9f3562c123825cb57d7538a7
 SHA512 
2cc99467169aa753908c20f0a85e30c0a68c9327322814845ebc249efddec83b633fbd19d2b5a7015635b10c535f39a86d470bdbfd6ddee165f06a7924e806fd
+DIST firefox-102.10.0esr-lij.xpi 480137 BLAKE2B 
21456c84f6f638dc2900399a26e5a53ae78691549b91b59497f634c52072073c8583fd88a7f3c11cc58b093f3d8c093cbe900ac8b54d53597b8fbbc5057ae830
 SHA512 
da8f3082a369c95ac43346637d4f5a7eaebab47464684c5f0c02595c6d72f993208645e19c304b400665f5dd62cd2e8249b5b516d48aa93a8fcb557223ea2ab0
+DIST firefox-102.10.0esr-lt.xpi 574778 BLAKE2B 
e2743ebac76d61305f31d1a065d3c22583adaa5e5ff38343987c764306b28dcc7872528e5db5fd7189e814ea83249c6cb9f6bcb95633b4a33368bd03c9d3820e
 SHA512 
a2b9c38b4773bdcc3e5080bdf44e891f118bca5aea573cc8d57ee52fd13a2b3fa60fd11bbda29b45f1816da3a9fd710966015094796be242b9ab6df8b05f9af6
+DIST firefox-102.10.0esr-lv.xpi 479294 BLAKE2B 
9c8800eef512c263dd323167f74afa5425f9ea7fe2f19333eff93f4069d3413246ed59fb0f20797e623886425e52d918e7f5818207efab369240e5722fb91071
 SHA512 
f5c7e60d71bfbadf92ef50da53f81f7b52d9c3b0c60911d294ce19c1d5fcc53e79c5ceb7d7bb6b9c9a847b796f44aee4903fb039d7b1d5d685fc9c92212b9476
+DIST firefox-102.10.0esr-mk.xpi 497531 BLAKE2B 
b9951de49ade65055bbda68590c1371b98c94aa8abece859097a7f7eea350e99985a9f63dad8388b27a38e7e85d6ed723edfe6bed857637ae8c513c1919975d7
 SHA512 
649ba2219d0677f59dfd55f9ca14a5bbbba7b6b13021fe361e1263e0a5999b779d369beeb10c0ad2ad395bf95a523c1eef02d62c0782843ac088176b95a4698a
+DIST firefox-102.10.0esr-mr.xpi 543734 BLAKE2B 
b68ae30a97fef3039da63d8ce72c664db0ac107f9549c154d5c6b764a78a951e1d7d6be655ae909b95d0eac38ecbd4ddb453bdb012ae36e52bfe74f550c3be91
 SHA512 
2260e10f7133dcf09cd09e1a8c727955be19a68c6bb8dbda6cf42916ded53a54a4fdf33d396a7923f698586fdeed2266b8f025ec4e6992a5aa1c6c3371c01cab
+DIST firefox-102.10.0esr-ms.xpi 459032 BLAKE2B 
735894e4e8d76a2876a7c7d6475af75267655dce8329118a1c1d128f84cc571382640693fded084abcce1fa123475af31529592e11011feba9a1abd502fc48fa
 SHA512 
317a6fc18c0a6263ddc021681f48e414298e0c7310602501b97d4893e3637a66517499d3be9e9805bde89553fbbac9b4734f77b79e67fb4fcd60d269574a4ada
+DIST firefox-102.10.0esr-my.xpi 529936 BLAKE2B 
d46eea274507c2108ae0a25506e98a81de0efdf24e10247839e3834d1c63ef85b5e26c9a9ab290cbdc04a610ae3bd3730642bd1dd2f6a67a68f7e3e81dd7d317
 SHA512 
3b22f50fb4187fb64eec1f80902e6c9cc73a3c764090015649d6f0e96c4e5f85321b3ba2d5b7bba954572351ad52aec49f8deb06a10a26aaf45d8885e485d289
+DIST firefox-102.10.0esr-nb-NO.xpi 565281 BLAKE2B 
8a3d4acbfe0f58ef0269f1c9e344dac59ae2786aec16a5a1f44d4600e76f393744d70688e436851c3a9c118100a4a5c99d262fcb069742fa862bf5029075f66e
 SHA512 
0be1ac050424457e22f6e70c18a9f402d33e42c005d58f4da772dc956c2025f95a6f4787e49a66a7bc2529aec89a5ef0bdfbd34b384da1252cd33582beb2a15d
+DIST firefox-102.10.0esr-ne-NP.xpi 498088 BLAKE2B 
f2acce6cb75fb2566348d65dcd30ef0812e9b509eb5779378bf708f89bebcd2ee9ca37d7d1299470a5c37bb8cb4ae859ac5b02e5930cc1910e75c1fb89b97bb1
 SHA512 
770cad7c5aaa425f70abdcf74daa7f2dee6ce1590d898b6a1c981c4fa4351ded3cf8d949e7a15c4db10e9daa6a2ace3b3ee3059d6854e7662aa2eede5a81dffc
+DIST firefox-102.10.0esr-nl.xpi 573455 BLAKE2B 
5d9f47c08f70ba9e859577954ebd20ee4133fd8ef18c20e3d32ed227450dc38605bbc91f1db16db691436adbc595bafcd2e778af29eaffe3f6fa4a69b5abd3de
 SHA512 
2dad1683499e08bea8d202b768f70ee7ccfb6d20dda73b18992b8e096db062fc28dc289961544d581dbf596464bdd59816d8ea7ba47cc8eb5203939ddbf9a35c
+DIST firefox-102.10.0esr-nn-NO.xpi 566157 BLAKE2B 
6a67e124d99649c6600e508f57d12bf1a4a410456f7a340209e60cb70a9550dde787cd198317f0ab7fe4913b656502773fd10679ec74fc9ffee2cec7fa3505f3
 SHA512 
f004ade4eee2f393367fe1a92fd5696c1faae7eff9199cc22e0772a28551f446d0825bb8b932a1f76b1b0c65a1dcecef389f94ecf37c17c2ea3a01beab9123fe
+DIST firefox-102.10.0esr-oc.xpi 591137 BLAKE2B 
bf46b5e600cd2a564dae4195fc6e46381d7c6f7684d960465520d467096eae98cb35dabe4d5243c29571adbb39e9b93c5b00be36fbb0f10aab7e5f814cd2b8fb
 SHA512 
212680efd81f86625d6b5b99cc33c17ea39815f026b148e49edb620a51918f924958eff9912b71b7424e9d20dcaa7e9830632d1082ac1ba5d49ecd32cd8a6d85
+DIST firefox-102.10.0esr-pa-IN.xpi 648627 BLAKE2B 
e3046c3b247987198f79d3f646da82b607868294f4611c2eedcb0b47373cb2c074be0f6d6232e9a8f9d66b1bd839e6ede46fd7ffdfbb9b891349b174791957b0
 SHA512 
fb0797fbb02e990917fbf0690ae938fc457ec799d51f4a7c2a315c205d0fc07e3c555f6727cb531829c086916f07317fb649c7bfbe48f99b0a25b15ff3145821
+DIST firefox-102.10.0esr-pl.xpi 597077 BLAKE2B 
eeda8b70f8dc8c33fd45659c419446a85bfa7881c083d9c5388fe24116ce3c2a0debd4732235e8786d288e05489ef3d5ed1a4004a25c556ba3ba52548e6c372d
 SHA512 
2222f5d67673dcaddbe590e260bf202d2005b60c5185bcf6458011b76430ed2aa1d7d331c26d3bb1bba2b8edc8dcf8ec5a031522323f9b7febc6e717cb2b6198
+DIST firefox-102.10.0esr-pt-BR.xpi 579015 BLAKE2B 
a618f142618bbd541aec5d2beb9818dd2059e80bc11d5153624731b1c26add70d9ad98b96da436f24c4ed1aa28b114adb2209d0003a66ab66467f4e4793f16aa
 SHA512 
ddc3bd2937d5e8fb6448be055588d85aa41ed1a9082eea9e87d30c8645b40a5535a8c45b4d753da994b799ef116f778ff247f34eac80f7c642cf6024c901eaa6
+DIST firefox-102.10.0esr-pt-PT.xpi 582843 BLAKE2B 
271f0298d122a6a8d84ce8a001f5f4332e7b992dbd359e5d1f9f7278c31fad520f853700f811710890185041a22434a9a8619eb5c2e718fb45ed38275c810195
 SHA512 
f2aa9cc019ad4142aa190608c53db2fa4a0b0513914721abcf62b12ff8e1e16305b05aa569007bdd8740c3a3fdcd15860eaa2a606556ba46124d7e558676190e
+DIST firefox-102.10.0esr-rm.xpi 571913 BLAKE2B 
5813f34740528dcd9e2a4e011162932b7d4adaa7eef82ccafe0e49562fda230501605d1b96c42eecd254a29c4e5bedcd8b84ac1c820b889c1d21dda1110f7bc3
 SHA512 
bdab6adfaf7167cf97f2207a7d3b8a5ae25041f58e9ffa7a4672da637fa70c8452f9de1f1803107571cefec2ceed0c9255521396869fb1e67a4d8fc6f2577f51
+DIST firefox-102.10.0esr-ro.xpi 541918 BLAKE2B 
71367df836a003861dcde6415d097d4a7c512de54f0959f9583938f31c59ff1566f48e7a1c4e17283299ea1750f4b3e08faf66b2938e57eabb97c68f71430361
 SHA512 
3589cf5c764df746add102ee23f2180a161a7deaec03e482e8b59169dd60e35c281a63b39a9da452f5f1f672564a64a79c79df376ea467189dce4099002b654d
+DIST firefox-102.10.0esr-ru.xpi 671123 BLAKE2B 
4bae3b765cca8392028a7e706b758167834aea6ad1ef04ba8a45a41d94b3fec8c8172df9d7942afc31f7b607df3d1813ffba4c778678629c12d80595d00b0419
 SHA512 
ab392e4e87cc6e81bd943773c4c1ea64f4f533bb7fd999b3cc135636e1a3668e1cfe806dc649d4448750d15d3b4bd39cff115b52abcf910ce8b6864fccb9676e
+DIST firefox-102.10.0esr-sco.xpi 513232 BLAKE2B 
1741533822059212703629e99e6f420e6835ebb37c1e5e5fbe4b20db3a49531dd3800698b2d3f37c0e9478ba9684d29611b9e97a91e7a9bd704f3fab7d851f79
 SHA512 
d39967ef3997e4694e89f740d5c13a1437dfa50f802bae9c799ebfcb6478717e3d84a32454b73b260fa07d1de93e025991a23c697ad8e075d33abd542062c82a
+DIST firefox-102.10.0esr-si.xpi 585626 BLAKE2B 
3b8387ad161221f168179586530fc266d53047a78e49d32916047ad8518770fb6112b729afa9567f15c6bbdd74a10d420ad04f65e2ce2d77b49693020655489f
 SHA512 
355ef503efaa29a2b74ee412155db4fe7daaad884b871c8b5400ccaedd8a2836097662fddc573b425ca29318c5212a54b04c66047f8f72c249de9b9979fb5934
+DIST firefox-102.10.0esr-sk.xpi 606121 BLAKE2B 
b756a5207cc3bb53839eff37b49f76adad2b77d7db97d4faab78dda23ac509409dbbfd8225ec913afc38ce0070eb4860f296cd329df31f54e14ad4933db63ae5
 SHA512 
2b38114d3bf8528643d0a6223f9ba1dd01905936f65df2c84c6047a0ced2745c6532dd65a161c07ba8cb49aaa386520e8518c120db35b42bf5f621f3499ed2dd
+DIST firefox-102.10.0esr-sl.xpi 577343 BLAKE2B 
99b36a4a2196c226009abfbcd7e913270f4c8222f7ed4aa0f33df8ac907c157c79b51525ee7c318dd6cdeb25288178dba159334b0331571f926c02330599cca3
 SHA512 
18ee491755e3612bdaf52b2eb612b79ab1818ae1c4c6682862329e6aa160e0c51202a50bcac298ceb2470a502edecf0fd7a5d777ca44ec887471b68d3886334c
+DIST firefox-102.10.0esr-son.xpi 433050 BLAKE2B 
31be6c5996c00660deff70719d7669173c201275d6cb629f396388e4c7365cf074a8691f7470b23bc170b1e992c7984e374574cad8714be453d9071b808cce14
 SHA512 
58524be38aa8bc64a1518e2796b3dbb0fcb72c16e5651aad55e03ce65af0589f0384d14341216e6292f2c3dab22e6de4ce3e26236c3261cd0484212ed2ff0ca9
+DIST firefox-102.10.0esr-sq.xpi 593409 BLAKE2B 
bcdb1d2cf2815eb00ae2e97f562a4f85244df35e7d5a6a823d2638552b6c92bcf846530ae2c95778212fc938c2ecb3a0baeb2b856b23e52fff8cfbb7b475d636
 SHA512 
093b1b2890ec44519cb5d2c4ac84d9e2c93374f6beb7daee4723969b1f39891efab3582c2fb0e7a23f7d3b43facabfcad4813eb8c13f002fff3747f3c187a31c
+DIST firefox-102.10.0esr-sr.xpi 635146 BLAKE2B 
fd75ac34de3ac2030c3f48fc883793aa7d4e992353e52b1b82cb87eefce0473a25f11e5b56275e2e4929c646ff9219fe98d3bf9070841043924aa29a4dba2ee5
 SHA512 
93776c52733e34814463b275001e3166302c42f8d1b7204e1550f30debbddf1ed65c4926842d5cfe450a46a11a98091844345ef0143e80a278a4eca91efdbe56
+DIST firefox-102.10.0esr-sv-SE.xpi 576053 BLAKE2B 
3e3def3eaee5ba69cb40bf89962ac901c6467c0a8a70a972d9259f5d2bf21528d82ee43e8b17dfbcb107f0c96bbca7d8cb35f59a4243efa272f27c86274750ed
 SHA512 
c6459edfa0e7bae0e12a1c10773faa631bef60d17d70ce52f2045373e0f15ba2c7f5d38f2c766360ec7ef1f9e6fc7c8b1b1081881af13ea471620093d17421fc
+DIST firefox-102.10.0esr-szl.xpi 527116 BLAKE2B 
cd9965cb9393348bd7e7b27a2a3817094f15d160129ab58fc23654ea37720f94daa7b3f69ee6817d1ff347e97f62b2fc21285ee88bcb508a7547ac80a34fe1c9
 SHA512 
94cb4d03af846609c03827deb9500c12439b65a85520f178631d84dd59fcd95d2dcb948a16aafbb95f5817bec345d26c3ec27234c269bb182c8f4293c4688ffd
+DIST firefox-102.10.0esr-ta.xpi 522074 BLAKE2B 
03772b5a263e8a6d5f025fef3b37e0449b7edd749a0d6fc32d6d5383e89ccf78371f2304cc3223d164005932a44dd0f9c182a7dace60504f173257e65de10395
 SHA512 
0b28aaec37d1106f455434725efd5d3114d647d00ecec001a48ca358d9b44d08351ac8d180c754daa8beee7a0df3e5f2b3a1b18797073d021402fcda5e644746
+DIST firefox-102.10.0esr-te.xpi 568446 BLAKE2B 
ea1c866e79e027430d47a8a73ef775a57a4279951cd470a33ba64bc51879ee25b61a662027ccec4ed0431da55969b519b7a98ec11642f13d6c57d284bf711da1
 SHA512 
30c555fc4aa0922f410483ad167aee7b1cbb55f5c19e8280d5ed510867f09148b5cd2a2769c4138b04f6bfddb87d1a5319b31b88ddfe4ce244d40747e1be11d8
+DIST firefox-102.10.0esr-th.xpi 649496 BLAKE2B 
adef1351c0683df18acb8e1dcf7c027f0d5b2eb711128977a3735f7fca85e36d09641afef21584fb2eeb443bf9182698c54220861abfe1c8f4beb0377c3c0859
 SHA512 
eaeaba23718c610f10f4d60d1f07cf635b9bc901b9e871e2eb26ec1aae6c7f1b99964af1fecb3b87e2bfdf6812387c43375bcf2d2bde50eb7cf25e422f40759b
+DIST firefox-102.10.0esr-tl.xpi 532368 BLAKE2B 
d09c7e7ae2dbe6537b3dfe4478172f2e3a263ce4ae280823afc0afab36f83eb6f5974456ec634fd0d8079cbb4a771e9690e079a9a40c5b6619296021444ce4de
 SHA512 
76eb6fb2910f6f8e7522a8aaefab5cc41020baf05d34fa8f3bcbfd08d277103f9ba6835bd2f1d991b34f1de929a91bd5cbc2f9f46f2bda98c8b02cb364c3f2ae
+DIST firefox-102.10.0esr-tr.xpi 590501 BLAKE2B 
153c7771061eb411be132148a00960f493334ff304775a2d0064bf4c976eba6ebf481799032cef673bbe5222cd5d9fe731d87673a987406b2c2b7725c9e0af37
 SHA512 
6466747f2c3c092e9a713a600d70c542bde71a57c9dfb19d19830db2a71eb23872dbc9f41950b1351141e45d221be701a90ce625adf6b9d2d53eb9a260be297b
+DIST firefox-102.10.0esr-trs.xpi 497372 BLAKE2B 
9cd5a09be29be142da4c85048e7db507a0a7b2595f5772eafdcb20861ee22cd4c7f3403dff456e7594ff38f4aaea0651149c329725c75b25ee21a06253662b10
 SHA512 
2094ff74af71dda82371517eebea1bf3486a788b57e6892c9b86aee45e4c733c1372e8b79297a6cb0a3f9ea523c0d8f339bd71dd16e599eb29de2f47f618bf5b
+DIST firefox-102.10.0esr-uk.xpi 664327 BLAKE2B 
df4a280eaca0d4b10a4d41a149d8fad5259552ceb85a16775f1472520e0a29dc5486f7635ebedd38945700ec27b80286fb1d268cf5ac0e1e7cd04fbfb3fbb0a8
 SHA512 
bc7c95a7b8b27c05a70be1a085608d2ceee234b9cb530d73c8e2eb5271b34e17dbf34bc80b6543df7d654977dcc0ad6342561d1a3c6a6c680b8569fb88a503bb
+DIST firefox-102.10.0esr-ur.xpi 569921 BLAKE2B 
67abdd1549b29129eef8a493d34ef13d9c4498638f47453483f15b800b112c424e39d0ac9bff1f598744d73449909e4ddf295b2be4be2e0c9d3f5a2806826829
 SHA512 
b1de6ff3a3923521d948f152cbf2eda735ef91dcb8bb10586c444db22bb2bb5206153e0bf03cc80779ed7b1a6af59e98cada5cbf639f87e8404350c825bee463
+DIST firefox-102.10.0esr-uz.xpi 488881 BLAKE2B 
9f6aed78836fe0dc64a1f7f86cab4b3c36b92644d92265c720fcd7b208acd00e3716b11fbb97a7f89de5a22eecd86c5a15a400bf0deacd1b8afa85167adb6210
 SHA512 
ccdb29494831df3e37c4b3a7a98d585f61e8651c8cc2ff7064abc6450146c8844ea9d2eca1e99632843856ad360492fe24faa8ab05368a82bf4cdcb6e89ae5ef
+DIST firefox-102.10.0esr-vi.xpi 611432 BLAKE2B 
a389fe9fcd4add0aad18e9fe23ec573742479b0c66e36c7a0a8dd0e29bace4fa227aef78a304b82f3fbf8ce575c3c7f1c0f66156ca150caaff7ffce50def0bf7
 SHA512 
4ee93654598c89f71b4aaa0b8bfd0e8927c2c784a00c665728aa28925c9fd990ccb16ffed39165e0afa06bc73870b576c0504538c6ca7e4dc4ed4d9a419a9ace
+DIST firefox-102.10.0esr-xh.xpi 427933 BLAKE2B 
f581ed920343e0b7c323a470c176dafdf0ab66404d391d7c818713d86521e9443c80282ada70492ddbf89423ade1937db278059085324272c9fcb96602097d2e
 SHA512 
d24f803ce4935e8097ce38d0c1566b70da7a81bb5a5199d99c6315c0ba29f24bc81aabca60273028b6d1e379a025af801c64aee8fa6f962a6fe92d1d2170f7bf
+DIST firefox-102.10.0esr-zh-CN.xpi 613321 BLAKE2B 
21bd7a9f4c549e4a443f066679660899e280016e2fe854e4a1bc4ede01efb407bd2012affa848120481eb2999920cae4ccbf4a1e6272871c5198e8ce59985f4c
 SHA512 
230638b64c6b2b7fade5b0503d7f87f2c92c35963a1c861441196df196051073d0f7f94378c39ffae441ee5cff1cb37b1669b45ae73c39fc2aef059695c9ef75
+DIST firefox-102.10.0esr-zh-TW.xpi 614579 BLAKE2B 
f43efdbc63293629474fb02f5cae5c50d99fb3be58dc82eb3c41717402e86251c44381d721d50eb7747b527554bb0744dd1c5f7e07a92ec65ba77cad384422af
 SHA512 
44cfa7aa39feeb383e51d482d42e9ea90da825022ef4557c81777468b1f8f51b4924f416c955bc0819d20101541fb548db9cab709857c76cdb113bdfbc27b67d
+DIST firefox-102.10.0esr.source.tar.xz 479026088 BLAKE2B 
b4d8eaa6d72b009d12b435781c360f043bca7554d8b069b8d858399ece03f20703d7e36427a3f92d0b801a94b1c3f132904f21e51ba4118116bbfa4e5668d651
 SHA512 
f2b53c35bdd22a3de6f32699b832babcbf499667197c02dd50cf0b6cd956e0f4471f420938c2ab72f0a0686ed99fe74e3184afe9b5f7169130879b8f8fd99f0b
 DIST firefox-102.9.0esr-ach.xpi 466442 BLAKE2B 
31f9631e4257b0c9b740c11429c1d038d25482e596c4053ee37087995ed308fc57bc77502d9ffc5bcf6986220ebc5dd7aed6a72e8269582d4c1567ac02d149ea
 SHA512 
596b7388115d8dee354a5d80c96abf7f14fd33d1f592f7ed1d0cee620a6d0573a947212b1d694972efaf58d1cfc0265503b406903eb2a74c73fb8333f2f32922
 DIST firefox-102.9.0esr-af.xpi 429117 BLAKE2B 
6146a1edfd641770c5b0c9265ed32831cbc83df0dffb055557ce5c4fc1eeb08b5457ebfe4a39ef0f2069fcd548a73ad56c4e6399180fe7b62d845f194f7c7416
 SHA512 
41c35a08d87d2289916532ecffa598ac8595bea1812b42f51f71c0594c661f6aaa211660fbeafbb57a514bad86983e08da740c58d475dcb2b314af757425daa3
 DIST firefox-102.9.0esr-an.xpi 510484 BLAKE2B 
fbc9117ebbaae78dab3dfdb3253cb09ee87cebcc1bd09a0ceb2c62f8f98aba35c8d9d5f15ae456d0f974715abfe0cdb5d161affc1801a7d10487d4bb5c9db0ba
 SHA512 
8ff42fe5c664a676cc448655a6bd283e2fbed7dc8a31bff7416da27809d78f9f2216b7384fa37fa517c6f1818e40a33668a72768a3947a1e3af9c840dded1c11

diff --git a/www-client/firefox/firefox-102.10.0.ebuild 
b/www-client/firefox/firefox-102.10.0.ebuild
new file mode 100644
index 000000000000..ee6d67c5562b
--- /dev/null
+++ b/www-client/firefox/firefox-102.10.0.ebuild
@@ -0,0 +1,1278 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-102esr-patches-09j.tar.xz"
+
+LLVM_MAX_SLOT=15
+
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+       llvm multiprocessing optfeature 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="esr"
+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"
+
+REQUIRED_USE="debug? ( !system-av1 )
+       pgo? ( lto )
+       wayland? ( dbus )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" screencast? ( wayland )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:rapid
+       screencast? ( media-video/pipewire:= )
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       || (
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:14
+                       sys-devel/llvm:14
+                       clang? (
+                               sys-devel/lld:14
+                               virtual/rust:0/llvm-14
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-14*[profile] )
+                       )
+               )
+       )
+       !clang? ( virtual/rust )
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )"
+
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.79.2
+       >=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
+       virtual/opengl
+       x11-libs/cairo[X]
+       x11-libs/gdk-pixbuf
+       x11-libs/gtk+:3[X]
+       x11-libs/libX11
+       x11-libs/libXcomposite
+       x11-libs/libXdamage
+       x11-libs/libXext
+       x11-libs/libXfixes
+       x11-libs/libXrandr
+       x11-libs/libXtst
+       x11-libs/libxcb:=
+       x11-libs/libxkbcommon[X]
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               dev-libs/dbus-glib
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       libproxy? ( net-libs/libproxy )
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4
+               )
+       )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       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.1.12: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? (
+               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
+               )
+       )"
+
+RDEPEND="${COMMON_DEPEND}
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )"
+
+DEPEND="${COMMON_DEPEND}
+       x11-base/xorg-proto
+       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 ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] 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
+
+               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() {
+       if use lto; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       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 crate checksums where we have applied patches
+       moz_clear_vendor_checksums bindgen
+
+       # 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; then
+               # Force clang
+               einfo "Enforcing the use of clang due to USE=clang ..."
+               if tc-is-gcc; then
+                       have_switched_compiler=yes
+               fi
+               AR=llvm-ar
+               CC=${CHOST}-clang
+               CXX=${CHOST}-clang++
+               NM=llvm-nm
+               RANLIB=llvm-ranlib
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               AR=gcc-ar
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+               NM=gcc-nm
+               RANLIB=gcc-ranlib
+       fi
+
+       if [[ -n "${have_switched_compiler}" ]] ; then
+               # Because we switched active compiler we have to ensure
+               # that no unsupported flags are set
+               strip-unsupported-flags
+       fi
+
+       # Ensure we use correct toolchain
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       export AS="$(tc-getCC) -c"
+       tc-export CC CXX LD AR AS 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 wayland ; then
+               mozconfig_add_options_ac '+x11+wayland' 
--enable-default-toolkit=cairo-gtk3-x11-wayland
+       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
+
+        if use elibc_musl && use arm64 ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
musl/arm64' --disable-elf-hack
+        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
+       export 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
+
+       local -x GDK_BACKEND=x11
+
+       ${virtx_cmd} ./mach build --verbose \
+               || die
+}
+
+src_install() {
+       # xpcshell is getting called during install
+       pax-mark m \
+               "${BUILD_DIR}"/dist/bin/xpcshell \
+               "${BUILD_DIR}"/dist/bin/${PN} \
+               "${BUILD_DIR}"/dist/bin/plugin-container
+
+       DESTDIR="${D}" ./mach install || die
+
+       # Upstream cannot ship symlink but we can (bmo#658850)
+       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+       # Don't install llvm-symbolizer from sys-devel/llvm package
+       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+       fi
+
+       # Install policy (currently only used to disable application updates)
+       insinto "${MOZILLA_FIVE_HOME}/distribution"
+       newins "${FILESDIR}"/distribution.ini distribution.ini
+       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+       # Install system-wide preferences
+       local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+       insinto "${PREFS_DIR}"
+       newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # Set dictionary path to use system hunspell
+       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
spellchecker.dictionary_path pref"
+       pref("spellchecker.dictionary_path",       
"${EPREFIX}/usr/share/myspell");
+       EOF
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-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}-esr.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
+
+       optfeature_header "Optional programs for extra features:"
+       optfeature "desktop notifications" x11-libs/libnotify
+       optfeature "fallback mouse cursor theme e.g. on WMs" 
gnome-base/gsettings-desktop-schemas
+}

Reply via email to