diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 467c260356465..f249ac884932b 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -98,6 +98,106 @@ DIST firefox-115.15.0esr-xh.xpi 414955 BLAKE2B fcbe5f7b559c90382d4d45b808ba35242 DIST firefox-115.15.0esr-zh-CN.xpi 657103 BLAKE2B a7927017d440780ee1ab7a4f2a9075bb071db4ca38f9bd05499606d8a3a28d9daa3bdfa1895bce263e9a81dcf984042e1447bbbd96d4b3e34249045a6567ac28 SHA512 af3399e9eafd53a9644bbc7c8e714e4b497f0ef64f98b3b4e2bd0d28949031aa3f23f78e973baa4286622673ddc5f55c03906bc6059ba6a10448fe0da68f4996 DIST firefox-115.15.0esr-zh-TW.xpi 659312 BLAKE2B a73185e11f1b6db6def7ebf6ac1bc54aedb459822cb97768c7699a2fcc0ed74ee4dc96c2cc9a7a9952d3dd3c58da9340042e6a75f4fa0f9b52dcf98a88066a46 SHA512 ae7d6d80e645e5a69d8d0fb9a245e7ba0cce82ebcb7a167cf0a4d5a5e306dd58130bd550c66aa814bc0b30a2d57282dcbd44acea47370a6137ff4404eb124034 DIST firefox-115.15.0esr.source.tar.xz 507920832 BLAKE2B 997a3148b7019fbec95e1e003561a1135c27a769ff92a675debff540b20213a21cf96f9f2e9cb1db4e8c81702b7fcf7e1ba35045dc7dfd705957d099350ea9f3 SHA512 0df4c498c99cce08903004d2e0f9e977a19f7de86240aa82dba179b60f1d67ca3021eb474f56bddc38035e773eeb5d99bb3e1b0756d9f7583dc8e1f747f477ba +DIST firefox-115.16.0esr-ach.xpi 459029 BLAKE2B 65cb136e1560f939bcaaf4d28c0cfc69422f72ec05b276d466cb7c6a5a0dfc7c22c722b95668e8fe6188aee39d5bfd60f8601184f8bc264c4db6a3753ed7f575 SHA512 c7fdf0f438c9edc4766008e4b117c2deb799166105f7f9dcf275ea643840ab12e27e997713ba760e6feb8b86758e2cd020c55aeb3402f07575e3c73ca647bba4 +DIST firefox-115.16.0esr-af.xpi 415177 BLAKE2B fdb9e4460a9421f4ab9356adbd3b70a85b36b296424ee71420d26b70f9805decfb465d86fd3c174ec0b2497353994d65d36e75c0f7bd3a3c70bacd14b409c236 SHA512 252891eb3c12e3ba33c9c40633af42f2b8e1baf32facda51188f56213dd2ea0d8033c8a8dff87e31844190ed9ff7b0464da34fe1c521c047f842ac0d164e854a +DIST firefox-115.16.0esr-an.xpi 499570 BLAKE2B 3c99f14d9d97e4c03a7e8574b599ae28db6f63b9d01fd3f333b5be4c291aedec493e8ea9aa8d44e6ed8da0d0a6f226ed863aa74ebca4752259e330095d7a5596 SHA512 b69973467a6234b96a3baabc6b74196ffd2cca3ec5cbffc665094b413e8d15471334e2dbc2cb264e14027a40a8f3340c4c720ef52ac1ed714c1b322cac9c1fe7 +DIST firefox-115.16.0esr-ar.xpi 606285 BLAKE2B 3d966801b4d600fd9aadbc43229c62e54a684d731a290a358f748302b944199f4f726abd7251e21ead09d9f8b7b9151b11e4f2e66ad976bc6b537464712b1e11 SHA512 99de40fce0ee625253c54541b77b96132b9a4bd636c7fefd6b921bcd0e785bfde2d56fa2664dcc7701825c777cc5c83bc3b2d13f0b2f1e0e05bc5f418ea81643 +DIST firefox-115.16.0esr-ast.xpi 491337 BLAKE2B 2f0a96c92a0b9af0dc27da7d6773dc99ef035e7c24f52fb76a7934f8e92ae0d040beb4b495a3a65c50c45ef3ad49ec43a8c5aea02d8fdb820fda13352f085fdb SHA512 7e8cbcead5298f8315a5cdf38dbafe87f31bef1a64816566c90bad42eb649b1e1a7e6784e66146e8b73ba99693802918dab55a68ebe5d788ba457b83a614a676 +DIST firefox-115.16.0esr-az.xpi 486090 BLAKE2B c692d683458e52c6e0bba34a3b356c91477fe9e52d88ce11bce5e6972dd5e7f3cf76e055ebf911e92c2c181696fd0b93230e875e4fdff9d2095606c5473665ad SHA512 6834939981eadedd6c565af6e82004a589942f1f275ca3504e282ea689380f8e3d582a69930dcd689e1b6bc5847a56141c94558ff41afc7c97f8fafcdb6dd766 +DIST firefox-115.16.0esr-be.xpi 715661 BLAKE2B 813ec9b51eb940616bd785bd7186ba85c9c253c789404f7e01b0c9d4f40f3079fa8a7edef9607f3ced73f5c25fa88421efc4c05f8e4b8f3a87a3bd24b9b66347 SHA512 00b0dd0e55a1e3d1a36e8dc6be6e71490b2c4c4886211a0d078e9904179504a415359c4b9bc380df3e7e8283465c9a257b25e6a388a0a928d08a2ff4dbe1bf4b +DIST firefox-115.16.0esr-bg.xpi 600397 BLAKE2B c46c78f0632d51c7fc2b4dcf5e2d0140c3bd7095d2fc56c088c328e8590a527abfb7f3f9b4ee8517eac2fec779bbfe5f9c0a8926c0cee203fbe5c7c090f4ae64 SHA512 c7f8efed4dd111a842091e60d8d57434bb362d909454c72f1381afe6dd195a5d4c03012d8b92a1ebd49e77d997fbf97343a06831cd90824d3ddec66b6a29ca99 +DIST firefox-115.16.0esr-bn.xpi 576344 BLAKE2B fd11642f18af552844ab33d7646632719b3c9b199b247cef59fe32bb0e98b21415da0d8bcc1d269329fed5e824626e97ecf28a954417973478206f0f1f138cfe SHA512 925ce29218851554923a05e652ce9b6fa3f8d520bb722de61e6ad34caa9b1b9d766142058e137c50ff2358d343df22b2a40514c96baead0310c08bf222135cbf +DIST firefox-115.16.0esr-br.xpi 584991 BLAKE2B 745ca4092473b6b59b6e8bba42f5f9b84c79bf93b6ecb5f9151e20a977e9df95a75d77e7fc2b2dfe55081cd6b01d8195a23b0833c930217b3370becf97600e02 SHA512 93b2cfcefae329fc1190c7a64ad65ae420aacdb8be32baed2960d35dda866efa436e0fa117ff52b47909701484ac4412a5b3dd93865b7291223c18f391fcbca3 +DIST firefox-115.16.0esr-bs.xpi 496779 BLAKE2B 755099fec8e1b930980a5a419f87170cdc7376c3b332dcf0db745b8ed7355933ef3900dee98c67d02a4b99425eb86100583596bc3c026bbd64cee083640779d0 SHA512 e6de1c9327b71919f352ee51d87c0483ca87455528a565268eadcefac38f3f8e7b41e5dde59d100271732b68e7e0e41a0bc514d0b4b6affb5c4a3518c979f0c7 +DIST firefox-115.16.0esr-ca-valencia.xpi 539265 BLAKE2B c2f89eaadd20f13017f936bdb2a9843148aefe8310178c4f9f711a3537aa9d1c3b89ef9dc307ef3a1bad7359a886b5c379402195d2f8395fb5d9472ee5a8436e SHA512 792d6dbdad1bee6c1ace53d73440069c64fff614697830f8a70cef86688dab99796127a0d1a92093b86865d9f44b7936430db06d94525efeb866f72e773a5d68 +DIST firefox-115.16.0esr-ca.xpi 591045 BLAKE2B af3853aefcd84c8013841f42d9fa3b1fe49e00192771523a73aca46efc1676945e1aab66b1b149ecce4ba49e9901cb1fd5201cbc7c66f97631deb91885ffbe74 SHA512 d6f2d526226544d466aa6dd6ddeaf76cb00482def3f0fc43baada35ca6a51d4c937242f2c6c6699c8c8145d063af63cc4386b4d12edeedc2a4ab388782dcc2c7 +DIST firefox-115.16.0esr-cak.xpi 586729 BLAKE2B a7fa0e199c850bdd322e081ac84137898031a3ad9fb18281f283f21bb45c5b329737639558570a174fe1923166366a26e50ff80e2f910ee03c8c9c374b5c6d32 SHA512 037f464d56c5181de4b97f686cfc2ff6a7fd9113f071792f63de9d1749c30bd73243c844a5c9df565b68b93c2a77f28375bd96f3ac1c38b361ace7d87e43f106 +DIST firefox-115.16.0esr-cs.xpi 659582 BLAKE2B 3b4bda260f590635f8f0ea5f8d2cf9dc23fb48ead8d2002fac07578a9b2f5127f973fc0a89a9bfed0b476689fb45b754ba3280b13b5c6474dbb3fda2f3e26be6 SHA512 acf81cafc4ed752aad01298e8965f192ca1137d08bf6ce20c2671add233a07e986da7d86a80ace0234f45bda70ef54b766d88bcc82758f3894323351cb41ffd9 +DIST firefox-115.16.0esr-cy.xpi 622578 BLAKE2B aa063d83ace8af604089125ccee500e71c47697edb00e01a73409b4e6dcc14bb9d0ffa30b452aed2673b97688b968ad4f902494c505fa1f4ccfca61bce883e5f SHA512 7e1dcc45f9c04140d14cc9a38d86a06a341a6bbafbaa9827b13d3b6012388ca0a161025c60617640e033d8da8e475cc5309a6fa2bc75e16c86917c65fd0e7536 +DIST firefox-115.16.0esr-da.xpi 611176 BLAKE2B a52f244f8dec674eddd70cf3ae2d5f09b53249c9eb0403712d838090a9af7a1168b1f54b76656c8cfbcff5f2a1faecc889f418b9602ff37496a400eb824153a6 SHA512 b9c8a88eb9f380e2dd56580aa88b652163f2d99529cc63fc650ce6372780f4f488fda0af12f38e678034651bf2e31410680d76f73ce93ba6ec783a6ba3455ecf +DIST firefox-115.16.0esr-de.xpi 632366 BLAKE2B 2a1fb1a123f7d88b959f98ddece9d3f18337daa93362ab632bc5cf9940966a0ce509af15093aeb757c808e738553229661cf09bbc330a3c8cb67d0450b16f93e SHA512 2de58d4b4041700c2591246fd1320cd5179b5997613114e6c2a50faa097fdad064b445ed98b117ec3bb21690559710725523423d181541934acb33edd0be6211 +DIST firefox-115.16.0esr-dsb.xpi 651481 BLAKE2B 0d7e7f667e35dbe4639963f52f73b1a2e22657aa6f26d3714c6ca7933eca81c19cfc91470abdb986b8d375b137a7f66ea0ea306eb4648f74827b8a86c97e1f66 SHA512 2e6c25b556ae7d079b53d7863c1643f7c6b9a207b504f502c835e7c93f710f4d50e08b1d5ef36b839114e0e030c6a2b04386a1f1ebe624fb483d7316bf5798da +DIST firefox-115.16.0esr-el.xpi 734625 BLAKE2B 14df77c5bd1eb33d636161e52c535f863da0ad5ca5db022714c15d89a66756ff3c1036ee2c61790582dc9c460e62cddd0288e1c55f7ffcf80f586b2d0ea87135 SHA512 fbb400c9fcfe31b961b3270c1a4b572c648000a6608c3885e6a5345cbc06c09ffc74d007120645b9871faef7255d202a572fc72bf2c25fda6b4529c0d35306aa +DIST firefox-115.16.0esr-en-CA.xpi 584140 BLAKE2B dc56bc189b6698af646d475ca28ba1975bd8bb35b08b8056a74c6fc59b327844a8e39caf6dd5daa052346cfad9c89b0b96af6d79ef14a5a6f8ba855861d61c8c SHA512 0ec267a5f31d5486e8ff1a419f5565e4cb58f12c9e011641bb7d40f44725d6b35c2ada2fa9e730d55e8bb06e81e8b42bc95d1f3a858435f7c155f75d4d46321f +DIST firefox-115.16.0esr-en-GB.xpi 585206 BLAKE2B bfecea46b35aec3b8babcefd03a9623485a3485e3b58386e5d0a3d3093489bff52753ddef79ef1ba6192bedb81c006f8d51cdd07b7f3ace6b2bfc336e09fc42b SHA512 7528bbf45370d66edb704f23f41ab8344eab6fa80dce66c439d97ff23da367a3cea90c4cd2f5b05cc5243e900b67e5081841f95ea7eecce06531f3119d4424ed +DIST firefox-115.16.0esr-eo.xpi 613418 BLAKE2B e3c81ecb34a072e248c2be34229c522fa9135197e63100e47c9c348de3860306bf4183771abbfa5183da1089eab107831acc8021f584f32ba0441b909eaa5755 SHA512 9248145401c45e7b33fe7fac7cf851c8f8613a9d7a8ceb255129b9200462cf9399205d7dc9511d0bb8e1a557d0c813a67834a40b72fd761ad456b38185a0b639 +DIST firefox-115.16.0esr-es-AR.xpi 628383 BLAKE2B 102ab1a9a77ec8a2595505ffd5a4acc95d1910fed5c58b9c8eb88888628340cbc22e0a7ed822908da2b4af4df338dd73453e61d19a6d79473b2d65fbfe1208b4 SHA512 8ab7beb39d7b3847f2335ae5aaa087f7238775900828efa0fdd28d8de15e94a76360fd6b1ceb9d1c484322a416e00c2d51b16a3ff08a83e21148462049a70706 +DIST firefox-115.16.0esr-es-CL.xpi 627709 BLAKE2B c6b2a8d24f63e22838635c56fb65d42340b0dfafa4c397ea5c0d74e0773b56dceb0c6a5c5e982d364f7b218f2ebdd76fa5eb2578613ba001642dc54867653b7d SHA512 464abc3d760a08c81db70c69fc09080d2e4a11eb09fbe2ac1abf59989bbf1797ca6ea6d4b767173b0474db922bbb23eca06108f8dc0fb0f6e9852aa8cd91bdd5 +DIST firefox-115.16.0esr-es-ES.xpi 621485 BLAKE2B 1e948318edaa54373de36e2a64dbdcdd6857a7a2955a43d673fecb199bf3ddf61a53031e0e0ee341ed950dd0002dc7c5c7ec90fa41e312b3afa909220d8e06a7 SHA512 ea93b0de35b337a692bf1b957aee7a814142486ece0d6bd95c203edeafac6fe9d35e6353adb77dcc43dcbb3c289ce36f232ba0859905d8069c12c158321d1647 +DIST firefox-115.16.0esr-es-MX.xpi 597934 BLAKE2B 48f9125910715771674d10b2d141a031072165c244410301b21c784f6e400446f32feb383af69fd95c85b2f8736d83ed7639551992d72ac9e00dec90cca1561f SHA512 af0537f4a087419f6ee5e2d5be572cef0e863ae8ae0548b82eb093a1ceedb2b1354503cbaadefc869f45993f956db0b812fc051d45cc12a43bd4cdbab87fc8ed +DIST firefox-115.16.0esr-et.xpi 533027 BLAKE2B 4a1eb6c0f515c042f421c20f43c327c5d2c0c29f88ce3f8235784aa98713f1ce10fcd6ed22f9fc82b723bbc17dc53fbbbc7e39cbc8409625ba8168b78777bca3 SHA512 b149673b1fd6a1953f3c3f4a83aa0bfde0877b015f9762f4cbc261a299c26ec3ff01631c2141bb770aa9774a66839d2108f7fb2bf7db0831a26a2a835e0ad3ce +DIST firefox-115.16.0esr-eu.xpi 594639 BLAKE2B 2cbba6b6faa6ae1e30bc782d84966fc161d41012e261d24d06d2f954e6ff351493ee9a6ca3bb905d1a0bb0f8e18d0507c327eb8d28c1cbc1548b774a7dd62c3e SHA512 1741c9dec8c62b446dd73c47cede6f315fee6b29a2dfc4951452d88baa0edbdd847692c751b5063827ab0be2d6754821a8f61e23cc0f8911e4381cac414d93b0 +DIST firefox-115.16.0esr-fa.xpi 584363 BLAKE2B 016ead584cff3c8ad25e00cdfecfadbe974bf8da711e92eb886fca9363c2e8f627a874a018abad739c5666440301d60d9981df86b510322f32b7856ced6a3cd8 SHA512 da88cd407d8c690181058f5d7a02a7e49edfb6b24b3ab91c8605eebfad899a0603feee369543f6105ef7460de3a7a200fb982ead4c378c15867de9d500896bef +DIST firefox-115.16.0esr-ff.xpi 471726 BLAKE2B 5c9a8a662d64b22207a9dc7d85b02d1d0f09c9f677425b15dd652bde91cbd038d5e9c8c9ac4eff37d3e1a13e378b80eb9e8b14100345d9cd37f33a825c895423 SHA512 23a52121eaaf1c11e5b9a13854e170c4d2d3b141836eed0206571f70a83759890434483d6a0b92a3d0bc76d50ffa4e3ca5d6d8f23d592716ceb089b9852c5aec +DIST firefox-115.16.0esr-fi.xpi 604626 BLAKE2B 806d271935fb426f3638a174c28d37b1a88dd0bd49c38fee0f36a4f61408077f45b806cbec4d453d17c17c3c0f97d95206cf61022fba4bb91fc6b1de2ebc3e26 SHA512 18b637257860b0341677b08c5d79605bcffc4d4d5ff45ba5fbe421104b8da81e8397cd0067c3664bd8756d6076824274fae301674ba8676a1626abf4e3e1438a +DIST firefox-115.16.0esr-fr.xpi 640838 BLAKE2B 190341adb7d2d18db697ab605b6455677e2e17b99478c5b03400eb94ad399f135098e568df52d6dd9d3a38d3112bd3e50887199b9821516070a7e514b4128f2d SHA512 9b249f372d96ab38e4ac03012f74f2cbde0fa8cef51723d5b88afe4f49f322848462b4aa7798a70b2dde166bbf9360e5a9ef89381711f0bd18c029a549fc2337 +DIST firefox-115.16.0esr-fur.xpi 634493 BLAKE2B 6ff95def15fc612f381a6540334ebe211166e066b2d4ae3864f9e276ff7ecd2c4e125790912196d2dc732a5dd71ee9db3ef0daaa2846ab8d2cc32fd497508987 SHA512 529c55b8f980542eb8f198d6b41c76555c12209570ba6b0f186f1a08efaa6b03445e66cb4f4381ca94153775f033d5577abedaeaa17cc54e01f26e42dd9e7a9a +DIST firefox-115.16.0esr-fy-NL.xpi 624078 BLAKE2B 5fcbeb43271c1d08c1760cc8790ddea8ae7081391a39540669db0534c9f1f8a92b1448d66419c98c9e00c50785aca01ff0fbc4e82e79433267c06e2c1a6988cb SHA512 b957bb70d8ff6e553e365e406509fd12bf15512351919db5b7eb390045671e4d6582a4438c61e11e5d81c5a2d1215369f8602382510195d9300cd84013d91cff +DIST firefox-115.16.0esr-ga-IE.xpi 467639 BLAKE2B a60dd612ebc98680f934dca91b7d26c82ae2afc76bffa6c25615687c1da6f33e983cf22e04bea415ca8e6d54f9b3a4d81732746a523bb40ba749aa94c592789f SHA512 6d08a024d267f60de39b4c3a435133c10bb972a89f38d95241a67f2766f80f4e025d726ac0b0e83f9f8c676c7d642c4559b4eee9fd0ecc73a50099c8c0827514 +DIST firefox-115.16.0esr-gd.xpi 589975 BLAKE2B 34b0c9582c5180db1718e32c485ca66f01666f1f797569554fafecd6ae6dd973df509ac3442bdc9d9584c87bd093faa03b6bbb7d4e0431ac390c5a8b86be36cd SHA512 26ebd23dd5e09c8f4b2427d547d288d73c206a2656d7dc87d8148b1159c1cb8bab79be955acedf1f172386fff5dcc6294229090be12ac9fd695a8a6a2d0b4896 +DIST firefox-115.16.0esr-gl.xpi 599983 BLAKE2B e4b2e71efaa579fe7703121d234e12eab7ada1114d2b93d775cc75ef6e7f2aa7b8e341826a64cf9ccbd53aaf4594d81e1cf0a2daf01c2ffb2bdc17cf37ae1a22 SHA512 ec56d80450f00505f537dc0213954d5bb8994cdaea625b98376693d359954ceaeb3b0b310993c00d4c198118b6e5dbbf1c88b9f6ced0bc25d9aa3a8e308adb87 +DIST firefox-115.16.0esr-gn.xpi 637898 BLAKE2B 795e1c44547576efa2fd21e2bf8a063610e4329f455fc6e8539962b272b8daab61880502e749a7f0882b5fb7e34dfb8ba38ad7069f853bc2f138824f8b51dfbf SHA512 b95f69b513e0bbb9568239219473c6969cb923db188ebf6fbb482b6af8e1e538e0b3c3f11810f0fa9c9b7ef0989866128d6fbc198d23ae67d86ced36a9c2a9a5 +DIST firefox-115.16.0esr-gu-IN.xpi 523387 BLAKE2B 3afc05e91151029c2389f6bb1f61305453115cc7af41812ff5272f94cc77347eeb429fc307791e7ab531bb991a5b243e135541635e2bd7344ecb9ed7fa4485da SHA512 f0e8b23bf58f9dcc644d9106dc83778f405b68fa3a2fa240bf69a120dc5cb48376550eb263ae80569b66c6c320444dec3afd7590441c4150810acac5ddc37cab +DIST firefox-115.16.0esr-he.xpi 629103 BLAKE2B 4051e378e0f7931f24d6f5a76b86a7e6b9658590d592faf3d77e2bbc441fc5d8f2e6c64e1ae4d4ccfe902564e480040187c26c2a69fc0b2b47e65c136e4d277a SHA512 c2f294a62aca9e189825f9b20f95ac12428791a8aeef27b28961f103b484301f4465ebd27d98dac130f093120a1e2093b2428106fd8519c9ca7921e554105490 +DIST firefox-115.16.0esr-hi-IN.xpi 561259 BLAKE2B e897885157793f368cbf3512a68ded48094224d597c4915e89a48663d4d17b556ba85f65af9c3892d5f112a76afc7a31f5a92fb6731bc9234ca774cda893d2a6 SHA512 5578d448f4f352d64287fafad2efd455494f3fc127eb85ba7ddbb63d75f2642f1bacfedaaf4fb68d6f7363faa14059765b498855ef21e1984d2922cca8a5174c +DIST firefox-115.16.0esr-hr.xpi 554547 BLAKE2B cd8f5be9cd2380b7dac7b064d6c7b9264f2df06555ff617a6b1994f21fc0563aacbb7f729ae165fb1c24456ddf4224cc695bfa3730a916cddfc660ddc60f1de3 SHA512 e277149940e54c926f67b131575a00b09fa021bba2147a8f32fe3ea21d00a51b91d2a42823a08397f16ce9fad4a6a6d0833df7c0dd7397c02a56cc3d7a745db2 +DIST firefox-115.16.0esr-hsb.xpi 647500 BLAKE2B 46e8130a18772f87d539650c88155bf32f35282cec1aac584ccac5efed74cfb9e2bef71cec79cf603aa60b84967184296effb40892b2fef40cc8fd28cba9032e SHA512 05a2e52a9a8c902a0dda60a2ea958cc85c114433d8044c3ccea7f628cdbc9f863cbb9614026ac5d604a3b4244bc0f1f07cac80a68066ba84820d9875a65c3225 +DIST firefox-115.16.0esr-hu.xpi 649859 BLAKE2B 5be250e28add2b14160191fd0081be0cf7e2e3b95fba1d14ce68123d2765356a60e237ef6be95634671b08dd520f4133303c1d0f4a3af0d465c950b10f24a87f SHA512 7bd31ba3f6a518462eba791050743d79bb92fb530ea00770d1bb79c9723cb50ae4ba395290073f571fe66de1cc9f66f04ba9dcfa9e61bbd1df75dc3043ad1b84 +DIST firefox-115.16.0esr-hy-AM.xpi 647646 BLAKE2B b77e4ae642c71e11554d459e67a1756a3a84b85f98205ade09a9f0c36caeafd4e77c5b778855d7b9481b8e6105aa16a89710596284471683397f8055c6b71a21 SHA512 a49ad35cad7b2c2aa0608038c9598084c5e1620c2f5f8649ef4d10bc2102a89cc3f6b5fd119475271e7172391ec684e74ddc46c357b204ce9f4d6f216886c06e +DIST firefox-115.16.0esr-ia.xpi 610840 BLAKE2B cadb9622774264b3fb890c9d082e78110f1abb286003c1f99f91ac8aa572c474bd1dc967fdae33f3b4bc19ac40a54418d27817d0ad7577bd17a11e20a9bd1d1b SHA512 38ee4041447374f9da3e47af3278b73e54aeada595162d221ca9e956292c2a623dd546cdbece470f3700235443198c52c0370aa08a7995c9d1b6409171887072 +DIST firefox-115.16.0esr-id.xpi 573420 BLAKE2B 9fa806a478a08443116a6391305cf635e5260043f5654ce727d5a30ff7c3fe84a21640189bb47c2885a6c8887764f9d808cde76a02d21a655ac60045cac2cc28 SHA512 45bcc770e69a195b50b7b6b144ae7ee9ee1e1e97873ec3743f1d749cce3c9b0fca26ba597e5761f76ccfbd4c303dd2b68883bf42ca50e00fa550f2fe5c67c8c6 +DIST firefox-115.16.0esr-is.xpi 611651 BLAKE2B 106d3f16d4bd610c25270ff8182d3e19abe6056c96c812359e6606f3d2bff864d2f0574aff59f5602459fcab124f08984703b83324af6811d74cc0031e13e9fc SHA512 590dd304fe5f4a5f4985c7d6288cf34544b1a684475dad07443ee30e647ceeb35239e3297cb834bb37f882a96b0667aa2bd4733f0fa901d469cf253a05febd11 +DIST firefox-115.16.0esr-it.xpi 567125 BLAKE2B e3be50a505df11de24333ee772d95781524515f5dcb03bde692e55dd5e72b8b45c44f1e1e932b67930b42d72fbbffbf1b51d0e8b479fcd2c49551eb6cde2344e SHA512 1d87fe5c7266cff6d6fd3896c36e210ceabdf6bc3c31d512bc8a6623c71c8ecbfe80641154ca78a1a185e115451ab8bcc6a1de6242d3dc01d304bd8777d37ebf +DIST firefox-115.16.0esr-ja.xpi 676020 BLAKE2B 344fef71f4973fb7f4778a32b9ad2fe1c9ea85b03b20ca235ca37e8f66a9d29190e8ad82607ad306cda860e4ba1a8e5d2199fcfa3063dfe624aec23301d2169d SHA512 42a2a54985c724344c4ffabedda92815a1b88ff591faf88eb7d48ae8136338a2f371fe6f8e5fd52b8114b3f9d9d94924a418c2a8850d8a2184abc9d20bc5c748 +DIST firefox-115.16.0esr-ka.xpi 657982 BLAKE2B 9460ed674a372162f954c590dd5c9b936961dea37cb9c44d73bcd2a99956ee8d0f4627a81ba575dd22ce4d8f78b9ca0e1f30cba5279cc423c22dd007eb8cf7f5 SHA512 05b88a6056211ef084a01c3f9ce4d9abc229916d6ee853804969f4a04e9416e41a6cb2e8ed06d9719cb4dbc7bdf696e0e9c7283cde4d8821570fb01fe16da661 +DIST firefox-115.16.0esr-kab.xpi 604028 BLAKE2B 6058b0112f5914a55a997f34a9e529927271f15d7c7cac6eea3df2e08fdaae133332f9a32334398c273da7f7aacde94980226a77e9527569c472a647bfed6692 SHA512 0362d8599d2e7d398ec26d4285e2857ea731438d22a986eb213a2db0afbe2a9da1bd38a2a310bec6b64ffc336f580005a2bfad609308f691981cf1cb2d576d3e +DIST firefox-115.16.0esr-kk.xpi 709069 BLAKE2B 0e97c4f5dec753ea48d99333e55a881c780ac467a94724055cee35454ce7126d0ecee622451b7427d2366d0acf12b0731aff1e8fd948a6e101c98ed30d2b4e11 SHA512 c16793aed0434f18d0ce6b11ce0f6cdc0d2911c337d3635a280f5bf1b83fcf13d0997f57835d52f1937097c09f582a71df193d9999f80a3d4d08e40d1840d3f6 +DIST firefox-115.16.0esr-km.xpi 522327 BLAKE2B 0ab24aaf841f930809f2589c77e84fc4bfb98078223d16f520205bf13a5ad2795721ac942bd5b3f4ae51cad69a90188d23816a9ce213b0a5fbba9492f0f26385 SHA512 3dbf33cd1e2f4adf5dfe6edaa732b4e41cfd6e3430254b014ba2a03c31ae6a63c41e4854583131d0066ddda2a1726db66fa35908f5dec4476816e2eb29851ffc +DIST firefox-115.16.0esr-kn.xpi 488200 BLAKE2B 1e36d1e90d20b127de591e66692024cc39eff1185ec2956f68947d8a0f3174c77f9986c48336b9b2eea52700a47d500e10dae270ba1ad0a803d748296215e49a SHA512 dd2ed7016e5135f74d60ef40e6642e013979c218d4f002598ab590ac80d8a647380d888c715a0f059702e3b0ef6bdad6948f263cb48417d98d59d80393aa779c +DIST firefox-115.16.0esr-ko.xpi 662485 BLAKE2B 6f22d72504fd9c5e4f70d05f9f85b939f5ad4b80e459d706be8539b0082a9f2d7ff757c0af18e5a733c623fafb3e6afc931d3fa14371076d2db35ee83f01da54 SHA512 0a5dfad2dfae1608b82995d6462103317e0d34ddef0c86b55852a251e2252b6a59e3746285a5fcd1cd60ff47fe1dfe976ff0a7f558e322384805c39e6604617b +DIST firefox-115.16.0esr-lij.xpi 479116 BLAKE2B 6027f75e7a352cede3addcd184277d69a510f1f882371fbfeea53bf1d40fcfecfa9c56fd5524ed538a4963a333248b1134a7f67d77897b6548c0684667f26237 SHA512 fa369bd94fe785e04df5e92914be52e0af57de6d76343ab4cc85c608c9edfc64c577aa89c0f93b0fe65b35c615661cf30c2e2925a108f5c6b928fc1ad322440e +DIST firefox-115.16.0esr-lt.xpi 566215 BLAKE2B 97b63a4857ed756cd416e52386a8fef791df711cac3b799dd4ede6538f7d6483db463fa0a9f02227f3ec472e790191bb405a4229eb2ee66abdd1828d548592d5 SHA512 a526cddd9ff530449b75f85f251a74e54bd3d3037cefd3388213f562be4906514a93c4fd9cb2a3249f77c28444a2c2803844dcb0cc4200b75982af6780c5053d +DIST firefox-115.16.0esr-lv.xpi 568816 BLAKE2B 31c5a79e585f71608da5ab93415d54bcd59255031a55a4cf802d39ad256c39ed5d3022364406866a998f3ab18adb34ef0e595435469a788b6278653348d028c6 SHA512 aad666d44ce892b02df937e8c0f9f186c525fd37f4d13f628548ba6c6811f73b55081ec6369469fccd8f83e3bbd29a18c5bc3b2a0a17824d7da0f164c4ed0b52 +DIST firefox-115.16.0esr-mk.xpi 490535 BLAKE2B 7afbb5ca285c3f4d048a8169949db771d814638b7ac00f8a5fabb8851e8298ac73e4e14d7733731ceecc74a1e6b3206d5892bbadff9c6aa0f75a12885ed69bf2 SHA512 fbe5746f3dfc8fd916d60810103f8c1c17488add34587df0f9883ce12b7b2efc12535925225a89311e0726743fe8bf1d5c2faf879b23a95352112a6ea72a43be +DIST firefox-115.16.0esr-mr.xpi 526889 BLAKE2B d0d71942413334a173a2a192aa0e0082139e2908a9f1070fdfefea6d85f3bc31246b531e2f448d1c71931152403d9cabe77e4587b5366c705554923e56e12705 SHA512 681f1294d5dd988e51a4799a554fb8ef5403e92fa5726848bcbe858dc43b70acec6a803242abca4d3c2ee8bb9e21c05a80948eac59ed3f5dd9a5e969be322a4c +DIST firefox-115.16.0esr-ms.xpi 445505 BLAKE2B 6849faccc435364973fa705a26216128b3abc3af01fe60f987311d96d1cffa36707500ba09bb872ff7b558995fb7328f81a2c1b7578a1061685132608401e2d3 SHA512 d1954e2b8d218ded5e362bae3111095ad06392c6a430e7a15b6de9fcf841883bcc2c4103955acc3f20f2b1718d5cc478454cf0076ddcee44a3b20bdb78e28383 +DIST firefox-115.16.0esr-my.xpi 514927 BLAKE2B b985c4915f0197963a75746039f2c623c8280474be502a389afb1e09bbc1063e6fa15763dd04b93f9a1e23f8b29a73dbf5e63fa6bc72042250084da80345d06e SHA512 b9813b9df3724b57c167fb377cc3fd748c390e72a9d84c59f3408d55b437b0db93bcd04d026b084cca3253c757b5d70b983004c3e3c711e47963def50f8b00bc +DIST firefox-115.16.0esr-nb-NO.xpi 607318 BLAKE2B c37ab6c83553d4186e38238e7f663fcd591a4106ae1ec3bcdd87d24b5136a41951bf0f86a2a1be8a79d071a6ac528a62b6bcc5234ad9fcfb122c5b5a7cc13043 SHA512 b03624b99b56b0b998c14765c417ae89f48c460c74320c562a9e00f608a5cb617664a86e5385c4170feadd31653add351ca9caa4f540aa8575aaf941e34b9d13 +DIST firefox-115.16.0esr-ne-NP.xpi 506997 BLAKE2B acafc388605edd9f550bdf094e5accfa74713d09ce728f34dc5870ccd9af385c47386887b1e0ae80bb6eb8eeeae84a6407f78e0af8430abe481a63295f0777a8 SHA512 721fde27a0baffc5b8af5cd756f3df7417be418b9fc032e8730ff35ccd17ab2fdf40772830af67e856d41f2ba4a6d5784306004d4cc7a3d06a45dc22cc983fca +DIST firefox-115.16.0esr-nl.xpi 617756 BLAKE2B d16370f47ee9c528d6b8ec0eacd74337c03993d31bbe30c1efeac7a6f278878f6c296cbe2fd658368f2e175a9dcaeda972fddab278481e76ba9ed81c97847eed SHA512 28f2c7d0183520f618ec39278ecca7165182b08835730f9a583ac2b4cc6b728cffec2b79840221efe07495e04633fda637f9978718f83c7660ba91eef36d8cd9 +DIST firefox-115.16.0esr-nn-NO.xpi 609734 BLAKE2B d062212c635ab1a7078511fae31049ea7ab666e9eb4909e123b9c7e83b148a1df07ba714835246567a5fcd14ea8acc73dd19e425a434c6b85d705f7b188a17e6 SHA512 539b99de97c549580e79e638c5d287794e66a2b250d3ed2e9545483186ce8adcd978308e510df0b99dbe49c0c8c703084721d49abea37e82c9b9d9a7e851f419 +DIST firefox-115.16.0esr-oc.xpi 607913 BLAKE2B 73758255a4de2f8b1479b2fa7b15f11c4122c390546c37881696bfec4533058e15ac8004cbc0c6e8f94e47bf6cb8cccc1e3fe67fa61b2ea7bd2cfccd13dbc35c SHA512 32b7f0ca0075522c2be574db0474f813b82e84ecc4059aafe4c5b1159801eb3cf3ee8fca2b44508935a6d8fca3551c6be06d0d8f8b370e6346dbb58a9ce22051 +DIST firefox-115.16.0esr-pa-IN.xpi 687700 BLAKE2B ce14060ac69b3ecb1b6ddde49ca7e0d9112ba99fb2e5e27f63c9fb1cb217a4f9eafa1335fcbed3f5fe986119db0488d064b155f59570f95d4c5154661a3f80a2 SHA512 1ce517994163c2b94629e854c748dd46a9c7e8023334edd6d85230443a500ecdf6ed241ae03b3b3d35e0b8b9b6a9357d0c3d52a33290a4a186911c7430442a5b +DIST firefox-115.16.0esr-pl.xpi 636468 BLAKE2B 6d57b7dfb7475ff3afe2e46791c2f23f1f8ddc3f6a5253dfa8e627fd41ae161392098cfc633e292de858d1d707a04079f9e3fc7dcaf058bc204209f6ab707064 SHA512 6afa67de2764554c882c9dbbf9409fe4e6977fe068a40d5f93d4363e09c9d42bb117cdc0231e6bf64b453d06ff8d14cf08f24851d35e5e54f61c5e272729024c +DIST firefox-115.16.0esr-pt-BR.xpi 622534 BLAKE2B c0910cf65dd7825216ded706eeb9fd49a582fc8a2d4770885d9a0bb51c9f99d93bca60b94242507ee552516bc226bae1b621143bb2c47a311acf89771f83bfe8 SHA512 d7cc39b37cb5844fa633444be600ab765280b7b6dff4d946aa972bea4fa129776a38c8037b030a70c7b1aca34e211c47cdbb27f380efd5b296a47a1032972adc +DIST firefox-115.16.0esr-pt-PT.xpi 626580 BLAKE2B 3ea957746013bef5d92598a5853441b86560b2e02228cbf4704db55138dbbf0696fd2270057277a3ee0660866e16f0dd62afa511e9b85ce8f3ad7a4dc4618b41 SHA512 f3b9b86117e2bc972340f2fa1795b608d1a80bd018290ff140bb53779f7eab36dc32df3a0e6dd31e752afc033a8b554f771bc441efbf14a2c33f34aa40a88c91 +DIST firefox-115.16.0esr-rm.xpi 617337 BLAKE2B 1de9b0c86820e5fdcbf76fccd149373d50e949e30f912c7a43a453dcb5ac740f73350a20fa4845372ab0a86e7f2b3224b499da06785ddedb3323459743d8c143 SHA512 99ee6f5fae451df2a7ec13ad27ffc1a07b242f6b45bdb0b685b13f62e4f954ba2c049f392d398c852b6c6f3369562b3213c07bd560475b8bdc44521609a6b709 +DIST firefox-115.16.0esr-ro.xpi 543551 BLAKE2B 03d35b6e563783a2dd102c0be8f1f45596b2cfcd16272cdab03c9f5a416118bec3049a77672a2cd329841843de7ac1830c51549b277d502dc31a4c12b0111898 SHA512 4baec787bc842e5df7c667d96072a8a761854bb22db9a0679b0d4284dd35187de8b51e0a28edfb9e3c572223bb2be76dbe596359cd4931c5150bf0dac356d3a5 +DIST firefox-115.16.0esr-ru.xpi 721764 BLAKE2B 1aacaa675240a4fbaef8423960b1afcbff460586be2b4b1c9eccc11bf955e17a39d04d0a0b0a4b320c90b121ad150a0f0e78104fdf5dd33f6dff2ae0f9c974c6 SHA512 f24928f2c9e28c9085242bbfe5a2d3239c265ab560e8ebe3991cefc185cdc9e144cae4b59664a12bf67adc851d177f2720ba4884507ce09bcbe3bb20940a27d7 +DIST firefox-115.16.0esr-sc.xpi 582737 BLAKE2B d21a131b28cc6c20ee094ea7f80760ab9ddcc90735c465a8e09fbf47d5b5b84437cef22ba9a07954fc11669f66983ad42dc35565350a1d0146b0d577872a5ee9 SHA512 1d70624b43de1090ced64ae4f3b2062dbb8629f45b94903658c7402ae468ee4c5f99b425f61baaf3e87fe2cabac168c1c9bddcca96567aca4d42d68e77f21b22 +DIST firefox-115.16.0esr-sco.xpi 505666 BLAKE2B cee7f7a836d4ac83c38bc07dbd7646e438b8a904ff48a8d47984e653ec57d6b206c31ac799d32712be158d9fd6790cd305fa8a15d93a7a03c4c091fab2d4eb33 SHA512 c943be11da35b35f01ad0c47b3cf170c1c4154ffa58069cdef59e9dada39651cf2f89b8edca4d62d8bf7317c45f76eaa6c5185f4e26617003105d603fe0fabf2 +DIST firefox-115.16.0esr-si.xpi 606455 BLAKE2B 644ba7b68ddbaff05894221912cb5a40c1f24ea2affb20d55b9ccfba0744ba9caa1a6be1d595b6f6d3dad1b604da817c04227594a967cc886f83f3bacc309464 SHA512 57209350ea656798137b699279620e8da48fd51eca5892b4a66eb35f4a26afc2f43275d320df2954f10fbfcb3de9d0bb5fbd83121772ecf67f3d02dfd0f66d06 +DIST firefox-115.16.0esr-sk.xpi 652369 BLAKE2B cc05bf6a040f0af397c132b0d2da9a416147b66e2252fbe37585994bf5e4da78793a8dfae6e393dc25163c5b5eee3536fb2060546832cf0d85d2b9a29c33fc3f SHA512 e0df20ad2214ac38a603a1088bb56c79c4d7b628f31bbf257fc1f55c0b36b016f148c57ce49e5bd5d4348ef97d4e65d527bd8246fd044db63ee2777f6ecf620b +DIST firefox-115.16.0esr-sl.xpi 615214 BLAKE2B add85188762ccb9cf439180a2b3fde00ad962809b7127b7e45daa2840d62df47b9c6c97f48ec45ecad8b25488aa609da689395d1d7d09c15e352748983df17fe SHA512 0ed9839422d3851312bf76639a0f59a99937ba26e6772654cc5039d98827a4e1db2bbb6ab34d97dd6d6aa6009003c8a6d02dfb9a2b6cc24eb0bf309273e35f58 +DIST firefox-115.16.0esr-son.xpi 413687 BLAKE2B 73465e1b37f27aa69e27c476f98481929f42fb33669862382ba1b32f63c0358e71cbb12e89e72df164e1b26adb045f0e02a8cd31d8bd6bf5dc65a4af02423962 SHA512 674dfdabd8fb72785970d64e54d9eae9472495e15897a8336617eaf6138870bddf59188c331a87275925328d00ea6389966cad83d4a571ebb95f05589329145e +DIST firefox-115.16.0esr-sq.xpi 636144 BLAKE2B 902af855b0a5cb25f2e2fc5296dfcdada67e3e9c882ef25554774f12433d6e03acad2d22f04625d125e6728bb2903bd9e568ba3de81e010d70b4f4ebb6dfcf21 SHA512 3746566693671c113616ce0f46ac11d27611abab5e9e8a0f516b83e4205bee8234bc527c47d13f9307834236296a6e6c6ae98f985e0fc7869735aea5caeba3c3 +DIST firefox-115.16.0esr-sr.xpi 633255 BLAKE2B 3c5066c13efc9ca5b1a8ffb4c89acb82bae3bbbf35799923a1717e0e9c8b569b7e5a4fc52cefee0aeeec72021ec4ced9f64da709b7621001918b944d08779835 SHA512 66a723d499b45a1ba801c43d43bbfcfdbe41197d7ac33f5d4f40dc382478e124cde446ceed5ef271f3aace9fe3d165167d775131c536c3d46c21580829414d31 +DIST firefox-115.16.0esr-sv-SE.xpi 619433 BLAKE2B f259f7455fff9a5d13673aa512420d22238cc531107b8f743ae86152ffbbc62fe7bdbbe8ea8004af1bd0973f706fe65f0de4dca8af4f7456a85bb2e2fccecf9c SHA512 28efd04e377f6a843a6003bc4bb68c50f501f398e08d0ed7c357ae7bbe0bef759403dadbebeeb13547994e3c314551504bfab3a2657341b7f2510add7e86bd8e +DIST firefox-115.16.0esr-szl.xpi 521044 BLAKE2B 44d9f39287885dbf809a969de9ecde41ac3322bfffb37bec729ca9282ba42ac9ca51b4f359f0875c89ac73b733d9cd0c171c03b7585a3e241711d3ebfae7da08 SHA512 9d026d2da85460f7ca7367db34e7304da0d88cfc4d9cb546ad8ad0a097f0c7b3a35f067da4d7bd8a1058a4d73465bf721bfcaf3cc209340af7063b8e39aafd2f +DIST firefox-115.16.0esr-ta.xpi 503645 BLAKE2B ab980e91ca127aeb88e214831ef84234f793e225848b0a594c2c907523218a3cc10f793d548c016c59151ba6b95143168c105bb7f4ce224f326c30afe31c93f2 SHA512 1988d0642d364669a5beb0ecdf95dc1bf222279e9560a9138569ee58f8e5ff264ee396dc38bde90c5b0f741e105467236c49c59aea7fd2342870e73d2db66dfa +DIST firefox-115.16.0esr-te.xpi 556760 BLAKE2B 80838fcc8dda0b983072057618c1c8e6e72d4fb09574dc3e8db915636ff2730d7c435ed84aba69579c611c5f9b74bca8286eed9e201d14fbf8686031dcc582e1 SHA512 0f8b86e931a7bc418fce3895d3b2f4ea173225ce51e55acb2bb4aca01ed9980545f35c8b49c051183aba06f5e85601286053490610d99967fc0fca4c8df7d6c0 +DIST firefox-115.16.0esr-th.xpi 693431 BLAKE2B 1c833d90a1b84ccd9c12177d6d6e370dd6f5d3269152bd38ca7d6ff9ab8a9ea959468716f15e3e757434b005c291293dbd548d56f37fa3b2902424be8d4eb494 SHA512 02633ce4f89a286da5e08734d6cc4aef8baf68d42c9b597971974391d506139c8b5b2e30e0056c15c3c48c6f13faddbd331d0018ebab3b441e58ce93f19f8f4d +DIST firefox-115.16.0esr-tl.xpi 527809 BLAKE2B 263aa6f54fb1e8ce4dc35a9b8d2ec5605b30363f6f3acec58a83f4df24a1ea56d336c365b5748a17f074c2aa8ff13b611974cf986e01245881b49ed07d47b6c3 SHA512 cae485160e3b7b145e2422b133839e2a643118ad75795830715ee56349111f4b15daf708fecfc529362f9f34da2f6d6942be77d6b307755dd0fa92c008004da7 +DIST firefox-115.16.0esr-tr.xpi 631873 BLAKE2B a498e23af990a49b75944ea18cd6b013c4423ac2791295f3766dfef5974ae49c3e80f2362ea8cda3282d26fbeee6cda34d02a1d42040425501145804ba8fc66f SHA512 67f3b2103d27b3e5cd4276b147c7e025a1f26e21a087c6582de25fad820008be20dd8c73f761e6637092f08112c3f2f48256667bfd7d98e4261347a125614a91 +DIST firefox-115.16.0esr-trs.xpi 498678 BLAKE2B ac667dac80c2f45d30d3ea2f89a6f194bb1158d26678e919cb7bf780d7fb53d5d61f21302d2dd74fdb52032b0c671196738c9444924dd390d8f2973972625b7f SHA512 8e4ef36b39f48d8264eaa590f4cf5e036e07ffeadd3486750dd0264895ff4abf3acc5710478e7a5b7969619fc08db00189c9278debcff923da8b9b0562dab6e3 +DIST firefox-115.16.0esr-uk.xpi 707293 BLAKE2B b5be6d13597e5797152099b1021c7ff4aa2150e7bc8ac468d56c7d9cf85487c9b3b1494af4a79c6cb8b883145c99f89c96f7f57a6660ae653c90ce9199b1ddf4 SHA512 655e82ae2cc16471d3aa23258a1b16f74c0782ddc54e115d8ce228d8edd84132e72a96ee24cf59ff4bcc5c9d8aadbc7d9a19704962b105d11f569e8a5fada032 +DIST firefox-115.16.0esr-ur.xpi 554813 BLAKE2B 814a25bb08cafcd68ec48159ed36af438382408f1f6022649125e0a1130c3513127cad0bc781fa157e953085d009e7f256ce166480c6f421a1ca3a373948e9d4 SHA512 7f9ff915c0db049d607247ed41bdb460a25a51a31e53590bfe0790043d8742c2a97c09283136349e9514e53f66d2d3c7ccacf2de0cd9be31c0adcc283a02eb98 +DIST firefox-115.16.0esr-uz.xpi 474686 BLAKE2B cffa1fbd1b8b1dc67e7d215fe4f70682718e8385a39c10e21806d026cfae01666e6be07d533b9bb216a3f0193e284951019542e183c5e227d692b941a293e750 SHA512 3372a421bd478c4e5133a00b72f267d6ccdd22db5d3543809425110bbdce8c03cedddbc4e5699fc089a194709753a8d148c794532d41578ce3b4b661735df654 +DIST firefox-115.16.0esr-vi.xpi 654026 BLAKE2B 2346fa9e2299bf406ca7325b52efb6eb9f950eda10b9a0a1827f8f460bbe36c48db09c542581e6dc294ccc9b2d614060ab84af4fd2f48310855c8bde237dff5c SHA512 eadba43c5f8c400d5e698a2528f47951127bff770b8dfae6773a69fad9b2a0c088d3555cf51e2057dffef7b415b7b37a2e552b9b561f2c0e93e99571a254d965 +DIST firefox-115.16.0esr-xh.xpi 414950 BLAKE2B 152db7e63f9b4882ced06824dd97752e2467422353968c90cc71809e29bb8581c4f6fce97031bcc13aed1f6059984170a3cbdf85a77f13b76ab9af7c815b5d45 SHA512 af7b9a6da6ecaa7d168801ce966ccdc208238b8ad8df053b1230ce50be7a6d86e6e7be6ed30f933a51c9c9d2b591dd7939c5b3d37b3008230dfc6bdbb949fa91 +DIST firefox-115.16.0esr-zh-CN.xpi 657110 BLAKE2B 25bf61a14ed6c9722d1258e7ec00a6923a5f1c3968769440e1ebd6a7784576495da5ba5bd0012026281d51c561ddd9d199ef9b4864be72c2ebba90b3aa546154 SHA512 1a39f0b4ff5f7795b277ea3b1691162db9bcd26dd8d3da260a50349687245ecb1e5486afb17ce7508e66dfb5b5dd67a50b56f97b4196911f42b8549aad86ed91 +DIST firefox-115.16.0esr-zh-TW.xpi 659312 BLAKE2B 7f1c0266bced59f5252e6b3d6c56e4d0554065c9729073db87c9a6fdfd4d14c80e9945b2d760b6c64329e92f0aeeff20fa9b0e4c9e0ccae96b8308c0d07567b2 SHA512 c5d165b36c86d3f0334c461c7af9a53eea8394890a6ec067bf03b4708d04d5360a6e69d5542bd51a3678a1c44bef12a927d4f0abce22fa6736396d6624c2de63 +DIST firefox-115.16.0esr.source.tar.xz 515133700 BLAKE2B 9501b617b346d56f6de975f88974be6fdc3d4a901b2a1b952b6bbf6cc46384084260078d23c52bedff83a65bec4ea5ec78c3bcaac86c78d0b44e796317534840 SHA512 b6f93ec3d6acac5df177253c65b833c017e65ed6e78e96ff029098443928d291f6f67164aedb83d80aa28ee9dee305086597798238d3330e35183030e53e3550 DIST firefox-115esr-patches-13.tar.xz 51360 BLAKE2B a048bfadba989ebbd4c6e3df97d303d6853844e66ed92f5f5f322acf18866218b91d52dbbece63827de283eef855c932d67e329c8d93200aa83f11268a5d1b2f SHA512 186ec72323e621362dcef1bc67c476716aff97dfad701faa9220a7302e798d3cb4ed90d5ea59e3e92f016be29875bb5219787635db99a8848b7c76e4e2e09e90 DIST firefox-128.2.0esr-ach.xpi 465016 BLAKE2B 70b8839a5028d7b87218116dd44fa724fdc1aee91c371bd5e84112a9153568d7186ef4237f707e08b9e22f0208affd03141b49fa4b842cc82faa5ebe7f19004f SHA512 688b8fdb84a6bf069650a65218615d605cd9cbd52435261f3f4fcae749cd67373fb1ce34c24bd3d0712c5e9416a2c111e2bd245050130423c944b64ca9092c1b DIST firefox-128.2.0esr-af.xpi 418343 BLAKE2B 6b52d8b28d7e1095257927e2e894276cacf131fbd8827bb321729787d4f2b9d35418c5b834a87c30fe035f31f03c003d3691d2350ffa6972d1ef8de15952fe6a SHA512 70bfdc67a3f2ad213de61387f611bd9f6231eabc7012f190b84020ee3c75d70579d88db5cc1995f86fe1eeae72c31438f64019824c4ea28ed589b39cc12b9dd9 diff --git a/www-client/firefox/firefox-115.16.0.ebuild b/www-client/firefox/firefox-115.16.0.ebuild new file mode 100644 index 0000000000000..31b6c0937aff7 --- /dev/null +++ b/www-client/firefox/firefox-115.16.0.ebuild @@ -0,0 +1,1393 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-115esr-patches-13.tar.xz" + +LLVM_MAX_SLOT=18 + +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +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 \ + optfeature pax-utils python-any-r1 readme.gentoo-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/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +SLOT="esr" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +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 +X" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + !www-client/firefox:rapid + screencast? ( media-video/pipewire:= ) + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + || ( + ( + sys-devel/clang:18 + sys-devel/llvm:18 + clang? ( + sys-devel/lld:18 + virtual/rust:0/llvm-18 + pgo? ( =sys-libs/compiler-rt-sanitizers-18*[profile] ) + ) + ) + ( + sys-devel/clang:17 + sys-devel/llvm:17 + clang? ( + sys-devel/lld:17 + virtual/rust:0/llvm-17 + pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] ) + ) + ) + ( + sys-devel/clang:16 + sys-devel/llvm:16 + clang? ( + sys-devel/lld:16 + virtual/rust:0/llvm-16 + pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) + ) + ) + ( + sys-devel/clang:15 + sys-devel/llvm:15 + clang? ( + sys-devel/lld:15 + virtual/rust:0/llvm-15 + pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) + ) + ) + ) + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + !clang? ( virtual/rust ) + !elibc_glibc? ( + || ( + dev-lang/rust + =dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + &2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" + einfo "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+=( fur ) +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+=( sc ) +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}" +} + +# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily +# placed here until toolchain-funcs.eclass gets an official support for mold linker. +# Please see: +# https://github.com/gentoo/gentoo/pull/28366 || +# https://github.com/gentoo/gentoo/pull/28355 +tc-ld-is-mold() { + local out + + # Ensure ld output is in English. + local -x LC_ALL=C + + # First check the linker directly. + out=$($(tc-getLD "$@") --version 2>&1) + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # Then see if they're selecting mold via compiler flags. + # Note: We're assuming they're using LDFLAGS to hold the + # options and not CFLAGS/CXXFLAGS. + local base="${T}/test-tc-linker" + cat <<-EOF > "${base}.c" + int main() { return 0; } + EOF + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) + rm -f "${base}"* + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # No mold here! + return 1 +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +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 && tc-ld-is-lld ; 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 + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + 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 + + if ! use ppc64; then + rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die + fi + + if use x86 && use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*-musl-non-lfs64-api-on-audio_thread_priority-crate.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.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)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # 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 + + # Clear cargo checksums from crates we have patched + # moz_clear_vendor_checksums crate + moz_clear_vendor_checksums audio_thread_priority + moz_clear_vendor_checksums bindgen + moz_clear_vendor_checksums encoding_rs + moz_clear_vendor_checksums any_all_workaround + moz_clear_vendor_checksums packed_simd + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_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, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + 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-tests \ + --disable-updater \ + --disable-wmf \ + --enable-legacy-profile-creation \ + --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. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + 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 or mold when using clang. + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + 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 + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # LTO flag was handled via configure + filter-lto + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + 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 + + # With profile 23.0 elf-hack=legacy is broken with gcc. + # With Firefox-115esr elf-hack=relr isn't available (only in rapid). + # Solution: Disable build system's elf-hack completely, and add "-z,pack-relative-relocs" + # manually with gcc. + # + # elf-hack configure option isn't available on ppc64/riscv, #916259, #929244, #930046. + if use ppc64 || use riscv ; then + :; + else + mozconfig_add_options_ac 'elf-hack disabled' --disable-elf-hack + fi + + if use amd64 || use x86 ; then + ! use clang && append-ldflags "-z,pack-relative-relocs" + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; 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}-esr.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die + + readme.gentoo_create_doc +} + +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 + + # 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 + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi + + if use geckodriver ; then + ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" + ewarn "packaged separately as net-misc/geckodriver and the use flag will be" + ewarn "dropped from main Firefox package by Firefox 128.0 release." + fi +}