commit:     e5929bb69355a323295439d09edf2c2452d35c79
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 20 16:35:42 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Feb 20 16:36:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5929bb6

www-client/firefox: add 102.8.0

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

 www-client/firefox/Manifest               |   99 +++
 www-client/firefox/firefox-102.8.0.ebuild | 1270 +++++++++++++++++++++++++++++
 2 files changed, 1369 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index e14667c489d6..659efb260e80 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -96,7 +96,106 @@ DIST firefox-102.7.0esr-xh.xpi 427187 BLAKE2B 
ae8eff5530da4706639502e3a2be8a6d03
 DIST firefox-102.7.0esr-zh-CN.xpi 589091 BLAKE2B 
6f06ee4c2e63228710afdd538be7d9c302797bb37de00ea49689e7af87d1e97842c82c6bfac3ddcfb38cbfcbc1d31c7b6fd6f9e9301ccd68fb44bd6ccce0c76b
 SHA512 
4dbc8ec0b17853f4d85480a98b6d63c176ba848836fc245bbf973c2ca3945e9b787ad9011ef514522ede2ce4ffd36021af7dc4f9edfbd38e151641327a138af9
 DIST firefox-102.7.0esr-zh-TW.xpi 590473 BLAKE2B 
6440aa1b490fb2962b9b1378c270639c380df41c871f94ce25cab0b39cbfe25b194536bc5403565b00140c4ce1e7e17c31b5533c72c1854cc8d2b70f57bf2893
 SHA512 
2b9447f6904d4ab9a833750bdc08c1d5d174f4294d8ce68436ac022de5dd2aa8c50e7a97c8775b8741d136a520e1d264e24d1bc755887971b7b7ef8db1660cff
 DIST firefox-102.7.0esr.source.tar.xz 479538092 BLAKE2B 
bcfc62fce9ddaa12c25951178cc865af5d230de453dfea28ff46ad40976b08d31479c1a81dbf235dcf3c9ddbf949bee447ceb5bb384aee1f2da633ef2199f114
 SHA512 
2a9d212b5d15e1bf7a6156495126cbc9161d2057aeedea8f7a5a0670a19a9b00cf35044075935c8f3c788118856ba2cc00f9b297c5ac713f094857683f7cd13b
+DIST firefox-102.8.0esr-ach.xpi 466433 BLAKE2B 
235ba7132d00307b45bef0aaba11d1d48144ecc056be8209639371b5382636466363e353425176b1789f0f4acb13d7e52e91c16d6608b8a92183c93914836245
 SHA512 
b7f4a793ed4aa79ddccfe82a2ba47f995a9cb71a80422f9ac0eccec234e92bdee2d434d5f041307e8ab0d86893b723050a0668d689c22eaa23f4dbd8938acd38
+DIST firefox-102.8.0esr-af.xpi 429121 BLAKE2B 
523bb63ef941b59908144ea4c6d1d460e2bcb52c12ef6eb99045cc70b8b33c9498dc229d2b951087848325e94b557f113bb3e70059f572e6a219dadbab1ab7e8
 SHA512 
8712ca6889092f797cde78183eef3d8a4d59b7f47e6654ffc9f89faddeb46a31c6071ab4edf5253c168765a1353ea5b99c6fd52c02c80274d2a981069abc0d97
+DIST firefox-102.8.0esr-an.xpi 510495 BLAKE2B 
da94594c10e7066d60cb0f318d06054f32672c20df8dd7729724ba227d7bd20d2d627d18e92acc1695ba9b382f3cc6229bec71e84096669b1ceb88674d7abbb0
 SHA512 
3a329d9a65871428d750b96047641350d644a0fc542604be449569ca240dafd51533b6004d7dc9add2f50f17ab8a1326b2839f471c26c7e6858aa1ad65a79e59
+DIST firefox-102.8.0esr-ar.xpi 578875 BLAKE2B 
c5d59d4d83b9db8a84351c8e2da8b40bf9be33b09ab0332a19e22314747ec34701dc83736a796a1663e0c94937c70291c686f539681c6295ceefb3dbf7bfa85b
 SHA512 
edc34a9e0398396de5e1c309971875ff90e457d9bcb2daf12631c430f08449f01ba31d41b6b4cb3b18673c4de30849a44fc3ad6c628adc2e4753f9dfc7228927
+DIST firefox-102.8.0esr-ast.xpi 498093 BLAKE2B 
1286b9aebce377c1ff1758b23cc1eddbfe0a10d2f9cda568d20a3198dc554ea74edb8b062212640ddd98784bd40ddc97e9a36bc0eb1f95b4f3bcf77cf33c90ed
 SHA512 
3f432c9abc17d2e26a6118b02cbd064afb720ffa537589a93f5b87af7893e8e7cb2ade725ecd38a7554d9fa48c73ee1b4500cd870ad6273512a129811bca3749
+DIST firefox-102.8.0esr-az.xpi 500784 BLAKE2B 
4f915b8b096835c5e7d323abd84fed317732337bd9276673c4f2bb9891130cc8eb8e40ee4fd4d3b3ace4cac7322e34fe32d8306dbcb7102d278aebec1876e767
 SHA512 
13e4bece6d0db46404216b28383d479421dad76dedc6a371870dd28f5864a41e8fd3a5085f7763c062bdf3c7acce28d06a7a243401ea575a1c5fa745f4f786da
+DIST firefox-102.8.0esr-be.xpi 666676 BLAKE2B 
7018e2bf1e7ca652d808673d5d1fb3aef6bb5bec1135f2171cea11c312d5a73ba507603a5ee5ce3f1ef5b81aca4a85bcfceeaaef8025fcac9ecc6b44e60a3380
 SHA512 
7a35ee3238f62f0e78c755de4f96742f334cba105355d23e021dc98e0d1cb826e667aa245b5b8a15610ffc9f463891b907daaed18b19949111aa31f997aaf5d8
+DIST firefox-102.8.0esr-bg.xpi 591336 BLAKE2B 
b7be30e0c51539ca1d2198a349ab7b7aa289572fecf62fbcbfd2c67a5f3b42bbfe7e14de343fdefa302ccdf2d67d1d62c263d82a5c6b4c26c599519d0c29df75
 SHA512 
51be411010a82fe189eb839ed412f7b01eae4f5db2ab71ffb38b633a8dba3061979e0e861a9c7bb9021a5ea3d13effc8c039c920f9ef18dbbf9b9c9679902a53
+DIST firefox-102.8.0esr-bn.xpi 591677 BLAKE2B 
22fc4d966eae5e46fc49c8bfa305d81a856cf063d4ea9f74bfbbcba734f7c6d9fd06b7dd6dcc6d06cd425038b20a4a69046f4f91325914d615958650c50a41d8
 SHA512 
86eda652ae843c55bbe7e4b0666a8caa1398d99db05cfc76af04fca461c506c82ba49f5b691098fa1840b09d78dcb65aadc4a9b15f03eb9b30d1b81819152c71
+DIST firefox-102.8.0esr-br.xpi 555840 BLAKE2B 
e83e980b519fb6777f175397bf50998573138486d3e01b9f7b0f33a142e927ed28f5ac12b02677194b3d2690a8e9d7faa905f71b752a4451ee54b8ed40734efc
 SHA512 
ac28e9fe6eb8ea39c55fa47b371cfd924d07cd2fe9530fe53a824fec03e5480d653ce84404cb90f139c4c77858a0fba4f303fb75145915c43921e536048e1c8b
+DIST firefox-102.8.0esr-bs.xpi 471718 BLAKE2B 
0ea929df4f77c5cef3285bbc3e3874ef4ae029ad34aac499ac4b56dd5c96788023e7a29782544d95d689b1f0c81f7dc37013fb1f04640112d7692921c23c66bb
 SHA512 
2aaafc9555fcdcbefbcdfd4cbcb06ab982321da865d2f0ac6def54dc1170796df0334f4abbf7a76ade63dd2227c788f0dd03d6e385c52a7a7979d5e0e332d685
+DIST firefox-102.8.0esr-ca-valencia.xpi 549186 BLAKE2B 
db9fcc01800ae194b9c57c5284ebdcce069703a6f6eae2f2686546a37dbba62e778349ecd7fe714adf9305a4511bbb5d42743d13dec05fe1747d49f44231bee7
 SHA512 
712f470cc24483879a6b1331f71f9558219c20b31b673bafef666227990c8e060385d1e0643b47b9ff1a997cdfcb1e79cf1880a29cb87a57832d5c4ef588ae0b
+DIST firefox-102.8.0esr-ca.xpi 561924 BLAKE2B 
86792e2c5453677853cbcbb0bc056c9b510e5baccc15c37c603ec2fd93efda08c2258f761979fcaa01939f553aba44978a52d6128ec09280ec0a969a99fdcf2b
 SHA512 
2cabe01547ae8ffcdb7cb1ee45a3c0cc1d1d594d39bd87d5b6b1b4cf020ef47d6010ae9c461682f24c196c87081d0eaf1093854e819c544303e8608128f85711
+DIST firefox-102.8.0esr-cak.xpi 563845 BLAKE2B 
b7f90817f757d21a1f64f82ea771ab5c8a2a3c365260536681301de1b36b8709d5e09a5f261dcda79fb8f360399d4e3413da90c8b23454bf9b0289b870035d32
 SHA512 
5bd48d0fa7a23e4f79d5b9982a3ab4dc9c044726079fd2982c6eb8a334877012d220300e9e17eb1fb47420051ddd6de30c37d057201f796cc4c8e13164b4d451
+DIST firefox-102.8.0esr-cs.xpi 599795 BLAKE2B 
06afa42df31eda52c7530555b1660dd95c14fbd0049a1f2f4493aec9ff900076dedd77bceba11bc3377fc78d0bbdade7699c6c9b3131465935d84baf4585d39d
 SHA512 
01f4afcb662c70490a085289b46cbac0048fd214f906f5dd2aa70e78a95b0e08b4e1351d8b28c61b0fc07f8a71d2fa151f23f72003c820ee64c99946bf8f0171
+DIST firefox-102.8.0esr-cy.xpi 579213 BLAKE2B 
970934bd93a79f9de34815d4037e2e6761a5e7fd4bf69c14467100dafe2eada0988d5dbaaf59ba2b8ca02521ec5198f1213abd778195978d963c2bf80f0f8bc3
 SHA512 
9c04bf85492c4f7c113f742bd2bb5dfe63141fc2e92d469dd94a3f6288183489fc42ce8b9da7dacb727e882f827dcc8bdbae4fc4ece147d9465935c209570fb2
+DIST firefox-102.8.0esr-da.xpi 570507 BLAKE2B 
4455beb43071f33ee385744d6715f23e93f9ca312544b642d964a4aac9853bd52d22ac2b779bbc497c7fde499f38c6ed673eba249b0fb739416e26d5103b7943
 SHA512 
2932f799bc7b27b7ab9a9c9b149217db2dd39210d9b1748ebf38125bd5a4354e8493aa9a2c6562b3b43aaec507da7c4e04c3afec114dbbeee4668db0d6a46caa
+DIST firefox-102.8.0esr-de.xpi 591576 BLAKE2B 
395484a135445c615e84eabf96319aa989f6c7e3b586a8149fd1003bb1552a85ff42bf8fd1431792cf32ad676e93992fa107c7154a09c28e2a2296cb0ed2cd41
 SHA512 
2cdd30ab253f91c4165a9d5103542427165698a0f14a34af61e1e4d176a8959f67a01e214fd8e76795425d3b438f9f50c686cbf9a15323c9a71292089e04d0ab
+DIST firefox-102.8.0esr-dsb.xpi 600373 BLAKE2B 
43395371b9d96e56904ca8a174651b7e787d427ac0cb62465fa50ef9c0a168b609b7f17009c22d31529510b7a4824ddc1f1d773085c544986623883b513e59a3
 SHA512 
c4da18bebdc982a1bcc0a3ac83b4128c0d399ff14e5c5d61a9cff98e7f9b4ba6ffd06f79254bf4b2aa77017428b139d3667ca6adc95bad3953bbd087e1929081
+DIST firefox-102.8.0esr-el.xpi 681660 BLAKE2B 
f8d4b2263cf1f92058dbc83701465623eba7088e8b6e2601eef007899a90a01b6b8f81436ed80c9e5cf7d9488d8165b6a95ed8ceb545c53f6087be5a9252a364
 SHA512 
2af8eaeb80502a3ad6c21526b7928de46db7ac9175874936bd67866b389eff4b76a31007c2e3a2d073daf3ce0af65fe02f2494545c7c8f88d5a3a98bcea9a24a
+DIST firefox-102.8.0esr-en-CA.xpi 541054 BLAKE2B 
f02fe6996f5a8cb17b2381e21603cf991f070362cea9c997434ac25ecbfcfd597408560a1311c372bae6118c360a99243089f7eff51a36605bd2a32ad7fc2868
 SHA512 
3a321063c29271340976e390d7d95d27cac797f79d24d1d81dd54254e173358d7fe9513dc4493503b688c5a6b042953c0a3479c5f299b91548fc2183e8941e5d
+DIST firefox-102.8.0esr-en-GB.xpi 543992 BLAKE2B 
b5f72e2aca0a2d7570f7e673d765a8259b4226249cf88671d95ae2c8bacc74a24682cedefde6cfa7340911870292a45447066c8a9718fac032a2ac7bc0a727f6
 SHA512 
eb6df63dd830efe5155b0680525138c9f560b05d345b62711f1a1284bc19ab6fd6ce42496f019fbcd1b60b055c590d977ec54d0775cb4b590d8e0ace2a946fab
+DIST firefox-102.8.0esr-eo.xpi 571435 BLAKE2B 
a5f46141b0b86eb3baf38a7473458d7fe9c8325f248636fc8f54ea4d72752f1e4e0317bb9ee0baa2fa66ca8260f5d19d0bc2c3ef386a40983701469e34fafc6a
 SHA512 
1b629c635acde88f5389c6d96922bb6b88dcef0f951797ccdd4dab5f9d025cde7104c596723214202d4a6d4b45fb432216572052f274b600f38115d7af7da48d
+DIST firefox-102.8.0esr-es-AR.xpi 584191 BLAKE2B 
a41d87026986daf041c009d49f0e10684a02dbec31f468b846d6d4a72c57fdbf70729907e3564706a63decc58bba91bec573101471095913c0624c797891bc91
 SHA512 
09986b89a20f33477ae951f6106221c83189e4115293a295d4557e906612451abe5a2934d92d0a0bef8fc32dea5c834472df2b37e1872b772540f3d8d1831511
+DIST firefox-102.8.0esr-es-CL.xpi 583178 BLAKE2B 
633205e334a6d2b65f5ec1712846609d35987b92f9f02bcb64d5f316ccd8deafbd5de160085a50269cae482f41e6fde8038df6a17cab94b6ea3f2a040ee34c67
 SHA512 
94eb4ed36f742453cbd8e5e5c6ffc03d10800bd3fbe521a694820c8e093a4796ef0defa598f7ba5bf3cb5a2d6ff2f0dc7f7d0e586c25268a96b40c9a381b2613
+DIST firefox-102.8.0esr-es-ES.xpi 576083 BLAKE2B 
18415e1b2e6692676c71a1f64be5bae3b6a5c7c8099318f0d6ba51230af600120f43c3771eea5e6d4419a2e70f6947e4f10365a276a5fe239a955db4587c664e
 SHA512 
91c48ab4fd3f86846f84c221d65c1bd83396304a80fea0313a5eb3151d9cb16ecff8589fd794e46dd2afee4b3baaa254450bb52f23bd60966f5d3b1f3ae08c71
+DIST firefox-102.8.0esr-es-MX.xpi 586652 BLAKE2B 
18f1ae70a1f16f7734566a8abfd52a22ba798b461c0d87ae08d71aaedd164fa947c360970c85ee00711c70e392decb6b097efda7fb9a0b070ae80ea8f7b7e05b
 SHA512 
70ef7bd36907bf6d091f765ed136ee2ec69d7bf0bd5fcd5a7c6df6a7b1a47ed268a01a16625d00b1ac5379d87637e94ca452dad3d0ad9ea9ab340ce4f9e67c91
+DIST firefox-102.8.0esr-et.xpi 543287 BLAKE2B 
4c96ab9180403c66b4d6957f525c85f80fdc808f1c844da2098413f2f44272cd2549f4c46fa8db8f072182c0aa5eb4b9fbee479df8f4fbbf7455dcd42d4d869f
 SHA512 
0b0712416b75957dcf10ce3e289a275f6d28ba695784d89f333e7dce54a6463ca8a1e000520d8673098b79b2281c5e23a051482ef3c95028c0f7188ab2967395
+DIST firefox-102.8.0esr-eu.xpi 572519 BLAKE2B 
993a2baae87a9a86e0c5a6056919ad1617d567ece290744b4949470155b5d353862696ff21dc77775cee28d97a3d17c1c0dca11ed6cf225d9f087143a06cfbf1
 SHA512 
bb421696b16004a74bfa8448bf99fd2d5142265f3f59feb1d39f68e14b003a56ad9e19b9082141da13f951cfcb932193d340361c6da4e219fd6a8bea5d933df3
+DIST firefox-102.8.0esr-fa.xpi 583119 BLAKE2B 
1cf338dc570fa3aecf9b44743efd8be843f19cf3954ad4468e86b310e41bce91d8536f36ed48911f2db4f6aa6d9cd654435d0809bf117812e0a5d3eec107bc8b
 SHA512 
768aabcff6a9ed164ea01474e4a8d6bf62bd80d4778d1957a242070138a30fa426d3942649c222d2ef04a13fb578c5c0beea78ed740257deee816d393ad75297
+DIST firefox-102.8.0esr-ff.xpi 483125 BLAKE2B 
4d509d252e45d1e5d5ded794d389102b7547c6f98176aa5ac320af5d8a80bbc92f41dae739a2eb8423526c3289267a2296add9965a1e28cccbc99f671276ab8e
 SHA512 
1a5ee3e72d435bd584498fdc16f269c1c971e90a0fba2a49d28806936b4007283c67159be3cd68825029d7d8c65273bb6c62ad1f036e52d4bef0e0fabd7c219b
+DIST firefox-102.8.0esr-fi.xpi 568230 BLAKE2B 
c79d1e6290f9d843a25a95a9abc89194f69b7dd76698eab41bbfe788d4511fb99af966fb2832028a9fb13d729a4e15c13c46267fbf5a73636cdc35e59bf7419c
 SHA512 
91fd4fb2a18bdd2fd2d9ca0952f48e25ca2950662601733568702c30b992de98e1e6ebd0934e01bb51d0bd15cd70b65c11a80f266a42df531f277a8ad203fc09
+DIST firefox-102.8.0esr-fr.xpi 595536 BLAKE2B 
139a9a15647f74a8bb20f17f017080a0beb9832516ed808d3361084dfb35e421de8d152ed85b137ceb4fb7a957eb8b65e23fc54c514767ac478b10b44381c61d
 SHA512 
dad9e2f0bd3682cb869c47a57e213e509c2a62a19779e4cb2a26d0e856573ef1df40494e72f83a628de4f9876fc6c636e7e41277d89b22b69659dcc604cb388e
+DIST firefox-102.8.0esr-fy-NL.xpi 580231 BLAKE2B 
362806748f41c13550195635f600a2a4eabad31bf2aaa1856ca72223a1050a1c44ff9bf732b3aa90499711797a92997e1f70b222e068fb847d86c05fc420c1b7
 SHA512 
c76d1a465eee8b26958af1eef3cda4c4a7e7bdbb96097a56a372b940c1d2015668d667f5212d0c0cec0fbc9ed4e9a770447d5fc98c1d9ffe5310a7c36c476136
+DIST firefox-102.8.0esr-ga-IE.xpi 480686 BLAKE2B 
dcd66f6bb8ff9f37f4d0b01016fdccdbe90c59a9afb4d3933b884661d64e781c1d3d9ba71d6d4de21970f3537a3a505eb6aa91be4457e6ef6e20939cf2f9be7d
 SHA512 
6018e5adfce99ff7cd45a1b6b87873dbbaaf5f0b85b87cc586643809715cff97103817d84cbbf31491b2e4661da53589fe0241969e97e6543b60b0638160b523
+DIST firefox-102.8.0esr-gd.xpi 557866 BLAKE2B 
26528f3f90256b1c8a980291727571589eb502c04b44fe0735062dfdd58e982d931aebe64cc99aa46ccfb283fe2e4ff8c40a804491bcdd491105d0ac825a9861
 SHA512 
24cddf5e7d0cd9a6d6fa241da3a6e76d275bdc747fd4d1cbf418a0f7eb70a925045cdd038f02b35c12d0041066efbf9babbaf634345c489a1b29bf51457bf3ee
+DIST firefox-102.8.0esr-gl.xpi 550706 BLAKE2B 
1bef267238bada911cec0cd1f0ba0467f596e9878afc8d0159407a5fd7642542c2c2bce69e2cbd0ed2bfca3ebfc1539118203f11ff5faaf748dfa486f0cd2e67
 SHA512 
7f33ad646d066aad9cf07f591013ada7a03d3ae428f1ead56679b6b70ce98c179889730c2513bb6725345329099598de71234c00bfc272af9871fd18402161b5
+DIST firefox-102.8.0esr-gn.xpi 595699 BLAKE2B 
ba224c40225d6b293e07bffb649bd8204ce03aade8981a2161aa933aa45033b4f09b1139e2caffc00226bf89b475f557afb5677027f8d44f55011bbd11bf6233
 SHA512 
1168b39bbaee2da631a61b311e420f7ab2378408d920b06a9fe82c4ed823ee065d2867c2dcf10139445f751ae900c8a1b589244afe4c28d8089f74b660b940c3
+DIST firefox-102.8.0esr-gu-IN.xpi 541902 BLAKE2B 
2c5127b7c31abc88c4e0466f217fe39af3851efa7a0e3d376873a6182e2bb2d406c901de7eb49e987b569744a39235914d63bad90541cf7870f53b6fd17e1615
 SHA512 
318d552376695d84ea048f122824d81778024ff44f17f904a493207d7730c408ade136cb05ca8ed2b248bb1b503270b5425b1482485451859d29c14cdee8d3a5
+DIST firefox-102.8.0esr-he.xpi 591524 BLAKE2B 
dc270237487cdd0c677bbbe558527e0f5771763fa0dae869d1d76cfe8321204370c6392cc6edf6cb900f73c3f461617f3265cfb1b44b4a2de3326636dd8c87b3
 SHA512 
8767e1b01f1460fdaef712f117f4bc4069c4acc6065c0b231e5401f175e013dede63b06ef721fd637f21c3211ed5cb6914717a1c4316a7a9117f71c6323b4215
+DIST firefox-102.8.0esr-hi-IN.xpi 570415 BLAKE2B 
74f9bfa72b1b5874bde77c989dac6bf7a815afec7ade2fc61240d30b5d85ddff977ac528bdeb69ad1fc2efc6c506ee587ec33e52fe6d6ea53af58bffdd53312c
 SHA512 
a24bdf922ba2c68ef271bc0d90fb0ac33dc04419ba810aaa1dd47c6220f6802cd1ec8341183bf325ee1d0b528f0bb06422266d522d47a31a1ea0d5b57b37342f
+DIST firefox-102.8.0esr-hr.xpi 555265 BLAKE2B 
9ad7d3e5f06217a975cd5f42b829cfdd80446f5811c1031ee966d4d97ba4dae6ccac2d0c6184a7625031b39ac083f92ee4ff2a3ac0f779547f2ceef2689f10a5
 SHA512 
620d66a907925aa5a828324ec54368280270223a5c31d7162e5ce062f62ea20c853e45e2ba67ad812aa9f76b7a6bb76a3632c21cc2cdc8b759536dd456757bee
+DIST firefox-102.8.0esr-hsb.xpi 599170 BLAKE2B 
68c65da95314f130a4bcc4b089b5563db52318fe54d12190f6131f0ac88e6369b9ab4151bcf1c90112d7fe8a2b533d6497218516c606ba54fc6154f8187845e1
 SHA512 
d57185505525dc12eb9009c049806c452cf86f6d4c48c52387d5169d68e92d04beb37bdc19a54d79322b81dedcde105de210d6213f0c3a14f4b92628bd70eaa8
+DIST firefox-102.8.0esr-hu.xpi 605242 BLAKE2B 
4726264618f7ac474afb6e4003a195b5a644f8d14dd4fb2d7895758c6e43f4a3b31482a96bbf248e5f2c08430d768400f15a9ea2e0e98ee7f266b4c46a6419c8
 SHA512 
66c2c8a7c9e52259d7242c07aa3ec038611b88eaf5688f5469146c6b82f1ec8762cccc0e3e063eab29cd9893c7bbd0cca88df071c195bc3a5809500028d40ebe
+DIST firefox-102.8.0esr-hy-AM.xpi 607091 BLAKE2B 
e23c9ddded27ce6f38e14f29108655173e683f129c072f316051e1b81a024d1ee76e88c6e2eb83ff8205d953f0cae7c5a3cbf6acd73a12f6dfa47f0fcf3ca941
 SHA512 
f8d117989bd76144f14f062d96eee9b7d1096142d318ce9767bbd30f14a5ab7fade248e0453dcde2ccfc3b5fbb7e4fdafa73b61ed65ca7bdaeeaaa93af95335e
+DIST firefox-102.8.0esr-ia.xpi 567881 BLAKE2B 
6e67a90481acec301555bc05e9046c39b01f65145db76ad042dc0ce921391ef5dbe0bee55be3189b854933a3a175870e0a97d6194e5c40112234ca26a8e5e594
 SHA512 
2db1a5b4b6464428c2fd4b3e106ba4f56a5773a40a6054d915247bfa0839604f7ef07a6e7d54dca3b1ee57ca6bfa00759157eba99d11f3220f27904dbd458445
+DIST firefox-102.8.0esr-id.xpi 564796 BLAKE2B 
1a9f9a96602e68b6dec6640bb9effd12d4d4f125d8f59e1d11c8d895fdecf66aae4e10984dda4e02d4c7efcaed8585d8f2b94e675d6cec06558d8b01cfb3f3ec
 SHA512 
e1593892eac472e04120050ad6bbb29e0355690a510aea89a376ac6ce7524948797ce4ebb69b3ca1145d7f7ff3b854d2c75396150edf0207dc6abd2a54bef912
+DIST firefox-102.8.0esr-is.xpi 575715 BLAKE2B 
1e4a5d3257232d69b194d0195048a60bad925e1d611a5bfd4222978b2596a2840b3559ae4ce7f833da931674174e0029d92e6749dad78704f86aa6bbc3374080
 SHA512 
f49e4f06e222f2b504271ca9b54681da60c50fd850c61c165ffbce891140b9208ee65671f8550ccd3aa841b7ba2e2c4dca53011f4dfee973ed4ff98f297440b2
+DIST firefox-102.8.0esr-it.xpi 505276 BLAKE2B 
1ba268a63d491d7d8354be2d10551e152055d1facc2a9555b27069ef2998ddf32b39e337995f9425ff3beefa8010075bab47d2ea6df232b1b2bc86836cdd17b9
 SHA512 
920611409420903181d891724bf3b012a2699e7c8507706da5dd2e13acf2ca3dc9558ae1dced4bfabe0b2c0af0632591edacf9b0826fb002e79931a45655ffc3
+DIST firefox-102.8.0esr-ja.xpi 631474 BLAKE2B 
bf8e376fbfdd77ef6e25a41ee2202b416eb4b3ce3ebb40210e00b853b2064e5fc7ff1ed4f9501a488c347fb36fb3162e2ff300bcb68053673ec9bc8782217bed
 SHA512 
766da62bab117e5a31df9b540b1357abe4fc8a7bb2da49d2db06bd7e2d4cc59d69ebd27c6cbf65ad0f0a48e779363760078f46d845d1f29b210e2d5be5e8d523
+DIST firefox-102.8.0esr-ka.xpi 636000 BLAKE2B 
c244fbba4aed30904506841f41b1107756565ebf2dec0c016ac74d0e201eef664990d97c531594af50287642539adae6d588392b7f16d31d1ac9d84f1512e3b6
 SHA512 
0c502490f4869d7a2951f437c40b244c9a34635314762be83cda43cd2fed7ab7767b0c66b22da751ebaa4e9a9ac13d40d086787aefa9ca5ecaab748db3459c22
+DIST firefox-102.8.0esr-kab.xpi 583639 BLAKE2B 
f9a73bec30d6e475633e2a2e80bfe70bb15b8a1b450d15d65f8859647fd21049a0ef043ed8b2382c8a8c6c573a9d6ca4e1a2c144cefc506a1e6eea5aa3e5466e
 SHA512 
25186d24a561d1ccbeecba085fd5ba30691d9e856244636277d6b43234518e76ace0fa5f63f7039373ce9c59689bdd5a22b7e8abe82e74cdb0d3d1ac3abb7443
+DIST firefox-102.8.0esr-kk.xpi 658889 BLAKE2B 
a7a503e1a35991022357043f47ace1aacd96d0f325ab09a9b703baa8fb65545e2c3acfb881acb0af273e21f92dec5e28a388a30b09469defcac30c5fd4cd062d
 SHA512 
24bcb46ab661885ceff8d58d2bcb5bef6937056f77fe31037194c8cf5746ec0bd38de4acac200a6ed0683efc913e33534f364de5a3bb7792aae4f4c66a92a3b2
+DIST firefox-102.8.0esr-km.xpi 543881 BLAKE2B 
891d48e9ec821cfb3d4b57d0771338eb60d1c6850bf701de78cd5263724dfa29111e39fbcfd2f575134afc7236adc4c01964ad3717670cedb2f47fc074fe46d9
 SHA512 
2f41e29eca458d54b3993f293d11449f314ee9e380c22f84ee08a11f15c34e140788701bcc11da560fac7d94ee85ac94d584de14a36bc628a2c84a81e3f4d882
+DIST firefox-102.8.0esr-kn.xpi 508577 BLAKE2B 
5a1dc59b274212a989ba3ce14b34e3edc9f03200b4755a5b045426013d85ce26e160bfce8ac0785f60f568d048839599082dee6974b041a10aeb029d4ad08894
 SHA512 
fe3228103a45e636aaa3dbffed897631d4d4cea87ffcf44216400324678394cf555f817d0cef73c96ff5e0483a8d2e236f33179564310dba3839047ed149bfd8
+DIST firefox-102.8.0esr-ko.xpi 617301 BLAKE2B 
39d80fc44636fdcb98de5908ff303507669716bc8c33a2ed069762b422c84e735529f2d343a38ccb0be5dde0b40503a374546e74b58d774ba70f3c2797933fa2
 SHA512 
7d4b67fcc925d4d7189a3d175aed3c17892a85ac42f8c8653c286496f6da1c328544031e2990ed531db059373b18805f7007134beab40ac598fd03ed22556412
+DIST firefox-102.8.0esr-lij.xpi 480141 BLAKE2B 
7de9f25edfd257942dc768f1f7bd8f0ea639cc48f905e50412e44b4d621d2148df4e6d91fe09d7821b9270f4743b3dfab0fd5fb49d2d0389302dc97ae689e860
 SHA512 
c709ff99d453f713ba5ce4a968e3ae1301898f97ec93e6ce8bc0ae7758364ae930b44f6ea7482fc5066820e45473df7678b7c1d6bf1025074dd4c0d247c2d4d2
+DIST firefox-102.8.0esr-lt.xpi 574776 BLAKE2B 
7c972e98ce15e8705a3b06865032333af57e8173d0621493ceec3944cde06ac820d8c6fd7d1c9b70cdf8ea9b38b89f73a7e779c4a2bf6f58dc83aa737641a2c2
 SHA512 
8d83f00c0bb2b8e88c8c58da7276b97c95a857e72ba4a7ae95788c61fac4a1ee1f465724dbc17a779e87efcf242bd704ea22935394fe087932cbd06c603953ce
+DIST firefox-102.8.0esr-lv.xpi 479292 BLAKE2B 
321d29d573c64689c0a2a40b7e71f3231d26187148c39f3322b9dd4fe7a7a6922bea7961413c8d057e083ebdebb67c4e2941965b7112eff0b5d4714bb0801315
 SHA512 
bcaa0a5ac749ae3b970c1f5f1297f141d674730fadecab49e4802cdbbba3e77c3c28adc108a923b1c0225db6dcfabdbda6818370a3b13d52e44a06ec24929491
+DIST firefox-102.8.0esr-mk.xpi 497531 BLAKE2B 
43c996b6f2aa0ce39816ea9f24491c34e87ccb64dc421fbc65ea11d5502a8fe4076fb9cf9a253bcceba65461f86aaa0bc524b35ecf39121989fe607c38237525
 SHA512 
97ca3ab0016d8957d9c1a00d1aa344cf9c48821c2e644ec860e52a989dd77856b0668103ad302929b121deafb6bccb67ad6b131c03de496233b24525c49ad58b
+DIST firefox-102.8.0esr-mr.xpi 543731 BLAKE2B 
674a596176728dc016b018e50ac90184dee31f468a18dfceae928f74d49273c03cdfcd159088022a009a8dca0a1429be2e210c520dab9c3b21da7cbbd32ebfef
 SHA512 
228d848d21da8725174fe43f91d10e0486a81ae49d626e78eff1c94ec4a2aa4b003d3ca875e2c8dfa5afb7d8f411ac2858e62e925613231f010e9b59cc9953af
+DIST firefox-102.8.0esr-ms.xpi 459024 BLAKE2B 
c76c677ea77f8ea5367b9544bf70b60bb2695022fbf38d33eefe1fc98f70704bc62275700d1fafa66f95c5854ddda2cf4ef2ed0898495b27ac058992d4cda3c5
 SHA512 
14fa98bdb3d32b5ad4815952efd26b166bb2f6c9d9f1e9d27c0d63376d31edb3be927d735160dcdb58508f9bc61f5f5e06ddd6b6e57f8f3f7d4b699e21ffaee6
+DIST firefox-102.8.0esr-my.xpi 529929 BLAKE2B 
abeaf6d257bb210371e39226a421d7cd63976035aca1151ef4d4dc8c0e6eb41deeeec05206848cb497ccc00810c453ee996d7f928188218c2a26a2f737d0e899
 SHA512 
8a7e78343f8af060408b73987b7ceb659b54dd1b3128d4c8b230d89457bee5e477e5ad788c686b7ced5c4422b3a312298f086721fb78fbbe470a92728e71a841
+DIST firefox-102.8.0esr-nb-NO.xpi 565274 BLAKE2B 
1d277c495bd00232258c867ad82563025e8c6f4782a8a9df765874f405d8427166ab83542d999de40776f25f7e0a7ac3ddb9aa2ed5806fa3494d1898a301a0e7
 SHA512 
aa5e70030676e4c2fbf04b0a76ab7f8bbe0d53f2a0b88c770375b3cb3b94ad7d32afc57876337308ef7d0be60d14ec2f3e96ba6e4255acedc6ba8e956399b7b7
+DIST firefox-102.8.0esr-ne-NP.xpi 498086 BLAKE2B 
be475a48cab25176dc270bbfb605499656d37b9697f11c5f0760f1e9334275921afb2bedebddb3ef0d944024f0157b44645714d33a7dc418ef258ed9564b34ee
 SHA512 
e8e4db176b66d21a1b51c8a55c6e5643545bef7d788023c80b703d447dcd93fe64e5090675ffc0a419c7255042a2fdf69e2c7ad8601c7637ae3b3c2375c5252a
+DIST firefox-102.8.0esr-nl.xpi 573453 BLAKE2B 
abc0c619d8a2e1515a0963dd8a03d699de551e814f65e5bd66bdc58e2ad66898644b83af69881879f87568ae2b8b6daf3290642466e9484c3c0e6be1ba2f1318
 SHA512 
fbe5ded031d6de39375e4d9764fec4f53189cbc5058a791c5cbf516abdb4673b1ee82f62b81d4759cee1a730e22c0e4a1ac954b6779014c20aba5ced248e3db5
+DIST firefox-102.8.0esr-nn-NO.xpi 566163 BLAKE2B 
38315896fed5a21c2376550734995f461fc29f4a49b96bdbdbba786332f5e21a0bd7de6f6a64b4955c3d7a27c9b85ea2918e45a21513b9ce4cedfcacc4bfecdf
 SHA512 
8f9a830edb4284e4db7e12e8f39048d8b90a022c62d45c9880a777f0d25ec429c50122cb21108d50bfc48e6257ab7ef3299ee8462ae2f75e2f8fd90f8c535155
+DIST firefox-102.8.0esr-oc.xpi 591133 BLAKE2B 
dc22b6ab58d805fb0a024fdbdb552fa7810c8c1b071be14299561ba9eb3ed2b80e0de4a56019bc8168e115245f3db3cfaf17353fc23294c3fea91272cdde9114
 SHA512 
f119792d1f5b58d4f09a222e6742cf83a0e9ca449a2143c032ad9027273b306212ebb97604bb4d7ec635b9bdd35a6ae15d775633d2089272a7efd4889266e4cd
+DIST firefox-102.8.0esr-pa-IN.xpi 648617 BLAKE2B 
3f906fb7b5dbcb4c169a1fde1f55d763c2d9f7106521fbca58f182d5d2e4a6a09771662affca8c00cb634e299f1cc80217f09ed0d24929692e68864a4b4d2b33
 SHA512 
c74c6d2565f444948353d61642585c0790c9e930f1662fd0b267ee8a8975f0a6b034607d5448770e63be674dd3f85d7ac8ef7c024701faa66e68f28585abc3a0
+DIST firefox-102.8.0esr-pl.xpi 597068 BLAKE2B 
a00990e0fe508b73e2bb63fa46abf022c796d2641b4fd8fad35133d1bcec6ee9534bf8da8ed0079cbbd1feecb1758b6cb53ade7bfb6f129d2337df49b9f95a84
 SHA512 
ec43ca2f2c3c7c8a7a09b45c17f402aad4a2883c17f0795741281575bccfc6766f8f60ac6e52d3f873fa69543ee341b1b0274c273e0ed595bfdd895e9c2caed5
+DIST firefox-102.8.0esr-pt-BR.xpi 579007 BLAKE2B 
dc1fcd4b497f067eba5b9e5027cacb8c2241c3a447bbc3113380478fa7326e3fcd398cc0405a1171b90d09cd031efc288ef319b91b8d30270cd355f45a29fda1
 SHA512 
890a43686aa43c6bb8153bd68a414ef1f5947c4c232cd95f0feb7d85268206dd59ae367ee7fce517303dcd1996444bd29d1650e70ebc9afb48c76f22883aef50
+DIST firefox-102.8.0esr-pt-PT.xpi 582844 BLAKE2B 
8f9645c015aa9180ffb88c93ef5d244fd3dde31d5cf8eb117dae7d6c9adcef908594f3f8451e5c3b92f03078a514dedde44a5f44e698e5314ebe2ccf12504d51
 SHA512 
69762ca4b346e408466119d8594ba0c4122411fdce855bd3cbaa9bd9c48abcd68be3e4b87fd664a8ad50d7e66fbd602513cc6ca42e055bc92910e4c9db3ca7c9
+DIST firefox-102.8.0esr-rm.xpi 571914 BLAKE2B 
ba13c2347435ebb5a3c26d5ddd73216334387c517f662232ecf8607ddd147ca8d5780225935561025ee59678eb095d4f6bcd22faf7de543d6519f2f3a34f6517
 SHA512 
5611ed35ff09dde53d02675eec9396059094116569a8b7ed131cf386a1f936e30fd8969bdc19d0f8d62f92cf932e14a7a5a27d0c6696a49688ded5a235889dfe
+DIST firefox-102.8.0esr-ro.xpi 541910 BLAKE2B 
315ed9b2400aaa88506dc0f704822f76ba3fc80c5a4b0bc19fa566888fe8ae02d5101bb15e6d8ba53d0746f26290fc1f636bca448c41648efb5ea927f0091641
 SHA512 
ee107859daf9b83cd0568b291d5429b2d124de538b37cc8303a8340dd6a41a50c736081be49c623c9a5aee3e641ba025b002fe68141e0d02f7b3f7e9ef603943
+DIST firefox-102.8.0esr-ru.xpi 671118 BLAKE2B 
03554b2dd126e56b845d0ace57e6a2cfa7a1c580773e271d4c078fa9b203d7e3cc1b645f4cd4f0dbec726600f1d9ccc17553e4f1d97edf4369b697eb32fbff76
 SHA512 
700a0dbec9e06299e6989da4ce1decf6bf0c2cb1dc549bc7263e9171dd494af7248ff1cc5102af8a139d143580723c52f15420ab7715d91c7db012878e20abe8
+DIST firefox-102.8.0esr-sco.xpi 513227 BLAKE2B 
968dfb7c84e6b76ba6cd37bec22c75c2a08c29700cbbc8d1b35c69924142ce695e8e30e42cfb33394630dd05eb3e7e1f69030c5135ef02a0692d08d87226132c
 SHA512 
ac488576af219bb5a6a38f248177292330db2eef0d4258ba75790f915711ff5958b106c62b9474dfef78b06ae63b27b470b84067fc6b0d12b686579b8966a5ed
+DIST firefox-102.8.0esr-si.xpi 585625 BLAKE2B 
97000075c99dd77673e7db1ac29c110082a5887df0abfa9321bed67d95786e11a1a7f89eca685d52f17f46f81a4cc9873c642277d18ec3d2b613279d005c78fa
 SHA512 
873f7a5ab6a7f3dd6752ef6feedce15cb4142c5dbcdb00555f9ac08b8e98c6c971b9627680bea87cffadadf19880d1dfd95c6ac22f528a86765d5cacadd94422
+DIST firefox-102.8.0esr-sk.xpi 606127 BLAKE2B 
a350e7b74e002eec6b67fcb9d6a7842d51b60dddb27415f9a789e63677a368d2bfe58cc24f41363ff8b3d75da5edd87edee9e8794dfaf40e6cc565b4fed61d49
 SHA512 
8b0eaef7176dd85e312c20f7bc8950f538b84b8268187ea953c01897af1ac1d01151667d07f8fe5d719165560049174e8076173133fb25b803a075be16e67811
+DIST firefox-102.8.0esr-sl.xpi 577347 BLAKE2B 
be6f8560c5582ea7c7778bc9d86102fef0ee4c3869bd0f8aeac7f2b48c8230c3b5324607d82208e2bf7874bc78021aafe7ce2332cfa1a9cc7242eb82fb17dedc
 SHA512 
1249539c3b8c33f75974e5d47bff1c1719d2312edb707464ea18838614711cc92b956de872eb69d6f0aef25fe272219606283d2780780f41ea335b38f6e70a92
+DIST firefox-102.8.0esr-son.xpi 433056 BLAKE2B 
487d9d8a992dc2b3eac09b460ca99c680114490fb4944b5b0f528b1373f00a3447a776bf7d1a33ffc56cc7e28f9101837172ff9dd05d44da211348701b4b50cd
 SHA512 
678ad8cca4566b2b0c21f4530d3241a4fb1810383d1c1a4b2202ee372054e89b6eb871e6d6a65ce4e6b16be4b6dec865a4b0adeb2d2255dc988a633306b3e0fa
+DIST firefox-102.8.0esr-sq.xpi 593411 BLAKE2B 
78898ce8e1e9630aed0db3177fb51709feacfa2cf5161666aec041aad86d526eac65ebd94898a38b89c6629eccf247181b6bdd5de9dc25df1863b46032a968a7
 SHA512 
a2fe4168b94f5fa27d5832845c6f552f2dbbe7d33c6d0cb9b18b641be64e123ecb0fb0cd9a83cfcfda5820e16cf1c45d29f739150270bb366ce0fd4bbe299b3e
+DIST firefox-102.8.0esr-sr.xpi 635142 BLAKE2B 
a3035eca3d75bc04e1a222632712707338ff4aa26ef8c4a1e19c7abfecb82969a9aa8192229d3d5aca136746d9d0108b73daf4b2322e2065a9a4db28f9590715
 SHA512 
5cabbaa7ad5e5e6f6549bb3e9fd1960160d5125ee598291cd5f9bf128c4ec823e298946f7b74491df5e15c6b933e3054ff083b79a3f63a0359c4b1370235f111
+DIST firefox-102.8.0esr-sv-SE.xpi 576038 BLAKE2B 
24a6187bc342a5a49f6dd3d16f40d6e787daa492cebd799f087349bf0757ee070eb32c255654d927dcd859fda194c53eb095703382f8f25b69d73b96c1fbdca0
 SHA512 
013248432e676fca61c54191dd846d4d10ca1d543ec5a2b07703cac80efdcb6319522b4149b8e2339faa64873e70a968b450290b4f57a20d8cf7ba831652ecf4
+DIST firefox-102.8.0esr-szl.xpi 527105 BLAKE2B 
e71140b6de4525f6cb34169dde8054f289fbff49ccf52f3553de5befb5f0ea358db1d3d411e0e0265a778149e18461c4c1ac0b2a611ed01684f911ddb65ae044
 SHA512 
71b8a7289e0909cfcfa517182483f0990ab4c2555749125f5f9bcb2dee84a7638f155a8c37c5e6cd6daa32ebbcc7c2a108b88a8b2dade7e4e83ef6a586bd776b
+DIST firefox-102.8.0esr-ta.xpi 522073 BLAKE2B 
9d04d48b7e20342fc8fa93cd35881cf006ef1a3dc744260db89813c827569ec4542b893abdb6dffb7e3bdebbdac33c9d2c8f15890c06a24403b6065073169a4e
 SHA512 
37a678bbc37d9da66f8e86b8ce5c67bf05e3ec4ce8d961bf7568813c71ee6737b100be41f9ce3073df6a863d41dbc573e023727d82cc81ffeecc1f5278afbf1b
+DIST firefox-102.8.0esr-te.xpi 568442 BLAKE2B 
d58573efb89c4da4f6bc35f3b81678e13785c121c9c8b88f7f3ee92e238638773b5416f5ae40bffb5d5422878e0c4c516ac9edeb6e8a9637ce076ff702730d70
 SHA512 
eca4a8ea5f2b5aebef6e5ac4d5c4e0ab5c528d0862d1cffca8aa040089f8497384f63d35aa75f0f12072769a2f9464f4cb2cd54938b31cc8b082e9ebacbcf14c
+DIST firefox-102.8.0esr-th.xpi 649500 BLAKE2B 
34603c29f96b55a684ba53503bd24180c16509b6e93179b66f31fc834ebbcc5f0354b433cf2745de422bfdc85f96f2220be83958adcfe5b6bc69b36b5e430229
 SHA512 
bbcb5276dc9f0ecca57a205e75a395df9a9b1d466c862591d50f5060e3651df39d0382baa314ea77e78489cd730e85d4a5291bd721fc6a4d38707aa883ca9694
+DIST firefox-102.8.0esr-tl.xpi 532355 BLAKE2B 
0a327ef8830c898c26860340f47e8431f40484d7a55122fcbc2a9d9a27ec02db9c068396bdd87b8bc8f50457b86b20465bc1ac5bace91a80e0aceb04040eef81
 SHA512 
035e5e6caff5244736ca8402fa93c4e313101ca0c5d377e8c325a4259d96ed7a44c03e9b5a6955dbfbc885e02e60e68e22a418533a7c061c2f6bf5a259cd74a5
+DIST firefox-102.8.0esr-tr.xpi 590506 BLAKE2B 
c4dc50e328bd0b03a1b85b10fbc3b33c374ead3dd4076b370af140e751400598d3121cb6cd650f535343589d65c85e9e774207f08c84abce7c41e60bf2d65361
 SHA512 
784911a3d90eee0bb8b389aac5680d5b5039c5e03ac609a92b783445a011e1be7dd97f5d2c05454d707f55dc70ff91f61e2f8dbf15f2050cfe4b2973465c330f
+DIST firefox-102.8.0esr-trs.xpi 497368 BLAKE2B 
f6706cb51fbdf4839ea84b6d5e7643eb23c3489edce446c8f898d7603bf3097f21ecd19c765b0a365140507df236c2e5fe848470b17ee627b556e7b9507b23eb
 SHA512 
2bf46c926e3ce986bf279bd87d2c1645edcb8f3f096d1457ce605331604ee597123665aa39050eaf40b61136d5f26ee234312bcc5f4a6cb9c9e1debc3a246d11
+DIST firefox-102.8.0esr-uk.xpi 664317 BLAKE2B 
b1de6dc2d7b17afaf3d2afe0275fc5ddffce96bfae7285552693fa2ce0d957267c79eb6cbf25dada5dc51bf96df8c94553a1f8cb14c866ea20507af0f2414bd0
 SHA512 
b4eef43743e8bec7690774467de213b86a250908613736e28193548ecba02c246581ebf8eacddb1ad268dbe6bb70d087217c8cdc0640e8063fc91cc7cce54977
+DIST firefox-102.8.0esr-ur.xpi 569913 BLAKE2B 
89272a4fbbab985b22ad9e0f21bf263ea0f690cd2052f663e4a4ef520419516431d9ca18aac073d7d6818b1b070f161044cd3821b4e263ab8e8cde68a9e4298d
 SHA512 
8a3707d21e65454bc5891ba37527a45044082bb56db00e8cc72ccddfe043634d0e0c1bc7d7bf540ed4fe69003cb3ddc0431c0944a6d50d2fb90dbf2c4e1e72d0
+DIST firefox-102.8.0esr-uz.xpi 488876 BLAKE2B 
233a5293777dd9887318a88cd98b112f45fbc99df18cddc5d046fee20d55368d010d9988b584d69047c3237f43bf951f62a7b73f0b7c04a45b3f47041292642c
 SHA512 
edaccee1e8987c211d615ed57a5fbba1e71d95cc2cd4fb3fc8b2a5d7a313393f1b2f768d1484ab32526ebc952c4bc4efa75a9a24a271d169f2c61a05a6344f78
+DIST firefox-102.8.0esr-vi.xpi 611418 BLAKE2B 
860ae06dba6cfbd9f6b8bfa4a2aa8d88de06811a0c697a8e29be2906f60af80940a9fd339481db9b7a5a60c19944c0bae03815109cc869b94fa77614e542efa1
 SHA512 
358bed53bcbbc1a61b2775a0ab5e4ffca97cb7ee4d1139c01a7d81621357f5669d9ecc19aff1b13d3e5f85dcc5940f2ab990088bbb7373ba65aca990c0811599
+DIST firefox-102.8.0esr-xh.xpi 427933 BLAKE2B 
82b1d0b73d180993968be57bd2d0c3835c2a8154d06943a877b5122c7ae8fe17631fd1bc4c1596fe4e5b44bd31c22cb66182d39fb4364ba771e0ae3a37732a33
 SHA512 
aa62d9cebc3d37aecf9dd84b6fd53550a035a3177eede052327d3bb917ef36cdafd7ff4bfdc63704823ffde0bebe4a9888e24524deb3bc74d20d17aa47de9e05
+DIST firefox-102.8.0esr-zh-CN.xpi 613305 BLAKE2B 
1de6727ae56d346666db1619cb456b011799bcc1e91cef92ee60e4a7f228c4e87a1fe7dbf9b62555c5d3b2e56604463be482aada1067254225d9c9fad560d4ae
 SHA512 
ea575f9545118b4d017abae1bd9d99af33d562ef073385b525478923f8e093ee62f2b6e28ee0d1e48d75543f4fd16c46e6d867a8794b1f33212100a0e34ceb21
+DIST firefox-102.8.0esr-zh-TW.xpi 614571 BLAKE2B 
d0332f219a6443f3bd99ad33715ea1e83438c764c5ad1634704baff7b641fe7bd4890e253264cf07da9203cac0ef02fed3324b14fbc556d3dcb8ba028888da5c
 SHA512 
0656e9f4565de49b2c8c249615b45e8e91ac1ba4704a1a00eebe3f2f1f653f2e717e4237f0356c22d6b4f16cf4798f3fd558c8af7afed139d46dab16fabcefe8
+DIST firefox-102.8.0esr.source.tar.xz 479172816 BLAKE2B 
0b4cbf11028abc73a8479fb94670e98f0a293fc12381b1eccbadd64a33db068ab7434357abbe3ce0773382c7c90b8fe4d2258cc55abe8bdc2f551bba1dc2b797
 SHA512 
93ea87997b66088b94c6e943b6e99e9a71d1908444d096c0f65b6876d2c584e55ff6120266f3851f986b664bd1f12fa31206b03479c2b751e7c3ca097ac14275
 DIST firefox-102esr-patches-07j.tar.xz 23012 BLAKE2B 
41b706f5ae8695ddd33e971cf1aa99317382a57618cf19163c5bca09ed5d430dba672ac51b7ab3072360452cc89ac50397bb7992882a61a3adda37022239e654
 SHA512 
7048353ea5504e34d9d3950e3e5e3125f631f95269d5c9e422ca052173a316718fdd4b57ea7980a452139b1192805cb598f47f398fb148a426a85a5e979c6cdd
+DIST firefox-102esr-patches-09j.tar.xz 20236 BLAKE2B 
35431fbc56c5470dac2839fd218d2a589558cf964eab2373f2db7a01e6e0dfee329b1b63f6a421bfd4c9bf8c3ed9877067cdc462742a1cc59d78d1d10264ebac
 SHA512 
7fb82ff3ef2cbca339ab05ac07f0409088a87dfe37314d31d441bae1beb181cbea799dcd63dd560d0ccde24b665379118e5e99a1c1a2385d859378901593089b
 DIST firefox-109-patches-03j.tar.xz 16540 BLAKE2B 
d1e5879f60933444c31e1588f3e237fe988720b1585dfb8aca72c8efc5de9008498c76be89a655e26f663b4d822059238ccd1d7bd851ae12a673c498a6577182
 SHA512 
919fea5f6d24efe88b738db09b15f24e970c2620f74a74cf1692c6e931a063eaeafcd1b134514243d3bf7d2f1757843251ed18bec10dc2dcf91197271da8e336
 DIST firefox-109.0.1-ach.xpi 452777 BLAKE2B 
4c8ec9d561e8aeec85dbadda6c0db63f8cf269e59f529783d738cad217d3dfedbe1a8f88f1769219a060c40c0a22070469f482af362536519a743b7d308880da
 SHA512 
19538c2471877253da1eb45fba6ab9556a1084a0be5488cc68dcc3486358c18954cd4e0bf007f329e3a67d2b79f93b8c23a722e6cb44fd2a7f1efcf9912cf3cb
 DIST firefox-109.0.1-af.xpi 417020 BLAKE2B 
c74621da5de5b75aa2539f936be2cd1ffba3bf876c5b3db9f1481c1fa5d3b87304860f3500412174bff7e991da2c496f3954c35f0d4ba6491767ab6b0c8b02bc
 SHA512 
08557f8bece33f2b9fb81f2b460a7f5ccc81f4cf75b120e0009e14841eab98c287b3855046f7ad53bdd5af853bb25eed13b2e2397102ba5d763914e6f104f105

diff --git a/www-client/firefox/firefox-102.8.0.ebuild 
b/www-client/firefox/firefox-102.8.0.ebuild
new file mode 100644
index 000000000000..80dadc59e072
--- /dev/null
+++ b/www-client/firefox/firefox-102.8.0.ebuild
@@ -0,0 +1,1270 @@
+# 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 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
+
+       # 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
+}

Reply via email to