summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www-client/firefox/Manifest98
-rw-r--r--www-client/firefox/firefox-102.3.0.ebuild1262
2 files changed, 1360 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 3491dcb09d1b..741e9345cc90 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -96,6 +96,104 @@ DIST firefox-102.2.0esr-xh.xpi 418249 BLAKE2B d7001ce2c211a5d71590c9fcc43dbf479a
DIST firefox-102.2.0esr-zh-CN.xpi 566196 BLAKE2B 0d0443a0f98b6ae856eee288a56f4f56911182eaf9b919834eceec49c93015550ffcd1aa2c47bc8510c0e1b728ebd3d17740b313d23d84b434765bff5145df66 SHA512 4fda8beb539fd6217d56f2dff889056e5adc6e10b262faab1460653847666c8532d143f3837429c81d4868b830a2a8661407cb40c8924319b6a7b3a22f9299b8
DIST firefox-102.2.0esr-zh-TW.xpi 567162 BLAKE2B dce18534fd98658ed8adcd4df78d2ef0830db508ebd23e0ea72b41c05d7e25519c25713826105840f3f4f401f540eaf26dd2c9348c80b67ec1266d6789b947ae SHA512 99125bed1cc36f1c409208c5e6476443328e5f5408d45989a99d90ccaec69fed87fd4febd74369589cf6f44f08c63a1fa6bd3bd1b3da21dafc51d627459554b9
DIST firefox-102.2.0esr.source.tar.xz 479840072 BLAKE2B 00975ffc02a11619d971731d53fbd480e9e6940d2cb9bd77c529b790e9734db85cc48b4e70d5acf447d221620feb8e9d9b8d129d07f270acd0d388574b129ee4 SHA512 06d753867ccfe1b2c79148cc60bc816b47a2abfa98219808868e9028bef1763d982ef7012698d06b8959cce79163d7926baf5f9d5ca9daa18c51fbf0efc59993
+DIST firefox-102.3.0esr-ach.xpi 453455 BLAKE2B b89f8b8b5a42f703b84a5f003c8d4c3ff9cb82e86ef522c6495664f4f6462ab25f650bebc362474641ae5749c7f8d4e2249f68c528888ac1b7c848c431aafcf3 SHA512 1c5bad68c11af14db55c2c950df243621538f3bc0341953482c4333929452e4fb32d4cb625c0a0969afdded17904e72b75276bde86470bdd45a06ad48f2b5c47
+DIST firefox-102.3.0esr-af.xpi 418247 BLAKE2B 6c75efa232644b892aae95a73b6cc66b357610f6a32b1ddd82ca4078c5245f3228f506c809847a3bff0ae49b9b7acaef405fc19c000762d4611a3fbf53d29fd7 SHA512 e60e9753293086fc26684fc4e5932f14a3a7f4b65cf590a750dcd47b95bbba75605b31b8e5a3daedaf1177867de3e7ba90e87df256937c1d6f737928536ea3a8
+DIST firefox-102.3.0esr-an.xpi 498403 BLAKE2B 4f7666361af01b53b4f5a046fc956cf72de668772c7cab5dbc841104c5526ade61fed2c577c0742c4841e2abd77dff6cb9e804698c5ad9f519c2740ea2991a13 SHA512 f55efa9f76df914ec8371ea902406d60f0ef6ac13825fe1d0e45c2e587d299dc2480b4df6536fda74f1f6f8438a2566a8dcb503c56ec41e805331684c3829065
+DIST firefox-102.3.0esr-ar.xpi 563015 BLAKE2B 59f76a4ec1a10b5287405ff5db54cc35bac362d304f869d85b2e9f61d8c53ab80d5e61b9df89ceee3a85395ea82e63b0da51b8e0f6efee55cda2e8924abac6ba SHA512 5edd4030772c1cfb080d0033a810e903f88ccfcf686ad9606a03bf2b4d8e1972381a229674ec457851d0dd19855b85f02db1463dc54f9de152f2fd4096e614fb
+DIST firefox-102.3.0esr-ast.xpi 493499 BLAKE2B bed8f3312b393715022d9d74dfef19fc19cec37ddb19333191d775642ea703914c22860965edb3efff1b7203569b966f7ddad275ad551f513b560ad2ee71f6e3 SHA512 0e044f108521022f3e8c84cb2f9d09a94a0d05ec7eba961fe24552ecbe3756ec05bbd1d4335044b4250819dda9b275e09d0b6e3fac8e491747ccadbff6a1d0b0
+DIST firefox-102.3.0esr-az.xpi 485920 BLAKE2B 778a9ffaf0a33ef8f82342efe676b4d6c4ce4ccc20af2603d517fa65b737cbe160a22e8b7f457001675a592802044dbeb7ae315043762d8c10f0a79a529c574e SHA512 f80c2fbf32fa719b65dc6b35d88f21360c8206d4224c27aec34f4a9b07eeb63cb8abbdcfde69388e7eed6d7209eea23d1f9c545e89e451b58046dac6aa4f6ef7
+DIST firefox-102.3.0esr-be.xpi 638906 BLAKE2B 27f3b238ab4fa420f365d683f81c1b42d8f22b70491b8ca898ef7f8d8891b434adbdac4d4e8f37dd98348283d6de046b0b3bffbc78e1b0725d9a0d3174abd012 SHA512 7d955be75b94ef5d05a68a4d1750d61a674b21d6408d0402f30ecb128ce9aeb24ab6a72e26097053f8b1ee1acce653dbc2de95197fd5b28e2aab16a5a57c01ab
+DIST firefox-102.3.0esr-bg.xpi 578861 BLAKE2B 719fd25f559053a035681871fa8acf42c85000c462d5170ac3ffee762a5d531a8d6bda59bd0b1b48e65e8069f2ef3f20808b7b0d6d1b659b6fb375b18555ccb8 SHA512 38a53a1fc200fcad3f7c843559a6843a6c0be296eb5a2f04f1f19f68db7bac68dd5b57fc2c159e4a97f8460347a05764b3660e0adaf844ab701d65a9cfe2bff1
+DIST firefox-102.3.0esr-bn.xpi 576721 BLAKE2B 80d5f2dee94516196cfd206f952d1d9eaf97fa973a1c89ed65ce2f094fdf814b38c5cd738983ad767f88f417135a39df952872639f56478c0e8a9f4ebafc2276 SHA512 0232cbbb6062db4e71b2a58c4b43c8976bdc431475f6a91d6213558114832692ff439b9a40bc0b0700431e47e130b42e4146ae94250665e73772e672dfb693d7
+DIST firefox-102.3.0esr-br.xpi 531022 BLAKE2B 4b5080825076a583f7b1a9e5cce63a7a4aa6d9e57759415d14d730ea8aaf1fbdc785f1b2f5aac8372c45f2b984c5dd4d0dd31f64b8cc841fd8df3c109879c627 SHA512 782b9c57186d6902f3c49fd55adb256f45d52eff16dc21268b34bfb45a9dafbffd1013db45c8b3f2d6afe53c5c0c072c07887da8aad1e96a64caa08fc988cc64
+DIST firefox-102.3.0esr-bs.xpi 462131 BLAKE2B 15e77e28870bf7b2efaae16e082589e125d7cf1a89fc34398a879d6edc1ddc97c6474d630f7170fc8675304fa11cf051601864059fd22f85d305140981614d50 SHA512 6e3ae23473090a10ed61e4ca6a446e595974d3e7e8cf54ad37cefecd99b3c6d08e288057d2fe41e8762046d3408f0fd5b605bdb1062c73ef64244e2a7c3e9fc8
+DIST firefox-102.3.0esr-ca-valencia.xpi 537517 BLAKE2B 23c14a46134d41e50aef405bcdd25f8a8da947d745ad45ba3724a7c7cbc4b05c10ca29ee5dd141ed866b7a8d041326d16b38af5907fe673964393bac58b67331 SHA512 93c1046f4b6b77f4b97668c26f5042b7b93c3b9b57f2e9d4e5e5e662d8ec4f78cbe2ac186ffc2a6650aa86759cdf401869e0548fb6af108b6058c9027a291105
+DIST firefox-102.3.0esr-ca.xpi 540477 BLAKE2B 3cfea1d14a00bc625200a3d1e1c276094de1edbb35b9e29edae819a8e8b738460f6d0b0545d052674cae21da3d5a6a4f258be92d1345b0b7cb654ac87cd774f2 SHA512 b30ff4b0c424ea12b298c5f3b1a7805aff074cda8c297a9ba93d2804732294250e354f0d40665cded19715850237dc4d5030deeb3e44107974e4a88f3acf7568
+DIST firefox-102.3.0esr-cak.xpi 550775 BLAKE2B 9052bc53ad297d12dafac397c05a0fe6b775ad4bcc705416cde8e4687e53e3860d1456eb3f591d75401ee31d071aa8ef58c68bf62f9c136f85a3358134f63e06 SHA512 824668d6bd7d9c7fa67cadf4557e736f4b915536579787e065024a32447d2a4dbed57e6445918ff3b6a30b805dc873aa014029664174e047f6257fd7f76f30ed
+DIST firefox-102.3.0esr-cs.xpi 573455 BLAKE2B 0ac0e4aeb7c40155a119b412f6d2ff60b14af5c48f6a661a29ea4190b354cb81eee743d62c4cdcc98443abae969ed9f8a8f382bf5daae0c302a7a184f370211d SHA512 622db5c0d53f39afeb9750e126e015677f08003032a27b5ebcfebd7f131df9b6a1ee705855fb98133e692f3169492a49ca4a04705de8244116ce45250d116dea
+DIST firefox-102.3.0esr-cy.xpi 554750 BLAKE2B fb5a29a1aedd47e2cc83ba8515f017fbf707c74e27443ed3931d61adcf6fa53bfd6a63f86e5bd48fdaecd5e601ae77fd8e1e0550817ada638b3f501a8e6e4e18 SHA512 1c3b1cd61ad432d95d020d06c63594587bf62fa1ee56beb842a434c9e297c892f6ae1c699f9e9080068d14bb3ad14572270431d87428a9c51f40c86da7ae795a
+DIST firefox-102.3.0esr-da.xpi 546947 BLAKE2B 3d5db31de7cc30a2317c699cf7559e70d274c83b46508f98ef11880ec7dcc982064c93f89e948a6a368e20bcce7b937dbeedacbbd35781494386390b0e482462 SHA512 a47b65fa09b68e6b08f0fbda74f046efeed3a22f0e6cca902420fd21b351eb1b6403fd7ef5a93f7c3630eafebb16f71569d2b21c59ca6c7f6c659935a3f8677e
+DIST firefox-102.3.0esr-de.xpi 567046 BLAKE2B dfd661d963788405960c99d930b065f2c1b66b575914a38a4d43fa7f9e06346b3c74c4e580ee71da032ccb6481488ea74946cd84c2c46bae4813134d3b752660 SHA512 d1d9a3e0965be66f4b56ff526ed5a3d86e677e3497014d8ba06d119f1e9129b0931c3d69a6fa11f6026c850bde7a858c377b0915160ed22e954a08a58c0b06bf
+DIST firefox-102.3.0esr-dsb.xpi 579784 BLAKE2B 4513cc52cf1978548a002e23f22aff14aaab59bb98712bf4fa0c3b8adf05afb2a83bb3684060dc5cd8c39046f369b27672382514b7acb4c11f74809de8a72f2c SHA512 38e7d81a4894cf2ec9ffd87f53e90cb5974f420276036cacdbb58077f413a85506d0d88c2db31161b1446941f14326224ef0fd3afc8edf8350e40616f9adb79b
+DIST firefox-102.3.0esr-el.xpi 655029 BLAKE2B 1b92a1d7785279a66abbeae8b17b068cec127f98a6b214d35981fb40f07b7a560d1ca048373a50e794f788004f7870fa652cdae233fa1b25a77f0a2d83ed81ef SHA512 ae2924a48bc6716fffffdae4c623d9b5ec76ccfc286765315b1b45bf78ac98caba5dd024360296fe9a94df8bf409e047bec9a0d964b63728dc77605b7f67b51c
+DIST firefox-102.3.0esr-en-CA.xpi 514604 BLAKE2B a2330a5d480c0e3885581ba1d2d8e91d0f5c1ec7cc9256397838470ed803e09978595ca3284bd2093d78c67e78ed7add64719e7e0b0c8ec1949561fceb597bca SHA512 a2d9a00e44a07aec9d43496b47405a30c71f6d6019dc9ff52737c0020c2efe3050aed0ca5218499fa362fe574a9ae1a74a3a321f3fd91129854ee48359123ee7
+DIST firefox-102.3.0esr-en-GB.xpi 522699 BLAKE2B 55042f1722163590006544ce314ff07a169598e45c95f61287313d2627170db40dcc2c96b82f236b389b85218fdea6c05bbd565ef74c3bdb03dd58988fe1c6de SHA512 8494171611818f4a3c2ece4321252ff0c74e82864c97b3688e7d968a8f047cde0bc9d5fa652425306106dab1a81c92a2d2b1777e6e6ddaaeaec89c07fc98d1ea
+DIST firefox-102.3.0esr-eo.xpi 545935 BLAKE2B 11b2dab95d74307e05fa41dc3bf6c7ace25c9a2860fe4beaf189f34b78b12e7e865a19590497174bcd2636ab1495f7f63e05e09c58a7865cc965bade5a52cddf SHA512 1fb688fc8b4420019980955bbfcfc0446c2e8ab9cadc957af1254537e4e541305751a1fedc311fc168ceeae5080829612b4ae0aecd0d86ad5302fa3d70dd408e
+DIST firefox-102.3.0esr-es-AR.xpi 560326 BLAKE2B 4c48314897346a94bc3b4559e4e0cf8a9cf9dcf4e1c072c418c7f4921f65f407362e91e5b14253d766a261119fe0814afaea603d3e19ac378ba9fbda68cc2407 SHA512 da9e497c489815747718f3de802f141f076b222ba26585726aaba59f9e2ebe407d2a461f2eaa5cabe05627372622b585936f99108e6e7948dfa8ee9adde0e8ad
+DIST firefox-102.3.0esr-es-CL.xpi 559370 BLAKE2B 2cf5c1bed76ec905f0617532b558a6ba47d6c3eeba3fb7999bbc4d523c5c1fbc4c801a7a4508b8225fc8182d80a0729919dd011cbffe240331e64be7ad233e86 SHA512 5308bd3f90b61c9afa4a83c3d4b42ff77830743760d2c4b0418dba7ef701e9e07abdedb4a3b9aa507db45176df5431f273e16468e2e5c0ac586b19258b53fb1e
+DIST firefox-102.3.0esr-es-ES.xpi 544164 BLAKE2B 495ec841b827552ffafbac3e92024dec571081fe65a227d3de680a36df36041dc6246d4a70db2cd3b6db280f896c8d040cd79f729a8ed84bff1e684b4998680f SHA512 16e580ca4f0dde68d9fdce3a0d0336eba77b6d6cfe378633c3bdc0061b0954de6dd74cf38e5a9e8d9f0269de55ef117e438ed58c3488d66d072ba660133b0ebe
+DIST firefox-102.3.0esr-es-MX.xpi 563464 BLAKE2B c2e95d7c5a2e9c6b2544de8195b3b41fcd2f16315c36a3a1a463660386a77f5e1b041a810ac1a4661a9fd3bea004e14d1a999b2520d99bbed59166d0377e40f2 SHA512 d733a06266a6546a96637532abc9cec7b3f38c9243a3a9622bdf0c098a16e67bbda793d87650ac41ddfad949ec93a5a3296ec883ebc7880e4c931ece8ef56013
+DIST firefox-102.3.0esr-et.xpi 531816 BLAKE2B 5976155f1898b7b4b3f48dbd44448e2800726d085384082873e9cb24b29b0ad02faefdbbd9bc190cdf650a03d893054332b2e6f94642464613938eeecd28ffe6 SHA512 8216b66a34510a48a0441e68f5ea06774fb4be1ead029c26f0c30dd82ff0b884fb620c31c0d85053338fed461f62bbbf156757fef1e01709f098f3ae8c863dff
+DIST firefox-102.3.0esr-eu.xpi 548210 BLAKE2B d4995ef93d4b0df73a99915c0f1962fe432cffcdc4c84d390961539bcde382d81b2874428f7565e65142968395da1fbc54cf15b3d3cbe63da6f617562cb3115e SHA512 9a5568e046251ee7410a9704ba637df0829cfe2bc6f9e2ddaf710f7abb9618742c0710859f997261200172035fd1e07dfcb727c84803139ab170ce9c568f2b6d
+DIST firefox-102.3.0esr-fa.xpi 562344 BLAKE2B fa22d089f9f7498d06bfce03e811b9c64bb0141fc043af4c35928e23d4ecfe06115a9ec66ac946d1b6c5e9d3a7eefced986d86cf7c0cf0e6a968e7599789610d SHA512 905aa6979ceefea7503d10409b75a7e58ebff6eae06e9c2777c8a353fe895f224a610a80db71e5772715c61946b26adcc5efa0d0f0a4c2633b9b5750804a1233
+DIST firefox-102.3.0esr-ff.xpi 472169 BLAKE2B a54f9e7c891dbfacf9a29a524e041c14555b58ae414911ef6e2596fe97c7932727abb1f546edccef615d25ec21b92255755f8131d964bf38e253b4a7d45df74e SHA512 7c21b35fa781f453d05a0a8a81095c02e8d30c307e23b23d6276f2b35ee744e00c8f41908f6aba8b44a999f886dd7662649cc6de1920ac0d0b849455fd070fd9
+DIST firefox-102.3.0esr-fi.xpi 544783 BLAKE2B b1a9269fc70d1295aa184a38c238702a7bad749b6f3b58da4c14d4bf1940c67050e27bcec0ffed01644ac1764f98b913c707ec516461163e1603467521a87975 SHA512 1f4a32769955cff68bb3347cc82880ee582511ebdee766d73d5f39aa6de73a704341abd999ef1960609206a7222cb344c792f679071f26807d00eeee1957bcf4
+DIST firefox-102.3.0esr-fr.xpi 571385 BLAKE2B 85dd921fedf3a491b6743954bfa6c64795dd2f18de9a06fabc466a92cf8ea9001dc7cb89bc6d6771b69d77edcbe85c637410b2738fed645ef985a615375bf913 SHA512 ed84c1d311ec7842832e183342c2bb3e10d462460d3c0fb03d0d4cc81af2bb73f5483997acf166eb8767260a0c43e701bfa41c0951f7a29ef4325ff07fc1007e
+DIST firefox-102.3.0esr-fy-NL.xpi 556592 BLAKE2B 2e83c92963a330519e761ec02d5f838a615a6c14036fe3f153802949cbf2fd51d52afb1405b1ab53f9b39833decb71f4a1d9303cc9b2cfa0ebb79d2dd35b549a SHA512 94908b1c05bc15c9736da83560813917ee4e76876f3c31394ef6c0dda3b0f980bab70ec34304341b05df17bd49eba2f0cc369efa2ac8972a8fd100fcf5f5070e
+DIST firefox-102.3.0esr-ga-IE.xpi 470608 BLAKE2B 4181f987725e6a66729a204d51ac1a1dbdfab1e11d1b00560a14a911fb97deb582b0291d50d0397a30a8640ecb96b3bebf229e40b336a7705d8a2575046ddef2 SHA512 1ba5c0dbf71561b29b6bcb0aab20e4b07a7f72422d9d0d2061273cdff7c2cf2375da5a8988ead21f927d0301ca4ceaec3a956726e8dae68e62a672ba85d1f80d
+DIST firefox-102.3.0esr-gd.xpi 543720 BLAKE2B 1e4a3b3ec4a0997c6bced200c09085b81b037b012c6e976a1bdf8868b2985322757305c59bfc25085d79d03e605d1ae99185e104d9765de3d97fd0128cb07e1e SHA512 ebc9c6771d5daa35521ae7b923ec24adf862a45feafbde8b3e264aae280ba6e9287d045a74a2cbdf62e6b572ea59a755384e24fd8dcfbd190112c7dcfbf5b690
+DIST firefox-102.3.0esr-gl.xpi 539053 BLAKE2B 4c5d5fcced6b2a8d416205e62c21496ea6fc4783aa7a592575f457c83d1d699cfde3adb9c391da7f100e228e3cc81da648a0b838d9e4604afb34ea810f1b85b4 SHA512 c1d6f2194c851ef2044f2eb242a032c48afa3399d45b2df98642dbdc02a85afaf41a00a200166bf581a5d4f70d9e5fb9183f577f340d62bfd6d2f6b331879002
+DIST firefox-102.3.0esr-gn.xpi 570897 BLAKE2B 09a7119908a040d719235dda7b4a2fe5ec2b7ffdc66211c5c0b548abf7f116982f4c36df0eba5f707c9a31938d07672b40c0f43c1756c9754bf3dfe6957b2a52 SHA512 a1c4845740441b0b71b18b653b3948d6fd244d3cf6726e49845541be4b8167e2e9095d38123fe94c0169afac421b248fbce4f76ea9290e50ebeb9e6cd9d22190
+DIST firefox-102.3.0esr-gu-IN.xpi 527872 BLAKE2B 69e8ddcd76a678bd78463f1b240f91722c18d74f128e22fb9724c3d79d6669b70e34a4f20e4b9854ebf17bc08e8ed4247cc6c0bcad4a919b7f117b3f8f6aa5f5 SHA512 0be7d68f54661c8070b80a4e9504bf6352f3aaf087f5ef14a3b521fd1c15d5cdb7927b76ae06369290ce6878c9320b02946522df381ebc3146fdf68955ad4749
+DIST firefox-102.3.0esr-he.xpi 568678 BLAKE2B 79a89e55a135ad7c12b2eb2c503b68eaf8441c58fa353ffa4f3d51bce4f0b1561763018826ff02e2ce0abed1f2b80b3c11320439db956ef93e000d9e4f85e3d8 SHA512 2719300e548aae73bb53ada61a0d24c126d0fe825cdfa5f0834bb3e4495daa12c38338c4eaa89ae575c85c0f0a8f19659e674b4e65fa2029e385949006b00334
+DIST firefox-102.3.0esr-hi-IN.xpi 558539 BLAKE2B c2ddfdedcc15c7a7d37cafbfe05272c885208aec6826c0377c2dc9920c9d48e2a6c23876e9fe01502fa53ef01a8f886b1e53464f75332ec6c544a4134f09c5f2 SHA512 64dc592725ce712c4d68c9dcb39ba6793204f88b4a8f46bccbba9ab22e818885591078a013c727481b24f509f06ee8063f972d1d7d7e4a6496b02432497e0b20
+DIST firefox-102.3.0esr-hr.xpi 529738 BLAKE2B 16dbb6af30f269d8b66b13ac66fd2223f4843decce8e94bebbf9c9fc2897e3b4de14bd8ae0ee9a50f931454bb7eb14b423761b92a3509cadd0fff14a8e0c65a6 SHA512 325b8f12d299cfea651edddbb237462090b287b68bf0c2feae67767bb6f7d0279fef10e798e5982cc17802ca847d6262500c92f04711dfc6640390c764dd31d5
+DIST firefox-102.3.0esr-hsb.xpi 575946 BLAKE2B 30bd83aecf189348ba972a364fa5148c3152f9544b7059bb06ccd74ca7bc2481f53c5e51dd2b4910e3adcd7d761be0807c025a15bd2d8027aae26056e94ec585 SHA512 30444fad035a5083140a20a014c5b8a9b4f014c073b88199584519bc6ce9996bf0da170cd1360281800233e81475409c6f5d0f16b802902cf5338dc549279b45
+DIST firefox-102.3.0esr-hu.xpi 580250 BLAKE2B adb670db4b95a76709d42951478591e70d264fb771d8aa60f9e0fadeb9606152acf1295f38c017ac1cd744e99d8b7512baad47071f3f20bbb5a08fb664420028 SHA512 f61f86cf40b53bfd4680edfddecd396a2635bef0c2419445cf52f63dca53da27603862b54de23f97386c8837a5f6d2fa1a8df2425176dc4fadbebb42bf33ddef
+DIST firefox-102.3.0esr-hy-AM.xpi 582119 BLAKE2B 8551ed1377108803d46dbd185b4a9a06c4139d6a2fe14d5cd4fbf2dfac3626852de294413263f664d9e295e1227b6eccb70953899a50c13629ce0000456b897a SHA512 324c4c994e55cdda393da1d0dbf8cf7d8e794481432939d4b9b0d158ee518129abc830228fca229889723e7457b1ff33784f7093e66c2c89fc078bcdaab8c6bc
+DIST firefox-102.3.0esr-ia.xpi 545262 BLAKE2B da53ab9a57d9e2ce8c4741af776bf266d25053741a6e2d6d6400372365c93716b5c137f8272edf020b1e18643470bae5b8eebdae08c00a983c23f79c865d2bd6 SHA512 8d41339c86ddacdd5faad662f331a01f1d777f21165c4908ec39be9f2a8c966adda5d7d14324a58bf0a84175e855d0a2cd77f15679c3755f24b7d47f3f48a28c
+DIST firefox-102.3.0esr-id.xpi 542448 BLAKE2B 7eec3c870b40712da44c45c4f497f51370561a5ed0427193053fc9cbb5ed0f3c44ef449417c83dbe5ba979ca6a8d12030a380ebbf6ec905e67745a5c1d845f8b SHA512 cf67e20d2efe267b2bf46d32cf684ba7a8d60c87781c1246c2eb2ad3f74f194c63637fb1f2a2e6524edffbdccd97253f16b16aa8c3b7de8fb110c7e3ae752d7f
+DIST firefox-102.3.0esr-is.xpi 551935 BLAKE2B bc1f402c582ef0a22cf1db81e88a5d77cac245721544ad36e8f4f328b51ccc1396b4393c90e42cfe1a653fc57b220a0947d5516e796191b2fd0db40e7ad4065a SHA512 fb0c29ebf12c4901a24b78dc996f6ca390603f5ad2f23def32af82cbfbc5e9a47e1069841ab0db3f68937b33a7e7fe60ca773c154498e37646b3211cbe06655d
+DIST firefox-102.3.0esr-it.xpi 463213 BLAKE2B b68825a8c43b9014b9871e38d57d92bd0a3d41c355e8825e117f6de2b33890a4484fa47d429c93be3e732a93e3ed0ae8fbe813e2e1b75b51eeb61e4e340f8f07 SHA512 f37bac0b09a23c3a200c16b025cec1c1e470eba8fc52a30fb048c3b6d5cca7f3a578c2c245ec378facc9d55eaeab82a24928d91985a5bf65a03b7f5123b928fa
+DIST firefox-102.3.0esr-ja.xpi 586305 BLAKE2B f1a969fbd12c82432e5ea8ab9610095ed7f3a2fe8f750b28ef9ebeabc0888c92fb1c09857c75e02848150d64b93dfaac32f3a3873337a21c2a11e724c2214c0e SHA512 599904bf221abf952a7d6b45e387a7e43f4c4970c6a7a5772f8bfd2b4d79294073a791ad48a6b2b60430cad9c5c7cc161068c7bec54edebc5ad56765738d8d6f
+DIST firefox-102.3.0esr-ka.xpi 606132 BLAKE2B f5459ae508d5a7f2d4e71a885670cf7dc4551905697d280f93403c40f528d566e3d600b6771300bdd4038c020bef8f3c1e09850ff47417c91c4966b502697fe5 SHA512 1fcc7c63220df66363b1294162ae98809a207cff602f5490a42169889b8f27309796d56fcfc81fe0e87df3f19e6e5e12365acbbb6dc0b509aa8658dd1de1aadf
+DIST firefox-102.3.0esr-kab.xpi 565741 BLAKE2B 52ccb77cde51b9f8e4b7b5100dfa63444a779f62f16fb19912b53de6d1950dcd797febdbff5b2f84b1e2ea4b9996d787d4be507462158a83359ee53b9108e8f9 SHA512 33384e39af5c30f56fce040e09117fd0879c3b2f49a0fd0c700dd53e29662f20c191e6f6a99bf9254f5cd1278784095488d1896aa55bd50ae6e1474516ff2545
+DIST firefox-102.3.0esr-kk.xpi 621839 BLAKE2B e290bbe5d9ff14d6bbd9154d45184017291278723aba83875cb181a79e1f24c117e43445f974483c5ace4e9a4b62c73649ece43cdc269f864af12fa5537f5ffd SHA512 d8b612ba4921f23e464775f009487365b11295010016f2d87b6096c83c08cc7fe1241994cdd2fe1303d4651e1d61a41639437c11384fe0ee076c4a7593011413
+DIST firefox-102.3.0esr-km.xpi 531579 BLAKE2B 80ac1403094fb789e258fb5cc8884fe85d7b701f8098a4c546b3b8c7508bba422cc1f41b16248670152f78bc7a1111a426fcc65f42ff109e8403b6c0d8645604 SHA512 87c030793fd4c3e254a7de40d88b328c9c0e2e15a22ad70045b9d122f54b11b1c49ec42dd11765d661124d2540e40bba533831f0575fe9aa0ee915ca30470fe0
+DIST firefox-102.3.0esr-kn.xpi 497201 BLAKE2B 854d219b8f5f13daeb89d90eacb5c4689e77b6c2bea4f60002f06fbf277d0579bfd433a4b5e7192cbdd77f896ebb3e841e50557326674bdf31db326b007995a0 SHA512 572c0f699deedbeca7443bc9d0c935141636114bf986f59a3a4ff96ddadbdddf81c5745c15a755765b3d0ba2a9ef749276071f8bb884ba2e44b3596ad93e4500
+DIST firefox-102.3.0esr-ko.xpi 593293 BLAKE2B e29f63fb5e37124b6a148f6308cf30480c383ae28515c4bcdaebcb0f0bb2ba25dc6eba88d74e719afdaaf9ec872ebff6977db6c2a1d1dee5b6d01db5df380c79 SHA512 7935db3542dd510f8dd2a150033d282fc46728be34bd35af7d94a968c633640be92ffa03a3c4b30fe1d5c2cea7fa61e68d643191613437c28711a7d0c28e2ed3
+DIST firefox-102.3.0esr-lij.xpi 470141 BLAKE2B 0e654ef57bcfc6b308387d2083ec147b82986ea59cf8beb2338830b6a719787306a02a0ab65118952030bb0e85fc7196bfba8ab3deeb9fec247ccd36a263017b SHA512 3d842507516fe2cf5d80c06f871c757a08060ba3e857845fe0e3c15c1df31ca3bf0a5ef6bc7c83ee1a15f59b4f2d5ac00e1ca9f2fd1839e957800e33147d9078
+DIST firefox-102.3.0esr-lt.xpi 561127 BLAKE2B 0a6d1c86e7fdb915a863b54d8d75d35ed5bafdacae0bab31bbce97b44e21cd9538abadd1f1a3e6c2a66170e84dead65a15b3f014bd929678ef10101ac453404c SHA512 e2b0b2858a0fc97b0af32bff1651246b1558ba8be16c941193f9a31feecc380fb1d93b926ebd734a9f125c2715c364bec4c247b3b6aed84cc475b064ef8a24d6
+DIST firefox-102.3.0esr-lv.xpi 463020 BLAKE2B 56d01f39fc29842911363d6bd4b1dbcbaa039467973a2dafe9cc097b8e36dc07b0d4854d256059ebf6f5d0d04c0a157a096eec3f1e01671997244b9bbace079a SHA512 ede171b2bf31b34c9b6dccce9cd8be85e701bab6ad84f9a43e7bee3c6601c4946cdfb1267ac8da2e9bbfe4efd39fa0f1a4f3633e0e33a5f41f8b413a22652be4
+DIST firefox-102.3.0esr-mk.xpi 482313 BLAKE2B 9b5382542944828faf99a79d56cb22807aad65507bdb290b46c107d82f2a390cc760f8d3add494963299d808e82f05c9a350da5066d591d71305f26d6f8d06de SHA512 934d0fa0a0ceec899c18ee16e020a26a9c0599d51f1139a26b0508ea1c570602a9028692ac36dd9ff87d2026e3a3dca8c88d3d39b82da8961fa035f8e0dab0d3
+DIST firefox-102.3.0esr-mr.xpi 531252 BLAKE2B ffadb2926faeb3e4ecf0c1f6ce8cacb8102fa8f5a7c05c709d89a47d965252b380de6aab8f5a8bf786e104bd5fce0752feecf9698a05de1c22a82879c066d726 SHA512 01e1c0614096df55093e7f0a203ac5ab141bcd663c5f71a2173d7d716022c6bbba4f1f3ef66d5c583d81a1d614659f82368a5a98991478bfd4969cbb335d0aaa
+DIST firefox-102.3.0esr-ms.xpi 448123 BLAKE2B 33e996afe1d849dddbdd246b1e04b881af0c358f6bb5d305d1a7c11e6ac4597696d949fc49be2eb2cb4311c19736c0c631825fcc4feab9eb2e22c6af3129ec89 SHA512 7ac315d4cda83106258ccfba4f1945f817d5fd5f7dde625f641ee790bfe0193660f57dd69258c0db4bdc8d334b1a9520c5f856b7914b571e4315fba6b16ee7ff
+DIST firefox-102.3.0esr-my.xpi 511807 BLAKE2B 4416387c070b261c1aafa2ae51eec94529ddb06f2bb9e8dc722a9681a75be4cbfaacbad1f8f6f9243b5d5fde3bbe93205318900ed0c2f63d3ed6e780d47bb805 SHA512 e7187d9b0c5a787f6f6d1f337a072a0eb57b1b25bbf74a8c4068075a1e747042ee23fc23e7f333df1c94c03d29c49d8b69448079c8fe7a07c2a202b465b8f979
+DIST firefox-102.3.0esr-nb-NO.xpi 541242 BLAKE2B cbaac4222370b1cecfdbf7a073d1a7dda69c6621b5c2da21ae9a6f7fa5a789459cf37fa47b835bd51fdce81f1d0ee40f910bf6322ac3967fee2e95cfa0330482 SHA512 49dc8f417aaac2aea5fde3781c5b159127d9a76813aea3b242fe3058c7e775761805415e85c6e80813fa5c0815277a9ddeedee5aa7625b8ed137d92fd3d6eb14
+DIST firefox-102.3.0esr-ne-NP.xpi 489420 BLAKE2B 107e3f27d3bf0aad6e59c7a942825f32918850b50a7b94e697cbd6509ec5ff31c3057584c392ba5e840d9251a523c825d3d9a76e032351320b9aee3f2d988520 SHA512 ac48878324241ee9e4b31f91b7400985795201c6c94ce2878f5fb39da25fe479669748dc07778c806a1bf382e65080a79f44d8a80c7ebf59d363fad5fa0084e3
+DIST firefox-102.3.0esr-nl.xpi 550349 BLAKE2B 2a180b9b7271c5565cbd65981d9326304247bbeacdddef12da34b505f49cba9b4ac4dbb338a6048ac4a3eb5d985a0b513f89800ebc120123a790f14b668576d5 SHA512 cd18f08fe259778d0cd059357f1f46c014eead4008645a022c9b0891471ac72df6824b72c0440a1dc610baccbc1b9dd1d2ceb80dfa7313f26478c8930f427489
+DIST firefox-102.3.0esr-nn-NO.xpi 541467 BLAKE2B a21752e1a92ceb0c48e614878622892181ef4caf677b4698f0632aeff9d43d3015d2d6614d27c2087b77104098e6fd52faa37e19b194720adfc60e32bf340c25 SHA512 bda7179ceb26453e9ef8ef37dd83d03a32fb16f0b798f280b23ba6c47f3d268286ea5a4beb55f7feabbdc2bde182c2620f6b8edf41748401112a3c656d00e6bf
+DIST firefox-102.3.0esr-oc.xpi 560885 BLAKE2B 2ff5630e76f4c7875e65eb267cb482c232131bfdd93995afd304ef4c1e9c05427d299b4784a61a1722578a2a66d264f4d31307254ea2b52e083a9a65bfc29ae4 SHA512 1f495b4497dd7a90e8d111ea453ed351b44ced910fbba4bac669a77631368337c1cba58d042e5f8abacb079c48bf1f79df0275bc1728f2f918055b3653e817ae
+DIST firefox-102.3.0esr-pa-IN.xpi 612447 BLAKE2B 7c681875f8fbd7d33db5cc803d9ea63db473902f41fefb2cfb32503be05370e2c21e2a4d25941c7415ac436689fb6d8bc39dd7c7ca206c0e2e26824ae886d562 SHA512 ec36cb6dfdd677e7b22415703e5a62326abe13ecb2e90f4c3565ef4149a4e63d53e01b2de6b23b66491cf217777353521da9fe5667f246bdbc827b0358cc0a67
+DIST firefox-102.3.0esr-pl.xpi 571733 BLAKE2B 16dfad3e0d49ba8e68ba847b4990911026e0e378e49d65104523fc47452aa57be621d3efacbf6823e96b32d46e4fb3a5fa2962c1127e92c3c479c581338073d3 SHA512 412b95f604a655d915e323e1ed1b2510b708c39eaf147c45eeac46fffc2cace2e57db848b8c77ddb5ccc96be8e9315193d904bb5e3a7839d358ebe1d37d70fdc
+DIST firefox-102.3.0esr-pt-BR.xpi 555920 BLAKE2B 5343560b00743773b099a2146ca11544e22b2309708d1c3381f27004e8f458daaad3dba5aa10aa8ddd55fe3f989862e94eb79ff1889602af041a52ae4871b477 SHA512 aabad94bc00aaec4929cc02d37f4926df22526cdf7d4e2cce12a103ca69554597a7d09951c66260f1ff1605dfa9eb07571f5a39668de3f9fdc9a51af288bb501
+DIST firefox-102.3.0esr-pt-PT.xpi 555205 BLAKE2B 579cac7775a5028dfb010e0d483110ddae0a8e8cc850eb0e786c3f3a29e102a6e1282ffbc80543f8134e31db8ca2e3026bd8e3767c30fb61dda6454d89c06f7c SHA512 2ff0d5a2fcae26591e8fc5a1be1e2b35b442dec8f2932b0770c777136b642cbc202c7cb645095c7e6eca713b2fabe7523fb70ee84349e76a0bf0ee1fa5866d61
+DIST firefox-102.3.0esr-rm.xpi 538504 BLAKE2B 76a14f62f381b492b87a6dfc992cf56bc80e66e24b50a16ccc2a6434ba2efa1eaf0e05358fd5b42e372845a23d0cb716585194f461805ba7777b8cebbe571afd SHA512 40b8dbc6dbbe021c0cc40c321553ac69d25789622234eb1c1da0aa747f2c641483a387d796c5b4fa1489aecbf83d579a0cb670d9aa1b95f78c2a0c5fb411b78f
+DIST firefox-102.3.0esr-ro.xpi 527971 BLAKE2B 54935a691b4b89a24ab1da688b7127ffc82d55b863308a844dfa78ce3f45a74638ca56304bd8a2290282a65e1bbdc3685e23ab3f7f7772d06dc301b29fbb4c1e SHA512 ea5f4c06434500f954611ea1324b4497c2a2518fb36bb724e1190b159e1f865110b22e06fc0aaa33ed0803c23a0df2e56eb6f6d05918e6c7db7e25de3d75ca0a
+DIST firefox-102.3.0esr-ru.xpi 642366 BLAKE2B be51c0c62009bda55fcc9dff436fee78f1f038b218886e84c3997c0ea1b5020a28d66f94be15ccd5f8d2131996b23f63e10f4223a518f786ca750e5689a585ca SHA512 b86159d177844c330824896853b8194fe122629673a279a3829282f6e90c4dae65547f15382993098b97510e76d1cfce1b3ebc01138041bc23ec03305a5993b2
+DIST firefox-102.3.0esr-sco.xpi 496336 BLAKE2B 7c9ef809ec723c27e62cd81feb841e75b624fb2bdaa09931162faab53a34c23de9d5c2c6199aa7a6e41d8977b938a8775dc36e4562bf9c7c46500ebe5dbac042 SHA512 d0fff7b6e4d3f7a7985ade738f21f559a0e8ebd2304fcc9f22755b658e350b9063e3ee14515098afa33c0aaacc60c42ef5b3d58fab32f7e132c7a3f99c555dca
+DIST firefox-102.3.0esr-si.xpi 564314 BLAKE2B 74ce40ebfddb64b3a743993a07764186a69893b8ad9812fb9f96dd824a06d9f55fccab8df7f248ab48f50d40579170b765b2ea412672c8fde61d52640c73574f SHA512 c9b61b8d62a643c869c258ff747ddd9dadb4504e1b7e6b7678b9fc64cb40a7de417ead175da2ddebe4994ee5c5ff89f645ab7793c20845fb49395f746642d6f9
+DIST firefox-102.3.0esr-sk.xpi 580588 BLAKE2B f6a7e5e6e0c7fb0fd4521ee22530cce5c53868fa400ddbef7d3f56a8a866c36d78e43aaf698f5e379fd3a6f917120ebd0f0ef5f7426dc5a607d4f01382d9275a SHA512 6e9ae7c608a032cc5ec9eb60683dbb9b16f82448506b1ba3987501e3f5d0c148babca5626dcfe46d658dcd88ed82cf6c9f5e21da9de17fe03fd3f54751589141
+DIST firefox-102.3.0esr-sl.xpi 553154 BLAKE2B ce9ceab97fa9c38e231c2040bb10796169072f99778bcef8318b3adabf6675d61e3c5ae040eb03a12fd4fe6c8089c20f0ba33357fc2b65d87dd972f05ba2fbf0 SHA512 3f09114a0d2250710ea2a4d9172d03d323199a52d9c10966d7c9fd13b664c305660687058e6339d94cf1a75a70436e29c7851de750e320c632d3948d1b592321
+DIST firefox-102.3.0esr-son.xpi 424697 BLAKE2B 584eff5eca60738aed08237f468794f3ffb46ab577f06dd7ecb56959646fe8197936c47f439ee726ac565fd8e27c5889e946a1f1203188794fed182041ceb871 SHA512 29f30e325bbde80e567a1394bd14a541bf340fb809273225e50b71c92127d0a987b60ec7a2bf1f037ee2bea8304bc382bba8fd12992308e0ea19e831ad1c70ce
+DIST firefox-102.3.0esr-sq.xpi 556113 BLAKE2B 3ab043804ecb52c9eb4c6c87448dac9ce6d496c03d2dad463acd22d4fc144fb05add1881ae359e7e9bc3c76658fb7caa2153ffaf62d835fb5d8a8b979d764b26 SHA512 c6abce9bb925753423878b8adb1edb8230d19c37a2b755f981f358177544ddda8a117f56e592fee32ad7469db0ee79d54290b66e5f81b2fa840795d4710b3065
+DIST firefox-102.3.0esr-sr.xpi 595492 BLAKE2B 949054d9008ef4d18aa4221669c193f81997c870901f0833c6503a3152ab41ac429ee65332ec7ed710106a13d8e370fa1d77c4fcdf68a50226a2cb772876bc49 SHA512 16f358ce2cc654cc27f1ad54bcbb772eba9b48303afeca80d7e5f292a75b98f6e091b447ba092fc164cb28279a53637c139fc9a9a8de07a5cb2e28455237e794
+DIST firefox-102.3.0esr-sv-SE.xpi 553017 BLAKE2B adb51c3f04048758918452badb6fcd81511261d0c61b119a0a4568e61f2f03bc4fe69041960b611829f6dbd5e5691c2bd66604b612b1952ff42935c5cb98686d SHA512 acdf0afc289f7a521640094f33e745a1c6b3e09c2b96be1e9019562cc2cd20fd7252ced9e898e6443f237b924b4e5673de714b3066c22f2d3c31c0ac60b1b25e
+DIST firefox-102.3.0esr-szl.xpi 512005 BLAKE2B 498e98ef7f1962a129d197e754f64e527b37639aceecaa9b964014d165602c8304544e37852c361095154c6222bc5737221d3ade2c0f1e981676c92d24000495 SHA512 1d2210f160d92da7074d119ea1806c9b88b206b44742b9e8a4d0d37a1c9ca74f17c8a12834323aa12948c2e5ab0f890edeb57b94782339079b73de32ad1ae1a1
+DIST firefox-102.3.0esr-ta.xpi 510340 BLAKE2B 8dfb9e20ac388b1e82139bb5a27f1cff19e0bcd9d0ef054ba2ac34cf7a3792add4f9e949bdbfbca907060e9f57528df070a792d1b9bd40957ace7e61d4a16130 SHA512 1cad1416c798fd2fab469f2cbabd33de93abe2ba906429f96c22aaee7378e0e1be6a7ee49bc093ecc5fea14310820d4d997e34e8d5dad7c2bca4475bfa04a0db
+DIST firefox-102.3.0esr-te.xpi 551584 BLAKE2B 1c6c1baa598bfad8cc5b7639c4c2e62d5fb1714d354630d5fd863d02e83c6937f306095683f12248c854f264d43b634a3f267c041c8e72b9da447920cf82d1da SHA512 6dd038446414dbce78efc0d4cdc13c92ae611c84540b832dba64138b5a95d55305317b24594113e50f2819a4999c253879732d10621f4b75e7ffdb1cfe5a2591
+DIST firefox-102.3.0esr-th.xpi 612082 BLAKE2B 69f67b021e69c8d45db99c079425f6c260c7a4ab6bb2352d2c2400ff724f626b212f57294822ee8c8bf363515cec377d53ccb3f14dabeacc8e946a7e7eadcf4a SHA512 aeccdeadc400c69941c4d3878657e0a4708e64e4f5e780c289287797dd561703b736a30fd91c3217a7918a60c43e403abbfbb11f0db12b07b9f148de60e40a5a
+DIST firefox-102.3.0esr-tl.xpi 518943 BLAKE2B 5c7562dc434f80bf9821f3e0ffda53afa5a47e4c8f4173dc828c1de3f747654783e6ff422a01d22029fb1d30d7abd441511009283ded4194833ba27ee4bcc159 SHA512 fc620e959eac61b653a160336163bf3a974da47364503d0992b7be0156d9b77b18388e3a721828b86c218ddc8d692c5244ac1dcf2d596c6fc675053230ad62c5
+DIST firefox-102.3.0esr-tr.xpi 567030 BLAKE2B adcc39e2c690a3fdd1731de99f91647ddf49a9ae1e3db379674da4edeb016b1659074d5f463d75a79fa27013d0ad7dbfa526aee943b6ad57533dc1a10c582379 SHA512 1fcf727cd521072fafae5797cc758f7d862648a88b283b0b3d91b755377cfd9f4e853abcb6cd930c576434ab013fbf02fdb7b9139affd9091ef4a548ef345cea
+DIST firefox-102.3.0esr-trs.xpi 490213 BLAKE2B e8edb6a7d535788bf6c3ce3ce545b834095fc58e9e780b467050567f89329e31ec3f24293ba5e8b3fb5b9dc310ab4c0d8322e360875dc874e5b34882f0ee295b SHA512 ac5046eff687566e2917915ec886982137d8bfb0c4d1026763ab7d1358022c7d504a9cde89e0f34149bd4103d8d18f3534cea7cf444cdaf750277956c939e053
+DIST firefox-102.3.0esr-uk.xpi 635945 BLAKE2B 46b3a19488904df7bef1883cff005ee63a5b1b3c2090c64fb366c934d5a88037fe89027c2685d6820d032147dae1abe4917fe1fd45d3a4015b5b191a1a6c2108 SHA512 ab9eda82ec04e9ed5e7532181cb1f78388f6db76823b40280b6872ba6522d244d81f40273ccbda12ee0d87f9263cf8d32a43478c5b4db77ff522ae634699ec7b
+DIST firefox-102.3.0esr-ur.xpi 558059 BLAKE2B 5901db9e23122470312df1c61acc4b7a1e5de16d53701e8dbf8ab1828fdbdb9e7223f146675a7f6357de8ed4f6dcb2b17bae02fa4b13c55ef8f767ed0a8739bf SHA512 c17ad720bf22daa4a8f6bd2046e218875ac1fd8d1e256b6a0bc4d9d162764f0af1cc900b9dd54189ad750deff2faedb183301318131d725a2da761267d5bd706
+DIST firefox-102.3.0esr-uz.xpi 478246 BLAKE2B 580a168a88a12ae18162aede8c6a3f32b1f7ce9e938daef6dfd00c9ffe3d968c10efe40354c458b6312d374c8a2fe4a88b1ba59e5b3c39d535deb5570b131642 SHA512 106f5806dc52f3c49cb162b850e85cb159284072b0cd0e833885aff89d711be76debab4e377e9edb11f1f5aae437670aae5df76c1b5ab22a77c047e21fb44404
+DIST firefox-102.3.0esr-vi.xpi 586368 BLAKE2B 3ec464d87002e196970b04792767e539c9c12c1e17165539492ef00b6d9a7b8916ab4f3c5e05a218be746dfbd43dfeafa2336f8fe841ee5225ba556c252407b7 SHA512 362aac1e18f3a3f694b657cf9bdb7c2c2cf9810387bbd71e13e0b9e455f3d3e588b7500fe6cef299c43c4d793a7ebdd31a15e30076c0e7e2600555c5b187fa46
+DIST firefox-102.3.0esr-xh.xpi 427184 BLAKE2B 85d46e7f2d1220e13ce660677603cb9ba90e2244c6140cb02ed3a93745479268c4b72a04d02ee184b88519b69b2c5784526625f3e478f41040a07200002bf8ef SHA512 a8ebe8abaed1019b5b8cdf567f1bd8eb41f34b75609e99e7abf53c92884c49a886d5c481245b4411ecf735acf2e611f872464d47a040ec7e6a6f19eafd23f51d
+DIST firefox-102.3.0esr-zh-CN.xpi 589094 BLAKE2B d496632b1f029535012ad3b43e93534b206651701a83e32750f03f3d7c2b2b22c6165aa0748fcee89c1b97a535e521ee4e8c20ea51fb6633892a0e851b8adaee SHA512 b328345dba6f6d02561fd63dad909b1c071af652d36c198bbbbfb746fd7907b6ca7d048899a4ef42477ccfbe5c2345be3afd4bbed1fa75f04f6c6714f0831e1b
+DIST firefox-102.3.0esr-zh-TW.xpi 590469 BLAKE2B 71323bfe2c05d01e38ad6629291a83f82eb2b5486a133d0836e5982d6ca8e2fda0ec11e66d874dfefff31b6b42237324b80146ac643b78d557102a8b693f6847 SHA512 3038339af3b2c01824c17bdcdfbe64354c63e4bc55b6bd463297c1f875c49980a747c5447f9f468ff567d6bb2b883b2cec91a1d716fed3245aa1a1bd840412fc
+DIST firefox-102.3.0esr.source.tar.xz 478260896 BLAKE2B c40ddcfefee874f6dff5d175331144461917269e912d959af20aa19cb8bdc57209403d1e5962311614be8fede33733f734c19bb0d32d881421fa1197539dce5f SHA512 35357791f4de8b474780083a22fb52b7846b8012cbf01403f2b9526151d11c196ce0f9fba8e0f16d8235d7259af6fba1bc3acbb5b7e79129a28f390467aa7556
DIST firefox-102esr-patches-02j.tar.xz 19688 BLAKE2B f26b8dd2613712ab49db34247c432769386ac066238b86c0eea367cebbd167334f822866129d0874efc35da4da686e6185881649b0b3095dede28ec8c658a3b2 SHA512 456cd2b7d9f907080afb5225d353154117624fa938f24dcfae7ada03f5b39572e5d6d6e1a4bba7825465b48f6d38b04e5c0f69556c82d4ebbe1463e11dc809d7
DIST firefox-104-patches-02j.tar.xz 18596 BLAKE2B 9fbd9a901f956498375ee1ca4a237b8c24e4dcbed504debf8ba90e890628ae2c45a8dcb51efa8ff81b1f2f119ad51c235172ae3b2c31b97312cdbbb343f7e34f SHA512 43b345a5f2c1549695b1cc6faabd91e42dc859a24aad998bcbc38a5d68e550eeac412f7a342f3aa6061e308fad4230b80329c5d9a13dfae638a1eb1eb1a46357
DIST firefox-104.0.2-ach.xpi 458326 BLAKE2B eba568e83dd1103b5e6ec2a955aca8c866526ea276f9da0279932c8ab531d3ac0ceb53bafd5ee93dbc2762c1b4a6baca31fa85f6328e6f8c8ec9419e4e9faeaf SHA512 4f28bceea0d5e74a777b77a460399bbc90012c3010ba3f663c0ebc122f8e8eb659518f9a696d547380e0210a4d47f8dce86f162c5174697537fb5ae9acc90ac0
diff --git a/www-client/firefox/firefox-102.3.0.ebuild b/www-client/firefox/firefox-102.3.0.ebuild
new file mode 100644
index 000000000000..0b83cc45dd22
--- /dev/null
+++ b/www-client/firefox/firefox-102.3.0.ebuild
@@ -0,0 +1,1262 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-102esr-patches-02j.tar.xz"
+
+LLVM_MAX_SLOT=14
+
+PYTHON_COMPAT=( python3_{8..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 )
+ 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}
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.24.3
+ net-libs/nodejs
+ virtual/pkgconfig
+ virtual/rust
+ || (
+ (
+ sys-devel/clang:14
+ sys-devel/llvm:14
+ clang? (
+ =sys-devel/lld-14*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:13
+ sys-devel/llvm:13
+ clang? (
+ =sys-devel/lld-13*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] )
+ )
+ )
+ )
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )"
+
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ dev-libs/atk
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.79.1
+ >=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 )
+ 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.0:0=[threads] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wayland? (
+ 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] )
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4
+ )
+ )"
+
+DEPEND="${COMMON_DEPEND}
+ x11-libs/libICE
+ x11-libs/libSM
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb
+ el en-CA en-GB en-US es-AR es-ES et eu
+ fi fr fy-NL ga-IE gd gl he hr hsb hu
+ id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+ pa-IN pl pt-BR pt-PT rm ro ru
+ sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+ || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6600M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ 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
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ have_switched_compiler=yes
+ AR=llvm-ar
+ AS=llvm-as
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-gpsd \
+ --disable-install-strip \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-updater \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --without-wasm-sandboxed-libraries \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ if use ppc64; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use 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
+ 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}.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
+}