summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-09-20 17:24:07 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-09-20 17:24:07 +0100
commit800c4c398cad9dd837da33062e71ccc84114fe05 (patch)
tree9016107a696d96ddfaea5f7fa6d55eadc54d4987 /www-client/firefox
parentc17e7d2a8cc12551a02d28209cd2edbf078d5675 (diff)
gentoo auto-resync : 20:09:2022 - 17:24:07
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest199
-rw-r--r--www-client/firefox/firefox-102.3.0.ebuild1262
-rw-r--r--www-client/firefox/firefox-105.0.ebuild1283
3 files changed, 2744 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 2034d6dcf0d8..e4298c6a78a0 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -105,6 +105,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
@@ -205,6 +303,105 @@ DIST firefox-104.0.2-xh.xpi 433349 BLAKE2B 86121f6ba9e13baabd0e96217fd8518e8d14b
DIST firefox-104.0.2-zh-CN.xpi 587664 BLAKE2B 0c210fe7c503a579b860ecc328033b3e547a6717a384f1bac9e8483e859e9c8cf07dd40ed9cb7d7c2989097a6850dc2da6ae179ee5e5bf6288e1dd145126eddc SHA512 684ccf3095aacc200440b4b33b91c24a75c08f47fbd1be5704ad9d7ce95aeaa1169032efc0b5b692124047238b41dea617ae22c126a60dc5a788ba8a4acdb353
DIST firefox-104.0.2-zh-TW.xpi 588467 BLAKE2B 67bbf28ecb6f4a8305c551893fde3e4a8771c47d02928fb06e003c8e6badc1af9bbec131759446c76da571084857c27566e90b5bf99dd6f5d024398b5bc66163 SHA512 8421fd070afd584f933b0912e74cfa9f62ee5c007749bbea44ea0a20ece130570a2450463da136ff9b00bea010872dedf47e21aff51de9e21bf87bbae2f911cf
DIST firefox-104.0.2.source.tar.xz 478270500 BLAKE2B 1a8317a2880fd412449f18868b0ed7b5a757083a7622ec06fb48c01314774e5645527a217e38a98279494f3140d55414bb3fbe3c0731690e383aa5b617607dd5 SHA512 bf0d972add11566f5ef6402a22abd82122945de9fa9aab6ed7bb7e41d0843d41948a6d95c0769b0b704c066c8ff6e3f3bf26fcf288c64cd3b3f09a13d4dd467d
+DIST firefox-105-patches-01j.tar.xz 18160 BLAKE2B 2acbe25186abb4830db69af6aafee4b63c84e22ba5114d111439f7cab6c49884ab96ce0c62d619d0e8892c84a1fcba7d5e6f0700c0ad45cd7307393b42c14fb1 SHA512 77adbf56f48ba0da5b0e790765a5a1399151337f7945359b861c96bea5e6e4429fcade52a337c04ae2e7dcbf296658ef8c835d48c15ea19491f43137a2159784
+DIST firefox-105.0-ach.xpi 462391 BLAKE2B 518b3592cb9fbbf816850c04a6ff88646a588cc9e611d8e2deb035b0ba1f0ea54f838cc0315b932e3ac0b3890a5c5a2ac0dc66246d9dec2f502d43d6a274b0a1 SHA512 b4ee588178257cc2bb3a4a782680a00697fe0caf5e5751be3aee3414df08c20ba8feb0514dd0fe53c0d9fee335c38d5eaad226fbe2dca048b83203baba23030e
+DIST firefox-105.0-af.xpi 426869 BLAKE2B 31ab4be151e5d7a11fc6ea6ab4434932d795b6440490fa8f68869dffa4c55dbf0f9bbe9ca85e0d71a26f86e34fdeb4bfc11d647bebd60080c274015234012be1 SHA512 ccedfe2193f0dd2b4d895851742b00cdca7d347ca10522a5f1bd32dafe89a4ec030f271eaa22b1f9e7029012ea4c11fcc798cdd6d8f540783aa72336517b4522
+DIST firefox-105.0-an.xpi 507324 BLAKE2B 24b911cb0f68c0e0b354fb915ba81d14c1c7c57d7252c50563145b25a9a1f8cb921c83c6a9f58821b7465e9aa168e5c2af9c9fdb51005699b83e8a6c09e063a2 SHA512 e6220b2d71503c5e131ebeffbeb0a573ce48d15cb9714524de970ce52925c40adca7f2829b615924421a8d4185da03b892613c63107bbc7d8a9d9d6e2a31686f
+DIST firefox-105.0-ar.xpi 571515 BLAKE2B 7986ec6af983f8aa48da55b12aa1446b22bd9b8781cd56d68d4f93c2658e907ffa8dfe67820b1bea251498bea7edd30cbfeef02e5943fa67cae00b7fd5d254c5 SHA512 3d7d6a5b17655ec63aa8eed367190eecf7e6ec6fdc50034f6c530897187d8a53bdbb1d25b968138ca10503dfb6674b3004f820b73d1a67a26a42e20d3a8820e2
+DIST firefox-105.0-ast.xpi 502221 BLAKE2B 322274a9a3f4081de8cbb49d194270f785399da6eb0fb015afad2ab02c9e2b261694fc2a3681632dcf429307c0beb212abe49afffb360b3641c67fef514aa2bc SHA512 bfcb39e7f99b0a769f18bcc6a19f3ca3185ab89dbe881d38991ebfa4b7eefb2cae5682bf9492edf2cceaa27a9fd3f78d73b6b7afc061d928bca5e21b0b0d7922
+DIST firefox-105.0-az.xpi 494476 BLAKE2B 90cf2183440fcf180630592d08da65ea8408cb3c40873fd0eadafca2a9cb06d6e5418be9a5f8140f724ae925cf8df3fbfb6b51022c0d6e6e9782253d7065ae55 SHA512 464da710136325c2969efd62f26c390b25733d806493edc943824b2816f0dcb8eeb88261e89048fbc1183b7e292f46400ecdc6f60b822495f0e237e813b9bb1d
+DIST firefox-105.0-be.xpi 647118 BLAKE2B b5164bbb0b6b3c69220081dbe7e49c41f0de50cd366f347c042a32807fe41534eabd4d150b736d4f38eec70c24d12d4c6409fec35d09734cfe49e0b3a60bbedd SHA512 5139b62fa2ba825148a12f4379daa6cefc1ece69b4220c983c45f6e414a10bebea9c0ea0a1cea8e7bc0758723abc147c9150a5c2699ff8e6b542f179912312cd
+DIST firefox-105.0-bg.xpi 587139 BLAKE2B 2f9047c7740781c41faebdd6764c69c17b1b7cdab13760fd56251191db6062fdb8af282e776cf4a0ca72c7fb517831b426e913c7fb3860a08a0085c0b790498b SHA512 2150eda7eecc111d2d9b01e2bf258405e11943cf84e513d8cbc63690c680dbdec3c5c87411d9e92d5e710ece46e686438260990c635078abd3285b5ce89e1e53
+DIST firefox-105.0-bn.xpi 585360 BLAKE2B 612e307b297a424356069b0e96dd7bec7dfca1a01afe04ea128968667a2b81cefbd85cef04a49daf16c0b5feeb82b68abc5e24da36673e2307df969a7f90fd49 SHA512 d3d4be2d7a1bb9b3c1fec8af9e79fb0af69024e432571079ed09b83163f09663e33e508709494584dd0050dc1c692d424dea0f7ccb0de83fa2754d65e746b1e1
+DIST firefox-105.0-br.xpi 539955 BLAKE2B 9780398c9c47d70707ffd6cbfc30eff20d5be4808df1675b8cbeeaa66ea58c15dfa995b7650db934c398157ec9b945756af74f5b586400b4fa8c4926099d5fa5 SHA512 920ccb7a2fa27392da378cca4ac4d85a1409b837731985bb70b997d3e495874755c8f9d4563b7b00ba2ce5279e4c3417b490d3a82d57294df8288f0574fc0470
+DIST firefox-105.0-bs.xpi 470942 BLAKE2B c448a0bc7b21db3f1cbbab3d39b19d48aa21a9eb60b4a56ab04f5231de3c8d11112a1c7d568e32a98b9b0e94bac511845295f713da31b4b9a6f72ff65823a554 SHA512 c035792c7209a8bdfaba460d3b0add9132de080de6fcc3cbda4e007c6e09af61a890acb2a8fb5630690dab1a782fe3989ae2c520cab7893b09678c1426ff2b22
+DIST firefox-105.0-ca-valencia.xpi 546411 BLAKE2B abdc3ad0bb4736fc5601d8c61e39956028585b45569ea6247c92648e58743e256daf1d3f24a9d31eb756d015d7bf8881c69e7ad38296bd0619b9d0ca18e41c0a SHA512 d9e7902212625c0452ec5a85d0b1bcebe2819ac0d58e98e4a2aeafd2a49a044abf76abf7f2bfd9371eaa54998d34697c9fefb026bd1e21a63f2ac88376dd9b7e
+DIST firefox-105.0-ca.xpi 549850 BLAKE2B 7a888717d1af8c42009ce82800601f55e79d62f573b89b1caf0858614b6e22194decdb67044848b79e650d6a0be1cb373ee34942428ac2405952153b5ec0d8d8 SHA512 d5d79173acf0589d45e87e29736d02f75ed190d204417b77a392276369a9b757cece3740108f5829b1e48934f4cbdbdff712b2f78e2e65f3b879b895b6f586f3
+DIST firefox-105.0-cak.xpi 559984 BLAKE2B dd80d3110193e43c84d9da5154f923f87677872ea47b945897d05bde0d365f8858ae7b8f44c42d13a20d736af7a95e371f2f012b0acde0fc2a440b3dca0dd294 SHA512 1cd94db4d76622c55d4f7abdef34e7f91aaf5e353ed1816d7c9b80b8e3a2c8e1a5183cb0c30eaf1c90e381d9ee7e5ee6cde8cd811c6586fb93494bb6c7186482
+DIST firefox-105.0-cs.xpi 581729 BLAKE2B 666d15f6dce17d7525cd446780b69cd68e663be35162bb94ad84a739ecd6586b85abdd923cfcbcffb1d67baf0f843f861ad2c672e19397794bfe44fd6ec37896 SHA512 15bbabc1de218a372da7faa95a015ed5264df75143f3c3234854ee75144def6b22ed5ea5b30784c043ec0a0fff0bf8ac21e5db5f310d3911b73f60d70264feee
+DIST firefox-105.0-cy.xpi 562725 BLAKE2B 79360272309b236f4246b8d83d4d83ba9a9a3ec19c46fa9c044e3a0f83ae143d784f61b647241c30d84ac5fcc99832331ec46dc90d0b0bd4e1536679f964b84a SHA512 ffbf678454c66e73ce5631dbe93efc9435b187d1703d5d2eb684111291768a75be186c71c0a112ffa4f7ed9a05311384dcd8d80781bb2d2845da19cb0615db14
+DIST firefox-105.0-da.xpi 553589 BLAKE2B 62fdfd8c6c0f8659459078289775b0dd1453404d1e5ae899b4d58de43d9a4622c83017e396962219f72389f22b32d10865203aece1c673eb8eda2f3415feab37 SHA512 fc1fa288fd0bf4638376c32062ebf117ac10a907fe36e9730f76956ce15f43d63e8ae1b9ed9b87980423b33cdbf59d936e01daa5e3add6954d7f5458d4aec4e2
+DIST firefox-105.0-de.xpi 574350 BLAKE2B 18e6bb652780fd13eea21b0f7a16e26601bdec7caadad2885d951193b9e80192c687937083f49710dcb7408d6be4829cef0adcad3c8b3ea838301c61f08d1a88 SHA512 b7f3bf6f68c43e8da47f1caeb9f48a16200c6aa33d9c1fbe88e9f2c566fc4e237a5315c4d31544681bf24749e37a4f162527d57a4922a47c31fe034900508c26
+DIST firefox-105.0-dsb.xpi 587684 BLAKE2B cb500a529baa29324d564472ccbc836c227900f0a141c70978e59f20673bd61d7e7139b1084abbf511fa4cb3861b6d694a96fca5e8e9737fd7bf048d0659db9c SHA512 944d69c3632e12594f61cf91eba407f71aae2e5bd483db8f261b2b64a599ff3b95a67aae6f2ebc9ff9dd4f79524ace480d99bf6ccfa4ee9664539462127bc298
+DIST firefox-105.0-el.xpi 663172 BLAKE2B acd710ed1178dfa20e7d54248f99941d6bbee580dd230455d7c8256ead07898b16a7d856054561457e24bdead14e0e4121f55e25255506e6cc51cedd63687974 SHA512 d4144295ea1929466f2efadaf833b44be2f9ac5b796cd2d4dfea51f134a3d5a6fe4db569c9c66c0be2123b208858cf1d14889a8d65deb18f276ddd05fd7048d4
+DIST firefox-105.0-en-CA.xpi 523058 BLAKE2B 75c34195de8e535e5fa85b601ec1ccccd010662ab0044246bb5211017223416173898dae8ee2b4d400d206619a2d423b508ade6f0ee56e5703395dcd07cbd7f0 SHA512 976ccb29f80980c5cf80543e650276f3e624787fe26758859f6bbaffbad2538d7db99dfa692fc2f9c8492a06d5b1fcf419c12e51b0a895114e584d36f729d3a8
+DIST firefox-105.0-en-GB.xpi 530699 BLAKE2B 858de4b72d6680f83604483c84edf5b656531c9e5dcc5e0331632c5645b50fbe4fa2e05183d032fea0f258e933400e9d124e940a0fd3a16fa8ac0f4564946f46 SHA512 9181ddafb4d03cfc7d1bcd16e4b92cfbcf220fab932f266b7c6c24bc98c3d90e9fa5b966fbe544885e9798f353f261d9a5ec1341b30219fc0937f7bea5da0e63
+DIST firefox-105.0-eo.xpi 554046 BLAKE2B b2220066890e47e08ba87f8b6886ac4eff2b88d8003ce8469bb3b104ec7fca2d7f84deb5a180f8538be4a79e82bec4b008ed40f1dbd00ded8befc157ef57caf8 SHA512 955d5b73ea8dd7edc501a385e707a376c48170cb19c69784b382d5b890a7d42bd613936190cc52f99c7d0ae0be9af62e111ab48c599ccb608d9c0816bf226104
+DIST firefox-105.0-es-AR.xpi 568709 BLAKE2B 0e152903bb46b13a22aa02777021cdc4e14141740283f2a52cf2ecd885ff6449e3cc266d92124cac6768b2a85c1dadcc057f6c8dd3c4ad85b334f661869ded32 SHA512 1fd92c2246df6a5320377f5f9983d4c098a0508226d8e866ae6c03c4c98935f2ca838e6de541bbec1b4ee1569e42a1d2416ff6489f16911ef79bd4d27411a75b
+DIST firefox-105.0-es-CL.xpi 567806 BLAKE2B 1be487ab3f56aac176b337fa727964f500265bbf7c4bdbdef98444cdd2f032a4879cdfb58acfb58203ce409b7d6a3d9ab75df6a6eae1b0bcd58c289572da8229 SHA512 7d3881ccbb76349849812aad858f30cfdc468402249df77058230afde59297051d540b0d4d5a05db3209f0065558eb74da17f2f4cc0bd0b3966a2a967016b2c7
+DIST firefox-105.0-es-ES.xpi 553317 BLAKE2B 7c8ff9d42c9343c75ed4360aadb0704a4986db6d2165b6a8bd5e80562fa9ebd0bb5736098b8770f15ec13707eed05a29ba3132d5b17e6ced3a47377639fc8804 SHA512 08741a2a0f8ccd3a401d1743da174d41639ea5a541ef70170ab641acaa1688699565a0bbbd9557a0d8481a79b1d5af2582ae98dee9b7803b3bf7c9c8fc63ae96
+DIST firefox-105.0-es-MX.xpi 571862 BLAKE2B e86cc6d277cc50f687309398f1060109e2a80ba180495ce20f8568f8a15a50e6cabe3f3dc8548d59da5a19534d96aee8985880923d4447715d907bf9cdcbacdc SHA512 a1ca0c654f388e4fbd3888d1ddab6c0451fb5d46117aea76cfbc139cd24861f45e0c70348bd7c6b2a9b765f7fe19417d7a34be00e547bfef4112dd3cb0dbd668
+DIST firefox-105.0-et.xpi 539881 BLAKE2B b1063c03b9f37e5867eea4ba0e7f79a0056362aea929ded13292c937faecef21d4c7bbd923695972912920b22a7ab9c6735ffbe3c4738eacf572f4684e5dae63 SHA512 29f5c8242762fb28dfe944eb071cf6b4bba82cf300181da2817ac3d3b3c9da4558eaa2cf8357a4980d3024d10c1eab929a8112d1504035991c828e9f508900c5
+DIST firefox-105.0-eu.xpi 556228 BLAKE2B 93dd1796836d3a15b1f72ccdda4779ef06d344970718bc593c08e7b3832ae364cfc1a95e0a009a0b089bbe2f3757272002aad6642ac1609057e30e1da1cd19a5 SHA512 ecee6a561a51f59b9b7788942c5c6341ca112ece9db4edb69277b2f64c2e7652392640f3937c9a3c4f91bc270381d6597a16ff6b51d5cc4ee1067768f442f7f6
+DIST firefox-105.0-fa.xpi 571110 BLAKE2B 401844e080a74762f28f106c5c602d23ae6a07b0ba7cb25b147b2fb548efa630956f4fa547d26627865c2837d20e595af02b3d3f1072fd7747545aedddfa3335 SHA512 4be6922847fab0622c81b63e8e180035a364df5f120dc1d6a84fa85a5c852deb0197ab9f1d60a0db54b77f156e62f1dc2ef528711fdce26d52c11fbaee2f51e7
+DIST firefox-105.0-ff.xpi 481136 BLAKE2B 27fe9c34aa4d00285ed9a6035b8b921237852a7c5aded61855d95749cb377303409097a34eb667025d249f8bc06467a5389896376cc35e98ccd5b031ca4d21bd SHA512 cf35094cd2978bdd44660faf9a29e2ed5ef6ca8bbbd464499c82f193cf0c125f909785defba730aace1d789da88abd47ad3b8a9d0a76b29844003fc6a8063f99
+DIST firefox-105.0-fi.xpi 552062 BLAKE2B 8f52878f31e8a224b5ac06069007e25f606740f14eb37d6f24278ad45677fc8186b01b071ce5e571fdc206c83c6eee638303a08d62a2b3081542056804004f61 SHA512 7dac8adf410da53e1614ca2358ea7f3b06f66f019e58c94a15fb652dfe2135fcec1248ad5a2f1b56cbf8e174accacbf16d2190806c6597aead880b45bb9cad71
+DIST firefox-105.0-fr.xpi 580211 BLAKE2B be25a8e129d640fd8931b013d3ef79a0b2c10a8784eee5e72d7bb9e681a6d4ab3377799b5270da1a2ab0265a0e0b43cde56bc5a322ee791114f00591cc6582cd SHA512 10111f8792befd7069eccac01c91e648595f622fd7d17e37ce6f5c656d49c286c4869997b306b560bff696e30afbd15f6f85d7989290fe871bcb8c27c88e1862
+DIST firefox-105.0-fy-NL.xpi 564513 BLAKE2B e68e5fcf8d4b5bb4ba5d64806058ef87ed78675091638583b5ef435766c40b9c90b7191b20cbb542653e4af7a9cc5346b190851a7e8cf6072e6d5b4398f7f978 SHA512 31488b4bb233e76085b9a2462e81833bc9d7d46dfca73f35ec50a12ab881d217d031fda92fbf540275c2bebdbdbfce836eb22937fe8ed46c9d59df679bb27600
+DIST firefox-105.0-ga-IE.xpi 479289 BLAKE2B 12e16417e7fcb89b8ec60dcdb3e25397c904cfb272f58994551aad2f6c434825d70848af68087710cdab67cc4dcfa47c95b73a5d068abaaa0ff0097116c0d768 SHA512 0ceb64d5d4fcfe8e1c02b34d28305904ff1a330a1300882561b25af7a3109cd2e772f49f4ca83c818c6df37828ce8bf12bd7bbc2fcc27d6db11068a315a1e02e
+DIST firefox-105.0-gd.xpi 552645 BLAKE2B 5476f373edcff5327de9285e8df600a7b4bad0770cd7b159cab6084e5c1944ca2f933b64858d4807f08bc9c6c40b44a8da98ff5d35659153689e1a376da7e43c SHA512 03faef5fa0ddbe50bae585d180100d3d668b26803de94ae526d23a3764df8bb6bdd6a30229c8a3f2e4da2440b2660ba3ec149384e21d96ed60830b228a65c095
+DIST firefox-105.0-gl.xpi 548771 BLAKE2B 96f99730a77cb0567a795749e9113d03a3f28d714bcc7aa9ffaa456e00749f60bf761e652179bd914930899adec40104be59d3cee99990a79406b7bf4d72ce09 SHA512 58107209fc005b44a683eac0489629a60913bf6405ce18e834ee43b5c533906df962edb23a574606e2dd5648501fbde93735e43d6bf499494114300564f225e2
+DIST firefox-105.0-gn.xpi 579017 BLAKE2B a24aa45193226265f20a8ab8c29c2111043689db07ce50008f573db406a569add2690556056f2e9e4c2a345ff0eb966a9398aa94f0de77d9a0fa06cf10a63a89 SHA512 80be6dfb2a2e7ce7e68991fc2f35a54a6249bd720adc06d0d913f8f465c5e97c958b051ab60b5c575f80320d1a880630558ab83d94eeb7460b1abd914c5982e8
+DIST firefox-105.0-gu-IN.xpi 536338 BLAKE2B b75b9a86b08834b4f8289cc82649b73e800e4f2d3cbe387e622c93d400b3e1450a18c4cb7eb29f52fe27b4acddb5ab18d2ab5f5103d91f049384bce6f931c25b SHA512 e0547cecea69ff88f396cef93283a360c747add582a470cd1f894ce036d224f3f73918cac92785ba38a9d0ee58f6c88892d3432f598cc6ef15142f66fda7bd6f
+DIST firefox-105.0-he.xpi 575460 BLAKE2B db24f91d8496eb68eaf6ab3738634bc99d53890736f4e821f528607c8bb4564749cb6698116f48878246aaad6ce84af5b33226f6df23f3f7c1cbd699ab33c4d3 SHA512 9b238a9e9e04690f96cb8ac204d387b2d27effe706857093317e37d24140a79ec05f729bc20c2f7aa1a7e3e1259eaa942fbdcc35f00f68423243343b19d81237
+DIST firefox-105.0-hi-IN.xpi 566798 BLAKE2B c4beebf4d1469ebe7c44dde7714f4857f59dfc06e5f0c5671bee82f2e01c4f5e87b2f0c5f3dde5027977ed49f718529cd314cd9dae55c62e9e96eb80e5b10244 SHA512 30e2b3de8f6f68a9f53a386ae96b45c6cde45c512b247dfa2aafa29fdb564e9dbf342de79e4f1af28d67eacff87cc4783244c5507ee51add20340821a62021b6
+DIST firefox-105.0-hr.xpi 539459 BLAKE2B 6b39a370a07997a7e62f4248a7dbfa627f0aef1343362b35e221a6364e45d0ae54dfb57f37780452d8585ee5ca25d79cf7c4a4b30346862b02fc05b8c70390de SHA512 7e300696f256f4df213ed373ca6c7d47aa9256dd0caa6a10ffeafce2883edce15c0939461e5cba583ee309a030d100ade4a456e84efc295f790e2e9400bfc302
+DIST firefox-105.0-hsb.xpi 583863 BLAKE2B 93f82e33980547b5c57a67005176abfda4115b3a216302c1d14a66f73471eac409f44ecfa6258e54fd36ab1312c6166972a99984a62c1030a215037f1ad7b6da SHA512 d87a15be0e85a687cdb98313c3a7dde03f5c55a880eeb529a9a0b2dda4e3065eb1d1361834043549b1479a0b60b1b2e879eacdf65f553945d1681c8fdb2b4465
+DIST firefox-105.0-hu.xpi 588449 BLAKE2B a57997cd1cbac8e6391454c19a32bf5a993d4567af6bda8676ed1de70f428da0634b18e2b136527b2f147bcc0d83244318dbecbf7cb522a54af3fb9474307738 SHA512 6a3770f80402fea7e1efdebc2d6abf41a097c6909745b62dff0880da63529d6993bbab9bd2a15a96c51a282c43dd6ee060970b9559d486fcd315ef364aca8797
+DIST firefox-105.0-hy-AM.xpi 591352 BLAKE2B f23b8df6b56269fce491c3024e78c638b6f1e7d6c7c89e62868af3c2a5133bd4ee05d38b45854a2f177ee0a6c85564d8a0168e48652110ce4efa91b5d85c8ae7 SHA512 7b0b6088e57d8d16ad1315379572077c6d45619d530897f8473c9b8afd46ab9337a97c9b1627b6bd210d3ab2b776fd825f2953a0751fa6f3b5cb57b26c92f30a
+DIST firefox-105.0-ia.xpi 553254 BLAKE2B d723d6f3009c11a51c216a90eed2e03675db55146ee7546e6fede2f6c72e3a065ccd7943b08b9a9802ee797bbc3989d3a90df264cd99823957b5baffb2a322fe SHA512 b46c013dd0d3f4b3bae3941421e913c594beef27c8d1f473150d1bec2d83fdd360e176693ac1fce6106dcceff1420badb45589ed5cfdf28a5b854725af685579
+DIST firefox-105.0-id.xpi 550328 BLAKE2B 3c8330f3f30b391d41160ced36a9e1624ec690dc9ea1cba5174a8f0db406329156e58f21e91ecfc585c1e823e29b8ef6d1ecf57990e93231a4091c2eb13b3d75 SHA512 b77f30e2e93d1823eff7654fc4683f29720e64a870d2b3f128ab2946267693a0b22a60a16fdfacd2d6e4ecacc876c6fae7f1af225edd5de37e8d004b2323ceaa
+DIST firefox-105.0-is.xpi 560803 BLAKE2B 2f28b4c948d952598e17770b9eef2ecd6bc00c5ad05db33d59ced3239e5e82ff4cd35315b3324c5d381d79393327c8094bd0df57c50f2f022297bb79ad155785 SHA512 31771a373cac848a869d50ef6e2cf75d3fd1d4b7006c675952f44d2918d0a6332a901ca93c02c0e35a3a14c3d4bfb984c0c709921301d2201ea5a0b1a51cd834
+DIST firefox-105.0-it.xpi 471260 BLAKE2B 99638b000d56a7adc52173ec286c9398a3bc032f3f8d6d2fcda12d37a172aa4520f373588c53f3a84c21e3c3ed65f37e5a593810190594afc97e5fc6e9549fe1 SHA512 09ecbdcdc30e87613d2f87fbef4fcd39a2f41b351f917059004f92f9eeec7cd504ec79e5aeed7c9e674f652777639697f9a6ad973f213fa577ff1080a16fb0e8
+DIST firefox-105.0-ja.xpi 593770 BLAKE2B b9046c203e81892e11310ed46671d9f8f0227211aad441f8904dcb94d82c47f28daa87294df94d3c9a61722939c1fab65bb698751fcff790828d9a24fb70c13f SHA512 e031c6915862a5feb633cb39a2c72e6b9d265db231a6f3a64416ed6911ce1aa725f85b751366f613ac4903a75f090fd7a03dd5ec6dad7078f546d66bf33d73a4
+DIST firefox-105.0-ka.xpi 614606 BLAKE2B 91c8869a36cff0e8cb4e018222c4f5e207ab669daa59675a84ae32179058ac67ca48c0db817e670b965e3484b2dc3fd7f165f2ef94d943af5c8a46b5463ab58b SHA512 b944f7edfa5283674a3425a4b0130c74c4ee5a80494597b1f3a67cf65957820343326dda96daedb347757bb4e9f704c06fc3b8f839ee4439f0fd35df8fc90f47
+DIST firefox-105.0-kab.xpi 573721 BLAKE2B a1434c8e0c074dabaef2a34096123af3d0367c8cf625f60a144c746231711b54ce7af7fea44d840cb830cbd58cddfe2dba1cbc9b0ff7c22b0ce30e1c55c477fa SHA512 ad287eaef61903e040ab1900583efc268cf67f551eb35136a8eadf5208c840722c6d2fa2e627a7596902a0f304941ff33240844dd901f858c5460a1bd9281c16
+DIST firefox-105.0-kk.xpi 631192 BLAKE2B 40a7b08c2913b482d6a16c7bd043b6b88de4a9afd7cb96840d06761bd5fe58eed5d5d3e2f32b7511ddd3f7f362a19cbd7665ffcd6d79b2540592a3eaa6b5f6d1 SHA512 890a098495a80ed2069d8a85406d1309655f7f4b90e19b7fe75857138b86425b5cc19e85e58fb5cd43a10ddbf924c191c2164e395e033b4ec2b0baa90e77b8f7
+DIST firefox-105.0-km.xpi 540636 BLAKE2B 3cee1fe8f0fd605436c6a70480e82651c58ec9c85109f716f4dcfc3521af99181efba3702156033b20172c521789172053c410fdf95b83700cd864dbf52dc309 SHA512 d0c53c1b4994c8752b508f74593179284692fd3608a57ab48bd5f4aea762a3961603d20aa0a1948d459faf5fe38290da2666449dc91af5b692eadedc24bdec05
+DIST firefox-105.0-kn.xpi 506456 BLAKE2B 887f41af6106df63d038771e73a4a0ab630a6bdc895c51f7ac353baec9fa89f11867b1e46513201ccc180ac2160819a0d378ec60ef5157cb39de3ff624fa2d7d SHA512 d99a560226e96cafaab2170d69c098da127c62fcc6e162bbb8499a176dbebe16cdce983ef0ec204be8b3a3d426f685f6bcc18afc921a6e1a314a7e8d29375a6f
+DIST firefox-105.0-ko.xpi 600511 BLAKE2B 17d0ba694c396d9147b0c42bb63e10fabf28cc5921cb46c8e1b5db318246e1271128d7247ff97de325ce38b4bfcac4cc5d195aa92afcfed10bc77212e2caf0a2 SHA512 f5d6b959fbdd4a51ca066bde5e3633d3c1af455ddcc6508f4c23c0591bd058e0220e356561130b95c61b87b751a4c7e6216c3e52d1b532f1d395e8ea1915bf13
+DIST firefox-105.0-lij.xpi 479007 BLAKE2B c3ebfa92f42b674c02574e90d10c2d64ece9fbe284f9c36fd5db18701ec862a18a19df6a6590ac657fc9f9690d891d6cb2e361ed092cf58d38d03d58ff2695d3 SHA512 dbc7136a1f1fc5705d2b02048fa8e1ebb1f052a3531bd7a87aad6bf83e379cc8c1b0f644a68c7b6ec25bffd2318e62a182863c63b04d623b5ae7687af23c7004
+DIST firefox-105.0-lt.xpi 570052 BLAKE2B 6ba0174c3deb84a0f3d8ad4558826f723b2fd15fafdab63e5eb9c8e8a15045d7b3375d84f426f69ac69c7b05210ff363474a05da501924e9e4bd2253a6b5ab60 SHA512 2545590f43ff0e3cdd027b0023e7d4677702151be3484600808988c586efeabf77e4e5b3b04b2f70221b6ba78e1f36d4de8a049cc5ec0208901f286e4fcf861c
+DIST firefox-105.0-lv.xpi 472201 BLAKE2B 328fe46dafe89586a1f8eead3704f2ca65d83e3c2930a903f5ce91a5f1eb75ffa4d063489e4a24937bf95e5d6ab6ace242def6107de26a7b6116202518203a14 SHA512 ca09b9c5e13f803e081b181d5f65d06f2a58c763bb0a10511314a80100f4d7d2fce7131cf128b838839a05158b6f14141e1c7b26c53188ed4d7f57fc7fc018a4
+DIST firefox-105.0-mk.xpi 490859 BLAKE2B 38b9a5d250ee7c4cd7093dd6da3d3c289726d75cdbfdcd992f343d5cf9a783ca553a543593996baf3f03f697ea15a1392048da3bcae21de3a1da70a301a4a246 SHA512 0b83d8477fdbcdf5ea386cf4f9538e9d58d52793391dd4bde7271bcc90ae58bdeead3df184f88f17b54fcf7ac3fea584d5b5fee0ceb8ddd477660698009d8392
+DIST firefox-105.0-mr.xpi 539886 BLAKE2B b00ae908acccb3eb23ec6cae816b32d315f29e820d76d52b523e53325af8decec6b6b5acf467b5e994dc76fda9946336ad2895399d4e823ce07a871f135150b4 SHA512 c054444affed517f7507984498e84dc4f779d98473235cea864a7f7dc3b474f1121a9d6677eac85599e0b4ef186bb1c68fe8f37be72859f1f3edce9407015307
+DIST firefox-105.0-ms.xpi 457110 BLAKE2B 25cfebd14cbe0164252689a99b9ebc1a0991996b30626efc547a1c869e5de4a4a4707d1d356fda8f6469af67ec5a3f06f1a3c5092219101fa174cbafd8dfc9b6 SHA512 3279fa8016effaa64b61a51e843782972db118e21928d1105a381355304fbec41d163a35e02cb47d49d55584b5a86b1d3d34774f8ce24ac781d4118348d99a7f
+DIST firefox-105.0-my.xpi 520836 BLAKE2B 278a46b4718f265c6e8442896f9a0e837dba0535df55fa85e4703a574dbab18d75ce548bca15df399381ea97637855f96d82bdd33227f4237d87384a3d99bb5e SHA512 3419279f6b1a05408ba547a01d4950803e7708d6dbda4b38f1788d6d450f18a920d09efa547168c43a67155da9bca18bab8569b871f2bb3f35a240e6d863a2b7
+DIST firefox-105.0-nb-NO.xpi 549440 BLAKE2B d776d923ccd85b33b8c686b60bea715c4fbdc10e2cd0f4f08fdc132625a4149d1fccc6947d532f1e67263c54cddd6cbf1a6ea7d2499e6133c7a1ed0eafc28c43 SHA512 cd8a90956635c01c729015949447c5d060e9f1e447b9290824e332efb953b5c0d31a601ce16f50dc6f15ed6467e383256613226195b2758d4a1168580fa46c3b
+DIST firefox-105.0-ne-NP.xpi 498114 BLAKE2B 5e5573f549cc721c8a6e507da3cddf29df748d2e563837cd4f28135f153f844d9591c53b1738bf216c8194f62dddff1f555482ab53d481e2f7ccec8292d1a78b SHA512 b90e3f35d0c3cc249b95b9e0693221c14967fa07a20afa528b717884285b3c62ef2dde5d65058907f0ff8a264544eb9843c1ca44ee54380f79b81b413f1be25f
+DIST firefox-105.0-nl.xpi 558679 BLAKE2B f0098d310b3d180abaa565e3fc55eb8d7f7b0a8f1b1cee8ffc9fca12fbbe5ec569b6e15912e880a7219e9783af2751ce342f43f37ce76dca400526c4cd3f1c64 SHA512 f984d5b81c24ee8f36d177051542ff8ce06b984a2ef837b3410aed75c7565c0bc309e19c32ea9a419c01dc58d755518708b39b7194cb5e279fa2be3470b3f8ce
+DIST firefox-105.0-nn-NO.xpi 549946 BLAKE2B 7e4830e951881c9423a3ceee904a6b7848f7a78622841eb44eedc1d25a855e92a8621e3a37b63d14fe7d63417de2d90dee0cc153007b291864a843e4efb994ee SHA512 4734c8cf916c85d1c3342e2c1a561ec0680efe4e98a382467a4fb5fb514b14372d29c587ea0f5530881bdf314962b57ed6954472577d64372ea636673ddad174
+DIST firefox-105.0-oc.xpi 569592 BLAKE2B 9f2d041dfd06745506a31ef2b76025c7fa8d12f7d1750db148630582e21046fbab38e5b8764668731590a0e65f09ec97d0beb67d165a6dfddd944234422ea897 SHA512 3e1076ee5fa0531fba9fa5a37a56645f5ecdadbf27adb392dfd65dcfab5fbcd56fe0b9f08234c3ba192a827c33a5d493123411cd5809cf935090bb9223c206ec
+DIST firefox-105.0-pa-IN.xpi 621200 BLAKE2B c36857c0214595febbc3fd1c9fc6a41b677d1c72d79dd6e67e9a55cdb7712f3dff9a90ab09fa9677a83f71c93d2eae1e9f09f18655edd9afda2bf282f9ff846e SHA512 7a3d0761a0736d0386cc658afd14946ddb843c8a380c79c1813a0eb093339ba342d1389ac16c5fda2951790622e276caa8e99cc6ef7d30e0edc7a397765e16b0
+DIST firefox-105.0-pl.xpi 579327 BLAKE2B 7364acda33029575189c4e84379320b96bfbf7343f0d6da45b15e66f61410bc190624f4b066c8e7cc00f2803fc6597e31714db41fe7f49d58d59178aa6f41f5c SHA512 151c63dded1a08c2316818f72236dc907de3b8f91b89595015cfd7bcee1a2b4d11830d5ca1cdb812de5c70f9c2d7b1b6a803c48ad02f7b12942185b028143ac1
+DIST firefox-105.0-pt-BR.xpi 563715 BLAKE2B 19ee561ac8f503519d4b4d323b542441dff0a7a60a22e1d76960adcf03bb2d46651274db0943cf01e802f22468dadf3911a668feafa51df9cee1a8265bece87e SHA512 445f31e9e5582ea911f9fa8bcf2d52735c48273da8e2c0d5df219ef1e23827b8a053e4a7f38107b78a580f76f75802275acd1228fbcec12133e6198fde1d2272
+DIST firefox-105.0-pt-PT.xpi 563873 BLAKE2B 27f3940da60991ca53b136e02c879c77a6a4a87791d4e3d74c69d79005f71107fb6ef84518f95994be6333944f431a69e7b4919b288b87d551dc23adaa0a5363 SHA512 34a669c09bc275e7b1d2e800c01bd527ad43bd837be4a16ae51df1920cd8a17a7d8e1743abe478df68d569ed4aba878d8627b35f93ae4ea3c5cad0a576c7dcac
+DIST firefox-105.0-rm.xpi 547518 BLAKE2B 2c67c5e8bcbba1fae3760a3700863c49d147868ce1009f7e4d4076f2991cbd8d52aa3b97c385592e92a4fc965bcd2b4326099d4825360cb5c7726385e5041ec7 SHA512 ad6c601e038c893b2bfbfb083fc09534001f853d0d91807dd6b686cdb7139621ff6523a60c17d159b14759ef00a334ab65ba953f5e16f3f088305343793844b8
+DIST firefox-105.0-ro.xpi 537768 BLAKE2B 8a5f9a93f71f492a2b354cb66eb8775873594a28e6907d77bf21dbbbbd5a4bc03c5867ab38a5b19ce26a8c215957ae927833f4fd031f321cc7c4fe5974fb10ea SHA512 5234754893df799538d00c9bbc0509470ee0558cd7dceabd80fc8cd45be6f68c5e078b474e88c07d0cd28ac6b2329deba076da315e584f470cac02e6de971348
+DIST firefox-105.0-ru.xpi 651152 BLAKE2B c8b5ddaf3955daf81b1c3109a28bd5c1f9d789797932c65603ee2c9628abed1516b8010230c75ce83045c8233e7465ff8ab6579bf5460f6eec7866ab257637d3 SHA512 132d0fdd7d0027f364cddacde8d2858def95f3d27ed5fc76fcbe160c26944897ef345739bd709a7f4955bb4122e0d1b7c34ee8f69fedd434448858f6c1a93c01
+DIST firefox-105.0-sco.xpi 505203 BLAKE2B b831362c3c03eb46b1797b8481f7aa8e345cf1809d0ed055ed1051cb0a191a44704d7ae0eb041373b45fc8a22ad5ff5d1a8d16991070cea17d76ce9f5765ee82 SHA512 5c990fdda7f7a587344c7dfd2ac5fd40c303a0fd3525d271bc1588dddd7fb0d656954c789d171983a59ad8425a2b6f299fc0324922d39a0964785c155b722bbb
+DIST firefox-105.0-si.xpi 573125 BLAKE2B fb53b2ff54316990eb3edd0c059deb6a08f62e55bf3b515ac4deb5498fc0e432b56815972b87fbccbafb7aa19a8628b7a8417b938ea98603a8f4d78632b29728 SHA512 3061c7e44c31c754a9608d22c0e02f1d0649df9090dcd91c7bbe607a16a1034b89d75a0a2812dd5ded3c5962862d6a0e729eb1fa0733d54624ca48f3ec472d36
+DIST firefox-105.0-sk.xpi 588214 BLAKE2B 212fb528898ab2447e9d09dee1db229adba4e67f63a78618e0064f858aa93484b0265084e1eabc1f715a5b3fc0a60aabe5d5699cd7151c2bd151730b2a4cdbaa SHA512 e9681134cd349d2a64c60beaee02d9fa9cd55d99b8a0d1296996db7e1f240c148ef62b34c9fdc1aa9fe3fe58ce0b3c4daef77ffb564c88b7dbf9445073f021ac
+DIST firefox-105.0-sl.xpi 561108 BLAKE2B 9dcfcd71cce3fd0218875b71cd4984c5797f48bb1508ed46c1ca28d040011951043f62fdd2e1331bd3f044c551355850b6ce7b3a0a34a49402f8435e1456e283 SHA512 593d913f31cd62d13bbdca59ff2b3e54551d72d3e161c4c13a2f77937d95717cb78b201ef7c8af249b0d9162972c0161df783f64b071f8aebfe3e8080f0f195d
+DIST firefox-105.0-son.xpi 433314 BLAKE2B d86b43f67b8156ca213c6d3c59ae0a1035a882dd65aaf497e853ea815d3cf487073b8e4030affb80614d1f79a6e3ef22d70f4685d5591e7c77d49cbe04c08d7f SHA512 437ef372ab79cb5bf36d7a1805ed4253955cd8293cc60512156baa679f22bce8b9a2c127e0038c226b6aca279e40a5597eeb891c6633e987e61b89009f25ec46
+DIST firefox-105.0-sq.xpi 565438 BLAKE2B c26483ceee5196fe31f7154e5b3a544e477add30c974a89b22205a9d07c2f38f8e10c65c18e103f4ad309e458e81462f520717c98c24fb8b2741ec14499135a7 SHA512 6fe64021f01ac8877cc30612fdf957277e2a2b0d77460d3a75b5d12be807330621f805d0ab4858ee217a07c22d662bf5c43f361daab3c6f52af58a319c06821c
+DIST firefox-105.0-sr.xpi 604650 BLAKE2B 86cb703f3ac2ce2fd5260cfa4f72c2b5e18f651be839813debef827cf21285d031b6af18d756369bff848c46df8e5955a17f4fae0b008f42c96c160a740028dc SHA512 e5f07a3b9acf5f7103613ad0059ef1e9d6a8cb3930f3a6dabe807747f75dbc3e9c74b14104031b3795b01483e9bba7b6c7adbd8a6b6e1ca5f992465a4969f724
+DIST firefox-105.0-sv-SE.xpi 560616 BLAKE2B 0cb7eb69fc2831b7e31ae8cc724c0c20e234d32b431997f0ded1f4392b41739ff5addfc6ba55fed19cea7fd2874d8d9361f35dfd936b147df408387280bb4aa3 SHA512 3a4619f618d2bd47445b4acc16c065c34967eab09a891b1fd81f1ef2885fd4c350b871829d74beda2ae78ffb83598379a2b0037405b1d4931de7628fb68082a4
+DIST firefox-105.0-szl.xpi 520743 BLAKE2B c017823733cc8c7aa663ff0d2390d7713cb09765ccdabab8883ae6a8260e17e6a5e1ddb62dcde381faead167a226e2235b39797d76e2613bc29bd14d52503d46 SHA512 ad08c5bb2e6ff3da15900d43e6756ae51870b7aca91b5400888d2fc9780929f78605445fe32bce7cbf8a6051700658136213a705b2d36a445852a346788f246b
+DIST firefox-105.0-ta.xpi 519016 BLAKE2B 6ef09bde897cf09f424b1c86f8f6f62bb1ab47bd864821399d2bbae2e310c8a2d38941d7ac1767d2875cb54aab4baa945da42087bb516abaf36f951fd9054f8f SHA512 3d9a2d7552479342a8bc8141619e95018ec738033d7b61e9b5d81a4ca9dd54fac9f36baaf24a4f1b3e86ac6dd399acc22ae325c0d7c48c7b538bf6538515e801
+DIST firefox-105.0-te.xpi 560549 BLAKE2B d59cff66c4026428eee5f7d6e00f09e4d27a25ce4443ae55659e6c3989ef5dec39ddbc3976a205b463de66bdcdf49888ab8894e557eb8bb1d2958d5efffb1c3c SHA512 79f0dcf66565b45e0c5c0a2910f276f8d32355b90c3f4d089a5a934fb1d77f15d3a1936baee51b0bf360c9670b88dce4905b311e0338d437c6c05414d1e9d9d6
+DIST firefox-105.0-th.xpi 621828 BLAKE2B 0cc3253d4573a32c15e6cd00dab4011f8881039bde1a4438f76b44b4a276b6fc00096c4cd5c80b337caa68a7f30ea58b5ce5980ab42119eb99e02f7287eff33d SHA512 b9b84266d1ac5f6f676dee29abfb07a4ca13690e45d0f04774bee6cad317b95110a80af9afb8d6c66e246e33c57015a5d41c6810583e96b1bcd5986c0ecd8190
+DIST firefox-105.0-tl.xpi 528005 BLAKE2B 26ae127c0a7189aa8a320c7c78a2f9fd30a5a99a0042428b9cf0825e4e4adb516d8c3c36341b49355f196dd4b47cd53568cc0f28a645429eba85046418ccefa5 SHA512 c449ed87ca56f18dc70bfbcfce5e737b00513ea2221a5cc0ec5e357b0372434058e4045d488b1723834468e29bfb1ad5a7b0f4f34691a5da82bb103047a033cd
+DIST firefox-105.0-tr.xpi 574327 BLAKE2B dca8147b6b00d823cba9655daafda6938cd10990a5b43640001f55e8608cb54b32d3c66a623252b45e947761d703ef25c03a5d8c95bf287f536716f3ea17e8bc SHA512 b95162aab0e1c8530602dbbc7c26d798768085f10ad4d7d36e9934d956f4b3a1cd6529c48c9dd63a52098b88190dce2ab087b9a1f72691c4fcc82c659cc9cad2
+DIST firefox-105.0-trs.xpi 498807 BLAKE2B b95619ff1112814fad74979fe2556f65f218cb64d70f7d3270f02ba7f6ef8cc350cf1d04c0a7a3bd9b18f7e36310b215c1cca5ff15624ba2c89123fd5009abba SHA512 b8f1b2e23ce6cf9228c14ff7314e307021003983d0db7533e0937bdee102b41061e1c6982637730c797f20cdef9b89659ac3ea1eda9006241e19a11b1fac7f37
+DIST firefox-105.0-uk.xpi 644336 BLAKE2B 0af43ff97b71621eaf2f7d028af2fb27c446fd0d193ec5f7e7ad37bf591a5e23454df5ef8960081a7c0bb6d3cb89a4d07ec11c33244a72b395ad15919de225a5 SHA512 bc656f7f3b1f81471e446ee9b7e62b0cf80b466a55f23f3fa4d0147549f13f0c93272350b0b0ea433f91ba0c2bc669c373667a5d97d5ba7bb4d8a8102401289d
+DIST firefox-105.0-ur.xpi 566535 BLAKE2B 97b2d3ef7d1560ace7445a68acc36ae529617b592197309a302d1476f7acbf3bb79cdb04ad45bb90ee4052a51006178e1b0be6b9cf1c8efd6789711f0b764a0b SHA512 4729113722992f47bba9aa95ee46d374fd5fe775a4033cc99b226c42a1b68f0177c280b1c921eb6865e4d159558c24ba4628659771c65d4001ecfb9150d17d90
+DIST firefox-105.0-uz.xpi 486874 BLAKE2B f7bcf82e4f33c452deee3d061718dff75a638b0b2cd77baed7d6011d46a8a4e87e2ab1d7e9bf9e1484d88e953c691731de068c7522cdca4bb3d736da434d17a0 SHA512 616812a38b878bf019252ce373e9a03965f646e0e1793f624b1f806af89065d2de981ba946afb9d697ee310d8948bc7062c917cc4f07ae65ffd0d320abf3aef0
+DIST firefox-105.0-vi.xpi 595124 BLAKE2B c27899ee403a140819545214ec94c76511b03293e818d012ab071f3f1f7608685cbf565771ff9d3c66cfe18970e7baf444256371b9a9d9cbe9462aa8000fec2a SHA512 c18a29b4ab803c33f1a7ea39e349208bc82312f38d5b037009b0b3bc71343f7e9b2807de396b074188f49d0e532be14571b88d456b6bdcf9c4f36133ffe63958
+DIST firefox-105.0-xh.xpi 435737 BLAKE2B f879915c310fd039863708758ec14da34d38ae5f4db79f03e054a626f2a9214394131f4e2caf4b5a899e23a97aaf14e5f6b338c80333cf648ee9a5b7f58ae8af SHA512 a7256f6529f3b60ba3807f0ed02fd5089aa81b7972ab0918c2822717c672ef3946d236c55dd03292c88a871c9fca665b6d0d2ffc75d173304348d07b56426339
+DIST firefox-105.0-zh-CN.xpi 596363 BLAKE2B dfd583934ee29157fb45212dc842135f945b0a05a246982d49c11a1e044c7d75fd501e7ce449336936a4a8115b7e9bd1d3570ba57bd3cb9d5275009c7ac2572e SHA512 0ea263baada245adb5bfa850a83018ef42e9d4f8b0ac4bb8459281d5f179a9dc0a2d2a64505e115ffc15ea37243411b8630d3c83a885c4b84c922e128b48cf4f
+DIST firefox-105.0-zh-TW.xpi 597428 BLAKE2B 7fc6a94076a5031292c52de3bbe3bffd463d7ce8ac0ab2fe08df38ceb2c7fe011c91171fe569ffd79c4eaf1d0b1b11688f6c64db55f204d735c43908f2db4f15 SHA512 dba7949b44d3429f6b14525862f4ac7aee43e90c8f9b8485db7d1eef82d37da38c817873cdf56f555481999b0ed32264a76e4430cd65c112768b072226506df1
+DIST firefox-105.0.source.tar.xz 487471648 BLAKE2B fb911cfb117433994927bfc0b05cd31ea86993be0b728d3b9dcda7dd3608c8b8a3a6eb6b4dada643abd2e109e9c551495a7bc92909bbb6db93763c0a66ac465a SHA512 a48f323f874b538402630a9094daa83189b3ca319feddc80fd66d087eca13f21c8b2d85be9c29e948c18cb7c524adac44e135adcde4d4592738e104ae9c1a734
DIST firefox-91.13.0esr-ach.xpi 453223 BLAKE2B 88b43c79620d3e0263f7e251a41c8ee88f10798982d8a0db3d8d545b83aa4e3da75140f5d9bf879f2229ea831668344cefddf6c67ee45f3169c7d854cf53a90d SHA512 795ca4fced227f29861de8fe2e93acb339d41de8b09c941244f4b62c8e7835971ec4366bcb3a35aaa75e779087248df459364c262f2fd7b294a6d7176b74e1ef
DIST firefox-91.13.0esr-af.xpi 426921 BLAKE2B c0a89908f46ba666c9d3c9e916636e5aeff7564a0f2132213aa443c5dfed474006dd65dc8f47d0e0fa30d5435c810937da98536b3408dae62c428a5f1f4bbe78 SHA512 8c8a40cb2117479c08c13077eeffcd3473b4e2fd9164269da58a68b3c0e77c339184a2edca79ae80480f2b7e41c42e598a9350f01061b424cef1aab35a7480bd
DIST firefox-91.13.0esr-an.xpi 499888 BLAKE2B 5a3bf70080e5ce5fee3a47955678a179e716474c4f341cff1ebffef0401b2b24d0e61b30c772b3863a9b3e62bad68a37ba4037b8fea332d40194ad905fcedad1 SHA512 8935e71639824517870e679bfe4edd8870b37c36a4ec6d5e4a93c9496c5df551fcac14dab397be12f80e0a3f5fa14253f1995d0ee2e4328dd05219901299898b
@@ -305,6 +502,8 @@ DIST firefox-91.13.0esr-zh-TW.xpi 576229 BLAKE2B 44189d585fa0725a7aa1db911acc1d2
DIST firefox-91.13.0esr.source.tar.xz 380053584 BLAKE2B 75d0daa512b3a2d41974a0169778be9ef19a100de2bd382add9831860ca93976585a41e760b6a7ec753268fb78f9f61049780fa7961834248bc8157cfdcc2827 SHA512 38b4cc52de21e76d6061e6ba175e1cbfd888a16070aa951f5a44283f2db9d7e94f2504621f0da78feac6e71491a6d0e7038f63dd0ae112dcad700eb02e9aa516
DIST firefox-91esr-patches-10j.tar.xz 18320 BLAKE2B ec882411eed19bafab8676e3d79f4ae43947bb97c44571c1497bb93a44fcfec99de06ebacbdf8c4944dcecdf949e4f684908d7ce4226cdcec60241e62e75810e SHA512 670a14d852bb74b9074c3fef9310650f71ce1c56314109c49aea02a7a69acc836af60a8beab11da53e21b10a8e6da341fcfa18b68a1dfd33b26978dd63758e9c
EBUILD firefox-102.2.0.ebuild 36709 BLAKE2B 8b3e44c2fe8b19658b8d3ca685af6d07d95cf11aaf1c6845227901fb05848d8db877142eedd3954dd4e9fc84fdc6c97018ec810b7c3e973633556363e2e3d53f SHA512 091200b8bbe29a5d2195176df491b74c87fdda493cd1518bed76da86abcc9a1c0994737bf5d08152b036f9512697dac3eb5f93c9f50bb6f4bd27c31957c0c69c
+EBUILD firefox-102.3.0.ebuild 36200 BLAKE2B ef3a65d87a07577fbc55c343191b58f8bff32fa8a9cd2808fd9261e313d6699137d139d74ebfc6956d8bd3205cbbee448f984d8588d503295bdc02f76ae9bbeb SHA512 8f330b065de11310a0c4dae1b2e339e9214d924c2901ddc67399d1e87f9a52474c582886bd9ef790c0a3029afd638e86c9978475f4c2976f17911ccb1eb661b6
EBUILD firefox-104.0.2.ebuild 36861 BLAKE2B daa636ff61415754cd6927143b070414e501a54e48d141ed3710e97f68e828a9b2578f1130aaccc2fd48a54688f2b4432dd82bfa27a83db240fe9d924a6f36a7 SHA512 bd6d882552ecfd12d3d1a9dbc544d7523ff86a6d6c6a4ef1b82a3058bf25768f0c78a39c547e085366d9c0a3126bd971da8b070cf92be9233c1af0c5ca7b1e16
+EBUILD firefox-105.0.ebuild 37131 BLAKE2B dcfb71e91dd3cf0c6538b91fcc20a79136eb02967566d6430c3b474628f340c316626a1c1cc302ad6d88908175be7f101a3b7c52e323b9b8918ef69756cef181 SHA512 a6bf0bc669ff49e9b64cf8f86ec38f4daf3b4908b4de8cbb8320294fff666650386c26af8f85367b963c811560fcc31a2bf84cd077b0df30f471a7734a8ea3dc
EBUILD firefox-91.13.0.ebuild 35569 BLAKE2B 19154ecc4e0a2583554ced081e5c00c844926b5ec520aced40ca69aac814848804e0931414916f34822abcef11372ceb5efc3a20e4277ad7cc62ff0a42535503 SHA512 e22cc0a89e6d1fb8269720f9cfef0f305834786cb3e69ce4e122c681d3c1ea138deb1793bcb80eba029d981c819022709a2946d2a55ca2ddeb5917eff7eaa227
MISC metadata.xml 2219 BLAKE2B 064f486eecd2a66ef4c9cccef46803f877039bf16bc40b699a48e28e04e816d0ad434ce65ae2e056e1a4126a67a7dd7eff16040276159c1f5aa8966b1c0d7b6c SHA512 522b09ffc2857553e240b1e7c82c11ccc281dd87c720c6292ec9314b91319e0a55ca2838f17e878f5c1e58e4f22caa1b0c3b90506b65b350beff06f3f397d897
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
+}
diff --git a/www-client/firefox/firefox-105.0.ebuild b/www-client/firefox/firefox-105.0.ebuild
new file mode 100644
index 000000000000..9b338e3b7c2e
--- /dev/null
+++ b/www-client/firefox/firefox-105.0.ebuild
@@ -0,0 +1,1283 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-105-patches-01j.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=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
+ virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast +X"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ pgo? ( lto )
+ wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" || ( X wayland )"
+REQUIRED_USE+=" pgo? ( X )"
+REQUIRED_USE+=" screencast? ( wayland )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ !www-client/firefox:esr
+ screencast? ( media-video/pipewire:= )
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.24.3
+ net-libs/nodejs
+ virtual/pkgconfig
+ >=virtual/rust-1.61.0
+ || (
+ (
+ 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.82
+ >=dev-libs/nspr-4.34.1
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ dev-libs/dbus-glib
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ screencast? ( media-video/pipewire:= )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-gfx/graphite2-1.3.13
+ >=media-libs/harfbuzz-2.8.1:0=
+ )
+ system-icu? ( >=dev-libs/icu-71.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.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? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libdrm
+ x11-libs/libxkbcommon[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxkbcommon[X]
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ x11-libs/libxcb:=
+ )"
+RDEPEND="${COMMON_DEPEND}
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4
+ )
+ )"
+DEPEND="${COMMON_DEPEND}
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ X? (
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if 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
+ # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore, but not sure whether that's
+ # due to better OOM handling by Firefox, or portage (PORTAGE_SCHEDULING_POLICY) update...
+ # addpredict /proc/self/oom_score_adj
+ addpredict /proc
+ # addpredict /dev/dri
+
+ 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() {
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+ ! use ppc64 && rm -v "${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py \
+ || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clearing checksums where we have applied patches
+ moz_clear_vendor_checksums audioipc
+ moz_clear_vendor_checksums audioipc-client
+ moz_clear_vendor_checksums audioipc-server
+
+ # 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 \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --without-wasm-sandboxed-libraries \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ if use ppc64; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld when using clang
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # This is upstream's default
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ else
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc ; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ 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
+
+ if ! use X && use wayland; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose \
+ || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" \
+ || die
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+
+ # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # does not need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ einfo "APULSE found; Generating library symlinks for sound support ..."
+ local lib
+ pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+ for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+ # A quickpkg rolled by hand will grab symlinks as part of the package,
+ # so we need to avoid creating them if they already exist.
+ if [[ ! -L ${lib##*/} ]] ; then
+ ln -s "${lib}" ${lib##*/} || die
+ fi
+ done
+ popd &>/dev/null || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use gmp-autoupdate ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ elog "\t ${plugin}"
+ done
+ elog
+ fi
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ elog "Apulse was detected at merge time on this system and so it will always be"
+ elog "used for sound. If you wish to use pulseaudio instead please unmerge"
+ elog "media-sound/apulse."
+ elog
+ fi
+
+ local show_doh_information
+ local show_normandy_information
+ local show_shortcut_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ show_shortcut_information=no
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 91.0 ; then
+ # Tell user that we no longer install a shortcut
+ # per supported display protocol
+ show_shortcut_information=yes
+ fi
+ done
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+
+ if [[ -n "${show_shortcut_information}" ]] ; then
+ elog
+ elog "Since ${PN}-91.0 we no longer install multiple shortcuts for"
+ elog "each supported display protocol. Instead we will only install"
+ elog "one generic Mozilla ${PN^} shortcut."
+ elog "If you still want to be able to select between running Mozilla ${PN^}"
+ elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
+ fi
+
+ # bug 835078
+ if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+ ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
+ ewarn "enabled for Firefox. Nouveau / your GPU might not support the "
+ ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
+ ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
+ fi
+
+ elog
+ elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using "
+ elog "useragent checks. To temporarily fix this, enter about:config and modify "
+ elog "network.http.useragent.forceVersion preference to \"99\"."
+ elog "Or install an addon to change your useragent."
+ elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100"
+ elog
+}