From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5FD75158091 for ; Thu, 19 Jun 2025 06:47:08 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 4BB2C341F3E for ; Thu, 19 Jun 2025 06:47:08 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id E804B110509; Thu, 19 Jun 2025 06:46:51 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id E0AA0110509 for ; Thu, 19 Jun 2025 06:46:51 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id DF39D341CC6 for ; Thu, 19 Jun 2025 06:46:50 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 588AA2A18 for ; Thu, 19 Jun 2025 06:46:48 +0000 (UTC) From: "Joonas Niilola" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Joonas Niilola" Message-ID: <1750315380.2a1c4b0be64d774b7002140b33713dcf3b3b8c9a.juippis@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/firefox/ X-VCS-Repository: repo/gentoo X-VCS-Files: www-client/firefox/Manifest www-client/firefox/firefox-128.10.1.ebuild www-client/firefox/firefox-138.0.4.ebuild www-client/firefox/firefox-139.0.1.ebuild www-client/firefox/firefox-139.0.ebuild X-VCS-Directories: www-client/firefox/ X-VCS-Committer: juippis X-VCS-Committer-Name: Joonas Niilola X-VCS-Revision: 2a1c4b0be64d774b7002140b33713dcf3b3b8c9a X-VCS-Branch: master Date: Thu, 19 Jun 2025 06:46:48 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 0ad0071c-dc5f-41fe-9164-573df40fa9b4 X-Archives-Hash: d7954409df4fb57d38229e45c21ed181 commit: 2a1c4b0be64d774b7002140b33713dcf3b3b8c9a Author: Joonas Niilola gentoo org> AuthorDate: Thu Jun 19 06:43:00 2025 +0000 Commit: Joonas Niilola gentoo org> CommitDate: Thu Jun 19 06:43:00 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a1c4b0b www-client/firefox: drop 128.10.1, 138.0.4, 139.0, 139.0.1 Signed-off-by: Joonas Niilola gentoo.org> www-client/firefox/Manifest | 407 -------- www-client/firefox/firefox-128.10.1.ebuild | 1380 --------------------------- www-client/firefox/firefox-138.0.4.ebuild | 1399 ---------------------------- www-client/firefox/firefox-139.0.1.ebuild | 1399 ---------------------------- www-client/firefox/firefox-139.0.ebuild | 1399 ---------------------------- 5 files changed, 5984 deletions(-) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 4666aed0da51..37cb81f79d3b 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -1,104 +1,3 @@ -DIST firefox-128.10.1esr-ach.xpi 482240 BLAKE2B 5f90915bd7fc7f0e0807f701fe3258f8cd9e5688dde1194fc89252d30fd084d17de18e8224cdb74916f744af14bc35a27414a0a6c86c900806da916cec7bae95 SHA512 77c152cdc2706a72655b199bf2a4a8dfb88ccaa78df15956869c226046e90ca6f43e962dbb500c7dd779b32d73ff8007aa275eee67f725e5428e72ef416c8643 -DIST firefox-128.10.1esr-af.xpi 446596 BLAKE2B 999768a0f57b563e71773c2adeb9a186109ed295c41746c2cbfb76549ac9e0ed8c870731759da7b8cc2203515e592c5ab0b8c7e89b01b1da5482dcacd94501dd SHA512 242ce9718ac2c1b39f324f145e5fdc5d3cf554a7efe09663ecf72abf62d5d402ade5b1c5ab1e6c86e1f957b9aa4ae06fc9d1ccf83afffd34038e7864f440cb3c -DIST firefox-128.10.1esr-an.xpi 526058 BLAKE2B 41d3a1a7cccae174abd954b363a18c12b124854177fe6d07868af6a6fee039877710cce0094ae16224f609fda6f64c4d49122b7cda56680bef59f963365721d9 SHA512 b65d092a1975b40988ed0fcd27d778c0c689fffd86112295f55fe266a7339e6e675421a6d71e2422cae969abcb294e92515988385d22938305b91230a9f8a74e -DIST firefox-128.10.1esr-ar.xpi 650463 BLAKE2B 2fe244b40e5e3e938278f5b0c56b5f469f98c279d97a9f514c5979c0574efcdff358c528994a093acdaff2d2a951b054c41ce7d312f1048773302cb8f048f093 SHA512 1b9725e952208de2f036828d7452a165f61a2f60024c002970c34ec209bdb4b88da98b7044aa2d2ebf34438c1e3225696ec1124b5b6f8695781b82c3f623c304 -DIST firefox-128.10.1esr-ast.xpi 508565 BLAKE2B 2bb640c73d1837001f350584afdd98d39b75b9a625d9f61a8853266960cde736cd388d02ba299486d8352572f708a322ac6006fa9e57923253f2c4ec8d202352 SHA512 7f690754e442573ebd3c1b126ec42b49c57f42ecfcfed93549140a820543a7b88406337494d910060f8584082d456306900972a900c26059e098d1a738e92d15 -DIST firefox-128.10.1esr-az.xpi 509839 BLAKE2B 89fb4ea73cce53ced76845a3f621404eca24adac194bf23f507e86017cb84928bf19490adb6e2d1cdf84f595d9c9596ec9a45b13e12295028ef68b26e1490734 SHA512 f26d2628271a7bda5a329cc3006d0ea32735af2103dd56e38805743de0075a7b4f2b32423127d753cb4356e29361d268fe44b9511c4d0575971178515f825045 -DIST firefox-128.10.1esr-be.xpi 748084 BLAKE2B 3e9f93b70e3a96aedc62d58b61bacbc81182388029dc2fc5664744164f34d3cf68379c7fee279f9c9a9bf270cab80050dd947559c015753092a75f0d3698de1f SHA512 58d22695c48bf6ff11ce7af92e9b1f0af9c597f2d7fa6e608462722bf8136ba9a5e1443a3c362855db2be1ac38b440fab6717181fa087ede8ade34b53199e53c -DIST firefox-128.10.1esr-bg.xpi 672068 BLAKE2B 503fee1fd5dc0712f3e2cf0a997c885285543f0e36a00d36996e9d51d84ec1ced2157ae21025190f978bce6fad0bf2dfa3e8bad04b59bdaee68c94bf20a18e02 SHA512 1a013d26af37baeaab28da19b6cfe3c37e6bc215a3a9a8a6c7ff9010a45d030f3147aee4c20cd2d9b8833c51cae844135414aa0b558ebbee8b15a694b75e62ae -DIST firefox-128.10.1esr-bn.xpi 624734 BLAKE2B a0ad0b5f3ca5bbf187d9f22353e1f4423c4406425f6a371cb160d599a1d5fcaeb02ddbde630218002733f25d81d850dd637cea7b0ee4754d4153d684ac903d1d SHA512 2f7ed2d00dd4efa97d5315bfc32e11f83c0222979ddc0b18a7822144ae2520919c984d903aeca3f8f2d013fc718cef65d567c0fd5f657b4bf711ef743c96f82d -DIST firefox-128.10.1esr-br.xpi 598745 BLAKE2B b5b0cedeca0f4e40647cd63635d0bd8a3055d5d697f130f1845eb9b8072bc15fed5007a23b0ebea2ec37e49828e33b39ce5fcb949d517eb82f3490b9449c1fe6 SHA512 54ef70538f9c5961f223b2d6ce245ef1f91d5ad4452312304a74945544bb250c4b63193f8a8ea9904504e9cbe1e7050f83695c08add34be963058ebcc86e8fed -DIST firefox-128.10.1esr-bs.xpi 566003 BLAKE2B 208a7ceba94ad37a059b7ac3e65e534ab6f8875969d64e6d15a7377461aa62113963f8b111eee68f8e3c2d1611d5b7d8def018c21a9d653dfd3a74039a2fa453 SHA512 a96683a1bd689e95286b9a6866c8779f7b8f99220e33ad81971a60ace30bc5b6bfffc280baa28635d15bf4bcf3a1888bca47f64e306ca5d57f71e8e251d558f0 -DIST firefox-128.10.1esr-ca-valencia.xpi 561151 BLAKE2B 7d7458d43c0d222974785aa7a225b15578139de565748768b9b70625ca421b82c0ade97dc2d5353c79774f6c74ec4bbf5bee841f3ece1035b09ea660dbb85ce7 SHA512 f131a7c4cdd2642e572c063daf1e9a952e551de539690266bcb6e2c9d8140480bfaf24272b67ca8d925a810908550af838cd8a30672c44e8c8cbe07ca8ca19e8 -DIST firefox-128.10.1esr-ca.xpi 609961 BLAKE2B 30542a9bb821ec1f19fcbeef66356a4dfb40067b4c2584060d6edb68f875d7436fa3b88ea90523c6a3b8fa4d314444400262acb4502a58e1740d462782cb9298 SHA512 364b4984a4165f609c0845afd963d2029f65cd8f23b66f7ea9bebe346e1a8a6803acbeb9d138a84bd06f179f59ca5c5f2d6c9c7da45826f8f5686b4236caf596 -DIST firefox-128.10.1esr-cak.xpi 601475 BLAKE2B 44e3a079468e4bd84f3d9c9c6831c32fa3cdfa3d7d69150cda33576460062fe864b1ab5d8162f7c9e45d46ac2cbb99b85cfd76959d6020cd79f48cc3b83b54c7 SHA512 82293bcd989cbf2120b03d43f739f11f8796c767b175b72575cf2cc5e047f42bb7b40d161c3faaeaf59c5a2ad0a9c8fcbd28d6a60ccd7bb9710be16b4d7a0d1a -DIST firefox-128.10.1esr-cs.xpi 690625 BLAKE2B 837575c32508de665837572da9c41ec5126d5c03f05b788cedd4c176db8b817176aa9804bc9ffa7664686fe89878933f259c9239a8bdb12f809e83419a929581 SHA512 4f80e37e8c1abd5b07e0475ce7176ce8488d372d137ac54ba9d8866f5f409edfcac40e55db5a1b44b8b272315426be904381fced0939a517561f18ee3672d5c3 -DIST firefox-128.10.1esr-cy.xpi 650609 BLAKE2B 003a155cd8b224833b8a200ac9f2b97caff2e4360520f3d8c4b749831d138c39c85159a49e173d087157ee9d4ec5e4623f00e4c64fbe7adf2c28f01755f1854a SHA512 c534e0b5ea39a9d8c4ee1f7b5adab5fe538c4593740840c34974f9c4edad3a3b75bd27bcb735048fdf941522e05376bcec9c0aedfbfe75f95ad4081858072136 -DIST firefox-128.10.1esr-da.xpi 638635 BLAKE2B 355f0b026e75e6e47fb4e897156d5c8d5449a11295a2f0f8a1267016de5b28fb4bc79966bca612f3c138c223119fc2426bead41f3795cab8b7f95244735c9eb6 SHA512 85def8a21b0f60e3b0a67ce23b35aaa3ebee6867cee5e123ec38201747502c40c370f4e4fd41d5d0d10490f6804614f013d5d12a0ded28aa95ad0d77b83f1c7a -DIST firefox-128.10.1esr-de.xpi 663131 BLAKE2B eb541394dcdc6281ef48964449b212cb152f81b3bb87ca36534c771beba1ad9992b4148ffe05c4caa3e6127906159bbdf952812e5547ad2ccccbdae6f97bc970 SHA512 6341e6fcf7e98041723a01656cd02269544c8768ec97362c6d260b50d0ec9ff47360f19f8321166f8b82f3f40e80bb1534459b1bef2b38d81a66cac390321cc8 -DIST firefox-128.10.1esr-dsb.xpi 679875 BLAKE2B ee5b446a9d857c2fcdc7382afa5973c9c4ff9cf44062ce72d48aff0c1916a539f998b58dd7378a7fc3c8de117afde512f1ddd7e577d81920e86caf3d2ad5f85a SHA512 55e2080818acb0c26c31a090e31a379dde18253a788ff56e6a52f118d072d657ee6f9fcc4f5feb5a57e640e5134c273d8a15ead0b92fe0d61549c540a730c8c2 -DIST firefox-128.10.1esr-el.xpi 764550 BLAKE2B 0cb197feab0173dd830e100e9de75dd7626396ca07310619ad2c62e21241fa66a6cfbc2aa1492304443330e1effb5ade9bfd798360deaf248de154335cd2d806 SHA512 27e340c3f5f2dc49fa4b5dd8e34fdd6d95c32a4538ef5dfec6ba70d4a358aba7a9342083324bb9269b82910e33e0745c60e291e630fcc1b9269cf84da52aef68 -DIST firefox-128.10.1esr-en-CA.xpi 610419 BLAKE2B f36261eee4e896ea99f8cf460e089143ae4bbb5b816bf01bf04d0fb06947c5909e78e1973e52c117d5058d51d6cd9c024959d52b63783b2ac8773539f4243378 SHA512 eded316f08085c02a8e66311ad29fcae1d60606aa213a4f394865a53dc3351f4880b2d342b23882cc97e763e1f6dd120b39b24a54c41e354587f8e992ed2edaa -DIST firefox-128.10.1esr-en-GB.xpi 610776 BLAKE2B c1f117c6d965fac6a788ac7de7d0940c8dc926347ce8b7ddc26c97c2856aa419421db607717d76a413391f4a3c00b2f5a9968495b5c16118eb15954992f0ac60 SHA512 e874046e4cb04759f72713892bd19c85997a19ddfa2f205afa86b847596c3feddbb93b887d0425f050b3639dd54ad641dcc0e0fa226f17149ffe4956ced235eb -DIST firefox-128.10.1esr-eo.xpi 643531 BLAKE2B 57356305adeda7c3126aa25eb0e521743dfd62f5d6d6a516ab41a6b72416fb4c879448a783627257b1a5bb8fdd73ad436564a3bcb96ba22175bc88c682c4b6c9 SHA512 1d224d0090c05dfe034c94d61a2cc0e32b843c090d6c0e360edcbb2f5db003934f35c80268cbe8f27702893d495ff0eb2c373ec6dac5c171b4442e1af254c216 -DIST firefox-128.10.1esr-es-AR.xpi 655621 BLAKE2B fc951b5c54491b69d80fb29d70158b145dce5f9fec49da3b34c65fc0ad3b443353bb6cc7fd0d900df5f5d3702dd47ef302d623b192e177b1279e9f8ae2302270 SHA512 0f6415363a1f3070effd9c5ecffa59edf0f3b01b846d0fb9c85fc9014223892ca2ed0cacb3cb4acfcd4a2da32a9c0c787f8945d8fb728bd81d3be3deaa2341d7 -DIST firefox-128.10.1esr-es-CL.xpi 656061 BLAKE2B f703ad28a2ce9f5cd110b4b521ee8565f959d7e82104a904727eebeceda67d249d10d2426fbde682e93101ff629e753bf4fb92d766c34768d123cd325ae18b5f SHA512 c63d9d36e906ee6ccc9346bf8b38d997188e041914bfb82cdf0e526264bdb3a3f133dab6f398b93c70f4749771315d1da99cbc3d13db8b8581069a33400f5ba6 -DIST firefox-128.10.1esr-es-ES.xpi 655182 BLAKE2B 3e67acd8f8c459252fa9e10ca2ee0ccb894dee5ad8269d10a61bb900204abbb2b790eb6195a831d45e9c79eec5d35784ca68edba9566f2baa02bd9bf94bc193c SHA512 0a0d349210b09c6d9939d3a3418d1c4eba90c9a1cf75b7ef9e0a903e0cefeb63b2f18db680168f7eaf37316945155a8a47b2daef8dfb7d64c24fc051a98f4a36 -DIST firefox-128.10.1esr-es-MX.xpi 657392 BLAKE2B 7c6d383c1bbcc220601ab3804aeb61b5b60e9b0f9bba324744344576c01878aa429f48d929f0197b7208d8d3a0bec7136dbc93d6b028e27e9bbb213ec1cd4887 SHA512 82d7062f09e1e9b3913acfdad9ab18ceb8e69b1d60e309e17349131e3842007e98c2f09acc5843fa424d2dedaf91793479da9174e36594b12af7e0a694b69734 -DIST firefox-128.10.1esr-et.xpi 556265 BLAKE2B da714fe962c00b0a339d1f2134226977125e272f8a9cdccfef80a0e8df8243be70bcbc5443f91289484d4f32f0393d3040d0e114a0c3666c9b0af3e9a40c377f SHA512 a6f50adbbe2ef758733e4ecd6f5dd16400813029f6c36046774caeb783938ece5bfa425d9af058b3a185b729f7237b127d2019f7c0df9f2be97ed2d7fa8e34a1 -DIST firefox-128.10.1esr-eu.xpi 623950 BLAKE2B bd9740aa3cf2ea8343237e597198004f4c099cac727d60f70323565dae409a61f7ddceffe922d68bff96ff208c66ee6c972bc65088cc92e51e4a70be556b8b9e SHA512 bbcb07f7ea5b44aeb0d03335ff650a6cef8f0678249698432d1470dfca513dc5b2a522ac13e6613bdbd819f966da23c253f36a09d97d69565ae3ffede5aded47 -DIST firefox-128.10.1esr-fa.xpi 631011 BLAKE2B 43020a044130cbe782898cc619a7c4b39791e065b9038496adfa27488bc3566039e85abb9e3ba124fff3d92f81f76354acf44726f1c15e5cca4bf889f182c184 SHA512 2bf4f9f96f536bbfa8506f60df4dbc9f7c46308054114ee5d9759e5ec1685a8496a49022589da47aabb1a56f777370e11e8d181fcc2422fc86e9e40ddaa994ad -DIST firefox-128.10.1esr-ff.xpi 497838 BLAKE2B da297f4d824ec41fa55351747050d800e4b7f1f678dd23dd6fa6d4b5489908c914f408b2e4d4ce9450488e415151c89531d3dac011da324963968a393fab5f90 SHA512 04bc891d21296e07517c18416204187ad302787ea15c8c820bc4c430bc36fe25a27ee206a87eea7dde4c50dbb2b8cbf8cdb17af39a23424d0c84eb718e98d567 -DIST firefox-128.10.1esr-fi.xpi 633886 BLAKE2B 05b20a977d8834e24329df88ef747a770ada625b9e81c0d37a573ecf8a9179ed11fa844df84899923adc69854be2832fdaf240975d3520f843fdb26f60528a2d SHA512 2077969274692c15a77c55abcd347c1950a4dbb54bc665260c238e76b8245dc7ee226438f8dfbe34555ab70bf7c6e296f25889b4948fd6fcd9b30976bbc54836 -DIST firefox-128.10.1esr-fr.xpi 669616 BLAKE2B f06e8aca10c591831fdba9c46fd6c477431bf93d625641b9184e218d249a66df82ece891dc4f8e53a020ddd1cd527c7b3a903a0ecbe69884a7eb11a7e82486a9 SHA512 bb7a9989087d3d626507026d3b913adf5b00c592d51236e364ea8f572b946aad5ea70da7dd658828023987fc56cbdd7e0efed6bb9bf5e94432a0338446b77ff9 -DIST firefox-128.10.1esr-fur.xpi 651565 BLAKE2B 811002972488c5a36be84f0a310b3995295964ee188aa6edebd4fc31c2112dc010be16dbfeac6ed31e2bcb6c38a4d7ba9f9b6ada1a90f1e1e88231659c560db7 SHA512 9d32a2ed6853bdc7efa942836e84f9e606b646967b6bcea8e917e7d0d30d043be0e71e91e0de9e8231f7544ee9a82c662eecdff64fb1333b6bb776ac20236dee -DIST firefox-128.10.1esr-fy-NL.xpi 652083 BLAKE2B 3f7ed45e5a71b404f986cb4b1ec27cd7d0af40c93c0e1bb79e5f2733ea5bf63c873f5b500d9a835e055c11f3f580d9c90f63a8644d244393dfe768188fd570dd SHA512 47aa70cb223ad5b4e12481f4d925031476a53b72a9b815853b28e6fbac76860e076842dcab5f9c6c0d36286f4ee7284239562082b0cdeaa756c3d2723dcabd97 -DIST firefox-128.10.1esr-ga-IE.xpi 490836 BLAKE2B 7e0f197f82932735b6fb0d940ec264d4e8c31fcd293cc9f1835d9379bffd8457413b2351ec16725504e821ddb43906f501ed292205ecc13d4b215b6578505199 SHA512 e33b49a43afed85c5ba4d3418a9b2ed2f6f2534ef3d2d56c5b57bf8335cc73b2f6dcd5fba8722cd69a588de7664a6f83fed9b49fdd662c21e63e669540da9126 -DIST firefox-128.10.1esr-gd.xpi 609615 BLAKE2B b6320419ad64ca117f0ab5c8b99fbd18ba428043036636175ed0905a7ab183a274e224f9ec27fc61e404f0a4f185e687ad35f5cf3397982866325e9567a37dda SHA512 a6093c631f22f7b3c4d531d5bc4dbd0553c91a6ab49a9dea816f9802493aebc2c2b92ffeefc68d8c8a83cdf515ea5e0d1525e0d77f552c9233485f6b7ef00614 -DIST firefox-128.10.1esr-gl.xpi 615550 BLAKE2B 5534850655cb005ef7e5280eff39272bded38403699f65cba137d791b9bb10dafb13faef8514c0eaef3993d1ac82450237d91c215b6d78d37446708ed6f69eea SHA512 43ddc8c9d82638c67142bb7932866286ad308da689ac652682ed35f87ab059438bfc6d5370a44756ce68161a4e5b813beadc538a5f1f83d282703aeb1d5dd8dc -DIST firefox-128.10.1esr-gn.xpi 659905 BLAKE2B af60c3d7cd3e9aceae04c0357a811825564264ebdeef43ca314fd7874cf2779fb98eed5be99dbbbccca69d31668c7823087ba3d938e5945b0792d8097b3e6873 SHA512 2e2e821d70df8fea4ee93e218bc57611e63834ff55693156704dcc4c728daffd25547d36ba84825b9c996d23701a7137eb6edb386b0f968b8dabbebab39f0c90 -DIST firefox-128.10.1esr-gu-IN.xpi 552334 BLAKE2B e422c30edd08bd44e76a9f0ba966e618876f583946cc15650cc338e23e31e1ac6b7699111085c1f34cb5e9eccca24a0dee13263e550c9a8e054650888d777485 SHA512 d1abbbb888b46a7171242f19558c0d139479a8d66e2e081475407c43bd30bddcd77a87ac96ec514652bdbdb4beb1db504e7b74b3faedc05cb3705109788eddb0 -DIST firefox-128.10.1esr-he.xpi 659466 BLAKE2B 71ad350fbbde6138f77c6e0ac0389cf0377b974d228fda0faf69e19746b4f2d934e09bebcf71298cb18c0916dc9853a42f65abc71359f40914ec56767eff854e SHA512 c81ecdbb51fde9d9ab9968ab07cf06a8aaae9ceb5c7f38620f81580957479cee5c3dfb35dc06fc3123086877a31bd9223c724ff64e9577eee44292b20797f984 -DIST firefox-128.10.1esr-hi-IN.xpi 578979 BLAKE2B 5caec24f7b7b703024d4932a67201d834c8ca2a766708074e16ed38d94ae54d0ab53921f7d7d3ef716177984654463811f3d437194d32a5f033787a8a3088b16 SHA512 7038d0eff092ecedaaf24cf0a179e9355583bdd13a29a53f131779aaac7a7752f10aa993864b91579f035667c83afa69375e425b569a9b0a311dd8cd972df464 -DIST firefox-128.10.1esr-hr.xpi 645465 BLAKE2B e26790236699c147cfffb7e0acdd3cd0ced7990168f624ec459be94000ce28b075b01e7a171162203d07d0d5280596ee9d7b8643e22218a8268d4731a3b802f1 SHA512 3b8753d5b484930f08ebe55ed051807c18bc5a9fc02a48546bd990a9300c6c44816b54877d5feabcdefd5d114dc0435a3c1ea6f253c17dde202ad30be34a09dc -DIST firefox-128.10.1esr-hsb.xpi 675862 BLAKE2B 4cb1239189a4328a6f5b326d05a3726e7ba3417540ea52ce750dc12fa4cdc53572b32208b2c3836870a9589815e54e2cd8f01d1813f5cec77687905fce13f939 SHA512 d01e46c84d988f7babf9bfc82ad1578ee82d91d63e71974e074152b57990b87d3a45ba3e34a7f36a710e7ee46abad959f7a154aedb3ca49425ac3abffd264379 -DIST firefox-128.10.1esr-hu.xpi 679681 BLAKE2B ba6e79b336955a13121112691eaf7904f64e63ced37c837d07a7f7e0ef362596390e08a4b80a8947987d42a776e80d6550ee71b6d3bf92246578e1ea4619bc1b SHA512 8b9d7d36704e22b9a87aceb4239bc9a26d6a91a87ab70b9de86c921c96dfa340b865a246811261b7dd001772a8ba7f42e0f49a9267fd64a58c99451d51412c25 -DIST firefox-128.10.1esr-hy-AM.xpi 664448 BLAKE2B be31d4388fc8af207f91cceba06623571ad1d816d16b325f349f92f84706d61aa2cf3592f2f59aac29912179c1fed093a9d7fbe1658396145e14990e268ad38a SHA512 65f0ce1735de41771f2a0752baae784811050dc70b8cfc5554c3323d0468ac03dfcca0bbe7191cd088badb2990895435d77a07277f3efc215710e0db6ce11782 -DIST firefox-128.10.1esr-ia.xpi 637955 BLAKE2B da8b4b08cf3f166fe19106c58171358f2281eae018785597f6ebd70e28c054aee75bb6d1fa0743fd1a4671b91e39ba7da753ddef75cb0c8dce9eb99cb1ca697b SHA512 984aa8bba9ee64bd40628119cefbac2b57229c09221ea308da9320196a8f87d901725e8ceece99edb3c64c9d2a62c4061026a92b5b8d46d7c4d8b8bdcad2a6d0 -DIST firefox-128.10.1esr-id.xpi 625996 BLAKE2B 9a0dd04b5956d4f513a58f790f5bcd012a4edbb3c0a0bef04928ed94f47817498d13fed2b95d9cde02bad6ceca3e6f3a32b88d22c8efe9e6ae380262f4ec8baa SHA512 816699f5d4ce7a81fe07e8bf930a2dc200d9ce5a84dc3c09cca08011feb00614de2671dee30b71a3e30d0656e66421739d9e81050bfe1afabe8e41281ece014d -DIST firefox-128.10.1esr-is.xpi 646726 BLAKE2B a2076b5e550dc4c04a1da56d42ba0e2df7fb84c4e300cfc3d2033cbb13b673fff4124e2df22d27eb4eb359a9323f58ea64a6a6fbe6a7391dec5ca0198d89ea37 SHA512 0de8d17b6a88be05ec0ba18aaac7aec051cdda09d9faf578b71653b81060ed44724c6689cf8dbf10a571512efd01f25dee349dbaba5cc81ab4a95a85a1f9904c -DIST firefox-128.10.1esr-it.xpi 648855 BLAKE2B 3d1333c86a57eea746801357b79d64294287190f8c0cb9c94128f8f72242a853ed525b3115d1fde42d2e44517dbe8d2fdfa5b39ab0d9b5bdc0e97a19233322ab SHA512 7257e9f235197d02df388d1b4c170b3f73100f2ecb585520fec693403a0c2511a40382a74a40f184fb53677684caad485ff45d7c3017bfd3aafa33f88e2c3b5f -DIST firefox-128.10.1esr-ja.xpi 704115 BLAKE2B 5fb6a85b85d6c9601bfc17b17a886234a169eef312121342bc89237fd225181a187118df2106c16012e106bcec3bf5aedf41e382b9bf6ab1930e1be458ffbb47 SHA512 9f11992d163f39e54cb4673e40c08b987a2c07a87d7df50f53c10e29c48a8f580646f810c0a2392c52bb1b9d70963c77af0a07e6dea167085db049c2ba639a6d -DIST firefox-128.10.1esr-ka.xpi 714504 BLAKE2B 48bcf7bb11b534652aa519aeedc7444e2ce80dcb95ba5be84c6cdb84682bcd9a4d23cdb7b3b9093df94f0413729fdf5716e4cf0a9c720b41d2ac58751cda4366 SHA512 37bffa7bf53a8a9dc7eab8d7ed48246cf31ccab2a935ad40bf881cbb632c0cdeeeb80a8923f2a4eeb204eacdf5127f3d56370511bef2972a921f4452dc07f8be -DIST firefox-128.10.1esr-kab.xpi 626278 BLAKE2B 203b993d493db99f80515abee3f83454ec10025781a9caf2a4d7d9fe21b6c02b596c08dc0c3f0cc290215c03c80b9bb4da2ddcada965ab1be786a22a6614786b SHA512 91b71a6cad88a5e12347cb00a3e8c799563bf75ff9d981be4012d2bee2852c7620107ed0b5b687b4b05b863c066d1bad427c8cd71bf44c71b0f2d5bfe7737f26 -DIST firefox-128.10.1esr-kk.xpi 734546 BLAKE2B ed01602a57f5f4f6723fa9b13a10c054bb8b6c7d539f9ed7603abf11329e8f3e790ecac924514af861fc428a6bf2509dd08b6924f1439458dc006f890956cc46 SHA512 a35026a780eb363352b15133f82525f5d3e5a0b12bf1235d51b4746aab8a623642c8538c9b4cb8f9b03b68a69a531608fd4ef77e1ce019ac8cd7b2338d309f05 -DIST firefox-128.10.1esr-km.xpi 543180 BLAKE2B 4a36da5373dae781e7066005b0bf9cc45270a0e1a391a1d11409c028a276f333eeee3cc2d1707e2c7d15c9f9a4f63e01e8b420f1daa48382b91c06fdee378df6 SHA512 fe7694aade2d59b5d9fed87095eb429657f3290c8008379c408e968f993b0adf9a48ac52917aa8b8e73bbf438edc3ff379fed054155d12213da822911c1571d5 -DIST firefox-128.10.1esr-kn.xpi 520322 BLAKE2B ec6afbcd2f48a69c5f605fbea993b32e23bdc6e104962d8a09836c386c0f0e4990bc38dd528a18aa3f10e34b30c39ab2a8e7bd565432a17fd8d7682f2b9c6565 SHA512 3d6e3f3a9a9ee9814ba8fcf58465128b589f3f2257278bb4c9b2bd3880865379a9f95baa0163511b04cdd89f442c7b039b09d893e25f466a76925c7ebb64f012 -DIST firefox-128.10.1esr-ko.xpi 690536 BLAKE2B 494bc4d2eca4884151d7c33307c46417cb2807b9462baa8cac3f730ba96eb80106d4437875e779ecec0d373d91d02f6d76b7b279380a1bc05bafa114eaa062ed SHA512 3b1d9d43a254064063f88b91544d17fc776bb93d6e6e00c794db5ee14e7ec6cfa74e63023ca92e21dbd83b16df35d856fa2b2249bd06544e95d48e0f407dcff6 -DIST firefox-128.10.1esr-lij.xpi 506297 BLAKE2B fcaa10e4523959a19f9e08ff28147ca30b35f75e4f49e2993dffddedb4d6242835487826ed8e371023d8c62fa23ee2f95751a92102b827ab2381c71370429a4a SHA512 1f25f4793f4b328a3ac32efdc10e36315a009523abd13ceefc0314ef0aa88e1811cf7ef95e17ff5a3ddd4a17008d78c4a2eadb2a4e374d54d6afff2183e11d1b -DIST firefox-128.10.1esr-lt.xpi 585995 BLAKE2B 13f6dacb5c6b5be8eb16d77d861a457b83dc30edae12b1b9aa364f1e1a9b0b8a60548715f3f20b6c48870718c6374580784aaf2bc778189fee3bab445d42a959 SHA512 71f787e71a25c3c0dac7e7ace704c5b742a37bdb7950b4b46716ce0f3341c5aa7a2aaa02741a6d0518637901bc334ec56ab1408641205ba18df553bd9eb5d077 -DIST firefox-128.10.1esr-lv.xpi 595100 BLAKE2B 7756c55399387c483720b6be3119dee7f65ea9ea3fb09b8f82a11745660726bbfd99b5b43951991f10c616e211e09abb03b3d37559136440a5206a067e03476a SHA512 2e66664a374d32ba09c374f7dfad9b0e7b6ae977da3efe81e6592525e81e3720a614fc6bc8e737506c148cec21f6d67f7380a863de5863f82eb1a6b7335a798c -DIST firefox-128.10.1esr-mk.xpi 511084 BLAKE2B d40afa43f82708c76290b430389723256826942c590b87e924c41cd44dade555a58e1ba733edcb505ef48b32ef36884b6b7f308b715f944fc6c419d7e45d0bab SHA512 a05b774706390e5fea01884f1abf0619edacfc3c9547917bbbb3b2d5bbf774fdbbf136180e811788305b9ba5efa6026e2c02fa6b1f517a64c601550ad6017452 -DIST firefox-128.10.1esr-mr.xpi 552805 BLAKE2B 27ba8aee6bc6ba7ec9475587c13c34c1a72b37b497cf47127d88027331bac468807d021420ecb38ccfcb0454189f0a2a3a3076138d1c1ad5f8de27f922203b9f SHA512 ffc90cdb12db670716348e0f19558588844434d115ef8ad2e7b7e77ee7958169064f0103024e7de29a3445cde5908112d9051adec1e89bbedca866a582749964 -DIST firefox-128.10.1esr-ms.xpi 477959 BLAKE2B 82e8f6ceb0cafdfe99a34861128548a05956923a267704ae86d786362a61f85b7e567f98aec2fbf4a312a2e6fad74c3276d3615feec32493fe53776a7c276674 SHA512 9401bf8c4a2ef4df255e21b753bd220503a37d717076eb70d69e8d4a67e6e7d61dd9bf2ea7fbb9291aa405fc2fc42e98b38fd740c579acaea1aa945a2aee9429 -DIST firefox-128.10.1esr-my.xpi 540054 BLAKE2B 0771b62384e1e1493bb34254673071c6c8c7c4946643937c956cac10bdf2e58180710bdc32d07db455d02c4c5ed6ef959f05a91763d955ec5619567d78ac83a2 SHA512 93a9db1ba6e1ffed374163774c1c66fbc2cfd98cc60572dfa259f71f5d8c2b7f894fe9bd12caab24fe85ab3abdd34488043c06e0d9e650e60f31e3df7fb8a6f5 -DIST firefox-128.10.1esr-nb-NO.xpi 627681 BLAKE2B f64acc34efeb9986fa42d73d36e0cdb29a4db04008740380c0a5b80b5a85b3777cbdbbaf0e8a4f5222a45ce84e6ca86aac6ce0209707f76bbad96401dc0cc32d SHA512 906eb3656dd09c93b870541e6202e899617282219f97e0fec47db881bb07687ce4c119c2c4207ecbf5e828e50e96350f5aed9d9f8e826a17d70f492e2874746f -DIST firefox-128.10.1esr-ne-NP.xpi 543822 BLAKE2B 04522ae3a2a23cbe0c8506dc8b2c113bd2e9e60b2c4d5270b9b0366bcfa668d9665ffe30fbd977a01e6dfa29fb1eeb834ef47e909aa21c1538b3115eb95a19d9 SHA512 c7e309d254c4e986529797aa6424c6d302357622a39e7ee4950f8f1912f9aafee713f6c612a1764613e3e02a3c0f7fc3cac6b6a6ea850dd5b6f93c5e246ac2b8 -DIST firefox-128.10.1esr-nl.xpi 645177 BLAKE2B 665ed156a27d9d234555088c0fe23c4887dc6d75db747c7dab0be1ba8a1ef0c50d97e15553b7f819934d658f248fe1a62a488307d29a4b482cfb1f9606161b89 SHA512 ab827f5769e81c258ae38b09f82caaf0c6ec32f7a831a1158490699c32c651167ec8f67d27fd891c2ee91ae900b6a68cb4a4d1bfbffd4cfa6269993cab77ede4 -DIST firefox-128.10.1esr-nn-NO.xpi 630282 BLAKE2B da9501df8a52597aa1a9e9a112b9144ecf7d585833ed24c13186f3173752d7b6da6d560af5e999abd3c63a4d2ab5f68560d9bf8e9997dcd6413f79200458b147 SHA512 3114380f7666235a1fbfc0edd839df1c6832458f1a3325feff74cd2a98928b79c69995f6b7bff0fda4116a1cb21f18578d399d08675a814404c7fc8dfeb0cc36 -DIST firefox-128.10.1esr-oc.xpi 626828 BLAKE2B 38747edbbe0d770baadf1de5e49bde57b40ded1b5dadfe52a2261160d76570ed7ccd03c976b5b236008f6ddeddc3d3578e5ab97534bf0b9a9f846aa2b1d8eab8 SHA512 e91e6d1aa87489716c20a2d313a663d3638b9fe7d1d6a86da98b546dbf4a448a8c7982fc827d86bbce64135dc3599b5488dc36bfff762724591a37cbf8b72ad1 -DIST firefox-128.10.1esr-pa-IN.xpi 726719 BLAKE2B 3e3bc269a4e2dfb879859907febae75f5b8182f8be8554d348a773c672bff4c33735f757b63a7dce10a476837d80d5b677ae5c220623afbf683cab8d1e5bd7f2 SHA512 3824544414cd8ed5b3553359ff56c6c6d61738a7eeb8a3cbce2265de9865e769d7c0bb7d02b3418dac63f386b2878d83e1f8bbf02d6306df6903012e12b1a9b3 -DIST firefox-128.10.1esr-pl.xpi 669243 BLAKE2B ca823b68dd456e32ee36597b9cedd7d6f97afa042061a8369d5f65bfc219817a30f18005c578c832e81736634dec0911c643f7f4a137a84b4902179447787961 SHA512 d0950093e0dd9a03777b8df7700033bf42b26904a50014782fb493c0d3bb7ff4284571995967e01408a792a7f2fac1ce8d06db6f7eaf83c4883af9783ca51fbf -DIST firefox-128.10.1esr-pt-BR.xpi 650222 BLAKE2B d4a4ff287b99cee74e97be14749ad2b79ad7a8680a5e819b9574e6a70103d310c6ed5bdcaa260a7d4c1e0bc0eb2d95797bfbc463929c715291fb391bf1579428 SHA512 f4e89859c82935be9b5ae22f458801adf861caccc1a19d13cf043708b2a58bc8d248511f91be3798571fa99cc8f00e76c51e8cd35fe0bd227b541d9f70990288 -DIST firefox-128.10.1esr-pt-PT.xpi 654869 BLAKE2B ff49dc41d87c6d4030ccdec404354bd08faddd32ffec6fca7d14a975e00784d64c42e836a9cc6fa75551ad3f9b72eb7220282694f1880214569b6fda9419f44d SHA512 4b227a66310cf8bd9862175ee6f01649f68e476b3f854c577f2d87833524380204206c9e564c24576b00e62738f6885e7db0edd1d9f8eae1ae70bd6d61bd8262 -DIST firefox-128.10.1esr-rm.xpi 646696 BLAKE2B 358b469f0da51fb994afd92c0085bb8e15da008ccc4c921375cf4755180f517546e97df87b76e6acaa805585b91fd0feb8a99822601ac1254b51317ebb60d9a3 SHA512 7f0c3a25c8d780692a51c80b3ed72bc447b5425567abb984ebc5837ea74d42549ace2c7d1266683033312cfdaf694460e9c2268715b91572523659e33e13f66e -DIST firefox-128.10.1esr-ro.xpi 562854 BLAKE2B 4c654c2d96a90029a640a49a6d5c018b02db232d5bee39a7e41cec3a1f5afce1939a46db911dde94e7a0869f6ed63e56ec45d728e31bb7654bca7a399655469e SHA512 af6eb240618a9930f6fb99a3c4e141c53e04b605d244c2c93a07e8c574b179f82c66ad196b564df729e9a118a4e33bbc2e64d8101e82750440e2f443a8410112 -DIST firefox-128.10.1esr-ru.xpi 753068 BLAKE2B e1ca5884fd6f2a59e7fbd2a70c1d8637c9a4c4c8c7ba9da43cd8904d46ee152abeb6bc52af1a1ff7a15112dd519e56b6c66594a09fc1bd3a2fa32c8ded612b31 SHA512 e90ebec3950aa28a3722b31fda965a166de709d9db12b801957af354bb0300f0c94f39816788e5f5a6fc3a67f8952f5aacddc3c8e321070b1d0a521873cbca94 -DIST firefox-128.10.1esr-sc.xpi 604294 BLAKE2B 419984b47d4cf225e2a85941152050c4852e100feae27be8f86ab4371eb56dc0d6b6c39a7e732c2ea3e1c2a477cc0d261c018ccc5af2abb6d0f7e7498828cc19 SHA512 5ca9ad02993e467787d54eaaac2082f168c982d97c0c7707612e14c5e1c502fff97ddaab46d74ad588d0a3359e9c71bdee87cd5fc18f1bce59e27e6685b06c8b -DIST firefox-128.10.1esr-sco.xpi 524657 BLAKE2B f663fe0b0207aa7953f7d3f20546752a4d6d0f8ec919de04e61f8582ed961e718f7dea1e861f39416127bb21e8c08f770ffc2297296c47f3abb36363cfa1d30d SHA512 97903bad65b56d8e1547eb2b797afced02416b17c8f5c2bbb09a36e54105f1edf2312c2f1d6777d0f8cf262cc4bbdc88be24d08fd754431891b1ef4cd7651331 -DIST firefox-128.10.1esr-si.xpi 628189 BLAKE2B 66f3f298644c19e0babf0225e38fecf9151ec275f706648974b8e8ebedbea60fa4dc9a0317d09cbdc2e94cb75fe7efaf049bd19d2630ee84a534834118b9bd78 SHA512 f6490549b7b8b46f76ec56a69e7a9cd8349944181374eabf7c6a1b7dc7ca47d1f5608f7ae822cba481f69f3d6642e2c972dc3f8a40d47941bf8927f3b8b3cc22 -DIST firefox-128.10.1esr-sk.xpi 682224 BLAKE2B e2753ba3bed81794dafe811b9aa8baa61476fa722319cd2816d0b26879348a1a9a4bcc5c3cf5a79b078d0763e576eb9eab583f1c76ea05d24f8409ab95037b64 SHA512 f2d70ae6522cd1a8caf320dbee9f2948ba5ed327ea07b6873c119cabb00995f4e6f3e89e423710600d057af80b131d848ed9ef8c2bd54028edac72a99b407176 -DIST firefox-128.10.1esr-skr.xpi 726693 BLAKE2B 4d6b1d531ab4d424acd9514eb19d95bc3c86e7c3485c5bf1be7e645b302cc171e63a8285afdcaff26f14cfac2415aa63b81db1cb5b2dbdf3f49639cbdc05979e SHA512 da7265cd1b54c456cac99593f56d804042f0f8de9f67652fa93368eb5afdb0d572a15abda10d7dbcc74c33b6e61aa6c5fbca9305c2391cfa724ec855174a426d -DIST firefox-128.10.1esr-sl.xpi 649037 BLAKE2B 8b6328deea3b6131886338929ad78092d7c2686dda6054bcd0ec637de6f08df5eacb080983ef1bdcb83fc7161baf248c3bafb8dc74162adc221d3ac2074c8789 SHA512 3b5602d2fae66eeacf369d207d3fa2b122660e92c9ef776b9214242bf818a05651bf4e9020e38bee715c4a58dbc58da8f1cae322d9a1d7e80a81d40986be9a2d -DIST firefox-128.10.1esr-son.xpi 451694 BLAKE2B a6e55fe3a866a146902bcbe986af69b06d72f713f097e54115bb5256778a5c3b22691f83b71872c2b6a2e04a24cbb4191794136420962b8fe46834d560b72dfd SHA512 e32ad75d8d95058097c676ed2aa07a7697a18fb93a3d32ef4a7531add4a3f8b9eb654378fd1cfa949d79ba26cf5b66bcaa5ca97a4866a487996b1e94539deb5d -DIST firefox-128.10.1esr-sq.xpi 665750 BLAKE2B ec5ad69564ea658fadd5545be123e7893dd04ae43b19711706c43e4164baa60a859ee576af39fb64e91adbd303f2fc51206e60d6e38551dfda75f350625b50a0 SHA512 fbc61797f4573c670e71c45a4a994fd2eefbe724f80afcb9bd7fc1d60e270e452ce98966764de98d77af70f659efe594ffb5f6321fb1d96391c67b86dadbcc87 -DIST firefox-128.10.1esr-sr.xpi 678428 BLAKE2B 94b0020a45731a57f5518f43138b07684ee394630cdc15bf8d5f86c956368d1e85f3985a3e30588c74a472da6d312a2d938447d09f4e06e39787d31a32eae447 SHA512 993521245c1c70e9422f5ea89cbf0ae4fd95fa46b1ab23d6f4a746d20aae3ffa12fde94a51a4f1b169559d036b6da4f964b94060ae6b858babd608edd85debda -DIST firefox-128.10.1esr-sv-SE.xpi 646483 BLAKE2B 3c4cf87b12a16256d842861fde9d9714494a92b909fcc0f6c87ca9519f12be31a13c9f05fb10226d922bcbb51d00fc69ab7964a008d62753fc9f1edc4155dce5 SHA512 7b24b7c0f4816c24e0ab7b7b4865033cbc0b6f905beb92a19f77e45fef08a39e9848731fdc70f6ef47563cb37350c5f1ed12187eafbf5d99fec1e843add167f7 -DIST firefox-128.10.1esr-szl.xpi 541720 BLAKE2B 93c8557b912d9aa67a7705de286576c7303eb4ae01542cf0474dfd007254a2b5266507fa7ced6bbe1f46c112a5e975de885cfd8c41fa0d33ff5d9da797db0286 SHA512 4094abb3559815e96a0de27ae08e442a32f42632516cf3a0dc9cb4671f158c742aa0d88ee34f62913f76ce35288746208b84452cf7afd4fd5f8f98e8c51e1e9a -DIST firefox-128.10.1esr-ta.xpi 530530 BLAKE2B 5c4d902fbc306088984313bc7c2f76ef039025f88458a6653b330592f0e360f1ce5261feb9d09a32d788a43cbdd0cf7125136d55dffa49598993e6524171a458 SHA512 3feca25fcdc1db8b9f42d9a9e13d5f6a2e50135c92fd0ec8238d00a5aa8f91f2f3834180e97805ed58db08e2488c5f78d03ff86e4b9b61273fe154f6d3622488 -DIST firefox-128.10.1esr-te.xpi 583135 BLAKE2B 46a25996c71dfd4266d42044ac43a30bb565db8ad83921f946ef69a24991c8bc31638579242c14b3fe7e39e083ded15a6bb922fe030041cda2e7996e3da3911b SHA512 ac7a408fbdd78215f50b231e1d4c58f784ee231aabb58e499ace409bc6476aa8f857c8c3f9bcee349fdf5a9bf03400295c21b9533253224fe2b3dc1a308267f3 -DIST firefox-128.10.1esr-th.xpi 728449 BLAKE2B 6536c0883a86c7553fe20f094e70175ee03b747ce31a2137dc2e92cc64ee05ce3bd2a4acdffc7896664e040d5875fa04fc5da3c22118b6c7fb4d7795fb4513f5 SHA512 db97df123394232e6e9641012412d1dff6cbafc1ada2fd9c9884351ff8b3bf61138c16908bd2c330a540757e6d00c81af8e2efd13a2265ca56aff8ef7ceaac13 -DIST firefox-128.10.1esr-tl.xpi 546947 BLAKE2B 1e43008204d6d56f91c188c242d724df393ed09341c1fc4a963eae2201653d457a995f6144b21971993d44413be3a11479676ab9eddd1831c3a0c1b8f5614162 SHA512 79e9c11027ef4130a9db2091f5e7fd8939aa4cc6cc61603aaaa2866ae6ad8e1de9b71622c75f9991c4ed9c7f5f720994c0b96f71537b0fa41c09418272187d07 -DIST firefox-128.10.1esr-tr.xpi 659465 BLAKE2B 446aa7ede5ebf238f723c236fd48ed4ffad5b334efc277e8510389046dc419bc4032edbfed3d70dbc684a13cda47a6bf201f64cc5faf31b77357161ef339e06b SHA512 3d7382e014c25c020488799b290b8d640d33f8d2b54825698c814cfee4c72db9b77ed0d03cbf7345c54e92876f5943a0ff9743f2c8e13a7017ddb48540a02f98 -DIST firefox-128.10.1esr-trs.xpi 522149 BLAKE2B 6a8ec5afe1392b5fbddf9d723ad69c65ed3e17fcd352b23fd920f6f9e737b131ccfcf4898c73b985357f9201c738964c5a55b2edf075ceaccd6e9cf873be13f6 SHA512 95b666637bccd027baba59d2183c36331a90b48c2fbe4c7fb54542b727584cb336c03b21433f0106ab50db65a3a8366c675e9b2e81153580bfe293dc7b13fc7a -DIST firefox-128.10.1esr-uk.xpi 744002 BLAKE2B 38d18cf4743bfe213fc89359ba08efe721408c5977621d0cadbf1dbb5a3e079a213c7bba023003fce150357bec77956b1ba2c468e81980eb09f26777ec632500 SHA512 0227d555151683b5e5ac23ae7842b529d4745399d0785a8ac854c6582a8194202da6708c1583f572caf4ec5f6db7c75d54fcb9f516f1a75243b866fc50ec6947 -DIST firefox-128.10.1esr-ur.xpi 574500 BLAKE2B d95636ace6d7767bc33cf5babe5b503a68c55594394c78dede552b65c646c502b60ecfdc403922a38ac685bb3c334578d01533017475990b009277406e2930b8 SHA512 55e4db8510d431e645adb6b32fc9afa518a9405754c9770c6c133600640cb6af02b8eb863d0f504985427962814729f591e1bb902aee976d437c27de78bb2318 -DIST firefox-128.10.1esr-uz.xpi 495298 BLAKE2B 9e65f681a6b704444147089a4fe3c793e0a791fb68a1b6fe7b5bdf719b19ac02f04c5ff61dd436907526f823fbdb1ab608b13c3a858b7ed6365705faea0010e1 SHA512 97318afbdb179de85a051c1fb5a428500e45ccb2e3c7636a61ee7741be4227af6bc34d309797bbe7d8f2bf9158f5cd6afa1818f6fd6d06591afff23335b79eba -DIST firefox-128.10.1esr-vi.xpi 683655 BLAKE2B 02b7ab2bca23b255efb4a1d59c5915409acac86f35f38251fda5841b5897f5ff4c279eee4b923329837228fd84281916498f9c78a071f3fb5d6c3ca0357d81c5 SHA512 8e8234ddda08f9cb26e4b053e47d69ba49a30ae4f639b920b8ba0b0026975de3fd290a570d5c7d6b7ca0632aa1c1dcad4ca832089224df3132f30a70b1c8cf89 -DIST firefox-128.10.1esr-xh.xpi 452428 BLAKE2B ccb66d656fa2b733da41baeaf42dd8764bfa8a41c91ca1a0e77deeaf0b716c21331ad04fb69ef85102d882db0276255a3103774a72d5e54aa7f9e02fc8538cf2 SHA512 0194cc7c282515b3cac71974b14847bfe9f2c248f1c49a13f6bbfade6ddde4b37c0f7683490906f46edaa2824bcec58ee35d3fb369d2a2e0b7e009662f3c1c3d -DIST firefox-128.10.1esr-zh-CN.xpi 686333 BLAKE2B a5c159264033d784c99507b8d12e5e3504a6b8a2b547ec17cf2e669544b67a4245a6c2814c20af660a6045b8268a9bf994f8250996f062d21d505580696111b4 SHA512 8af1272402a96d3d472dac8630e6ac7ef1b55e53dcb6dfee20aceb083294aceaf50ed3b7d394a19168c5314dc736da1a8d7f14754c827b65da5b93fb32e4f871 -DIST firefox-128.10.1esr-zh-TW.xpi 689143 BLAKE2B 9842f49e40646d41b2222c099eb271ab5b59af365a4616be84c11e18ff8451e04f2505c2f1b4f01468b77f46d6ac88bbc1fc8c00c243a9b4c1e2c55fa1148bc2 SHA512 3ebc37ff47f6c78a0a86d8d024520c8251ea821952244e227a6184ce102507dde5f9323f40ded01220a6c480ff7296d8d89ab44a5561f8863ae00155f7749d98 -DIST firefox-128.10.1esr.source.tar.xz 568752664 BLAKE2B 6fe2da50fcc49ecd1304bd167fd73dad312ae9364ba7a33fe9216cb4fcdb6f806f637dd6aa8857516fd516366c31e19a6120c56c6568f20b2eb87bb6b5b84fff SHA512 6e7363d8cbecda1cedaf534ac10dc046b5f515399ec754492357e8a558c61ee3389f7bb90aa929dbcb4d6eba041ae1e778a0a8f90aa1e1f939eea517333b6c45 DIST firefox-128.11.0esr-ach.xpi 482256 BLAKE2B a05daae8a4341e986aac6afb7ad09c8ff2f162e463574d25ba9d4cf46837094c0608a29574d0db58927b726d7dd72b0e1fe3e730786fef862dee5cfd12586b98 SHA512 7108ab823be6828f3469452d3d1f93d93663135bd5cc659f8491e2b345b5d4cfa12d1df92f9454d81d43a2c42ca9b9d185ef7e6a87963a649da293582faf5dfb DIST firefox-128.11.0esr-af.xpi 446599 BLAKE2B 04a38f557c66b491316fa80356842dc4e0ce47ce5ea84fc022e91924a9376c11c9daaae956e3476cc4e0ec7be892f080f2c4b35e30b920ea9dcdc3d42ee90daa SHA512 619534f1d14385f17e19fe6d3cc13324cc998b16cbd5f3a40d2e25d134e686c7ea9c48f5549756b20d2be327a6b447c59be593685b12be76c6be9c25f6e8b4d3 DIST firefox-128.11.0esr-an.xpi 526060 BLAKE2B 82039e6641f2923dee34e2b325dd31e17c51dd17f7b00c152b10c27a8f20fa3918fdca33330c7e171c0f1e498d0d1b1a5d54f2e227996c5fa6d381cb3b1e6a54 SHA512 30750127514b0d990d9e69d1c499e4389e0793117ea9b5343cc36037f3d08d40577a1e2d34b325a1e3617640490e3864a93a612a3f6ea38f267f3b6c4d399f97 @@ -201,313 +100,8 @@ DIST firefox-128.11.0esr-zh-CN.xpi 686330 BLAKE2B 33e93f2bc66b2f9098d32284f74e91 DIST firefox-128.11.0esr-zh-TW.xpi 689140 BLAKE2B 92c6c66db406c6805b88902b4f22a8d4346c403818e74e72143f393992eecbb129fde3bc44825380bedf2b48d1e9c66c5fd28910f55579be0e03999caee65a28 SHA512 78b1be4c75947426ce20d82f3dd22cbd6b34bb1c6436dcd58ac2e8ce39a54dff8fe42ddc13c215e4c77dc6fb04a97e8a1191e423d5c53e4b710d97d54a461b50 DIST firefox-128.11.0esr.source.tar.xz 558920388 BLAKE2B 698828743acb046589b5eadaf7699d39b170c8e9491585e9704599e3a7a2519a3e5c516a10b8af9ffe425319b6c386cfbcd6694c8feb309c702eb7e44a9a2c8e SHA512 80af64c1dce6d7a25111480567a3251cc2d1edce00acc4d85bbaa44590f5bbf4c0716f9490c3ab8ef1e6fc2bbabb2379029c2dee51ce477933c7a5935092d279 DIST firefox-128esr-patches-11.tar.xz 18696 BLAKE2B 0f35eaa29f1daf9beb09c7303b3e92676eea84337683b8f7393e8b52e36ec1f37683a050e1e8d7939ebb1bdc190acaac887bebe88812c1b64785e38980f18be3 SHA512 04bf8bbf3c4e7901a6681fec66f179f797615613be838cf35a4b03cd9a347656b1264524ac7355f0c3978a5e740ddc5dc438610e5cae6ffcad73a8988cf0e572 -DIST firefox-138-loong-patches-01.tar.xz 2948 BLAKE2B a88a68418b747206a50b3c7d90c447aaa2a3ae762d7d5d32bd03f3af59d0b9051c278de8b293275758844560f1f275461afbc07e40f449fe5060d47ccd5b0938 SHA512 cd80714cc7142edb1a3dd83a7ddcb11e65f6b3ae2c44c299a6ad6a7636514cbb0ba8bf95446553c028b3a80713825110438727c3308c810358b2483af3340a24 -DIST firefox-138-patches-03.tar.xz 13284 BLAKE2B 825aed6ebea3a7c48140f9e050662ca07c93782dcd287c1e61e7a62d715fb9689820c283810f608a80a5221c366fb54ae06f41df16b317b010e17a014b2fbb6b SHA512 eaed91f322ae6151605579d4b1189e217f881a442239fd887d268dcb1a9d76099d501abd3ed16248ffb0a415214974a340dbfc47756a062cf083d5e57a6c655d -DIST firefox-138.0.4-ach.xpi 295294 BLAKE2B 187cbe1582eff2a7f08351f54993cca272f149724da4e7b6b8fa132cf981ee9d39503c8871f2fd52ca3e8a86312f0787148591dee71e1bd10faf9ff8f59e16ea SHA512 7fe8f88df302506406112ed811712af7a05d48a566d6799a8062f967524f2052170aed82d28f9cc258ed048c10425c161fab9aac27568a6eda6dcc421de7f318 -DIST firefox-138.0.4-af.xpi 267279 BLAKE2B 7d3bce907c61b17718001a52b54bc8d94b41256c31da85278a91a8bc4a6c1e762417057371609060e259d7fc95b5a142569ee2d572329e974189943a7e848e0d SHA512 f0053026e683a71f2dcc45bd0ec0d8e0b154a785b515abf093e7e3d0fd3dda14a0bed2a1bad12493ae1595bbd092d59d16008e1086586a01796a0a27ba954815 -DIST firefox-138.0.4-an.xpi 333081 BLAKE2B a6d2b90f473ecf8911178f8267871f9fba368a9df26083455d69c80595243da52cf7bd3c16403b58c6a8a56078a86ca9a44b118d8fed38bf0b04281aa69a3dc2 SHA512 32fc0546fee24c9835dee91907da6f7c850c9e8ea65ee73a31b8444534607bc77d32fadff676a73fa9d98f6e381c6269fc50842e8dde6f7c6f80da588d8b4baa -DIST firefox-138.0.4-ar.xpi 437191 BLAKE2B 178149d062c7076d549e51058297af7eb65972e169184aacca626b97bdeb947e8e1544f919cf6cb1bcde2b0c6dc25c3b8f73da7898783c082b84626d00026457 SHA512 6c85cb962d0b921b0a2d04aeb65906d16c61d4c46e753580c2496d34db74d18ca8c99f84387ef77f2fb7613a20b2016cb6296f1cc78437ae251068f36297e498 -DIST firefox-138.0.4-ast.xpi 313955 BLAKE2B 5d5a6aa96b5b7a1154c0bc427aed9c66ee4830a4c35a6eff3d4a938a1d6455fb084cd91337525917a0c43b54253ebc1db1e43c6b51e12818a0755af3f20e890e SHA512 c5250aa6d7d964a329958ea4d83f7788f8866f58976edf49bd42d3436f888aacebf5da8a462a732519b4f204676481f4ca20b9785ce2c7fc9ec0a8baea6f726c -DIST firefox-138.0.4-az.xpi 319121 BLAKE2B 255912d033eebb672e8ef4bcc602c86c5e9255147eb16c02caa026525fd67084cd4c5669cf557c05c1ed71585eb5ce9f5cb98065705236dae041142c30969f97 SHA512 088765aaeeffe2c67be9b3629fbcaaa3391cd2ffc79e1af5c2a8d5d7fbb3cab26547289c47884014d6dd4ff4b3088b929cd8fa50cc71b14533158d91d10476ad -DIST firefox-138.0.4-be.xpi 515963 BLAKE2B 9436aa429ff4ef24fe38ea66a02a5074b23b345727201700b7e785456e44eb95fe19fd612bde3ba32a602ebefa5804b28eefec33580d52b43bf8b6bb9ed1fcaa SHA512 9f395077051c264a88c59325db38abac0889a54ed7a40440571240a1cd05950a94b10e66e652753f8b90a477b53d6a831b7b0c1ee32b9123d93ee6aef862db3b -DIST firefox-138.0.4-bg.xpi 448972 BLAKE2B e7d391cd99866631c82cae50be86d84dc7a24768440bbca0db4d5a694ace1af0bbe299c5f8fcf544e1956e04702de0ccd283b2d0b44842ac5339a64e1c3de15e SHA512 83c6295d9a295fb3d05987d10997dd62e1df9481a660af766683918c0bd57f3af7bf98af15fc0b6ef73505a8dc9cf6ec6d999de84c12bb55dcdc880f65fb2412 -DIST firefox-138.0.4-bn.xpi 413601 BLAKE2B 60f686089f8fff48c69390c9c2b0b3d16fe3430d810d008f2936863a6f4c2ba1d4b64f3d46bc2ea73e7fb8819dac218072972d9d329c6ea3684c3e184920e319 SHA512 4a3959f5bd7e84f9ae9b4accc8a6dd2ff770e1500d3e7a239bec02be8953c4c308e6bfd368ca33edcc2fbcda95a65e5391929a863e2de706e96c65ef1ca2d5b0 -DIST firefox-138.0.4-br.xpi 394173 BLAKE2B aca77527cddabb2a91d939645a950b3db23724e195d0e9a5dd383dd14ab73bfd4a2cd20982ba4e7f28027479add1e5d0765ec83dc772a4d68524a1d92c408344 SHA512 3daefd36ec44cdb2240d9dea4a9cd67949833ced2204c53fb32fbd0816aa00fe6c0a61e24a90f553e20928e3b211ef6ac9d575d0ffc2165af37cb9fb907557c7 -DIST firefox-138.0.4-bs.xpi 364823 BLAKE2B 80abc4305ef580c939f7903a9877753d810abb2829c6e9083db5e70670905f7cf6fa40cd1bc0edb546cb4fcb20edfd791e53f2963ad7929e2b352e36ea118fd1 SHA512 877c439794c6653708450e6b1225dd23bc06b16d85762f856d4e917057fd29bbba5191ee714e4804703af023691ad358b05f0d3b3354d21e0613831b1f00558b -DIST firefox-138.0.4-ca-valencia.xpi 359037 BLAKE2B dc8727736889fc4f539bd0dc51236e6983f6ab0e701162a8a6060a77dd90208c40dcc3033e668b5abc0462ee4fcd6cb91dc9c31648231737125933e424823532 SHA512 408f69e13f7350dd4afb59f5397ea0a6b6cd044a66462de426214da1eebac9dda6bdce7a1a84b89f716641a6c762ef3f03583252015f1a6e27caef9c428ae86d -DIST firefox-138.0.4-ca.xpi 402155 BLAKE2B 1ba959ab306058971b631a581366e4951846d57a585172a3034f84eae584bdf983c65c7b809df90ed922095c3b3b76e98a0146d676310ae7d5dbe71965bafe08 SHA512 cd22fc7706e2776f58afceb66a1c8a84658e471286631e718de8354aa6ecfbc306dcc36df7d731e86bca2cb0b72b51559bb625c24d95cbb893ce9c741f2a259f -DIST firefox-138.0.4-cak.xpi 392706 BLAKE2B 7b6656d91ad51103024ee7e74e569e77ce55f7f0eae99cf3ff4a3c768c15a420c9502a5131ae43183b579b622a1044021589cd2c812b96fa53e8b7fae93a0438 SHA512 47387ab8ef5d0a7f13b742ae98a12379142e24d29a9664b87b746fbe4d63260ad52d0b9512352c6c0db0239595edc383a5052ef01626166160940ff1dd2a3ce8 -DIST firefox-138.0.4-cs.xpi 475090 BLAKE2B 4d8785871d596d79be0b3d889baf2fcecdbc6db50f4a57e40a807a6d2fde6f5d4cf7e80c0b68557c1eaea7003621b82fc23c178ba2d9efe81883209d71fe28bc SHA512 07780b452a1658c59bdc88a8226e5a3b2dd5614902d4b6cb932470485558c324736489d9818ee92a24d8c33c02214af094fe40810df5e057505d81aad9da756d -DIST firefox-138.0.4-cy.xpi 441393 BLAKE2B f3a280928b65536f4e939019dd5513d912456eea7092f507cd7dd3ca19132149ae2e545479340f00fda442c0a2d3ce7de1ba580d25dce639cd94f9fe023a7798 SHA512 17254cda04447389775069cdf0fdd32253d50193312e1f56bac63ee63d82a1cfe6861aca0fb100cb858f927c46aaf317202c29fa2059cd324806b2372b73a3a9 -DIST firefox-138.0.4-da.xpi 430738 BLAKE2B a27051f892f0a53fd3671b01a8af983b5a3575f4caca0e2f15b8c34e359343e158afcfc32e1acd0522edb24115630ece7cf880df34a279ea1b2eaa70dbc3ad8c SHA512 34ca36e9af93f9cbc231d9a54d20e25cd230aa58fa66b87501428e7c788676dcf10f652ef4f39fa11f26335194609e01d9f6211e4eb403887b909e26f308924c -DIST firefox-138.0.4-de.xpi 452223 BLAKE2B fb8c1f1d1222e2dd85c05e8c87399926f982e9e78e70b2a4ff447b654a9abb39fdf7d346e182072bdd2f9eb1f0ef7566e4e23977ecdc19a04ca4625b10c83d7f SHA512 72b048adfaa5ae6886a4ef5a1b8f735b519bd2adc65b66eea9c3137b3417a059b1068cbc8db9bb9c5f3c9bc77c4702dd729134ed7e03d64059658571bf4b0175 -DIST firefox-138.0.4-dsb.xpi 465484 BLAKE2B 2319a6c741981e581f4bd22bec45fc71051d801be82d16f67869aeb17dac64b41e260a46807f83224e207dff70275dd24db877de831ed7c8a9bf7e59842db222 SHA512 50e714a6822524ebd1a49be5fc4c424593477ce83a5f5487d8946da4eba1f8470c10d636aa031c380f76c1312f68667a2dd8e32487e9536df87e0f058c096185 -DIST firefox-138.0.4-el.xpi 536321 BLAKE2B 75f8c1998925d78c90ca75eb8707fb005e2ac6be2c56019ca09470fe4efd421f6131ca24a65f94d04715916368b8ee506544c283002aa4f545c96763fc5387e1 SHA512 09a37d18c359e041f0765d4567a225c66f7b039a10e8e50367066b2f2e301f2b767cc3a341a9f502d2c7f3b00847d0e118a9e0b4588486bdb199e0e6508ffffc -DIST firefox-138.0.4-en-CA.xpi 407810 BLAKE2B 23a0a85a34f9dbec2e370924f359c65e924ca7dddfb2e6c8d5aa51e8764ada6ed26dbc7c7587e52029deb28af185c74021af684f54d4fc0b629ad87ddef70eb8 SHA512 23cfd394af52ce1348a10b4b83ee9e703ad37a767ef7b4ffc33f2e01a3cf05cba3e1e130f6f5fa7a6ec02a21dda1482d6784d9885fb4f8301827a5cecbb4e0a4 -DIST firefox-138.0.4-en-GB.xpi 411219 BLAKE2B 8d8a085936ecdabd3fc5c05fdca35d8bb6d74ddf107a31ed98255f9420c398b9c45036186e8185e3ab408e8c8e712aedab531e7edb6999480b91234c36901d49 SHA512 8d2e6d9180be74d19079e6ff2ddd150b00c28007fd57c06f1ae0190fa139c794037ee9182c3b847229fa6686d0cf75e86e27d6c42faa33750be5d39d9704913f -DIST firefox-138.0.4-eo.xpi 433077 BLAKE2B 967384a19cb068386e758c3cca3cbae8203b7722211f6250c7f8394331568b219b3dea41dda0710870afbc1162b561a228884dc87d9aa7ad429346caf72f2a15 SHA512 0b2b5276ab07b26e9af48184b1cd6cf3992d978d93d6bfc8498c1bf153847c0ae54fb42196e4431d1a06ce65aefc02e2e338f093f12081446a719eb5c7690490 -DIST firefox-138.0.4-es-AR.xpi 445142 BLAKE2B 9b943c7565fe3a45f0a5d17d7e7cfd65a5b3c59ac989815ac2ad6528a2cc9f2dbfe2c9038fa3814e4a6e3ae37c80c10ccf5e3aaa33bb1c6e61f08590766ebdc1 SHA512 1a00fd7faee3f952ef1235ffc55351a9e6777baae0548bf25d69314645b2351a93c5505e59ff2374d6715209f466da64689c7bcec9231b3731ac7a5b1addc5f7 -DIST firefox-138.0.4-es-CL.xpi 445851 BLAKE2B 852f9ab8f318bafeffbef688c7c8f5b092fb1dda77cba2e5012d2cfbe7028d84ee9e85759cefc4cf6e1463cac0ccd94954e11190b93f34e71073a12185f870f9 SHA512 f61aa67f19b4a2e129e03252c42359050b7e2c1e0ee98e725b40945a6ac1e8077b9c314f692e78733a5dfdfdfaec644d9485106311392fcb841cf2bcbac8448e -DIST firefox-138.0.4-es-ES.xpi 446613 BLAKE2B cded7062363a3ae225b7305ab1a0fa87aea2a3787eea3ed1f1264ffc619884fb107f85cf6d48a48e5fc3a433b23b2cb6a8ac19b0e2450602775221d6aaf38543 SHA512 f7a0e076a95dea08d31a81db1b829b81fe0c4806e0076b14245529c1af9837c06e84d996e53533f940f67a40bf40837a2baf9bf3e3c0686dcd96aefdafca6063 -DIST firefox-138.0.4-es-MX.xpi 442562 BLAKE2B 61068f6fa778fd74d387adc066bd1415e131059d141232c23b06409f4ad9e19c8eab56b1f469535d98fbfbde3033fc85cae72823ded009795d35e62d3b9a91af SHA512 ce125152345ccfb69d7c9649a5e9b6311f4a3769d0196d072bfb6cbe88db9af3e8cb67bd411dad3a098266194048a3706bb9eccb68821ad5e78ea17c0ae99377 -DIST firefox-138.0.4-et.xpi 359640 BLAKE2B ec69f6d5981a0f739c0ad61d2911105f43b95e4cfebecd219c3a794678605f868fecd2e263eb497fd2e1d5c45b7a0cf84f8ff6e1e5e185fe9985488d209fdfe6 SHA512 baa39127dea95506495261d5b84531ce41ae391ae08a295f6ac2b7c3be31e1afde156ee7b6e72f25238afe6cf8a2b9170a5a9f37d3c3240cc28c7616bad456cb -DIST firefox-138.0.4-eu.xpi 413922 BLAKE2B 3eb2d59dd198417008d920c1d0ac541b4a5677f7bc49b817274f74c5b7764048a8cab3adde6796d0684a5936ce3455c80677a3f7ce8be8dc6bc19881b7942d88 SHA512 f832d892c9149011d661ac74705354110a194f74cdb1ad0f016dfe4d167d39ec101e22830f496341011772c52e70fb53e20e21ba6eb9b477e315640b9c3ef490 -DIST firefox-138.0.4-fa.xpi 412986 BLAKE2B 9bd7af741eadf36a1099314ea7165c16233d58baa4f2adc4d396ad3421ec61afe6a3a7b4b3ce96f9723fb05fe3923963bde0b2da5f20a7db0a82ed99cdf656e0 SHA512 8d2d0341c8b3bac1033dd9b548c862ba8578d64936515bf27defcdd7f6ff53e9ae61c42394a2f078dc6b19ed77e90b4efd6597f1c6ae641481fe284670648c33 -DIST firefox-138.0.4-ff.xpi 311302 BLAKE2B bb45ea16cb5e3f68d8eab9828d42306809fb8ee715231f4d703d7b08512175b09257fa4d1fabec8a506e78d0d0157dd4f2597531f640ea132ae49b88c5d6d84c SHA512 fdebdc7f88f9c4543354f2d4988e256d8e4a589e20127e7ba1dd4cfe458f4b839ca0d01e346e1825ffe3193f93fb999b6db1386a30915466e58b4e68181ac685 -DIST firefox-138.0.4-fi.xpi 427747 BLAKE2B f79803c3c61437e305ba461573e33fabe78c676ecca1fcccfd8badb7cad0824a209617ffc4e966041b4564de1b26d70a9446567e92cbf56327d1467ec216fd38 SHA512 b252a9331cf1d3889425d2bf383fa6f0d9e4eac8659a102be94b89ba3f43396a003ae07dc447dd227bc999f5e37bca1b1d145856e63b42edc4b0f14adbede01f -DIST firefox-138.0.4-fr.xpi 457844 BLAKE2B 00d19dd590ac6202297bdf4869d58288a2c452c6beb44715474e3bc9d08509c307d9fde356128110537f912b325c1c8b7ffff1f5e299113b82fe0a9bee668899 SHA512 5ee8d3d867d0ae10cb0dce9a9f91617d3e91d5732b9dbc674e352f9551ef637c915a8cc2d7ee84c302f3ee21b3b7cefa9ac88df8867cab0a16b24dcd741affba -DIST firefox-138.0.4-fur.xpi 451288 BLAKE2B 2c060c4d671713a3796551bc01a65e5275dfc5f9831248bd7b5cf0d3631f4409cedbfc162f753df76eb2c878aab42c886e9462804d9783906ff91077ab53c620 SHA512 7e750bfeca12275138225d096e3cf5bea6b44c8ebf03a9619ba83922c0dc8e6ed65a89af11889f6f81fd11db313e00224bc4358afb7176e0eb6b9dc7ef22b648 -DIST firefox-138.0.4-fy-NL.xpi 441763 BLAKE2B c0b136982f2f3e69ac560b6bdcc29a35ff825e8306110795c549d71c37abcb5bf303b9b35c9efbde448fa9a6e7b3af3f6fe1fd203c3389ffe668820a6c74e8a5 SHA512 f9b4ecd2d789aff657a2dcaf95bd72fe106d944677de3d037dca202fb8afa662710b1df5242bc01a6648724c613a4a2525c42c4194c8001293e09b08737d49c9 -DIST firefox-138.0.4-ga-IE.xpi 316390 BLAKE2B bcccfd37620eeffe3d06553fe8a155612510208e13aba54995d173e6b0ae489909b9f81ece561d1ac170976b5b4c33819a89744cf632be28d911009a612982e3 SHA512 c04d5867fcbd852275a9c68e7407aa70de1f3f0e02aaeba4c0738d446071cc4d89e40c94b752212b0c4212966737b1d0d6d9ecf53b9eacc387a0d072e4e33f92 -DIST firefox-138.0.4-gd.xpi 401177 BLAKE2B 0fe925457b51d2e9708da0e42d3256356e19a318abe3bca976780cba9641c8354edc9df6ec3a4996291f55221c5bb941ff609cb3e621922c22d5d07b5fa077f6 SHA512 5e93ac3f3aa8b6e166a6edd61b6c0211884f6485b27a41a429e52fb13fd99f65909c13e1178d94e4bd4d6728fe6033827bffe618920856c3b911e2da20023dcb -DIST firefox-138.0.4-gl.xpi 405197 BLAKE2B e3604349ccff666bc408bfddb55a6021303f6374a6dbcfbacfa6674513e51c78efc97f6bcf9e1fbc0ae672fa85fc261d9f2a7c183d1be32aa6f53c5b59d46cfe SHA512 a2875c56aa3f5344a2088349980ae733900b6d709f3d3c3a7793b68d657a2c1d2da2d7f601fac5b021e8a48d5a65961a982feb289831019b31d9cfd74e3dfce8 -DIST firefox-138.0.4-gn.xpi 448250 BLAKE2B 2e7d80f18b795b7d7feefdc66898a7e783bcb0f7ba910f8f808d1b6d828a80075e20d330d2da59ceba5c9e5b8a92937c8db2a72b4eac3a5eb8af4b4703adf486 SHA512 5ef9cd6a3309b87873948559f4c55a047ceb768fd1eb0c9f6fce17e4339d47e57f0896e809f120514450e7dde65ccd41f34e9103245622227c7d5af92848266d -DIST firefox-138.0.4-gu-IN.xpi 359744 BLAKE2B 8cfb5ee99d27347d37061d3477860633d1eab249743c70770369b005eaa85ebaa6fbeb0244e294b85701b54f4ba0c2ce5b08c6353f20970ebc6f42a771b4966b SHA512 a5e44216a3a22fc0b64eea1037d8b314c29a7fdbfd87f8ee0b96e106dfa67aa15710ff4d5ca7e66e7f66eaa74b4b2e92fc9c4eda12cbcbd081305093a4a6d03e -DIST firefox-138.0.4-he.xpi 443178 BLAKE2B f79a652c75d077923ce865941cd82715aa8c852055ba8e863709f5cf76e54e1836b239d1528247260c26c91315617f6dabfe3207b56cacbe3e9a54425f43db66 SHA512 8ed33ee0db4d0a41744a05a957f6bcc0f4085eed2c62b303f7fc957b61b1bd729a34e9bd58ef6aedcad210ee843942c37c1e0174e2a01ab75fbf720e35b4e406 -DIST firefox-138.0.4-hi-IN.xpi 378231 BLAKE2B ec144575a8e5590968ce33a1367a97bce6323078b42acdca0394cd0e8690836b3190220a99cfe117b12c8c9c56d604a9e05f1846d18bdae38fc49b536276223f SHA512 4473dd47c1e35cf2529d1fb9387d140fe2a8ec51335428ca7f829018a5e4319a1ced1eff2f81de37cdfe6965b8d57a4429864ac16273587c05e4fd53aab8ece2 -DIST firefox-138.0.4-hr.xpi 429592 BLAKE2B cdac0a300e32e5a67b3d835e45e3dca44aa161814e492d3c3ea22634c75baf022d19e82927afbdd9eefbe27d5e9ba7a896f277be41724f6c761db878a2fbd96d SHA512 e4325a269215b04b3447cc0bc80f3b75ba3ebf9577dd43d06fe960a32c2f475fd0ad538ea7de8ffafb29c0796317e4651ac7742e59fa13ed802707b299f209ce -DIST firefox-138.0.4-hsb.xpi 462121 BLAKE2B 80c67ca5bacc911dc5a4c29660983ac14d6b9a5411e6663360850410f1118e1ed997a32ef40af2fc051c34e02988acc4ec475e57542cdda2add50bef6bbe4ddb SHA512 2fdffebd9603a328734cb503558b79830e94b6c24da299b4071683887481137884a11c6831e4a33d6d2cf8964a80090899044778a848a2f61ad6e1a3ab362fc1 -DIST firefox-138.0.4-hu.xpi 465935 BLAKE2B 19bbad4797b6acb70911aadba1931820af1326e93ffff05f8019890321c5034af1f8c60e76d16b9a1166e9518ae7bcc9128e01f856e31fb4aa31e59552bcf612 SHA512 c1e8a5ec655fd42a51a3f8645838d1a890fab68aa02ed171477660cf4bac0466f19ae2739521490e0c60f0e1bcc87ca2f93e8c9df735b8fc3fa0f9c08965ed37 -DIST firefox-138.0.4-hy-AM.xpi 453824 BLAKE2B eb9616875c092b465c6dfc3a91d6fc0d62912275e4499cc3c044d162b3facb1d4b6d45710c3cd6628ec0a0d4e1cbd095bf266c7ad9da07bae3a8c700a5018f17 SHA512 f37542e84d61429e29fbfc19c5cb7309f621651a5a20dea160c02fee37651ce1a5c36246e4c418b27fd871463e955f7d1ccc84a893723ecc8e6578c00f185fdb -DIST firefox-138.0.4-ia.xpi 429680 BLAKE2B a8e28ef2d4e2b85c8ad01b0dd34a64c6952d16cd87c2ac5a149555412b9318782858c8067011de7267c21bb66487ebb6c3f1746719504028640e45804d52b8a9 SHA512 764ea03906658a0ef84650b7e2bb83b0c7a556638c5889b4ef6e9729fd38866a6527db2b8885492fc5bfe00fdfa8ba0bb44f2b3b7ab90a0915dd9c9b70a47905 -DIST firefox-138.0.4-id.xpi 424276 BLAKE2B 0583e498dc8042f6bc5b049a3eb98dc31d15785bea09bbeac7ab8f8aa8d7676da73c75538d66cbe854f36134eb2fe635a5e2b72efb35b82b591d21f67c081447 SHA512 f6efa0b95012416ecf42a3b024d2057fa3924e96ff2e32fa273875c588d9d08169daa50aac40c0f7a47721fe200d4390c3e3880c441f211ac43c16d4ed2f1d05 -DIST firefox-138.0.4-is.xpi 431993 BLAKE2B 1d9540e78fcb0e0957b56014b6d90269ae8cd5c92434551eef8d8b7cfcaae6d7fac53fc320768af346191b8c22fa033a48307606d0280c1435337088a9f474f4 SHA512 e7f2ca005bc3584daf0615673bb97c50e5fb8a0f3aeb5c7ade99e4738e1a1d695fb5b2006fde964fd4326718f93941a6f9e1686f2ebbaeacb069a8ff8988ecfc -DIST firefox-138.0.4-it.xpi 440398 BLAKE2B 90a7165592337e530168e0002ca29263d6ed802a0a4f5554489f8aad91b344d5db9e4e309359125c0ee50e5b720c995d304fe27b7ac1fb146a3b8465ec0c9ca9 SHA512 01020c72c882898ff7fdfe6d1977d5ba8310d69e389f6ec663c7257340bf40680576511c5f740185a1b95f22fbab722fd5a6605c619fc06cd816e6094b441299 -DIST firefox-138.0.4-ja.xpi 480871 BLAKE2B 318c9fbb16e92dabe168c918549257fe0a4ba3353bbc055721facd7df83a90ddae7117c1e9e824f8896d14ceb9926106624d64b203672d8e383ef0278750d23d SHA512 6236bda1379c90e59a1584881e0a4a5b9f02c0f280f041810ee1b3ce8ec47688074b9418a55ebcecca9ff6f7272f7ebddd03cdb008d71d8e1e3f6c76eef73421 -DIST firefox-138.0.4-ka.xpi 494239 BLAKE2B 2b5920f9a0a5c1de514bd37842846345d3039c14f28ca62e620086d76c063c29201f34cc41f24cc9d812727d42a9746559f465e37a29cbb8f12b2b5562b4a224 SHA512 dc6ce8f94edbeba773c7986009aa97084f137c5beae48ff6ed25429e412a5016650c7362ce849ff01f4c3f329fb2f93676d6dfb3e080c21ffbb0a06ca916b081 -DIST firefox-138.0.4-kab.xpi 413558 BLAKE2B 70ab01307e6b29dca52a4be5329f102baba6809240beeda47237185a4b749867c7851bf3411adb9884162c31495d70a262d3d639438d8952050b952b5cc1441e SHA512 d2f580a0fb38f455675f75af0649729e04d57bcc927ba574f8a56efa1c9f861383135d571f8d31069df6ff1223a82cc4ea74fee3a491e08c47cd8ca6ae7658de -DIST firefox-138.0.4-kk.xpi 501973 BLAKE2B 863b30ab04940b02850452e795b45227a4bfb1c55cab68e72b9285809fdd4356b539b96526480378ffcdda00b61adee099a6cca7620021fd0f050b0221dd8037 SHA512 b0f8f4653c7708092f02fd34d475c755b31cb02b85f973414e5ca7d687b2cbb80324d50293245bfbce10f402e2291ff496c9ace6dcd0aa7f118d4adcd77eb454 -DIST firefox-138.0.4-km.xpi 349526 BLAKE2B 01500f6e69df4a98e551a57a835d4bca49ac29a3360371e5e65e3ac9be1d9a9464c77aae8e8cf4f65ebca7980a3a99512c9964b0c3df96b2158039744fa4040c SHA512 0a3507c14f61eb88f97979e2213b3cfa39bc57816fc3cb1ba772105f9d90ba37c0076746a44370e046b264ccdc4a9077d7cae729f686e42212eacca72505df44 -DIST firefox-138.0.4-kn.xpi 332435 BLAKE2B 436e12712efce577eecd136ec9dbfb923554c407d1ade6beae081da993488d32d4fd148b8a9880b679b539279a831536de8e7b3d4eee1f8a9ecb1d3eefec98c2 SHA512 f7405c25a09e5d23b1500ad471109976cbfc9bb5e1ee6a49d064ec75cb6c5c1c30f565fdfe9d1fa6b85efdaf64823a646f8f1233ff91ec996bdb62a620997332 -DIST firefox-138.0.4-ko.xpi 467010 BLAKE2B 45c7630013576fbfd5da28852c2e09b1968e7a87f9e0d3b7ca306f7ce7829f1cff31d6a079c7f452caed7335a66f9f45dadccbf02227c90c876340fcb4635657 SHA512 ba8a49671c741b7eff6425ada7305b897c651c524c24dba2c6ee173b07e3373b0c445b1e45a8e688f4b627854b183bffc73651f001915407b7237b484453fce1 -DIST firefox-138.0.4-lij.xpi 319035 BLAKE2B 5b6d47cfc3b9785809fa6403f08920fdb170fb7d59e1757727305bb27ce1e8427a232b789ded7cfa5b9762144bf7e01afc5bfdeb7a05c3d4da1fd5b52dbd42a7 SHA512 b9eb818c0fe865600fbb5ff31b496d421ad58ef0c82bcc78ad5b86fdea5f94bff75cdef4946af7339cd53bd408ce8adcf34113423853449193bc5336febf629f -DIST firefox-138.0.4-lt.xpi 380932 BLAKE2B c8e1b6c9f61e867b734de36ee23146b4a89dad1e21c39510862fd9d8dda44f2f84302199682e33ed4a294d57a77b8cbb61318b61d88ff69e43a30becc2590ee1 SHA512 f8a504469cfed7b2466f402c09690927490e982aeb5f1a339edacfefdea13ed9507f821d88931499ec0b0f4a4f199e0610596cdbb42f94acc68e35653af0ee44 -DIST firefox-138.0.4-lv.xpi 389499 BLAKE2B 2ae8b3176f7da3fa15d5d48b731ce3c0e18441e5799c5b3e5ef42af5a3a752c1e013a823e25e4a6362b756bbafb05e03a83f5aceeaa96ca308d7a3806c6c7ae9 SHA512 0bc9cbddd504fe32b7b52e558d67632c450cf1d69eb27bba7cd9ac1559d65773230c0d7e9e88d805f0de659d3becd022f4e530d2261cb7b78ae7ad279d9894cb -DIST firefox-138.0.4-mk.xpi 317499 BLAKE2B 21c677e8ba8b4e70f7c839876d2f4d2096be8b9e71673ba508a4fbc142dec931a36193199f518d9057a61423aee42428046c4cd89de854b651e4a9fe96c1f188 SHA512 0ab3b6afaaf51c68f86c7a325df0cbfb4e30071bd0a208af129667aeb629de7f47313c4402aeaf1687dee149f0379cbca1db697ff93ba5c8f4aaaf90b21e2e5f -DIST firefox-138.0.4-mr.xpi 356929 BLAKE2B b3fcb9041ba7c182386b734ec52df22977875f63f3339f10edb7ec36766d669fd4f3c32cdc329525e89801fea548d152fbb9f85ffe9e76db1e7070c04e7b1d15 SHA512 f53d527e656f724a4f0a780c491ddd2d2a25fc5042161b80c9f973efe9c5aa3f5b3c4eba60b4f47b45f1816a223884f210d4ea9c1c468053b210ff7e60cdda2b -DIST firefox-138.0.4-ms.xpi 296037 BLAKE2B 5c6f6f8f8682b6e33e9a37d27e8d187d9a946efc2265c52513ef55a9eec61e0e38a6085542819d00ebab5daff74c3734424860e27b56f16a5325af8f53b2ecf5 SHA512 926a54a1b8dffbf127dd8a5abcef4646311ebc07cf73aeb3e5d500d839bf7764c16cc10689cfea26c0d2251381a31a04da72e411676ee9c2c5cdd7132038af51 -DIST firefox-138.0.4-my.xpi 343223 BLAKE2B 519976709451fdf224aaaba978986c9f853f52d8e6ce5f38da1796c299202add7bb0113d63140d575f08a364e96888b1ea75ae914cb30a81c5bfdf9dd5841976 SHA512 9f1c40ec455e9a5a24ca4504eea0904c921334edd92aacfc9450df46e5d23c4dbbad6bb83608ef04e0b20631352b69cf0811c4fe7864f95a9111fe80a6b2f1fa -DIST firefox-138.0.4-nb-NO.xpi 422068 BLAKE2B 9f2883a33129f4e783c1fb8842116acd461656359591b4df9d03cab649ccb33473941bf30395d2348d8a4390ac83b1f50139f2099c8cba2f185bb727248419a8 SHA512 2e6321e4d20557934c1b269a67b76b6329fe608c5b7f472cd7e3b59dddaf369346995174a1fcd947e26fd84a76c37517e50c580a445fe8c5647fd74146a3040a -DIST firefox-138.0.4-ne-NP.xpi 350319 BLAKE2B fb55588e51d0674537be18b26acb2bdafe3bc1a21e0660de9cd898e90d199eabfe1d0ab3236a5857e3705d09e00fe51c0f354496b81d3252fe1bd9a38c64c31f SHA512 8b9ded2e5376bd9264a2af51d8a5bc2222a1899457a11c7d3010e17cf5a6487a25edeca64d20398b688093b59477c0e640c3bdc19d87a6034fadc7a7eb6bafa0 -DIST firefox-138.0.4-nl.xpi 435787 BLAKE2B db62a0a294d303bd4644992577f73dd829728665e174411dac5b73a725d106134bdee7cab300fcd985e62fa0690319b874d59b08562a08001228dad8d4e0deef SHA512 3a8a03ca9d810c67a35ac95e02bc328532995c62e78e7ede7c1c6f7ba930df0d3b18d2d4af87c6e1ec472a5cae7580f7a28dad95a19a4eafbec8c520880318c9 -DIST firefox-138.0.4-nn-NO.xpi 428373 BLAKE2B 7391e4ce48670f14feb962f80ed45bd0a22d685bf2ee7dfee3478f8412ed03cb28d68ee25c034955066f13b0cc5d7b1cadb0fa5c8b887cb9e6de807c284c5dbd SHA512 4650619a3fed2e80e9b81798dce243a0981c1f1f07d0b69f971e5bf9fbb0eae52ccc226fb0a8b0c9c3ebcf86aef8bf65f9669906d0ef99a2190c44a7d1df7efe -DIST firefox-138.0.4-oc.xpi 414223 BLAKE2B cc2959cddee9b44a873561a87faf2fe43a550ef9efd60a1f5126ffeb24d96adb80fcd5d2daa4713cbf2bb476bae895c62fd17e617497ba3701727592cf7913b6 SHA512 2f4a62d9e1b07e448ce38148093bd9afa8cdacb770ee7e0ccbfaddd1195da04a84284b6e279749e283bd106c4ca84f93db7ae587215db00e6fbfd520a50bb0c0 -DIST firefox-138.0.4-pa-IN.xpi 493687 BLAKE2B 27c11ffc687c19835d3cfac2d32319f3cc3dd85bd0f27cbc2a270fe2845eb970a2fb4d136d2cc533c1485fc4c0a8b9911b2e6c04a6487cfe427d236e3d22503d SHA512 5b6bfbc147c03ec2909431be04ca30f8a33a64565cd39890ed4e1df0e5187c74c12f98c2f83fe44e5875e5a60279191e8934072fce296691228910045764e6d5 -DIST firefox-138.0.4-pl.xpi 452925 BLAKE2B 1d56b042c99ee23fcec6055f118e68877d54a9a4cae7072e8b154335c40d6912f825f21971c59e3eaf0f4e5051ddf941fc550786ac1e516cda36dfca90f63e2f SHA512 e1d6a8541e17832912eb7fe778f3709137766dc9cb84e4d81f24355d9dfd751e05fce7dfd4d3df65ef029733162b67b99ea25bc8c875e655b9c99e688aa541f4 -DIST firefox-138.0.4-pt-BR.xpi 440316 BLAKE2B 4d8e2946fb4cedfa103aebe3a03d7aeb1c4721f7d757c7d5ed7f3c9cc8452e4b328798c07b147d42b882d7428b06d66c00cbec8677c8b11a30ea47e0ae23f37e SHA512 c7dac79c7f25dff09e7f81d9547bdde8e18f3b241eaba06f9dd7f84728f4cb04771aec13c6cbce032cc9bb23c78ee6940fe168fbbdcb902c5a937080fc5f7efe -DIST firefox-138.0.4-pt-PT.xpi 446055 BLAKE2B 3874bc0dac7801d72934f37476aa15a62ed764da42bdc5e056e20df986d7e84aa4b990e420b0642092f2032b6c9a83fe8a81002699cf87a11b66c4a5bce5b9ce SHA512 7ba496ffd4f39b2881a16d512f138d6c0bef6d5b6fb834287243200a79a9bca14c0564a675cef0335652e46a0e91948f3ea8bea474e5f5fad3f83ed446495927 -DIST firefox-138.0.4-rm.xpi 439689 BLAKE2B fd82b0fa0b7bdf9749fcab23690b9eb49e912059cfd5a110e9eb40c10258ecb8d4e35ff738892dbfaa11e41254fca987eba6df303f57bb241422f9d298bb23b0 SHA512 b5112dd2411c199a357417cd5acde5f0fda39fbc192de52a249c0e798f8651e04095137b150e7047d0e374356063e901c8250fc16cf98633d530ccfc79b3d8e9 -DIST firefox-138.0.4-ro.xpi 366328 BLAKE2B a28448fcdf47d468c9bade7ccd485e5be63c30e381efbdb26f1cd7a6946d1f58aa87eea726b49cecf8be33c558ea92fa66bf3b457160f201a1f0368344987672 SHA512 7eaef90213fde81b19f6e43d8706476c3b1e2fa73a944db7904f96300c0bafbf704431d7148fcb2e050ad2b487fb2f7ecf29e58789f3da7da6ccdc18ed30d52b -DIST firefox-138.0.4-ru.xpi 524408 BLAKE2B d292101fc5aefcfd600bc710eb2e863ae52acef62e23f3c7deb0a2570acddcf0ee8246e7fb9a9c1087207960fd35d7ba21be796acf9dc08a59edec35fd72ef08 SHA512 5854118aee69794de6f90a8dba743af15a5585fc940e3a3ed07b1f040df95fa84442d64cfa44b7733122db6f5fd4c225a450a2c7682a09586ab83972a3478de0 -DIST firefox-138.0.4-sc.xpi 406153 BLAKE2B 16297005337e51062210e21d50eb15873771eb5a89f37ac6573cad115ffd32ac44c35b2f48a3cc0d0e718389d4019408abb89e68bc1c1238d72ac8aa0859e139 SHA512 c12d33bff161191b98a412029ab96172eabf5fe8998185aee7aa0e9c759289d6021b66cb77bd754e1de1306b07b6e507ce47b69e74ead24240717621b1ba5729 -DIST firefox-138.0.4-sco.xpi 324596 BLAKE2B 8bc5abb15466f2657c1f050e5b96ce58a4d5f6126e26b2ac24ee45ebc0d55cdde0803b4714d12c1c51ac1d019eb2641955ab08f17cd3b4e4b3f1734eae01e614 SHA512 60be5ca0f3f33bb49fa95384ba5b64fd2671b27efbad6a8139866b0d84224f356d7fbcaf78a86c24456254b8af14f36013d7c54ef05f7f5a4f0f9ea57b59b758 -DIST firefox-138.0.4-si.xpi 414456 BLAKE2B ab0f5e7a3ae550c89d077f70a9d3cdf77bd47fe50861f60f098f85b1e7ab3dc18970ab75c84e29adfbcf901c88586c2efec666eb955f3594e8e4dead461db0de SHA512 c47c8fe02fd2e2970101f03473594b415308793e6549424aad7a045c867ba7166806a892a31ccc92fb1b55f10654814fff971208df884bfe150a25f18ae9e2d4 -DIST firefox-138.0.4-sk.xpi 467389 BLAKE2B 4c4235cf2dc2157b789878d1cb4167f12d95743c58bf54cf0ceb3e9be288062b228bd59798a3038ebf1dc7430f561294f31639757e14828bd2c5711815729417 SHA512 00ed8f4250a20cb1e36fbeb7cea1cb6698c2070cffc6f688ba5a8a1fd4cf8c870925a149945a5681356722c37450c3c54b6809b6375acc72b2146aadeea6d5e6 -DIST firefox-138.0.4-skr.xpi 492082 BLAKE2B ff37e74012798d3bc1015b90a5d4530449a03eb83b43ac09a1c452410f1082d955d37d67e08f41e262e2617190a7c2246666060bfceff0af9fdb147e91186821 SHA512 2d38611ec557d1101cf165b995f0223a2437645ad4356e5c9045f4bddbcaf151a1ff826f308ea527fe5036e9dde4a90b88f22caeab32a2bd5959618112b272a9 -DIST firefox-138.0.4-sl.xpi 439512 BLAKE2B 8ed144b6c3537ea4580c62057c110143069ab7988a120c5e34819d88633cbcba0caaa2d54e19619ddd7261b5d8efa5cff1b5dbba5c01ffe2e1b5cd733af5f48a SHA512 44ff9da6fce5aaf729ac9238d2378930333699d692f4dac112d2a18a5f61b3625c409c3f1288546d7d565b5489357abdb770a6f1507f19f42c8e79a03fc40713 -DIST firefox-138.0.4-son.xpi 273749 BLAKE2B abdad425e1b313aceafc76edaa4a591b05b874d348cb8bb868344cd25db82da8ddb6a323a7b5137b77554ffdd1c815a14b1d447af6edb6eff86b54976afd7bde SHA512 9909e249396b2d363b11b42f99169b42801f13373907774b1b466ac48928d4f28e52eaba63df51d87717984c4921d847c6221fa7194f554013640261532c26e1 -DIST firefox-138.0.4-sq.xpi 454747 BLAKE2B 84634b7ee2f699a8cfc742e2ef9fd09cb5c4d74eb3fc9ea63ea801cfc091e52e688ca21b004bc3b8fa016e2d44932f09c4fa565dea56528d99d1d97cc9436262 SHA512 b5831d4c30ee8b6135d3045ca802d643c3f391cd30aa441a80316de1ddb9db5b22c3ed53e18ca266ebf36a01bf387ddb84987360d2226af622763a87e571d5a8 -DIST firefox-138.0.4-sr.xpi 454254 BLAKE2B 2758102a5ee3aa972663ff658362cb695297f44da622cac4a0268bd4e9872d55629c19227705893bbef836eb00a3123268cc41f1301dc174bb34d25c09e9ec05 SHA512 e7cb2ecd39c9c38bf0fdda796885ccd0091bf331dd69fcdb0ef43074796bab80edbcbd259eaa55a063e6dca6437704ac14a45ba6f15d669d1e742e40571c53b7 -DIST firefox-138.0.4-sv-SE.xpi 435748 BLAKE2B d404f0e8f8f6de16da7688bb0f038e895b7da3cf11d1af748ed7fce9f3d86f598106446c3001057736c4b125ff6e42339ef9785766c823a71027b0d1763c0b55 SHA512 8fb855fd9ad2414a103a063c953eec838d82deeec59a9932c51b80557a6b563fdee29fd21e642aa7ab06065c6297a2b6113da110d93bbf37b051fc7ff58e082f -DIST firefox-138.0.4-szl.xpi 343651 BLAKE2B 88f3bc0319ec7d2854cb7f593126eabaf739176256983e85e7b6e441a876c4ce26b60659e4332457a50e674a43405830499fcd9f62b66c2a8c685317b9e8f786 SHA512 ae0a33e6f90c601f148ad608769030351b60086d8a1555867ca32669dbcb01691fa0035935944d12415a22d4be674e8d49e524013a0ba0c5b5abc62906dd4a00 -DIST firefox-138.0.4-ta.xpi 338602 BLAKE2B d48d1ce289f05e84597412d54ee172b296b6c3ac59403f02f16f3d7ec1bf03e441024d8360139e57ad20bf64100247b9d35458315204525653fd9b22b78cb2db SHA512 08cefe18e79002873cb4ba9a536a2f9dcf5ecb82dcc320f4a3114c9497d4016bd2b458eb8166dc5e8f9a37ed8c735080e331cd6927be673ab07f0f67e87fa238 -DIST firefox-138.0.4-te.xpi 383669 BLAKE2B 3c25c8ab0ab7af5c15d1a0f1d6baaabc989bccb5357c2d85762124d8b79bce4e0fbe6d8002ff7e9b56c82e365ed3037aba0d124f5a2ce103020573ee2f42cb19 SHA512 77e36a49d646b4e6bdf5725365abcae822da92ae8403c9d0a9267d91ba01cb3b42431ba048f7db0cf72c51e27e53a4256e43e241fa434ae0020b6b34cef121b1 -DIST firefox-138.0.4-th.xpi 501185 BLAKE2B 93291488369adf2de11cb918bd08797c66edc8a86490f1690b65de14de51d52095ee5301dd46b1ad804d92105ba4676c61bb4398091b0a97d3e9abd541afa542 SHA512 3a1cf1f5f6098667ad4300abcc2ecfd25c399b4fd402dd225e89b7e2e84aa6f95d15f4531d726d0955d9e0a50943fbe38e8a809e5170b179b7b62d9f9ef631f0 -DIST firefox-138.0.4-tl.xpi 352247 BLAKE2B f62187a1cb8bda72d121613ae23dbe168c7db5571ca45b34f5127a7d1878590b5baeec4ae6f34f74685500ab009d3059e702c51af8eb2010430dd1f47ebb222f SHA512 aaf58bb9da05a7527b2b8ec03e7ff12f60b42fbcd8392000958895387ebe8eb1fa73517fc868b7228117e10c925c19961f52e99633d91670b134f45a08d8c5a4 -DIST firefox-138.0.4-tr.xpi 448015 BLAKE2B d44c373616aef90eacec8c3538ec25f209889d554b3adb74df4904efe41a323f708875273e15527f36e47308a0f3d0150a7d978df1cf2b6b2ab1013c322c6964 SHA512 99de2e9f6488c6c44c8a4120a8009454377f63b6850a5e567970f7cfc798d81655722125f5099ee94e0f3fb27e8d4258f20d2af9c0e64331ab364b04c7b05635 -DIST firefox-138.0.4-trs.xpi 324158 BLAKE2B cdba1dca0b961192cce75ee085484e8eaecfc9ba15e575a99c3624806fe7d78c33c7d2594fd10dfe3a97ed8737d794a825e42e8603699f6f303d563116c3af44 SHA512 b25b516c13ddf2c5cc49b50b277b5d6edd0d397ace7728ad13c35ab8595ff2739c9aced65ced00d6bde65713203f25a0e005c8d3562f82674c8178c19cc9558a -DIST firefox-138.0.4-uk.xpi 515442 BLAKE2B 9f7d161e68404a097a31a9e61b4525ad80bf7cd476ca214bcaa80aa0926432f35f1a15749884b10aba97595e290a4aec4f874d2c807850bb4d3574e96270301b SHA512 70d972de0c225166308283f58903fd42507b300a289bf1ead2ebc1f0deb9fd50cffcc6b7d8db8822c8295faa91478246b6a6653850ec2121638161b302c577d3 -DIST firefox-138.0.4-ur.xpi 371103 BLAKE2B c6a688291fdcf0260b91c4127e5ecf000a009511da4eb3d01928ca594441ef1d1f71034362637f977fb280553d40af671ef0a449b31df5c6263687bf3059c739 SHA512 039fbb4fb1242645f1f68d1d10e412d01ad4b1c8cd2e1ecd9db4b871dcfc876fa66a62d60d9f42f51c69275b98da222a7daa11aa5ef24ce9cbe32d917f3dec27 -DIST firefox-138.0.4-uz.xpi 304265 BLAKE2B 3f810c894229d0537732ea9393acdea85a10734aa88da24f92ca545ba2ccd1d0412991f656dc8e9f2c0a0ce44d0e861c418918675aaf5782e6246a03319b1236 SHA512 dbd15d8014feb181c280152e1f838f0e21e2c96cc786544c0825dbe0847feb61349c66789c00948865be54f8f5dafd8cf0aa62f6f4aee1a20a2a91b095d45c08 -DIST firefox-138.0.4-vi.xpi 468823 BLAKE2B 8d8ec67eea5604a9a3e8b2e24f1f4dc921f9db331d883e38033ec6724bf7ae9252c13f54e5793b6199b0ccea32a191ac84d110bbf72d629d3a1aaf1e783823a2 SHA512 fd8e2879e3e3d55a7ebe6084f30cc5c3b7ce3436b6493439b0362adcad94e89fb0c81841f9c67481789f389eac42429a933a7dbc8964b4a4cb1cc2b8db6d0eda -DIST firefox-138.0.4-xh.xpi 273647 BLAKE2B 74a84022bec54543a88ea0b1433d3c5dbe4bac7ff064ab9b1bb9f32561cb06ec8f356d8c135f1b7d4e04e039b633fd07a164629ea09127afa988d9eefb8aed9b SHA512 b55d37bb86fdfcce16b2a0eac90fe2476614f7cb0e09462caa269c4c7c0293eb71a506399b162019e4be08368e865b1a9dfbec0aad18805330c1a242885ff17a -DIST firefox-138.0.4-zh-CN.xpi 460392 BLAKE2B 6b2cfb027e1affdc8e35b57a55147aefc3a429261031f12ec52f07cfd4e6e73bfc81626311e3ccb3c445a766df4c09e8f0e652c6709e4905e42b52bd981dbf1e SHA512 f5ddd024b0298e6c734c148dfd01da6dbee8c172c93b9d30c1b820eeb860214ea89d90391c9c3c6e9521470860638f3c5bab10d75dfc832136ecf0853cb4ee2b -DIST firefox-138.0.4-zh-TW.xpi 463422 BLAKE2B d502bb8689b40878236347064d9e2eebc257aef4cc0f9bb7c84248fc5e412c7bb4234fe6d7e73539bdb0755be2dd1f6e3e94f656e507f7a14696ff88021fbc00 SHA512 0cb8c41dbaea4833fbda8fda9aecfd6dcaf7f9ab24b2e4eb2033b7cefaec45c628f7c4aac6a1366f1153800ce8112188689f1316975deb9f79cf8acd34236e42 -DIST firefox-138.0.4.source.tar.xz 623414956 BLAKE2B 1e65a896e0c3188510ecb1fe0cb7f181c6977e04a5b50079b04323c4b508297945ac8865a2273a0cfe038e841cc2972d930d627f8d39db3ce9288fc5fe5a1ed7 SHA512 64d80456da8df27d7eeed7eb20c35fcf213bc948eb48739b6101e2c476ea9a9133da928477a79683c96c160f8d53bed52be487f01a8d29e38d39071f12676806 -DIST firefox-139-loong-patches-01.tar.xz 5320 BLAKE2B 750d2b3684365d07825d515edfd7e5b386a77c1d47ec56689a3b97271c18e49abfdcce5d9a11934b9517297fc4a192c7d0ff4e66a88c0751699ef1d23d830072 SHA512 4602025649784ed296c0e17f58c82a56d986bd258190381d3a8df89fff20a6bbd5dd2f7609c07ec67b4bc6801603f436ae2cb7f4baf0b97208c584a6798e9721 DIST firefox-139-loong-patches-02.tar.xz 3096 BLAKE2B 2e9c0f3dac780c808a13f70fe3808df9976898360b55113def97bf3594893166e0647c70ebc389b2d14fa2c2453fc1dd68aba20d92178670ef97d70c34205e1c SHA512 e1244007290e2e15d14cf519e3ade6a4da06abe41c416de60569a11396609661cb62fb5b592e763cc079406699dc33d6a34851f71068f4d09bdf34021b035a59 DIST firefox-139-patches-03.tar.xz 11536 BLAKE2B a7610d1348a2a4d02305c8d694a1648997040c69cb1445b901fe456045d0b1a73f28b0102ed03d34f70d8cc1ea9ab0245599a104b0063c7fb0dcb5a8fdd6f60b SHA512 4733d34a842d525824fbcf6ef5d8f33e26b4f37a16aa87043427eaaf1e0665aa257cb8487bd692e4fd095c2a78553ab3f0213208124c3455e534394576fb5614 -DIST firefox-139.0-ach.xpi 297653 BLAKE2B 8d32423d58ceda3d7d98704b68463f9f22f0ba0bddcabcf894f4a925605c641631567590a43d4a40aa799ec0a19a2b85c1eb9ca5ad44e05fcd8eb14bb552d6a1 SHA512 b73748b611719c4159f74dcc74afc9f74757a42f9e2f424084a1e08260a16464e55443bd8e71673599939af7506697080dbe806b8156475277d787ff61cbf6bc -DIST firefox-139.0-af.xpi 269832 BLAKE2B cae6d4b413cbdc8f8e73df86bd9e619f9d6802e26e4451e6c41de72aa550c7efab70bfb3dcce677e5de27c87fab37f9ae5edc1f633cd882fc95761f7faa2a8d5 SHA512 a8786d471d866afb825fe846539d3aa819e8c2f237a41e710e0cf36c8362b129dace2e77aaeb49adc7f157bd1355ea87a6ef13a8b528d5d91e1cd858e5f9db23 -DIST firefox-139.0-an.xpi 335654 BLAKE2B 90ba1ec787b05799df6b461722aee5c75cf698e710f4afc1e10ea69fa95e8056bf810029f30cc19bb7eb453487e0292cfd1f0474ac4bc990d2ffa9b5c65a4b19 SHA512 b78b029fade7c3468ad575038394978f9fdc149857b49bcec6e49d3ee056548566679d93e9825e2cfabe401737c00c22ccd4779c3955bca059e00308f84cc2c3 -DIST firefox-139.0-ar.xpi 444100 BLAKE2B ee3badb8163b3e2eb19d0340bf602a1305fbf235e199b8e422edf907a830dc5107082a44b42cddd3013cc88b998453ebfbf21452afbb65118e4d7f3ecfb3c0c3 SHA512 7dd8a9ad3cd7f4167cf37755a77461910ac3ccf8363f78edb322f642cf54bb293b7b107be5dc4232a179326a13870f58f60fc7310b814e15b759b087fe85f06d -DIST firefox-139.0-ast.xpi 316648 BLAKE2B a50e21f62a72368a18fc1f07dd5927a41808f1809b32779601e12e9cd9cad597b8eedb8528a634cc2d490093109410b11ad86b7832966e7f4f9b3b06a1d58cfc SHA512 26e8421682d7d65010e066b3492fb27bbea48e7a37dd377f1f969497090cbbbb4fadd999227915e16b1fe954c8627453023bf96544246a961433822e90046dba -DIST firefox-139.0-az.xpi 321615 BLAKE2B 1c60fc1cafc4c3e3d2ac9c2bffa584f99f0a0d604d6a5e66b04757cf50e3d6a98b774cc3b758915c8fa1791566f768011813a8c1bdc59dcd571195b30a193535 SHA512 1ea514445468d49f0cb9d8fb52b1e2cd0025a6eabbf9d136de21dcb4bbfc771b7f3c2f2201637c16155b5d3cd824b2c42565e1aed7214507b1c4c6424bf2f058 -DIST firefox-139.0-be.xpi 525086 BLAKE2B a9cf82dec264ed017cefd893dacddb8e69fe929567849f2e3282da5d178960c3b0be93f3d588d8e2a4a652e447011446d3e230b00f545e7646335da9888d8e8f SHA512 3a4250c28e217525a077d96cf70a726bb138284087524c081f859f907ed721e5dea7e93bf4e34c29286c125af92bd9c34f8a19025a920581d48fa2e2b68adb74 -DIST firefox-139.0-bg.xpi 454372 BLAKE2B 2b81aef873043bd66c88314beee8a1b178db221b39efa63b705ec0fa6be3fcf1ac83ffcfb2ed331308eb1e15cbf5e353dfbfe77251ba68b1ba6318ed974d2757 SHA512 bba68ba6cff944502a3f8908bf912366f8b680f0a89d390df7896c3eb2f520ae25c46747ecfeffd9211f043062fca8447979a92c0b3bdc36c73a9e6bcea8bf85 -DIST firefox-139.0-bn.xpi 415415 BLAKE2B 0fb1ddb425c7e5ae0602c2fd1c6e860996d4d747ff489c5012433287e4a6e501319eded9ab81859500c0d6fd0b157dd03cb4b5c6a915aacf0214e60f4eea8aa5 SHA512 b177264d4f0995ade061d7a02dca601854d882faa68faef9766e9060fa123d263e28d7b5a8b082cb184474a820bc7603bc81d607b4b5e85b7cc2b9e47d0c87df -DIST firefox-139.0-br.xpi 398164 BLAKE2B 499b413ab1dd60891e6e84762c1b6f4d7005b47056242902a058c52af478cd6e8f14715172e3a0178cb16cc492e52403ce1c9d6308a96ac8e8172d86a135467f SHA512 cadec1429b9d03f17a272091212dcf3a17893f0f80eaeccb6a2e531cafc171291c73da4c8e7d7f2e57e2e9bd64e73f1c340ba585f18d4664f5e5ac25d536287d -DIST firefox-139.0-bs.xpi 366737 BLAKE2B c90233bc3b44205f3cab93319cabb21e0e43bc060ed1117e51ad34a4ff57b0b13e550aaa01f9b26511518bcdf5734a2d6e1708c40f57f8017a76fc178ad7414c SHA512 63e535434efdcd157a3742ac5005c743739d5f757ec06b0f1653c28c471d3a12a43dae0a2ec1126eb7f0ecd7126fd387b16c91c5671413c1edf73773d80d6e3b -DIST firefox-139.0-ca-valencia.xpi 361690 BLAKE2B cf708c950852911e84497a2c6a58c23db14d79dd95b562cf2a75bc1da6a375c299157d966cfeab51144c69e24f68d69720ec0c079c193685ae75a6ca2a0427f8 SHA512 4d9b7c9586ab40bc1a4600518e0edc4d4861fd0235db0c8943296dfd40eec09edf45ecd80083678dbcfc4560be8e4407bd5ab6bd6fab010a4e53fc60ce34e019 -DIST firefox-139.0-ca.xpi 404026 BLAKE2B df595198bfa168725bb84dc056524ccea0c84153b1fa92db78793c03a4d93e78181e1515ceb0d1a5e6a65793c9f01e353bc1a104170e4258ed3a7785145e9257 SHA512 17616944db9e7594feb48bd51da657ae8a1184642319a6b289229cc244214d8d9c457dfb7f6fbdcc76cd5deb3aab6667cb9ad8c14361311b73ffc7e80e150364 -DIST firefox-139.0-cak.xpi 394727 BLAKE2B 0549166d931acd387ef79c997c742c7719a1757c0830896113e936579883dca044acea6ea01413dda6b1a5e5bfcc5806c930e76e2e98bc7145a16c08354ea6f8 SHA512 fdd08f5c8bfcfd1c69e804db3911215acb36a5bf6e9cef085bc98a0cbb14fb49496998bf8e155b2769a75b9301265318223e7658fe13f39e087ac7e007e0f65e -DIST firefox-139.0-cs.xpi 479926 BLAKE2B 608a29346069501f9229d1b1e2fd99041a6a5aa7b52ffc27f65b4056442ed633775805ab926c60421cae9f936efa5b9502163dbeb09a16bb8ec45de8f57b6fd9 SHA512 4e7d993175ebb07a4557fd33700656c20fa5fcae02e597ce6947ea2aba748e9822058c7608545d235414b6d96d6459bb983913d09a8bb450c12be7dbc0b320db -DIST firefox-139.0-cy.xpi 446086 BLAKE2B 30c5ea06943b1921c1d6b5cfb4a0495ba28f5689120da679f9d3be311f6cd2f157b254757c03a02e1fc919b130c52ac04aa029041df74f676539e8982e8d4194 SHA512 da647036c3820f47bf3f8a210f013ea7f5a9b161dfb51be4ae93a1496c41953980716b2c33b0d131bed510c14404f1c947aa6a5ea8b29e84a478fc3be8f6c6ab -DIST firefox-139.0-da.xpi 435209 BLAKE2B c20da4786db1cc68a891cdbaeead8acebf1680769414f8f7fe22e26ac57eecf45f0f4af06db14e355272cab77de567b4cf11d880cb34c8cb0a6a061138a3742a SHA512 4bb93fc7ad048dab601afc9f973b123dbaca22715e4b0d2cca7480080c5a44113adfa7695d50704241ccb3de7db199781c9800ad61282f4e496fe91c45c4f316 -DIST firefox-139.0-de.xpi 456784 BLAKE2B f360ac4870c2583b045f57f29fbe3eaadef5057f86eb4f64197740e0e44634b95a364dabd00b957b0ed941a8bc49ad8d68284adb07004c857357eada3210e6eb SHA512 3d2282ac0bc4c508afb773e8b392a7b17201e8a27995a609afee198dac4c1cae450a2e7a6afee70a90ac1d0daab9dee61f6eb45606c955518240e10a2c71ae20 -DIST firefox-139.0-dsb.xpi 470271 BLAKE2B d3ed7bcfd301cc239bfd13bfa24c9f54f0ddff2f49c177108974d59a776a45f580fe3a7de78e9aed42b9cd6b13ab31887d549d20dd8ba00aa879450b1e9cb324 SHA512 039783fb23b24a0f2efe6a6a282716049847977bfa3d3a9b7c8f7db81f248ac95719f06d3ac4b870dc697217873eaa9aa0d0a34c26b1a849b4db68d9c0860a50 -DIST firefox-139.0-el.xpi 541199 BLAKE2B abbd91e5e150d8ffbb2dbfaa05a963908a9dad06f3100bd9d535d7ad84efb24a24c883b9f630ae6f98203da372adf429ec463b36d65cbd5f43ddc2724b744ba7 SHA512 e6c7f7082d2e8af42390729b2c7099de240e46cca9e8ea9c22323fd3661dcf01f7884be12270d0f97b2a15194e5310efa90fb9be3764d1f1ee018299d43ff27d -DIST firefox-139.0-en-CA.xpi 413605 BLAKE2B 707b61a5e7ea9fd00d9d3e4a013f82eaaeb82eca681f81e1fce5cbcb786b2ae3b0c6fdf4410695cc95951d8c67f03d65c46a78bd8bb806736f593bda6826c58f SHA512 573cd20b66b422459a92e96c48500befa264e4df7a5273b9f3d7656198a5c3475e10102f38ad91cafaf02ff453c0c4aebaa8694aa72ac9ba97b567984c65549f -DIST firefox-139.0-en-GB.xpi 415489 BLAKE2B 147fba49403e15404c6b328e990a5d2364da7475a4da140fa4450355d1ca88c3bfe7ea699d3bf6bb8453be763a521899d05329813398a04d951879bb324dec66 SHA512 94202127610997ebd1e2a45ed4d7ae13b50af0cdd51edbb5dacdb73dbd897e2a417aa8fe7fce12495ef1d6135a382d75835c05573ffbf940e110b2868cd620e3 -DIST firefox-139.0-eo.xpi 437561 BLAKE2B 0bf338bb29ecba1e02738d8a90193cbff60c65fdd9dd4a33d5643ed2be8a189fe65f7871008dd6dffeba6913104baa83090bf10af2f6e4fec92f16d091ca6e45 SHA512 d7b977a53643334450e2570dafb51461f7b0acb2ac3dedc4405ee497d6de5a85e71238258218ff7a8f9220ac2d18198b67be316733dd3b2ea866a933cb20cd72 -DIST firefox-139.0-es-AR.xpi 449705 BLAKE2B aefd23a621fc99c38a7b8ab25b62c03605f25017976cfa2dd3fb9610311d3e51739a48986949158da6c8f707453debfd0eff2e4db2ecdeb48309d4443efc78c8 SHA512 2bd7f08a128415df5ec45e89797b884a4c61f628698399d6e48a093d3c8ae20bcbb2093a4f693a7cd2d2a7014839352a5f326bdc485beb53aad45cf2a9691722 -DIST firefox-139.0-es-CL.xpi 450463 BLAKE2B 7f9a52c9a15f8ea89767b650efa321e175efcebeb741d8562cd972b17da2d35eb481cec8dbfb9b89954f88818ed29286caa9a9e5cabc045f21eba7eebd0dac59 SHA512 0c4690a5c79cb8bba5894d28281eb8a06087ce152d6e136df7bdcdc0f7b98ab6b7cd599d331c85212a3093dddf113fa42534af4ddac2c644fa84da84dd60fd7c -DIST firefox-139.0-es-ES.xpi 451249 BLAKE2B b229125bda71bc82f2ba72c03ba861180476c8545b9383d5c71466266914f49b13f6b265b9feb9fc3d06d76f207faa19a5e14d00a30c291045db098d093beda4 SHA512 3d8d386db468add905098a2eb7f36d0172e718dde1ec7b58948cf2673dabd6a98cbd87f8e7987227a23b9aa164a3aed287f9e765d0725a45320b8998a392f93f -DIST firefox-139.0-es-MX.xpi 444375 BLAKE2B e40e5fb28663321aa2e11037a5f6799656f848affe80092c7ca637c5c54de5542e4d359d962fe5634fde6b51b7ed253956d63c854acb07cbe55d14572b502b27 SHA512 bc58aa0310dbc5e85b799fe9b460b80019ac23800357227a17553ce269bf3a0c90cd70ecaff2a77b0d19dd870a0ecd42d64a6163177737e0e536211fdd158cbe -DIST firefox-139.0-et.xpi 362497 BLAKE2B 747b3bb19cba7f3d3df5ba3afa5e748a68d71a56cfa6a679f19d1fe521b20275b50177bd71173dbf859de7284966083a312b7d614204e1dc2b9703fb1e7b263a SHA512 41347d76b34b393a3f5e736410b935df0af75f292bde410bb6e12e3175755de712d5c6cecb9dddd470e03c58d7babbcebe2c5d7a49173bfbfbe3c1fa4becab58 -DIST firefox-139.0-eu.xpi 416692 BLAKE2B e59814f101d8fa1423d3e08420ecfedfc1cf550bb5ddd49d7f1f6683bcfa99429e23bfbc737b2f6120882ec9ca5c86f66af07dddae7e51a60ba302391dc7b76c SHA512 e5f93e1e444ef41c5b10768a37382e754426d7d764b78453ee97f4627d95c170ec4df9569669885034cf9ee03b9ddfd0647c54cc8c05cdaa2e7d99ac80c03d67 -DIST firefox-139.0-fa.xpi 424165 BLAKE2B 1c8ba918a4346ae08c16ddd64df2ffb90015ebc7e9cdeb242000d8e5a09da50c70fc8ad1c2fe60d8b375b4acc49154d8936e3a20bbf5a40fe6411bceff0d4301 SHA512 4428c9e4db61e32d5a7cacd05d3da8d17b9604c51af6c8eff7212ecfd11e25f2c2b258c067f844666b95632239676bd3b80b9a2f352f901b5baf300482c60876 -DIST firefox-139.0-ff.xpi 313851 BLAKE2B 974fc9e51002b6130297957b1f6b1611353266cda0e110ac866e537ab44f36b6315163f7b2f2279af9304ad957d8678a624c6b67d7ed2fe8175775b1a1a6f2f0 SHA512 cfcb11e63c9d7e48fdfa17e6a4befbb087308b84a971edc0edd92a59a5b69d31f395a02eff433ebf6a8c8168d52e7da995e69df95e149878c4cbb50b38ae739c -DIST firefox-139.0-fi.xpi 432409 BLAKE2B 07f5052535eb19d2e2e45012ce0babe7f618f927329ca7537480d60b9bfa424bb81f76531521b8c6c9b8ed15cb5d8484a0e9b3fadd186134780c32a75322ef47 SHA512 4cfe3e4ca8a0d872862cca31da35ed11370de4297702661ef35850b2d30888d9013b6792ddf045299eb39bd296dae12a06be29fd5e3dba612bc754644a0dd3f9 -DIST firefox-139.0-fr.xpi 462405 BLAKE2B 59b4aab5e4c4c61f93f67ec369bfa0e627b387a6cdccf85de53766fa3e2ef74dc686ee8d8342d761ff544be57637960f1c26f8b39cbf133d63eb1b76c04cdfcb SHA512 ebb4a9c84401fd91d3bfaad88c5bff23b651735a1f54665f28618054c0259c2b925fb6d5f32a3e577864b083aa413809bdf1d8589afa2d558480c5790dba4af8 -DIST firefox-139.0-fur.xpi 453095 BLAKE2B 6c2e67b5dff9c1db4086c34b36c18dc9f735a9b2ff7f3f0a1c0ef685bb12eda95606546aae246cc44c4ee6f0b226b508d1417dd9df49ce95036f3f0f5911f482 SHA512 8ddd5f311c5c43de454a8dd80ea45dd76ecb01b5b27fb787d47ab807b294f4d2fe1932d9dba7bf724af8afc63d9fc958cb8a0701b1bbf33a3978ceffb553924e -DIST firefox-139.0-fy-NL.xpi 446338 BLAKE2B 96527212985304a62bd56622985c33cb9c1d908f0b1164308de5587cc0302e92daa77abf4143e82ff699dfe767af7758b138bb53806b06c85a7edadf1a04eb2e SHA512 8ee82b6013e2274bc3ed836e8fa9d1a361a686ca6f973cdd9ddda3b53a825b39a3cec4bd0e4da78440c952bc163d5c57918d220b3d1e034d8f42d374953dd175 -DIST firefox-139.0-ga-IE.xpi 318540 BLAKE2B 26df70887aeb16822a57d4babac091b30163a3bba5fd20e6ce50f45f156487d7a52461828adc161729102dc721ad9ed2bf7418f0d9dc21785c169532bbdd060c SHA512 7fd1615f1bb76631758a379a850382e8581198556814f5e2f67af81f571e65e05568837f58e67180c3f0ff748182f07e33b2dd6687799269cc77b3b795df9a59 -DIST firefox-139.0-gd.xpi 402965 BLAKE2B 65ff9daa71ddf99ba125ec4595944df9259b2866995574b0abd5343b9d373c28f876bbc0886a7b17c06a17c36dcb26994d9b4e4953ef7315973499001ad5d339 SHA512 b881bc5b0e3a035831577ab16a1f75838753779478b67a014beee47e50f6e5df4d4b7b16471bb281ecabeca15c1e4a2dfdcc02bcf37e9e5b438d9b4ea334ff8f -DIST firefox-139.0-gl.xpi 409738 BLAKE2B da961b792e52353669221f55a57aab355d24caa35c8a0626bfd28a05641fe2ac1fc569d2f8c8ca49d592b21dc3976db740e3a2f9abdb467463eb8c01df1be6bb SHA512 540558dac9ea713e54062d0328ef77016730153b9c6a564a4972f7a5a01da3203529a69e9e02343c687d0ac201dcc957257bf1ff44d5c99b51a609b3969cb8a0 -DIST firefox-139.0-gn.xpi 453113 BLAKE2B e60499b4aa2f8802e132c2270bfec868aaa54d15b6c74645615d6f2d5f58c8dc4e364597d6ede05c01dbedfcf9fb026e19df7073b021971959e961d2239e4a9d SHA512 510f3718db4680b0230156dc50bd73ca63a215f49438aec415871b065abd04629191c939c3364f42ec582e8b3a0aa635314eebc4b66da2cabca83f9c462631ea -DIST firefox-139.0-gu-IN.xpi 362211 BLAKE2B 173be7eee94b38b7d0c013002f7f25335704afb98f23e9c45855a2bd4ade3797e939a80c2ddb70c3c0d7d0852cf40d504fb94aeb18195a39fbceb3942d769215 SHA512 206b9efe274a987787088ec5bef1466cd2fd7d355515e320c4f80092a7d95d94a2f88e927ab272365b6a5ab57afad86ddc993af1289c58b04ae0e0115b22fe64 -DIST firefox-139.0-he.xpi 448703 BLAKE2B b3d3a3489e73cfa68d95a8e4891d59c2b6a8c668eca395823853ecaa3b7c163e4daf3a7d80ce33bffe217b8bf06b38a981de9aa5df3c3938444f01b3479d613d SHA512 772eac713c0330979ab3b813fbccc48976ab819a7e0c7c704412a7b52d38705469e9a6ab249708e21c4f9e9d5b1d089989692a2e2e92e0f673e54379adee8523 -DIST firefox-139.0-hi-IN.xpi 380724 BLAKE2B 3b0d3a94cc16e4619fffcc37f20496fc2f52d499e792d347dbc8c44502b97954ec7fac94062e096eaad59a95ff503e61d8ca2087fa20d75c732ed3407fd6bacb SHA512 607ce1fe57f1d491ba4e6e92ba6fcec6c88598c27ed4668a6d30be8bf51eff22aa9518084eb2974fc3a99615d053cd10de5ade0baf70b31c6dabf907af94bf3a -DIST firefox-139.0-hr.xpi 431204 BLAKE2B 83e06dcad8e4c72db99a9c3a3e6f3558ba102079e18a0fc6acd6efcbed71384b1d43d11cbd7f156464fbc9a132ef0fff1501647e9c26e148c442d12942691f04 SHA512 5af950e7e71b8529e440af47777a3a008f6a9994b45ae4161ce2ba5548e3a6ae9eab498d6a2e82dafa929f690c1bdad4e8f0ad7ffb3d278665616e8ab031d58b -DIST firefox-139.0-hsb.xpi 466852 BLAKE2B b849519049592536a0deb8a69667a13661629b5dc26c46f513d79e937492f032ce750830dfade04a52d929d4644f6814cc1584bf9896a2b7b5204772e5d1ff5a SHA512 4afcdfbb4e0c2c021ed65f3810093d3640587294bc3f615470ac155ef72242f7fa390233ab9cf8ffdc7948b7184a70775682548883fd37c574991aa34eefb5e1 -DIST firefox-139.0-hu.xpi 470461 BLAKE2B fec160476c8eb3fe153003f9a20c7a2ab9e54f7e9ab3a3485e79b1327dc66be8e17c1a47622070b67265a7b18a25ad48061944c3954c5457d027430d3539a1f1 SHA512 6f66f3a97203528b8d43104f9fb8f540b20fbb93798caf377b425ec371768432e34ccd6b44f4aa876d74bbd2041a9c76a8e2a11ffce9398d5795d136b4abc479 -DIST firefox-139.0-hy-AM.xpi 457464 BLAKE2B 35a0180a68fe42a1fc441b7ed2f216d1c7c515ddac943ac23dc91c5e48c95c6dce3aea7d52ef614ba7c66802656c67d3dddcd1403873704785e137e373fbf4a2 SHA512 07c095310175ba96f664fb0e58507b2267c05f5860229749f322b9a82847e47874b0ba5e7fb34949803edaa897957cefa5d120563961c5f7187085fdaf2e5e33 -DIST firefox-139.0-ia.xpi 434198 BLAKE2B c76bf4bdc0e6f228ffa8e33e3052583ef16e60973501c711f1f120a7e2ed941ce114c5620ff81bfd6987afb19484c3c5e3d553140c0e684f008709ddc68edba4 SHA512 6be1593aa8fc47010df3e21cb3d8326c3d9153af154d7b2bdeebdfcdbd92fe3b373604a90865781cdb5fccd1085f9666f96d58795daae3a6c3b3df4400b82253 -DIST firefox-139.0-id.xpi 426325 BLAKE2B 9b4efdb4caece08b804c6a21a8ecb1dad20bd28e5f6caad8b60f5de890d138186e71615d0b049c66e7fcc1c14a7e3923722197df43d0f16a36c137c03bf043bc SHA512 eda65d60956a731c8c576a054c01c7bc4a132e7cc495957cc19e6c4a52b3de902731ab4c38257ec4fb25046e2d573b1d823b7191d97d870b01bedbe423150a69 -DIST firefox-139.0-is.xpi 436857 BLAKE2B daef9096f4d69e0882acc6db2e1dddd63b2e89fca7502ee16ff7226c13f35a1c17f96a27d66c3c130c5f94e85621089cd954661f5a1b294363201869a697b643 SHA512 ab42569fcaf590de151fb6df716764fba02b826aee064adea56bbb1607b1e4488f186e696fa3419aa386b409cf92a6c8f6b625b6270ac819ff28eeaaaacf8c5c -DIST firefox-139.0-it.xpi 444970 BLAKE2B fc274f872044445746b59f2e91d110b6760621dbf5484613a6c540236aae6d1e2df9fa0c0aea3a2d2d28f3bd342e11d26268683216e977fef2ec1a1497962c01 SHA512 a06df120c82f2ae471f0d0730f1548b2ad07c0235f025506faea2951ba1f5a0f896377a0bb910cc1128e345884325e6f6659cbca92b3cf09e1166ea6c8cf0260 -DIST firefox-139.0-ja.xpi 485460 BLAKE2B bd3f09685603ed0409d96e56a2d001c6f46be92b2bc541731e929ccd49a20359b4a286ea2bfe37e322715c43cfd9a5b45f0663cf656bed887f715bf349b8cc08 SHA512 2309b4644871e2d9000bc4f5aac2e050a487a8677e521b9e4786b7f683f5c9a9f15254a131fbb8d1bb1b02188c851720ff4a7e3899cb47d4c88edd99e26a9f4f -DIST firefox-139.0-ka.xpi 498906 BLAKE2B ed1105ae2e8f159a5c37d7f0fb53dba27e95eced04518430064b699eca8605ae9452275953143015a6d96f1ecae1655ce6a9d48a10c8d7a7ec250610aa2a0399 SHA512 7cb56b9958f33e481ba3fe5cceaf9534524163ef40f5164fdc2825d4ad7a8a4cb547f45e20dc3ac05ca72be2d051988f0ce0d2a5e2566abce50496a0a0509ae6 -DIST firefox-139.0-kab.xpi 425606 BLAKE2B f2a7b4abb64fa6cc0822847d53f8e6ac9718342692aac678b42a700be0395d92b7a2a1ffe00cd26c666ab0dd719562167a5916a2cfee170e8b1b595cfaa85988 SHA512 342ecd07a8f5f580e4b505fbb6e72d654a9d4380d8a37922f5936a4305a55627714179f657c71a4224271a2662f93989c2e5849f454243b2455ee7195b0b5db4 -DIST firefox-139.0-kk.xpi 507021 BLAKE2B 147088e7d5442ad00c38764a145e8af007f04c3c64cbb8b39a2d98beb3f4229b050e21455393d2607c1deaaf97257511683b057f5b853bcd3b19edc9a1493502 SHA512 c2f8010f59714048d35de76dc32dd35e396060ea6b0e0cdd6862eea76261b5059d03e533a4552c041a9912901c1447cb8403699610ba3fee2a5219dc981769f9 -DIST firefox-139.0-km.xpi 352027 BLAKE2B e7c0a84128c021ddb363018c2a6630dbfb07044c5cbeb429bee92a8dbca84750fbb11f47b4ba54e067c0825d2a1ba1ce5db5a842a902b2426ba5575a2c92da32 SHA512 504a7fd39af29ff4ad6796b6157f3274ab25f37f28d9d77a26f9a292428394e386e51dbe1482f05044f7fdf48ced24a837a2ad0c94360887a298a043f23c64a6 -DIST firefox-139.0-kn.xpi 334942 BLAKE2B ecae7b7bf7651b459378313e6785f3445ea3749c4293570b5ed57095042da027d61a71398706c0cefe8f686080131c34c75e1bdd8eff55f96949b8be88ebd07e SHA512 19ff8e28daa5fa7bfbe1033df0d7c6893bec943591f4f774c9464f0e1eee70967503d8cb095f7f8782d0332333d861033eda710c9dccbb1bdeb67a51f248b797 -DIST firefox-139.0-ko.xpi 471626 BLAKE2B 9f4f3f21581fa37e290cad834fd1c2c079fa225a00ad8afe924570453e52735e3ad17285cd21ef9158a57c6185d4f4a5937f992d0bdadf3fb6e271187b682087 SHA512 1300e82efca6ebeeaaad21d4c954bca3fd2629d19c4c1c517d1b774245ba850f1e38933ba369b295fa5010a1d7ed1c79b81bed86821802e911330df5fd2f1be6 -DIST firefox-139.0-lij.xpi 321769 BLAKE2B 7eb4e8c908cc147edbafe7f58362f443795f28f4a68714a93c9b89aa721e0a9c015d2134a82f7aac17f88a649c5579881d8f40f5a12980be0f4697e7b7094991 SHA512 2a1a9bbc2734e47cd9e806f7e2847c7dafd5a35097aa85def0e57b3749b26201a5897808da98bd7147f9749e1b960419dbfb6abee16b179b13bf3816b091f2d2 -DIST firefox-139.0-lt.xpi 383460 BLAKE2B f81fa3001b5d334eac211cfa4952ffcb807ae0cf9de6d05e3c92aa039ae90d6ef49a3789721a8be88f2713518037e143bab20cfacffaa92ada21c472f8d0a84b SHA512 0abcb78790f77c51229098b5761ef2cbddd6e39cbb77434bbf4955cbb99f743337afbe0f6d9ce0f73d7ce9410bc8fd67ad322f9dd9769c191c945cfd3890106b -DIST firefox-139.0-lv.xpi 391400 BLAKE2B 9e61383cbb60dd311685e04576ebc0d5acb309791868cf96abf930ce53dec50b85685e560b1d8c7d397a5807c2c821f0e5ecfaa15689ecb2c83651067cf53bff SHA512 e4779967d18a878be9f06cd551cf451730d2dc5dc53d05086c0e19dabcfa8209de3a5aa22626c87e4a3334d3a7ca8c9a089c3816fc1e1898eacfd928767f698e -DIST firefox-139.0-mk.xpi 320012 BLAKE2B ef6e6a1526e4fc10b3c5d143f8209bd507df89f6f1ce4da6562ca085415dd71b83883667192e4f7f506ff45691f0cd280f05bbf158b768b83e06e0be96fc2818 SHA512 2597ef95b0748bd877d599913034ce63f29ca9c17772e85e4491b9d17aa31162dc1bf7258ffbfa5f9826b4fb3e45460a0d7eb50f7402cf5927550de2b40d16b8 -DIST firefox-139.0-mr.xpi 359449 BLAKE2B df846296c091e2a983a30ea0ce8c96ef81c8d574a743fd871d27f433cfe35d25915ed38f6397d5fed9df5b904f30299cb83c877f63ca84f3f432ae0aa9d7e65a SHA512 1dbe91a3f76d0610839929677e136397a30a934dece4cb65d603c7405f8a26b1debaac1b9ef2dcc6a687bb74fe2f7d647bb02d9909f3a4aa487ef91d2e19e0a1 -DIST firefox-139.0-ms.xpi 298612 BLAKE2B 938a5ea2ac01dc87e18501080299076d016efea43c3ad4b37c9ac6ff63c2269eb1ad3b24a2bd68cfd133cb436239024500ab9eedc3388b1faa22964e1bc10e65 SHA512 406224668b677e494494185738076919a7e5b7810a5b05069bdc151c770a8c6ee47caf7661c888169c6a2f256b17627133fa5c97c3d2b9ebb53248cb7338b4ed -DIST firefox-139.0-my.xpi 346245 BLAKE2B 623b56dc3a65c7d6abce1c4922b5b33014fb9fc0edc39d5ceb0059405d8ab6d6d1927541e5e3e031f410c7a4428a724ef966ed9ab53e1030081e208e8596c43c SHA512 0a1c193c6725ef099006ecad682f8a3dafa5ef990a2f0aa8770ead14c247c72f4fba37a5dbed72719de4d454cf8c1470f15eff2fd9111f021ee0f7ff1da334c5 -DIST firefox-139.0-nb-NO.xpi 425033 BLAKE2B 35921178d9c2ac1066ca052a8b6958e62291a261578c6b37b2dcfd9775ab8e570a1e29eb52bf378e924006779246203c79429b9344eaf09ad46988d05f37fe8c SHA512 c5faf7abec06788badc9400cb1fe8a60a1a547c06e1435deb226f2b410d7b2b519b9e1118e7f8deccecdbea8dd442094b1765b5e8702b844966efe8a6883c17c -DIST firefox-139.0-ne-NP.xpi 352273 BLAKE2B 31f7f93224aab930e5ae33067b5669454a0566a6fff897ad6cfb9a225b86806b000f3cab3722053768658e2418f9e3e72ff6d50ff15ad63a819e44db227f1b8a SHA512 b0910f02e2d62398c698769a655aa9b740758fcdcca87672144892af6941ed0a0838ca798cdc41a03a011de45fc4f1fd530f67a6f880b16bf231bedd7fdfe417 -DIST firefox-139.0-nl.xpi 440347 BLAKE2B d99a2ac08014e0d021cb7c9fd4201964bc7d804bef13400139a8bef6ca00113b348af48721f2b5b97e8e9aa42c81439370878c111169e2d899fa2c88797e2f2c SHA512 5dc20e5fe7b089ee8f609b9be91c2cccb28d52a18bf8d13807946d464120047afc94c6082e01e087249b25adff63d0a7bd2b858152ab23fb80ef68c95eaeede5 -DIST firefox-139.0-nn-NO.xpi 432703 BLAKE2B 661c307a91288f90c859cf8ff776d6ebe40abb77c21132d01279202e4b7f67d40061af137ef2224c46ca2f04bf6a3147c9010f08ed4deb42723a73a549355288 SHA512 5d92518b27988cf0b58658d2874f834b55a3e7f7c0194f2d2dd10e5f09aad468312cbed4028ce29cec52c9c3a7aee06e66566c1b31865a858f4be1f5d6ba8602 -DIST firefox-139.0-oc.xpi 416055 BLAKE2B 6ad9cd74fbadeed7dd650895fe20cab849a32772fc339cf9a2bc96f62c273de0739143a775864fda0b25193c2180277fcec5d1ffadf2dca41e7c88cf6749c536 SHA512 93f8a43f2d3c2fb2ae2abe2da34e36b01b63face73be3c4862e58627dfb93759ae48b48089fb2ea039ee98b7bbffbbc16e45c5ce381d0c20268645ca5441b245 -DIST firefox-139.0-pa-IN.xpi 496784 BLAKE2B da98f9126498526b2cf7601e463e375e4e6ca2da8e4b230d2404ab3a6a4a35fd5398a872dc07b4260a25516477a0c48cc095a5b7a9dcea24db5c87d199a2cc4e SHA512 10b4a80e64ce6e53daf73fcd842e2cc333ff55c92ebff06d66ec8beb3ed7c10f529496bda8d6be34f9c41317b2e46f1bd1b71e4fc2f4fbc8872a43d1e9725559 -DIST firefox-139.0-pl.xpi 459807 BLAKE2B 5a61f8b1c6e3de78e9926e8cb60a4c06a42c2658cdfa88056d05e7e92ff602ff82b66c62b0b94e61bf4422b112f007ea7431637be0308a2ba50ad5e9f646525f SHA512 6974e68e685981362abc2c81a2dbcd42b06624448beb1d58856d7c1d09eca3a3cb3d171abda94a9471c0b81c182d5c75c016c713155eee048ef9c5e1e9996d71 -DIST firefox-139.0-pt-BR.xpi 444924 BLAKE2B 6bc2bb68f4ce0548d1568f5a8ff1567ee654d85892844d3ffaed1cf1dcab841a56966e0e178cc92bd25ae9e97d6adebe8d9783e7aaae7a0d2f4c44dcf32b268e SHA512 a07aed72aeba6ac7d53e61a1ae6ad082aa1362c5568a69b49da9a8d1821c1443e95a41e3363dca2f68592970ba030be025f6696a77693267787cb424d24c7c0c -DIST firefox-139.0-pt-PT.xpi 450737 BLAKE2B 9b8b4cdde1f31aea032227deeea7a9d5f04730c004bc4b6d167f590c37557c1a36463f0911e0e987979acb5ab94a833a9433e094c5cc2516919be27d146cfa63 SHA512 9341a154a8272393805901d062b67c1b7f22f9cb75ce92dbd7434ba7c3797ad28796f683083b970878c0f8bcb1e778e40609bbaf09ed9ae03472243db1a8cf2d -DIST firefox-139.0-rm.xpi 442531 BLAKE2B 9f0915389e11f7c4d09e4314eb3b8fab6cbd972d220ee79be7daf02511493dadbe2c8717df7c4f6d6e3b3ade208de4d413da783b40b9687019350c5e1467bb00 SHA512 1db97f9a591e730812cd0455c1be22973e73e14501351c27b2f6f6297a09ac04f3d4aaa109feadaede1462913f0814bdbf476a1826fa8aa52484fbd1e743376b -DIST firefox-139.0-ro.xpi 369468 BLAKE2B a38349fc1b2dcf1dd2d1751efd5c800279e1de342b127881f4c983fa3873b360a69b0c51aeb9efae08030f47fbb84e9e4ad15ac23f60177cb845abbe8ff0030e SHA512 5225b497b507189509511981101d168100da2ffe8ad48b1de00b1ce7c36637fc2cd74057648d452725b09435fe27c86740c5dfe96f831ad68210c9e35c7a2846 -DIST firefox-139.0-ru.xpi 529326 BLAKE2B 62f96936388379ac137bfb7066b072b8a2d5a8e912e95c3e953d88402efe3a844484e9f4a90931a9cd8a005eac633aebaf601a41e761964730146abe4f549d6b SHA512 e659a6b17dadc463bdd16a6d26c92ab00244dc691c837ec7857f8ed79e5c375f8f3f859bc18bcc909f9a5d1de515a18caf6dbe9445c33349560d865713a1f397 -DIST firefox-139.0-sc.xpi 409835 BLAKE2B ac4959a720aca4bb04fd6f0fd0f3cfad76344871e858a3dc47ee2cd96cc7ab6a16ddc5a4edaec4c64ced5b451a3d112d237939d1cfa27a1da2584bbe4fef45ed SHA512 cbf98e8933e3fea1ed81b0dab69d347d77c397d4fa6c1cdf3e3bc4f5dd95e4ef8f9e361f23d554a5f946092005b5d71acc2084b8d25aa7302309d906e1189719 -DIST firefox-139.0-sco.xpi 327255 BLAKE2B 616582ef63780785353ee13b40bf0ad58fe6d7a0aab89a89c9b81deb246a7b0b53a5818a00a6e53ca7eace6ecc64927f4d7b607d4b119d5fb0fd1ddd9fde40c9 SHA512 34ef44fe4d720080e97048ecfe40a79f4e1a11c847d5439ee619734e5fe1df26875f84bf7c1848ad4890dfe4111dd7f600f6e413c4323686692b717d36c00c7d -DIST firefox-139.0-si.xpi 416104 BLAKE2B 4c56b8c9d38f38724c58568b7dfb5c2b59545785e810e50af2170a2f066ffca515e2da982f55253124b3353bca651200111fac6a37ad0b086008712ac6e377e4 SHA512 3e17b625ac18ccbf00dde90ef3f88475e55459ce7369a8967ff263b07b256bd889bb3f34e5814a279217276285fb80f40b5ea30a85065ca75b2c55845e1dae20 -DIST firefox-139.0-sk.xpi 472198 BLAKE2B a6be6663c22e923331910d07b6393926f10a79e33516a4a2866bd6c8aead432b3e687a49e4f6a8d62d137b4652f458c7e489456b4e2234c1193e07cb36c76222 SHA512 0059a6e717cb2f98fc9299ae1cbef2cfd43a5f500d182180e471f08b8de9ee1eb91e9d4ff4c9319c61ed2516852cbf7dc05fe51ba80a784c7b9ba015aae39d7d -DIST firefox-139.0-skr.xpi 493738 BLAKE2B dfe9120af93da938b0e352055f3a86a566ab4bc5f03c79db36fa3a3a1e3c80274ffad063c38ca1309ce5de3d015b8226435869df11bbb4589ac000a00d48b1a4 SHA512 f549c8ffa3432d9d6216c203a5a83e9fea64657569cdd198affddcc361133b1d2d8c6505110754c489114b01d90aec7a3c5f7dbd7a79158841b151ce9febe4b6 -DIST firefox-139.0-sl.xpi 444953 BLAKE2B dd43bf3003f5ce23a5a7f3ab83b238dbe3911342c6ef174cd778a25ac2700e11f38869e45a0ff17fd6b0d9528cd5a45eba98f80a3d25e1def8d3570ec1598bc8 SHA512 9951ef8ebeaec29738babfd7f435ec52353ad335359642deaf1c0db5ae48de0acea8cdeaea462cfc5faf5e375cab7330cb5a156e04b63afddfafd8f19db3e205 -DIST firefox-139.0-son.xpi 276309 BLAKE2B 501e91adb5ffdc9edeb4f323bfdf5f7dad5e390e1b7c0f474763814ada083c75da534bdd29470fc1b32e8e47d57351a2eced0d20e565c8461f5ee018bf9e933c SHA512 6938f37af15e7be77587bf6c9de9d31f6f88d94c6e8885c2346bfc392e93dffd2973a82dc3b66939e42b48427f0e6191d5ec4cb417c3e177acb25e713e6cacd4 -DIST firefox-139.0-sq.xpi 460105 BLAKE2B da453c95921f95059a8b8ba98d27f0c6bf3052e2d94384122e57f3cb7685580cd62c3885bd66f8bfc540b5761eff91c33c2f8dcfc1c8fcb4af90d0b7bff0e191 SHA512 b5856aeb73d17c673256eb76844d31153c266d64eeaae09cbbcd84e121cb8d2b2bce5b46751fbb03f2405d9a218cec358dd839588898844b638dd9de72acf1d2 -DIST firefox-139.0-sr.xpi 456113 BLAKE2B 4129658e4e96c2ad80838055b733afdd5559e7bee4ee53bb075c2eeca844640d0dd400724951352a4b80d2b76eaf75fe7ae4aa4588e20857a387ef1aef28a9ee SHA512 46dfd8b699616aaad79ef9f1927da1163fb800686afaf69682c75f2c808ae4dcd83d44f9937b80548bb7ee650e0368bca80bdc12f322d1c1279705786b62c499 -DIST firefox-139.0-sv-SE.xpi 440190 BLAKE2B eb190646483222b8c9f8d87b7fde8401a0051231d247094fb86370aec037843b0eb5b130600f970d3127f3c9d9a35f83ad416141ad4ce11fed86078cd9080fa6 SHA512 ca237c37851d2814af5b6f567576ad88f4bc7dd6cbcc5e9db0c94c641423e8ae5f8b86b75090e705e035fe48150fe5c919ba7a2658f8ed195cc40bf3055c8506 -DIST firefox-139.0-szl.xpi 346233 BLAKE2B 0dab3a753ad99524292379053455e4d8cc79111f9b09384804abe61f71414f5886f5238b2d8b75f0d9fd6c89c9d346faa49fd1d8915d805d0967c28ee053d51e SHA512 70a7afa70ab9019f28d8dc0b4676636a2db5e4b96748bff1f5e4c830a171498f31550fcd4abe623cf31696eaef7b2986c6e151e4462b2d3ab2a415872e1e71b9 -DIST firefox-139.0-ta.xpi 341130 BLAKE2B 89380faeec0c1fb3a8d18c55f17a2862627519a12920210ce1b973b3c46d1ef8e7d60fcede26b35d669cc9402a0181efd976f1deaa87b9779ec60e361b0a2fdf SHA512 87ef8d0b04b193fc1e2fbca024d40f6cf0d1723aa1c10351f8dce57b39ad3f5889d37e0a8089efd004e76e211f3030147a52c576cffa27b4069140365c7221f9 -DIST firefox-139.0-te.xpi 385840 BLAKE2B d02a73436c69901e2a0d096f8e91883fcf8376d0e1dcf96e79566fb5d45b1dfb5408dd59b6bf6ee7fe60da8f299933f9f19990aadf22954758ed6ae4655c37ad SHA512 01e698f08d3c7cddc8840483e10a89ab5da89ad2e58cf5bf803137d23828c4e0c01a0310afbe0f03b589913bb17e94022ecc599b16add7b3afe8efba0dd7ebf6 -DIST firefox-139.0-th.xpi 507678 BLAKE2B 31e0a530487f771e5876e6790d26249cca1de9ddf93214267a06bb481b23d351a1d84319bb5b72f67c84bd37dbe16c3d5f58a9cd20397c3486f226a9f19f8f61 SHA512 82a078280f0db1031b35cb1ad74e444f194b73ac16c6928be857ec0be572b39d0b545d66b0a3a596e5561a3a35abc17d9cf0558fd5766481a1557db83dfc5441 -DIST firefox-139.0-tl.xpi 360238 BLAKE2B e4ad29283e2a172487502936325b5e53e8b735c6982389edc8da2c58a892292d50f699c72d9b56c8f92b02ad228ab089dca741f4cad085a6dd3973fbe0b7fb2d SHA512 3a96590aaea2cabbd3be2833e83d7ac8b7dd4d38d45702f9870f41d07b6bee5728a1312a606019c4b22b38d6b98869bd668f39a2f01081008816dee477988d19 -DIST firefox-139.0-tr.xpi 452760 BLAKE2B 5c22a15a86798fe880f170d22ce1eab7529fd253b88f08894fcdca4dd880149284401b0f12cd2447ae413cfc269fbf75db396044733db6957e16b4ecf84cd094 SHA512 83cb47b65d410de24afc826423ae4c9509b43de6bf66ab6312ce64f618b49ab4c512a740bf4f780c2a1c470a545857046073564b740aa90e2eeede2f41be139d -DIST firefox-139.0-trs.xpi 326650 BLAKE2B b745701d9541b08934abc2a84f8a9a87824b2a9a783492dd47833d2a792613dc4eb3474a68889a57e8a937afe1047d506614338fd0d7700a258d769423a458a1 SHA512 4cd825438c7d01535b1d65710e1881e6d2f85116535661dd8362794a0ba593c6e507361f4e3371abaa0dcbf7f80b624633e8a3f740ba2729b3cc11b6fc7d014d -DIST firefox-139.0-uk.xpi 521124 BLAKE2B 38fd262f0e08fbb845d59f17d12c0d4e23b581611df6b7c8e2b1ae81a2b8e693a6f9eb212863d013ddea4da9e1bd95b5655e6a2f79f131227e6409fd9955b0d3 SHA512 43e06cc8431198fd451cfaae14adcc457395c02bec8e4018756e84b442f884ff724230cd0e828f36743cb9800e24de8b932ada66e55a5a1c0de7312656bcd229 -DIST firefox-139.0-ur.xpi 373546 BLAKE2B 03564f7faf2e06767a74bc41ceb46e1fba69edb90772bcc4abacc040331144b53675f0fe228c7c4721c4cffbaa47109397f7fcca4865c90209b78d82bcc3a608 SHA512 7ea3e4c7667129dfc4783f77da2d595e044d6623192cb43ba51c0d892f0f082c403c2945c50303ed063cfbf67f68010467e403f0f641dd844252f3bee93a637f -DIST firefox-139.0-uz.xpi 306875 BLAKE2B 52697c818d19e411fcc89c2ed7441993142d173f3f1c06066fa7aae94e6b2c8281d348c36a1b8dae679fdd773a6bd0d363c66bdb4130ac07f941865e50a25732 SHA512 398f817e89afc4119b669ca37415768925e582df603473208cdbc2b254487fbaa39e85821b7215f8733a350dedb5927b0731be4f9910e2d1a259ac331caca6ce -DIST firefox-139.0-vi.xpi 473298 BLAKE2B 1afeb90da285ad5bf657ad0c650b4015899ddd6df8553bf7bb84ef07a8811f0822a0822b0057d30835ad8caddac101d736c431e8d4ee53b93cc8fce30cfb13bd SHA512 b616553b96c708cf424c5fead1cbb7c959ce125ef768478e0ebe8f6ffd815c5ddf6b40541737557bde5c89ddc85f404841522392bb80e3257fe9edcae0d174e0 -DIST firefox-139.0-xh.xpi 276209 BLAKE2B 335f347f5771877ad65d972df27b7aac64cbd39db6c0f0c2e5dc9848b1acf06e94e22c0ec3159e4470eda6fc5c6065f3c12bf86bdf39dd44310fad6c2f64d563 SHA512 f76892da4846770b43dd6ebfc047f536adb0a92b5a9bcbb14ae1c456a2291871eb823115a3f71e999e63088cfad1474a334574a925a3edf36130db9090c2f1e3 -DIST firefox-139.0-zh-CN.xpi 464971 BLAKE2B a880f2062b6ad1f93292b14fdb8451e5b7fa5ce81d3151ad61fe7e80842d9a3177509de718838a9a1dadec5125b28fa673dae8a87c90bba4aca3a259340d544a SHA512 3fcee19114e6478d4e2e469c86484863cfbaf81059ddaba81a48631c666d3468ce9f62449f7650ae0094519a11543dc52a26e44e87a052054223905476e6563d -DIST firefox-139.0-zh-TW.xpi 468022 BLAKE2B fe35b36cc2463f76f2cd6b87d809b26bf6805cfdd9d7494c033f3aa3a76c39399afa15d1ac93622ce41ac076b22a284710c10c8c38ba0e588311d695898dc91a SHA512 df903d57247b37801382e8f3c8456d955db77ed9d49d91f67ee414d506ebab5275c607ad9376f2e967d079595d134187507f24f3634577f02c188bb8b3d28769 -DIST firefox-139.0.1-ach.xpi 297648 BLAKE2B c740b9222d8d1d6e4bb6f6bbfb651aabde7c715056090079c051cf08c4b07e88f02ee4255eb203371f3180bcb9b8ee02fde0f2e85bee62cf298097da679bbc0f SHA512 f341784fda067fc51b0f9f3d1098873159c91524b1b633c6277fcaf3ce9b5d763a1a2142a8f49700a9dcb059a74e7b6571aed25a4cfeb1139c86d6d7c769e35f -DIST firefox-139.0.1-af.xpi 269823 BLAKE2B eb16254b96e71ff3bbef1d6eb5aa047fe0aa993d3d29257a1d7b19296cad548e54e0ef88df28e6e713f3da84e494912d4552067cf05b9a7b760b5996a95796e8 SHA512 d601f4d1626b1cc87b50bb4e7096b173ce64b5a464a1b3738823b521de800f7fc938223e1559e038c78b64b00b659a995d9ed97db5b60a6494285ef6fc6db2e8 -DIST firefox-139.0.1-an.xpi 335648 BLAKE2B ef254e4491db20fa1706ca3e1ac531ad4a3908fea5666739207c4ad8f81f301b27ce887678981b836d3a527c52ebf1eb80f02f722dd8d1cc75f2ed2239569223 SHA512 b8ef39aefb210abb7bc8de2d5cfa700ab0302fefa58214becd8802a6d6a449b2b69296eaff315245d4d21db2aa5532d78cee01d419b94e69f269d8d51f5d3014 -DIST firefox-139.0.1-ar.xpi 444097 BLAKE2B 53527927f8d3dad21da2c4f2c17bf73e7bd1da90508985785a7a40f4d00448361e7f937f309413ef7082f307c91355731856ef517d190bf618eab7710f4cad02 SHA512 38aa37c14eabb7bcc44203fdb88b82f80a5be7dbcd95069701cd82a79d7a5a42be6d5a834cb1fce5b2e90ca075dc4c1d66732b3d2bee0da1b904a75abd0139bd -DIST firefox-139.0.1-ast.xpi 316642 BLAKE2B cd75b53d28df7d1de1868a7d9857759ee5bbbb69810492d8514920bdd41f033f474b8a9c875ee03481f8970e9f9068e3fcb70e1f74c894824912b64f5e75c0a7 SHA512 4e945d849526a633aba3c7c96697bda6be310c07d45924af611104440afa5f040ef801c0fb44ca9accb60b157b2a1c09ca4032e702ae81c79cc6bb2756b9dcda -DIST firefox-139.0.1-az.xpi 321620 BLAKE2B bb6df4a7fd60cb90dee2f51128d30d0cb93bdf0b2a643ceb9ee33de483001f71db41798e4dd89c14494b9bd652a33c8912f1b589af7a51b5b45f6d5eac5536e1 SHA512 68a8abba77310105449e21a86b976712914840cf3385982ad034c4a5e53b8af37a65997a0ac47b33ba95322e5b0eeec08ad0f31a2393da67b922d734f7258a8c -DIST firefox-139.0.1-be.xpi 525085 BLAKE2B a7bea5aeaa085a0b5f57226a14ff1b11edda5c5ed8acc22d280574349fabb1c49a83decf0db607aefb1f50fdf19b02d21bd71d356e5720812f7f05b8a9c80a27 SHA512 82b8f46f09123f6143bf397ac6c91e656865594fd979a9b600c81ab77699c57fbc62c1b94871707d254df0f5f2c2850513724a685fb54067319ef87694ce10c1 -DIST firefox-139.0.1-bg.xpi 454366 BLAKE2B cd24f6ea7bdfffaf63c4e0b83ff073b6fc1a7d71133e94fb37f7a26832f38a530742434505b9f2e6d2aa17b1038e6279ddf7baaca99be23b7ed8474ab188df60 SHA512 4a80d483a24f4c8b5faecc5576275ddde7d8b24efe4325ea34a5e6607241c0572270fcbfc34eb2fd1c1122ec1e07511b53771e42a8b9cd2fa058dcc63036595c -DIST firefox-139.0.1-bn.xpi 415411 BLAKE2B 4ff339e55c99d7d4f6e6d47509198f0f781e8213a931b9694fd4a42669daaf5d2448bdb1652a7964e88f308f51fad9a2801d06ec2ed5faf6c01f379a2e3723b3 SHA512 5a270061da6d29952cfe1c47e340363c6a2345b0891cb6b373c34999e4b69c7783ceeb0f2163164044ac99d44cfad44fc79617613049229782d723e152fa3d4f -DIST firefox-139.0.1-br.xpi 398170 BLAKE2B 008f3c794686c2318a46a6f1d8bb34808ef3ea627c19aaf9f6e799a5ab4804718dadb22535534aeede2079cf169046434b5257e6e88d2b8a55aa3b9527a274d8 SHA512 8781838ea14a9c13c96742e7721b0a89c5b66c749ef77a30b8619aeb309c6948f51e49c5a9d523864811851da466516c355fa98b84eedd67421a2993cc07a1c4 -DIST firefox-139.0.1-bs.xpi 366756 BLAKE2B 503eb994b824d8700cde252d5b982a212d5ec0882eeb1918faa7a00829fe344a85bddb24214a73326932aa67dc6300c76cbf8f1ba3afa8c026d545221713c37d SHA512 1833caf47693131d27bf108718efdcebaa9267f3abb43f510dc742b97fd2cdd3d28f90a57e66f132cba17f3033d2f25fb9a9c596aa1c086e4de0d2bb6200aa59 -DIST firefox-139.0.1-ca-valencia.xpi 361696 BLAKE2B bba3e998cdcce4f3fac97aa40f958ae1cf5a9a35589401de8a6fe67a5b4831d1c43078c7e7d8892cfb88f3d4f59a24a2e302664d92c2212e4672e67b202bf177 SHA512 629e26078dbfd03388b0f7a858aeb476c1b6a1a47d48c20371ad8114c003b1dfdec01b2c4c2787e49729597591cabf737cde34f7c699aa47aee19501828880fc -DIST firefox-139.0.1-ca.xpi 404031 BLAKE2B bd90e0cd8ab57d341e8d9a9df5f1589f13eebad2f772be6d388c1fc79705f52371aeeb0274da54b189100a340b47595235518d688f8818ce0e13131831e765d7 SHA512 964ea197b0d5d13d0310d8bb4a6e98bd6b469db5fa3842d1094e35a87e9952bb5134e86eb697049eed7ffe5deb2a29eb26a5ba8c0710c94258a5ed9d7ac31612 -DIST firefox-139.0.1-cak.xpi 394718 BLAKE2B 9a6dcff0685c88a2c388bc60cd85b5751cbd979b43c6c192b501408094c661afae089f319d9ba16cb9ad77b362b92b39849d2cde11ff4a03d7c28084ac8d084f SHA512 f804036776336b2165826e755262f83c137d29eb3c04023a2b33660086e90dd3f1076a1f48a06708fe73f55eb0fe9830c6f994bfda7b4ca78e3ed0a9eea32a94 -DIST firefox-139.0.1-cs.xpi 479916 BLAKE2B b9b2e6cf66a3e0a3a0c7d84e75bc80622c7225cad981454a9bfb808a04036cd47f06a5378ded22f9827868b41d9f1bd6dbba5f5e11656102531b135ec1bec65d SHA512 586fcc84eba564129778f1ace040d74cef3561b5a0fa1235751888275d1c43b1c51c172adb5b2fed5f805a40623fbb627fecb45802e94b783505dc3a50d7329c -DIST firefox-139.0.1-cy.xpi 446086 BLAKE2B 19c5a0252a7bbf928f25a472f5c90ec620fa1898374e0d9fea2683f11bcd5baaded46db044261853597f6fd5c78508e22aef6b650fbed2141a74aa94110c68d7 SHA512 6ed74d321e2f22d27f660f425052693bd489af34159dd2647dbb3fd417e6e3aafbb18d1bdd5d03c78e0bf93a6c1928b38bff2ef3ba768e46b556304e58486a7b -DIST firefox-139.0.1-da.xpi 435225 BLAKE2B 171041ff296e792c4516c60a2ea4e0185eb85f37e4226e4624561e160f9b650b43d97b9555cb4a6a86f680bf872a1d9d2a1179789b2805be9743a29ff93a3ed5 SHA512 43cedf93e9d0afc441ef511f3193287b7a7375e0d3bc5817e8056c8710a56a25632e4d7e420badb7e91768f46ba2849f97011409075df70b08d5b613561a19ea -DIST firefox-139.0.1-de.xpi 456789 BLAKE2B a026e2ee36a396c643e4fd9c6878fa7d00fdc25d51e9a915bafb79a3f9d62a77ddb882d01174d054d209ae1e2679e89ef0065ea26e46244666bdd1db0a4ba13a SHA512 6f7232d7e2d2a6200e6329d18945e3dae7fa79b2be2d3bea72ffbf00bb8039aa60ecfdb60cecf650c8478329859e2de54225189afcd974ec78b2bc46af4e968a -DIST firefox-139.0.1-dsb.xpi 470274 BLAKE2B 425a5e4ba2d56e0a5d474df3aa908b5534099279305a5c6a579545c81bd17aa1f41b13139f22abfdcf327cdce42402a468669131775c7e98162eef85b73fc732 SHA512 3e5af8a1f20fe62d1ddce51c769612b55e936bdf0ba2fe3f88de13c8404d594cb723157066226ed4aee1681b5e248b158e17a78bbbb80077f2e7619315ae0a8a -DIST firefox-139.0.1-el.xpi 541199 BLAKE2B e0eb54a8393f6653b745a173168cc4f34b59de71f4e2a92de17429f1ae272c5bc028627b0c509982a9f94abd01c29afe24a17af1a11f2a892fcd4bce89e07443 SHA512 22310ef88ad31c5cb3f5d01f9e80081f3ba50589a75400d81860d67162b4de4dc76f85960cb762b4d8d70c94cfeece7f6fd229c2857f2c986b238aeff45e73e8 -DIST firefox-139.0.1-en-CA.xpi 413603 BLAKE2B e5dc9c86506dec20f43c0b0342677e5d6d9f455f58e1fc0bdea6722008bc7f1a4c1c01a2bc862e3b707f0f8d3970a24b009949e6accab063b50218f2b6e76633 SHA512 dd2de7c87f7374f0ed08e9e34bf45e08345a937e9362cf12db00805b6d1ce8b152db776ef9d8e4aed075b44b0d0f4d2cd0b1f5661a5d02a09f7440e6df46c700 -DIST firefox-139.0.1-en-GB.xpi 415493 BLAKE2B f0e7b2949a103c212fc50612a09cc95c1ef43b6d3eb9e72e7bdd1e071dc63cebc3223d42b087cc43d01392f38247134b4ae717411cac1f45519cc320b8924d98 SHA512 ad76eb3bf3b32fad0f618be6f9ceaed1bb31a33e3a8a1faede317e3352e85ade9208da75adc8cbb6d12cf96b23dc2e936f539d25d48147504238aedc78cd1bbe -DIST firefox-139.0.1-eo.xpi 437564 BLAKE2B 4dc7818fe372e6d287c35b389ff8432e9ea715d0aa276a43a7f58626b2b8569aeb073eb800dc49a2f853ea79dd803b0987410e4014d7d062dc46ad25e38c95c5 SHA512 df633ef9740d8db25f7bc21bf9392c63748b006b424de8fdb1d5bb55b4125bf4bf15e8f8952bed00203b16bb7469c84f6724a5ec7afcde42022d2404c865b02b -DIST firefox-139.0.1-es-AR.xpi 449706 BLAKE2B afe20dfd21765bbbc31648975b12f334fa07ebc3ed0eecb0f149788aff16881089ff2db1b46360e0aeaa393fd79691f9a2cff301fa4dad998103b18d911f9dee SHA512 15b0b55ac6ff34a03fbb3bebf8e8ca358b8320fa4d1804ed3515df5422b385bd3ed100add942a7fe5f56a0d7f736a4557f373ffbfc8ff525500c7b4a8514104a -DIST firefox-139.0.1-es-CL.xpi 450462 BLAKE2B 3cb3dba049337e9e5d2b82d10b1cefd15a51fa451a6568b9cd17c6a303e6d28f23a30c5ec662c1fb3b241147944717558fd0eda35bac9ea8b86793a78afaae03 SHA512 a1d437ecc21bd4905fb617bfccfb92b839e414120c56a172cbee89d5e3a5368b67fb542220888dba8ebdd374674a871e1c48c1e2f580c1116f8c9c5eb5fe67dc -DIST firefox-139.0.1-es-ES.xpi 451250 BLAKE2B 502697eb88ee6c28c8ca8dc22952ea2cbcc53d5bd5915999c614913f36c0cae5f43445d9b92637b4488d54b2577608f1ce0932f7a5dd5a7da09d18a1cbb5c9d8 SHA512 fbc3d542b8e2926418d745ca2427d5dc6e931e547997f84ceeb0bcca0f25755f543f21d6e39df486558bb4852d72cc64c28ed9dd348dd8e568fd34d033b51212 -DIST firefox-139.0.1-es-MX.xpi 444383 BLAKE2B 513cf0323f7ef9ccbc15e7b1d91e0c9dc5c0a4fa5d986057321fe65bdb7ae50276f848faa3a8d1c72771a14541942cf984696f2b527e1deda8b9f24e550747e9 SHA512 ded694a6d0770f8704fe018f88229491960c5297252bd45373767d52ed58aa12287f4e92ce6971f2f463bcea4efa47e77a41e0a832ad4d5aba1ede561159fde8 -DIST firefox-139.0.1-et.xpi 362506 BLAKE2B 41494cef98abf6a4ff12c8c892726764651fad7764cd72b3b6cfc5a80d4234511c0bc0eb0b653dbcb10cb2d9618832220f979de21226a32b3a3ef5a7712c4dad SHA512 913f56a7636d08833e22fec2f542c4481fc6f46d76d4cc5a013561607e3119a9ba14a85a398a85581dcf48b8a0368a2799d003e02d2f4cbf1939ff0dbffdf3e7 -DIST firefox-139.0.1-eu.xpi 416689 BLAKE2B 001b6bede5a8b6baf902b05adb1cb834505b8c5cb07f5c1f5d04366fd57a7c423ce1974ccb486b6e30513727ee5baa4ca5f26b29d4896ddc2d9bfcc07a398bc9 SHA512 b2ef14b465ce49aaf35c466b2851c5d7b377839be5e43c760e2b452e4dea8fa305daddb04ce54e7f854e38d54ea5c0e0c2a3e9341b35ae9b0e0f779d5fbccc1b -DIST firefox-139.0.1-fa.xpi 424172 BLAKE2B 8123dd5744651c89f11704276a8f8f5eed919f5cf0fc0e6c6364cc4689319fb26380a5de95905597e1d9ad895d2ea8428ac8516fe4a70df4ba60f6d8e7e92324 SHA512 a10bf9067bbc751665cd89a7c8fccc8d454082b92f70e686919643cc659a6576faff8a4ac6e883c0cda386bb6cf57d505da093177cccc79b3bef979ee244a0a9 -DIST firefox-139.0.1-ff.xpi 313860 BLAKE2B 4857678ec245b4d3cbc0332ba39cb92cf6fee168d3aa1c28d12d8bd2521352496acabf66d404cf31bf5d41a719e5e5eb0b3ed40ea4ad789373a05f256e01b197 SHA512 33d73690e07683355742799efdc6e9cc5a86284c5ff3cfeece38b0d2efe138e6a5499c4d3df837cccd3b6e2abc39c059fbc47d30af4d42cc27c81343f4896b98 -DIST firefox-139.0.1-fi.xpi 432417 BLAKE2B e93573e06a9885253e834882595d6ecdf48c034ec14c775b27aa0c41dc038fbccdf574d5fe70963b65ce322ec5abc427a28613856ad6a35c55db3020d566c32a SHA512 0652cd4a760b12cf40b1df7ac9c5b476f09d3617f885e47d6216e31fd827311dcbfb0e1a5fa635bdea40fc17ed77ed845da51b3e20075151de9ebae2f05035cd -DIST firefox-139.0.1-fr.xpi 462412 BLAKE2B 5025f23847ec026bf37a04d067f5206586480610841da34cd69c1e65e27d70f110a0e84fc569b344dd98dff3e09191dbbc02865936c58e07c7c97c86e65e225f SHA512 77ede5bf8f4e82bfc51b3020a9f967c1a616e511667738bd5712555cb1a93985979432c9e48aba94a61313b134299b1b10b4a1c16c47558389b8c94ae8f76329 -DIST firefox-139.0.1-fur.xpi 453093 BLAKE2B fee74be10ec3b7aaeb9e78028dc5b131709c962eaf48cec6aa4e4911a8afb5e117440fc3d76e18b51e146009e1da6ec5d58f29ef64e9866f0a1a37ac58ce0039 SHA512 0677fa6fa7428e9e70985dbf16e1c833644b441eea779e5eecb39f6c70e19489e69f74568c2a96d4c8bcb868c6aef730f221cd1fe311b4703bc2deb4b7c33162 -DIST firefox-139.0.1-fy-NL.xpi 446334 BLAKE2B 4caca2f1309f909e617fbbb2ace065d57bb96249baf7b3180406bc6986a00375751e741e34dd31f008a503d64ed1b63e5e08804424aa7b59970f8e26adb5b1ba SHA512 132c0f94c617e9150a590bfdd9e782962bc142539955b06182437b8df476d652755d888ed0773323274b6c22f1d8ad1300a6463c363ae5407856f5e332435504 -DIST firefox-139.0.1-ga-IE.xpi 318541 BLAKE2B f259796bf9dac2d461f276dbf732d84de91aa90dda8cf56270ac94750d56dec52398535f598940fa4ec0a1166e355ecd55191fb6d3907fb6979c1294ac5c3edb SHA512 bdb0223eeb93afe472863a2038a671127aa389a705852caab63889369a36cfc747723f6383a4cb7b18e72d1b5c9e59203d67f0edb23b6785597e513bfdad9dd1 -DIST firefox-139.0.1-gd.xpi 402972 BLAKE2B b9bef917c4a0d0496d02bc461113e0e13c7e5483e65b0ab1717e63d104e78d3ca90a85a4eef759ed3ddc4820c3a02708589381bf082745249ed31e49469538da SHA512 4ed027f2a645ee6fb3803d5bc9422a1838f1d2bc29ac3040493d5f31d6e20652b93548b7a2439f1938ea1a203354ffab12e91892d9bcbdaeb807f060af7e97bb -DIST firefox-139.0.1-gl.xpi 409740 BLAKE2B dec33226610b80ae1ec8f730e7e585b277502fcdc06cf21c9362eac313cc2cd2d4d014bb5d487bbf5d37f32ac133f49fa6decf96da37b63e1b97465a38cfd713 SHA512 862578f7bf1701bc03f879eb70818a0d7b2a2bdd49224aa6017bf4c42465357f9900db4e3041c4b5aa310ec9064c0c11f8e8e3306eb61a9c7c15d9c301e80b9b -DIST firefox-139.0.1-gn.xpi 453110 BLAKE2B 8ce16b8e9f372fd2ef5b3115bb6f32bc957a17e25ad2642af1d0145402b58b735e965a8cdcd9815f71a295ee21e68e320f47a772f17b0868139873cad3d30a0a SHA512 317558a31879bb68061506c68d0e7c78e37188b54562755949fefcab95112b71d53853996c348ee38c3f888e522bc451f5834cbe50e1e871da07e41a34fb8c86 -DIST firefox-139.0.1-gu-IN.xpi 362208 BLAKE2B 0bcccd08bb973baa243f80d6b1fd4696fe7cf68e0919e3f7c66f0366bad063b13b3d0e7a69ca8fe84f1fe15cb788521ed93f6b72a437852b6c48802c3f2a5756 SHA512 2932d617d1fa9424510df6723dd842de1a5b998074f0ebacea07295a29b8941cd2e0838b0050acc31bdf065c3ad26e1513f690e500b5f17dc76d17c6d3da5d27 -DIST firefox-139.0.1-he.xpi 448713 BLAKE2B 8328e88260ac21d0a50ff0794390a7ddd5f4f5275613f438d8fea763aca23eedc28e69194619a6cf8f003398b34a2c073357419ded5b2a2652482f8fb9f744c0 SHA512 008b96692ea4598e63c022413715746f25df26931a9e10163401c943d74eb6a0589a8317e96fc2f21e95aa32fed2dd9d6e19a2574baa1b9da6332507c2ff25a2 -DIST firefox-139.0.1-hi-IN.xpi 380719 BLAKE2B 61ff8e4e6b82f20add1585c410e353c70bbd051c6493eb25bfacc4850b1ff34bdff3e40c0b37c500d10215b342e4321b6e2aceb7a04dee2ff0eab24a9a78e0e2 SHA512 1c69562e5a4ce2e096a3e1f1a9aa017a78bef221e1859322277e344d50e03a844f8a16d0922546d3e6e30ac7c8f2800b983ad8e98963cc42a63d2d2e877b8473 -DIST firefox-139.0.1-hr.xpi 431200 BLAKE2B b1b36733518deeed56379c68618ab1af6cc967fd4d42f3e4ac17509f170120d1eef88c4fde22a2fef044c4b3a28d80d46dd60ed54ec7d8cbd3fa18a8a20ddb27 SHA512 09aca96f486ac531aa0a01ef2498f8adba8fc97280c0981feac32ac131f53c250448c568cc70acd82c8ecfd31cfb53425289a2006d86b09d0f398a313d6dc0f4 -DIST firefox-139.0.1-hsb.xpi 466849 BLAKE2B c2ff0cec09df492c329542931df69d3332fe592cc4b0a41da5eea924d2442dd74b93efd176439ea424b3a002f87ebb7f3fcbd9f391cd6d8b528a36f032a034a5 SHA512 a86395f1617b00e293d0d21e9a04828776eb5d40cef09a0de075ea1db5599217cbefe16547318e024a1b74b856c5cff3b5f42dc3d40c99b5e6e612d65022c9d2 -DIST firefox-139.0.1-hu.xpi 470468 BLAKE2B 76068cdab647eb427cc64e65ae7eed869b418981289d07b7656b8cf45561fa3272cb78b3c46a722893917f68fa260978a3428f4503d05438753b8bd01f46006c SHA512 0b354cd86d7ee4de8ab7f96dd38fa7815638146c509369770bbca9ae4890e2b56428a62cd7fff44706accbe4eae58eb78d98cddc32e9ea205a01acecb80a5bdd -DIST firefox-139.0.1-hy-AM.xpi 457458 BLAKE2B 347e19d3012aaef9055adc8eaaec033b89f76132f766760858fa9e2ddecdf30837fd5b6c06741ece8d3790d980509150ab6af1357973f6e286afe0a42182c319 SHA512 3856a09ad94275bd0dbc121f47a0e99cef930d7edd9fc98c21173bf53cd7edb45003708e95ee4207cb6ce6434c97378ec1a81bbf2b21549350c4102c4fb9e90c -DIST firefox-139.0.1-ia.xpi 434200 BLAKE2B fb56fbcc2e25ba22697e1c70905db22b1743c6525d5903e279c8c564b47b3dde7b8b8275a11cc6f5e88049047ab147a3296b4f9c2ad073f39b92c352ae394d7f SHA512 661967c6d5028c7217b74abcb056465d8917eb929c2820ab786dd00b9b985a168c7e4eb6f084a9157084e58e1d992c582e69ede89ced346479cce8a50f37e99e -DIST firefox-139.0.1-id.xpi 426325 BLAKE2B af825b2807c0703bb77e8e9ea53b77f503c90db3d0675a92d01ca8808bfe438403b9164511803991897aad83b1fc17ede31096b6ecf50dbe2165377c055568d3 SHA512 f779fccf26926b6327a8c185322b26fc5f80a99bd32cd8855f59a44c735904ed930c50decf6cd0d6c77caf2fd05f395a59c197d2546921bb196a9c79c00c94ef -DIST firefox-139.0.1-is.xpi 436865 BLAKE2B 157667c28ae7636f811de503ed51879ec9b488c490c73699a6839a6377f10d9c0171f000fe327b5a56ece0c033a5953188a030b0dfe2f721f1a91457b12b5e34 SHA512 fe484e67d3a46e2f83e90055d28e199415b92bbd875fe7f1cb2d702d39ad7dff3983ffbc96f64dfd2437d22aeb6b5a63ec1c7b9955bd499083ca428ef94ea250 -DIST firefox-139.0.1-it.xpi 444962 BLAKE2B afac89c5c97658a5775252dfa30e3bbbfbb96f5787f291743a5cf24969b8a082a924548bb82596e992cdd4b08847e1c8a7a267425fe67c781218c597b5d74256 SHA512 ce8da26be9da94b815b9feec8d04a0327a6091ebec7b13309af140c87428d2c67c4d44a8ddaa0ec75fb09eb9791931a1a9178ec60d36be6f4d25f282a98d83b5 -DIST firefox-139.0.1-ja.xpi 485467 BLAKE2B e7d3c405834877cb9f37f51a46d58802a17b4ff32d8d28a16af333d590ddd33ac69ee10d957f28a1ec913be6014790136e063504261bb84605c492a7922601f6 SHA512 82464a3afb82094e07badd2cc4c23780eddf34f318fdb965fab217fd16e2b176053adec7d50d6073937a688c4034fa417ef7ed6564a75e6eaa71fe94f3e0435d -DIST firefox-139.0.1-ka.xpi 498908 BLAKE2B 7c4f415ad0cb0b1605d04d6977be1685762fb8a4190ffc31045d2995fccc54785a303a5c843ec586426d92f233d6a253ebfe94ab53bfe0821f9d0a8335c7c532 SHA512 4be281bca4175d46f790b61e2bdde636031576677f13ddf5cffe1ee0472357e5661adb3e920f794b57bc886079c7fb4c0f63189a156e9fc0af9ca63bc67f21a3 -DIST firefox-139.0.1-kab.xpi 425604 BLAKE2B 1a742431923a8cb71c48e22c24d848272e54f5c76967ef4670d6009cba0e5ce1217c0f9b4471ac5f774eecb9ebf98e7733904fc1b21942aab9bd1a747b5ada08 SHA512 36b4ff175e2ed579116b04fe39058a8a1d0e712dd5e80fd968d63e4a05c39711aa1c0dd3f02bc67e01d96182de878df767616e3b814a450975e584a0b9ab78f5 -DIST firefox-139.0.1-kk.xpi 507020 BLAKE2B 82980c1a2ee0812bcbb94575b5cb407c8fbaadf12bb911d61d1d8419e80d55bbef662d3882089e16a3aa23cb22d0ae973ba5aa2c12d1015b7254465666848e71 SHA512 faa85689487efcc5d934257c4d04922345aa15bf22723f74b432c263271a7f0a95401adfcd245d388c078e6a0384f92998c095b4f9e62d05a8d93744b6f1002b -DIST firefox-139.0.1-km.xpi 352038 BLAKE2B 759cf37299ada44efe74c44e9a5caebcdb47cd602cfbe984c351c826a7fa1aa3cce922c7dd4c7f1152bb6fabbfda884983c30c04c8515b86749c111bee4cdbac SHA512 b55ae4ee8dbe2397f7294c3fc533810d8ece0b6cf7460d00fb26cf1ecfdfcff6dfd0b7d744b1db660f0e1f1cc6b3f1bdbac2ae7e2b31c5579d364833b2a0cf2b -DIST firefox-139.0.1-kn.xpi 334932 BLAKE2B 1c037ea69cc99019f5fc3e716643276f63018460ea2d28bb551c80bd64a3a3d4f5dfc51b22f7a30eba7fce8a4d8b4ea8cc00a5ab088c46f794c875de666736b0 SHA512 bc1384a9c7bc474dc55a1c948354f5e96213c1704be323dec4ab04507d3dd20ae7d4a45689ccd63f459acb6f93af8f7852f209267ee596028f65a4037f8d61a2 -DIST firefox-139.0.1-ko.xpi 471617 BLAKE2B cb5dca714a094e150d77297fe80faa51abd797f8dfa4b7524d84ce8f52c2858a1e990205458441f3546668b16f3ee13466435c5cbfed296b0265b3c46c613071 SHA512 8bab3a12aecff491bb89454ef6916450eabb4af965a8fe74f6f4c6946340ed036935017530c0ccd830a6b27ae17c2681b606ea4a8cb6bde24224c7bef4ff7582 -DIST firefox-139.0.1-lij.xpi 321755 BLAKE2B bd1b53eb5588161cfdd23a403e7a9001a6b14b062eb325c09b3948f442a5dbe71dbfb1474c84f120bc1a05008d26e829c6f03d72bf3b060041d9f66f62089e33 SHA512 ecfed8715d03259be60d3da31a1f35e15b9e2f3502320bf7df5331eac845ce5f164c111e979ec2b0909c28e573b003e44b0b9000d5892a85934c102da05030b0 -DIST firefox-139.0.1-lt.xpi 383467 BLAKE2B ed446b68300b8b2afa60c3ffd83b730c1d8e7c21df1918a8b0cec9784f36a82a4b645da1864b13b5c928608301637b580a4da44f9a6212af894a56a74f2fd0d6 SHA512 92c4def4dcf020cd99c6c02d66ba527f9a285d928296bed795f172c36ffa808e134b4361901d70587ceda5dbe52d3f5f6cb8a0100dd0b20cb20cf9790f7476ce -DIST firefox-139.0.1-lv.xpi 391406 BLAKE2B 03429425fb11753c82b53e0e64101c3557503d7de218a5c0de2c8192a9cb40e79f63d34850a245c78d7c90a71d76dbfd3f7955f832f73c3790defe12737346cf SHA512 b35b191415763afc296024fd2d9cd83d8c8cf0a1cd325e98b8daa68c718d36d48377782b74fafe0ca3d44d87cfc74bc348c8fc5139d5c1436bf9f9593ba3c8e2 -DIST firefox-139.0.1-mk.xpi 320011 BLAKE2B 2c343d29871580c4156405cd68e32ffc3d1e3bbe165bef9ed054b9e7a6ae03f784d18756ed101dedb8dc39e6d1a52b49d1579e519ef64b1c89a2b6a6f047fcd9 SHA512 76e227c0fe4db79878c0ae030841f965056cb8cf3cb2180d78020a7680842a2e1c2153ce4df7441eac4d5bc4bad878636e422efbc0dd2335bb40dd9f4e62772e -DIST firefox-139.0.1-mr.xpi 359465 BLAKE2B 33ab29744f789c685f41faabf41a5d71cd10cc67788bcb07bea12501a5e78df69b826b7bc05c2db340946683c79d546ab859f97edda1522e778a300415e67ab6 SHA512 20888a73b0ee78db70987b3664d7b06004e56ae9d278a7bfbfbccd95565eaadf1d7b39bf95524aa81419c1130c1f013e7a0ce8b10c80c7d9391639c9969e319b -DIST firefox-139.0.1-ms.xpi 298616 BLAKE2B 8f33f9b9c98fe9e8240b557aacfab4d3de1634d711c43a08e669c0b25ec11e50fb0f5fcc708ac61b91268a4f33fbed06c10d429e53c0d23ae5c036db321be230 SHA512 4e134960cefda0694185333aa402479ed45f6cd037ca70aa656b80994c63729800898e45a23e92453b3d0f40daf6e44318843e3343cfd2ea896f71b76c42fb33 -DIST firefox-139.0.1-my.xpi 346244 BLAKE2B 6cc3e1d5cf54512f19e1a8feae36d3bcb200899d95457679169f0b6335e861f6c9d48059b71af3c6ab29e018494f463b9a48dd3b7a039333caa521278b4c43a5 SHA512 8876cb07d65f497c04a3abb5c38a6ec645c88dd9a0a8d674891e865c9bbcc12a87b6c3ea872550c8e0a1b34d3377d7effe1645802ffac077d19d0ce6007ff1da -DIST firefox-139.0.1-nb-NO.xpi 425032 BLAKE2B 04601812116eafcdbd1fa9587585991aa54402b40bd671b8254ec894d6d3c24a552d998c4ceb267d157717161851f49df443a490259af7b0033937d67d5b86c1 SHA512 1937f3ea02eafd4b700ca4e7640a5133d8598d77b5e36afce04bc446666d257be8e58d440d976cb87181cc0ef1f910a85ffb721f099640e79b72fd388a197dc6 -DIST firefox-139.0.1-ne-NP.xpi 352264 BLAKE2B 5f2bf12692e2fcbf1f0546ab443c8dc5117cf92422d1604ab3c1dc786e9560efd6c9aa95ecf21796be7028b4fd8d8605938cb12bdba4103f9e185d4da7f9b28a SHA512 40caeebd5eec1a54f73f3fb395df841db4ade672fdb373ba92bfef02533e0185f22e5ddecf2df3e36fd567e89e3b0e8d47cd341f38f037fbbbe54505a29f8ce2 -DIST firefox-139.0.1-nl.xpi 440342 BLAKE2B 2a7a0612c23c529e05f72b325bc091b2d73dc75de58dea5a98e1110aa4868b1a770f88e9e5e98cac2263a22b7165329297869a1d574a550cee2ceb971d7f79c3 SHA512 1aeed2a01e4948ddf4f72f2690da4f85ba5b2e68ff4f26d3b0c0cfd44846109d6924d31a22905fe87be609d99d9dcc8f19562075ed945b7a2daa6738a43599c4 -DIST firefox-139.0.1-nn-NO.xpi 432701 BLAKE2B f45dcb3aca08b51ab2b648f1a7fe4a1724e1bd496f0348e5b93597c11d24bd07093bbca3914587e28a47a7829329482eba88a06a60477dff623361d9feae45c6 SHA512 58ce31ffc4297ebbf748955acd2942e8f310c00145b4dbccc6f1040bca24ebcba3acf48a45fe110c46f213df4f74bd80fe1ec79efa4353673b43e716f949ac7a -DIST firefox-139.0.1-oc.xpi 416065 BLAKE2B 9e8c4b82060ff2c35093ea759ac656ecfb9c4636ac146a02be05f12fbf1ae4b796cf21b31e9bd5c79a696d61e938396528fe7e64994af49966ce417c51e7206d SHA512 a747477cec8bd74e2b2da415b7195928bcc6b18d77f38db9c87a313873bbbea53bdf813cb8710308facbf035ad531aaca971157ae14b2d1dbe95fcd42d6d7753 -DIST firefox-139.0.1-pa-IN.xpi 496793 BLAKE2B f38e815c3e2d537563c9ed4082e7f9e83e6c66df707d363af7e34842b03b337879cf2f030d828364020de00e322c0c669a589056cb6801d3c27aacd0b56e53de SHA512 4af87b33f86e1181e408ca6b76391b57ac4443076b0d33d7811e1acdbca24524d446590714dc94e07e928c75954df6e191ec781debd5cc99855e7a16d2bc3724 -DIST firefox-139.0.1-pl.xpi 459804 BLAKE2B 4a2d86a84ad9ea0a9ec7e1674349c779b40e2054f17f5476394640800c4a6fc84b3e346faeff63e7f536713944af8f5c8dffe9a0e4064c95929439654fba4aaf SHA512 49b416738297b7f60e8f6b09d042ec407e2063e6eac9538b4175178c6aa3b0f3a5a22bd0e5456ff01efa898abbd7d4480e3039ce3515e53f811b3fd04f8fdfb2 -DIST firefox-139.0.1-pt-BR.xpi 444918 BLAKE2B dd79ca4651d72012d9f852ea63be3ac041c65e589deb11e09498732aa854305c5ffc0bf2bdad7e24c221e17eea8e8300fed1d18cbc8ff58b6eca7f1fd6a6b02e SHA512 0bce5f8176a954ccd61b52e6fc1a55bef4d9a2e059452fa9c4b9c046a4bb9a9def2fdfa37cd91dad8591478b145e632610c4925e92793b94cc433ac96c6e29cc -DIST firefox-139.0.1-pt-PT.xpi 450744 BLAKE2B e7a3651c57997e78d118250aa0f834be320cb51e3a958c54c86fda73bf261981f145bb69f4aaa4b1255207bfac3e86a903f099179a6d6320066a4b250a3ce136 SHA512 b133e962095c8c4302735ffae3d1eb5f83fb2521beaea7b626b9c72ca7eab240a3c5d81572d5d81095f474048ef3ca608c00db9fd86b39cbe5d4fb9decd6cafe -DIST firefox-139.0.1-rm.xpi 442540 BLAKE2B e0ff06a9ae520ebb93d3f7e7acb22c2190cb7c45593450637c92d485aa8260e92b621295bcec77a3cfea157865aad3404f8aeb28533092ab6b0922ba10731a1f SHA512 f15a2eed91115b01513e256edecd60c506faa6e01235f1307cd4d217fc48d78f26ccd3062fdd312dd57ff7171939e14cd66bbf6b0706b2b2287548cf4abe47e5 -DIST firefox-139.0.1-ro.xpi 369470 BLAKE2B 109adde2e4f4a47e13294c952202943b74f5401e781d6c1c287d1604c3f1653cdd9e493834f3ec3c78de19238fb1c83c2c9de010a2d317c0545ce27c990cd412 SHA512 1e58a719a34d3452fdc34be4df92b626b63be7f38708efa657673762d162c605a785344d2d77ad1d927722420837a7c50c91fd1240e03845a1c3fe19013a7fe5 -DIST firefox-139.0.1-ru.xpi 529320 BLAKE2B ab49a1398a99235d9f272a8ca35f7bd46fc18f63b3931d401f44ff0020590f9a7300cb6bf018a6f7bfcfbbf53dc818ad9c9f2cc31a747e0b36a1c70fbf5312ab SHA512 bff1be215fd60a21ffa3e1e057cc5ecbf394477e8ee56c059cc1575c9ee60ffe50c304bcf0dc660b894988777ec503eaf6c4ba0a3bcf0c9c257f804d1e3c0b10 -DIST firefox-139.0.1-sc.xpi 409848 BLAKE2B 7010a9142f55a1ff188e5a42222322216fd0ae46d5a091b677d4c06b7e5a5e402257d9560f65c23d3bca736ca99d5b3598b77e6b1bf56bcbbac7e90e34ec9f9d SHA512 4240ce9f9ffe6e7f6bf5b8edb6763f330b8cd4b97aac98d8635b45dceaaad1f427a604f6be38bb2b7df14f966ae02dab44b46836a098238b3009d1b0f6db9560 -DIST firefox-139.0.1-sco.xpi 327263 BLAKE2B 35af039b5c6cc4187c7af3f642f4066ef36b52d8f873b05fb525bdce15275d678746d7a042d55fc222faf4eb7483004ea73c18c73e2282e28fa06b4aaf88fbcd SHA512 1a95ad0d7d4653651fa22f460a82a49e6783f9e25d985459b379c52e54ddaaddc344469f9da6d0763241dc7ff88b3c7738ad76e7e6edda2dc5af95b841f55d4b -DIST firefox-139.0.1-si.xpi 416102 BLAKE2B 7324fe74d1ae5d30a436e91c71ddae2cbc4eed8ea2b299956c2ec44d56fc564ef831ad53be041c4093ec55608109a65b3a94e3e20fca65f2f9fa2ef305b5963a SHA512 0ddb839bb167c087cc6580aa2bb65497a4213d30fa49178538e7d953feb8d0595d1c81dcf2de057f5a3b67d61545bee908b271368b187cda867717baab346f4e -DIST firefox-139.0.1-sk.xpi 472187 BLAKE2B b04215112ac95200532a322e38e120ff111e2757279e1c9fbb0759ec3b252b13726172dda6367c485a5ca7efa25aca27453c147b758119b32d300953f0b42794 SHA512 75db065dc8ce312b5d587ea7fdb94f18bd66fb38b7cfc7c4dad1de49b2a7aa6eea228c1845f5ada7d0620cfd001573f73ad146289f318d457c7697462cb49f3f -DIST firefox-139.0.1-skr.xpi 493728 BLAKE2B 6d414e1c89db8f26db850618854c18796b1c8c0359417a208e653fe381e8f776c0d101da1fa8ee4baf1dc9baf42d25293368901b521e1b8b42314486125780cc SHA512 c8bae1756e600715fd77acf70c6ab303fc1eb792e6c23d5b2029d1435db136639b6e466c05f86545d2ac877cda44cb0111124aeff6be64c1cf112b887e6a7087 -DIST firefox-139.0.1-sl.xpi 444958 BLAKE2B c627ae7599227139799eda8443c4f57d552e73afff71d593651d787b778d3d6e044e929cf80be221c85d636cca56c057076adf0586aa08e68d1c158722bfc053 SHA512 86acadfc5575b1b0b22c0189a3295f76edaab7f57a62a8e054ebbb15a3def3bc8f4b186522c71198b84762354d7f4ad0ebda833a5534ee5758a7f1f959ec4a1b -DIST firefox-139.0.1-son.xpi 276301 BLAKE2B c6a7d1611abedcc59dbcea9031541897c94bab9c2b659238dee93e39c3623913619f7ee816104d35d210f03eab712018b573113c3fafdd55105f595b3aa4cc76 SHA512 5d7f08a6a9bd7c7ef68fe3517ab9787acd3dc0250e9785a5be6ea1b63a9a5ac1db0ee42e68ef32effecb710ad81ceb9f9c58885fcc655a0406f188e4f58a33b3 -DIST firefox-139.0.1-sq.xpi 460098 BLAKE2B aa78c358d087fd21f5b150850e7fa1c3088f9cde68e2aefa245251d11d10ec570494dd3b57110234f316aa1f2ac3519bc5b18a1c9a3d60552d50792bedf92588 SHA512 0f48f5cfd54e90adbe93c95dba9739564c4ade1a79628354bc23e10643f331806a5716482eb214bf40f1be642bd6271ea135c48bfeb38387f829976da7a6baeb -DIST firefox-139.0.1-sr.xpi 456125 BLAKE2B e5c586dee046d0ec9b6d49128c9fc9c3dabdf524e6e5f07dc28e42b4b6e2bab8ee23fcb4c339967b60de85c8a43e68f9ac117ff3480826222cfc260f6fb9b60f SHA512 bbb5ad8ed146ef64dc21d7628c1836275aee69372f50381fe5070289fb4cca80213bda715397e171add0b3e1cd5cbbdd0c56ba3b8950473b2823249480be8a1e -DIST firefox-139.0.1-sv-SE.xpi 440186 BLAKE2B df880dc42159b5be4f0471795d1cb8d17c2b5d18d8bfd488019a5cd6bec34f055f705e083c77bcef28903438e5dabe26f6f71362b3cf262c551f0a28086c2107 SHA512 1cdb1a0d36fee0fd53e3e9151c07ff9287343e84609ce9b92d067d7b7967b5e6f09c88d23749d56a338bfbc13b74454d1ebc3af34c2ff11f395b3a8b0130eca0 -DIST firefox-139.0.1-szl.xpi 346233 BLAKE2B a925ac524a77097b187a358ee81b2e9eac94d5bc6ff4fd0d4fc87e1cdd3de1f8049f4a2b30334ac6db6ffab7f234a47e4ec2b24a6894bfd70ae7177f940b1e5c SHA512 61431d1c6f2d45fcc8e973835114e686a7fa5dd3c973b497277851071f146bfd5a0909b6cd0f9eb346a7e3554088eb23cb326a5e2672e7fd0ddc369cf85a8cb2 -DIST firefox-139.0.1-ta.xpi 341137 BLAKE2B 16e478bb8ac7bad1b479c9c1eb1e4a1f053507c8b2b752815f5d79fe910cf20ab309b38b9530c47e87736000ed9eedfe01fd7bc0706cfc9a7ba3052596c70d59 SHA512 1fb317cf738fcf2d167307a478d8896dd0ad54776b2f16ff3f3e92665f7b3ed96f393aa6f0089c5a8c834b5499c1979ef82cce78c823faed71f166856074d53d -DIST firefox-139.0.1-te.xpi 385837 BLAKE2B db597c347cad80175ed95869c173c557aa0bdd565c0eee9c13a8eb0b7741f0d7644512cfc367eb763c49a8cb9097dc666f14c1e95e9eeb757ee0d17a5335f0d5 SHA512 2dc340394143d0aa78d69df1adde7e21aa0c24871d59187deb10749d71e607fde444e4009c98822716faf43c0f58f2a8a8a46abf994a51b0fc253fa9390782af -DIST firefox-139.0.1-th.xpi 507682 BLAKE2B 6aaff1f7721e8f20123de609a21ad04ee91446274226d936cccba15542446464707f3c3fa8535d5069ca0a91fcb118ce385ec5ffa917fd378327604e943eb414 SHA512 04a82f87bb70902a2b62873371fb64e60d232174dfea10b3d562bd8f98b9389d3416fc8e7726dcadebc31017f07956dd4b723e95a98a0e2c94e93079e850325a -DIST firefox-139.0.1-tl.xpi 360229 BLAKE2B e5055b1371e403e58473adf1fb4a2d1c1ff8f8464e3988786aaee7c34f49b3e81c3a1b3e1324c664ad9810be09b9e1ed3474e968476663c9f03b4f0d6f562967 SHA512 e56f6c536748b688e13e68b50b29a305938a749eb43f492a1697f517d92256a3ecaf6cb740a6d3c47f17dc975e62de96928c737bf3252fe00edf07bf650b069f -DIST firefox-139.0.1-tr.xpi 452742 BLAKE2B 59a96630ec3324ba586bb5787b2ca0e17cc316620442bb35e2bb0b0825a2a375c94db425c860ff145371c28e4e643ef43b88ca3d51afdc45f71522e5b781b1ac SHA512 b426bc0e248ec660476ce5394b5fc8621e8c7007a5681e312443d0de87a48e3d20770f412b3e5c0040a1da45c96da892a87dd85c8808fef26e84f9e9a90f65cc -DIST firefox-139.0.1-trs.xpi 326659 BLAKE2B a42a850a91b3afa4a4260c99997bdd55ea21b56d55459c02191a36a65bcebd3f6035079d876f1d18315eec8b1ef5027b6773630fac9a13dc2aff588f99621304 SHA512 6835889bcfcda9e1a5f7b6c4e509d5ccccdbdf1d94fcf2222d110705b28529a8ed662d929b49f36f2c296d7af65fc2fea1ed217888b1e43563a4d177f2489373 -DIST firefox-139.0.1-uk.xpi 521118 BLAKE2B e0cf03a4682670cbfa14c861e29eff302c3743eea40f104dca904000411f5151259f592115a91cf7e63bf59c3bb3730f8ea721110c5dd3084a62325eced1182a SHA512 6941c45b9f9bf072f95e2d082bbb15d7b844d73d60acfe22b9c6071f0a881703300e5b226e51299eee141d08cccdb08580c980586e5c92786dc45fa62ffd62d8 -DIST firefox-139.0.1-ur.xpi 373549 BLAKE2B 0c02925d6039209145d3043fe22ecd8cee516d5f0ab1018deb76cf6676eadfa8848cb4ce16f991e756bc63fa166f5379428d71982bbc8cbdcaf5ae018f62f9b8 SHA512 d47f9d45bfca7a1132db52b2cd4721be5d7f02d8d973df12615a0bf1262344a83791e0a325468945bc8482cfc03583cd1e53fe08c04d12c4eeee1d6f08223a03 -DIST firefox-139.0.1-uz.xpi 306870 BLAKE2B a6a41997762c6a96d07ede051c655025bf71a4fba1d699c2825c5582407a08fbe964aec917ccd543154517961923b122acf59426f3005db22c8d34ac41056ceb SHA512 00af9359aef1afa1a450e60f9e3bd2a3eb84e87f1fd63a3dc448869dae008d03c3add792c78cbcf4bb4936d6091f4c43a4c0794e2ccf00fa1a1debec18b070ed -DIST firefox-139.0.1-vi.xpi 473306 BLAKE2B a8d04616d96f8e8ec3ebba4d460ec2993dd37b65f53ce267c15d8a794ef024cee82706a8ef7d6a635cb600e0b09085944f9ff2bcaffb64cb38a708dd5e8d594e SHA512 ce65d0b8975f7630938f71fe87b3413fbeda2d1883dd018e05338399eb4c6dfee92b6bedc899675b46e2f14fca960de9383317cf6154e69a5a6dcb5e34f1d7f4 -DIST firefox-139.0.1-xh.xpi 276209 BLAKE2B 5fd65b97236df7f923845d15a2a077f430b2008d08908f915821a0c218c0fd93c9a962474ecdc599b578a20a37730b775e6fe3cbebf524c4d2296f1b26b78b1a SHA512 514cea9849594a5d5e3bcbde466412748b14dee8e19bf1e5cae335ef0c54d0df8e8e3eca740bba8d502ced9a62df050b65824e34b2ffda3b3f1a571424d6d9ca -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 @@ -609,6 +203,5 @@ DIST firefox-139.0.4-xh.xpi 276202 BLAKE2B 876aff68532546b5f95e457ee7fe0133cc8ea 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-128.10.1.ebuild b/www-client/firefox/firefox-128.10.1.ebuild deleted file mode 100644 index f271ae3d4e56..000000000000 --- a/www-client/firefox/firefox-128.10.1.ebuild +++ /dev/null @@ -1,1380 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-128esr-patches-11.tar.xz" - -LLVM_COMPAT=( 17 18 19 ) - -PYTHON_COMPAT=( python3_{10..12} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -# 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.77.1 - -WANT_AUTOCONF="2.1" - -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=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" - 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 autotools 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[@]} - 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 ~ppc64 ~riscv ~x86" - -IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" -IUSE+=" system-png +system-webp wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox" - -# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being llvm-19 based, and -# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 is already stable in -# Gentoo so it should be widely adopted already - however, it might be possible to workaround -# the constraint simply by modifying CFLAGS when using clang-17/18. Will need to investigate (bmo#1905251) -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( jumbo-build ) - wasm-sandbox? ( llvm_slot_19 ) - wayland? ( dbus ) - wifi? ( dbus )" - -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.26.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 - 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 || tc-is-lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - 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_lto} == "yes" ]] || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - 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#917599 - if has_version ">=dev-libs/icu-74.1" && use system-icu ; then - eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch - fi - rm -v "${WORKDIR}"/firefox-patches/*-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" - 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" - - # Make ICU respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" - - # Respect MAKEOPTS all around (maybe some find+sed is better) - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.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 -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.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-gpsd \ - --disable-install-strip \ - --disable-legacy-profile-creation \ - --disable-parental-controls \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - --disable-valgrind \ - --disable-wmf \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-pixman \ - --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-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 '' --enable-update-channel=${update_channel} - - if use amd64 || use arm64 || use ppc64 || 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 - else - mozconfig_add_options_ac '' --enable-sandbox - fi - - # Enable JIT on riscv64 explicitly, since it's not activated automatically via "known arches" list. - # Update 128.1.0: Disable jit on riscv (this line can be blanked to disable by default), - # bgo#937867. - use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-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-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 - - 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 - - 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 - - # 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 - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Portage sets XARGS environment variable to "xargs -r" by default which - # breaks build system's check_prog() function which doesn't support arguments - mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - ./mach configure || die -} - -src_compile() { - local virtx_cmd= - - if [[ ${use_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_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 >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" - sticky_pref("toolkit.telemetry.dap_enabled", false); - pref("toolkit.telemetry.dap_helper", ""); - pref("toolkit.telemetry.dap_leader", ""); - 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 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}"/taskcluster/docker/firefox-flatpak/firefox-symbolic.svg 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 -} diff --git a/www-client/firefox/firefox-138.0.4.ebuild b/www-client/firefox/firefox-138.0.4.ebuild deleted file mode 100644 index 3a5666a425fb..000000000000 --- a/www-client/firefox/firefox-138.0.4.ebuild +++ /dev/null @@ -1,1399 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-138-patches-03.tar.xz" -FIREFOX_LOONG_PATCHSET="firefox-138-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_{10..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 autotools 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-png +system-webp test valgrind wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox" - -# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being llvm-19 based, and -# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 is already stable in -# Gentoo so it should be widely adopted already - however, it might be possible to workaround -# the constraint simply by modifying CFLAGS when using clang-17/18. Will need to investigate (bmo#1905251) -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( jumbo-build ) - wasm-sandbox? ( llvm_slot_19 ) - 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.28.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-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-nspr \ - --with-system-nss \ - --with-system-pixman \ - --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 '' --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-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}"/taskcluster/docker/firefox-flatpak/firefox-symbolic.svg 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 -} diff --git a/www-client/firefox/firefox-139.0.1.ebuild b/www-client/firefox/firefox-139.0.1.ebuild deleted file mode 100644 index c58019353233..000000000000 --- a/www-client/firefox/firefox-139.0.1.ebuild +++ /dev/null @@ -1,1399 +0,0 @@ -# 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 -} diff --git a/www-client/firefox/firefox-139.0.ebuild b/www-client/firefox/firefox-139.0.ebuild deleted file mode 100644 index c58019353233..000000000000 --- a/www-client/firefox/firefox-139.0.ebuild +++ /dev/null @@ -1,1399 +0,0 @@ -# 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 -}