diff options
-rw-r--r-- | www-client/firefox/Manifest | 98 | ||||
-rw-r--r-- | www-client/firefox/firefox-102.3.0.ebuild | 1262 |
2 files changed, 1360 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 3491dcb09d1b..741e9345cc90 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -96,6 +96,104 @@ DIST firefox-102.2.0esr-xh.xpi 418249 BLAKE2B d7001ce2c211a5d71590c9fcc43dbf479a DIST firefox-102.2.0esr-zh-CN.xpi 566196 BLAKE2B 0d0443a0f98b6ae856eee288a56f4f56911182eaf9b919834eceec49c93015550ffcd1aa2c47bc8510c0e1b728ebd3d17740b313d23d84b434765bff5145df66 SHA512 4fda8beb539fd6217d56f2dff889056e5adc6e10b262faab1460653847666c8532d143f3837429c81d4868b830a2a8661407cb40c8924319b6a7b3a22f9299b8 DIST firefox-102.2.0esr-zh-TW.xpi 567162 BLAKE2B dce18534fd98658ed8adcd4df78d2ef0830db508ebd23e0ea72b41c05d7e25519c25713826105840f3f4f401f540eaf26dd2c9348c80b67ec1266d6789b947ae SHA512 99125bed1cc36f1c409208c5e6476443328e5f5408d45989a99d90ccaec69fed87fd4febd74369589cf6f44f08c63a1fa6bd3bd1b3da21dafc51d627459554b9 DIST firefox-102.2.0esr.source.tar.xz 479840072 BLAKE2B 00975ffc02a11619d971731d53fbd480e9e6940d2cb9bd77c529b790e9734db85cc48b4e70d5acf447d221620feb8e9d9b8d129d07f270acd0d388574b129ee4 SHA512 06d753867ccfe1b2c79148cc60bc816b47a2abfa98219808868e9028bef1763d982ef7012698d06b8959cce79163d7926baf5f9d5ca9daa18c51fbf0efc59993 +DIST firefox-102.3.0esr-ach.xpi 453455 BLAKE2B b89f8b8b5a42f703b84a5f003c8d4c3ff9cb82e86ef522c6495664f4f6462ab25f650bebc362474641ae5749c7f8d4e2249f68c528888ac1b7c848c431aafcf3 SHA512 1c5bad68c11af14db55c2c950df243621538f3bc0341953482c4333929452e4fb32d4cb625c0a0969afdded17904e72b75276bde86470bdd45a06ad48f2b5c47 +DIST firefox-102.3.0esr-af.xpi 418247 BLAKE2B 6c75efa232644b892aae95a73b6cc66b357610f6a32b1ddd82ca4078c5245f3228f506c809847a3bff0ae49b9b7acaef405fc19c000762d4611a3fbf53d29fd7 SHA512 e60e9753293086fc26684fc4e5932f14a3a7f4b65cf590a750dcd47b95bbba75605b31b8e5a3daedaf1177867de3e7ba90e87df256937c1d6f737928536ea3a8 +DIST firefox-102.3.0esr-an.xpi 498403 BLAKE2B 4f7666361af01b53b4f5a046fc956cf72de668772c7cab5dbc841104c5526ade61fed2c577c0742c4841e2abd77dff6cb9e804698c5ad9f519c2740ea2991a13 SHA512 f55efa9f76df914ec8371ea902406d60f0ef6ac13825fe1d0e45c2e587d299dc2480b4df6536fda74f1f6f8438a2566a8dcb503c56ec41e805331684c3829065 +DIST firefox-102.3.0esr-ar.xpi 563015 BLAKE2B 59f76a4ec1a10b5287405ff5db54cc35bac362d304f869d85b2e9f61d8c53ab80d5e61b9df89ceee3a85395ea82e63b0da51b8e0f6efee55cda2e8924abac6ba SHA512 5edd4030772c1cfb080d0033a810e903f88ccfcf686ad9606a03bf2b4d8e1972381a229674ec457851d0dd19855b85f02db1463dc54f9de152f2fd4096e614fb +DIST firefox-102.3.0esr-ast.xpi 493499 BLAKE2B bed8f3312b393715022d9d74dfef19fc19cec37ddb19333191d775642ea703914c22860965edb3efff1b7203569b966f7ddad275ad551f513b560ad2ee71f6e3 SHA512 0e044f108521022f3e8c84cb2f9d09a94a0d05ec7eba961fe24552ecbe3756ec05bbd1d4335044b4250819dda9b275e09d0b6e3fac8e491747ccadbff6a1d0b0 +DIST firefox-102.3.0esr-az.xpi 485920 BLAKE2B 778a9ffaf0a33ef8f82342efe676b4d6c4ce4ccc20af2603d517fa65b737cbe160a22e8b7f457001675a592802044dbeb7ae315043762d8c10f0a79a529c574e SHA512 f80c2fbf32fa719b65dc6b35d88f21360c8206d4224c27aec34f4a9b07eeb63cb8abbdcfde69388e7eed6d7209eea23d1f9c545e89e451b58046dac6aa4f6ef7 +DIST firefox-102.3.0esr-be.xpi 638906 BLAKE2B 27f3b238ab4fa420f365d683f81c1b42d8f22b70491b8ca898ef7f8d8891b434adbdac4d4e8f37dd98348283d6de046b0b3bffbc78e1b0725d9a0d3174abd012 SHA512 7d955be75b94ef5d05a68a4d1750d61a674b21d6408d0402f30ecb128ce9aeb24ab6a72e26097053f8b1ee1acce653dbc2de95197fd5b28e2aab16a5a57c01ab +DIST firefox-102.3.0esr-bg.xpi 578861 BLAKE2B 719fd25f559053a035681871fa8acf42c85000c462d5170ac3ffee762a5d531a8d6bda59bd0b1b48e65e8069f2ef3f20808b7b0d6d1b659b6fb375b18555ccb8 SHA512 38a53a1fc200fcad3f7c843559a6843a6c0be296eb5a2f04f1f19f68db7bac68dd5b57fc2c159e4a97f8460347a05764b3660e0adaf844ab701d65a9cfe2bff1 +DIST firefox-102.3.0esr-bn.xpi 576721 BLAKE2B 80d5f2dee94516196cfd206f952d1d9eaf97fa973a1c89ed65ce2f094fdf814b38c5cd738983ad767f88f417135a39df952872639f56478c0e8a9f4ebafc2276 SHA512 0232cbbb6062db4e71b2a58c4b43c8976bdc431475f6a91d6213558114832692ff439b9a40bc0b0700431e47e130b42e4146ae94250665e73772e672dfb693d7 +DIST firefox-102.3.0esr-br.xpi 531022 BLAKE2B 4b5080825076a583f7b1a9e5cce63a7a4aa6d9e57759415d14d730ea8aaf1fbdc785f1b2f5aac8372c45f2b984c5dd4d0dd31f64b8cc841fd8df3c109879c627 SHA512 782b9c57186d6902f3c49fd55adb256f45d52eff16dc21268b34bfb45a9dafbffd1013db45c8b3f2d6afe53c5c0c072c07887da8aad1e96a64caa08fc988cc64 +DIST firefox-102.3.0esr-bs.xpi 462131 BLAKE2B 15e77e28870bf7b2efaae16e082589e125d7cf1a89fc34398a879d6edc1ddc97c6474d630f7170fc8675304fa11cf051601864059fd22f85d305140981614d50 SHA512 6e3ae23473090a10ed61e4ca6a446e595974d3e7e8cf54ad37cefecd99b3c6d08e288057d2fe41e8762046d3408f0fd5b605bdb1062c73ef64244e2a7c3e9fc8 +DIST firefox-102.3.0esr-ca-valencia.xpi 537517 BLAKE2B 23c14a46134d41e50aef405bcdd25f8a8da947d745ad45ba3724a7c7cbc4b05c10ca29ee5dd141ed866b7a8d041326d16b38af5907fe673964393bac58b67331 SHA512 93c1046f4b6b77f4b97668c26f5042b7b93c3b9b57f2e9d4e5e5e662d8ec4f78cbe2ac186ffc2a6650aa86759cdf401869e0548fb6af108b6058c9027a291105 +DIST firefox-102.3.0esr-ca.xpi 540477 BLAKE2B 3cfea1d14a00bc625200a3d1e1c276094de1edbb35b9e29edae819a8e8b738460f6d0b0545d052674cae21da3d5a6a4f258be92d1345b0b7cb654ac87cd774f2 SHA512 b30ff4b0c424ea12b298c5f3b1a7805aff074cda8c297a9ba93d2804732294250e354f0d40665cded19715850237dc4d5030deeb3e44107974e4a88f3acf7568 +DIST firefox-102.3.0esr-cak.xpi 550775 BLAKE2B 9052bc53ad297d12dafac397c05a0fe6b775ad4bcc705416cde8e4687e53e3860d1456eb3f591d75401ee31d071aa8ef58c68bf62f9c136f85a3358134f63e06 SHA512 824668d6bd7d9c7fa67cadf4557e736f4b915536579787e065024a32447d2a4dbed57e6445918ff3b6a30b805dc873aa014029664174e047f6257fd7f76f30ed +DIST firefox-102.3.0esr-cs.xpi 573455 BLAKE2B 0ac0e4aeb7c40155a119b412f6d2ff60b14af5c48f6a661a29ea4190b354cb81eee743d62c4cdcc98443abae969ed9f8a8f382bf5daae0c302a7a184f370211d SHA512 622db5c0d53f39afeb9750e126e015677f08003032a27b5ebcfebd7f131df9b6a1ee705855fb98133e692f3169492a49ca4a04705de8244116ce45250d116dea +DIST firefox-102.3.0esr-cy.xpi 554750 BLAKE2B fb5a29a1aedd47e2cc83ba8515f017fbf707c74e27443ed3931d61adcf6fa53bfd6a63f86e5bd48fdaecd5e601ae77fd8e1e0550817ada638b3f501a8e6e4e18 SHA512 1c3b1cd61ad432d95d020d06c63594587bf62fa1ee56beb842a434c9e297c892f6ae1c699f9e9080068d14bb3ad14572270431d87428a9c51f40c86da7ae795a +DIST firefox-102.3.0esr-da.xpi 546947 BLAKE2B 3d5db31de7cc30a2317c699cf7559e70d274c83b46508f98ef11880ec7dcc982064c93f89e948a6a368e20bcce7b937dbeedacbbd35781494386390b0e482462 SHA512 a47b65fa09b68e6b08f0fbda74f046efeed3a22f0e6cca902420fd21b351eb1b6403fd7ef5a93f7c3630eafebb16f71569d2b21c59ca6c7f6c659935a3f8677e +DIST firefox-102.3.0esr-de.xpi 567046 BLAKE2B dfd661d963788405960c99d930b065f2c1b66b575914a38a4d43fa7f9e06346b3c74c4e580ee71da032ccb6481488ea74946cd84c2c46bae4813134d3b752660 SHA512 d1d9a3e0965be66f4b56ff526ed5a3d86e677e3497014d8ba06d119f1e9129b0931c3d69a6fa11f6026c850bde7a858c377b0915160ed22e954a08a58c0b06bf +DIST firefox-102.3.0esr-dsb.xpi 579784 BLAKE2B 4513cc52cf1978548a002e23f22aff14aaab59bb98712bf4fa0c3b8adf05afb2a83bb3684060dc5cd8c39046f369b27672382514b7acb4c11f74809de8a72f2c SHA512 38e7d81a4894cf2ec9ffd87f53e90cb5974f420276036cacdbb58077f413a85506d0d88c2db31161b1446941f14326224ef0fd3afc8edf8350e40616f9adb79b +DIST firefox-102.3.0esr-el.xpi 655029 BLAKE2B 1b92a1d7785279a66abbeae8b17b068cec127f98a6b214d35981fb40f07b7a560d1ca048373a50e794f788004f7870fa652cdae233fa1b25a77f0a2d83ed81ef SHA512 ae2924a48bc6716fffffdae4c623d9b5ec76ccfc286765315b1b45bf78ac98caba5dd024360296fe9a94df8bf409e047bec9a0d964b63728dc77605b7f67b51c +DIST firefox-102.3.0esr-en-CA.xpi 514604 BLAKE2B a2330a5d480c0e3885581ba1d2d8e91d0f5c1ec7cc9256397838470ed803e09978595ca3284bd2093d78c67e78ed7add64719e7e0b0c8ec1949561fceb597bca SHA512 a2d9a00e44a07aec9d43496b47405a30c71f6d6019dc9ff52737c0020c2efe3050aed0ca5218499fa362fe574a9ae1a74a3a321f3fd91129854ee48359123ee7 +DIST firefox-102.3.0esr-en-GB.xpi 522699 BLAKE2B 55042f1722163590006544ce314ff07a169598e45c95f61287313d2627170db40dcc2c96b82f236b389b85218fdea6c05bbd565ef74c3bdb03dd58988fe1c6de SHA512 8494171611818f4a3c2ece4321252ff0c74e82864c97b3688e7d968a8f047cde0bc9d5fa652425306106dab1a81c92a2d2b1777e6e6ddaaeaec89c07fc98d1ea +DIST firefox-102.3.0esr-eo.xpi 545935 BLAKE2B 11b2dab95d74307e05fa41dc3bf6c7ace25c9a2860fe4beaf189f34b78b12e7e865a19590497174bcd2636ab1495f7f63e05e09c58a7865cc965bade5a52cddf SHA512 1fb688fc8b4420019980955bbfcfc0446c2e8ab9cadc957af1254537e4e541305751a1fedc311fc168ceeae5080829612b4ae0aecd0d86ad5302fa3d70dd408e +DIST firefox-102.3.0esr-es-AR.xpi 560326 BLAKE2B 4c48314897346a94bc3b4559e4e0cf8a9cf9dcf4e1c072c418c7f4921f65f407362e91e5b14253d766a261119fe0814afaea603d3e19ac378ba9fbda68cc2407 SHA512 da9e497c489815747718f3de802f141f076b222ba26585726aaba59f9e2ebe407d2a461f2eaa5cabe05627372622b585936f99108e6e7948dfa8ee9adde0e8ad +DIST firefox-102.3.0esr-es-CL.xpi 559370 BLAKE2B 2cf5c1bed76ec905f0617532b558a6ba47d6c3eeba3fb7999bbc4d523c5c1fbc4c801a7a4508b8225fc8182d80a0729919dd011cbffe240331e64be7ad233e86 SHA512 5308bd3f90b61c9afa4a83c3d4b42ff77830743760d2c4b0418dba7ef701e9e07abdedb4a3b9aa507db45176df5431f273e16468e2e5c0ac586b19258b53fb1e +DIST firefox-102.3.0esr-es-ES.xpi 544164 BLAKE2B 495ec841b827552ffafbac3e92024dec571081fe65a227d3de680a36df36041dc6246d4a70db2cd3b6db280f896c8d040cd79f729a8ed84bff1e684b4998680f SHA512 16e580ca4f0dde68d9fdce3a0d0336eba77b6d6cfe378633c3bdc0061b0954de6dd74cf38e5a9e8d9f0269de55ef117e438ed58c3488d66d072ba660133b0ebe +DIST firefox-102.3.0esr-es-MX.xpi 563464 BLAKE2B c2e95d7c5a2e9c6b2544de8195b3b41fcd2f16315c36a3a1a463660386a77f5e1b041a810ac1a4661a9fd3bea004e14d1a999b2520d99bbed59166d0377e40f2 SHA512 d733a06266a6546a96637532abc9cec7b3f38c9243a3a9622bdf0c098a16e67bbda793d87650ac41ddfad949ec93a5a3296ec883ebc7880e4c931ece8ef56013 +DIST firefox-102.3.0esr-et.xpi 531816 BLAKE2B 5976155f1898b7b4b3f48dbd44448e2800726d085384082873e9cb24b29b0ad02faefdbbd9bc190cdf650a03d893054332b2e6f94642464613938eeecd28ffe6 SHA512 8216b66a34510a48a0441e68f5ea06774fb4be1ead029c26f0c30dd82ff0b884fb620c31c0d85053338fed461f62bbbf156757fef1e01709f098f3ae8c863dff +DIST firefox-102.3.0esr-eu.xpi 548210 BLAKE2B d4995ef93d4b0df73a99915c0f1962fe432cffcdc4c84d390961539bcde382d81b2874428f7565e65142968395da1fbc54cf15b3d3cbe63da6f617562cb3115e SHA512 9a5568e046251ee7410a9704ba637df0829cfe2bc6f9e2ddaf710f7abb9618742c0710859f997261200172035fd1e07dfcb727c84803139ab170ce9c568f2b6d +DIST firefox-102.3.0esr-fa.xpi 562344 BLAKE2B fa22d089f9f7498d06bfce03e811b9c64bb0141fc043af4c35928e23d4ecfe06115a9ec66ac946d1b6c5e9d3a7eefced986d86cf7c0cf0e6a968e7599789610d SHA512 905aa6979ceefea7503d10409b75a7e58ebff6eae06e9c2777c8a353fe895f224a610a80db71e5772715c61946b26adcc5efa0d0f0a4c2633b9b5750804a1233 +DIST firefox-102.3.0esr-ff.xpi 472169 BLAKE2B a54f9e7c891dbfacf9a29a524e041c14555b58ae414911ef6e2596fe97c7932727abb1f546edccef615d25ec21b92255755f8131d964bf38e253b4a7d45df74e SHA512 7c21b35fa781f453d05a0a8a81095c02e8d30c307e23b23d6276f2b35ee744e00c8f41908f6aba8b44a999f886dd7662649cc6de1920ac0d0b849455fd070fd9 +DIST firefox-102.3.0esr-fi.xpi 544783 BLAKE2B b1a9269fc70d1295aa184a38c238702a7bad749b6f3b58da4c14d4bf1940c67050e27bcec0ffed01644ac1764f98b913c707ec516461163e1603467521a87975 SHA512 1f4a32769955cff68bb3347cc82880ee582511ebdee766d73d5f39aa6de73a704341abd999ef1960609206a7222cb344c792f679071f26807d00eeee1957bcf4 +DIST firefox-102.3.0esr-fr.xpi 571385 BLAKE2B 85dd921fedf3a491b6743954bfa6c64795dd2f18de9a06fabc466a92cf8ea9001dc7cb89bc6d6771b69d77edcbe85c637410b2738fed645ef985a615375bf913 SHA512 ed84c1d311ec7842832e183342c2bb3e10d462460d3c0fb03d0d4cc81af2bb73f5483997acf166eb8767260a0c43e701bfa41c0951f7a29ef4325ff07fc1007e +DIST firefox-102.3.0esr-fy-NL.xpi 556592 BLAKE2B 2e83c92963a330519e761ec02d5f838a615a6c14036fe3f153802949cbf2fd51d52afb1405b1ab53f9b39833decb71f4a1d9303cc9b2cfa0ebb79d2dd35b549a SHA512 94908b1c05bc15c9736da83560813917ee4e76876f3c31394ef6c0dda3b0f980bab70ec34304341b05df17bd49eba2f0cc369efa2ac8972a8fd100fcf5f5070e +DIST firefox-102.3.0esr-ga-IE.xpi 470608 BLAKE2B 4181f987725e6a66729a204d51ac1a1dbdfab1e11d1b00560a14a911fb97deb582b0291d50d0397a30a8640ecb96b3bebf229e40b336a7705d8a2575046ddef2 SHA512 1ba5c0dbf71561b29b6bcb0aab20e4b07a7f72422d9d0d2061273cdff7c2cf2375da5a8988ead21f927d0301ca4ceaec3a956726e8dae68e62a672ba85d1f80d +DIST firefox-102.3.0esr-gd.xpi 543720 BLAKE2B 1e4a3b3ec4a0997c6bced200c09085b81b037b012c6e976a1bdf8868b2985322757305c59bfc25085d79d03e605d1ae99185e104d9765de3d97fd0128cb07e1e SHA512 ebc9c6771d5daa35521ae7b923ec24adf862a45feafbde8b3e264aae280ba6e9287d045a74a2cbdf62e6b572ea59a755384e24fd8dcfbd190112c7dcfbf5b690 +DIST firefox-102.3.0esr-gl.xpi 539053 BLAKE2B 4c5d5fcced6b2a8d416205e62c21496ea6fc4783aa7a592575f457c83d1d699cfde3adb9c391da7f100e228e3cc81da648a0b838d9e4604afb34ea810f1b85b4 SHA512 c1d6f2194c851ef2044f2eb242a032c48afa3399d45b2df98642dbdc02a85afaf41a00a200166bf581a5d4f70d9e5fb9183f577f340d62bfd6d2f6b331879002 +DIST firefox-102.3.0esr-gn.xpi 570897 BLAKE2B 09a7119908a040d719235dda7b4a2fe5ec2b7ffdc66211c5c0b548abf7f116982f4c36df0eba5f707c9a31938d07672b40c0f43c1756c9754bf3dfe6957b2a52 SHA512 a1c4845740441b0b71b18b653b3948d6fd244d3cf6726e49845541be4b8167e2e9095d38123fe94c0169afac421b248fbce4f76ea9290e50ebeb9e6cd9d22190 +DIST firefox-102.3.0esr-gu-IN.xpi 527872 BLAKE2B 69e8ddcd76a678bd78463f1b240f91722c18d74f128e22fb9724c3d79d6669b70e34a4f20e4b9854ebf17bc08e8ed4247cc6c0bcad4a919b7f117b3f8f6aa5f5 SHA512 0be7d68f54661c8070b80a4e9504bf6352f3aaf087f5ef14a3b521fd1c15d5cdb7927b76ae06369290ce6878c9320b02946522df381ebc3146fdf68955ad4749 +DIST firefox-102.3.0esr-he.xpi 568678 BLAKE2B 79a89e55a135ad7c12b2eb2c503b68eaf8441c58fa353ffa4f3d51bce4f0b1561763018826ff02e2ce0abed1f2b80b3c11320439db956ef93e000d9e4f85e3d8 SHA512 2719300e548aae73bb53ada61a0d24c126d0fe825cdfa5f0834bb3e4495daa12c38338c4eaa89ae575c85c0f0a8f19659e674b4e65fa2029e385949006b00334 +DIST firefox-102.3.0esr-hi-IN.xpi 558539 BLAKE2B c2ddfdedcc15c7a7d37cafbfe05272c885208aec6826c0377c2dc9920c9d48e2a6c23876e9fe01502fa53ef01a8f886b1e53464f75332ec6c544a4134f09c5f2 SHA512 64dc592725ce712c4d68c9dcb39ba6793204f88b4a8f46bccbba9ab22e818885591078a013c727481b24f509f06ee8063f972d1d7d7e4a6496b02432497e0b20 +DIST firefox-102.3.0esr-hr.xpi 529738 BLAKE2B 16dbb6af30f269d8b66b13ac66fd2223f4843decce8e94bebbf9c9fc2897e3b4de14bd8ae0ee9a50f931454bb7eb14b423761b92a3509cadd0fff14a8e0c65a6 SHA512 325b8f12d299cfea651edddbb237462090b287b68bf0c2feae67767bb6f7d0279fef10e798e5982cc17802ca847d6262500c92f04711dfc6640390c764dd31d5 +DIST firefox-102.3.0esr-hsb.xpi 575946 BLAKE2B 30bd83aecf189348ba972a364fa5148c3152f9544b7059bb06ccd74ca7bc2481f53c5e51dd2b4910e3adcd7d761be0807c025a15bd2d8027aae26056e94ec585 SHA512 30444fad035a5083140a20a014c5b8a9b4f014c073b88199584519bc6ce9996bf0da170cd1360281800233e81475409c6f5d0f16b802902cf5338dc549279b45 +DIST firefox-102.3.0esr-hu.xpi 580250 BLAKE2B adb670db4b95a76709d42951478591e70d264fb771d8aa60f9e0fadeb9606152acf1295f38c017ac1cd744e99d8b7512baad47071f3f20bbb5a08fb664420028 SHA512 f61f86cf40b53bfd4680edfddecd396a2635bef0c2419445cf52f63dca53da27603862b54de23f97386c8837a5f6d2fa1a8df2425176dc4fadbebb42bf33ddef +DIST firefox-102.3.0esr-hy-AM.xpi 582119 BLAKE2B 8551ed1377108803d46dbd185b4a9a06c4139d6a2fe14d5cd4fbf2dfac3626852de294413263f664d9e295e1227b6eccb70953899a50c13629ce0000456b897a SHA512 324c4c994e55cdda393da1d0dbf8cf7d8e794481432939d4b9b0d158ee518129abc830228fca229889723e7457b1ff33784f7093e66c2c89fc078bcdaab8c6bc +DIST firefox-102.3.0esr-ia.xpi 545262 BLAKE2B da53ab9a57d9e2ce8c4741af776bf266d25053741a6e2d6d6400372365c93716b5c137f8272edf020b1e18643470bae5b8eebdae08c00a983c23f79c865d2bd6 SHA512 8d41339c86ddacdd5faad662f331a01f1d777f21165c4908ec39be9f2a8c966adda5d7d14324a58bf0a84175e855d0a2cd77f15679c3755f24b7d47f3f48a28c +DIST firefox-102.3.0esr-id.xpi 542448 BLAKE2B 7eec3c870b40712da44c45c4f497f51370561a5ed0427193053fc9cbb5ed0f3c44ef449417c83dbe5ba979ca6a8d12030a380ebbf6ec905e67745a5c1d845f8b SHA512 cf67e20d2efe267b2bf46d32cf684ba7a8d60c87781c1246c2eb2ad3f74f194c63637fb1f2a2e6524edffbdccd97253f16b16aa8c3b7de8fb110c7e3ae752d7f +DIST firefox-102.3.0esr-is.xpi 551935 BLAKE2B bc1f402c582ef0a22cf1db81e88a5d77cac245721544ad36e8f4f328b51ccc1396b4393c90e42cfe1a653fc57b220a0947d5516e796191b2fd0db40e7ad4065a SHA512 fb0c29ebf12c4901a24b78dc996f6ca390603f5ad2f23def32af82cbfbc5e9a47e1069841ab0db3f68937b33a7e7fe60ca773c154498e37646b3211cbe06655d +DIST firefox-102.3.0esr-it.xpi 463213 BLAKE2B b68825a8c43b9014b9871e38d57d92bd0a3d41c355e8825e117f6de2b33890a4484fa47d429c93be3e732a93e3ed0ae8fbe813e2e1b75b51eeb61e4e340f8f07 SHA512 f37bac0b09a23c3a200c16b025cec1c1e470eba8fc52a30fb048c3b6d5cca7f3a578c2c245ec378facc9d55eaeab82a24928d91985a5bf65a03b7f5123b928fa +DIST firefox-102.3.0esr-ja.xpi 586305 BLAKE2B f1a969fbd12c82432e5ea8ab9610095ed7f3a2fe8f750b28ef9ebeabc0888c92fb1c09857c75e02848150d64b93dfaac32f3a3873337a21c2a11e724c2214c0e SHA512 599904bf221abf952a7d6b45e387a7e43f4c4970c6a7a5772f8bfd2b4d79294073a791ad48a6b2b60430cad9c5c7cc161068c7bec54edebc5ad56765738d8d6f +DIST firefox-102.3.0esr-ka.xpi 606132 BLAKE2B f5459ae508d5a7f2d4e71a885670cf7dc4551905697d280f93403c40f528d566e3d600b6771300bdd4038c020bef8f3c1e09850ff47417c91c4966b502697fe5 SHA512 1fcc7c63220df66363b1294162ae98809a207cff602f5490a42169889b8f27309796d56fcfc81fe0e87df3f19e6e5e12365acbbb6dc0b509aa8658dd1de1aadf +DIST firefox-102.3.0esr-kab.xpi 565741 BLAKE2B 52ccb77cde51b9f8e4b7b5100dfa63444a779f62f16fb19912b53de6d1950dcd797febdbff5b2f84b1e2ea4b9996d787d4be507462158a83359ee53b9108e8f9 SHA512 33384e39af5c30f56fce040e09117fd0879c3b2f49a0fd0c700dd53e29662f20c191e6f6a99bf9254f5cd1278784095488d1896aa55bd50ae6e1474516ff2545 +DIST firefox-102.3.0esr-kk.xpi 621839 BLAKE2B e290bbe5d9ff14d6bbd9154d45184017291278723aba83875cb181a79e1f24c117e43445f974483c5ace4e9a4b62c73649ece43cdc269f864af12fa5537f5ffd SHA512 d8b612ba4921f23e464775f009487365b11295010016f2d87b6096c83c08cc7fe1241994cdd2fe1303d4651e1d61a41639437c11384fe0ee076c4a7593011413 +DIST firefox-102.3.0esr-km.xpi 531579 BLAKE2B 80ac1403094fb789e258fb5cc8884fe85d7b701f8098a4c546b3b8c7508bba422cc1f41b16248670152f78bc7a1111a426fcc65f42ff109e8403b6c0d8645604 SHA512 87c030793fd4c3e254a7de40d88b328c9c0e2e15a22ad70045b9d122f54b11b1c49ec42dd11765d661124d2540e40bba533831f0575fe9aa0ee915ca30470fe0 +DIST firefox-102.3.0esr-kn.xpi 497201 BLAKE2B 854d219b8f5f13daeb89d90eacb5c4689e77b6c2bea4f60002f06fbf277d0579bfd433a4b5e7192cbdd77f896ebb3e841e50557326674bdf31db326b007995a0 SHA512 572c0f699deedbeca7443bc9d0c935141636114bf986f59a3a4ff96ddadbdddf81c5745c15a755765b3d0ba2a9ef749276071f8bb884ba2e44b3596ad93e4500 +DIST firefox-102.3.0esr-ko.xpi 593293 BLAKE2B e29f63fb5e37124b6a148f6308cf30480c383ae28515c4bcdaebcb0f0bb2ba25dc6eba88d74e719afdaaf9ec872ebff6977db6c2a1d1dee5b6d01db5df380c79 SHA512 7935db3542dd510f8dd2a150033d282fc46728be34bd35af7d94a968c633640be92ffa03a3c4b30fe1d5c2cea7fa61e68d643191613437c28711a7d0c28e2ed3 +DIST firefox-102.3.0esr-lij.xpi 470141 BLAKE2B 0e654ef57bcfc6b308387d2083ec147b82986ea59cf8beb2338830b6a719787306a02a0ab65118952030bb0e85fc7196bfba8ab3deeb9fec247ccd36a263017b SHA512 3d842507516fe2cf5d80c06f871c757a08060ba3e857845fe0e3c15c1df31ca3bf0a5ef6bc7c83ee1a15f59b4f2d5ac00e1ca9f2fd1839e957800e33147d9078 +DIST firefox-102.3.0esr-lt.xpi 561127 BLAKE2B 0a6d1c86e7fdb915a863b54d8d75d35ed5bafdacae0bab31bbce97b44e21cd9538abadd1f1a3e6c2a66170e84dead65a15b3f014bd929678ef10101ac453404c SHA512 e2b0b2858a0fc97b0af32bff1651246b1558ba8be16c941193f9a31feecc380fb1d93b926ebd734a9f125c2715c364bec4c247b3b6aed84cc475b064ef8a24d6 +DIST firefox-102.3.0esr-lv.xpi 463020 BLAKE2B 56d01f39fc29842911363d6bd4b1dbcbaa039467973a2dafe9cc097b8e36dc07b0d4854d256059ebf6f5d0d04c0a157a096eec3f1e01671997244b9bbace079a SHA512 ede171b2bf31b34c9b6dccce9cd8be85e701bab6ad84f9a43e7bee3c6601c4946cdfb1267ac8da2e9bbfe4efd39fa0f1a4f3633e0e33a5f41f8b413a22652be4 +DIST firefox-102.3.0esr-mk.xpi 482313 BLAKE2B 9b5382542944828faf99a79d56cb22807aad65507bdb290b46c107d82f2a390cc760f8d3add494963299d808e82f05c9a350da5066d591d71305f26d6f8d06de SHA512 934d0fa0a0ceec899c18ee16e020a26a9c0599d51f1139a26b0508ea1c570602a9028692ac36dd9ff87d2026e3a3dca8c88d3d39b82da8961fa035f8e0dab0d3 +DIST firefox-102.3.0esr-mr.xpi 531252 BLAKE2B ffadb2926faeb3e4ecf0c1f6ce8cacb8102fa8f5a7c05c709d89a47d965252b380de6aab8f5a8bf786e104bd5fce0752feecf9698a05de1c22a82879c066d726 SHA512 01e1c0614096df55093e7f0a203ac5ab141bcd663c5f71a2173d7d716022c6bbba4f1f3ef66d5c583d81a1d614659f82368a5a98991478bfd4969cbb335d0aaa +DIST firefox-102.3.0esr-ms.xpi 448123 BLAKE2B 33e996afe1d849dddbdd246b1e04b881af0c358f6bb5d305d1a7c11e6ac4597696d949fc49be2eb2cb4311c19736c0c631825fcc4feab9eb2e22c6af3129ec89 SHA512 7ac315d4cda83106258ccfba4f1945f817d5fd5f7dde625f641ee790bfe0193660f57dd69258c0db4bdc8d334b1a9520c5f856b7914b571e4315fba6b16ee7ff +DIST firefox-102.3.0esr-my.xpi 511807 BLAKE2B 4416387c070b261c1aafa2ae51eec94529ddb06f2bb9e8dc722a9681a75be4cbfaacbad1f8f6f9243b5d5fde3bbe93205318900ed0c2f63d3ed6e780d47bb805 SHA512 e7187d9b0c5a787f6f6d1f337a072a0eb57b1b25bbf74a8c4068075a1e747042ee23fc23e7f333df1c94c03d29c49d8b69448079c8fe7a07c2a202b465b8f979 +DIST firefox-102.3.0esr-nb-NO.xpi 541242 BLAKE2B cbaac4222370b1cecfdbf7a073d1a7dda69c6621b5c2da21ae9a6f7fa5a789459cf37fa47b835bd51fdce81f1d0ee40f910bf6322ac3967fee2e95cfa0330482 SHA512 49dc8f417aaac2aea5fde3781c5b159127d9a76813aea3b242fe3058c7e775761805415e85c6e80813fa5c0815277a9ddeedee5aa7625b8ed137d92fd3d6eb14 +DIST firefox-102.3.0esr-ne-NP.xpi 489420 BLAKE2B 107e3f27d3bf0aad6e59c7a942825f32918850b50a7b94e697cbd6509ec5ff31c3057584c392ba5e840d9251a523c825d3d9a76e032351320b9aee3f2d988520 SHA512 ac48878324241ee9e4b31f91b7400985795201c6c94ce2878f5fb39da25fe479669748dc07778c806a1bf382e65080a79f44d8a80c7ebf59d363fad5fa0084e3 +DIST firefox-102.3.0esr-nl.xpi 550349 BLAKE2B 2a180b9b7271c5565cbd65981d9326304247bbeacdddef12da34b505f49cba9b4ac4dbb338a6048ac4a3eb5d985a0b513f89800ebc120123a790f14b668576d5 SHA512 cd18f08fe259778d0cd059357f1f46c014eead4008645a022c9b0891471ac72df6824b72c0440a1dc610baccbc1b9dd1d2ceb80dfa7313f26478c8930f427489 +DIST firefox-102.3.0esr-nn-NO.xpi 541467 BLAKE2B a21752e1a92ceb0c48e614878622892181ef4caf677b4698f0632aeff9d43d3015d2d6614d27c2087b77104098e6fd52faa37e19b194720adfc60e32bf340c25 SHA512 bda7179ceb26453e9ef8ef37dd83d03a32fb16f0b798f280b23ba6c47f3d268286ea5a4beb55f7feabbdc2bde182c2620f6b8edf41748401112a3c656d00e6bf +DIST firefox-102.3.0esr-oc.xpi 560885 BLAKE2B 2ff5630e76f4c7875e65eb267cb482c232131bfdd93995afd304ef4c1e9c05427d299b4784a61a1722578a2a66d264f4d31307254ea2b52e083a9a65bfc29ae4 SHA512 1f495b4497dd7a90e8d111ea453ed351b44ced910fbba4bac669a77631368337c1cba58d042e5f8abacb079c48bf1f79df0275bc1728f2f918055b3653e817ae +DIST firefox-102.3.0esr-pa-IN.xpi 612447 BLAKE2B 7c681875f8fbd7d33db5cc803d9ea63db473902f41fefb2cfb32503be05370e2c21e2a4d25941c7415ac436689fb6d8bc39dd7c7ca206c0e2e26824ae886d562 SHA512 ec36cb6dfdd677e7b22415703e5a62326abe13ecb2e90f4c3565ef4149a4e63d53e01b2de6b23b66491cf217777353521da9fe5667f246bdbc827b0358cc0a67 +DIST firefox-102.3.0esr-pl.xpi 571733 BLAKE2B 16dfad3e0d49ba8e68ba847b4990911026e0e378e49d65104523fc47452aa57be621d3efacbf6823e96b32d46e4fb3a5fa2962c1127e92c3c479c581338073d3 SHA512 412b95f604a655d915e323e1ed1b2510b708c39eaf147c45eeac46fffc2cace2e57db848b8c77ddb5ccc96be8e9315193d904bb5e3a7839d358ebe1d37d70fdc +DIST firefox-102.3.0esr-pt-BR.xpi 555920 BLAKE2B 5343560b00743773b099a2146ca11544e22b2309708d1c3381f27004e8f458daaad3dba5aa10aa8ddd55fe3f989862e94eb79ff1889602af041a52ae4871b477 SHA512 aabad94bc00aaec4929cc02d37f4926df22526cdf7d4e2cce12a103ca69554597a7d09951c66260f1ff1605dfa9eb07571f5a39668de3f9fdc9a51af288bb501 +DIST firefox-102.3.0esr-pt-PT.xpi 555205 BLAKE2B 579cac7775a5028dfb010e0d483110ddae0a8e8cc850eb0e786c3f3a29e102a6e1282ffbc80543f8134e31db8ca2e3026bd8e3767c30fb61dda6454d89c06f7c SHA512 2ff0d5a2fcae26591e8fc5a1be1e2b35b442dec8f2932b0770c777136b642cbc202c7cb645095c7e6eca713b2fabe7523fb70ee84349e76a0bf0ee1fa5866d61 +DIST firefox-102.3.0esr-rm.xpi 538504 BLAKE2B 76a14f62f381b492b87a6dfc992cf56bc80e66e24b50a16ccc2a6434ba2efa1eaf0e05358fd5b42e372845a23d0cb716585194f461805ba7777b8cebbe571afd SHA512 40b8dbc6dbbe021c0cc40c321553ac69d25789622234eb1c1da0aa747f2c641483a387d796c5b4fa1489aecbf83d579a0cb670d9aa1b95f78c2a0c5fb411b78f +DIST firefox-102.3.0esr-ro.xpi 527971 BLAKE2B 54935a691b4b89a24ab1da688b7127ffc82d55b863308a844dfa78ce3f45a74638ca56304bd8a2290282a65e1bbdc3685e23ab3f7f7772d06dc301b29fbb4c1e SHA512 ea5f4c06434500f954611ea1324b4497c2a2518fb36bb724e1190b159e1f865110b22e06fc0aaa33ed0803c23a0df2e56eb6f6d05918e6c7db7e25de3d75ca0a +DIST firefox-102.3.0esr-ru.xpi 642366 BLAKE2B be51c0c62009bda55fcc9dff436fee78f1f038b218886e84c3997c0ea1b5020a28d66f94be15ccd5f8d2131996b23f63e10f4223a518f786ca750e5689a585ca SHA512 b86159d177844c330824896853b8194fe122629673a279a3829282f6e90c4dae65547f15382993098b97510e76d1cfce1b3ebc01138041bc23ec03305a5993b2 +DIST firefox-102.3.0esr-sco.xpi 496336 BLAKE2B 7c9ef809ec723c27e62cd81feb841e75b624fb2bdaa09931162faab53a34c23de9d5c2c6199aa7a6e41d8977b938a8775dc36e4562bf9c7c46500ebe5dbac042 SHA512 d0fff7b6e4d3f7a7985ade738f21f559a0e8ebd2304fcc9f22755b658e350b9063e3ee14515098afa33c0aaacc60c42ef5b3d58fab32f7e132c7a3f99c555dca +DIST firefox-102.3.0esr-si.xpi 564314 BLAKE2B 74ce40ebfddb64b3a743993a07764186a69893b8ad9812fb9f96dd824a06d9f55fccab8df7f248ab48f50d40579170b765b2ea412672c8fde61d52640c73574f SHA512 c9b61b8d62a643c869c258ff747ddd9dadb4504e1b7e6b7678b9fc64cb40a7de417ead175da2ddebe4994ee5c5ff89f645ab7793c20845fb49395f746642d6f9 +DIST firefox-102.3.0esr-sk.xpi 580588 BLAKE2B f6a7e5e6e0c7fb0fd4521ee22530cce5c53868fa400ddbef7d3f56a8a866c36d78e43aaf698f5e379fd3a6f917120ebd0f0ef5f7426dc5a607d4f01382d9275a SHA512 6e9ae7c608a032cc5ec9eb60683dbb9b16f82448506b1ba3987501e3f5d0c148babca5626dcfe46d658dcd88ed82cf6c9f5e21da9de17fe03fd3f54751589141 +DIST firefox-102.3.0esr-sl.xpi 553154 BLAKE2B ce9ceab97fa9c38e231c2040bb10796169072f99778bcef8318b3adabf6675d61e3c5ae040eb03a12fd4fe6c8089c20f0ba33357fc2b65d87dd972f05ba2fbf0 SHA512 3f09114a0d2250710ea2a4d9172d03d323199a52d9c10966d7c9fd13b664c305660687058e6339d94cf1a75a70436e29c7851de750e320c632d3948d1b592321 +DIST firefox-102.3.0esr-son.xpi 424697 BLAKE2B 584eff5eca60738aed08237f468794f3ffb46ab577f06dd7ecb56959646fe8197936c47f439ee726ac565fd8e27c5889e946a1f1203188794fed182041ceb871 SHA512 29f30e325bbde80e567a1394bd14a541bf340fb809273225e50b71c92127d0a987b60ec7a2bf1f037ee2bea8304bc382bba8fd12992308e0ea19e831ad1c70ce +DIST firefox-102.3.0esr-sq.xpi 556113 BLAKE2B 3ab043804ecb52c9eb4c6c87448dac9ce6d496c03d2dad463acd22d4fc144fb05add1881ae359e7e9bc3c76658fb7caa2153ffaf62d835fb5d8a8b979d764b26 SHA512 c6abce9bb925753423878b8adb1edb8230d19c37a2b755f981f358177544ddda8a117f56e592fee32ad7469db0ee79d54290b66e5f81b2fa840795d4710b3065 +DIST firefox-102.3.0esr-sr.xpi 595492 BLAKE2B 949054d9008ef4d18aa4221669c193f81997c870901f0833c6503a3152ab41ac429ee65332ec7ed710106a13d8e370fa1d77c4fcdf68a50226a2cb772876bc49 SHA512 16f358ce2cc654cc27f1ad54bcbb772eba9b48303afeca80d7e5f292a75b98f6e091b447ba092fc164cb28279a53637c139fc9a9a8de07a5cb2e28455237e794 +DIST firefox-102.3.0esr-sv-SE.xpi 553017 BLAKE2B adb51c3f04048758918452badb6fcd81511261d0c61b119a0a4568e61f2f03bc4fe69041960b611829f6dbd5e5691c2bd66604b612b1952ff42935c5cb98686d SHA512 acdf0afc289f7a521640094f33e745a1c6b3e09c2b96be1e9019562cc2cd20fd7252ced9e898e6443f237b924b4e5673de714b3066c22f2d3c31c0ac60b1b25e +DIST firefox-102.3.0esr-szl.xpi 512005 BLAKE2B 498e98ef7f1962a129d197e754f64e527b37639aceecaa9b964014d165602c8304544e37852c361095154c6222bc5737221d3ade2c0f1e981676c92d24000495 SHA512 1d2210f160d92da7074d119ea1806c9b88b206b44742b9e8a4d0d37a1c9ca74f17c8a12834323aa12948c2e5ab0f890edeb57b94782339079b73de32ad1ae1a1 +DIST firefox-102.3.0esr-ta.xpi 510340 BLAKE2B 8dfb9e20ac388b1e82139bb5a27f1cff19e0bcd9d0ef054ba2ac34cf7a3792add4f9e949bdbfbca907060e9f57528df070a792d1b9bd40957ace7e61d4a16130 SHA512 1cad1416c798fd2fab469f2cbabd33de93abe2ba906429f96c22aaee7378e0e1be6a7ee49bc093ecc5fea14310820d4d997e34e8d5dad7c2bca4475bfa04a0db +DIST firefox-102.3.0esr-te.xpi 551584 BLAKE2B 1c6c1baa598bfad8cc5b7639c4c2e62d5fb1714d354630d5fd863d02e83c6937f306095683f12248c854f264d43b634a3f267c041c8e72b9da447920cf82d1da SHA512 6dd038446414dbce78efc0d4cdc13c92ae611c84540b832dba64138b5a95d55305317b24594113e50f2819a4999c253879732d10621f4b75e7ffdb1cfe5a2591 +DIST firefox-102.3.0esr-th.xpi 612082 BLAKE2B 69f67b021e69c8d45db99c079425f6c260c7a4ab6bb2352d2c2400ff724f626b212f57294822ee8c8bf363515cec377d53ccb3f14dabeacc8e946a7e7eadcf4a SHA512 aeccdeadc400c69941c4d3878657e0a4708e64e4f5e780c289287797dd561703b736a30fd91c3217a7918a60c43e403abbfbb11f0db12b07b9f148de60e40a5a +DIST firefox-102.3.0esr-tl.xpi 518943 BLAKE2B 5c7562dc434f80bf9821f3e0ffda53afa5a47e4c8f4173dc828c1de3f747654783e6ff422a01d22029fb1d30d7abd441511009283ded4194833ba27ee4bcc159 SHA512 fc620e959eac61b653a160336163bf3a974da47364503d0992b7be0156d9b77b18388e3a721828b86c218ddc8d692c5244ac1dcf2d596c6fc675053230ad62c5 +DIST firefox-102.3.0esr-tr.xpi 567030 BLAKE2B adcc39e2c690a3fdd1731de99f91647ddf49a9ae1e3db379674da4edeb016b1659074d5f463d75a79fa27013d0ad7dbfa526aee943b6ad57533dc1a10c582379 SHA512 1fcf727cd521072fafae5797cc758f7d862648a88b283b0b3d91b755377cfd9f4e853abcb6cd930c576434ab013fbf02fdb7b9139affd9091ef4a548ef345cea +DIST firefox-102.3.0esr-trs.xpi 490213 BLAKE2B e8edb6a7d535788bf6c3ce3ce545b834095fc58e9e780b467050567f89329e31ec3f24293ba5e8b3fb5b9dc310ab4c0d8322e360875dc874e5b34882f0ee295b SHA512 ac5046eff687566e2917915ec886982137d8bfb0c4d1026763ab7d1358022c7d504a9cde89e0f34149bd4103d8d18f3534cea7cf444cdaf750277956c939e053 +DIST firefox-102.3.0esr-uk.xpi 635945 BLAKE2B 46b3a19488904df7bef1883cff005ee63a5b1b3c2090c64fb366c934d5a88037fe89027c2685d6820d032147dae1abe4917fe1fd45d3a4015b5b191a1a6c2108 SHA512 ab9eda82ec04e9ed5e7532181cb1f78388f6db76823b40280b6872ba6522d244d81f40273ccbda12ee0d87f9263cf8d32a43478c5b4db77ff522ae634699ec7b +DIST firefox-102.3.0esr-ur.xpi 558059 BLAKE2B 5901db9e23122470312df1c61acc4b7a1e5de16d53701e8dbf8ab1828fdbdb9e7223f146675a7f6357de8ed4f6dcb2b17bae02fa4b13c55ef8f767ed0a8739bf SHA512 c17ad720bf22daa4a8f6bd2046e218875ac1fd8d1e256b6a0bc4d9d162764f0af1cc900b9dd54189ad750deff2faedb183301318131d725a2da761267d5bd706 +DIST firefox-102.3.0esr-uz.xpi 478246 BLAKE2B 580a168a88a12ae18162aede8c6a3f32b1f7ce9e938daef6dfd00c9ffe3d968c10efe40354c458b6312d374c8a2fe4a88b1ba59e5b3c39d535deb5570b131642 SHA512 106f5806dc52f3c49cb162b850e85cb159284072b0cd0e833885aff89d711be76debab4e377e9edb11f1f5aae437670aae5df76c1b5ab22a77c047e21fb44404 +DIST firefox-102.3.0esr-vi.xpi 586368 BLAKE2B 3ec464d87002e196970b04792767e539c9c12c1e17165539492ef00b6d9a7b8916ab4f3c5e05a218be746dfbd43dfeafa2336f8fe841ee5225ba556c252407b7 SHA512 362aac1e18f3a3f694b657cf9bdb7c2c2cf9810387bbd71e13e0b9e455f3d3e588b7500fe6cef299c43c4d793a7ebdd31a15e30076c0e7e2600555c5b187fa46 +DIST firefox-102.3.0esr-xh.xpi 427184 BLAKE2B 85d46e7f2d1220e13ce660677603cb9ba90e2244c6140cb02ed3a93745479268c4b72a04d02ee184b88519b69b2c5784526625f3e478f41040a07200002bf8ef SHA512 a8ebe8abaed1019b5b8cdf567f1bd8eb41f34b75609e99e7abf53c92884c49a886d5c481245b4411ecf735acf2e611f872464d47a040ec7e6a6f19eafd23f51d +DIST firefox-102.3.0esr-zh-CN.xpi 589094 BLAKE2B d496632b1f029535012ad3b43e93534b206651701a83e32750f03f3d7c2b2b22c6165aa0748fcee89c1b97a535e521ee4e8c20ea51fb6633892a0e851b8adaee SHA512 b328345dba6f6d02561fd63dad909b1c071af652d36c198bbbbfb746fd7907b6ca7d048899a4ef42477ccfbe5c2345be3afd4bbed1fa75f04f6c6714f0831e1b +DIST firefox-102.3.0esr-zh-TW.xpi 590469 BLAKE2B 71323bfe2c05d01e38ad6629291a83f82eb2b5486a133d0836e5982d6ca8e2fda0ec11e66d874dfefff31b6b42237324b80146ac643b78d557102a8b693f6847 SHA512 3038339af3b2c01824c17bdcdfbe64354c63e4bc55b6bd463297c1f875c49980a747c5447f9f468ff567d6bb2b883b2cec91a1d716fed3245aa1a1bd840412fc +DIST firefox-102.3.0esr.source.tar.xz 478260896 BLAKE2B c40ddcfefee874f6dff5d175331144461917269e912d959af20aa19cb8bdc57209403d1e5962311614be8fede33733f734c19bb0d32d881421fa1197539dce5f SHA512 35357791f4de8b474780083a22fb52b7846b8012cbf01403f2b9526151d11c196ce0f9fba8e0f16d8235d7259af6fba1bc3acbb5b7e79129a28f390467aa7556 DIST firefox-102esr-patches-02j.tar.xz 19688 BLAKE2B f26b8dd2613712ab49db34247c432769386ac066238b86c0eea367cebbd167334f822866129d0874efc35da4da686e6185881649b0b3095dede28ec8c658a3b2 SHA512 456cd2b7d9f907080afb5225d353154117624fa938f24dcfae7ada03f5b39572e5d6d6e1a4bba7825465b48f6d38b04e5c0f69556c82d4ebbe1463e11dc809d7 DIST firefox-104-patches-02j.tar.xz 18596 BLAKE2B 9fbd9a901f956498375ee1ca4a237b8c24e4dcbed504debf8ba90e890628ae2c45a8dcb51efa8ff81b1f2f119ad51c235172ae3b2c31b97312cdbbb343f7e34f SHA512 43b345a5f2c1549695b1cc6faabd91e42dc859a24aad998bcbc38a5d68e550eeac412f7a342f3aa6061e308fad4230b80329c5d9a13dfae638a1eb1eb1a46357 DIST firefox-104.0.2-ach.xpi 458326 BLAKE2B eba568e83dd1103b5e6ec2a955aca8c866526ea276f9da0279932c8ab531d3ac0ceb53bafd5ee93dbc2762c1b4a6baca31fa85f6328e6f8c8ec9419e4e9faeaf SHA512 4f28bceea0d5e74a777b77a460399bbc90012c3010ba3f663c0ebc122f8e8eb659518f9a696d547380e0210a4d47f8dce86f162c5174697537fb5ae9acc90ac0 diff --git a/www-client/firefox/firefox-102.3.0.ebuild b/www-client/firefox/firefox-102.3.0.ebuild new file mode 100644 index 000000000000..0b83cc45dd22 --- /dev/null +++ b/www-client/firefox/firefox-102.3.0.ebuild @@ -0,0 +1,1262 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-102esr-patches-02j.tar.xz" + +LLVM_MAX_SLOT=14 + +PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +SLOT="esr" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" wayland wifi" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast" + +REQUIRED_USE="debug? ( !system-av1 ) + pgo? ( lto ) + wifi? ( dbus )" + +# Firefox-only REQUIRED_USE flags +REQUIRED_USE+=" screencast? ( wayland )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + !www-client/firefox:rapid + screencast? ( media-video/pipewire:= ) + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + virtual/rust + || ( + ( + sys-devel/clang:14 + sys-devel/llvm:14 + clang? ( + =sys-devel/lld-14* + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] ) + ) + ) + ( + sys-devel/clang:13 + sys-devel/llvm:13 + clang? ( + =sys-devel/lld-13* + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 )" + +COMMON_DEPEND="${FF_ONLY_DEPEND} + dev-libs/atk + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.79.1 + >=dev-libs/nspr-4.34 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + virtual/opengl + x11-libs/cairo[X] + x11-libs/gdk-pixbuf + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + x11-libs/libxkbcommon[X] + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + sys-apps/dbus + ) + jack? ( virtual/jack ) + libproxy? ( net-libs/libproxy ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-71.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + x11-libs/gtk+:3[wayland] + x11-libs/libdrm + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + )" + +RDEPEND="${COMMON_DEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + )" + +DEPEND="${COMMON_DEPEND} + x11-libs/libICE + x11-libs/libSM + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + AS=llvm-as + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + if use ppc64; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld when using clang + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + local -x GDK_BACKEND=x11 + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + elog + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using " + elog "useragent checks. To temporarily fix this, enter about:config and modify " + elog "network.http.useragent.forceVersion preference to \"99\"." + elog "Or install an addon to change your useragent." + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100" + elog +} |