commit:     61c208fe646cb9f26b25ae54d35f3e6d0114f056
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  5 09:11:18 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu Jan  5 09:23:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=61c208fe

www-client/firefox: add 108.0.2

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

 www-client/firefox/Manifest               |   98 +++
 www-client/firefox/firefox-108.0.2.ebuild | 1330 +++++++++++++++++++++++++++++
 2 files changed, 1428 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index f86a4d05e771..72822d83905a 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -393,4 +393,102 @@ DIST firefox-108.0.1-xh.xpi 418350 BLAKE2B 
3d4be6d583b1ae6920a907c25325cd7d75482
 DIST firefox-108.0.1-zh-CN.xpi 594371 BLAKE2B 
0c5305ab5d80a679d0ccfb200045351846e44139459a047ad58069f9d70c379d3c8ee00b89e61d4b5d26769c52458ac1ea9b94cc929b2285f21cd82736b417f2
 SHA512 
a4ab0dde55750b942592cdf836eb4c5a2a3758c51104b7068ba801e4abf0950907a88887c868e7a5ed82d1d82185e27eaa59c2ab3f01e4c68fd7f4b1efb42bf1
 DIST firefox-108.0.1-zh-TW.xpi 595832 BLAKE2B 
2119b9f170e6d4e39632af1e8226e15383460e73f6fd7afe53b8366a88881b2fd4e38e2aa287894b164c64c08ec5f5a7b4a72897bd621560e23d2c8d7fabf4ce
 SHA512 
d50ac669054cbd608e2fbd33964f468166628716729a2dda35950050c09029846b2995bbffa4490ba01adcc058219d26f72f1a4206aaca9611a31a7b4ac12c2d
 DIST firefox-108.0.1.source.tar.xz 498268448 BLAKE2B 
fbdf5c32e81a676867375aa2a42f0f5d649fc6e37bff729d69c7a3477eb09e553f5bfa53625f9848ad0694388ddeba11d63350105228253dcdd8a303fb9c963f
 SHA512 
e6219ed6324422ec293ed96868738e056582bb9f7fb82e59362541f3465c6ebca806d26ecd801156b074c3675bd5a22507b1f1fa53eebf82b7dd35f2b1ff0625
+DIST firefox-108.0.2-ach.xpi 454489 BLAKE2B 
55fc5f61e15600518e41f3ab6f05e4bc9df466754a4be63301c6fc49bf0326f1f49848072350a5a7e452b13149673c3853e02da4dcc31ced809e321254eca3d1
 SHA512 
635a9ac1bfcd238adf4bd3df25435ac64eb58e1224bfe9da41723bc1d6f918e74c122818079aa9a84c55964bd348735a2325fbb1dc5a37f33d396627d056eed5
+DIST firefox-108.0.2-af.xpi 419613 BLAKE2B 
c75573c642924c21cc84c79c55533a13dfdd43adb1bac8361e3ff9b1ca43b591a9bdf0850f5f9306c5c3811f88c5e45c2eae4c95efcd18bfc4f35cf40b2f14bb
 SHA512 
27388512241e7057e1d8459fe017df43173f34fbe7d23a2c59fc2062a4cbe7a48026b103661e8026dbe82fe86129446020059fe822ae935e0f21fb7bb5a9ef80
+DIST firefox-108.0.2-an.xpi 501401 BLAKE2B 
2f3890b335965f80a630ad678bc5810cdaa9f94a2739bdc08f69fed8351801ec6b3b09895763713028bd36fe5b25ecd70d3d4ad44ca2e4c44e91a94d10673fe2
 SHA512 
269e5198d8e20d3171714d0e4180baea9657220c0a46f1f83ece9cdd5cdcf94fdb6d9e917f5b9231502e313a2af79b3de25be5d8dc2d9afa0cb5b6800d5e1591
+DIST firefox-108.0.2-ar.xpi 568732 BLAKE2B 
db943bb687f5daf4bd375d9a9bd89925b983625d4bd795ba348c46b4fe956822d985c2acd81e9b368e03b589c5c1133832cf3b791e8934173e3408ff4c11a6a3
 SHA512 
4830e7ee72f3d631efa8cfb41db1cb07465167c023c2ea2ee8c5b7902891ee46684a7081878c1656164af69172456fcd2a25e3ccfef4d06b4e7cb5f8fef8e5da
+DIST firefox-108.0.2-ast.xpi 487891 BLAKE2B 
abe77294f158de1da275c2506a725e4cdf956f874755e7272f471e6292394f0876341dcae25ba4c120cbd78a044a4d545410c8acf1507f9f7eb682ed2adfcd6f
 SHA512 
ad43cd3666c6def3a05fddbcd4f9a0afc6185e0f629d24eba7ef24c5174b17e1a37f164605365124dc91ff85894d2dcbd68cc5b5f35df881dacfdb9328af0c62
+DIST firefox-108.0.2-az.xpi 490769 BLAKE2B 
6d240f94c0b508684893e476fde23aaa845ff28ee2077050635bb75b083cd34b81324cb788cccb0365db1134818b4bd62ee71dc61e802ee3fcb1b9a31dc32326
 SHA512 
e1a8f7abfd5da8971eef050313d881721940bf320345e717913df24a6b745f7f71f63b51730ee00aaaea4941b8c775f2f114618b9e5e02c1f812fcd6cb923b6f
+DIST firefox-108.0.2-be.xpi 647001 BLAKE2B 
24c6b0761c9a27680f9580ebff35387ee424fe48e238983af6d4dad96f36a99b1aff3a22751e49496fffec531efb73b3a2219034c9ecddd11fd06c3209947b72
 SHA512 
06169ad3e83375c6b9fea9e8bea73ab2fb465296a0c8fa9fddec8d0cb846baba0e8f8cf8214522c6d685365de187a067d43b77aa3b9c8cdf0f18dce2dc0a4884
+DIST firefox-108.0.2-bg.xpi 580628 BLAKE2B 
e0a75b37a5af8cbf89c011cb40c28c75fbf16394ec83a0341d00eba82c5fdc42c2a5ca72b256b8f0cfe9477870371990942bfacfc00149028143ca37eba2788b
 SHA512 
09a0388c3be2bf1f971baef95a9af35f8b6d01bbf9f02efc1dd19c0d7a012dc4c094dd087453844b6f07f1f57ff46cf8b8d430200888e872f38ba386932fe435
+DIST firefox-108.0.2-bn.xpi 579706 BLAKE2B 
6ad0215c138eb1540455638e57af61761a7a08b8c008ab45f36d59994a96d447e4575a322bb01edafffd3a502d49b896b11af60f6840545fc3f27755bc512833
 SHA512 
a38514f09f84cc0dbc6dfa994402e4985d5fb4a60034ce107040d46fbdce554fda5ffe85c56d19e1bd305bc082f73e9e63752fa63263e9f4697dea65ce72075f
+DIST firefox-108.0.2-br.xpi 542582 BLAKE2B 
b10fd2610a889791b310a49bdb4f21c8c2e89bfa81f6bed02c5161af0404d75e8147043b016383e5da6f9ae9dddcfd861d57e8238c7d1f8f843f0a9ce1a977f2
 SHA512 
9873bca1adc1345c93807f60f76f8ae383b751ebac1e81534cb8a192986e8da106cd29875102ea3fc2e58794c9de21c7bc3df0f679cce451ba02b3cdc9ba7395
+DIST firefox-108.0.2-bs.xpi 461634 BLAKE2B 
7dc705c4b222d78e413e4c0acfbb4a3ac09ec5fcb99e638b0fb8a741b6ef2edac506fe2a78bc1212a980314d6ce10585acb7f3d8cb9a1191c363ded0e6ad56bb
 SHA512 
e789c445fc5a694955ac147a9d956bb6c5b47c2b0caa09dadf02112478cfcd6d8ccca89b90fe2c24201401a212e3189951207e97a58f3b2f2e21f832e35d5f07
+DIST firefox-108.0.2-ca-valencia.xpi 540300 BLAKE2B 
7a2e50e4dc1ed9ed863c294229534a978d5c37dd842ad47979a39c973ea4558d92f7539b9bc26da66dd666a22c9b430c0f655807658409889eb31d69f383c38a
 SHA512 
322b4765b17f2e19ca79c96fb492986e384d054068c4425b1411444763b9b07e51fd862263705f0a472d860bc445adfd89281c0a39c4005da043333f88f7eed3
+DIST firefox-108.0.2-ca.xpi 543824 BLAKE2B 
94e0d545c505be72a26df474c3ab8dc602469324e012e2a8f51806c079cec7c34661fc781e162ec30f241031514ea543022b8549def9d40bfcfbea6f16cf55bd
 SHA512 
9287167e2c12c4626fbd430e4443f9df9c8841c83eb18923020545c4592176bd2c4965fad8ff0fb1743fc6621921ba7c4d9ba5432eada6f0ee50d8d379b7eebb
+DIST firefox-108.0.2-cak.xpi 555254 BLAKE2B 
d0d7775050c9a738c3d086e584037e54f5c4e8ddc3e4b1aa434ecb9e3c53ddd71bb38707c524e28de15c9e4fb978e6469d510c78baabe605ccd0941f29e5c14c
 SHA512 
774e2f113fb894ef926d0bebaa901d92a115aecd351bd20e15fe3fd265cd90bd9d3fb4fece8c8826b16e2a7852b937a9dd5c0dd8c4b377a4397017a6abdf3518
+DIST firefox-108.0.2-cs.xpi 582578 BLAKE2B 
1a0b28a56903373abdf6d2b20dc59f98e0b75955163cc2d44a7af2e877844fe94f67217d0a39d3b413ffddaf68d35fd2d90577da13ca25a5da88abaf33084f0d
 SHA512 
5e0104d424091d2463f1bbf43afe73b012f52c572beb3a9b5f16e23ca3718a52a3f7501766288c239d16df90aa239c8f25e2c0079548e479242f7c84d5b5922d
+DIST firefox-108.0.2-cy.xpi 562651 BLAKE2B 
d72a613b3372332b960e741825ac7e4d56bb91f41c3f0bf995bf7e3a8d9dad245702e51a86e03840c3ca49cf52e9534ab6bbd1b8667d68e83c35c054425a522e
 SHA512 
6f1e078a02eda4197dd1291554b5908fc624b63f6ebb454ea6e3e9a71e1eb21aa072908b6f25a22a706e2ebd27fc7af80c30bd4fcdc1d8fb7e01ad67cc0c19ef
+DIST firefox-108.0.2-da.xpi 552350 BLAKE2B 
e2025b49c96108554741fcb43b50f3c0fa767655a32d5544bc1243059d7646d9526d5c3fdf9582201fb31d3a78fb74c1347a6bba57d7a211a78c02ee660ba2de
 SHA512 
ebedfb0224fcb44b7bb070b0bbc4ef9b2878b1dc063639af65275a7c4b30a71a942c5841226728b2a30fc51c388c2046a02796a2e0cb2992ea52c6786507a27d
+DIST firefox-108.0.2-de.xpi 573559 BLAKE2B 
fa4da5059bd14ca5c2ea051319ac2a41a0b8ac24ec58d9a56e708218495f26cebb457f78c53aabc2864ee7470d90bfc8802494ca58c1498314a3c3dff68a0299
 SHA512 
9876230eb6f41ae493561a34b7d5f05f2b6d2dbb7510807d12012038f1f09fef71b58225f34092521f96d56afbe0aad285bc9e6cbf29ec60b06f0a3b1a0cb7b3
+DIST firefox-108.0.2-dsb.xpi 583380 BLAKE2B 
d0c558cf058c1b1017aaad070bb1cf53dd8b4e5226f2751bffdd6d620806cae143df37468486d1b007f9667a8dc6cc6aa5cbddbcb09fb0412255956ee1c75ff5
 SHA512 
407818f1ad40d5c88fbad121b3a4a66070a11823e8445be6bba4d0f16cfbd0e2a1af652d409bb19c5c3fc1979cf47d7ee8f24d874950480a1307081c55759e09
+DIST firefox-108.0.2-el.xpi 662922 BLAKE2B 
66dd77078be21a6305d955dc3a46894a58a4602ad80074bd41e434931cdd893279a25c7fd6aa81e9539efab1c08744a0f33913dda652df304907bd2f6e2b48f8
 SHA512 
e0652bfe6e5825f578b72eb713b0d98fc4c79e13f0aeba827fbd99e1f9012f23bb3025afa75aca541b996fd190c7c562ea107a4e3f17bbc42127ff3811f8a84c
+DIST firefox-108.0.2-en-CA.xpi 525761 BLAKE2B 
5b9c4ffe9e4ba92af7e5a9af09eb920d3327cab4d159b7201e17e0310d11ba68e6a063632aae11631cbbc8b6618fe3cc9c70cb1fd86978390b6fc63e248cb62d
 SHA512 
40226451860683fd9f09f4c6acaf1876ef985d92416a719b25e4f6177d9ec0413780ba541be961b84850f27d00d5b7576e8245fa2d888a68362aeb20f9ff2110
+DIST firefox-108.0.2-en-GB.xpi 528689 BLAKE2B 
4b94f7f71b6e5a668b1aaf2fe17c9892b98174e08e054609186d57fbb11227cdb563989cd8638a21554f1bc9e24ab077ecdc2b7f5d5195ab7007d2baf9a429b4
 SHA512 
14a08c3c9bddcad101a2c8ae1dc5d9fcd9b4c70c69cc428b639d1c21731e6f611149ff65a5639e7b64762feab49a812fb63eac1e1a17e841270c76aa9ecbd83e
+DIST firefox-108.0.2-eo.xpi 554182 BLAKE2B 
958cc2b9d29e4929918d0b7a2a8ca60937d6de7953cc7d5b4928c825fac57e63c7c9f0471b596365e45f29e72b3c2b0b4bdde9664403bfe13bebd48637a2a94e
 SHA512 
f620ebba27a2a0b93fde069c5985bf236473859cd58297d4e23e900bd61126722526cae2626f2feea5cf0076bd6df1bc3310bf21e0de30273ca22631980cbc92
+DIST firefox-108.0.2-es-AR.xpi 567750 BLAKE2B 
bf7494a574471f64246eb046f2825ad9198df9c61740c4248501defebe26bd69cee9d0dff3cd5119d6c2367a6151a6aca2a0afe1a0efc8caf06de388c3fa9d7d
 SHA512 
70c22911d61cda8269a9d6f29a99534cd224bfc9e8cca66facf706853af84ef0086aeda89e09ce3b46b1492f00d854924accdea6ba7252ec887532e9b616d622
+DIST firefox-108.0.2-es-CL.xpi 566908 BLAKE2B 
1105f187dcbff845285e1464f67f60354344a95b5f9aeb012c1ae2a4a4cac8d00537fe807b6640af709421699634fb448952622e7062ebaeac0465469ce08d79
 SHA512 
fd3902e8e2834324a824a7e267d6ddb234b1e965f8fdc3ec3b1c4c53d1440ea36db51f1d2f2ffcc03c4c857d8184681af3c78c3dafaa4530777e142bfdddb604
+DIST firefox-108.0.2-es-ES.xpi 559308 BLAKE2B 
7d1fae2d0fb6b8cdeb105a40c815456f64a021f864db478029edd06977f484b588481fd714885a642ae3bd8649ac207d803b97b0bcbb2a3651371e7a0e0f2428
 SHA512 
59087aaa9a07ead15a532778723661ba361f346a84dfbe9d9fab253c6099f2c1d3d20f0ad0ba904883c0250073065ab3b982b9eaddacf679cdefd7b06c8e1879
+DIST firefox-108.0.2-es-MX.xpi 569581 BLAKE2B 
1e0d3bd95bc58df979ac3b6e5e1264f45f04e9741658c1ff5301bc0d2ddac150a08124ec16c72ebe3afa7b3910b4c0f9bcea84f7631ad251b92391b0cb81dbd6
 SHA512 
ab3209962ebce29ba398660c3a84abd1158583bb647318bd913342b1d16aff0ef68b74b4251d617dcc7d2efb9048dbcf726bb2e30876429c8e2b9c921b482741
+DIST firefox-108.0.2-et.xpi 534535 BLAKE2B 
ad5012473738b8cd7f8a4d95aee6a272547de1524decc82170e1833bc218de974681d93c0e392e3e039e5a7a3be883b32453f4c48c2b5eaad4603a5b25ee1649
 SHA512 
d9c413571b2f2743e37d53d7653fef13b419dd9e53f6cb423b7ebc10f7cf3efd72fce921406536954892605c387636f96edfc4a6d7640d7d05216baaa2e4a05c
+DIST firefox-108.0.2-eu.xpi 556958 BLAKE2B 
951630a6b2dcd2130324dca280fae3c759e6e45ca8118f8ea2cf6f0b19cf52235a2e4cb14b5fc85761b0e39819a5bd39fb26293ad50387b36db8bb55d75e9d06
 SHA512 
e58014302dac1aaff2cd43c623d3f0173e43671aced27ad5e600d9f7be25dcb7880846ab24335daf970292e697ea535b4b5e531d5edb49eb524e30100131448b
+DIST firefox-108.0.2-fa.xpi 572384 BLAKE2B 
8a6e68cc54c3c6f61ca9fda0d335ed5bcd348747c6e8549b5c8469c375e476fadb83fe1ce722d8bb4ac06654d0d54bb3cb270d780dc9bdd53a42a60ed8a8f3df
 SHA512 
489c73d8fd1576b7070edc3ef35c95ac02a7c359a5944bad55a503178052c160608553bad8ffad93c4ad7923a6dc904e576051c7078ef52ad8d9893372027153
+DIST firefox-108.0.2-ff.xpi 474487 BLAKE2B 
2b08ccc82e62bf754d96901a06f7267a28b45c22b3dfd0ce62b340d92200600c7c66f6f537fcd1cf2c6bd8c753cfab25098f3559daa0f56e287b86f9a1dbbae9
 SHA512 
b56cd975b5f047a2c986866db0f6d7530fee66e1c5433d6581e9fabf250b5faab5e23ae5385bbd0eb0f167727ee4ea52040460fcc6a0a3f86c695b31fcfac148
+DIST firefox-108.0.2-fi.xpi 552985 BLAKE2B 
ac4ed7b55946cfbb82ab68f018778c10985fe839a274d48314216590f2bdd8364e4d0b015190a7193c0230e63bedeb873889f51b595fe9b15f58c044cc0dbc12
 SHA512 
c6eec50f0ee685afabc281ca04a405064d2adc94790fb066a5ad850d45fef647acccb0f77de3509aa8fa9d91a0ea1e3d446cfa60c848c5d15fcd321c7240bd9e
+DIST firefox-108.0.2-fr.xpi 579481 BLAKE2B 
a41d4f1d387ff303c5d53bbd6185148b682728a07f2d48e1d439c9f9389b4493a90be9ee61b2ecafc2011dac9dff81cdf20fa610dbe17b4536ea152f90deacda
 SHA512 
55b3a2f2fbc1f9ed5531c572e63f4d2923202ee3eb90c6685fccb5714c272b49cda8d546078ac757942e7220d7bd9e152005df5db93e5a43e72d115b13a8b9b5
+DIST firefox-108.0.2-fy-NL.xpi 563341 BLAKE2B 
eb7673dff03e67688556001cc208898178f2482e71816f6ef55f96755effbc795fb58a52a1902301162e764f674d89e41459b4a6acdd560b803f71b6e99b4b38
 SHA512 
4d3091660b3470db3d16ba125edbec4d67d86a334e2ff5edec3cd7eb53d036f58b8d675e2f681a8c19485f777bbb628d8804bd54b4f7fa49b583c9958a8757c0
+DIST firefox-108.0.2-ga-IE.xpi 470255 BLAKE2B 
ec5f41f4ca2d98fb3f5266167d73a11ae0c97623a75376d36417664333f13c09f13ca545cf9c42b3a8e72adc9147bee94e4a5a681391ed0bc57064e70a60b3c4
 SHA512 
e08298dcb0d3a4073791d0ce970598c59891be453f3d5b66f6925085861ccf053ace6447000b9c09e26d1c7199bc942b6c29cfed7c9643732f88c633e8b93110
+DIST firefox-108.0.2-gd.xpi 548831 BLAKE2B 
de6309cca6065c6c1fe43f0cfe3111aa5abc43207cbe228341b537b0904a22d530a04db2a313eade2f40689c3fec1099bda42f36a3c393e61e95220318c8ba61
 SHA512 
f5b0cb9286c37dad2e71d541b49bbcdf8bfc4e6deecdfd7aa7227c93c42b1ec177242c95e2a5bcda6341243aa55617b924e6d0ade74bb97bf6b8d42c8052e009
+DIST firefox-108.0.2-gl.xpi 543433 BLAKE2B 
aa02cc4412f0976a9210782ad27071e456e3bb3e3a35207df7baeac304f92db3a94936321660236077da0af144b62f490aec32d9f492c1f967455ae5bf011c4e
 SHA512 
cecfef1e7e40ff907063a1fd560ad2ca79e2e88dbf696c0a9d473ed35aa7f101cd9643dc1bdecda797f7552f35477dadf6fd9112da7aa8a6d34899e0db6951e8
+DIST firefox-108.0.2-gn.xpi 578518 BLAKE2B 
4309bd61a686cee2f70cb66262558d6f309e2d7af5fb2664b63e40a21d5f3d62f8570742c3e19b8809f614f4cc2676c4b891568af164fe2d764f6a072d7af89f
 SHA512 
6dd617956ff3a720217adfbc2784015b3a430f8687877604cfdcbdf39ad5bf0a5d5363073756fb4cdf0984a3cbc7a6aa1e17c67a2259a06daaa96c7de2dda765
+DIST firefox-108.0.2-gu-IN.xpi 529444 BLAKE2B 
70ef657a6d96f1f0f2b8d856026a52df863cc4670afe992d0460dc5efa81117187d38c71d12ce60b773e3701fa50bff0876748ab88e262696ba13537063feb4d
 SHA512 
34d3b8957ea4ac0d7e1a22a9a54b35788382184a556812ab799b45d9c634d34bd544402830651813a88061aa9005ea6fcfff2ec5dc84c31df633b8926c8cb662
+DIST firefox-108.0.2-he.xpi 573915 BLAKE2B 
824d6bbd21f54beaa60bc35d8daeeb3cfe2f609aa7d4019a58ad26807da9dca88782578cbdcbd7aaaba4271a65997190af9aa1e6b9f4e14631349c6c12ac5aad
 SHA512 
79aa5acc0499f4996817e7340737dcd8942dd234914713845ecc8653884e2233eea705ec2aef2989953ea02f97be044f49c59588480c95538c0e8621fd265103
+DIST firefox-108.0.2-hi-IN.xpi 558584 BLAKE2B 
6a5d8c59e596eac909c55baab079f17032ce0c0104a074b3a22cc39dc29f33e919e972955a657cf35cb0faa02bf545d23f9d47cb73456522f07c8e99e31a7b9b
 SHA512 
fb5009f2bad35b906c09b1331c261907caf26bde81f2eff74267d2930a3c0d5d3fab1db0ba7f6749cb5e57e9fe9f8efb2c6022cd9247f2a2d95fe08ad1b8ca40
+DIST firefox-108.0.2-hr.xpi 538316 BLAKE2B 
b070f1578f851ae0a7031eba0712dcde80b623f9745ab58f5a86a703bbb16d785a2a9e75615d21971b9217917d26d6d30eed05619dd86819f02a246c4a0c0481
 SHA512 
946bd5891cc03ff2575b49172460a5e7aaae6f8d46b6a871b21fe83c71b0421546a095a1eb3d25b4ccb139c7fe96286036189dc37a6045640a4b3ecc24825c3b
+DIST firefox-108.0.2-hsb.xpi 581695 BLAKE2B 
f6d97d5af1689773ab8b74072e3244cb0060030a6b764d9534b08ab9dc9f969633b8f5972b72b09bb1a8bb0386339cecc6d9fd0f4d4e1ebacd5ff91a36207285
 SHA512 
6be0d3d833656d5e591be93d06cd84c95a7d8dec3e9ec9302177dd5cc3fffc9d28583c6f0bedf0366ad51a7828382b1cbb3b9f82e8efb61b95643243f8b8626f
+DIST firefox-108.0.2-hu.xpi 587855 BLAKE2B 
e0062861f6f926b5450f4a4a07a3f2b6aa9e1249903f7f4279be345977e09e5ab6d26c9931c06e1f35f4fbd916322eaf41fc7577220a1e98464220ff3371a4c0
 SHA512 
67207ab8c4a6a3ead43699e19e952a1fb90fb8b95de785faaf3e479196034eca3c6a7311640edc8841a4c440b40dd517f148d14c4ec439a8bb4e729b3c1ee9a4
+DIST firefox-108.0.2-hy-AM.xpi 594652 BLAKE2B 
da131950ade7e123c8a5fd84a82c2369026af7c997bad00baf78b67963b74a431558d7a1cdf3a4e6a8c7d51bd08ce77dbb92a37462644e9b79d64b947a5f072e
 SHA512 
a0e50cad6f0929597ddf168c42274186fb0f0dd217b652955b0681c87d93d7d30c52b4f4800c56b7464e2abe64498760b8195c74a44c600b3a57360f6c589cb9
+DIST firefox-108.0.2-ia.xpi 551764 BLAKE2B 
2d709c8bff54a877aea23351527266d8166df327571381835684aa1102d8a69cd03bb58200a11ef62858a7cebbf1cddb34b5288cdbd4021188d3577f4031f8f2
 SHA512 
fe5b16c833fb66583b09cfa79b7adee82a399d12498b77b87e0a84b6c77e7f648c9ff31c3d2d16ae505f82a2f3d93b04a1b5848e4822f6c2042730b88208c33e
+DIST firefox-108.0.2-id.xpi 548616 BLAKE2B 
3552763058e1da4739b2ab8449a1ec8de361e62848aef92b25a7c23f0ac9bcba5c1eca59d3b59e72cf5056de08b3f8f772566805974639ff12019f138b4397ea
 SHA512 
504394c78b5879e27fa7db57f906d86f483a121bc3dfc307bb788d31beb7040e2a9ecdb1fc06d69f253859360782e683be82ffa2884a97ec83968cfcb0f8f396
+DIST firefox-108.0.2-is.xpi 560749 BLAKE2B 
4344f7d2d794ad131f961f36b4ed3f5285cae314b0381aee1fdbc86a5b659ed834767dda8b945f9f77214121425d0c7231a67335f598436868985f85a915808b
 SHA512 
4c8b277dbc64b4cb837ddaf2e28ff9f4b748936e1e090dfb24df3b3b89dac7cf4693a5429b4488129ba7dc8fc1bc0c6908dcd810c84e38dea82d44fca42f8a01
+DIST firefox-108.0.2-it.xpi 488836 BLAKE2B 
3a05c4a1abc4cd81985039202d1eefcfbf2435dbd0757f7c2322cb80a7cca8d88678d28469c43f9e7d0448a3b52fca27c174e6a4c697e2184a1fba326e97ae8d
 SHA512 
14f8653b1c9737cf2cd0af7b0c7b7f9cdcce8b2114fc05a7150eadff7311b9e84715565d5cd87bf4a894a1f6d739527117fa7989fe10ffcb5b5381b7d86c542a
+DIST firefox-108.0.2-ja.xpi 612106 BLAKE2B 
d9101041007333d3f41c5a0aa48fcd4040d3537266be3063087f1b4e81b0e074f68176e88eb45249e15224475e9539d44288b323cceca580e973d3ff73ec4476
 SHA512 
a52c921a48200a3c763cd8e2ce02c5eafb18a084c0b2bb3cd9fe41fe26b45fd623bf4391b64899d82d14b9bcfab532e717aac89f00f6bb5f3226aa54dec5220d
+DIST firefox-108.0.2-ka.xpi 616446 BLAKE2B 
455044325aace350015c8c0cca9ed15b226774e6a018c9e71cef63fd08f230a8f6644e6511a986e47cbac025ae1569484b5e3be486ddb08f75bdadf63ee025f3
 SHA512 
f5e2c0f8183042c1329fba0bb7e74951bff307df900ac115655bd42d92657dec3602a27ff588d558e4c21ba90ac9bc541f87dddf3efe4b97fed629e37c672cfd
+DIST firefox-108.0.2-kab.xpi 569588 BLAKE2B 
07d1d0048930e3b8448935b36e65ae9a002a1a96b82269f9e533a72c50dabbeb1b9272e56e5c0d330e03fb43d9796180a3b1634f6043e05a93bf76c3a236d9d2
 SHA512 
f99a14a9e0d58833641b5928b57c3b8ff52cfb8d7774ca129c9fc2d0144fd80533214f3f77b1743128e900224342ea9e021c5b8fdc8d8445395129fcec3b3c24
+DIST firefox-108.0.2-kk.xpi 639489 BLAKE2B 
d198646f6396bf54864b6caeffd78cb032393f624e1885c22aa967c24781579cc3fec16561b88bc8f4f1172b511daa72d30c47d7abfb0f892224961419c2bb79
 SHA512 
3ab50c41f3e9118c54465275f4105bf5e4b56e2096eed4f43f4639ffe72cff64b05e7b1790c75d4d54eacca1672dcba382ef741f7129aa1d0182a7c387f00f4d
+DIST firefox-108.0.2-km.xpi 531206 BLAKE2B 
a57f365da6ea5f55d31dfe5389dd18b2cf5f0e37779acae8b9db590397509cd5a457fdadae3b38eee88baae84897ab5e6157a7d83e51488a4db94e3e7843dbdb
 SHA512 
09d7340db2aad88866d609709ce0b97b12d04fb35eff43249720a808e56f04be0655df5b38da3ce06fc541056d0c424da8ab69e4ff3f749f2984b75fc42f8458
+DIST firefox-108.0.2-kn.xpi 496778 BLAKE2B 
37c623199cb77898ab8a456edd0c3d11e77b60955067e8a4f3311fc5a8ae351b50620f6c49b1bfb193cf8c1a8b66c73bc745e4e5e2cd78f0aa50b76063cf96ae
 SHA512 
a2505e4b0bd50dc50714346bf8c362655fdc82ed1ac3f3769fff69ddd221191a408b472b9d8bee09185e685ef10e629953fe0a8b1d836b304a6adf617c99a0a2
+DIST firefox-108.0.2-ko.xpi 598494 BLAKE2B 
98d11ac0dfc967c42ffff21f7138b45144a8e1c0276386e1d80cf8acccbb7483b69905348a1e31a5c5c0a1646be42b5acfd621008d5570b11c09b5de4294f5cc
 SHA512 
e7a32a7c0326cd7413aa1eb7b3a407605405b96dcfa3ae8836a3e345a31b69d83aa14abfa3ac4c442323c00c2eee66f444524544e33d854da8966855e3722ec8
+DIST firefox-108.0.2-lij.xpi 471419 BLAKE2B 
1a3d50a87eacad3c85ba5e84fe8fcafe9c4747cbbb635562d81f2eebfecf8d89494b0b3dabe557831f852075f1172be7b8d3ab4d0b5c9373cb43f3078a09ad96
 SHA512 
d95895e346d2e33e2b25a23ec52ab5717933d5f2118e5c36d1975077b0a8f9ee356b74a2d30e3ce0b2573b4527097bc9b218cf9f160589998930c43d409f2239
+DIST firefox-108.0.2-lt.xpi 566420 BLAKE2B 
c7659739c431b90f88b0141585e131f9a4cb252565ec2684cfe4e1000fa29f69a9a18f6bde99f9552e06c0e6221dd119fa65622bbf14b512d3931ad6a2be8078
 SHA512 
0b58ee7c41f27a999c46375397c47b6163eae0bb67007544c7aa401a4481af6bf8f987a695546ceef2749e93a5dc7172a35a8e41f6118c9dc5db8040362869f5
+DIST firefox-108.0.2-lv.xpi 466199 BLAKE2B 
84e68c830819c8ff3434c4b85b80afdfcb59d2ad30846fdac14df0b1c03bbec39f440ffecac0175594a54d4b30bd91b26ed4dbb4923d8ccc0011fc55914f561b
 SHA512 
e4ef1e717b00e190897acace23b33e45c63ad79f50f0969ee4a010629571829ba685e8ef90aac51f507ad09da2a2f6ea285dc36bc501084be0583d6a6ffd1163
+DIST firefox-108.0.2-mk.xpi 485634 BLAKE2B 
9e5e0837b0e1598690fb364eb2157ddb1b2cf5882039cdc293c5b785ea52e0efaf6e177beed87c8ed361addb0530432082db745cbbcf078415575acdc94d543c
 SHA512 
bf9324c1b243d1f5e5ed42e2ea358be4920dd39edb5372e9864b062e0971085e3dbb8d0faef2851ab87e228541037cd5ce6e727e147c2f13cc0490f16e457a1a
+DIST firefox-108.0.2-mr.xpi 531998 BLAKE2B 
782411cf8124804f7a8325d70a3690c02853d72b45c26a3f368bccfa85540ac719868cfc67e32f0b0aa42b7cc16daad44a96863071955500af631121f4f59fc6
 SHA512 
737ece11efde388246a30b8d574bc2c2f41db4114c03d6aa71af7f6494931225e788eb848826533add863c7b48ced26e9c80a5c4ea5212e9b11ffbe40e4be9e0
+DIST firefox-108.0.2-ms.xpi 450666 BLAKE2B 
e589aa510967d95ecede7eff2d40db11035fd502f19a6be48d3f3f60e5e4bbd107a5e8b87aeeffb9f5e30f217e7bb93cfec54a838995b50c412499e86b0c3b03
 SHA512 
97e3416545cac59d07277b714b783ed6f103773471680e99fe067cfa9999a1b99a79106bf20ad1a211162ebfefc26165278d0f426f8d4c3cdf0ec82597fb3ea5
+DIST firefox-108.0.2-my.xpi 517679 BLAKE2B 
a8ddce4d313ceac260b9b178fe19208aed3f0335a21d6a0d98dbc682c5a636774341678859ae7153260adea1c3ff0f636acde4fd527f85dc78c404a59af81278
 SHA512 
26a15f83a029c2d44d94d7a5125601dbee5a5f88c510d15c0ef939243a8a21af120bcd0f9a92a18f8a107c63998afdcb54db6808d8d1347a34b7b2c4d42e3eef
+DIST firefox-108.0.2-nb-NO.xpi 549692 BLAKE2B 
c8c5cfb9241d703462fbad1fb4b52b6d50d203db385a17fe0da2265ec8de42f2bd466d72420665ea962f9eed3d85b57a3f3a4ae873ecfd30ea59cd0f0e2bdf3a
 SHA512 
e0173f8416ff9a6be4a1695336ae4d15d665db8719c72565e6ee2fea72c247b9b0e175b2944696ab92f9f944550b8fad2e1f6a52a8740fb73d7178f46f0c2799
+DIST firefox-108.0.2-ne-NP.xpi 485228 BLAKE2B 
ec5c22789a7609ec6c4301a4074b7057e6f5225a929034b38a71e225a23f740a0792f1415e435eaa496c05075c9f49cb8554848c6e492d49e2795dc7c1c8890b
 SHA512 
151c62dd190ae997ade94c38125a8aa3b37348f2550c7e3f12f2133a276118208da531137f3cedbb364b3baa1058269555b17dfce7772b83a9d195b7a8fed65d
+DIST firefox-108.0.2-nl.xpi 557507 BLAKE2B 
73dccaeee1fd4ce16cf36d003622cada59251471db31c5fd52a07aafca221f3addd0ba4c83b0a8333a2fc18be969b77cb0dff6f617a125c5be0281c2a4035a95
 SHA512 
679f250329de71dbc09d9ecba7d0088cd485bfee7adac3174d7d7641e060f39522a527668f6ea4f4567b28b7c99933a6960f74b7f4cba49a0edda27333628c21
+DIST firefox-108.0.2-nn-NO.xpi 550020 BLAKE2B 
d8cff51c4c59bff45b55b4ca66979a5f3f030093704858220cbc0ad9e5bdcfa0cfddb3325e99f82e6326087e7409b04506bd8c224258d6ef91f951ebb94a4067
 SHA512 
b1b4875249ef2f1f582c49521aadbc01f3ff041794ab040326611f276dde41bd527a5a2b7114cf5c1d36e1fd58cf0af4eee46ae5c2ae6e4ce3801e1811171861
+DIST firefox-108.0.2-oc.xpi 574022 BLAKE2B 
35d6199a42688db9c52d8966e83b4589cb6b4efaf446126f3981b454f862ad2bba7738d0598a9c210e03d090181c5d40ec3cf17e1a91aa49c736921de1da506e
 SHA512 
324430a39862e06fa24d3f7dbb21e668c78e221ddcdeb3daf47b97bb5a66927df9c105aaa554e3f51386616eda27a0277860d7ba7a4a0958f91166cf9c846b6e
+DIST firefox-108.0.2-pa-IN.xpi 625818 BLAKE2B 
28baa0b5b0fd6276c14fd324c9c78f69c9ec7b66e268d0f25d226f57142e056ebfdb905902c5623218c29f51b71db89af6e4d2d4794e43311179aa772b5749a1
 SHA512 
f4970b6055369e631e56661c06bee915c3a1e88b4fcf4a71694947b98d1a49742b0104a560b84d55cbd6009aac3d02718e5ef0929f675f27bb9e549393ca4483
+DIST firefox-108.0.2-pl.xpi 579963 BLAKE2B 
c55d0fcca36a81b914fa9f03a2dd5628c208a81161d19a9511cc80dacdb763f6f4d2e1422097ff66d02e2e16dd2f790efcec32b4b3a7690c6f67b9dbbc461d5a
 SHA512 
c2c926f4bfe736e4895a37403c7003572ecff4c43920c48fb7f71662095beae7103637e77049ee38046f395a4241a1369aefcd6dcee19743e175176b8e6abb7d
+DIST firefox-108.0.2-pt-BR.xpi 562413 BLAKE2B 
d3417467b0ba9525ab5f81b15d16ab8862ca09717a354a2e8a80e74f336b958603c8c60da6953ec0440699e910b4032a30f4276e459bd3246ab61999bbe2206c
 SHA512 
63f06daf8586e77f1746bf891cfc65a0f11ab6dc754f1f4de6322ad1ea0d5211a2a2c0af1d25b4c271a0a55cbe52cebde1065171dff1012fcd6142be94b11ec7
+DIST firefox-108.0.2-pt-PT.xpi 567186 BLAKE2B 
e5e8892547f31d1d152884424338942dada9cb6898f6cfb32ec09e62730bca43954c7e3dafa0a994cca51431cf015cfb0ca950dd5031aa41c48b3f5bb777ff70
 SHA512 
88b8faeccf7b7c8271bb59aeb2ccbafef329980c76c00b4e7bb14ea41ba265d69674582b0544a8177129b261ba39b3c20b26630e606b311169da63bfa01cc733
+DIST firefox-108.0.2-rm.xpi 557267 BLAKE2B 
caa4e930b86213eb0c5d3f07acd36ba7da1a71773a68fba57a894fe46987edaf580abf1a5cd2c5d6a51e7ab966b1511dbfbfcbcb562ecfde8fb5941880318c38
 SHA512 
50f07da7c05e07e5947d652846abccf0abe59353e1104df0768ea41d214041dad111afdce86f2dc7a316c3994513729eea4f3caf54bf7254697a4a4a615d8878
+DIST firefox-108.0.2-ro.xpi 534115 BLAKE2B 
2bcef6216557d73065f8ea5e91aae0ad956711fdeefa5b97c28be12f07ffeb5327155863bb458cee4b674f9535bc8e864cecc79de604d881791021f3d31144b5
 SHA512 
c06bc81f3a2d34181323ea78a5e617571b50f375178eb5ac26c989b6b16f554eba4eaf5aa7e00502fb031c088c93833c06615e1ac3804277c59ed639f3a161ff
+DIST firefox-108.0.2-ru.xpi 651328 BLAKE2B 
58fe64e52c29a197cb5f8f17211f9a0222949f8e34afe8baf21d2bed6811106ad7812bb25575747d5c096363636144b0473b1401006c67454409bce40e8ab375
 SHA512 
147a37447e31a43aab428f8df4884bdafbba5ae465be684dd1f8ccfc18b384d213fbc63b6327f40fdbcd88354b24f691320f6e8cddecab7988fb7acdf80ef970
+DIST firefox-108.0.2-sco.xpi 505172 BLAKE2B 
1da36b01e6ccd4cba1bc4eb14ba98cd7d05a1adaf799d78574f6247eecadda982a5e2475ad8a200b1419f78a06de52b1998b2cff50f1e97a5514431d0dea2a8b
 SHA512 
e7ab13377a92ce03f73fbc07cf35092a3680f83f801c63cfa9806bba04fcdd6de7f4ec12de2891224cf54a87b6280b1eb52a7355a2530b6d38585e1f8ee6ac22
+DIST firefox-108.0.2-si.xpi 572052 BLAKE2B 
4589468f8c9f8527aa49883621d606d015a23e8d1cdb92552beea08454684bbaf09ef3414362cdc91466c839565730aca3c666ba3ebd83ae4033563ccb82d06d
 SHA512 
b222eb4f901d3fe6f0782b316ffe4471118c5a0ed5d3e17af3e5b530edf0b45215e73894e5f6cd46ab4bf5eac1bc858bf018cf0abe87b8e3862d1abf436790b2
+DIST firefox-108.0.2-sk.xpi 587676 BLAKE2B 
77d1bb4b36d0e5e8ef7902aa4bf3892b58d221dcaa029922712218ede588dc626496e9f24c6d460b76e2e3c5f4fc6618161f087c383864264abb28b4c43f2b5a
 SHA512 
c7685f7ea0f519c20a1110d7c83ba194b036ae89f43d1e071d000bf8cb63919ef010c542988f7cbd1e099e87de16f463b4c0003c35bb23a89d5e4e65b3662d5b
+DIST firefox-108.0.2-sl.xpi 559754 BLAKE2B 
524d5eabc143b2b2b8dd1f119229129e102a4460d86ad5877e85b4123dcbe86d2bce1f70c189098abe02710fa92fb641d9ca1c3a01a611abbafc8c4898280d1f
 SHA512 
32f290f40669f2054d9737e0c2ce5b8cd00f98fbf37cad890f6b32a6efa0052ca92cac7f444e1146dae29afd4e2b28548fd3503ee6e5660aab15cca8319ad804
+DIST firefox-108.0.2-son.xpi 422457 BLAKE2B 
86049a91dddbd36b3e1b03632fb73fefefc328f912515b7ee5d430de2ef8188ee51708c1cbe2a71d8bd3a496ff34d504e31bfaef48d7263452cc27a2050ee32b
 SHA512 
c88c55d8779fdb7b3d18ac348db35cfe72f0eaaa903eaf10eb31238a1fb0fc701c0989ae20deb158aef342239fd5bb64a90d1f36bfdf54eda77376d5d8d113b7
+DIST firefox-108.0.2-sq.xpi 574789 BLAKE2B 
723b529d967f183c516dad23ff298f1625dd7274ee4f4e94a7039759c1c5719442bd13146a17ee2c1776938492c40c3b0fde95a2175b0c60c338e59cde236b7f
 SHA512 
2405a8d6546868cfcef61fa8a10c1dfd13d9ac60be0bfca6e1eaccf4cb24f360a643b29c3df919a6762208dbdccb2375b1b1cb21300404d8cc97e59e2bf002ee
+DIST firefox-108.0.2-sr.xpi 615014 BLAKE2B 
1530bfab060b0c95fadd575f18f1207fd693e3c6e09515690848a983b3c4a8a6132524d166bc69796de1199398dc108afcc4719a187b4890d04e181c3048b535
 SHA512 
e354ea9614374a566e28e3219a2a9364cec490234a48d657346108b05958b7f1db8233f9a8e2ffc5fa9d25a8a4a3eaef32c8154200e28a885ab8bcd393c94806
+DIST firefox-108.0.2-sv-SE.xpi 559345 BLAKE2B 
a27482ccb9ea6e6eac49df0264c7e614226f47cef0b534363931f00d0d4ce7d7049d94cff44a2e394b2c3da947c820301ac4bf44bc0c1bc0f6de77f083753e30
 SHA512 
fbf0d14f8ec38581a6e1dc864a8ac1e6f1e3cff469331e9a85ec9f56379d64d019f1afce1122327e64d0698ebe6c17c63833bea47669b7bf2e916b5c0dfc9bc1
+DIST firefox-108.0.2-szl.xpi 518195 BLAKE2B 
0cddca3ee99a3463f0292d2c29bdb50246b9170cff5744067ab17be5c1bf626375a9bf53f77b5bda2e73df69832e642d056f1e159c7fc8741c8620ea6cb76feb
 SHA512 
e41b9bb8aa9dfd087d8b51119974092bdf2e2c51ac2809ed73d15d9c830cc56a8b1c82a0aded834432cabad41c71e83766cd2e8495062119b8a741e5345c38d7
+DIST firefox-108.0.2-ta.xpi 509735 BLAKE2B 
36bcf64e5813bc200b8892052e131f518c448681f81f8a209568f137d6fcbb9d9141ba1c26efdc548f34e41895ae2d4a95c5e903d02ce851ac824c39376f905e
 SHA512 
b6ffc197d4d6605bd6f0fdcb443de63f31772d329070a4dc66bc38de40f38ba107942bfa3016192ca625c51f3579b6cf74cdd3e6c885bda52ced1ac1b31efdb6
+DIST firefox-108.0.2-te.xpi 556974 BLAKE2B 
cf0a63483608540f6a9175d5475841cc2f5f79f9d21775f6cfba2e8d84fca5a426cf3a5f1cce82c43a343f581da5c2105ecad7431bff20cfb1090236b13fa869
 SHA512 
1d1568ac561a6289c2b66d591c46517c3fa1e1f384bd1323cd666f22de54bcf73a4eef1e9922698dcb90d63a9be25cbc4fb7159bc2fb8d557d17b1f7adf10754
+DIST firefox-108.0.2-th.xpi 627886 BLAKE2B 
77914460218e18b2c5bbf92f13195f824e9b16df2ce8ad70c5d1530b9a193c27c9db1772dc3885401e87e726dcb8627208c96620de66c83daa6937d228d60cef
 SHA512 
a20ce62d234b9c1992c213818b54b45eed753963e5327ee7c430c948a90af4f6f0450bac92f40c0c9136072add833a2e7febd3ea1be97eded6c4dd16fdd9789a
+DIST firefox-108.0.2-tl.xpi 522751 BLAKE2B 
0ff9c30125ebff9c2cdc60c3e06bc667e8f1f004680f47cbcecfec8756e4e072363fac1ddb1db3b6de4b83c5eeebd8e631cdd2850a30baf14ff99a89c25ef09a
 SHA512 
9b841211d34c2bc6e408364417af1a10bc4313dfbd1322ce1a4c9b4fb25e5dcc4e84be91f2d180bc178c58ed494ba2f6c725916641197d516736881b30591ef5
+DIST firefox-108.0.2-tr.xpi 573050 BLAKE2B 
7e199a10e6bd12602c872c40fcf2bfff59083de6c1d8ac06ee62e400970dae3410a80a5210fbd4179df6b10f738c984ebb2167ecba8decc222b20168f31a528f
 SHA512 
4762633981e0de7f516a0e18d10771ebda37b28c34f64dd9522781750db8a3c0f23b1fb4e88c52dd70c108dc409ed3e97e835b56663b54ad142cf64904e3b442
+DIST firefox-108.0.2-trs.xpi 487410 BLAKE2B 
8f681bf9998beef1ad92811dc0edfb688336da4a919152d3a1d9c9680910fe4708d6037e0d3e08f5a4e4bc1f5a6b8417a77705d2aa6dc3778f04df86e95b2a9c
 SHA512 
ffda66641e773a77241017492d2dbaa8593d96e8c6f26fdfdc45ea3df901224495224e47e2c0aa725e16cad1db7884e1b9b23e5ff7ec9a103a85a25ded43c472
+DIST firefox-108.0.2-uk.xpi 644541 BLAKE2B 
85bab25574315584251e0c04ab385e1a7760dcc868a1592c88ee24f0dd8cd9987adc8e3aa7e712e5b7e816f025a6085b9abc4e533225367ea5f85245de562fdd
 SHA512 
67565f1a87b9e74f71322ad68830c8ec53588882bb94e76649051ca0608db782c1a76f8216910f938fa5b9b299fd02a88038075a4646710cc6b73884dec46b9b
+DIST firefox-108.0.2-ur.xpi 559044 BLAKE2B 
f25d371fcc7f54d410be51c281e856aaf6df27ed20f432e0c6ba1578d1fcc40dfb198e2db99b364a64ce421361fff6610975e9dc26d2f84e34aebce031cd5bb4
 SHA512 
a083010d20f1523b0516a906c3a9534386db7a805911932c4f66b0b42ba0af1859d9ac6a890ff37ea8d939d0b8f8491aa86d9473bcfe666b3b078b4bc62a00ff
+DIST firefox-108.0.2-uz.xpi 478516 BLAKE2B 
5cfc77860f9a8415ed307c2c69a4167745e8df8cd1f4ac3ce0ba7e4694cdd99d80ec14bc724aa1d5b50d35d59a6afb469bfa4b0832e9b8d615c818a5152a046f
 SHA512 
f4cf153fdd317544e16c29199a3383153ea68a9e2e7c2bfa96e0694ab23bb1f44f954ca513ac5504a5756ef3b294a0a710502eebcb65240377b80030d7ebba80
+DIST firefox-108.0.2-vi.xpi 594804 BLAKE2B 
309c4603e3e61227d3beb4a64c9a26510c90227f1e6be0907d2e42db2a18c483c9d46ba1679f53278a39e5b8cf54d81f2ca78a66b90e24f40a4de5b8ee58013d
 SHA512 
fe223a5764f7148155191e667f7fe9bfe472d08c68ec4d7b3d44ea67ad9d6b83f984835866f8e62750abf49f29b7ee12397c7b8abe8a95c9c8b5966dfd262e55
+DIST firefox-108.0.2-xh.xpi 418360 BLAKE2B 
347829edcf2de37df146ac3424fe11c1ed9574b0530dccf4695f805d71727f0d9c14c5c903f24fd1e2e3523b7a3450afb6dd5251e080f3508dcf372658eade09
 SHA512 
527172bc8cea3a7b006942f941be59924644017b47e72fc0227873f4c8e8af0e1e4f9df6113b58a9e06e7e844a62d458c093e604acf692933146f4ed464abff7
+DIST firefox-108.0.2-zh-CN.xpi 594362 BLAKE2B 
290e6af6349cf6c0f863a1c60dbfcd096ed289df0e6f3f37a5e9699a486fb8a03d946506d307a90a3c977be7955867cec5a380fb940160cace64bc7006ef8b6d
 SHA512 
b0a24d9152677fe6d2155e6e47112a22c246401a7c7c9e3a278e7e90c510151f6e1caa5bfae964d7f3f7f44018e9196b454ed660310f929123e751626c24bb7b
+DIST firefox-108.0.2-zh-TW.xpi 595831 BLAKE2B 
d54dd8100a1ee6adbc7447430576d2aae7a0341e12ff472cc81250905052b1c9736c1b86df41b11343249a45bf340122499a05b3523e9ceede7bc2e8e7776e15
 SHA512 
c63edc0f214319a53b892d84fc81ec64008e1639e2c440333c5c3bbac57191636563a702be9402beb9a72b81c4d4e1cbb2205be76666c3a5adee3e594e0b9e3f
+DIST firefox-108.0.2.source.tar.xz 509638740 BLAKE2B 
8032c4250c975dfbe159eac8db3a8909c45b9ceccba206f7a5aba9650bcb40df658a50890efa5572d9cacc22411d6f1a2253905fff2d0791604debfebd986c29
 SHA512 
f856ef034fa4a526e19968aed092c9ee99e124d2d271ec1c1bbd091d9a03e23293d69c7a9ae17c43258cde7e73c294534b471e36441e576377854f607c9bfa3a
 DIST firefox-108.0.source.tar.xz 503688784 BLAKE2B 
ac8e5d613899df4634d7126735b219938b48f49c9306c09eb1669fadcc362f6d492ec3cb6d8a8113eced73fc3351c54d6e5d4ce70b1c77a3a87db22adb76ce81
 SHA512 
fa800f62cca395a51b9a04373a27be48fc3860208e34ecf74d908127638d1eb8c41cf9898be6896777d408127d5c4b7104d9ee89c97da923b2dc6ea32186187e

diff --git a/www-client/firefox/firefox-108.0.2.ebuild 
b/www-client/firefox/firefox-108.0.2.ebuild
new file mode 100644
index 000000000000..1895c886940f
--- /dev/null
+++ b/www-client/firefox/firefox-108.0.2.ebuild
@@ -0,0 +1,1330 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-108-patches-03j.tar.xz"
+
+LLVM_MAX_SLOT=15
+
+PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+       llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
+       virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       
https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" screencast? ( wayland )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:esr
+       screencast? ( media-video/pipewire:= )
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       || (
+               (
+                       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] )
+                       )
+               )
+       )
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( virtual/rust )
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       sys-devel/gettext
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               wayland? (
+                       >=gui-libs/wlroots-0.15.1-r1[tinywl]
+                       x11-misc/xkeyboard-config
+               )
+       )"
+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.85
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               dev-libs/dbus-glib
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       screencast? ( media-video/pipewire:= )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       system-icu? ( >=dev-libs/icu-71.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+       system-libevent? ( >=dev-libs/libevent-2.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? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libdrm
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       dev-libs/dbus-glib
+                       net-misc/networkmanager
+                       sys-apps/dbus
+               )
+       )
+       X? (
+               virtual/opengl
+               x11-libs/cairo[X]
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               x11-libs/libXext
+               x11-libs/libXfixes
+               x11-libs/libxkbcommon[X]
+               x11-libs/libXrandr
+               x11-libs/libXtst
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4
+               )
+       )"
+DEPEND="${COMMON_DEPEND}
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=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 ! 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}"
+}
+
+virtwl() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+       [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to 
be set; try xdg_environment_reset"
+       tinywl -h >/dev/null || die 'tinywl -h failed'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if use pgo ; then
+                       # Update 105.0: "/proc/self/oom_score_adj" isn't enough 
anymore with pgo, but not sure
+                       # whether that's due to better OOM handling by Firefox 
(bmo#1771712), or portage
+                       # (PORTAGE_SCHEDULING_POLICY) update...
+                       addpredict /proc
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       use lto && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+       ! use ppc64 && rm -v 
"${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # sed-in toolchain prefix
+       sed -i \
+               -e "s/objdump/${CHOST}-objdump/" \
+               "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py 
\
+               || die "sed failed to set toolchain prefix"
+
+       sed -i \
+               -e 's/ccache_stats = None/return None/' \
+               "${S}"/python/mozbuild/mozbuild/controller/building.py \
+               || die "sed failed to disable ccache stats call"
+
+       einfo "Removing pre-built binaries ..."
+       find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) 
-print -delete || die
+
+       # Clearing 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,
+       # AS is used in a non-standard way by upstream, #bmo1654031
+       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-tests \
+               --disable-updater \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --without-wasm-sandboxed-libraries \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${ESYSROOT}/usr/include" \
+               --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+       if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       if use ppc64; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       if [[ -s "${S}/api-location.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-location.key"
+       else
+               einfo "Building without Location API key ..."
+       fi
+
+       if [[ -s "${S}/api-mozilla.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+       else
+               einfo "Building without Mozilla API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-harfbuzz system-graphite2
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+       mozconfig_use_enable libproxy
+
+       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+       mozconfig_use_enable geckodriver
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+       fi
+
+       local myaudiobackends=""
+       use jack && myaudiobackends+="jack,"
+       use sndio && myaudiobackends+="sndio,"
+       use pulseaudio && myaudiobackends+="pulseaudio,"
+       ! use pulseaudio && myaudiobackends+="alsa,"
+
+       mozconfig_add_options_ac '--enable-audio-backends' 
--enable-audio-backends="${myaudiobackends::-1}"
+
+       mozconfig_use_enable wifi necko-wifi
+
+       if use X && use wayland ; then
+               mozconfig_add_options_ac '+x11+wayland' 
--enable-default-toolkit=cairo-gtk3-x11-wayland
+       elif ! use X && use wayland ; then
+               mozconfig_add_options_ac '+wayland' 
--enable-default-toolkit=cairo-gtk3-wayland-only
+       else
+               mozconfig_add_options_ac '+x11' 
--enable-default-toolkit=cairo-gtk3
+       fi
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld when using clang
+                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+               else
+                       # ThinLTO is currently broken, see bmo#1644409
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+               if use pgo ; then
+                       mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+                       if use clang ; then
+                               # Used in build/pgo/profileserver.py
+                               export LLVM_PROFDATA="llvm-profdata"
+                       fi
+               fi
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # This is upstream's default
+                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+               else
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+       fi
+
+       # LTO flag was handled via configure
+       filter-flags '-flto*'
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+       else
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       elif tc-is-gcc ; then
+               if ver_test $(gcc-fullversion) -ge 10 ; then
+                       einfo "Forcing -fno-tree-loop-vectorize to workaround 
GCC bug, see bug 758446 ..."
+                       append-cxxflags -fno-tree-loop-vectorize
+               fi
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       if ! use elibc_glibc ; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       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
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+
+               if ! use X; then
+                       virtx_cmd=virtwl
+               else
+                       virtx_cmd=virtx
+               fi
+       fi
+
+       if ! use X; then
+               local -x GDK_BACKEND=wayland
+       else
+               local -x GDK_BACKEND=x11
+       fi
+
+       ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_install() {
+       # xpcshell is getting called during install
+       pax-mark m \
+               "${BUILD_DIR}"/dist/bin/xpcshell \
+               "${BUILD_DIR}"/dist/bin/${PN} \
+               "${BUILD_DIR}"/dist/bin/plugin-container
+
+       DESTDIR="${D}" ./mach install || die
+
+       # Upstream cannot ship symlink but we can (bmo#658850)
+       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+       # Don't install llvm-symbolizer from sys-devel/llvm package
+       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+       fi
+
+       # Install policy (currently only used to disable application updates)
+       insinto "${MOZILLA_FIVE_HOME}/distribution"
+       newins "${FILESDIR}"/distribution.ini distribution.ini
+       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+       # Install system-wide preferences
+       local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+       insinto "${PREFS_DIR}"
+       newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # Set dictionary path to use system hunspell
+       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
spellchecker.dictionary_path pref"
+       pref("spellchecker.dictionary_path",       
"${EPREFIX}/usr/share/myspell");
+       EOF
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+               >>"${GENTOO_PREFS}" \
+               || die "failed to add prefs to force hardware-accelerated 
rendering to all-gentoo.js"
+
+               if use wayland; then
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel wayland prefs"
+                       pref("gfx.x11-egl.force-enabled",          false);
+                       EOF
+               else
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel x11 prefs"
+                       pref("gfx.x11-egl.force-enabled",          true);
+                       EOF
+               fi
+       fi
+
+       if ! use gmp-autoupdate ; then
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       einfo "Disabling auto-update for ${plugin} plugin ..."
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to 
disable autoupdate for ${plugin} media plugin"
+                       pref("media.${plugin}.autoupdate",   false);
+                       EOF
+               done
+       fi
+
+       # Force the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
+       if use system-harfbuzz ; then
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
+               sticky_pref("gfx.font_rendering.graphite.enabled", true);
+               EOF
+       fi
+
+       # Install language packs
+       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
+       if [[ -n "${langpacks}" ]] ; then
+               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
+       fi
+
+       # Install geckodriver
+       if use geckodriver ; then
+               einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} 
..."
+               pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+               dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+       local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+       local icon size
+       for icon in "${icon_srcdir}"/default*.png ; do
+               size=${icon%.png}
+               size=${size##*/default}
+
+               if [[ ${size} -eq 48 ]] ; then
+                       newicon "${icon}" ${PN}.png
+               fi
+
+               newicon -s ${size} "${icon}" ${PN}.png
+       done
+
+       # Install menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+       local desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if use wayland ; then
+               use_wayland="true"
+       fi
+
+       cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+       sed -i \
+               -e "s:@NAME@:${app_name}:" \
+               -e "s:@EXEC@:${exec_command}:" \
+               -e "s:@ICON@:${icon}:" \
+               "${WORKDIR}/${PN}.desktop-template" \
+               || die
+
+       newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+       rm "${WORKDIR}/${PN}.desktop-template" || die
+
+       # Install wrapper script
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+       # Update wrapper
+       sed -i \
+               -e "s:@PREFIX@:${EPREFIX}/usr:" \
+               -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if ! use gmp-autoupdate ; then
+               elog "USE='-gmp-autoupdate' has disabled the following plugins 
from updating or"
+               elog "installing into new profiles:"
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       elog "\t ${plugin}"
+               done
+               elog
+       fi
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               elog
+       fi
+
+       local show_doh_information
+       local show_normandy_information
+       local show_shortcut_information
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+               show_normandy_information=yes
+               show_shortcut_information=no
+       else
+               local replacing_version
+               for replacing_version in ${REPLACING_VERSIONS} ; do
+                       if ver_test "${replacing_version}" -lt 91.0 ; then
+                               # Tell user that we no longer install a shortcut
+                               # per supported display protocol
+                               show_shortcut_information=yes
+                       fi
+               done
+       fi
+
+       if [[ -n "${show_doh_information}" ]] ; then
+               elog
+               elog "Note regarding Trusted Recursive Resolver aka 
DNS-over-HTTPS (DoH):"
+               elog "Due to privacy concerns (encrypting DNS might be a good 
thing, sending all"
+               elog "DNS traffic to Cloudflare by default is not a good idea 
and applications"
+               elog "should respect OS configured settings), 
\"network.trr.mode\" was set to 5"
+               elog "(\"Off by choice\") by default."
+               elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+       fi
+
+       # bug 713782
+       if [[ -n "${show_normandy_information}" ]] ; then
+               elog
+               elog "Upstream operates a service named Normandy which allows 
Mozilla to"
+               elog "push changes for default settings or even install new 
add-ons remotely."
+               elog "While this can be useful to address problems like 
'Armagadd-on 2.0' or"
+               elog "revert previous decisions to disable TLS 1.0/1.1, privacy 
and security"
+               elog "concerns prevail, which is why we have switched off the 
use of this"
+               elog "service by default."
+               elog
+               elog "To re-enable this service set"
+               elog
+               elog "    app.normandy.enabled=true"
+               elog
+               elog "in about:config."
+       fi
+
+       if [[ -n "${show_shortcut_information}" ]] ; then
+               elog
+               elog "Since ${PN}-91.0 we no longer install multiple shortcuts 
for"
+               elog "each supported display protocol.  Instead we will only 
install"
+               elog "one generic Mozilla ${PN^} shortcut."
+               elog "If you still want to be able to select between running 
Mozilla ${PN^}"
+               elog "on X11 or Wayland, you have to re-create these shortcuts 
on your own."
+       fi
+
+       # bug 835078
+       if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+               ewarn "You have nouveau drivers installed in your system and 
'hwaccel' "
+               ewarn "enabled for Firefox. Nouveau / your GPU might not 
support the "
+               ewarn "required EGL, so either disable 'hwaccel' or try the 
workaround "
+               ewarn "explained in https://bugs.gentoo.org/835078#c5 if 
Firefox crashes."
+       fi
+
+       elog
+       elog "Unfortunately Firefox-100.0 breaks compatibility with some sites 
using "
+       elog "useragent checks. To temporarily fix this, enter about:config and 
modify "
+       elog "network.http.useragent.forceVersion preference to \"99\"."
+       elog "Or install an addon to change your useragent."
+       elog "See: 
https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100";
+       elog
+}

Reply via email to