From de8a67771a85c097b2037cb2c1f8ba00b24b71f4 Mon Sep 17 00:00:00 2001 From: Joonas Niilola Date: Wed, 11 Jun 2025 19:00:16 +0300 Subject: [PATCH] www-client/firefox: add 139.0.4 Signed-off-by: Joonas Niilola --- www-client/firefox/Manifest | 101 ++ www-client/firefox/firefox-139.0.4.ebuild | 1399 +++++++++++++++++++++ 2 files changed, 1500 insertions(+) create mode 100644 www-client/firefox/firefox-139.0.4.ebuild diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index c7c70d49d78a9..64984e27016de 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -507,6 +507,107 @@ DIST firefox-139.0.1-xh.xpi 276209 BLAKE2B 5fd65b97236df7f923845d15a2a077f430b20 DIST firefox-139.0.1-zh-CN.xpi 464985 BLAKE2B 37acb33e3736af558385d13d983d52ed867c93fa8ec4a3d1e6d96c9a7efcadb0e268a671447c8dd76ad10d2ebbb8c9304a951b02df8e0c17fe5aa1f355207676 SHA512 960024ca7bfd6dfb9a379b82a2a94d3151eb45dae6d861d905e4fa652ebfaabdeb3175b3d8db020bbb5f91ab6f089cf028c2e3b104460848e560bf9ab2a1f3f7 DIST firefox-139.0.1-zh-TW.xpi 468028 BLAKE2B b0554dace96ab6993f068126ffa722f2883aabd30c764239198886a4528424b42b0723561319f4a6f51be7326c85d88ed93339d2352a9cff80e6e900534b4e54 SHA512 c0daf3e7af74704de3911abd806fa3bf9b5394ccec602325813c7421351aa71d6ac1a462523453d33f86d11522459f58e559817fd114b9f1dbd545de9c314518 DIST firefox-139.0.1.source.tar.xz 647117708 BLAKE2B b3c9841a060461ae2a0317a39a8999c15f8b0130874a270c308a751097be33f436ec37d4881581eb33b28c6e038be0bd1556af82e2f91e409ff84fa51852978d SHA512 78ae10fc14900eb1273b7ff798a159504f68166c39b1f12ef9ea04243debc78472c24499da01641590feb5d2b28475131d2ec94d6f28fd4f2f644a721f7f40ba +DIST firefox-139.0.4-ach.xpi 297654 BLAKE2B d5b1628693f7ac0c9ac40fbea0fdbccf22c5d0db04b5278b27d45ac23c3a8c5f80f1e20aa6da99db0e71735d4c7d60178cca4d60219fe134e79c1b7e8500fc82 SHA512 4fbc2f085a05c9b7d9d47ba0b4d8f5ce9a03d2c41abe1fc860f668a273c2731ee0f3475b972d22da0b835e82b3227776dc966afd351af77163746c6c3b5d2e8c +DIST firefox-139.0.4-af.xpi 269819 BLAKE2B dae733a6debbce487ffebd6257caefe13298a35ac88a17214bb460fa21c376d25dcca2afe7269d3871f85895b4a537b355fe59476bbfbb7fc5471e5bb9fdb9cf SHA512 31d6cdd49942a67a8e25259ef3418df990df192f70e9dc14d86b0364c2636c4da6b7f79e21cdd92e2a638a598631aac3a0706fc5b653814dacfafa06c98254af +DIST firefox-139.0.4-an.xpi 335654 BLAKE2B f792c7d3cf942bbf6896198348f53bb300f0bcd8a2489ebf26cbc3af60dc8070f06c6a22611fd0af13888f7293028d10264e44e801e2acb7808ff3fb4b756663 SHA512 5f10833dd6a93c2972d8c019b153bc23442368cfb68236bfe9df44a2ffe1dfc2fac1d9fa7c63f9c6bc89a1c4477b45356eaba91749b3616ab314649dddc31529 +DIST firefox-139.0.4-ar.xpi 444095 BLAKE2B f39e8395a6bab00ef4354b5662974079990ac32a104d96375b4e9ee78f5a6872f5ae2ac2ed75c267b81c65393b304eb53031e6330f14dd8311a7f17461e46019 SHA512 9e8011f9cb50fa9fb95d30cbb09ed5e27d60741c5ed5f788bbbfcad90bf6b896f001309c270f4fb55ec65854328eb823a1b62b5e3031023f1d5757cb0366767d +DIST firefox-139.0.4-ast.xpi 316643 BLAKE2B e6348b9a8e34677c43556a9c2adc92c8bee21e281f229d636a5986a237ea963ef45223c03ed40bd28caf0fcea5d679e7f8b17c0238071a58ecc6dba00d814d44 SHA512 b4f515a8a54cb9c3fbb5b858e32af44d65d2fc3acce965d6e9060c9d75e4170246ed3440642a49f8051f0049e3421eb3c65bf7433eca6ecf3cdfe1c4518b2df0 +DIST firefox-139.0.4-az.xpi 321612 BLAKE2B 59b53bd413a1c745b0dfc6a6d985444ed3fa554ab6b533d2d9bd94272e7769a460a2cf3ecd321210512dc7c6cacdcf440d416db45400dd2bb95835ef45e8d9fe SHA512 e8464485969552056368853a98b16c3e76568861f0ad2fb4c06527f4aa752f7ae6a54d0e5619f5c3f5c9a7fbb6ce52ef24a1187c141c950791330bf1bdddd5fc +DIST firefox-139.0.4-be.xpi 525079 BLAKE2B e5e188dd8d3bf4fb44ba72d9f7f8d3e4a15d9608cb8b5a330422393cfa248caf1960ae82e8feb5d08c8c7c2721929ca7dbfc59986b028becfd6bb2afd125660b SHA512 6958ed8db2a06adf5fb920d3c8d68bde60b6882c174c47abbf511f97de4384e17d2e1e7df604656e5ebabfe0aa135c40459114f7d6f859c00ab5908366962ea3 +DIST firefox-139.0.4-bg.xpi 454356 BLAKE2B a991f25007407717de2e9bdf0adacd87e6f5f6f0db12a77a4cad0cc4484d2b32f025cd928b1a3a7ee9287ae5b3bea930a86663a7903161a59fdd23c7b97c1aac SHA512 f5d27085a60a304682528a51d897d0893a5d170f1bbf5d7622bdcd1ad91140cb1ad9f4cf80cce4c8bccea649cf4777edcca5f9ee5c8cb00bc34b7ff969cd73cd +DIST firefox-139.0.4-bn.xpi 415413 BLAKE2B 75e691bd972aa939eb6a39f25ced49c60e47372d30fae86d9368dd9e111d41eec3f85a0d0b5d9f319082056932b73f21a64003b63a914151d7a5b30890535b92 SHA512 f6f8c9aad196216f1e7eec85b5b37b7f4154b0d281d8a7c13cc90e713ad9171686da2bac52033899980e5c311ccb0e2e57a94a3fb8ea1363342471eaf888deae +DIST firefox-139.0.4-br.xpi 398155 BLAKE2B 5ec04d7ee2cb948169457bbf94ab06c88a53786d5417b3a5f2ffe59eafb394e726e28497b4c6701f8bed7755eb536f42424fc6c1a709087d339182ec3ea67c00 SHA512 865db3b1703cd7e6b6cdd1b1397dc0f30e4e5419817539cca3f8420cd52c549df24951c3f7283e633d290aac37daabf6dbe07f4acd09d07493a29b8449fc866a +DIST firefox-139.0.4-bs.xpi 366745 BLAKE2B f1ad73011363ee9a23c45ac1678f4e7939a54edd3254aea8054fc11a027821a0268544276e2e4b467a293bab15152fcc3d435194bc5184df085226ba2d7e2234 SHA512 b112efa1cc63f41cdc07d14a61ab9cdade256775af0bf5acad1b92ca442089c31462c94dd2c5481e7cc6beb895f97691f81689991cf11e132891b5873eeb4d9c +DIST firefox-139.0.4-ca-valencia.xpi 361695 BLAKE2B 4a2d57fd98a70a254d76cc3cc5ce01d4242ce6670fc1302dd725fd74964456856fc8892e80657600bb37264bd5ff63fd112289af2396f8ef30bc361b72e064b9 SHA512 cd28bca2504ba65da38cd4aed0e7e47dc79ef96aa1763e4071ece75bb366adb4eece70378f9936c8c5750a635282d2ef65f5dcc7fab36f50e295af5d7feb4b1b +DIST firefox-139.0.4-ca.xpi 404023 BLAKE2B a99fb4d4c08db057d93153c79902565bf40fa92eea7abbf038feb57c5a5b1cf7e0bd10c803d9664d93b3f3755186852d0f3b388a6664fb66d8192fc3d6600515 SHA512 43605f83fccd7cf17216264566ecf03a213ba26df89a240a473e5eec8a5e41c7647451ba22ba18101767cf0e0d8af6abab9e3f472cd1016111fe40245893fcab +DIST firefox-139.0.4-cak.xpi 394728 BLAKE2B f1225481ae08d8ff4df97df93f3c30022596d50745c8c6acc6d6d624020bdfafd2351d6e88213428677edbf1f25e37632ad71018c6028d9f2b50f47015aee2e0 SHA512 9ee376ebccc78f840148fb2040d6d2ea130f8f2bb308096a2e44ee78193d6489df3baa4399c0079e4b6e1bdbd1090652652a134451cb2335b09960a1f054b28c +DIST firefox-139.0.4-cs.xpi 479925 BLAKE2B b1dcc50e08fc7fe60f6bbfa07a0b08b62f1e45ceac1b2325cbe36d7a0cdb94d7ecb7c973d0581a4078040347f16904b67b6b0d5cb99f06cbb56a8f7db213a2f8 SHA512 b6a2fd7960419ebf5d2ebf4200d69ddd4867ec65a8fba7ab751cb015c8f225b34c3977720b3587d9a2eb8e6aa1b0117e2f49b9c033c98bdcd4de7f887cfeaf92 +DIST firefox-139.0.4-cy.xpi 446095 BLAKE2B d069ff928d0684166e55fc4c31910ece429e4358c35ac0074c98214e3002ae95082d47d3684e5cb06a289695ccc89a1d5baeb203990385eeec4d6f35870cf25b SHA512 39620879a09d8c89bc31a4e81bcf5313cee05a5cec75ac05808a5a313dcd5318cebf2390d3202ea7ac239b1327360a4b5dbd6f0872d032e2b1f9c131086c3259 +DIST firefox-139.0.4-da.xpi 435217 BLAKE2B 2146dcf527c98e823612a8f0337fb078f450c12cd22ec494396b02e4c8d814d0a2949b967145d05104392f8882195e70ad042d551cb3b8b8b4cef6e46ecd6d82 SHA512 225cd08021c0675bc21cbb91790c6fd7cd8b848bc6c27829e4851812890390e0f20f1040622684fea899610fe4c043a8720f2e6cdcd52cfd58a0d399aca3bc11 +DIST firefox-139.0.4-de.xpi 456792 BLAKE2B 152e976f11807a3209b94ee5164905b61bae5190c3806cf7fa583fabf79626d36e4218994334dd5f29dc79610d3ad31510c0964a74d0425b09e30fb91878606c SHA512 27c4c1906746e0a8cf5dc89d9bee095fa868b6441560d867fc99dd391bb0322d61366642477686fc58c5a7d818a23fd1dd7ed988815647ad15efc84afb7601ec +DIST firefox-139.0.4-dsb.xpi 470270 BLAKE2B c4ac71d1e0e0f84d760797d00f4b1757e78016f5f2b3b8d88d110c82787d0abbbc449ce861b2265596be46d198bac33b0be95d50428937118df5e7e2d58628e7 SHA512 301b4b267a3f99de9f105adee55a14a9a58711e127cc77caefd6ff4cd9ab3a79b6a6ace3a7d431b43ab4fc92b22bc1320fb58029af66c2fca9b9e15561467786 +DIST firefox-139.0.4-el.xpi 541204 BLAKE2B f4d6085774e399b272f3add7f1cb0ed2866cd6b49c121c51d7338a45d04354f1b92a447601d309677ed7c3b706423efc28270a481ac928268ee994593751349f SHA512 eeb968fee861c1b21a99bf6f807edc889066581574ad6ab16a66a6222c3598a533810584cc9033e492818f248291e0a28977a35a7ca77c45bac02613d59667fb +DIST firefox-139.0.4-en-CA.xpi 413598 BLAKE2B 5b380e9b92a635a619bc175a6816b4a36bbba5ca921cab79a282b741e5f326b3bbe1a1c9fd8bc4fae0b8cae68453a9242ae1eed81a82c6378acf35a94899c0ed SHA512 e819ae6d11cfd8c4864c8c7b94a8b30402b6b5096015fc018543f38178c0e743f3d513825057f440cda0ec45dcb01d66a33ea4d654542ad76958d9d85079d037 +DIST firefox-139.0.4-en-GB.xpi 415484 BLAKE2B d2cc5e26a746c3acbe555127dbcc11331d26761d110c9313032e77227c5048bad32f41529fa795fe6d2280b57b006cf979fbf9214b3de2f63100f046290c1984 SHA512 465becae62c9805f41f971c197631985d3639ab45f0e4ec8d93fdfb4370b06f86c808ec60c17400db2da218d930130305014941330e800bdf8e8be3a3305efcf +DIST firefox-139.0.4-eo.xpi 437559 BLAKE2B f20b0ce33e1294a66bbf4286a962457e67d962b32ad8aa8a992e0fca74de50db1bd63af3b83beb55464c952d7f86e7d919561569eafae03a616889bd02ca87d9 SHA512 0d6da9388f33c3e1d2bbe3ae79e6d9bc379a5e9ee25cf8a6e942a9ef6e542393a05ad0b2d0d7b5964cdc34bc33051892d0d355ff88a8bcee2c5607aba37693a3 +DIST firefox-139.0.4-es-AR.xpi 449714 BLAKE2B a57a3e744d7f66b579976dec200a34b0ab936525f839a23f56fb2c5b5054c67ce4ceddbf2e2972b25b7ef34774606a8237676d8b79979348a8cc934ea5b12879 SHA512 875b80c07cc7f4dbebd8ead21bf3be3990266f10dffb99999851ddfcf2014576bf1756394b8551cef23d005116cc75c2f03e39b92e58ad6e03711ff7703457cb +DIST firefox-139.0.4-es-CL.xpi 450467 BLAKE2B 91527c143419604c35a0a4bd6bebd076a04af732c91eae3411c6dfc338c199678ef996a28b4b372ea060eefb07823f2662ac9a82615c1fd97dc700556075277c SHA512 625372cabe0101b354283a2e22ae84d082be9e082b2147895d0a53c10b3f4840bdf112ad8f677cf68d72445b944bf93c1be381d061b704ad00c8dc82f9d7053c +DIST firefox-139.0.4-es-ES.xpi 451245 BLAKE2B 58ea99d9cc2e821900f0eed68049bbbbc4e361f491986dc98cdc18b9640e5a803e56b3e5dbb8413d193323837b26080eb75cae72ec25ce58841c72ce32948984 SHA512 7b1bf58d45f2bdd158571536776bb07a406fd876dfab45a71c0885c6b84230e21b4c7a3e6cb03b0c897a58890ed7d15641e805093c05fd754f0aa7957bba4740 +DIST firefox-139.0.4-es-MX.xpi 444384 BLAKE2B c58a3113183081d19c9f8cda7840cd86420df0a83c1d43af1c45e425ecb92e1c49f385ed424d1a19ef345fdaef20378e6a4b48f571f2214419154fe278c896df SHA512 68b010cb0d799b6fba809b27e90d2754c3526bb4261b61e34d0b5b49bc69514949e01feb771cba80554a7be30bcfe055e7e7a3c3c515ecf7b89a010b019f1e4a +DIST firefox-139.0.4-et.xpi 362504 BLAKE2B 0008feb71a26618fab1ce552ffdeea91e62ca85244d066cb83677bd24a53545c5247c2257345ae8a98b82119a156b136d564cf00aa19ae2af1a9cbc9ad2a1264 SHA512 3e8eb0db7a78a45650b8f6f037069f9bf1c75cd89fae181c94657dbd6dddb29764539833998ee2a37dd31678781d0e067901142a01b8bd2382868e0443645ab8 +DIST firefox-139.0.4-eu.xpi 416690 BLAKE2B b96e8e0b29f15fe7e53f77771e1feb19c916048d608dada090677a2d8e6b510c24a039ef84018e40ea423bbd58cd351fea1beac11bca3224346349e1ae6228eb SHA512 dcb3fe7e5a23bd4e51a4954a733658c4240d4147b311bf460b3479e6d0bf1d939bdfb3c05d33f078b522f1df1e41fb01ab4004959e3beb9ca89c4eb62070af06 +DIST firefox-139.0.4-fa.xpi 424169 BLAKE2B a77a8947883e24e4fe6bdf3180c2e30397b33ccba1af480527402d60dba5ca1cfd3cc58a27c11c01bf222c3505791523b348ae3e5daecd8bab9d2ae875e90e57 SHA512 958fb5479069651066feb83244a72bffbb408cf9c985ebf16cf08210022e0a086f811fdc517e9a60615db8431f7b447fbf001d8e4ba6e49d80f9e8c6b334b379 +DIST firefox-139.0.4-ff.xpi 313848 BLAKE2B 129f6eb0650883a7111f4cfe6f472f6373c6112f7d83c19c12badebefdb2b2b7f6a6becf6a2d6124627972f69756c654dcd52ab84541abcbb89b598a0c348224 SHA512 2f4f0849747e72198d3768d648534fbd6673dd7a980890a93bd08a07b328d8046b622a8016aa4cb8724da9b03a8ccaf32ea445eb8c407fb568883f9d08ba5149 +DIST firefox-139.0.4-fi.xpi 432408 BLAKE2B a13bc9da68757b49b7835f410b5f6940afc224338367033ea3f2e76d66509608743ecd7e80b99a99c930c9193c9055c91e6a31c6fd2e104c9a3c2b5c5bdfdc68 SHA512 47c18b4f61406d66054b032d27ef99f1e374ba5a39235e76dba47052ba59f28061dcf151a2a8d7d73c089282a5416c0b1f518ac8354d241178d71ee59b3079ff +DIST firefox-139.0.4-fr.xpi 462404 BLAKE2B 62878095a5168af14684289d11de656717dcaf5ab281e883978567f6dc4c4647acd1be3539a3bc4a7e48f6dd7cf49c2f86036e4c72fea61cfe6b1839b357552f SHA512 d7ff9b3bc75b784696c7ed387e65eaa448f306ef3ce9fc65f74ce0a327e4462d3d44582e16e573143d6fecce37f234bf4d60e150f927385fe8025cb258a82ec1 +DIST firefox-139.0.4-fur.xpi 453093 BLAKE2B d95f2a464df8ebf76bf93911a3f3359675bae48fa71d02f446793be7df994de11d7838c046761280cc305518f51a63d04eec99c0e340089ddeb1f82ba60cb2b5 SHA512 77e708a55f8157df2efc0068a5ce7bc2d23a90e7b8664f19732b15190a42a296bbd8f597cdc798e89778d353eb6671b97401626858f12edee038151b61c55688 +DIST firefox-139.0.4-fy-NL.xpi 446346 BLAKE2B a7a96dfe6dc82b20c62c06c4c20e9d80500168551d59d1d1f192620c60d8f1401d6044e69ab02ad1138ce989109860249edabcd58e195679250c471d07268efa SHA512 dd0b02b02fee211fd01e6e3446e340b34388b5c070d4a2b41a21aeefa9435a161794dbe1d9cc205828dfdf98e0e432887f54f43d975b6af3b9d5501009e1a2af +DIST firefox-139.0.4-ga-IE.xpi 318546 BLAKE2B ac2aaa952b2034e203da7a679191cb52e0397ea2ed9b2e5128b19b11199e28621e88ac7af7069929d07fa3a10a53bf1bb0953445f790dc3fd6122f625a1f9a91 SHA512 b5982aa5f574390057cde9eabb0296e51104b3034cb58d6e78ee194dddb3d372fa2be46b86d01afd7e52d869dbb17622ffcbb3637a6b0661631371141b29b2f3 +DIST firefox-139.0.4-gd.xpi 402975 BLAKE2B 21a89db46f671c328d828f468bcc75fea7055deb22c57a4a149f96661126a6c613d43740e77a6e5b2efcd2dec68be64a3516c015d7bd9607fd26935f67a3ba86 SHA512 694bd2a22d91bb8f5a2b88e2ed4e9b8a6b41f895e7ccc34d6d8a0651c0bbc1a8ad38739840097e7c723dad8707eaef516d2113dacb2da44014fd357004292516 +DIST firefox-139.0.4-gl.xpi 409741 BLAKE2B 7a8918d88fd057b3628b05b09a09d49878199a5254998208c03f7151c167a3d536f423e3796c4222d1942eaf4fc4c9825ac9a5a0fe9dc051243d9c89ae044403 SHA512 6853b527f7ac2663f8feaed580af18c180a98e7ff3101577dad7d55d9f4ce6f176db30586049d24f11fd60a2da8033efd04f79d55e7f111819a05bd4ac06f786 +DIST firefox-139.0.4-gn.xpi 453112 BLAKE2B 6fcb3c873e209aeefd36df1a0cba04b816139b57580df5703c1f147db821805c10a9ecbf2d84167ba7f55d62ffe8b310c9e4ad1c73752d0b0d11d5e303082de5 SHA512 01630ed1d1fb6d79b177c1ddd3f58b56783d03b28b269d8606bcdc50d85a20ffcb96a568a76cd6df2aee02843ddc54b118376aa06db58ee378292418fd618aea +DIST firefox-139.0.4-gu-IN.xpi 362207 BLAKE2B 926dd4491c4d31d1fca4c593676f0a01c9afa06fac9ffe7704a21c59109a692caca76b013a72f5dc365b730b0e60a1e1f2625268c181bae72260e7d7e7e98ef1 SHA512 cc67329d915c2f30c7f37abcbbcd7f4974949d513c45d000d21cbae242c21713cd77d85d5c280aa3b153458b43da45ad9e7b5925c8798b2ef8469381ca6fbea1 +DIST firefox-139.0.4-he.xpi 448712 BLAKE2B 4b40cad8bb53f3aa83a38c3eb0a8cdb3f91161c27ddcb81d53befbdc395f0dcb20467e740ab8d7b671ad030b9d2ece447ecd4f2678f0b5638fad493b6a2a0d3b SHA512 5321c2e2fe9df1ec07736f1bd408b55c07c33e6f9ed860a02ade4480800be06e5cf4f3bb3f49c313987b06e16b5977c1ef6769daca6a217610550ef1b032a233 +DIST firefox-139.0.4-hi-IN.xpi 380713 BLAKE2B 4d027cfcd5548995810549a6f7089648d22cf60be1b3b69dabf8cab4ae3be8c2cc6238b288cacff97b519570ffe58a5090f8bb57be789cb8cde139d1aa3b3684 SHA512 1b287b1503d7f3383a65500fe0f8e678a847e68a658f6fb1b2ea1242e5e3fce14fd1349a66fc99ee709c20789927f7f5964722aff64f9b4b38648228334cf2f7 +DIST firefox-139.0.4-hr.xpi 431200 BLAKE2B d27fb4a195ed4e1fdf67c9f11b60ac47663f9e405bca6fabcd8bb388469ddf55f282f1281bda92184a3de9c4a7f20fe4fd1c8240f68655d853a56f04d53909b9 SHA512 dcd21b53563ccf0448d18ecaab72d5c6920cc07abfa43262b4b338407dc0b122728d1ef8106f5f2710d0e286061403cd8e46a049b5b7ba25ae1b3b6fbd25082d +DIST firefox-139.0.4-hsb.xpi 466846 BLAKE2B 5541cc83790611e91a27329b9f4daa50804a02be0dfdd0e23a788ce076942e80936d8c3dc99a47856d2c81d89392bf2894295d698f69654df7f2e49b3f38d042 SHA512 44e0bb7223daa4ac848ed780a0d1b7d71404132712958888b291e811ee29edb929f4706d43e64356439fc4a5ece67855053f65acee652c28fb4e5fd83dbc8cc1 +DIST firefox-139.0.4-hu.xpi 470469 BLAKE2B dab188675213234babbb51c0d31174a278ca86a6dce171dc5a109afad38a186ff150bbdbe7a4f36cd3ab827dac54c9b673c8c9115dd75f7018e6b5b95547b109 SHA512 a0b4bfee4a40b4cc69bbe5814b5a822a9c8f22e368d6c5cfc575b827810da79d21f3341498dd88ea10e0f739821709f64450f94ec8807d728f384884b0fce3d0 +DIST firefox-139.0.4-hy-AM.xpi 457458 BLAKE2B 3b32778c1c75be59e627e3013ffe95ea428d3a15b65d4abbeea519dd78ce154fc30797b8076b92b07b59b20f068d73e0ce7a5fe3bda62d4547813ef0bd740b12 SHA512 3bb9e1ed96c14aa36dc792d2e86a54a12161c42fcb163d3e0c896e224cc6eb91ba2ea348fa955a807304fea543d4a0825d544ce31f6a52dad1b3d682b7b43d42 +DIST firefox-139.0.4-ia.xpi 434206 BLAKE2B ce80e304a311ffeb28227ab9ab274a88df2021f54705ca1b8c1b94b070e4400c33f9cfe7367d23c95e8beb2902473c9d644b02f2cc92263636ccd4e5d5171ce2 SHA512 eaa88dd6cff22d1efcf3afd64f2c6837e8f2880d88e3394e53ef735d4f259a7db0ee1a293059ca7af773d6eca7f037a7c66880182581015fd1bbfc09f5217d03 +DIST firefox-139.0.4-id.xpi 426322 BLAKE2B 9b65e53c48ccd67dd60e304c898c333907c35e122ab1f0fc9e30a543d537f4b57fec115edfd7b9ef748de022afe1dc5e6188af750e914b0b7e1a03ae0fc11bce SHA512 5ba907cd9187b8a9b30543b0c9be288655c0eda3a3de937c581af27a20e3e293ca9ea2fcbc578e6dfd479bee19282d60ad88498bc313aa6300f1dbd3805a497a +DIST firefox-139.0.4-is.xpi 436864 BLAKE2B 0746c0fa067eb330f20fde613ed257d9f11d2c57f7b35499cfed753b339d566d2a0c84b6e597a43c92be1d8126dca526357deb8556066eaf9ea5510140b90613 SHA512 e90376e63c203966f29484f934db7be2f85e6cca1352817ef97b1ba987041ce3cceb1a63a06d45c44e1e860f54d159ad349087dbacd82b561870e2db7b19cfe2 +DIST firefox-139.0.4-it.xpi 444954 BLAKE2B e93d84e1d3a6c9646eb86b13c7f7c9eb5369b74cb751e9c1e474b2fec6134b78b825ba7c3170bc7e34d3dc1e582a23d3006862e65838eb67a4501565118dd1cf SHA512 68f33576e15baad7cd5c169fa2098a00f63c22c1e8c47470a3504f7bd9dba08a6d2b8294434a319e58a75205d5169d18141d943f90615687106baffc03377924 +DIST firefox-139.0.4-ja.xpi 485457 BLAKE2B 931247304a10402257902026d9251a50d3c88a991fb3c1f34c06fc1c6afa507153e1c5bd5434bb29ced0440fb354b79a39f180bcf06a94ce97e592034cbd3174 SHA512 2ad4c3ea2db39ed6b0cf9f5384499c69391bff063098f8b8af11edfe4e5f5ecea52a53c9656e1e49cea59e3df6f9527616fb0ec1836b853f8698b646e6b08b57 +DIST firefox-139.0.4-ka.xpi 498906 BLAKE2B ae5c538abd84e37dfca7a600d9d2d90c8e2545e41be62f27b206f58719ba6d54e6a0d4853162d264488b65e2fe6273cab0767c4987441f90df58610f2596e5e6 SHA512 6ec43f1eae60976a503855eff8e822c3f5f42821fafd2bc928ac2f326b988f00800f1b45a724c217076f106da93ba63bf01a3b0bb468267fe0f87e8af2eef095 +DIST firefox-139.0.4-kab.xpi 425603 BLAKE2B de6524420ccdb3fcee3bb192643ea6140153520ea36955e8d1db6715ac409ec594f2f0d811b174a0fa1abc01ed37afb367935b7db8cc06644d7a7c68ed89bcdf SHA512 2eb8a94137512fb7057172003e9a92ebc41dbb75f81f7f52f0e077a8765ed27f5e122a507159c8766db3078766d87e93047d693eba77f0f2f6bee0feac77d213 +DIST firefox-139.0.4-kk.xpi 507021 BLAKE2B 259d094f28ec0e3815b480daaec38527b6698683a2481745c753104f981dde7c1d178f387bbaad161cb2caf708b28e15ec4579b2eea046ab874302dd9833b723 SHA512 aa60ae5bfd880987964f854097d507e05067a16326e3d6c4ebefcacea7155ebb4b8276877c9e8733ed7d60833392b31e6a01540d9e3474c4277340643b930e6a +DIST firefox-139.0.4-km.xpi 352029 BLAKE2B c8ecacd33c4408bc7d99b17472b879d3a2b8fc0c0f2b815c26d902e4ce036de5a3c4ae0a5042431208b62dd60387ba9597430a47250611c1bee64670bd521918 SHA512 c075865368043539fb664608f962318708dfb6fae49770bbebc985145e0ce43e9bb47873a05fcca781c7b5cefc0f146f85e4532deb599ac5e51dfaca65acacd4 +DIST firefox-139.0.4-kn.xpi 334933 BLAKE2B d7f30f2a447ab2979abd9ef0f80f2885ef8c53e99c106c3600a7848272a520f91d63113b7cd20a88dc3805537fdb0ca63c2b8237345d0212a236bf95d4036f95 SHA512 7dc2c2df887bc9418243f6e85b3f37ea55f94f2ef401325ad078015c452490f0fa2068a032e030cd9ca5189f3097a13c1167b81cc6655093b6c37d7562b76f1f +DIST firefox-139.0.4-ko.xpi 471630 BLAKE2B 3f89ed98e7b372566b86d42fc2840c19ed6e6f2d61bf5580a62cf89ca27ac9bc72c85b1d5662a9d8988060dc292438118fef34c9b65e66fc8fb7a09132b41d48 SHA512 8747883259f0d468dc9991586d71eb7084bf0ae72dae8e9dc418ac4c24961833abbefc27b0f2eaf3b4784168eae7d7aa06691041dfcb856126f4404ed4e46c4b +DIST firefox-139.0.4-lij.xpi 321762 BLAKE2B 48673aaaac27080f1131859549fcbd75b593339e21b9826592ff68680e79e8d5f61384bf73056a8af1a4ce72f5a8cd6f83c2a226f8a32657acbb3000e0e62ed5 SHA512 79274a85108497054c4efabfee32b9f0a28c556b86fdbca779b176900efbbb57fd251e126e8b7cdf8ac10018bdcae80f49f67909994aac6be1f8314692af89f5 +DIST firefox-139.0.4-lt.xpi 383471 BLAKE2B 743c4f429f18693104ef2e5e9f87d279c35a0d835fc0e9899197e19728c013627d4f1b1e9a664e608e68bd2054e209d3170943e2292ce9cc213fd337b65f9bb4 SHA512 bedd8f850056df5164854aec2b603eeb4acfcecf3f70d6dec1d542428227cd9d31fd9138f2459dcb30c7a50e51bac3c9c12bb2d87f8d3635f2f39a5f5b16b296 +DIST firefox-139.0.4-lv.xpi 391400 BLAKE2B 6e9a05c0b43364a0e492a3ab07a5515f00298f903596569b0e11a5f89cbbd688988e4b2af1653ad9cc582ce1d8d95aea396344162000db1fd25e5a6b1f368e3a SHA512 6b4ee1f4d2b3b503399acea8dec4437e90b7313aff745829039607614cb063f3f31c77d0fd125b6b954a8e9840caf5381b9fd1af71f308bac9d28a3f13c0ccac +DIST firefox-139.0.4-mk.xpi 320008 BLAKE2B 56f752b3baeee3885b39f16aa431dac0b9c7def2090dc12cf2de5ce0fa64b70b6d59180f8b22ec56064e6aded099b8434f8ca6fef18e187dc69a1842820b979b SHA512 e403f49d967ceef545e8ce0d0ad8da337c070683abc944fc3115c12912ee30d9df5568f674ed1421a4da18d4a113894586b68be74a7dbd46b4a921f5e0fdadcb +DIST firefox-139.0.4-mr.xpi 359454 BLAKE2B 67dba86ad1ffc87f3efc71b5badcd0983c7940897357ffbe875b0f2054d7059bb76ac9d058741ab4d09885dece6b940f62f6d5b3b227613e62cba150f7734de5 SHA512 ee3d0b489581a9fa1335876c9f509c93eba02254d8e0c97a09f679bbbd86ccd841d8b730e2a56966122e4cc355437596c40ef1207fc9c2bc195779eb1ca1a56a +DIST firefox-139.0.4-ms.xpi 298597 BLAKE2B cb87c898e1e6bc1b9950fa58dc6407724b70258aafe0698cf774089ab9d6bed16f6c012394b8239b46dd631747de0987d0f85489ec4bba7085453e3b4f28d5ee SHA512 1fbc95912bd8ea79d66f3f631df63aa041b14cba8d59768d27a7b47f0c61bc3f4efa5668142e3efab86d9649dcaaa3961c5be79dfabff790f90716cf8d60168f +DIST firefox-139.0.4-my.xpi 346255 BLAKE2B 2f05889f116a9735efc7b94507a095f9a846dcef0aace42cb8750ca10ba667161b6bbe0a7aa327a6aa8434fdba4330eb13b5c0707654141711116633d4e58e0c SHA512 ccb1baf80fbb6c4fcb106e6416253eb3d5803a565cc0d1e246ffd1938445815152ee5a4a428922a7975e6762c613de7801b4e3d384c27605dea6c0011f672d92 +DIST firefox-139.0.4-nb-NO.xpi 425039 BLAKE2B 76884e6c1ccfd81845b6da078fde74d5514229f65bc3ae2febd0517b8563ad778e09f62e8df6fa03a71de2f09d19c7434ca981c220a969891dd5760aae59e9d0 SHA512 d5d1160efeffae6b29ac4f25f7df3ffb71435c32f04089e070e9af605414f170685a7c18460983f38a762334dfb2c46528e0162aaecbb978289fe3de4e0520fa +DIST firefox-139.0.4-ne-NP.xpi 352268 BLAKE2B e7e3e17f4f521203ae8ab1c815d27b27d40ca66150eadc8b73ff6e8e85b4bbb8f31c2fd0254599979fca911f914d9d257e4644656d98a85a2d2539cb22b264b3 SHA512 5ade61915438771d0ff9634350ce9e193ceb63a3e5cb13028277da981fee4a285e5095922802f08c9168660e5a48404519778d50f72c9c159e7fb00102683466 +DIST firefox-139.0.4-nl.xpi 440334 BLAKE2B c339c56ba973a4f2ca41e2716e411875a809983e71db271dc39e9cab2d595fc082741230da779af73d8e0a5256c93c05ffbea65e18d54f2ac6332b0d63af10de SHA512 c5c2d57ae010fe86161b489bcc410f9c4184a5b7e6ac9831fbbcf7a34e98596f230084983bcde5cf6157e1e7d869906694a3097e6de6088b9fe860e5ac6d623b +DIST firefox-139.0.4-nn-NO.xpi 432707 BLAKE2B 746dd31d41c3e052d04ff40aa211c6b25e8e2dcebc0e8f3cd49346820179263f785eb908e28e948a368cce538481f7f8a471d3ed029e8ae41cb08d4b295c6ad0 SHA512 a34b470e6bda530f73a28c580940566f9d2cb418885b07424f620b1563f1b9e4ee07f2b969b182d2f2fef93b42589f224733425ed6a815614386850f9f632dd8 +DIST firefox-139.0.4-oc.xpi 416067 BLAKE2B 54a6e986c6fe0edbe113e448483ce97666513a9e1a318e84b69ad3d54dbdb1d08d34b353a654c1341cbc05183f619117fd2c62f7dc96138af79f9c4d43347136 SHA512 a4982d4504ea38d55ef59eb69ef3815ae095c72564c46ac74733069d49123c607b361d09c95fcb561ba43fb3f71204ec2fa5399243c580ed9c3bafd84bf44057 +DIST firefox-139.0.4-pa-IN.xpi 496786 BLAKE2B 63cd8beb6cc68fb523b607304a0aea6b775a0cb59a115564344faf66450ae8f9e0436048409f5399eb434c279fb97b678805d6d22a2a8eb0459caee18e29269f SHA512 2310dfc756149f2a9be31d858304d63a8c84a9b02891b862920f15616f793e0cf2262946d1d85d707cac479987af32ed34ddd261aaa8c06a8c7d8f5c4de56014 +DIST firefox-139.0.4-pl.xpi 459798 BLAKE2B 0a8394a5aaf498a647f15138ba038c2611bb11fc97f5b3e8ee6f61fad6fa18ff1933e2bb32a62bef5f2c2258837ae950f2e0c6e5d16911b21b275955955c2c25 SHA512 7d9100b1561e34f9834d17c89eac1f0c4ec51a73c1cbce7dcbfdfb3e72a5d5db60398c906579233868874dc28bb08c2d46ac57fd02b0137c274568156beac60b +DIST firefox-139.0.4-pt-BR.xpi 444925 BLAKE2B dab39a6ec5c7548a4e37a2c7d21156e4f84ad69136e54ad9c2ca3d4ee5997f8e012d92c6068ed95c2931e801146ce6d0c33e4d321e6a2eb02d94a9658c13f7b4 SHA512 07185760d6d80212b5a501952199677880b61115ad13b4941a6965f24ba024ce25fef3f5b71380586c89b010c724ab6b05739381b87ea3a64daaf54e5fc06013 +DIST firefox-139.0.4-pt-PT.xpi 450735 BLAKE2B f4d4333273e58a8b611063339f129da2cbb6c8276ded92e194c49a04f67ba3e330c746b4ad9a3bddb197e6c1bdaed85314957d5173ce23be5df7b1501491b32c SHA512 65b1528309838820c58d3018808cd85240cd2b68909854863987ce7a460fb37051f8253d09751e67c712963b32a34654e76e97a008ca3b0a475a5c7ed1297b3d +DIST firefox-139.0.4-rm.xpi 442543 BLAKE2B 0c167c71fc87ba95a787a87f0f6a1ec8481f40fb7bdc2cad2ab534f9a8ec77b968bb63c6cab4309ee4b042aa2c9f46b73eb6aeba973acee82d00a1f38c9aed47 SHA512 eb0d6239d4c4a04c89b9cd0088cf79e5a6a2a9e767c82a3711394f2bb5a7b53ba250d51a494fc520e79a42f6d8c85978f3047aaa4f6aca63225c3fe390959f63 +DIST firefox-139.0.4-ro.xpi 369473 BLAKE2B 27a8b8a182cb72cb8d9dcb88da7e6e38251de3bd2272fe1fad5980a0a55c46824c2e8cc74a9710705246dd89c8856cc7891fb23e36232e1425e266d8c1c97397 SHA512 5fe268325defe5d7627a29264feae6b0fda0a7a4fabfc91625d9aa3399d655b6f11eb763581e09cf8085ed56a953b55ddf678fc6999b044dcf7c135a3cba5c1f +DIST firefox-139.0.4-ru.xpi 529326 BLAKE2B d3767de92aa6456211daa929d51c47fd5d61bec4979d8308c8fb50298822ae6721f02f0bc1d9c86249cf5c3ce7f0a5067b4e9e9b5aeb31b9ee45f9cd526b702f SHA512 7f5016c5e8941bb8ef7ac6b4b878621d29a2bd72458c54c435da66a02a97ffc79e5757d06b1b6c8a5bd9e7ffc6a8c2e2fef0a3aafccd842f5d2ceada86715ace +DIST firefox-139.0.4-sc.xpi 409838 BLAKE2B 887e8fdcd7713a0bfd7eabdee5fd0978f49b77f8c60b03f5eca454bb6824292e212355b52afb7e55d4c6fa803a326d10e4ef8aefafc0522a4e5ad1720f31beb8 SHA512 a95b8125dfbf9b1f76cce62ff780a6241ece124045670635a06a3d47109887514aab8218877bb02d912b52a214f29604e1e01dd927b150f38718afc76c892c86 +DIST firefox-139.0.4-sco.xpi 327276 BLAKE2B e0b577b8f95680deb3dcd1f7b8d093c1aa8c098988e066ef242ca69116614bc7a2c7167ec875f4c87df37c392ec914801173424449d1f29125069268092984db SHA512 51aacf17a1ae4468304bc45697ff8b0ea2c2046b06a5f11ad35e57bb24383f7f30cf31adc5f9d6f0ee8f799fa251f4257167933a9547ac0a25642b1d44e7f84e +DIST firefox-139.0.4-si.xpi 416097 BLAKE2B 8b91e0361093a42eff6f74adba8f0cc2e4d81c6bdfd586c1a73ac46f12234e79e229da308e3e41580a7f3a20388e3511f3955155ac5e781a9cbaad82ec4a268c SHA512 b8889df7204a2cb5c0204ccfcaee131f2102f29495f9a2f320c8f9e99e047accb1be61dd8f15b90d01a582f64c2ed8ea2132f7a49fcb83c5d7259fd4126dbcc7 +DIST firefox-139.0.4-sk.xpi 472190 BLAKE2B 8ebc019b1247e0b47d1d29d52ab8dcfaf60812508bc8dcff9fdad306877eb57874987ad4ebcd88c3045474ae975af2340594748d1430b79176a82fd560796678 SHA512 94d6f8db2ef376d5b6c2745726658c8f3d35bf9d50c761957cfc6f9845cf14a3f951e94c97880ee8158884505210242dcfdd1a38d8fed2a3b9fb5344c9187171 +DIST firefox-139.0.4-skr.xpi 493735 BLAKE2B ca8a8ba409d859395585515b60938313daed10c53d1b882c40a2ff079e1807f14e6d0cf3a8fdbb3b53050a11a62cffc4dd74789c8744977c129ba261c08a7c5a SHA512 86f78fb2e1fe5442a08e6e396c17c20596cb6c3fde87d1bf927457be28982dc75caa74becdd6a8da987efc332841ed1eda8ff064509c47871d8550a601f3b38b +DIST firefox-139.0.4-sl.xpi 444964 BLAKE2B f52d699280f664f4ae45377068ef513ba14142b661fc7e2f414bbb0f94633c70604159d4da77759de8dbe6c53bd2ea880339d1bec22c3eb5d93415bb38c8b011 SHA512 e5ea5bf0558ca3d3f2ca82a885f83e203d97ad24ad9f62dba5041c43fceea83924a60f26dae73ba7b9811d124b9dd57fdd9a550f96174c1590cbfdbddae8728a +DIST firefox-139.0.4-son.xpi 276303 BLAKE2B a467253483821a92e16da4eb810cb2ddc4b10c662a586a9efb686a691683792bc12b2bea2e19b23d3da8e93789cf6854f794ba75388281e10cdd3f883e353b65 SHA512 f9b571ea64c49da06aa9c8f157a632f579989e62edd7d9cf1cb611b9bbcfbd8eb917a3b4a1802a5e45371c8995fd83784c59d6cdc7b3e63b64701a33c6ecaf57 +DIST firefox-139.0.4-sq.xpi 460096 BLAKE2B a42e780f4003253725062fb0c5aa4506d2e05fa07c5ad37d4e95ae21b0c8a9818d2b5f28b74b6dab6b98ee1769751547fa4d10d935e627d62976a71a8eedbe96 SHA512 6d1afd2cacfe47e32c21812166efd1e7f7626cfdd3d96bf07b89ce5c674891126507b9836847816fe79b7f210d92cd73c4c67fa40b56a9c7a0fb955f148ab768 +DIST firefox-139.0.4-sr.xpi 456117 BLAKE2B 4dc15f4f2a8971901b068c83ea68ad97d1ab76342256b4009514a89bbb9e479768b633f6d5943e09a4d1be5b56b894b6cdd66ab391d3f734458ecb862efc50a3 SHA512 171d77f1f7b5608a2f701a40b65dcb64e3d38c4660e630a4c79edaf0600d9c45fd9413da3bd83bbdf3082bf68ea9d580352d237b4001c610ad20ab70624fc8d6 +DIST firefox-139.0.4-sv-SE.xpi 440193 BLAKE2B 5770777e7dd1ebaf2030bd3de9415bbb346dda74513dd07ba95d1cbe82f93d33469e31cfbc9e88b48cde7b5482b0a93935fd5dba137259b8a51bc0fefe2556a5 SHA512 1e8ebf982d8e1da8d1819f3458344c06ae32b9b51fb18b118f3e4e2ac8562f0a3d733c0b520ade5ad61589c413651af248b1707c2106bf94fe6540e0ef8f94c3 +DIST firefox-139.0.4-szl.xpi 346231 BLAKE2B 7f887f22ee168851c32a65f4f6edb29044fc96196709cabb8276a31564511231fbd6a86c1ec800269c7507296a40abf6f7bb0808eb4088a8fa9901f282895024 SHA512 48e3387df4dd54d395e11bafef73037a23aad30bb3e6baf8d91522aa2f9e0f799771a49cc1799e2cb4511272f9f57dab120757c0b55759588dd1b2139a2a5ff1 +DIST firefox-139.0.4-ta.xpi 341129 BLAKE2B f5127796aeb087488c89f4c58432d49e256fe976ff2f089d804843cb658169035dc474259afe18f126c17cdc7de87d89e6513202f62014552b8dbe4a0e02961b SHA512 2d98aaf48eb47f90e14e6837791cc689dc79a5f2ee2334c7f52dee203957a557e3bd5c7399044bbe29a2328ca3b31144488a23b091fbc8fb9fbf18951363c133 +DIST firefox-139.0.4-te.xpi 385829 BLAKE2B 159fa9749eba8b603b7d4f103b54dc0917fcba3f2650179fb3ecce96f193df331bb715b659999c944df937b2369ae5ccce073d417f71e578ae80abde64594720 SHA512 b04c985139dccbc1427805745e1eaf43493dc64000b3b21e8af6951730a45834c9ea77d6afb89e11ef83d6373f66d0a9524abc92ecf6352926956beb9c50b7c4 +DIST firefox-139.0.4-th.xpi 507674 BLAKE2B e0374ab1470ee0c775bda920758c544944285b04009b253073cea9278836d8ec12cd3792ba466f4a98ef1dbac9694c37552315675adc545661c9ec70daa6e22e SHA512 b7278d3552ef802eacd3af5f5636f2b4e1173a49b97aabfca81957f2157afa6c615f36a665e306331ce0cc5c4b8ca558b39ef8ed800d0f96cc8126d5ffce00b1 +DIST firefox-139.0.4-tl.xpi 360236 BLAKE2B f94a4cf20d36ffd6884b31deb40ef7a1595f2933b752d0b86501269b4ffbd67ac9fcbe09cca9c9eff87fe00b5811ddc975fb24da0c81fb63688a7d9428700067 SHA512 143b40fff4e30b619b70b394d65bdf5d7ba37835c78ff7339c2f00326534b0b1cc76d2c2f1c728fc24added4c1bc1c35d0dc3dbd00d4cf0facc26a456f7c50d3 +DIST firefox-139.0.4-tr.xpi 452739 BLAKE2B b6484015170421ef951cf5a3b96ff28c3d5a3e3d4cb066c64dbbc403ee0dc87adf532bdd5f544d0973cc92888be4040b3137896a7f9c9239bc4db7590d958ea6 SHA512 71ea99052c65a3f6bb83513f4e851c8c3124600241925425a224075643463f9f1d296de383cd2217e19bd0f8ffde640f613732e12d6e5e698ff309652f5b4c57 +DIST firefox-139.0.4-trs.xpi 326657 BLAKE2B 3df4449ed15c80b7df52ccf953c93d78a3b6d756c4f6698cc893287e1b5a930bed891168d0d7ddef46180e24906a951da875885da0c9d0b75aa2879c725dd549 SHA512 86f67a6bc13cd77f78bbe6dd628331d50f45aa1065e4e36094ab3379a075da188b82e2e3b264cd0dc54050d768cc671606f525eba4e49cd452cd335904e1dfef +DIST firefox-139.0.4-uk.xpi 521125 BLAKE2B 0f215715e9f208ef4c47cde6b7281a93ec519aec0970775fcac508369e740aad1876ea24a96eb75addc70270fd512c4b8559969f8804c0caad617c99da676b11 SHA512 e259b05e59896d1fc45c146cac3852fc621bdafb2956eb42a460bc109b52dd292b9237c6e1934bf44bd766917711ea38012e0fb66b0097133996872bb497a3c3 +DIST firefox-139.0.4-ur.xpi 373553 BLAKE2B 9341c1078a6f10269bbf76c366450237a8823e308dfe4ba35e0d86f4019c9ea038b1efd15859c12c4dddaed86d7b674b0a342a1b9168b780d3bc4a66f9adcaaa SHA512 758d654d905b91d265fb6cee2add8b6f8e718ad48aa6f3df9ca31ed9d00deaae113e71467d79bb09c54fa12da99c47cd7e525fe212451f12dfeff00096eda5fd +DIST firefox-139.0.4-uz.xpi 306875 BLAKE2B 8aa402fdba8d2cb0285561b3c2fe7d4665bd9643c5b75433423eefb462e23b1f33cf68d6e1b6f5cec8e1bdd0a2f92398161d4621c3de702cf67d8d747cc86c0d SHA512 d8482b12f1ea598ecf73654f5f637411d27594204961fd7fb356753dec366fbab4403218d063dbd73b93dc61d30ac9a5a72639c662d30c63f4b8c30bdb03dd08 +DIST firefox-139.0.4-vi.xpi 473297 BLAKE2B 71433e939c21b9341e431b0e6363087d6fb628d0da493592ad326d1d7d746fd0beb2af470f05f686afa01826a5b7730da7389cf1d5551fa16ad1fb7117ce25bf SHA512 9ee4b96446b78fdfb804346a71553f7afdc65d48a040d78beb3e7ca14a1a6949d3d64cbcff515bd82cfc6be84a5e983e0f447ad4308181d1a7e7478315525c98 +DIST firefox-139.0.4-xh.xpi 276202 BLAKE2B 876aff68532546b5f95e457ee7fe0133cc8ea1ea796333ce5e8d0d807a5ac193704c7a32aff95a95ec7cba2365d4c57c42316c81f359cca4edb6cb61abe2e952 SHA512 7080639faca1b0d439f6e2b866cb90506132187d77aa278ba0375e6b9117763942688c2c18186d3d74a1e484943fd255d19c29bf2a3380b9116e29881079498d +DIST firefox-139.0.4-zh-CN.xpi 464969 BLAKE2B 09f3697729239c9913e9648d9caa8e09147787d03c35e83988fe457529937dd0d6fb22f4e67a6c8955f825a3f70b9bc7edb7dd9a55c290c6ffa856c36be171c0 SHA512 0f17aaa914c785df2f7c553c98586c5da02877a45dd8fcb8b1d6daa94bc14d871d89523cd9a1d1c96059632cb7a1a08f05e7375b38dea35952a87e681dc73b84 +DIST firefox-139.0.4-zh-TW.xpi 468021 BLAKE2B ef2c073b69572ee35aae9fee272fdd83ea0e3131da9ac78d0c37857fa36ffa5b18c83b6426e549ea82ce0cad0cc657de65fa8a52e0562353b3179b6eb56b2606 SHA512 b22bc6efaa430dd37431c97755d9eeb001fd7ed777e0d3df94d3f6a62e5d704137796cf54ab935d81630fc901d5db0319bdeb300fa7db7eb4158e41cc8c71ec3 +DIST firefox-139.0.4.source.tar.xz 644670560 BLAKE2B 1fa263c2055905edc7ba132f2b148012d2d64e8c05608103a12a47be8108d39050dd8c0e26157e6e9331f28522da5eff33a299949e70724bc7b70414d01f939b SHA512 fa5ae798b0cd485e0a56b0c57ed7f33e0d0ef921302dc0169eac91926194abe2070beb54239c81924f819a60b589f305f923970d753c07ba50acc36e1a492db4 DIST firefox-139.0.source.tar.xz 634198424 BLAKE2B 920df1c0b1389234d779861de71c971582cd0822054a23f1a159c4ffe7e98e09049fac1f202004e6e6f85ea0384c21f0807f3c843c5784de8b0474b6de843cab SHA512 84a2b47f2ff71aac226a774ab0ac9ab8d9a16f5620a06f7abb6648732209d022aef35a9d4873e91ebd67a4fc494fc238524e25c38fad8046db26afda06e6f970 DIST wasi-sdk-25.0-arm64-linux.tar.gz 115160800 BLAKE2B 1ce22aaea87d0720d40d46ebdd96508c8fb0593b53c4489022fd5a1a9afb043a26a6e162a992d73454f612f2b6ab01e17a99c189c0c8b8c2d2d68fd96fabee1b SHA512 ef4eff22c1efec4dc5ab199d09d93ee0004f9fa67b32cac0030f8b6a40def10f714391cec8e803c200995dd8bfad3ebad9ec79b4195aa6b2ea61ea47a8b9e61f DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 07618828d4c25d67421aa72d38fc49bbff9052b8ecfe0fa9f4207e71880e9c650f458567cfa5bd389d5f830fcfee89142a77d33c29e7bccd1da7ddba2bc47b95 SHA512 716acc4b737ad6f51c6b32c3423612c03df9a3165bde3d6e24df5c86779b8be9463f5a79e620f2fc49707275563a6c9710242caca27e1ad9dd2c69e8fce8a766 diff --git a/www-client/firefox/firefox-139.0.4.ebuild b/www-client/firefox/firefox-139.0.4.ebuild new file mode 100644 index 0000000000000..c58019353233c --- /dev/null +++ b/www-client/firefox/firefox-139.0.4.ebuild @@ -0,0 +1,1399 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-139-patches-03.tar.xz" +FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-01.tar.xz" + +LLVM_COMPAT=( 19 20 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 + +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.82.0 + +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=25.0 +WASI_SDK_LLVM_VER=19 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.org/firefox" + SLOT="rapid" +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 check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust 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" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + loong? ( + https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET} + ) + wasm-sandbox? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" + +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg +system-libevent" +IUSE+=" +system-libvpx system-pipewire system-png +system-webp test valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +RESTRICT="!test? ( test )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.27.0 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=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 "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + 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+=( skr ) +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}" +} + +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 + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + 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 + + export use_lto + + 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} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # 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" + use loong && eapply "${WORKDIR}/firefox-loong-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" + elif use loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + # 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 checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # 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" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF 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 + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-ffi \ + --with-system-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; 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 loong || use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + 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-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-pipewire + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + 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 + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + 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-x11-only + fi + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + 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 + + 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 + + # PGO was moved outside lto block to allow building pgo without lto. + 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 + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + 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*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # 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 + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + mozconfig_use_enable test tests + + # 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 + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; 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_test() { + # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html + local -a failures=() + + # Some tests respect this + local -x MOZ_HEADLESS=1 + + # Check testing/mach_commands.py + einfo "Testing with cppunittest ..." + ./mach cppunittest + local ret=$? + if [[ ${ret} -ne 0 ]]; then + eerror "Test suite cppunittest failed with error code ${ret}" + failures+=( cppunittest ) + fi + + if [[ ${#failures} -eq 0 ]]; then + einfo "Test suites succeeded" + else + die "Test suites failed: ${failures[@]}" + fi +} + +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 llvm-core/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 + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + 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 + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs" + 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 icons + local icon_srcdir="${S}/browser/branding/official" + + # Prefer the upstream svg file they use when packaging flatpak so it's always up-to-date. + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg + dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-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 exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + 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 + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + if [[ -n ${MOZ_ESR} ]] ; then + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + fi + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # 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:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +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 + + # 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 + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + 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 +}