summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-02-20 20:21:39 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-02-20 20:21:39 +0000
commitdd03974882f85ca04e35cfbc97f7ff756f5d5c20 (patch)
tree4fabcc91c51083e19657dd0a557043e74468106e /www-client/firefox
parentd542bd2ef95af892c7ef62be1489b0288b1df9e3 (diff)
gentoo auto-resync : 20:02:2023 - 20:21:39
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest100
-rw-r--r--www-client/firefox/firefox-102.8.0.ebuild1270
2 files changed, 1370 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index ee552830312d..229f9a8d510e 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -105,7 +105,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
@@ -305,6 +404,7 @@ DIST firefox-110.0-zh-CN.xpi 599820 BLAKE2B e883807740ae15d8fbafb5858e65ebf2053b
DIST firefox-110.0-zh-TW.xpi 602195 BLAKE2B a6d1fec05b52131642b7d4a1cb7988e64bcaf398b813bf86c3a2adc170ec350e27b1ddf1d0b7a4e5fc1a5d2b139dc63d65dc9f48e7ebdeaebb451883ce456932 SHA512 201892c437d07daec97365c4b51e1e686677ffc25965537e4fbe4764e9ad5f04029d557cfb1173c110b230979f4708fe6d0ad43b70517aa56a6fd95b7d72c673
DIST firefox-110.0.source.tar.xz 499042592 BLAKE2B aae3b34f1642ddab5f0fcd104b4168c9d9856a1bbbc197ff3c8e1bbae0c8d1c033db6e974e10b5352f4457e890c50f1f9d5099a6b7200c3474b71ac7e6317113 SHA512 52a37a8f59a694c4790c0a14cd81fba9e2c982f64e00191afd0897c39ae1d5e25f24cff16f74d0a0b5cdf8e93a9a0974b6042b0de605cf1a533ef4e6a3c0dcf9
EBUILD firefox-102.7.0-r1.ebuild 36567 BLAKE2B 4f6cd3a520b7187bf12a13544394d895586df660ea33a0609cb89b9aa2ef8007ecb3e635de7a88f93ae20db0085a187ea12fee8f8418644d527ae6f9a62cd393 SHA512 eeeb7578cea264edc8221527374a46f29fb04f9b56685f5448c19bc27325e2ffc306e1ed09a048360fe32532fc1b2cb1ab20c9f2be7379130247fb8acab73e52
+EBUILD firefox-102.8.0.ebuild 36570 BLAKE2B 8e81039b2a48e44bf1f01ca28b0261f753827ff280597656f770777493aa0bf75959bc538282bc2ac1b22716b3d2fbd8f39f190a34efbf69fad83738067c0173 SHA512 95c71c042c907caf0d00927c81fcfc54e12b640245e7b4ebd0cac978c6ef5f683ec74267466da7c594fe3de154cce114ca8c52daa8f3c9b552eeae693cfaa13f
EBUILD firefox-109.0.1-r1.ebuild 39974 BLAKE2B d3d285793ac31a3ad7dfca6634c6888d7f5380916b4b2c079b43f55173e9957ae42536919698bf9b5db93c312b858b37daba84cc607681ab45b91a496c573fa5 SHA512 cf50f7e383fbefab4796bfb0b6ca2e06bdc37fc947e1fa1f512f9351756e8b10125e14cb56bf45bc7380aa9ef8168f6511071ef33a88a1b9ea0a89eec07d1fd1
EBUILD firefox-110.0.ebuild 39733 BLAKE2B bb325affa05cfdb07d6f0be7ae3ded2bafcc7a70252a8b57191e5d6e88f4b809dcdc0102c26456b14c35803717f3c9f5ca4e56bca7a9a31179608432b73ce3f0 SHA512 08336cff722a7eba353cabd6b7f1c5b1a0306f57fffe5593548eedbfa38ec115b9d1f5081fc45b1fd2de52f9d1516a98c82a229126419cc87c45974032c79dee
MISC metadata.xml 2219 BLAKE2B 064f486eecd2a66ef4c9cccef46803f877039bf16bc40b699a48e28e04e816d0ad434ce65ae2e056e1a4126a67a7dd7eff16040276159c1f5aa8966b1c0d7b6c SHA512 522b09ffc2857553e240b1e7c82c11ccc281dd87c720c6292ec9314b91319e0a55ca2838f17e878f5c1e58e4f22caa1b0c3b90506b65b350beff06f3f397d897
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
+}