From 9cf1ffaec0324f5ce1ff417ed7db01b78d1e0e09 Mon Sep 17 00:00:00 2001 From: Joonas Niilola Date: Fri, 27 Jun 2025 12:25:07 +0300 Subject: [PATCH] www-client/firefox: add 140.0.1 Signed-off-by: Joonas Niilola --- www-client/firefox/Manifest | 101 ++ www-client/firefox/firefox-140.0.1.ebuild | 1399 +++++++++++++++++++++ 2 files changed, 1500 insertions(+) create mode 100644 www-client/firefox/firefox-140.0.1.ebuild diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 3f316f63a33a..4ed9e043f749 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -404,6 +404,107 @@ DIST firefox-140.0-vi.xpi 468228 BLAKE2B ac4bd406a0361c3c73c80320525c898c379c4d1 DIST firefox-140.0-xh.xpi 272294 BLAKE2B decf08ec9adfb6444f70faf3fcd23884bd6f247ae6d1e25456c37e098798f8cccf26ab1ebe6ba1b239baacbe760b221b991d09546b0c24c1ddbe3238a77502f2 SHA512 1dcea760d0938e1ae4bc40da3187eb8308fab681437e6b58672f8c539501d34fd3b08d72db5341f2eedbf542a81b22c21af21e2524ab13d649f7d37a36c81a20 DIST firefox-140.0-zh-CN.xpi 460045 BLAKE2B afa622e32b6e6db4a480c6cbc641f56bf2374f1e120cf3e702d755bab9af2b73b0e229ae851e181918a0c88d62e4ef24500ad2d6df38c83e326b8777baf15971 SHA512 a1d60dbf4861dbbbb98382f29627c6512e73eade765380719b78a79652767a15169e56a4694a7e78cd0fceaae70e0f391d8d43c5b704c59bb3a07db6e5010616 DIST firefox-140.0-zh-TW.xpi 462983 BLAKE2B 71c99fc9fdb098e3914f997ae218ac80044784c78df3b713eee3c6ad9cc62e4a1d7a7be9984e1a893f37e4205aab8f317f010bbf1ac7f46416abe52678845b08 SHA512 3f6b52814c7a9ac1be6e4c18a95d42a85f0e8f89df6eb38cb0b600fd7f3c3b5bed696375e9e1d9ce80b4056cf68848e3ac293c485d3e60f77c7f2592a82cf316 +DIST firefox-140.0.1-ach.xpi 293871 BLAKE2B cd300dfb2e7adec70a77fabf7d4a4bfe5ed1aaa48c5be8524b002427115e552ece1742a8d343bfd8e785fd977fc733116b4c555dc03457484d5961d6765457f5 SHA512 04f2e966269895a3d4a4c67c04979c9c2d508e685f1a97b5302ff1d5e345e710e76f414491338e17be1beba1b443ce0cb938b2ef93f93fd577e33da903baba5a +DIST firefox-140.0.1-af.xpi 266134 BLAKE2B 82da0bb8521f208d5358e9fb2aad7d48edd2bf22f7ba631d2f8c0aa6b4b795442ffd3362e842f92409aeaa41a9505eda49e52a112ce4cb8f0049a6800f5b3b5f SHA512 ad0da5426e359413ba30aaef9294184d45561147f7c127bd8913579dd6148d36f8a7c33204edeec4331cdc3779cb795513ad51a9d225c61eb9a86417771f9140 +DIST firefox-140.0.1-an.xpi 331810 BLAKE2B 50c5b1316559cc7d07298327778e3bf6e8a1156da7c72314512293a86d4a6aebaf8258b5eed9158a414263b7070c936cd48b924d43fd72699726e968bb79f641 SHA512 17c25c4f2fe8dcc14f8f65748f59287b928170956a6421830afd9fc462c067e58008f6196d2aa86d60ad464a83083e3493d61f2b4c9dc5dd4164e25873d9d821 +DIST firefox-140.0.1-ar.xpi 440806 BLAKE2B b569cd17945abf988f050f8059458747fbd4d508cf9b9668455d45f650c079ca74c1e51eddbb216a4b80c97839f11f7e68b20b11af0defde8495f4db46374e36 SHA512 870c4fa1d337bab0f5c926d4eb436bb9b95a405d4357cb895c22d506a54d42260e832f85cd5722e4a71fe27deca5d3fe708563e4a21fcadae743c19fc0486f02 +DIST firefox-140.0.1-ast.xpi 311735 BLAKE2B 470f8fda0789e96a80a090acabdd3661e83d2e694b471e035eae374dc974aec562a3469a85d0141148971431c5c9a8ee91c95019316af36d000b8b8d63825eac SHA512 c8ef6726f20a0fedd24cd69fff597eaffa3db9633d2e025bbd752674df9c232dfa663064d55439b49f4259e87d363a153614223af1ba3366d718105d5ccb11ca +DIST firefox-140.0.1-az.xpi 317922 BLAKE2B 9b9813053b3164d6214d5741f1065a01a0e77f89e6e10bd7a53a8fe8acdb4f51872d2aeeae3edb58ad8a7c1673b8bc4d401ed987f264b8ebe2ff4ff32ef00f77 SHA512 2fdbec65b99d8a35e4ad8ee8f9866a73b35842cb0eaf60f7f76c4aaa6f82399fdc26d602fb7ba595d97422db5c022036160e3c70254db919dc4923670eb23bbf +DIST firefox-140.0.1-be.xpi 520289 BLAKE2B fa2928532cef6bf928d6bc736d3321c7d2b650fe0b3427bacadd9df1417d711a46f5f41f73430c6713a3077b7ccfd6b08cd5546a11ad97ae3b128a270522c3f1 SHA512 bb72eb1a65de788af826ebb8c99cb704da80b4cb206b239aaf035b26751ae292c9f00dec66dbd9e5b1d1cf77edb040b4a785471d1c864321805423dc12c724a8 +DIST firefox-140.0.1-bg.xpi 448626 BLAKE2B 6b5042c88dd8d1dc84aab0755eb15ba96c476b2a02d9d35864ec49135a6494a40a24efb15d6da505e0a1258810e8172191abc3915299a4c47f5ead0069fe97ed SHA512 3abcc3a26e34f5a21410ee70662c5925015bfd3b6ceb27d15a5834a124bc01c49e474b2a558b56f9c9b45e87ef3023d85cdfb7598134297a3686f0723b3e19cd +DIST firefox-140.0.1-bn.xpi 411540 BLAKE2B 21fcec1b765ed0565d2800a89e34891a8caeac1440b51009a9f6e054b5107b9e188aa7e7e1b6204bb9fe88ca9b317854ff26b30dcb951dd32b256239a5cbbb97 SHA512 feca0f91635d7fcde74a92f73f5170a9113018629d8bced28a03079b01fac3657757fa210cc76db8b3f0274e9dcabe7dc1b028d4bdf9a43e2196270198b475f3 +DIST firefox-140.0.1-br.xpi 392871 BLAKE2B aab35c1877bc57bc6d127a18df2b9a44dec49adf96aa707691c02e08cb16d5d4e389676505354437ab6ea108ddcaeaa13aa0e26e1fc341f98edbef4ad60f5917 SHA512 d1b88d7b565ca85afdbaead601b34eae44682c7d3a9ea0d25143ea3ceac29012c51d78ed0b0f8d9b83212b75b6ea11ab2d2a2555e9806f11d6f574efa6d3c04f +DIST firefox-140.0.1-bs.xpi 385033 BLAKE2B b9fdabeacaf5d9c9f5c6d4497e64ca55b5066a093565038dd16886a8b60e9cc16a372ded39cd1deb9f9b6e5b4393eba511917e49e87f47be99dc859ce998f023 SHA512 bfb2867e61f81c5b7a8967fc245748f74c5cf82afaceaaf947c232c692083e22cfaef288d83fb72528fbeb0c99af0770a3a930b1faff194e9244d3ce836d4fb8 +DIST firefox-140.0.1-ca-valencia.xpi 357398 BLAKE2B 71872e59ba0873945cce7f63c98b544b3bdb4ad6dd5f58ce4453822be71622978ac7309a8db63c8d1a5b971c925be58cbe64b457ce5d44a0244f4c8908d8ea0c SHA512 c3cb70897eaf380f164fa87717937832e38575131ad1844c0ab7e921d4940eafbef549600fd535bde1bb9c2d598cf12864b438dc32803d0322f327fdf196c1ab +DIST firefox-140.0.1-ca.xpi 396784 BLAKE2B 2370cb4dbc2db24f3dd2f29ac07f5e0c52e9fe1fcfba44ee213b421af759b5b2d2fa166875c4d101e7396e4926030483715ea7b39a395dcdd933ceb756246300 SHA512 4329aaf3873dccb6249d68d3a22a5a9b09a80f40a2f1996f8d477d86925bf0cb53876b0ca56588e4bd1061ec9f5ce11e44470abcd655eb78a50bc988fc6d20b2 +DIST firefox-140.0.1-cak.xpi 390351 BLAKE2B fc742f79b0fea30c2ca88dec63c2eba4b2684e8cf124792ad7cfd8f8e74589ab15ac4adcc70885d729134cf5b624f1e813dbdc2ce0293b62f9659fd492654f9a SHA512 3b173e6c98ff97c57eaa4e7c9c40f4f513c97bffef304d31ec1aaa0d4b340dbd3180832dd209a88bba486573e942f40714ec2a123b270326b7d5ad33e8371c3c +DIST firefox-140.0.1-cs.xpi 474975 BLAKE2B 79817cdcdff3d73685ea3fbf75a760ef89e9e9021bd114bb2e6a5b5b4935d05c99898173ba682664ec08ccfec6bc7e61a306af220d4aa4d895e3677251043ec8 SHA512 0c54f3cdb68cc4c474e708bff8459b2e8f597894c816e585999b18ab67f1c6d5d6a13cd6ad0a4546f9f2ebb2c8c1bcde719ba3ef6d54d13f5cbdff5e45313c8a +DIST firefox-140.0.1-cy.xpi 441205 BLAKE2B 69376d9e6d5abfadc2cd1d9601450ca310122c921faca9e6a90d2fc95d27cae3851b25adf7a2d6cf2248c3fc77cd289178cd8317a9c256cf8ab5b33fb88b414a SHA512 c8b5b3b0722c217d63321496703582c749c1cc78a5ad6cede996e74061b6867c0e5d0a5616b4562e6370ef006047a227e9d74dfe535d82f9431c6438912451af +DIST firefox-140.0.1-da.xpi 430388 BLAKE2B 95dfdb0272c31124e27d0d97b28f2bb93fa77d0267a2814ca98fd013c32e24dad16d69e925f71fe91f835ca9f2719b10e6d55b0c0098559ccd62a05e2a4c93ce SHA512 2a9a27fa0922adc2787cfc914b535fb9897b52fa4154888f4e5241a6640e1d39b76f813e3ac9c399c25172adc37340f23847a94844f2a2d050b54236985f7676 +DIST firefox-140.0.1-de.xpi 451860 BLAKE2B 4e1c33719aac303cf63f1596ef5dd9429ef44e887a1d5e91d7e46e1abba34bd779f12176353f1d78e501cfd218ca20d17777e1fbb483cc7406808976e322b61c SHA512 7ede329cb60a29c91bc352cc534ce9c9685506f4d2c0b4926348a0fb33b7b4d0f5696f2c7972b7281b8619e79386b0688460c2b90a631a21e4263a99351a4391 +DIST firefox-140.0.1-dsb.xpi 465276 BLAKE2B 2b80671ff30884052488f62eeba11357e8706aca25fcdaf33e90acf7e96e92fbc01155b984c62c4750cf268481fd77ed7b141e4718fd0c2e5f40e429eed6eaec SHA512 a20260e6814fb313e1facadaa067bd3bd1c7c502a654d48d8fdd4cd869bed7c5937bad396e08daee58e0b8f8a0b850e03183d6ed129e5102f5588fdac10ff6a1 +DIST firefox-140.0.1-el.xpi 536133 BLAKE2B f60cc7d910fda93eee615bc65b5d42ebcb8256ed978fe5f043891671c0b84d87f423f7169982d3a55de8fad0c73dc8161cc5cf17c73f549842a29dd4b216e880 SHA512 d561931122134fedc209b74b97b69190b598cc6811583a6ab605eb5d65c40d78be614339510d2f095e45e09578c6aded2526cf1ee76c8b4a0a0609cfd2360119 +DIST firefox-140.0.1-en-CA.xpi 406754 BLAKE2B 30880c76be352b102d2df39ff386e84298468919d27fdaed35b901487e00abef48431bd23797f7aefd83bb6f22ac7e16b1aeef51e9b13eb6f1edc6d1e613212c SHA512 8583b41fd379049535738ae6deb3e100a05280cb0d286255320c53b254654ec8fc54eeab73ddcd6b8ef97528d61afa89c3a49db4cba554711433e2491fcf61d8 +DIST firefox-140.0.1-en-GB.xpi 410670 BLAKE2B 2ed93701d773e206bb461a832396f20b7d6fd07d94c84144fa89c46f01e17511dfc25c9518a84a3c99fec20c69545e45c955ee6ad94abe1ca096eee675bdc382 SHA512 03e3bbc27547ebc18fca46b706c3d5262be2a59901b024df155145671df375a4d13c51309348fc784966227991c16fc1e20194c32ea28e01ee2125c8362f65fc +DIST firefox-140.0.1-eo.xpi 432737 BLAKE2B e0e32d2ea90e85ed908884bc8c7d1eb9e877a460b925e400aba7df7c0e46ac270e602431dce08c4484a79c15300b951f686b5c09ff996af55c76f757be1d21d3 SHA512 dc2bf6690e7b02184a807c86475a5318b2f7a285993949d7dd99fb5c881b7ebed1c85f707310835ff90e650d986749fe16a5a1e07240ba8548833c506283cb54 +DIST firefox-140.0.1-es-AR.xpi 444775 BLAKE2B 0f5fe4c81f7239fe160932cf4967a4e0a98efcd144a3d18bc2a2d1646060e0c39aee8c20c7816c2b9b54a1105a5cd575b436eb9d9555155cb04fafffae84e758 SHA512 644c22485627eef596a2ce64ce59016c7679e16b1ef53123933afdd85a4471b3250a881aa435c69c498cdaa78fd53ce436d60a6538141a80e0dbb9403ca9b73b +DIST firefox-140.0.1-es-CL.xpi 445544 BLAKE2B 40daaf03cc2eaed216368384129c7db409dc021e6d9f92fb39c527fd6faaca23ab98dc31cd6281141c6788003c72521c71e13a0316ca8ebd2062d999ce4d164a SHA512 db809bd0b91606a5ce91c466c9af7033f157a42d6fe14979553490934847fe953914294754d0f93f6ed0c37712b4abcaef85888c0861a959b829591bb6bdd509 +DIST firefox-140.0.1-es-ES.xpi 446254 BLAKE2B 3253c31237e4b9eae6ff36a6d80db422388bb4bb36aeccb5b58a95542bdfc2d3727c5458e83349503d3400e075d8d9e9834ab5c416755c2d0c11f506d8e29760 SHA512 2efe10b77926309cd42e95a0c1e9be88d6e2b33b1296310a2c2d7fae90cebed18e23ba918e4ca0b96002e7fcdaf3c6261185231aff3e6deb80dab051bf4c2e0a +DIST firefox-140.0.1-es-MX.xpi 436648 BLAKE2B ab391fa16e7914d6f77d441081796cfeba014b9cd792a7d19d548d39d8ce9d898ac2a2fde8cc6ae6aca975cf4e6f3fd8f60c4282f6ad1746a59222f61ef9b684 SHA512 a0b7fbd652385b97ecd36629571ea74eeacd92a0f17ff48d66dc28c565bb70848e0fa8995d6501d642afeeebe39bff7e01cf022beb5c00ea492ca449ff932812 +DIST firefox-140.0.1-et.xpi 358821 BLAKE2B 84e69a300b4f28d158518147eda3b791095196b103a61f5048201fd6fc22661054fc28cc1cdc80eb2701b65052277abc728950165b08941d2078b829014fba87 SHA512 7ea2a4967533b85a4e2eb18d455c266aa1734876a8ebdc9af5b595d21298c48907e44f4f9c0b4c954b413ff449702c688c819bf517fb7834f037fa3352bfd50d +DIST firefox-140.0.1-eu.xpi 410462 BLAKE2B 1771dfc785882410a1b82615bcabfaabc2e147d3993999a818254ea033c1b8a54092ca3ff77837fb99c0a48449027235e92944681877fcd5170a98515e8b2f32 SHA512 42a30bdcc3787909b1ed473f911df4ec7b50c306576de723fed9e765ede4eefcdcb27947c6ed96b8c20356e25e242b27aa9311669881b43b3651dd53c43df870 +DIST firefox-140.0.1-fa.xpi 421028 BLAKE2B 7b7b928f3d016265884e075f72c0154194b92e87d25f44fa49732f9c7e38769c0987f4f4563731b4528c4c88912d5986a07b451e63ed4d5db81d969fbeb0bbc6 SHA512 7645b50653da3079b6769d5620f71dda62801770ab3ac087c839540b462b24d54ae93dd98f107be21e15ab9038e5c67cba58571c687b0b92fe739bd8192e7815 +DIST firefox-140.0.1-ff.xpi 309696 BLAKE2B b97a36e54f81bb96583bdd0e525a5c52b1765dd4526a4306060a537761af2aefe38733bed83b4191b89f6b54f88c49882fa032e1a193a25e18a2f27cca6e6704 SHA512 167be22619e3e06a9336d41906f73df1481f418f8f533b5785900d07f89eb45389cb53044f6888cef5e947129f59d5d8107101d064cd174cbb6516cae89ad243 +DIST firefox-140.0.1-fi.xpi 428586 BLAKE2B 86f203ab168eb59913c8d1806d5fdaff46ccb5e56cc469b6272683e8b3777260d8d5278ea3b91e75dc9a691888ff6ed5cf3f3f485d5b91b9bc35c431adb4b384 SHA512 8c98b2299ae95a41eb9a9a76bda303bbadf1fa398baeb019f2bb4a7de9655a20614716a724e03796657ba3f98d536a35fc39615f828cc5fc10aa82409d0da685 +DIST firefox-140.0.1-fr.xpi 457580 BLAKE2B ce5cbf4cc9c9239df33867c92f1085927a421d3b443d2cb15d0757c0da2468bd19b285a28a6264f1ad384b92ce87acdc210418439142796ce68bb65361ce3802 SHA512 e49a208cd788a8550ef6f24dacf891f5525d7ed143b6f722befd69694e9d9a9d09e6e8fe57c2f33239c915fd043903e2d93e7751c82b6bf80005d6ea1e3028ac +DIST firefox-140.0.1-fur.xpi 451052 BLAKE2B 2ba0fbb9b8922d93ecaac8bc6403cebc1873e60ba2ff3197d86e56868d2137b41eb523ff68af53d113c9e652c89d646783fc35f5c70bba8c91fa9773fc5e84a0 SHA512 231a2b9693f9b903b6068fc4ebec60b27b98e1d129d1a7a23784a34bfa633cabe26ec66f90de89a410c5aaaa7721403d01809f75fbb30f0c4ac7e613429b0a16 +DIST firefox-140.0.1-fy-NL.xpi 441365 BLAKE2B 60b87c3c298fb029bb4228bdfedd30eb951dc2967681ea5b0aeed9f7b0c7c0494891821536803c4d87b60cbc2c5bf1bd2fe85b6eec5065933930a47f4f42121c SHA512 94bc0f70b58c65829c9ea263a4200fdb0d8f96c2ac43a4c034f574ccb421f0bb076199515f0e1446638fd1e8abac0d579c2e22d5effbdb1c505ef1319137625c +DIST firefox-140.0.1-ga-IE.xpi 314772 BLAKE2B b24e9d679e51a3253ab332ab18b38e531870a6b71723a78557dc2ea3356632f830882d3eed3bfbde620a2cd835b947edd31353eb23b9ec4b0dd21bc8669edc91 SHA512 37a2c79b7a5b4615c33769872e8445264c3faa4c5750f50992d8a30a74c6482d75dd4fd6c49d0404ce6dac70e27b4e3c9924978fed93e3d811efa9c53ae80132 +DIST firefox-140.0.1-gd.xpi 398929 BLAKE2B 467494946ec9a1d6296ea45ab410826cf4c6d283f5fedde34e021f4e2c3184c838318f10349b58415f29886cd7590fe768f4293a9dd40136b30e5459df8877bb SHA512 f9ac229ea4c13a2a3d3c963af7bc9767f51e23d48b1a615ee12be9e167f2ee491d84f44cedda888241f1ecc006b0963e32d9c7ff09cc572228eaec424f28a6a2 +DIST firefox-140.0.1-gl.xpi 404602 BLAKE2B b58388f380e3006bd5770a797521c328662f5b5c9b8dc63f1f37d754d385a732696a4be81ee51c438f26984673c8c40ac60ae643d5fe60eae9a68afe405984ea SHA512 d1b419e95a7bb0da7e7ab8f81aa5060ae52dffed389d2e343871cc2afbc3809738a77fd5af125a8ea399a5a97efe35bc9e22ffa67bac5c2eaa17832be5295971 +DIST firefox-140.0.1-gn.xpi 448662 BLAKE2B b90ed19b94e2ab3037f907afd996a384b4383aceb809eecaea650082b92869b295374f65af07a6d175ab0033d7c741b0af915b7c9c9a0e0b13bf740354a607ee SHA512 0aab28d5d0938697f77412a3919b61007c8ad938ecb9fa6492d063bb276ce6ce9b649b6dccaa2c2831ec95a2178e150b017863a09a65192c449049b937762b0f +DIST firefox-140.0.1-gu-IN.xpi 358456 BLAKE2B f9f6a59d29c4a36174eef6b22df16eb323df064ef6d18916cab34b6bf60b2e4fd76836c2c7a1f99b4aa0665766514806ac8a5fd6aa1f58bbb5a8e83fde4d7fe9 SHA512 5a350c287568dca946e229a80184a0d8a4dd24b419a6be86c8eb988702fd2edb5b5b32b4f40a748f6145947c213ba16805328669ac6511c9cd81aa69399a5199 +DIST firefox-140.0.1-he.xpi 443917 BLAKE2B d3ec4d7828cd42f5582ce66b36a12b180b1f8ef948a9cefc632621b497c8e8ec58540625b57657780d7487fdd93bb1d5a9f35fad24ca680a2f06b839e1b4b2b4 SHA512 cf84c6792c99a735474ff86bf86a96014e21674a58f783d562bb4f0002bf2ca9190b230149cd95eb5c673efed6115e21f2554122c9ec21ffe01bdab8bd2b8ba6 +DIST firefox-140.0.1-hi-IN.xpi 376949 BLAKE2B 5c732d5dec538a2a85bd8feaab083d2043749104b99862a5b5f2cd7ee129a59d30ececd89380d61304ea3aaba2927b6e45421e2fc0641f72695cf27085ddc6e5 SHA512 2e9e5ecbaa8acf63fd0560320bfa6e9b9d221a0eb76886fb49979bbe2bda103a312da0d39f0b7aeaae90b065da924d1a31d4b046191369e25ddfbd6961d6f062 +DIST firefox-140.0.1-hr.xpi 433949 BLAKE2B b49ca3a31c8fc2f57f06c9898db2f2ef578323eb6824ea0d655098b351a0a23522840180365f97334ac90e580aba41910062ca5b344e9d76d204e3d918cb35e7 SHA512 6d5cc6f88a57c93bbca3e7c17cd3cd9a5c7b8e95a80316d45d9bf2ea18081983bcbe9c4b88aa39d60efb447e82cfa8b1f48fc77f2ed2a68bbe31d269abed230d +DIST firefox-140.0.1-hsb.xpi 461880 BLAKE2B 568e85369517c3d6d34aba8daae1a144d1fb2035db6533e18e9f25559a7c0330bdd5e20a244a2a37a2cce0bc93c8c74e609c9593136fb95edf50d1ceb098ea7d SHA512 7de0b93e7e6a096d068153713698ce27bc5add41c20adbeb128ef4d4ac46c73e379aa9c0c330e7c680a9fa4ccd09b62cd5537c39ef263e72f7ace75af90294d8 +DIST firefox-140.0.1-hu.xpi 465375 BLAKE2B 12beca6692fa0df484e3d82ef69a56544d42d0a6c5ee352c06c2018c255d956ea7b14098e37a9a7148a28c2fd3110b4dd835cc3d50d585b51438f98161dea69c SHA512 73d9e6515620f853216c46cf4639a84acd03d76c9583c442613a5515be0b9aa32d902000c7df8a3ce567792aa2a122800ff1810e016ec21a66520bff76e8afac +DIST firefox-140.0.1-hy-AM.xpi 453986 BLAKE2B 52a92702dcd46e6f430b1748b76f6bd332e4451fe4c95e94ade2463f52ca1157c6b0c5979ea111a96443d96ed596f3c5fec81fc06d853360bd2a2ace5e786fa4 SHA512 e77e3ef1b97d740a4c00c3d09253668796b4617eed4d614bac72bb874802737f85e6b58984bf2a83f8f45411f691226ad8f92b6452ccd7e8238aa86eea5b4790 +DIST firefox-140.0.1-ia.xpi 429315 BLAKE2B 6e5cbd0ecbfd2c57d96471bf11aae35b257ebb5ab6e5e13f83cbfb2ec5950903fe42eee827ab578de05ec5e54232f018e4213b20fedb404a79a3a714ea2c4855 SHA512 1fe7a571fb510f1c84977a974fc2d3c3b6cdd5dc1dcdf9b5fd1fdd5bbabb1d754b68e5b918fa2b7e9af0dc263bf10754bf19df6471541d33e5daa9f7f93746c4 +DIST firefox-140.0.1-id.xpi 418231 BLAKE2B 1af714fbede0027755a6e5b0dc396e16f8ff6709bc857dc21b47543408021b6549f74d73dd8071cfa834e18911c0d6b14eaeb7b33479a2bbe8a1e97fff8dbd62 SHA512 522152cb8f9fb843ab623892a3466795af45692ca571e13c32ae99e42334f8bc7265fbc7bc104607b7a5778d71a6f26e9f0a9c62565bf30ce683b018d7507bb0 +DIST firefox-140.0.1-is.xpi 430709 BLAKE2B 4c0e44b99d28da19deb3c2f872f13fa2fe57a2dd393737b1fc771cde5007aa1978ed62a9903bf96058d581d14f5976a109fa296d5ea2e99bbd0acd63eba0d412 SHA512 0f3123d9d4244e383e9f0e80b5dd5def93065a4c02ed208f3e24752ea51f26f608879533eb0d71c9ebe8b2617e2ef24f76edbcc51ee0e422941a6326aa520ef1 +DIST firefox-140.0.1-it.xpi 440139 BLAKE2B 0234d89500090d8310c72ab38164e4e9467fea73522145a28a747c62f61dc8cb1b49efe65b62c3c1a8ee109a89d7027056a9acf745e55999ca7cecbc63757ce7 SHA512 5916c2c11132a87575f6aba1c430b4462eea8c851d5b938195cd6f49afb35f074b8c141d02fd190b2da92fd2f2b09a3e06e4b38ac11a28eabcd15346a8a10ac3 +DIST firefox-140.0.1-ja.xpi 480525 BLAKE2B a7d31988fe5ac3a45f9efe723b506bdd7988a191dead486682c9d105b648c5120972239a92d9856014e44258113ceaba75d82e126ee697b1a75b4bd1e36f0374 SHA512 e0d2be2b279b95e8fb43dc3615f2abd74e8d84fcfe0e2a96a589d2a7faa317bf27718416f3e5c50c24854fa18fb5d4bb829fe9b698d49d3b6344e3e2c1e1810d +DIST firefox-140.0.1-ka.xpi 493899 BLAKE2B 60a305815cc451a462c3e039b18874883e5d6d9253546be891b30e526068e8db2fb1930b280d6719224ecd0141bed2c7f4c1ef8fa1c80b6ef3a443d44732ea6a SHA512 e5496818a4ab4ca847b4646701d88513d07ed51f7d4b06cff44c2b005ee24ab96c0360fda2af67b7b8c486cd14efc8ac69f6421e86e838045e2412d55cc086e3 +DIST firefox-140.0.1-kab.xpi 419765 BLAKE2B 4db8be6872892d12edf40c08745429850533373e6be764f19c2561d9d81474dc344dfd5bd051d2db0f727449b19ec047432124afdd5eecd2668e5974c98a0aef SHA512 4642205e91c6439fd3b4cbc944ca0a50a41d8963c0de6ca5ce738fe9d080f9501f9aef4fdfbb4c0b2276dada86c7a8f323a358a1931f2dbaf7960603ba5bd5b9 +DIST firefox-140.0.1-kk.xpi 500403 BLAKE2B f166b078a75fdefc2b66e7c42c7ff7306eb1129da8f605eb54fa196c968c82300340278808114a6605b9bf2b69e3741fd076b274d148db4ae10e935cf63324b1 SHA512 172cbbb1a50fbcd3f23872fc896ba150bc06025f2ea350038fb64e94686aed9d8d0e7ff8edaf647180a7cae4c08d64fbc1ba81015b8562a3223173482582013f +DIST firefox-140.0.1-km.xpi 348192 BLAKE2B bf1dbac464b15b189d67e31fae6f1d01a687e414db4c3cac6c65b73dc1ce2f6e65fe77dea07e946dc9dee84c300db17c21d11cac65cb0bbc58a51bc158386cb2 SHA512 5901349a8e6f74c27c9a960215cc132e73141c8f60c859084cd957fdd4407a655a12ddb999c562d9d7cf590088fe81ccbf6f1c371f46674eaae94ff4e14a4b1a +DIST firefox-140.0.1-kn.xpi 331268 BLAKE2B 04dbaba9d72e2cdf6b7187b4f8516bbde91cd459ea713a29d12662180355a3222560cde024a634b976fab749ce560f538160764da07a5b73a63919590bb37a46 SHA512 2429978fe19e62d718bb06f12629250f6e5ceedd5061a43ca4e2d662ddc4969504c3bdb2a821f8622466f30116c47f62142bc2c7b479595dcb4114aaeb09e39e +DIST firefox-140.0.1-ko.xpi 466754 BLAKE2B 4c8bf01e494ddb73b78b349fced409dd6ba06198da0145dbf0338338ed8a0cfef03973c24529b2442721046656a8c04fe8b0be33f295a3e0807f6889ee83fbaa SHA512 201d5a6fedcd7df757ec898542281a245319aff5b7092b895c088e7a16a9eb8e9fecb3dd769d07b9387a07617b507ce7295ab95daf1b1f07d20a5dbcbb97d654 +DIST firefox-140.0.1-lij.xpi 318015 BLAKE2B d39819edfaa2ba0483c85f22e6d9650acaff453c2d12eae7bcdfa5a3876057b81e681d51b212b77d14c7595ce263b4ab9f7c91a98c34fef99f42de2273b821b8 SHA512 27fca5d598983ae104b86606fcbc10e22074ea6a31855ffea5c05a40a4b20974cf1a4c955c4cecf11fed09eb04d82f7965f3ae76d4033c9c958bdacb25bc98d7 +DIST firefox-140.0.1-lt.xpi 379450 BLAKE2B c02670f6f9e2654397fee1098c870adfbdae902e4ca654eed9f645f1912a6ed9c5070f453231010e6891aa5c64ff5e5d17e119a70fa0c29fbb2793873a5a2fce SHA512 91ef5dd4b7d07193323fe40dd10aaa5f44ecde65d91099d45a6539f24e7efde3ab9c7e4e2ec2950c5ab9ab5cdcf1af3883703e6abc75ef362ad48cbb8fb772e5 +DIST firefox-140.0.1-lv.xpi 384037 BLAKE2B ff48fdb98cbe7e657393564bf9c8d67c450078e9f3e10f0fbbb6d308169a67cf5cdbf10c9e7824eacdd5a3f9fc47e9a0eb80ef5a90877fc500cfa2e2797204f6 SHA512 f835737d5977f6057009d2537352e48003ab343d7fd8bb01e152d517fbde8e344a5f18be46b70c1091c93d48ca6bd490d126713580e67f180fb5f2724ca7609d +DIST firefox-140.0.1-mk.xpi 316312 BLAKE2B 3dfb5d8401442138ccd0c42ebd0e0726728c650179c569d3a07fd3937e12c537cac5a883155c0126684a3f904c0adfbb6bcba3c8e858aa22b26a7c11e3e46b2b SHA512 934ae9961dd9d805626657abd5fef0cce9433f7752c4c5a29d4a8ba20de66af07eb48e2f65bbc468432754508af0cef174236adb0611c8b522c893fe9ce2d9f1 +DIST firefox-140.0.1-mr.xpi 355745 BLAKE2B 14f4bf629f2fca886592c981b3fe886b9026497b536f37735d75ab23f8518e09eb7e1292c3a783075cbe6996344ebeb163ab31d01a7f6e0179c5a1dcdefd4ad5 SHA512 22fcf2ace66f0db54cbf4b5ae33f24633877b1c4cc75bd15b82048599c0b2fe0806c25247acd5ea4884d62b9b161a0962afdb1a168866feb9705fe62cbc294a8 +DIST firefox-140.0.1-ms.xpi 294879 BLAKE2B 070f729e2ddb1fdf94eee9908b2575ecc2038788f0e60016676e3f6ec9e414bdbd8e88eefe9e2c236865b01b0a96c98211bf0e84f1a98132fa4c46e8584ee411 SHA512 9469d5b080e2fb5f0e48f8c20873a87913153abcce0112fa7a9473697692130868c8294d441eb60103244a3778e401a842a86a7fcf9116612a8cadeb944695d0 +DIST firefox-140.0.1-my.xpi 342527 BLAKE2B 7f90155475c5316eca6e0e5299dc0f262de8c4ac77522d360718a58443df1708a3a65c8403b53f8ba7ea2e8a3c9ce357398f9eb287d92bd433e6c41e31042727 SHA512 c4f851da9708ef2e866b5dca84fa153c60cdf495c25c7d6a0ae31ff040599c536d0b90b395cf3128624f6445a1614dd44d925a25a184b902a29e4cb571ce5179 +DIST firefox-140.0.1-nb-NO.xpi 423618 BLAKE2B 9a79acb788cbd88da0356bba6bc6999c0046bdbdbc1263b36d4bc23898d6e7db488e15c0046d08a92596375043e8b34baa782cc4dceea9355dd42d305705010f SHA512 8525a37ba59a1ea6fc64940d46558db66f811284d428898227bec98c2a58073e51f3c12c3208cb9b932665421cacc5d29be91d005b8a86a153773243075753f2 +DIST firefox-140.0.1-ne-NP.xpi 348489 BLAKE2B 516516c703d45a1ed482a6ac877f5031486a0b5d716e8d93d06b6302e750b90252a59e265ba2e20ce210f1e8665a1cd995b1bfa5001679eba766bc226532b046 SHA512 01db66466eca2e46d3edc02b8990166318412a03876c2ae093867b7137ce5ba58b564ec8d3381b17f00f10f72cb9681cdff5420cf18512f1812a85bf1d6a6ae1 +DIST firefox-140.0.1-nl.xpi 435432 BLAKE2B 28cb7ec5746dda23aae94efc74c9c6d5dd0b26df390793b33c1ad5bfb733e8e405896d094a63c6d6a9e66350a7eee25440b8be49ee1cb15fe9f754c7d8488aa1 SHA512 cb5f80f5918daecd0725ce8a1b0a4d8222b39475ee5825486f3732ef040d8374ebc596a42df1bd67a44b5259e96498206c7fd231470534090e427466ab0e7dc7 +DIST firefox-140.0.1-nn-NO.xpi 426992 BLAKE2B 4d35e7e790f0137e3c54a81e87469fad90919597c1f82e73b3ccdcbc4f80252743fa7006e4046ef7f71ca0790304f46dd1c863a1a568aca076ff68fbe13b4f76 SHA512 a1e159a099c7e4cbc4bd40e5257b81984973a5c58b01db10cd66d12037b59fb7fb72d5ab0ac1408975cb4d59b4f0f0c4d1723b938419649df74b39211dae3163 +DIST firefox-140.0.1-oc.xpi 410442 BLAKE2B 23d32845f5f7e8e1b9fc097780c1ac04c8290ad6645fe3a7ed14b17a7c982f5f5ac68fb2c1f1a8567e3ca559cfcc1ad2772a549af07070a8a3dfa8f2567bbb3b SHA512 3e5afe329427834b6e13d05c0855ddf27154a6bcb3781c27b76183a7762584f6d05c6381052a7895890cdc624a45ff21e61174c6fa2e43235400e1161195f115 +DIST firefox-140.0.1-pa-IN.xpi 491033 BLAKE2B a2fad1965d483036541e3dbd118b23d49bcffdecb45d8b9003b25cae8661be24bd10d9f831c184df25fe813c35547c544726e3428d59f44b0b777af2a6a9e954 SHA512 da90885b9619779e606e8a240890e9861400b76f7904b3bc23c621c071cc54c32b6d55fbe3ee04c6556428f32b67097925a53a67cd165ac4510f9b91f88dda3b +DIST firefox-140.0.1-pl.xpi 459746 BLAKE2B 95833abff087d09114401462c0f27ddc35a72f9c9b657902ee13034015640a527902865accc0f53214b08289fe67871ee0b97182109871562760a74b7424eb1a SHA512 62567aae87e84841916ef7448a7e44330d0ca51f8e73ce1b01e948c7b00e1e9fe424eb690818c94c5056378af4b8101b685c5d15a2bf246fa8055b0d4aba454c +DIST firefox-140.0.1-pt-BR.xpi 439986 BLAKE2B af05b794d0771fec71fa5cb3d9501a5d7c74226fcc8fbe4ec7e48b59e647c939ef4d51adcf8ed98b60089e4d2bb774b2df847a26aae12466dc3bbfd62c001b41 SHA512 41e4dd6d0513cf9fb02e228b594da07e764571a0aed8a12b4fe40994095f484758533853599e2147d3aff197471e18a96a2aa6880be79d930548d9337560f315 +DIST firefox-140.0.1-pt-PT.xpi 445780 BLAKE2B fa5321aba9a0a5416ef5b35485779f869a62b97934fe3f425ecc48c27b6c84c88c9dd5059fa00863427356ab270c3205a4076f6870556de2b98d276acb891ab2 SHA512 18538440858301ec9c35331414b26c408f011a17c296bc1ec4b40f45bf36a754fdfe1ce874280fa98f0bd51c884f553c0be05799509e4e0573512138b0c21484 +DIST firefox-140.0.1-rm.xpi 435122 BLAKE2B d2b325201a80efd9032970fa9a1ba639a2c7562627b3e2007b8edc945cd609c3930f90d15e22df3f7cceb4474dbdd15cd50999f6692a2d760992907b1db7f731 SHA512 2c69e872ad4ec8a86c5a1f6e0240bbab91aad8fe1f6913daff7e43a7c6200fcfa9e37d9e59dcb3e83191470506f4a8a7c5107494efefeba9f5a5a6dad19ce7ef +DIST firefox-140.0.1-ro.xpi 365390 BLAKE2B ed1b3ee850ac430f796e56f05e526b2b6e6f515869b36ac5f3e4e00e26185df59f4bfe4fa9213b976a67ed79d56348f7c359cda7e7ed71d2046b628047c89e83 SHA512 ce0fd6419da503a2f3242b0b0000308a0c780c83b03858e82fb99bc90c4affa6a89ebea3572f3ecacbe6676048a12bd43544ce9333cee912c9b6aef33b0e473c +DIST firefox-140.0.1-ru.xpi 524304 BLAKE2B 13dbc27bec822bc583915ca0745ccf10d249a45e23c57ff6554e37e0d462a2fc9f233015a643ebb655a16a1722f3b6d5b363004d2fd59ad2883ce6a29a8765aa SHA512 ea22174d9ad7774250ca9ff858d0bb2b60657b22b4ce9f991b91da190e2971b0fb34c940e698ea12f18139f58777c3c8891ef67813eecbcd1002373781ea6652 +DIST firefox-140.0.1-sc.xpi 401426 BLAKE2B 40c7d282fbc0900d40c020f8b41dee63dd4d23fd2eacfd39f61238c91beaec2adf1f48dd54dbeccf8bf6393a25ca0df1a507cdf540fd6eeeb7fa7757b1e18560 SHA512 635e2798340b6a52f020aa15112c7518b47b9a60a143f561f48634eaf43ee36cae65dee93c5c35b94c2da78ac9752b710af62f56c28dcf6753ef8bea8939dd40 +DIST firefox-140.0.1-sco.xpi 322156 BLAKE2B cf8e19e0cbd1a7ec80f21b6a7dd3e24eda5a154a99a10edb1789383a4db209c7c3b6e35aa2bdf1e6c7b2ecaf6fb9142027f4d85bee779a3dab768b3b7cd952d6 SHA512 fda4ed78bbc7eaead636f4c915d36a57a2797801cb45f16f79903640d01b45ce0aa7187f0e3c7812a90f861e104e9e0591c00cb0c5ebf0d21d5ff3b7d039976d +DIST firefox-140.0.1-si.xpi 411045 BLAKE2B 647c47685d86e5af787b77b7f777ddea9963512b46af126972e3cbf822d9c62a0b4ffa08163d04f72af45dd29b8156b7093bc1149b0119a5fc3c722f4e057faf SHA512 0bdcc5b9ee40c50c204d6c851e69c31e04efd5da182285db12df9e1c527703f3c0422e796833b4f9ff3e6dcef7a03b99ca7f310b6916f0752f9221fabf1e0577 +DIST firefox-140.0.1-sk.xpi 467208 BLAKE2B ad7f93f8de1d2c6500bc4e14c1e5ad328bb02d74f4ecb7281afd1516e57ea7d14899d7e0d6d45ba6d0033041e874c9ce4798c43f5827ec0c37ba2c627ee1ab06 SHA512 9f0148f66e00444e512965550f6c3cf00a675668916260b52bd6e273239dcdc0f2f46dc43320547f3f0ababe98ee4e98baeddadf6a9a31dccc1ffbb96c6d6ff7 +DIST firefox-140.0.1-skr.xpi 485334 BLAKE2B 4eb17a8903914684036ff3d8474c57e2c0ba64ee105777f20a4258c18c1c89c76ff634ccf1c463615b4eafcf033f9af35a80d6e9bd93b4ec139fc921c41bef56 SHA512 89030a3157748dbd499dd1acbc4e73a8c5916075347381bc148394ba503aca0200f01a4ae8e9d2aa1f5d370dc7be2c6c93c657da10edf7170c4c7235f9e14ad3 +DIST firefox-140.0.1-sl.xpi 440265 BLAKE2B cf6962190c5d752d5989bc3cc20f4d0337b0ba830b605bdd29a4fa0f77475ff46f78358f0eaa60d1fc50f6ac13081fb1494119e3f859ab9dba6dc089d25ab444 SHA512 b727a761bca564cefc6afe5f0d464a8f8e66a202206f6ec84ac80b52f523837773225763f7896ce9fc858e2e327c027301d236059102ea50c435857d9f784919 +DIST firefox-140.0.1-son.xpi 272628 BLAKE2B cd4f31427a18dae0cbec669ee8da6f71bba0ade0c695b3e5c6dd3368f041ed9d719ea059bdbd2d939a87d3e9175d08dee86addba5c09796d98d728b8b223bf3f SHA512 ccfb6178c43dd7769f8ec0f066b03bcc20a88cc4ca32e67f2c23a9baee1204500f8f7c85acb89f9cd60e1894e2a8ed0812a12372faf912feea445e99f846a0a4 +DIST firefox-140.0.1-sq.xpi 452605 BLAKE2B 66a605ddd8658861931a5559ada964266899843d34e61a47df225d58fccab19546e2f216dcbba7890ff5f4e0df0d92cc66a3459fb507107f9859ed39e375464b SHA512 fd558d7b070beb354b7214db4f359df0bb37d9f8ba198a37f6ae3e62f17935230e4e992dfa4ac29da1a2cabee6cbebdaf9b0c064169ab5aa395623cb443a4777 +DIST firefox-140.0.1-sr.xpi 449686 BLAKE2B 0e45454f6219470d0602e94e719b93eeecdff54ad8decef806e6b58cc015f9fbc5f95ca491d6869c10b2c67fd8a46c7b5c3eadad1441aff2035b6e28232f8306 SHA512 553494d7e7eff29a768f3174670b588f5d06755c7976ed33120b3c5bb7c797847a3b2b84f6f231936aa1f67729620419ba6ea407ba3942f0d407b5adcaaa8d99 +DIST firefox-140.0.1-sv-SE.xpi 435395 BLAKE2B ea5a6fb5aa92fa9177d10fef30bac4f7119d01ab26013cc708315becaba32f3c307a9bf76ba360705888445bb9ade1f3ebba8e1afad1b41be7595634e402812b SHA512 550c96bfc39bbc96ab79a5429e77d29b1a12a460104e58844cd0f840ab904b369837b2aad6372646be4037d99274d0a5e123b125c83aa2a4fdbfdd1d5c832b0b +DIST firefox-140.0.1-szl.xpi 341182 BLAKE2B 4f04ee265323031fd1d72f141f823d8bb1eed6830d7de52367d0a6c4870c0796a2539feea7f0cbd993570c5da005d42074066f141253d8b0a891cb829022c3f1 SHA512 78da45ed5d9bdaa9047fdb06342997127a36a56cacb049fcb9b507e744164abe96d030c6bdfd9facd12e55f250fad45085082d209a69a526c8b01aac66b73a01 +DIST firefox-140.0.1-ta.xpi 337498 BLAKE2B e8407a6429afe9be21d845e3a163fb980e7398c991871e39a3390db6bac16814241f17013b794dca9742c1ed5af3c9babd9d88cae0c5fe4c238a5c360668ca7f SHA512 5cab125c0b92dc9f8ef7f57dc41ee830e1952f62d2e1a33ff2f51a7807fbd3e31edc7bf9b6e5a5e8ca7dd454604142817e5d50d339d3325dbd3b6fd6020fc3bf +DIST firefox-140.0.1-te.xpi 381676 BLAKE2B ddedb46fe2bd464a194e33a113d8a34b05f23cc7ca90f7fbf14545475241655fe2e10af820aa54eeac140555697ee4f44f8df0117c0a2a5f57643a6e2b61b401 SHA512 a8233dbbb91cde8e7372eca4149fe495b467e2548bc9b36db71ab36f057db7989fa7a6389de2672bfb54da3fda9688bd386af17d2a80d66cd3a5d0b5dcae3e86 +DIST firefox-140.0.1-th.xpi 502954 BLAKE2B 59f049a40acb174dee4bcfee79ef6e2207b3b79c5725db90b20c581f115f3d4a58036b2290924803cb55b01666fb14d7d5a4d5094401710d932173d69aeac912 SHA512 f58268ea2a8c0188248b61aff014fad8bcc5d57337f373320d5d2418ac9fc5cb9753c7898887ed84aa856bca62fe233b069536948c9573c99bdb443122ea821d +DIST firefox-140.0.1-tl.xpi 356162 BLAKE2B 945f1092113b69e0f04831e164d9947d9925812e6917482f2aa9b0b92c0af6c6f15b96341d2cfdaaf690736566f57372a9e0a96b6c0f71873e90c76c4113e2f4 SHA512 b2aee355d56568862df2123fe2398475cbb2160f050815c1a420521173c54333367e1453b7d2554e443c8f65671beea68ad72ae7565af86405efe023c705e9d9 +DIST firefox-140.0.1-tr.xpi 447914 BLAKE2B 175e1707d93c6b40738f2c6e1760576eb1f5b0846f7ca4d006efc3984afb5095fd93b915c011841e57ca8b062f98180ac453eb2ddbdc12ca5d096eec5a37583d SHA512 8a16cf5090d7920eb243910c0f2f503a7fc9d6624296e0d955f0713f0182fea91fc8a36aa5824e3ca83546059a49a8bd72d57632b3d57f2c3f1b6521a12faf99 +DIST firefox-140.0.1-trs.xpi 322012 BLAKE2B 4de0a20869643c2600a60f4708fe6bd84933147689965615d1510b9ca55d4a65fab370e72a28d07bd09c1813f45453c5384d8629f683e30767892ba4a9303490 SHA512 33718b8aae1f251202a69dcaca2d7eae88c81ad1837382c0c2057a1b7bf229e0e7a90babd3f89738e532316ba62b59faa6f5865e8bc36239e16beb75f50bc643 +DIST firefox-140.0.1-uk.xpi 513995 BLAKE2B cdd2b07bd28dfaebff0b5911133e06eec453bb89e2ad168988efbd4941ebdda80134ce1a43ecb209ba7b77fde7b139ee2fe492a8d8f4f0332a0ddfbb7ccd3c93 SHA512 2e1ac18976b4e46f4bcd742b8513e07c17adb600d2917d498478cf32c4a585452761722d70f4152398bbc757aea3e4be56b439a9e25db0e94c5e2266925b004e +DIST firefox-140.0.1-ur.xpi 369649 BLAKE2B a1bad16813864a21b94cc140ac7f99b2248e357d3bd1adffaaf6b7a5cc48cfcdb2473cb299a53ee4cefa5d146c67f733a5bc04462cb56285135102222e125ed5 SHA512 a3d792a5facc340ff6fadc5e6103fad7c734a37a5bc154aab3627f04be88e000ecb93c093e874e23d98e537822f31200d1b3d4928092d4d823e0e4add543a9b1 +DIST firefox-140.0.1-uz.xpi 302993 BLAKE2B 868a909f8b016f5815566799808ca68d5be0146857d171b4f7c5d2a633699811474bb4d7953e9b30a845b3fb7978b1c9429ac673184e1e4ccf351e1e4fd89db8 SHA512 89ce2fafc0420258eea2f1630eb4d23233bab9ef3d3ff5acf33d297b3599a5e32d43129859184d8b07c258a2f62c0f85b1d54a30c9d7954b17c137100db8f552 +DIST firefox-140.0.1-vi.xpi 468225 BLAKE2B cb2c6e323208b70dbf95a49bcee5922028549f7ef60051f52a1db01d2559740d53a88f529ebb71b83e27ca3c66d513e6f459e8684eac6fe505ca55ceef26fc6a SHA512 f6e40c27e022860e32772a571b791242eb391de548bac818fc5c5dbc1796415bc150c6b695d0215aad3ead849dc1b4ee12a7dd817b08094a1a8e0283cdcf7870 +DIST firefox-140.0.1-xh.xpi 272287 BLAKE2B 5c4cbccb2b0f8c0ce69f84adb70c24acec731e57a2593646056bfbcadad044578ae687099582a4178fa408310af8456a88abc8062f59146f57da72756d567886 SHA512 572f0a555b48052393df3ac6a0d27ef6b09af9dbdfefd84cff9de187609a34181ff3760d6b833d7c7085d14a4726a290a2ecb2ff2be74fe34ed6d9d252709c99 +DIST firefox-140.0.1-zh-CN.xpi 460048 BLAKE2B 2d3bc33d7b266a70406c1780c2b9f3ca72733a52adef831dcaff3b04442222e0cb3e7660bf8e196a2789d0fa04a5972cb75e085ec4fc8ecb6fc1f4b84a028e3d SHA512 734fdc9560886ec944f804bb7f1bea786d1444c7e4aa34770fb6897aa8639156edac30af33f7ff4ce3044479d4b0cdf5d69c76d28a0128555f771e931074000d +DIST firefox-140.0.1-zh-TW.xpi 462993 BLAKE2B dabdd791aa484cb9fdb22dc35b670a18211d62227333e742e1607f510167a71210e2268ea9dd184795e6d882cde82a8a510f252094b9e38c02b749336ec6c1b9 SHA512 d373466c233da9493f98dacba2af1d3f884fdeb430368123b8098a809b1436ae12f18f5e44868db86f43259b52cd6d693d20a6390a2411adfc763705012b137f +DIST firefox-140.0.1.source.tar.xz 633875268 BLAKE2B 5be32e347d2084aca99afa44bb50587b1085c3efb82021a06471dabcf07f18f7bd967aa740b69f2b0ab93bafbaafc13e7eac23c028f899a78217da5c78b07eda SHA512 d521405f49a38b8449a24f90e5ea14d4337085918779d93d282cec80b2627f381648529d6f69930eb6e90e37302797b0049fec5846d25dc40f556bbd86d55ef1 DIST firefox-140.0.source.tar.xz 639951312 BLAKE2B 588d290e3ff70e47a0235ff8abe22c17a76c28389ff9bcbbfaf05efa9fc37ec29a5f64c2fb736f270f8b0c0467c0ce7ba1b5c7f186c86ba1528a4d362ff1c2d4 SHA512 ef209827a422bab443e2b6fc59ac16f0ad99293b3c8f10a978f222ac8da5ff568b2fadfb97784feeafa4a24883d44ea2f34b47b2bb19863a27e00d2d787b8ad3 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-140.0.1.ebuild b/www-client/firefox/firefox-140.0.1.ebuild new file mode 100644 index 000000000000..3a8f1f226e39 --- /dev/null +++ b/www-client/firefox/firefox-140.0.1.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-02.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 +}