commit: de8a67771a85c097b2037cb2c1f8ba00b24b71f4
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 11 16:00:16 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jun 11 16:00:16 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de8a6777
www-client/firefox: add 139.0.4
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
www-client/firefox/Manifest | 101 +++
www-client/firefox/firefox-139.0.4.ebuild | 1399 +++++++++++++++++++++++++++++
2 files changed, 1500 insertions(+)
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index c7c70d49d78a..64984e27016d 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -507,6 +507,107 @@ DIST firefox-139.0.1-xh.xpi 276209 BLAKE2B
5fd65b97236df7f923845d15a2a077f430b20
DIST firefox-139.0.1-zh-CN.xpi 464985 BLAKE2B
37acb33e3736af558385d13d983d52ed867c93fa8ec4a3d1e6d96c9a7efcadb0e268a671447c8dd76ad10d2ebbb8c9304a951b02df8e0c17fe5aa1f355207676
SHA512
960024ca7bfd6dfb9a379b82a2a94d3151eb45dae6d861d905e4fa652ebfaabdeb3175b3d8db020bbb5f91ab6f089cf028c2e3b104460848e560bf9ab2a1f3f7
DIST firefox-139.0.1-zh-TW.xpi 468028 BLAKE2B
b0554dace96ab6993f068126ffa722f2883aabd30c764239198886a4528424b42b0723561319f4a6f51be7326c85d88ed93339d2352a9cff80e6e900534b4e54
SHA512
c0daf3e7af74704de3911abd806fa3bf9b5394ccec602325813c7421351aa71d6ac1a462523453d33f86d11522459f58e559817fd114b9f1dbd545de9c314518
DIST firefox-139.0.1.source.tar.xz 647117708 BLAKE2B
b3c9841a060461ae2a0317a39a8999c15f8b0130874a270c308a751097be33f436ec37d4881581eb33b28c6e038be0bd1556af82e2f91e409ff84fa51852978d
SHA512
78ae10fc14900eb1273b7ff798a159504f68166c39b1f12ef9ea04243debc78472c24499da01641590feb5d2b28475131d2ec94d6f28fd4f2f644a721f7f40ba
+DIST firefox-139.0.4-ach.xpi 297654 BLAKE2B
d5b1628693f7ac0c9ac40fbea0fdbccf22c5d0db04b5278b27d45ac23c3a8c5f80f1e20aa6da99db0e71735d4c7d60178cca4d60219fe134e79c1b7e8500fc82
SHA512
4fbc2f085a05c9b7d9d47ba0b4d8f5ce9a03d2c41abe1fc860f668a273c2731ee0f3475b972d22da0b835e82b3227776dc966afd351af77163746c6c3b5d2e8c
+DIST firefox-139.0.4-af.xpi 269819 BLAKE2B
dae733a6debbce487ffebd6257caefe13298a35ac88a17214bb460fa21c376d25dcca2afe7269d3871f85895b4a537b355fe59476bbfbb7fc5471e5bb9fdb9cf
SHA512
31d6cdd49942a67a8e25259ef3418df990df192f70e9dc14d86b0364c2636c4da6b7f79e21cdd92e2a638a598631aac3a0706fc5b653814dacfafa06c98254af
+DIST firefox-139.0.4-an.xpi 335654 BLAKE2B
f792c7d3cf942bbf6896198348f53bb300f0bcd8a2489ebf26cbc3af60dc8070f06c6a22611fd0af13888f7293028d10264e44e801e2acb7808ff3fb4b756663
SHA512
5f10833dd6a93c2972d8c019b153bc23442368cfb68236bfe9df44a2ffe1dfc2fac1d9fa7c63f9c6bc89a1c4477b45356eaba91749b3616ab314649dddc31529
+DIST firefox-139.0.4-ar.xpi 444095 BLAKE2B
f39e8395a6bab00ef4354b5662974079990ac32a104d96375b4e9ee78f5a6872f5ae2ac2ed75c267b81c65393b304eb53031e6330f14dd8311a7f17461e46019
SHA512
9e8011f9cb50fa9fb95d30cbb09ed5e27d60741c5ed5f788bbbfcad90bf6b896f001309c270f4fb55ec65854328eb823a1b62b5e3031023f1d5757cb0366767d
+DIST firefox-139.0.4-ast.xpi 316643 BLAKE2B
e6348b9a8e34677c43556a9c2adc92c8bee21e281f229d636a5986a237ea963ef45223c03ed40bd28caf0fcea5d679e7f8b17c0238071a58ecc6dba00d814d44
SHA512
b4f515a8a54cb9c3fbb5b858e32af44d65d2fc3acce965d6e9060c9d75e4170246ed3440642a49f8051f0049e3421eb3c65bf7433eca6ecf3cdfe1c4518b2df0
+DIST firefox-139.0.4-az.xpi 321612 BLAKE2B
59b53bd413a1c745b0dfc6a6d985444ed3fa554ab6b533d2d9bd94272e7769a460a2cf3ecd321210512dc7c6cacdcf440d416db45400dd2bb95835ef45e8d9fe
SHA512
e8464485969552056368853a98b16c3e76568861f0ad2fb4c06527f4aa752f7ae6a54d0e5619f5c3f5c9a7fbb6ce52ef24a1187c141c950791330bf1bdddd5fc
+DIST firefox-139.0.4-be.xpi 525079 BLAKE2B
e5e188dd8d3bf4fb44ba72d9f7f8d3e4a15d9608cb8b5a330422393cfa248caf1960ae82e8feb5d08c8c7c2721929ca7dbfc59986b028becfd6bb2afd125660b
SHA512
6958ed8db2a06adf5fb920d3c8d68bde60b6882c174c47abbf511f97de4384e17d2e1e7df604656e5ebabfe0aa135c40459114f7d6f859c00ab5908366962ea3
+DIST firefox-139.0.4-bg.xpi 454356 BLAKE2B
a991f25007407717de2e9bdf0adacd87e6f5f6f0db12a77a4cad0cc4484d2b32f025cd928b1a3a7ee9287ae5b3bea930a86663a7903161a59fdd23c7b97c1aac
SHA512
f5d27085a60a304682528a51d897d0893a5d170f1bbf5d7622bdcd1ad91140cb1ad9f4cf80cce4c8bccea649cf4777edcca5f9ee5c8cb00bc34b7ff969cd73cd
+DIST firefox-139.0.4-bn.xpi 415413 BLAKE2B
75e691bd972aa939eb6a39f25ced49c60e47372d30fae86d9368dd9e111d41eec3f85a0d0b5d9f319082056932b73f21a64003b63a914151d7a5b30890535b92
SHA512
f6f8c9aad196216f1e7eec85b5b37b7f4154b0d281d8a7c13cc90e713ad9171686da2bac52033899980e5c311ccb0e2e57a94a3fb8ea1363342471eaf888deae
+DIST firefox-139.0.4-br.xpi 398155 BLAKE2B
5ec04d7ee2cb948169457bbf94ab06c88a53786d5417b3a5f2ffe59eafb394e726e28497b4c6701f8bed7755eb536f42424fc6c1a709087d339182ec3ea67c00
SHA512
865db3b1703cd7e6b6cdd1b1397dc0f30e4e5419817539cca3f8420cd52c549df24951c3f7283e633d290aac37daabf6dbe07f4acd09d07493a29b8449fc866a
+DIST firefox-139.0.4-bs.xpi 366745 BLAKE2B
f1ad73011363ee9a23c45ac1678f4e7939a54edd3254aea8054fc11a027821a0268544276e2e4b467a293bab15152fcc3d435194bc5184df085226ba2d7e2234
SHA512
b112efa1cc63f41cdc07d14a61ab9cdade256775af0bf5acad1b92ca442089c31462c94dd2c5481e7cc6beb895f97691f81689991cf11e132891b5873eeb4d9c
+DIST firefox-139.0.4-ca-valencia.xpi 361695 BLAKE2B
4a2d57fd98a70a254d76cc3cc5ce01d4242ce6670fc1302dd725fd74964456856fc8892e80657600bb37264bd5ff63fd112289af2396f8ef30bc361b72e064b9
SHA512
cd28bca2504ba65da38cd4aed0e7e47dc79ef96aa1763e4071ece75bb366adb4eece70378f9936c8c5750a635282d2ef65f5dcc7fab36f50e295af5d7feb4b1b
+DIST firefox-139.0.4-ca.xpi 404023 BLAKE2B
a99fb4d4c08db057d93153c79902565bf40fa92eea7abbf038feb57c5a5b1cf7e0bd10c803d9664d93b3f3755186852d0f3b388a6664fb66d8192fc3d6600515
SHA512
43605f83fccd7cf17216264566ecf03a213ba26df89a240a473e5eec8a5e41c7647451ba22ba18101767cf0e0d8af6abab9e3f472cd1016111fe40245893fcab
+DIST firefox-139.0.4-cak.xpi 394728 BLAKE2B
f1225481ae08d8ff4df97df93f3c30022596d50745c8c6acc6d6d624020bdfafd2351d6e88213428677edbf1f25e37632ad71018c6028d9f2b50f47015aee2e0
SHA512
9ee376ebccc78f840148fb2040d6d2ea130f8f2bb308096a2e44ee78193d6489df3baa4399c0079e4b6e1bdbd1090652652a134451cb2335b09960a1f054b28c
+DIST firefox-139.0.4-cs.xpi 479925 BLAKE2B
b1dcc50e08fc7fe60f6bbfa07a0b08b62f1e45ceac1b2325cbe36d7a0cdb94d7ecb7c973d0581a4078040347f16904b67b6b0d5cb99f06cbb56a8f7db213a2f8
SHA512
b6a2fd7960419ebf5d2ebf4200d69ddd4867ec65a8fba7ab751cb015c8f225b34c3977720b3587d9a2eb8e6aa1b0117e2f49b9c033c98bdcd4de7f887cfeaf92
+DIST firefox-139.0.4-cy.xpi 446095 BLAKE2B
d069ff928d0684166e55fc4c31910ece429e4358c35ac0074c98214e3002ae95082d47d3684e5cb06a289695ccc89a1d5baeb203990385eeec4d6f35870cf25b
SHA512
39620879a09d8c89bc31a4e81bcf5313cee05a5cec75ac05808a5a313dcd5318cebf2390d3202ea7ac239b1327360a4b5dbd6f0872d032e2b1f9c131086c3259
+DIST firefox-139.0.4-da.xpi 435217 BLAKE2B
2146dcf527c98e823612a8f0337fb078f450c12cd22ec494396b02e4c8d814d0a2949b967145d05104392f8882195e70ad042d551cb3b8b8b4cef6e46ecd6d82
SHA512
225cd08021c0675bc21cbb91790c6fd7cd8b848bc6c27829e4851812890390e0f20f1040622684fea899610fe4c043a8720f2e6cdcd52cfd58a0d399aca3bc11
+DIST firefox-139.0.4-de.xpi 456792 BLAKE2B
152e976f11807a3209b94ee5164905b61bae5190c3806cf7fa583fabf79626d36e4218994334dd5f29dc79610d3ad31510c0964a74d0425b09e30fb91878606c
SHA512
27c4c1906746e0a8cf5dc89d9bee095fa868b6441560d867fc99dd391bb0322d61366642477686fc58c5a7d818a23fd1dd7ed988815647ad15efc84afb7601ec
+DIST firefox-139.0.4-dsb.xpi 470270 BLAKE2B
c4ac71d1e0e0f84d760797d00f4b1757e78016f5f2b3b8d88d110c82787d0abbbc449ce861b2265596be46d198bac33b0be95d50428937118df5e7e2d58628e7
SHA512
301b4b267a3f99de9f105adee55a14a9a58711e127cc77caefd6ff4cd9ab3a79b6a6ace3a7d431b43ab4fc92b22bc1320fb58029af66c2fca9b9e15561467786
+DIST firefox-139.0.4-el.xpi 541204 BLAKE2B
f4d6085774e399b272f3add7f1cb0ed2866cd6b49c121c51d7338a45d04354f1b92a447601d309677ed7c3b706423efc28270a481ac928268ee994593751349f
SHA512
eeb968fee861c1b21a99bf6f807edc889066581574ad6ab16a66a6222c3598a533810584cc9033e492818f248291e0a28977a35a7ca77c45bac02613d59667fb
+DIST firefox-139.0.4-en-CA.xpi 413598 BLAKE2B
5b380e9b92a635a619bc175a6816b4a36bbba5ca921cab79a282b741e5f326b3bbe1a1c9fd8bc4fae0b8cae68453a9242ae1eed81a82c6378acf35a94899c0ed
SHA512
e819ae6d11cfd8c4864c8c7b94a8b30402b6b5096015fc018543f38178c0e743f3d513825057f440cda0ec45dcb01d66a33ea4d654542ad76958d9d85079d037
+DIST firefox-139.0.4-en-GB.xpi 415484 BLAKE2B
d2cc5e26a746c3acbe555127dbcc11331d26761d110c9313032e77227c5048bad32f41529fa795fe6d2280b57b006cf979fbf9214b3de2f63100f046290c1984
SHA512
465becae62c9805f41f971c197631985d3639ab45f0e4ec8d93fdfb4370b06f86c808ec60c17400db2da218d930130305014941330e800bdf8e8be3a3305efcf
+DIST firefox-139.0.4-eo.xpi 437559 BLAKE2B
f20b0ce33e1294a66bbf4286a962457e67d962b32ad8aa8a992e0fca74de50db1bd63af3b83beb55464c952d7f86e7d919561569eafae03a616889bd02ca87d9
SHA512
0d6da9388f33c3e1d2bbe3ae79e6d9bc379a5e9ee25cf8a6e942a9ef6e542393a05ad0b2d0d7b5964cdc34bc33051892d0d355ff88a8bcee2c5607aba37693a3
+DIST firefox-139.0.4-es-AR.xpi 449714 BLAKE2B
a57a3e744d7f66b579976dec200a34b0ab936525f839a23f56fb2c5b5054c67ce4ceddbf2e2972b25b7ef34774606a8237676d8b79979348a8cc934ea5b12879
SHA512
875b80c07cc7f4dbebd8ead21bf3be3990266f10dffb99999851ddfcf2014576bf1756394b8551cef23d005116cc75c2f03e39b92e58ad6e03711ff7703457cb
+DIST firefox-139.0.4-es-CL.xpi 450467 BLAKE2B
91527c143419604c35a0a4bd6bebd076a04af732c91eae3411c6dfc338c199678ef996a28b4b372ea060eefb07823f2662ac9a82615c1fd97dc700556075277c
SHA512
625372cabe0101b354283a2e22ae84d082be9e082b2147895d0a53c10b3f4840bdf112ad8f677cf68d72445b944bf93c1be381d061b704ad00c8dc82f9d7053c
+DIST firefox-139.0.4-es-ES.xpi 451245 BLAKE2B
58ea99d9cc2e821900f0eed68049bbbbc4e361f491986dc98cdc18b9640e5a803e56b3e5dbb8413d193323837b26080eb75cae72ec25ce58841c72ce32948984
SHA512
7b1bf58d45f2bdd158571536776bb07a406fd876dfab45a71c0885c6b84230e21b4c7a3e6cb03b0c897a58890ed7d15641e805093c05fd754f0aa7957bba4740
+DIST firefox-139.0.4-es-MX.xpi 444384 BLAKE2B
c58a3113183081d19c9f8cda7840cd86420df0a83c1d43af1c45e425ecb92e1c49f385ed424d1a19ef345fdaef20378e6a4b48f571f2214419154fe278c896df
SHA512
68b010cb0d799b6fba809b27e90d2754c3526bb4261b61e34d0b5b49bc69514949e01feb771cba80554a7be30bcfe055e7e7a3c3c515ecf7b89a010b019f1e4a
+DIST firefox-139.0.4-et.xpi 362504 BLAKE2B
0008feb71a26618fab1ce552ffdeea91e62ca85244d066cb83677bd24a53545c5247c2257345ae8a98b82119a156b136d564cf00aa19ae2af1a9cbc9ad2a1264
SHA512
3e8eb0db7a78a45650b8f6f037069f9bf1c75cd89fae181c94657dbd6dddb29764539833998ee2a37dd31678781d0e067901142a01b8bd2382868e0443645ab8
+DIST firefox-139.0.4-eu.xpi 416690 BLAKE2B
b96e8e0b29f15fe7e53f77771e1feb19c916048d608dada090677a2d8e6b510c24a039ef84018e40ea423bbd58cd351fea1beac11bca3224346349e1ae6228eb
SHA512
dcb3fe7e5a23bd4e51a4954a733658c4240d4147b311bf460b3479e6d0bf1d939bdfb3c05d33f078b522f1df1e41fb01ab4004959e3beb9ca89c4eb62070af06
+DIST firefox-139.0.4-fa.xpi 424169 BLAKE2B
a77a8947883e24e4fe6bdf3180c2e30397b33ccba1af480527402d60dba5ca1cfd3cc58a27c11c01bf222c3505791523b348ae3e5daecd8bab9d2ae875e90e57
SHA512
958fb5479069651066feb83244a72bffbb408cf9c985ebf16cf08210022e0a086f811fdc517e9a60615db8431f7b447fbf001d8e4ba6e49d80f9e8c6b334b379
+DIST firefox-139.0.4-ff.xpi 313848 BLAKE2B
129f6eb0650883a7111f4cfe6f472f6373c6112f7d83c19c12badebefdb2b2b7f6a6becf6a2d6124627972f69756c654dcd52ab84541abcbb89b598a0c348224
SHA512
2f4f0849747e72198d3768d648534fbd6673dd7a980890a93bd08a07b328d8046b622a8016aa4cb8724da9b03a8ccaf32ea445eb8c407fb568883f9d08ba5149
+DIST firefox-139.0.4-fi.xpi 432408 BLAKE2B
a13bc9da68757b49b7835f410b5f6940afc224338367033ea3f2e76d66509608743ecd7e80b99a99c930c9193c9055c91e6a31c6fd2e104c9a3c2b5c5bdfdc68
SHA512
47c18b4f61406d66054b032d27ef99f1e374ba5a39235e76dba47052ba59f28061dcf151a2a8d7d73c089282a5416c0b1f518ac8354d241178d71ee59b3079ff
+DIST firefox-139.0.4-fr.xpi 462404 BLAKE2B
62878095a5168af14684289d11de656717dcaf5ab281e883978567f6dc4c4647acd1be3539a3bc4a7e48f6dd7cf49c2f86036e4c72fea61cfe6b1839b357552f
SHA512
d7ff9b3bc75b784696c7ed387e65eaa448f306ef3ce9fc65f74ce0a327e4462d3d44582e16e573143d6fecce37f234bf4d60e150f927385fe8025cb258a82ec1
+DIST firefox-139.0.4-fur.xpi 453093 BLAKE2B
d95f2a464df8ebf76bf93911a3f3359675bae48fa71d02f446793be7df994de11d7838c046761280cc305518f51a63d04eec99c0e340089ddeb1f82ba60cb2b5
SHA512
77e708a55f8157df2efc0068a5ce7bc2d23a90e7b8664f19732b15190a42a296bbd8f597cdc798e89778d353eb6671b97401626858f12edee038151b61c55688
+DIST firefox-139.0.4-fy-NL.xpi 446346 BLAKE2B
a7a96dfe6dc82b20c62c06c4c20e9d80500168551d59d1d1f192620c60d8f1401d6044e69ab02ad1138ce989109860249edabcd58e195679250c471d07268efa
SHA512
dd0b02b02fee211fd01e6e3446e340b34388b5c070d4a2b41a21aeefa9435a161794dbe1d9cc205828dfdf98e0e432887f54f43d975b6af3b9d5501009e1a2af
+DIST firefox-139.0.4-ga-IE.xpi 318546 BLAKE2B
ac2aaa952b2034e203da7a679191cb52e0397ea2ed9b2e5128b19b11199e28621e88ac7af7069929d07fa3a10a53bf1bb0953445f790dc3fd6122f625a1f9a91
SHA512
b5982aa5f574390057cde9eabb0296e51104b3034cb58d6e78ee194dddb3d372fa2be46b86d01afd7e52d869dbb17622ffcbb3637a6b0661631371141b29b2f3
+DIST firefox-139.0.4-gd.xpi 402975 BLAKE2B
21a89db46f671c328d828f468bcc75fea7055deb22c57a4a149f96661126a6c613d43740e77a6e5b2efcd2dec68be64a3516c015d7bd9607fd26935f67a3ba86
SHA512
694bd2a22d91bb8f5a2b88e2ed4e9b8a6b41f895e7ccc34d6d8a0651c0bbc1a8ad38739840097e7c723dad8707eaef516d2113dacb2da44014fd357004292516
+DIST firefox-139.0.4-gl.xpi 409741 BLAKE2B
7a8918d88fd057b3628b05b09a09d49878199a5254998208c03f7151c167a3d536f423e3796c4222d1942eaf4fc4c9825ac9a5a0fe9dc051243d9c89ae044403
SHA512
6853b527f7ac2663f8feaed580af18c180a98e7ff3101577dad7d55d9f4ce6f176db30586049d24f11fd60a2da8033efd04f79d55e7f111819a05bd4ac06f786
+DIST firefox-139.0.4-gn.xpi 453112 BLAKE2B
6fcb3c873e209aeefd36df1a0cba04b816139b57580df5703c1f147db821805c10a9ecbf2d84167ba7f55d62ffe8b310c9e4ad1c73752d0b0d11d5e303082de5
SHA512
01630ed1d1fb6d79b177c1ddd3f58b56783d03b28b269d8606bcdc50d85a20ffcb96a568a76cd6df2aee02843ddc54b118376aa06db58ee378292418fd618aea
+DIST firefox-139.0.4-gu-IN.xpi 362207 BLAKE2B
926dd4491c4d31d1fca4c593676f0a01c9afa06fac9ffe7704a21c59109a692caca76b013a72f5dc365b730b0e60a1e1f2625268c181bae72260e7d7e7e98ef1
SHA512
cc67329d915c2f30c7f37abcbbcd7f4974949d513c45d000d21cbae242c21713cd77d85d5c280aa3b153458b43da45ad9e7b5925c8798b2ef8469381ca6fbea1
+DIST firefox-139.0.4-he.xpi 448712 BLAKE2B
4b40cad8bb53f3aa83a38c3eb0a8cdb3f91161c27ddcb81d53befbdc395f0dcb20467e740ab8d7b671ad030b9d2ece447ecd4f2678f0b5638fad493b6a2a0d3b
SHA512
5321c2e2fe9df1ec07736f1bd408b55c07c33e6f9ed860a02ade4480800be06e5cf4f3bb3f49c313987b06e16b5977c1ef6769daca6a217610550ef1b032a233
+DIST firefox-139.0.4-hi-IN.xpi 380713 BLAKE2B
4d027cfcd5548995810549a6f7089648d22cf60be1b3b69dabf8cab4ae3be8c2cc6238b288cacff97b519570ffe58a5090f8bb57be789cb8cde139d1aa3b3684
SHA512
1b287b1503d7f3383a65500fe0f8e678a847e68a658f6fb1b2ea1242e5e3fce14fd1349a66fc99ee709c20789927f7f5964722aff64f9b4b38648228334cf2f7
+DIST firefox-139.0.4-hr.xpi 431200 BLAKE2B
d27fb4a195ed4e1fdf67c9f11b60ac47663f9e405bca6fabcd8bb388469ddf55f282f1281bda92184a3de9c4a7f20fe4fd1c8240f68655d853a56f04d53909b9
SHA512
dcd21b53563ccf0448d18ecaab72d5c6920cc07abfa43262b4b338407dc0b122728d1ef8106f5f2710d0e286061403cd8e46a049b5b7ba25ae1b3b6fbd25082d
+DIST firefox-139.0.4-hsb.xpi 466846 BLAKE2B
5541cc83790611e91a27329b9f4daa50804a02be0dfdd0e23a788ce076942e80936d8c3dc99a47856d2c81d89392bf2894295d698f69654df7f2e49b3f38d042
SHA512
44e0bb7223daa4ac848ed780a0d1b7d71404132712958888b291e811ee29edb929f4706d43e64356439fc4a5ece67855053f65acee652c28fb4e5fd83dbc8cc1
+DIST firefox-139.0.4-hu.xpi 470469 BLAKE2B
dab188675213234babbb51c0d31174a278ca86a6dce171dc5a109afad38a186ff150bbdbe7a4f36cd3ab827dac54c9b673c8c9115dd75f7018e6b5b95547b109
SHA512
a0b4bfee4a40b4cc69bbe5814b5a822a9c8f22e368d6c5cfc575b827810da79d21f3341498dd88ea10e0f739821709f64450f94ec8807d728f384884b0fce3d0
+DIST firefox-139.0.4-hy-AM.xpi 457458 BLAKE2B
3b32778c1c75be59e627e3013ffe95ea428d3a15b65d4abbeea519dd78ce154fc30797b8076b92b07b59b20f068d73e0ce7a5fe3bda62d4547813ef0bd740b12
SHA512
3bb9e1ed96c14aa36dc792d2e86a54a12161c42fcb163d3e0c896e224cc6eb91ba2ea348fa955a807304fea543d4a0825d544ce31f6a52dad1b3d682b7b43d42
+DIST firefox-139.0.4-ia.xpi 434206 BLAKE2B
ce80e304a311ffeb28227ab9ab274a88df2021f54705ca1b8c1b94b070e4400c33f9cfe7367d23c95e8beb2902473c9d644b02f2cc92263636ccd4e5d5171ce2
SHA512
eaa88dd6cff22d1efcf3afd64f2c6837e8f2880d88e3394e53ef735d4f259a7db0ee1a293059ca7af773d6eca7f037a7c66880182581015fd1bbfc09f5217d03
+DIST firefox-139.0.4-id.xpi 426322 BLAKE2B
9b65e53c48ccd67dd60e304c898c333907c35e122ab1f0fc9e30a543d537f4b57fec115edfd7b9ef748de022afe1dc5e6188af750e914b0b7e1a03ae0fc11bce
SHA512
5ba907cd9187b8a9b30543b0c9be288655c0eda3a3de937c581af27a20e3e293ca9ea2fcbc578e6dfd479bee19282d60ad88498bc313aa6300f1dbd3805a497a
+DIST firefox-139.0.4-is.xpi 436864 BLAKE2B
0746c0fa067eb330f20fde613ed257d9f11d2c57f7b35499cfed753b339d566d2a0c84b6e597a43c92be1d8126dca526357deb8556066eaf9ea5510140b90613
SHA512
e90376e63c203966f29484f934db7be2f85e6cca1352817ef97b1ba987041ce3cceb1a63a06d45c44e1e860f54d159ad349087dbacd82b561870e2db7b19cfe2
+DIST firefox-139.0.4-it.xpi 444954 BLAKE2B
e93d84e1d3a6c9646eb86b13c7f7c9eb5369b74cb751e9c1e474b2fec6134b78b825ba7c3170bc7e34d3dc1e582a23d3006862e65838eb67a4501565118dd1cf
SHA512
68f33576e15baad7cd5c169fa2098a00f63c22c1e8c47470a3504f7bd9dba08a6d2b8294434a319e58a75205d5169d18141d943f90615687106baffc03377924
+DIST firefox-139.0.4-ja.xpi 485457 BLAKE2B
931247304a10402257902026d9251a50d3c88a991fb3c1f34c06fc1c6afa507153e1c5bd5434bb29ced0440fb354b79a39f180bcf06a94ce97e592034cbd3174
SHA512
2ad4c3ea2db39ed6b0cf9f5384499c69391bff063098f8b8af11edfe4e5f5ecea52a53c9656e1e49cea59e3df6f9527616fb0ec1836b853f8698b646e6b08b57
+DIST firefox-139.0.4-ka.xpi 498906 BLAKE2B
ae5c538abd84e37dfca7a600d9d2d90c8e2545e41be62f27b206f58719ba6d54e6a0d4853162d264488b65e2fe6273cab0767c4987441f90df58610f2596e5e6
SHA512
6ec43f1eae60976a503855eff8e822c3f5f42821fafd2bc928ac2f326b988f00800f1b45a724c217076f106da93ba63bf01a3b0bb468267fe0f87e8af2eef095
+DIST firefox-139.0.4-kab.xpi 425603 BLAKE2B
de6524420ccdb3fcee3bb192643ea6140153520ea36955e8d1db6715ac409ec594f2f0d811b174a0fa1abc01ed37afb367935b7db8cc06644d7a7c68ed89bcdf
SHA512
2eb8a94137512fb7057172003e9a92ebc41dbb75f81f7f52f0e077a8765ed27f5e122a507159c8766db3078766d87e93047d693eba77f0f2f6bee0feac77d213
+DIST firefox-139.0.4-kk.xpi 507021 BLAKE2B
259d094f28ec0e3815b480daaec38527b6698683a2481745c753104f981dde7c1d178f387bbaad161cb2caf708b28e15ec4579b2eea046ab874302dd9833b723
SHA512
aa60ae5bfd880987964f854097d507e05067a16326e3d6c4ebefcacea7155ebb4b8276877c9e8733ed7d60833392b31e6a01540d9e3474c4277340643b930e6a
+DIST firefox-139.0.4-km.xpi 352029 BLAKE2B
c8ecacd33c4408bc7d99b17472b879d3a2b8fc0c0f2b815c26d902e4ce036de5a3c4ae0a5042431208b62dd60387ba9597430a47250611c1bee64670bd521918
SHA512
c075865368043539fb664608f962318708dfb6fae49770bbebc985145e0ce43e9bb47873a05fcca781c7b5cefc0f146f85e4532deb599ac5e51dfaca65acacd4
+DIST firefox-139.0.4-kn.xpi 334933 BLAKE2B
d7f30f2a447ab2979abd9ef0f80f2885ef8c53e99c106c3600a7848272a520f91d63113b7cd20a88dc3805537fdb0ca63c2b8237345d0212a236bf95d4036f95
SHA512
7dc2c2df887bc9418243f6e85b3f37ea55f94f2ef401325ad078015c452490f0fa2068a032e030cd9ca5189f3097a13c1167b81cc6655093b6c37d7562b76f1f
+DIST firefox-139.0.4-ko.xpi 471630 BLAKE2B
3f89ed98e7b372566b86d42fc2840c19ed6e6f2d61bf5580a62cf89ca27ac9bc72c85b1d5662a9d8988060dc292438118fef34c9b65e66fc8fb7a09132b41d48
SHA512
8747883259f0d468dc9991586d71eb7084bf0ae72dae8e9dc418ac4c24961833abbefc27b0f2eaf3b4784168eae7d7aa06691041dfcb856126f4404ed4e46c4b
+DIST firefox-139.0.4-lij.xpi 321762 BLAKE2B
48673aaaac27080f1131859549fcbd75b593339e21b9826592ff68680e79e8d5f61384bf73056a8af1a4ce72f5a8cd6f83c2a226f8a32657acbb3000e0e62ed5
SHA512
79274a85108497054c4efabfee32b9f0a28c556b86fdbca779b176900efbbb57fd251e126e8b7cdf8ac10018bdcae80f49f67909994aac6be1f8314692af89f5
+DIST firefox-139.0.4-lt.xpi 383471 BLAKE2B
743c4f429f18693104ef2e5e9f87d279c35a0d835fc0e9899197e19728c013627d4f1b1e9a664e608e68bd2054e209d3170943e2292ce9cc213fd337b65f9bb4
SHA512
bedd8f850056df5164854aec2b603eeb4acfcecf3f70d6dec1d542428227cd9d31fd9138f2459dcb30c7a50e51bac3c9c12bb2d87f8d3635f2f39a5f5b16b296
+DIST firefox-139.0.4-lv.xpi 391400 BLAKE2B
6e9a05c0b43364a0e492a3ab07a5515f00298f903596569b0e11a5f89cbbd688988e4b2af1653ad9cc582ce1d8d95aea396344162000db1fd25e5a6b1f368e3a
SHA512
6b4ee1f4d2b3b503399acea8dec4437e90b7313aff745829039607614cb063f3f31c77d0fd125b6b954a8e9840caf5381b9fd1af71f308bac9d28a3f13c0ccac
+DIST firefox-139.0.4-mk.xpi 320008 BLAKE2B
56f752b3baeee3885b39f16aa431dac0b9c7def2090dc12cf2de5ce0fa64b70b6d59180f8b22ec56064e6aded099b8434f8ca6fef18e187dc69a1842820b979b
SHA512
e403f49d967ceef545e8ce0d0ad8da337c070683abc944fc3115c12912ee30d9df5568f674ed1421a4da18d4a113894586b68be74a7dbd46b4a921f5e0fdadcb
+DIST firefox-139.0.4-mr.xpi 359454 BLAKE2B
67dba86ad1ffc87f3efc71b5badcd0983c7940897357ffbe875b0f2054d7059bb76ac9d058741ab4d09885dece6b940f62f6d5b3b227613e62cba150f7734de5
SHA512
ee3d0b489581a9fa1335876c9f509c93eba02254d8e0c97a09f679bbbd86ccd841d8b730e2a56966122e4cc355437596c40ef1207fc9c2bc195779eb1ca1a56a
+DIST firefox-139.0.4-ms.xpi 298597 BLAKE2B
cb87c898e1e6bc1b9950fa58dc6407724b70258aafe0698cf774089ab9d6bed16f6c012394b8239b46dd631747de0987d0f85489ec4bba7085453e3b4f28d5ee
SHA512
1fbc95912bd8ea79d66f3f631df63aa041b14cba8d59768d27a7b47f0c61bc3f4efa5668142e3efab86d9649dcaaa3961c5be79dfabff790f90716cf8d60168f
+DIST firefox-139.0.4-my.xpi 346255 BLAKE2B
2f05889f116a9735efc7b94507a095f9a846dcef0aace42cb8750ca10ba667161b6bbe0a7aa327a6aa8434fdba4330eb13b5c0707654141711116633d4e58e0c
SHA512
ccb1baf80fbb6c4fcb106e6416253eb3d5803a565cc0d1e246ffd1938445815152ee5a4a428922a7975e6762c613de7801b4e3d384c27605dea6c0011f672d92
+DIST firefox-139.0.4-nb-NO.xpi 425039 BLAKE2B
76884e6c1ccfd81845b6da078fde74d5514229f65bc3ae2febd0517b8563ad778e09f62e8df6fa03a71de2f09d19c7434ca981c220a969891dd5760aae59e9d0
SHA512
d5d1160efeffae6b29ac4f25f7df3ffb71435c32f04089e070e9af605414f170685a7c18460983f38a762334dfb2c46528e0162aaecbb978289fe3de4e0520fa
+DIST firefox-139.0.4-ne-NP.xpi 352268 BLAKE2B
e7e3e17f4f521203ae8ab1c815d27b27d40ca66150eadc8b73ff6e8e85b4bbb8f31c2fd0254599979fca911f914d9d257e4644656d98a85a2d2539cb22b264b3
SHA512
5ade61915438771d0ff9634350ce9e193ceb63a3e5cb13028277da981fee4a285e5095922802f08c9168660e5a48404519778d50f72c9c159e7fb00102683466
+DIST firefox-139.0.4-nl.xpi 440334 BLAKE2B
c339c56ba973a4f2ca41e2716e411875a809983e71db271dc39e9cab2d595fc082741230da779af73d8e0a5256c93c05ffbea65e18d54f2ac6332b0d63af10de
SHA512
c5c2d57ae010fe86161b489bcc410f9c4184a5b7e6ac9831fbbcf7a34e98596f230084983bcde5cf6157e1e7d869906694a3097e6de6088b9fe860e5ac6d623b
+DIST firefox-139.0.4-nn-NO.xpi 432707 BLAKE2B
746dd31d41c3e052d04ff40aa211c6b25e8e2dcebc0e8f3cd49346820179263f785eb908e28e948a368cce538481f7f8a471d3ed029e8ae41cb08d4b295c6ad0
SHA512
a34b470e6bda530f73a28c580940566f9d2cb418885b07424f620b1563f1b9e4ee07f2b969b182d2f2fef93b42589f224733425ed6a815614386850f9f632dd8
+DIST firefox-139.0.4-oc.xpi 416067 BLAKE2B
54a6e986c6fe0edbe113e448483ce97666513a9e1a318e84b69ad3d54dbdb1d08d34b353a654c1341cbc05183f619117fd2c62f7dc96138af79f9c4d43347136
SHA512
a4982d4504ea38d55ef59eb69ef3815ae095c72564c46ac74733069d49123c607b361d09c95fcb561ba43fb3f71204ec2fa5399243c580ed9c3bafd84bf44057
+DIST firefox-139.0.4-pa-IN.xpi 496786 BLAKE2B
63cd8beb6cc68fb523b607304a0aea6b775a0cb59a115564344faf66450ae8f9e0436048409f5399eb434c279fb97b678805d6d22a2a8eb0459caee18e29269f
SHA512
2310dfc756149f2a9be31d858304d63a8c84a9b02891b862920f15616f793e0cf2262946d1d85d707cac479987af32ed34ddd261aaa8c06a8c7d8f5c4de56014
+DIST firefox-139.0.4-pl.xpi 459798 BLAKE2B
0a8394a5aaf498a647f15138ba038c2611bb11fc97f5b3e8ee6f61fad6fa18ff1933e2bb32a62bef5f2c2258837ae950f2e0c6e5d16911b21b275955955c2c25
SHA512
7d9100b1561e34f9834d17c89eac1f0c4ec51a73c1cbce7dcbfdfb3e72a5d5db60398c906579233868874dc28bb08c2d46ac57fd02b0137c274568156beac60b
+DIST firefox-139.0.4-pt-BR.xpi 444925 BLAKE2B
dab39a6ec5c7548a4e37a2c7d21156e4f84ad69136e54ad9c2ca3d4ee5997f8e012d92c6068ed95c2931e801146ce6d0c33e4d321e6a2eb02d94a9658c13f7b4
SHA512
07185760d6d80212b5a501952199677880b61115ad13b4941a6965f24ba024ce25fef3f5b71380586c89b010c724ab6b05739381b87ea3a64daaf54e5fc06013
+DIST firefox-139.0.4-pt-PT.xpi 450735 BLAKE2B
f4d4333273e58a8b611063339f129da2cbb6c8276ded92e194c49a04f67ba3e330c746b4ad9a3bddb197e6c1bdaed85314957d5173ce23be5df7b1501491b32c
SHA512
65b1528309838820c58d3018808cd85240cd2b68909854863987ce7a460fb37051f8253d09751e67c712963b32a34654e76e97a008ca3b0a475a5c7ed1297b3d
+DIST firefox-139.0.4-rm.xpi 442543 BLAKE2B
0c167c71fc87ba95a787a87f0f6a1ec8481f40fb7bdc2cad2ab534f9a8ec77b968bb63c6cab4309ee4b042aa2c9f46b73eb6aeba973acee82d00a1f38c9aed47
SHA512
eb0d6239d4c4a04c89b9cd0088cf79e5a6a2a9e767c82a3711394f2bb5a7b53ba250d51a494fc520e79a42f6d8c85978f3047aaa4f6aca63225c3fe390959f63
+DIST firefox-139.0.4-ro.xpi 369473 BLAKE2B
27a8b8a182cb72cb8d9dcb88da7e6e38251de3bd2272fe1fad5980a0a55c46824c2e8cc74a9710705246dd89c8856cc7891fb23e36232e1425e266d8c1c97397
SHA512
5fe268325defe5d7627a29264feae6b0fda0a7a4fabfc91625d9aa3399d655b6f11eb763581e09cf8085ed56a953b55ddf678fc6999b044dcf7c135a3cba5c1f
+DIST firefox-139.0.4-ru.xpi 529326 BLAKE2B
d3767de92aa6456211daa929d51c47fd5d61bec4979d8308c8fb50298822ae6721f02f0bc1d9c86249cf5c3ce7f0a5067b4e9e9b5aeb31b9ee45f9cd526b702f
SHA512
7f5016c5e8941bb8ef7ac6b4b878621d29a2bd72458c54c435da66a02a97ffc79e5757d06b1b6c8a5bd9e7ffc6a8c2e2fef0a3aafccd842f5d2ceada86715ace
+DIST firefox-139.0.4-sc.xpi 409838 BLAKE2B
887e8fdcd7713a0bfd7eabdee5fd0978f49b77f8c60b03f5eca454bb6824292e212355b52afb7e55d4c6fa803a326d10e4ef8aefafc0522a4e5ad1720f31beb8
SHA512
a95b8125dfbf9b1f76cce62ff780a6241ece124045670635a06a3d47109887514aab8218877bb02d912b52a214f29604e1e01dd927b150f38718afc76c892c86
+DIST firefox-139.0.4-sco.xpi 327276 BLAKE2B
e0b577b8f95680deb3dcd1f7b8d093c1aa8c098988e066ef242ca69116614bc7a2c7167ec875f4c87df37c392ec914801173424449d1f29125069268092984db
SHA512
51aacf17a1ae4468304bc45697ff8b0ea2c2046b06a5f11ad35e57bb24383f7f30cf31adc5f9d6f0ee8f799fa251f4257167933a9547ac0a25642b1d44e7f84e
+DIST firefox-139.0.4-si.xpi 416097 BLAKE2B
8b91e0361093a42eff6f74adba8f0cc2e4d81c6bdfd586c1a73ac46f12234e79e229da308e3e41580a7f3a20388e3511f3955155ac5e781a9cbaad82ec4a268c
SHA512
b8889df7204a2cb5c0204ccfcaee131f2102f29495f9a2f320c8f9e99e047accb1be61dd8f15b90d01a582f64c2ed8ea2132f7a49fcb83c5d7259fd4126dbcc7
+DIST firefox-139.0.4-sk.xpi 472190 BLAKE2B
8ebc019b1247e0b47d1d29d52ab8dcfaf60812508bc8dcff9fdad306877eb57874987ad4ebcd88c3045474ae975af2340594748d1430b79176a82fd560796678
SHA512
94d6f8db2ef376d5b6c2745726658c8f3d35bf9d50c761957cfc6f9845cf14a3f951e94c97880ee8158884505210242dcfdd1a38d8fed2a3b9fb5344c9187171
+DIST firefox-139.0.4-skr.xpi 493735 BLAKE2B
ca8a8ba409d859395585515b60938313daed10c53d1b882c40a2ff079e1807f14e6d0cf3a8fdbb3b53050a11a62cffc4dd74789c8744977c129ba261c08a7c5a
SHA512
86f78fb2e1fe5442a08e6e396c17c20596cb6c3fde87d1bf927457be28982dc75caa74becdd6a8da987efc332841ed1eda8ff064509c47871d8550a601f3b38b
+DIST firefox-139.0.4-sl.xpi 444964 BLAKE2B
f52d699280f664f4ae45377068ef513ba14142b661fc7e2f414bbb0f94633c70604159d4da77759de8dbe6c53bd2ea880339d1bec22c3eb5d93415bb38c8b011
SHA512
e5ea5bf0558ca3d3f2ca82a885f83e203d97ad24ad9f62dba5041c43fceea83924a60f26dae73ba7b9811d124b9dd57fdd9a550f96174c1590cbfdbddae8728a
+DIST firefox-139.0.4-son.xpi 276303 BLAKE2B
a467253483821a92e16da4eb810cb2ddc4b10c662a586a9efb686a691683792bc12b2bea2e19b23d3da8e93789cf6854f794ba75388281e10cdd3f883e353b65
SHA512
f9b571ea64c49da06aa9c8f157a632f579989e62edd7d9cf1cb611b9bbcfbd8eb917a3b4a1802a5e45371c8995fd83784c59d6cdc7b3e63b64701a33c6ecaf57
+DIST firefox-139.0.4-sq.xpi 460096 BLAKE2B
a42e780f4003253725062fb0c5aa4506d2e05fa07c5ad37d4e95ae21b0c8a9818d2b5f28b74b6dab6b98ee1769751547fa4d10d935e627d62976a71a8eedbe96
SHA512
6d1afd2cacfe47e32c21812166efd1e7f7626cfdd3d96bf07b89ce5c674891126507b9836847816fe79b7f210d92cd73c4c67fa40b56a9c7a0fb955f148ab768
+DIST firefox-139.0.4-sr.xpi 456117 BLAKE2B
4dc15f4f2a8971901b068c83ea68ad97d1ab76342256b4009514a89bbb9e479768b633f6d5943e09a4d1be5b56b894b6cdd66ab391d3f734458ecb862efc50a3
SHA512
171d77f1f7b5608a2f701a40b65dcb64e3d38c4660e630a4c79edaf0600d9c45fd9413da3bd83bbdf3082bf68ea9d580352d237b4001c610ad20ab70624fc8d6
+DIST firefox-139.0.4-sv-SE.xpi 440193 BLAKE2B
5770777e7dd1ebaf2030bd3de9415bbb346dda74513dd07ba95d1cbe82f93d33469e31cfbc9e88b48cde7b5482b0a93935fd5dba137259b8a51bc0fefe2556a5
SHA512
1e8ebf982d8e1da8d1819f3458344c06ae32b9b51fb18b118f3e4e2ac8562f0a3d733c0b520ade5ad61589c413651af248b1707c2106bf94fe6540e0ef8f94c3
+DIST firefox-139.0.4-szl.xpi 346231 BLAKE2B
7f887f22ee168851c32a65f4f6edb29044fc96196709cabb8276a31564511231fbd6a86c1ec800269c7507296a40abf6f7bb0808eb4088a8fa9901f282895024
SHA512
48e3387df4dd54d395e11bafef73037a23aad30bb3e6baf8d91522aa2f9e0f799771a49cc1799e2cb4511272f9f57dab120757c0b55759588dd1b2139a2a5ff1
+DIST firefox-139.0.4-ta.xpi 341129 BLAKE2B
f5127796aeb087488c89f4c58432d49e256fe976ff2f089d804843cb658169035dc474259afe18f126c17cdc7de87d89e6513202f62014552b8dbe4a0e02961b
SHA512
2d98aaf48eb47f90e14e6837791cc689dc79a5f2ee2334c7f52dee203957a557e3bd5c7399044bbe29a2328ca3b31144488a23b091fbc8fb9fbf18951363c133
+DIST firefox-139.0.4-te.xpi 385829 BLAKE2B
159fa9749eba8b603b7d4f103b54dc0917fcba3f2650179fb3ecce96f193df331bb715b659999c944df937b2369ae5ccce073d417f71e578ae80abde64594720
SHA512
b04c985139dccbc1427805745e1eaf43493dc64000b3b21e8af6951730a45834c9ea77d6afb89e11ef83d6373f66d0a9524abc92ecf6352926956beb9c50b7c4
+DIST firefox-139.0.4-th.xpi 507674 BLAKE2B
e0374ab1470ee0c775bda920758c544944285b04009b253073cea9278836d8ec12cd3792ba466f4a98ef1dbac9694c37552315675adc545661c9ec70daa6e22e
SHA512
b7278d3552ef802eacd3af5f5636f2b4e1173a49b97aabfca81957f2157afa6c615f36a665e306331ce0cc5c4b8ca558b39ef8ed800d0f96cc8126d5ffce00b1
+DIST firefox-139.0.4-tl.xpi 360236 BLAKE2B
f94a4cf20d36ffd6884b31deb40ef7a1595f2933b752d0b86501269b4ffbd67ac9fcbe09cca9c9eff87fe00b5811ddc975fb24da0c81fb63688a7d9428700067
SHA512
143b40fff4e30b619b70b394d65bdf5d7ba37835c78ff7339c2f00326534b0b1cc76d2c2f1c728fc24added4c1bc1c35d0dc3dbd00d4cf0facc26a456f7c50d3
+DIST firefox-139.0.4-tr.xpi 452739 BLAKE2B
b6484015170421ef951cf5a3b96ff28c3d5a3e3d4cb066c64dbbc403ee0dc87adf532bdd5f544d0973cc92888be4040b3137896a7f9c9239bc4db7590d958ea6
SHA512
71ea99052c65a3f6bb83513f4e851c8c3124600241925425a224075643463f9f1d296de383cd2217e19bd0f8ffde640f613732e12d6e5e698ff309652f5b4c57
+DIST firefox-139.0.4-trs.xpi 326657 BLAKE2B
3df4449ed15c80b7df52ccf953c93d78a3b6d756c4f6698cc893287e1b5a930bed891168d0d7ddef46180e24906a951da875885da0c9d0b75aa2879c725dd549
SHA512
86f67a6bc13cd77f78bbe6dd628331d50f45aa1065e4e36094ab3379a075da188b82e2e3b264cd0dc54050d768cc671606f525eba4e49cd452cd335904e1dfef
+DIST firefox-139.0.4-uk.xpi 521125 BLAKE2B
0f215715e9f208ef4c47cde6b7281a93ec519aec0970775fcac508369e740aad1876ea24a96eb75addc70270fd512c4b8559969f8804c0caad617c99da676b11
SHA512
e259b05e59896d1fc45c146cac3852fc621bdafb2956eb42a460bc109b52dd292b9237c6e1934bf44bd766917711ea38012e0fb66b0097133996872bb497a3c3
+DIST firefox-139.0.4-ur.xpi 373553 BLAKE2B
9341c1078a6f10269bbf76c366450237a8823e308dfe4ba35e0d86f4019c9ea038b1efd15859c12c4dddaed86d7b674b0a342a1b9168b780d3bc4a66f9adcaaa
SHA512
758d654d905b91d265fb6cee2add8b6f8e718ad48aa6f3df9ca31ed9d00deaae113e71467d79bb09c54fa12da99c47cd7e525fe212451f12dfeff00096eda5fd
+DIST firefox-139.0.4-uz.xpi 306875 BLAKE2B
8aa402fdba8d2cb0285561b3c2fe7d4665bd9643c5b75433423eefb462e23b1f33cf68d6e1b6f5cec8e1bdd0a2f92398161d4621c3de702cf67d8d747cc86c0d
SHA512
d8482b12f1ea598ecf73654f5f637411d27594204961fd7fb356753dec366fbab4403218d063dbd73b93dc61d30ac9a5a72639c662d30c63f4b8c30bdb03dd08
+DIST firefox-139.0.4-vi.xpi 473297 BLAKE2B
71433e939c21b9341e431b0e6363087d6fb628d0da493592ad326d1d7d746fd0beb2af470f05f686afa01826a5b7730da7389cf1d5551fa16ad1fb7117ce25bf
SHA512
9ee4b96446b78fdfb804346a71553f7afdc65d48a040d78beb3e7ca14a1a6949d3d64cbcff515bd82cfc6be84a5e983e0f447ad4308181d1a7e7478315525c98
+DIST firefox-139.0.4-xh.xpi 276202 BLAKE2B
876aff68532546b5f95e457ee7fe0133cc8ea1ea796333ce5e8d0d807a5ac193704c7a32aff95a95ec7cba2365d4c57c42316c81f359cca4edb6cb61abe2e952
SHA512
7080639faca1b0d439f6e2b866cb90506132187d77aa278ba0375e6b9117763942688c2c18186d3d74a1e484943fd255d19c29bf2a3380b9116e29881079498d
+DIST firefox-139.0.4-zh-CN.xpi 464969 BLAKE2B
09f3697729239c9913e9648d9caa8e09147787d03c35e83988fe457529937dd0d6fb22f4e67a6c8955f825a3f70b9bc7edb7dd9a55c290c6ffa856c36be171c0
SHA512
0f17aaa914c785df2f7c553c98586c5da02877a45dd8fcb8b1d6daa94bc14d871d89523cd9a1d1c96059632cb7a1a08f05e7375b38dea35952a87e681dc73b84
+DIST firefox-139.0.4-zh-TW.xpi 468021 BLAKE2B
ef2c073b69572ee35aae9fee272fdd83ea0e3131da9ac78d0c37857fa36ffa5b18c83b6426e549ea82ce0cad0cc657de65fa8a52e0562353b3179b6eb56b2606
SHA512
b22bc6efaa430dd37431c97755d9eeb001fd7ed777e0d3df94d3f6a62e5d704137796cf54ab935d81630fc901d5db0319bdeb300fa7db7eb4158e41cc8c71ec3
+DIST firefox-139.0.4.source.tar.xz 644670560 BLAKE2B
1fa263c2055905edc7ba132f2b148012d2d64e8c05608103a12a47be8108d39050dd8c0e26157e6e9331f28522da5eff33a299949e70724bc7b70414d01f939b
SHA512
fa5ae798b0cd485e0a56b0c57ed7f33e0d0ef921302dc0169eac91926194abe2070beb54239c81924f819a60b589f305f923970d753c07ba50acc36e1a492db4
DIST firefox-139.0.source.tar.xz 634198424 BLAKE2B
920df1c0b1389234d779861de71c971582cd0822054a23f1a159c4ffe7e98e09049fac1f202004e6e6f85ea0384c21f0807f3c843c5784de8b0474b6de843cab
SHA512
84a2b47f2ff71aac226a774ab0ac9ab8d9a16f5620a06f7abb6648732209d022aef35a9d4873e91ebd67a4fc494fc238524e25c38fad8046db26afda06e6f970
DIST wasi-sdk-25.0-arm64-linux.tar.gz 115160800 BLAKE2B
1ce22aaea87d0720d40d46ebdd96508c8fb0593b53c4489022fd5a1a9afb043a26a6e162a992d73454f612f2b6ab01e17a99c189c0c8b8c2d2d68fd96fabee1b
SHA512
ef4eff22c1efec4dc5ab199d09d93ee0004f9fa67b32cac0030f8b6a40def10f714391cec8e803c200995dd8bfad3ebad9ec79b4195aa6b2ea61ea47a8b9e61f
DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B
07618828d4c25d67421aa72d38fc49bbff9052b8ecfe0fa9f4207e71880e9c650f458567cfa5bd389d5f830fcfee89142a77d33c29e7bccd1da7ddba2bc47b95
SHA512
716acc4b737ad6f51c6b32c3423612c03df9a3165bde3d6e24df5c86779b8be9463f5a79e620f2fc49707275563a6c9710242caca27e1ad9dd2c69e8fce8a766
diff --git a/www-client/firefox/firefox-139.0.4.ebuild
b/www-client/firefox/firefox-139.0.4.ebuild
new file mode 100644
index 000000000000..c58019353233
--- /dev/null
+++ b/www-client/firefox/firefox-139.0.4.ebuild
@@ -0,0 +1,1399 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-139-patches-03.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-01.tar.xz"
+
+LLVM_COMPAT=( 19 20 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the
non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.82.0
+
+PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=25.0
+WASI_SDK_LLVM_VER=19
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+ HOMEPAGE="https://www.mozilla.org/firefox
https://www.mozilla.org/firefox/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.mozilla.org/firefox"
+ SLOT="rapid"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1
multiprocessing \
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust
toolchain-funcs virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+DESCRIPTION="Firefox Web Browser"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz ->
${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}
+ loong? (
+
https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
+ )
+ wasm-sandbox? (
+ amd64? (
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz
)
+ arm64? (
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz
)
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio
sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg
+system-libevent"
+IUSE+=" +system-libvpx system-pipewire system-png +system-webp test valgrind
wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry
wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( jumbo-build )
+ wayland? ( dbus )
+ wifi? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/lld:${LLVM_SLOT}
+ pgo? (
llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ )
+ wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.27.0
+ net-libs/nodejs
+ virtual/pkgconfig
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ !X? (
+ || (
+ gui-wm/tinywl
+ <gui-libs/wlroots-0.17.3[tinywl(-)]
+ )
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.110
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libdrm
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.8.1:0=
+ !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+ )
+ system-icu? ( >=dev-libs/icu-76.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-pipewire? ( media-video/pipewire:= )
+ system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ valgrind? ( dev-debug/valgrind )
+ wayland? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ || (
+ net-misc/networkmanager
+ net-misc/connman[networkmanager]
+ )
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libxcb:=
+ )"
+RDEPEND="${COMMON_DEPEND}
+ hwaccel? (
+ media-video/libva-utils
+ sys-apps/pciutils
+ )
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+ RDEPEND+=" !www-client/firefox:rapid"
+else
+ RDEPEND+=" !www-client/firefox:esr"
+fi
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM
slot ${LLVM_SLOT} ..." >&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
+}