commit: 2287bfe2683a7101089828457a42c2563f404968 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Thu Apr 7 07:04:58 2022 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Thu Apr 7 07:04:58 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2287bfe2
www-client/firefox: add 99.0 Bug: https://bugs.gentoo.org/836866 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 99 +++ www-client/firefox/firefox-99.0.ebuild | 1258 ++++++++++++++++++++++++++++++++ 2 files changed, 1357 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 2f02698ba065..026a17867e5e 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -393,3 +393,102 @@ DIST firefox-98.0.2-xh.xpi 418712 BLAKE2B f4487c2fa0ce8a7d6a098ca1c71f0d67d86825 DIST firefox-98.0.2-zh-CN.xpi 576898 BLAKE2B 7fd46fc40d47895b9667c1fa9e06cd30151a14b1b757430de8bf4f6f34a20896ea9c231b1d8173da4774e37ec0d0cab5bec69b5f178c27958e481810a137f3bb SHA512 f27dc78f853cfa4ee34964096b80a6b1f19ddc5f8a8e2f3bc5c8d15f95112ff99194ef7dbb97a1fc9d23f553166601670a5a01407bb515518fbc8e338b2744a9 DIST firefox-98.0.2-zh-TW.xpi 577898 BLAKE2B 271fb14f82b014f6d9705380df3eaa739d432b7edf58bc14126b5a02950e55a88e16d2e6b70eab59f8eff2ebdbc3411eb37bacdbc459358cb89264bf6d3b7012 SHA512 68b2a143750c4bbe268c02ff9b3028955151033a89ad698ad8a761d5f90b34e5fe75ed3e604e1b5c03b68fba55af470c6c92da80674516da9d627c7aa9ad4ecd DIST firefox-98.0.2.source.tar.xz 479907760 BLAKE2B 41b0237acbc061366927612472aece6559ba48b8073eae6b0f79a5f00f21a232e092ef0a332cfded1ca5cf4b6bcd9cddc1ff78236ff3fe883960092e98a9497e SHA512 b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e +DIST firefox-99-patches-01j.tar.xz 16820 BLAKE2B 321770bea44c15c7ca4906f3a6f9346f4d4e325acb1528327d9a2038f6cfe64817676b1708d1f26fff16ce371357d74fce38853e410bb450b4d85f1345e3286a SHA512 8a5aff7687cdfa15012cd64145bbbd23be993d4c65e66ba49164dc41e39e51de2851ef441740156fdbfcee754f12c922d897e04bb7d2b40d554371e96f6dbf69 +DIST firefox-99.0-ach.xpi 449721 BLAKE2B c7e8713121c95276226663f5820a866e961f4b7e1d9bab9c87c27df1487ea085bca254bfb9d309a62d9e52f6f2729be566f94a1f69b00335afeff7c2b9775498 SHA512 16b4aa08dec9ffbc65a35d9445e5495c12bf309e7195da3ed996fd8122bdbb1c27c049722736fbf0747eb6096de58cf9bb3a3b3764202d13fab4769416c0acdf +DIST firefox-99.0-af.xpi 416003 BLAKE2B e02494593e7c1ab3bc0b82877a8ab24be3633bb3b3f442f20cc4b30bce07ded3d3c3cdb7be0f95521cebfd7a10ac605e9eaf3665cf4e27deb195c20fb7b02461 SHA512 c6ef101a7907da05962086d2e6b3e94305459807ed85097463533a769d52582870ec127248106f6f956e0636beb087917cd5d858a37f45e84776619eab99574d +DIST firefox-99.0-an.xpi 496153 BLAKE2B e97b274c48e46ac4fb22099fc545dae3bd743825fa4dcdb2a58e6443e632dda32dc1b2a702388665ab12430f3d65c80c0576f3fc31bbdf292cda7b890cb15b9f SHA512 b819acd1412e28d5f979c7780ac2a8dca9955f82945ab9e8ef9e712a08ec43ab363b78b62336b701264ede94662470abdadd8469decd34b2f3eed9ac9e359dba +DIST firefox-99.0-ar.xpi 565516 BLAKE2B 55f8c309da8c58f8e2f3ae44d98aedd70a7c25df49a247c6c58d2c3dee57d494082729c99a71acdc20d484af021c3212cf77297be37c4de2a9d4102a8bab680a SHA512 4ff032b3750da76d0c78d91a3d96c00e8926da61dd03c758eff7f1f1bcdd15e4527c8e3b9795eefc12214df8f0263e9d3e03f23dd242edf69c8d65c8ea79203d +DIST firefox-99.0-ast.xpi 494109 BLAKE2B af9c2a8e8d8d4a7ac711a8cca5ff5621b54a8061dafa6ee9cfd85580225428d499731295a4fd8e6a6d7ea5a66e96e7e3fd6514002673c7f0a34bd76abe52c3e3 SHA512 6ebc09d80f4555487fd53b8553a8720e09e3c1e8730e2a3768c2568b31041d41a919b2bedfcb837a811ff3ddfbd304145b3cc218ef55faf8c1a7f0ab8204a1bf +DIST firefox-99.0-az.xpi 485109 BLAKE2B 8c7667827a2cf2e856c8e6f805c2e3fbadd9446d99d92bda08d0c6c19107c46dd248c4e209ca1a45385a3e271afca04d68387d3df54302aba094bc39d2d63a57 SHA512 ee93aa36d6824f9c5b15838cc2ca7a4d7061274d89806a070cc1cdb905978b6c3f1df44d414530fa853345fa90c645d8509c1750dc0ef04ccbc95daf3310beb5 +DIST firefox-99.0-be.xpi 626140 BLAKE2B 02bda3236d64d250fa879c81a8066a3d215061500848fcb2a8ca6ee3b179d5afa62adac5df3810225bd5505ef4391c629b7e5e220e652e7f21e1bcf17d1f2612 SHA512 16ea5f0e0e912b54b872b5adfcc97d8e7f7dc3b63ca83cd7b3060da57486b7433aa1924bfa825ce4b03497e30bb31ca2b101cf8971efb8af64e115e1ef6e3abb +DIST firefox-99.0-bg.xpi 567195 BLAKE2B a5ced2f430203da02b3234d63ed09c983abe7594645743b25bd3c9c26947351475c5af2ec4906eb50ba4e9ff29453e9b639b84dc9ce959dcee8a775763324cd3 SHA512 0ac5b7ea7732b8fd29ed3f0e242195414c1ffca504b4d08dca30ef95fe579e74bb3c2c2c54ee53157d961cfaf3838bb743164faefe75560e4af5431a98e65826 +DIST firefox-99.0-bn.xpi 554976 BLAKE2B e4884783d31234a6e5f14cee33dba389e56b1012ef97e4c4265d1686aad49cb62d4a25308d14b01ea3fc28f0aa27c3ab698a84fbdb224a5c8c9ec1faa0a5fb52 SHA512 5d3d092cec0aabaad016e89430b5b4c736c6420ca73e2fc4453c9abdf06741d40bde33692d5f9dd1fd2bdfed60b115a8ca72c8c9ef6fe88ea9e4651f75ebd266 +DIST firefox-99.0-br.xpi 529530 BLAKE2B d0f17167d8c719b0a8078a1973fbc56774973e36fab45424ff55062607c8e34b73b6a6f9c1bb02e534df42c5a19ec7990e53c773605e4206d4bab498cad6a42d SHA512 1e9e5dc3d6aecdf72e928db50f3278ea3f3eaba700b5899f61bea030ec9ead8104d4d6fd98b106e347ce3d124e97cbc94bb6620f76090a71b7d9dc830715ede7 +DIST firefox-99.0-bs.xpi 459683 BLAKE2B 5d2e63f65118537fd43fa8738c409d3707aac5c1001f9afc06ced3c26d6f31b235870d4d45a33b481ba9d4ee31cbc439490a8d44452dbe27de16ec1d56a09052 SHA512 47e15fc416429095b448030e90a699666ede4ac6e3babd59493c6e0b276e26b100593756234b11396dc1da82496960d9e5d5ec300617397ba63d29c88391ba03 +DIST firefox-99.0-ca-valencia.xpi 537194 BLAKE2B 206de3ac19447bbe0ed2a2f2ce7b7357debdc6d1caa1391a1c7ffdac54717a2ea6a62e06e8a60529bec88c04b10dc9b31044abed1a9e6be1fe0966831d13b443 SHA512 a063f3783685c6d227eb58b9e12ce4a02a0038f244ed153462fb405a8362c392e76cb64fcf064f206e0be762378816047481c2a901a7c90638e3c069b9adca68 +DIST firefox-99.0-ca.xpi 530875 BLAKE2B 3e69fcda7482edd27a91a8f389b78da0446d08ad35bd1392e78ee3848c0fbe323b03d9b4aeec220856ed9552971859a99f8ce18c65f7e95d72d633692907fd84 SHA512 1924094f0c0deaad034d3f34e4e528d34b28530e41e068b8e4277e6331bdfacda670cafe2732dc106a427666b9c2b72ae3b2aabd2af3cf8fbd72394f09c2f662 +DIST firefox-99.0-cak.xpi 553816 BLAKE2B 1cae27b12c0b79a8943d4071485c93fe74e04d8a5a7a67c22d24caf88ae01a5b95b054e362aadb8f0a7b10cec58c677a240259455b90883c44e78ded7c8ebae5 SHA512 60a9d7019dd2824c2dae505b5cf5b44038073ca356b58e11870b4f7fcba0cfec95b5dd8fa39a515959fa40b0f98886bdee6f98087be543854f8f4dade4de81d7 +DIST firefox-99.0-cs.xpi 568907 BLAKE2B 55e440a2c97860e9e7bdf3af22d9097a74f4ec42771977fdf645756a25369fe16cc173310618b91f8333aaac374519c0bc6b1edd3d180bb5e4e08fddd6151528 SHA512 b4df00bfcd4ce558d5c2aa2e104c2a68c6c4858bb6c64f4edaaf602a154f7dfd9a9eb257bbf1e1708c52f3a49074f2904c7b3acaff820a65f1387a1aecbfb75a +DIST firefox-99.0-cy.xpi 545779 BLAKE2B 2fc71834460ef8abced2b0775ae38029167f93c9e4723b899c2e782697e11a87a199ad8be992ae641a5ab7153d156b0939a691aabd912011e105b5cac286eadd SHA512 084f372ba47e539a0c89b9f440c3bcfb6f0262056e4af7e641cd83a27de7b41e8020157b8fe23837ab854aa351113440fd05050ccf1f751f44b028cf92e5643c +DIST firefox-99.0-da.xpi 537629 BLAKE2B b797529fc322696566c6299e78ac7edc0b740ee7f0bb9491ab908163c3db1a94dfba6d41051620e3e74704e78398a42c708a6d1d41813768ae67a8af0f08932e SHA512 a602fc22f042f9a717edcab51922e1db213fe7b4c0aa121b2a5e2f1015316aa82e5428b01c9221cc1abc228bf717bf006fd7e64826d791873e514b46acb782b3 +DIST firefox-99.0-de.xpi 558431 BLAKE2B 862ffab977b3d0a8e25909833617fad0a4b10fc283854c3d76494858b5a4fa59208a6a9e41a87d89fa743c6caadea181b4152f358f4ef894eb0910b71b47fab4 SHA512 c7887b0cdd584f3271d3143c7c7110f8192797795dfa3dca83de3015659cc74e9b982478bb2c7156fd426df4ba0c745ba0f019b502f5a6cff7792391a9665ffd +DIST firefox-99.0-dsb.xpi 570293 BLAKE2B 5361dc038b50ff1c223f649c12ba95cce069f47b8759904e780e02ca473aa8363ca893415d37c17f4153850abde7948e236c5f9a5126fed1a24e0bf0b70cb53e SHA512 1c448de95025903c3d10be019f1bcec23a2789bde1d95fd50f99fb66dede0d480c1145605842227c8423c297fd176b6a6a37e1ea8fa1e34008c6647012a0b543 +DIST firefox-99.0-el.xpi 644717 BLAKE2B e4ba6c9e01c6eb28bcb7972132dc29fccd66a517c75e110dfeca3aed61d3c56725710091431f85c476fb9f06af04c93e9bdbbcc4b583cbb6e807804de371285f SHA512 a64ce10b30d6cc4afdac1f678ac169b30ffc00c111b512d0e740d7219ab6ce94bc7e05f32b2c63372f59fa75b21f7fd422957faf28b7785d6b4a89f65bb87ac0 +DIST firefox-99.0-en-CA.xpi 514325 BLAKE2B 17ec4f667e9ace747539cdb0f3584a276bac6d6916cd891ea75e02d95983019ed79b2f55b7728d612de5959da8ddcff04b5e37ddd57a781c55ef5d7fd7cca8e1 SHA512 351e7404a0036ebd8ded3e1b6e910dc7336bc5614570ef0ae7b81bbfee09d409dcb4a6fa05cf4730f943487a11b9b761a8a06af97530c361c537de354002b529 +DIST firefox-99.0-en-GB.xpi 514657 BLAKE2B cf6adabddb265421c315f5c2107122699ff6e711d7378e327613cc1527dab082242e923fe0c2a8523c61c288e067af74c18627c88c802c1ef3e8fb8b4df073c7 SHA512 4318b20e5b2ab6c8f9dbfa8f30d1842d98842253087babc593dbb6486fc70896149a8c237d4b3b902b05e8fd9cc2ad27ea42d844ad1958ffdc7bdd128812c57c +DIST firefox-99.0-eo.xpi 540860 BLAKE2B b76571a14cda8d6c94fd968dd4b7a9895a05709ee9c41e6b956e4ed9c2eb9f66f73174238fe417ea10af0839f58c4484801ef7cb2400a0b9bb162660f5cbd3ac SHA512 421f04ed2c80d29bcd508afba1e0a133d1e485e990c18b7ad32fd9bc7237322961116204de3446641c83b67985c665d6205536e841187de551bce329905cb674 +DIST firefox-99.0-es-AR.xpi 550329 BLAKE2B 027802820d959fcc8993ac88528ddbd05961f639d85fb6b5160bf2228a2af3aadd19eb6463cfe2d7e8f1f4cf9856f4940d8a34ed718a66ad23109166f3cfb185 SHA512 2483ad87c3f60be1592de88a594a9bb9500388d2de6389ea9652365a85dc0a736e25a690940957be0045f7ac2767787431c958dcfb04afac3d93bbba750be353 +DIST firefox-99.0-es-CL.xpi 550832 BLAKE2B 91947ae89d779b3d8d98fe776db58b927bf1957f61764c597e846198975658e8be691e0f7c439d4c1700113bc5ac90e0d32ece1ee02f0de35127f627bfe0cc93 SHA512 ef1140939ce68e99ade7f62946a990fc751283ed838b5862b7556853c3777036c4fa9663ce8d90fbc473c7d5179a1f6b32c0efe12bcb435ac0de488912f97a77 +DIST firefox-99.0-es-ES.xpi 540968 BLAKE2B 65546f0817a149d2efd41adb9424c22d31797ffaa5f102429a3b4db6c7e7e748ebc55cf2adb3e06c50ed84f45ce57c5d917ed4d62ad5fa4936f0bf62d85775c1 SHA512 ed2b19c6cbd116bd389b91846bbc9cfe3e35d59fb520dd4bd2dab95d8695ad3ef85889e2de736213ce57306ab660d9d3e745ff01a3bcb9fafdda7c7985c3e18f +DIST firefox-99.0-es-MX.xpi 554932 BLAKE2B 0bb4a96bdbd7e2d43d62f63fc6ec06243f8c30d5a4a62f68b8054a02b97a8b1dfb508bff6d3c40ae55f37cdfca3007a326e963f90344980c696144fa44210895 SHA512 79cbc9f54c88515b5db533a4f631485ce48877db6d85065930f8d25f8a7fc341c53ce0a0a2b1d42d9a5e3a7fbde6b68e0087067f253f31b078e04c780a2315f0 +DIST firefox-99.0-et.xpi 531568 BLAKE2B 838eaf12caa38fb7ff194748e82b7ffd51091eb1f0e106f58c114e51464e9cff5da72bb72dceee6176ee9f3552abb320cf156bbc88ae5a6c88c27d0e519a523c SHA512 9a4fcbba9114f485d8f41702db6b19692976382f11acdb43ed3cfddc4753d768e034e10fa28b5e9cdfa3c020bfd0f77103a06ecb87d2d6a8ffdce607ed112393 +DIST firefox-99.0-eu.xpi 539144 BLAKE2B 5b97c4987a209a053719c3b36fae5a5201ebf53b22159df377d9d7a8b462897108119794309c47997056553364abca0afb47a80a4f4bdc69d0f42e53080a038e SHA512 e4baa47a4b76cb9cd5dfa05f5c5d5b57638e721ccdc39e77b57753c6449998705dd763b7c9db9d2aa07937561dd5de6d2f96b0b32c741bbaa00833604a5f9f32 +DIST firefox-99.0-fa.xpi 561862 BLAKE2B 1bb3433dcc78e4dc2e2421d274daeafc0948890051112c60acdf94a508ac910eef0d5df379219bcce39ee55064a7f5d483a1fc5ee03b79885d84201e8f3f887e SHA512 4582efb9abe3c56fd2b333b53e873e5b14ad218de18143a68925908fb1f00c7fcac757c6e2c112b9caa15d591c943c54a6415c814043aaaee87ba64c47ce5df2 +DIST firefox-99.0-ff.xpi 468838 BLAKE2B ea5c9d16556b0590f0cd0eaee2911cd793485cd7c827d0c1fa0d619d2eb04dae3b96ea07fd01d3ee734b7267bfe260492abb39db830c9de8a750767bfbebb351 SHA512 644689266e6a65cfe887fc8fe60cdb4d523766c48da11af5a865a29e3d1df30ef7d3249034003d0a18234938aa637507efb558a415029ea31d98ffe3fcd49462 +DIST firefox-99.0-fi.xpi 534594 BLAKE2B b31bc57212f8cefec74e9862b4e5eb9a1fc15e78262bdedca5430d34f346ef8e3819f583b22f4bc4dc33ee59fae8693853af2c36b2fb09ab735b1cf4d8a60ee5 SHA512 55efbe30272f9d425095093d9cab15195da7968678d1d3331937fd430d38b5e7f8574fbaa5597cfd3615ddb313b1b1c64d5e141941ff2d218705eafbf0fe1c71 +DIST firefox-99.0-fr.xpi 561570 BLAKE2B e6af2915f711712fc2d8eceeff4ed060228d153948b0e843ad8a4a66aee171b2762c4154ec758531213bd933a2f38c94edd892745081675891bd83baa4c906c3 SHA512 8b483d342f762c6e358ca603499b4d13f5ed7cbf26500ae96c3d4535a3aa4ba95819c999aca16670f8679493c2a1c61ce2bbc5e820f285ccd0c7145341bee003 +DIST firefox-99.0-fy-NL.xpi 546703 BLAKE2B 2367236253ad9330a95da161719f5eff652b1f29b941188f1be6385ea1eb439805aed81d9cfbb6e4d3ab03ba66e4c905236cbc2845f98d135bcc90e1c75fa829 SHA512 69a682b632764c42f623ba3cf1a8abc5966e085def3e43c69531b333285254650f9d1e6b16b0d650cdfeeea09a28d265ef6a6a418183238494ed109170dcd254 +DIST firefox-99.0-ga-IE.xpi 466068 BLAKE2B 5acad6cb71b88381b64f91d7294574f134aaf4f37847054b00f494d63929dbaad70889a5907b0cb65cd69b3e4d0aa9172c99af5ea59b2e00f7e0111a6d36aec2 SHA512 cc556bf43381ed34a7dfac1758370c694f15175a074a84854f24afa23c2c1dd4252b07a3c985c41be5385842178bb23a82ab549547469604ebb94e7209d1a818 +DIST firefox-99.0-gd.xpi 529615 BLAKE2B b3cae85f556eeef289a9d0152d1cd6769cf40772bcff81fadfa35f82b3c9de75166f14316fb0668f3752c1ef5f553851e661b4911c9b3c52db91cd53017cafe0 SHA512 8a2300d664d3779265c6172a2af90b12e12c8fa0e64d37002ec704f431a53f3b388a8b80aaef41918c0f59b2e9c211eb8cce95c3be31ec5cc432f037f3e25ed0 +DIST firefox-99.0-gl.xpi 542511 BLAKE2B 2985b747ffd90061a2e9a2cd0c0a9ebf7738a6fb34000fd49cf4405e6e1c52f656bb95336365352a18bb7e7b49cfbf23395c0f4d84244b10e1b71d9acbfb1062 SHA512 8337c2f82ac36d93c12a341ce10d7c93dcae1cc8761f1908b41092b3c367870038613aad7521f470e23f00b584c8231a033bc92479c03d07a36158f795f29130 +DIST firefox-99.0-gn.xpi 562973 BLAKE2B 805380b283428907c8603aad4c9cc1138a205be2883e4368b8cf627974db515c7ed43dc5f61cef769354d2bed6f946459d7d473df774a918d55591a1e74d64ce SHA512 66a9dd8cdc7cc82fd73aa012b2e61d10ef403ca52fe1554c798c47eb9c97bb037ede4994b60b6408cfc746c1c1fda5cdc9460f44804589b8bd3fed9999500433 +DIST firefox-99.0-gu-IN.xpi 526093 BLAKE2B 6f12d18e2ba6fe4aee2256b47ce678ba3f139697bfbaf9d2ae1cd2f8e6ad252987273f9500360aefa1a841d12e3ed08f16873d998b2e40bf4f1b45b69d4181ce SHA512 5fae7543101b2e6ea4050b722304b0a48a9bf896b11441a68fab1c29b4634c69c8cbc4be3f5870d5624650cab09cfa9a3a47aae4c4fefe5e53811351243b0a7f +DIST firefox-99.0-he.xpi 561367 BLAKE2B d4059b7d35f9e576b1519a83a7b0937ef648d596bf95d66bc7d30920bd0eefd6f4af734512988472f0ae1c76a866f290c86474699c45e7839856bc158ada3520 SHA512 ec591f2843ddd7ae819c71218ac01a13897771540d4b9d4fd460e4a85007993d5bd3a54e9e78f5267d91ad9bfe92f0ccdaa7b520154e880c1ae1dc7100122146 +DIST firefox-99.0-hi-IN.xpi 556463 BLAKE2B 00bd06a09ebb23923e5a2a0ddffe0564e4be6a4d843ae9acb4e1b847578c508b044f7c2cbe6bf449f92ed52a87e21ad82a100c37e7b693900d55097d323ac22e SHA512 8a3c856e4b70d70de0e85f5d4166d7c439f820de6c3620cf033fce842ee7f663eb332216178dde897d01eded72b0c6399738ceb0f818b564905da5ce9727aa61 +DIST firefox-99.0-hr.xpi 530648 BLAKE2B a231433f2e9d4cff10429ec7d40f73b193069853ed8930d7630ca2e4da1eeb66511ca67f98d1511b060f993f16c37a5a56deddeabe327ac164948cb711c1242f SHA512 f649d761725fd3244a67cf1d763e55ff9e3bd0a6aa7fcf6903d7918b78b3a737f29c8db67c0a4c2d7bceefb05158f8acf5de7a60f826f95bf588471020c30070 +DIST firefox-99.0-hsb.xpi 567362 BLAKE2B c8bcc8ea21318177f7f0661f39dfba0b45bc20d452c85b5925773a286b66eb75952587cd870b9b01207fbaf541fc75e9af30b7b461a9b10d3c80ece214877b94 SHA512 f7e1fe32407fa08ef6227af0fd22f035f3532cef6592f5e070024b47a909703d123a583636358c48e9ef250cf741a8b50a4c2c18bf4c9d2de8486e2f4cff889f +DIST firefox-99.0-hu.xpi 570901 BLAKE2B 4955bd34d024af6aad70e6b9979f18b84c7da475e8fb1eefb5dffac224bd9cdc5ebd3ebee610dc5c3aad35e085738a5bf1b798cda2fb834ebaf305a7c5fa4391 SHA512 e8be3fafe73a99aa6f2f993b4f4b0ff26d9bbcda3852690f7dbe85fa4c7793782f10e2dabad18451c8ed87dc84830285805ba5cb9809782ac4777fa546927257 +DIST firefox-99.0-hy-AM.xpi 580530 BLAKE2B ca08b180d48e4b3039d6f3e59a2f649a69faf6deb6a21a2d6e64c34cf96980ea2c437de4874fe2dea091e2f0bfddcfa6e4d4d85a246bb50429d491ecbc0dba87 SHA512 48505c7945630b0060357c630551819f6f7e572668693534dc0ba6e1508a74ad85da875bdee60d78b7573942006a4ea59b4a06fcd638f137cc192282ef684727 +DIST firefox-99.0-ia.xpi 536927 BLAKE2B 23c32b474544b66c3abcb4a332956d1fed62ca4dc8b3053c2563aa645371a18128615647294827cbb68a87d1a1be0f3c9c98698367ebae79690a9bf7f0970830 SHA512 892205fc00d16e25551a2d07f87296f5ee6a0dfb29e62e302903f0adb601e687c4740c24d3df5775106597d9d483e71bf3ac5fd269014899e566176a2ea4ae6c +DIST firefox-99.0-id.xpi 533457 BLAKE2B cffaef8a022c59a77e2ca469b776bf87836c76cbc2395b56d9cc9242b51c0138e19047e3f86ebf599031d9e1f36e69507053a66e27113f7de8ed319bebc161ad SHA512 cc2da0ec4a15b7242deccaed8bbe16720bfc4ec604ce68a907e8eccb24f6a3214d6c8fd051cf7bb1eda88f0a0f203e0ae9b896c63a0d5d6c5bfb6ffbfd9f6c24 +DIST firefox-99.0-is.xpi 539733 BLAKE2B e9a073ee0cd493e6370adbf61b76e52d0ba10f9caecdba542ea6312c630c1604f729e6cf1f16401a85f33de6bf1d3d8cc54a6e172b1c1abffa89ac9cfb750b9c SHA512 712f6ff71878bc7d5395282aba828df9a24fcddc9ea53fad4f69be7cc159b5eb65f5bc9d9ab98672e85f3fc7138ebf33809f55e4fd8fe46c21f4bca943ff1afe +DIST firefox-99.0-it.xpi 463735 BLAKE2B 9827a186c17181d032407e718b6dae5df7fd5e5e9265d5f3c4786361a30a2fe58b6cdbc6929a5958a791458dc37f295a556e3220e56516397c7896f85454a8fa SHA512 b4eece80b317540458afa30ecde331bdf4d95981b0f376dad84ca59bf699c38e9ada0dd0796ac2f7eaaad16eb4ab0c09fa4c4fb949a5429b06fd355a6f4ca6cf +DIST firefox-99.0-ja.xpi 592082 BLAKE2B d3b3a76d1a64efec369af63422155b6e6b0f2ce67b0ca12c68f18e685c2def7d8a4819790ffd64403d0184d86a6830679ee2da06ff55ab1609d8aeb0c4f8dc53 SHA512 480c7bd4314425869f9799975ea01bcd5ff93ac50bbcd987402dbf107ad6574a5799d61ad92843513e6eb0e476cb6f2125a73351eb3425d47394f0d720c96cdf +DIST firefox-99.0-ka.xpi 595025 BLAKE2B 072904eaf4025f159c429b45e2f5599d6eb6fb8ea30f5e6bfcc8bc3e0ab2d4e906d549259ad2409f35cad6bd7e9f619793c9f1527a38896685a03666e949b7ed SHA512 5d027dcf6efaf9e3f5adad47efe7f8dc93cea25e64d551c8a3c3a305ea5a8bf73707c884e44df2286335321593c9ead867e2213b0f266c09f67bb17af0fcf230 +DIST firefox-99.0-kab.xpi 548760 BLAKE2B 2705460e525b4646a72451d439c4dc900118080eca35db412e23698f35fc03e3d3eb56e615da1ff9cb88eaefb93cdfbb7e3fc31ee1d9ab44855837737ab99c68 SHA512 a58d4373a5b744339fd946337ffcda46027aa76d3394ff184a01d867390215eac8d3a98e27d05349eb2cd12620b50b38af4c857c36bc16d15dca27234450b504 +DIST firefox-99.0-kk.xpi 615899 BLAKE2B 8ef40d65b3b8c0cf3537c76c6393e51e298b5a5e1f1106add87f485bc2cb826f6571d133827de925127aea2fb5d4dcb573ecdb134cd6f3f5497ae98eb1303a13 SHA512 2fef33eeade5a8db0796aa35e6390c0b48c0e28271be2b5bd778eabb796564f96a00a8c98ee5a1a7d283874fb4d715dc688e6a77c123f4bf629d7884556316ad +DIST firefox-99.0-km.xpi 526280 BLAKE2B 0cef56d013c2c4be64daa178bce1a257eb64015324c078bd152fc6a62127fce16da520daba20b1d1df7f78a2be6b73a605159648650800f3ce3de433bc12e1fa SHA512 d8dd45884c9343616e9fefee8e37b85b18793273105c0d122b98d635795f875c15a1590279f0c8a9293dd48293039ee724ec5e0dc4ae6ccdadd29aed30de0634 +DIST firefox-99.0-kn.xpi 491869 BLAKE2B 11ae6d2a4e0cce8e4f7328db317287636cc71139e6b113be43d19f4b0652a204cbfa41cae2d8bc2e5ceb4e114535fa3133499fd19777641802b5855366a4a91c SHA512 cb1b454ff59622e5aeff103e58185b15005ebd82bfe336684ee8d7f48c7392b3ba527e42e12136af849b95a37d59525bec3cad92cc3431583b2e2f80d9e131b1 +DIST firefox-99.0-ko.xpi 584216 BLAKE2B 45829f077cb1814dd5c750b6006f742d57750e2c18ca8e74294a1e918ddcd06dd0faa1e9c7644879ed01c480fce6e3ea344262f9bfdb531004da953a6c759893 SHA512 229e0432afb312b8674d175c04d098495b30aff11ba34dbe5f69bbe22533d9cd73b2acac65f42c0f1c0199fd7f82fa804c041b0f7e795be4ae59702186675f15 +DIST firefox-99.0-lij.xpi 467637 BLAKE2B 6c49b9e18c5311a680ea8363fea8e656e4891054480a63c40f0b2ac02d2070b9adf1c3cb14565335ceae28ca1c2376f48b8c4b2384570c3c0d58625d74c0653b SHA512 900fd493695306036f9d6b8184e1bc9a5a2559e44e37fb6a7bd2837ecb4651ff99aa85445f83f3989488f63bc1cc312311fd4b92e2b3027267a813abe1d15a9f +DIST firefox-99.0-lt.xpi 560313 BLAKE2B 324dc9f5aa670ecfff4216fc8e312a0e11201d3eea7ca5dfaefaabe438b90773f58f140b4ab5a40a95247651d10c35cd653f052c26ed8404efde1c95d4ea49ad SHA512 e888f5d0e7beec61f0941e90a6c32462574634714ba74289898cead32d8a5c2b9c9de7c58892616527a5eca3e25674cbbc1b545f845257a48a74ebd7b238f11b +DIST firefox-99.0-lv.xpi 459813 BLAKE2B c5168163597d89361d9995724a62e223e5b1c200147699629c4ee726aa85400d2d08b73f9745c9bb6d1318ada17340a26be08df7d93a4631e81b73af3e8d18ac SHA512 b9d2f2ab7dcd135e26f9f12fc6ff4cf399a8caf0cdbd0dc6628917d07a6abaaa7142c57b34bc2921277f0e7c369202b45a77f810804550c0a4504f45d8cc2755 +DIST firefox-99.0-mk.xpi 459515 BLAKE2B 20ab0f82eed934502b3c25403cab57b0e29cec9fb38e1fcfb8f0d0b52352c3fbe540810caf13f2a4cdb8bd0cd2dc64f262bf7a5a75dfaa1daef769a51897c53b SHA512 2a08b3eb50ebd2738563cf139e86415218314de7a58be3d462a267c83e7b754c0dea406c5f9f067e90aacbaef66ae0d473cae81a5fdf0f482f3f79240f9a7e5f +DIST firefox-99.0-mr.xpi 528743 BLAKE2B 86918fcb5e5cda7a07c1ba87f32baeda87b032c3edc5b6c61c338f92e503fa21c214e832d3488bfbf4aa69813c77df433ba4d94adccf2303cde8a261621923c1 SHA512 7f341caf00525d35405774ff274c74251a516f59241f1669a8212d8de4b00941b2bb7ddb8c7fa83d52e234773a90cd805fec4931c0aa4cbbddeefb757103a662 +DIST firefox-99.0-ms.xpi 444837 BLAKE2B 38703eb5cc2e1d1a2509e08c00176c7076f76d964b3e66e4465a75c7fda008749573ab4793f2ae77dd837243876238524de830c4cb269fdf64b83e389c66398c SHA512 1d7ad1ad05215aac736013f60a6349256976a5c86c38c61a18f04837b724d60923aabe841da2d663a5637e0074af6fc5d999ff053a4175f631f51808f4063574 +DIST firefox-99.0-my.xpi 507782 BLAKE2B 735f48e42cb252591647a9410c04cdb65de76cae803212ea6eb48452f3a54fb5772704ec9c118b0be86751844845df1c04922f9166c953e7cc5b7172140f3234 SHA512 7b6a4051f4780b556737d49278443a2a70f17d22e8d6d1c11482481343afa807efaf03d14abc1df33b1f7ed3e918b3c746132ca4956bb28fee8a01868f940f58 +DIST firefox-99.0-nb-NO.xpi 533046 BLAKE2B 220cc6ca9620145cee267d8ecec9d663d5985fad1da58ac628fdf52564bb1e6d03761d85d554ed782b4cbb54d2f24139ab10c06dcf252d4804d61ef5ecf40e42 SHA512 93e8cd48c326309cef6b4c55c9bb304bac87ba1635ae1709446d18b99a74c04705ba2187862e5eaa80fd0ff5819b83f1c46683ee22abd300649ac0540708eb4f +DIST firefox-99.0-ne-NP.xpi 481375 BLAKE2B 8e1df31ef8cf39ac794f83bd98820951b4b267f59c22a252ee0596c9c23572db976281808c47634bcc9a739034b4ef84f46ec4175bba677024d62464765e40a6 SHA512 1a03d31a0f929e974808b50f47fbe99006890bee24dd1efcc2af68c101c8ae21db001a764ac9ca5706f9f636d6253478184ab9cea7e71de4438fa30b3627d73a +DIST firefox-99.0-nl.xpi 540944 BLAKE2B 991669aec24abe2083b0af4924c899a48f057605d55376ba9b2271d5aef3c6c01faea76b9ab330eb4a697f774c9bd715dc4a7738bb0146981e17c0f8048a9593 SHA512 f5e6d3640a7fa2a3151bfb549ad75d1dccb600d32d79afec3be0c354ea2fc7fecd9602b485628f9f630420252315abb14ef2ae44efe86c16d1708f23d913570a +DIST firefox-99.0-nn-NO.xpi 536079 BLAKE2B 9537d3b1f904fae2d68552f3b6c6cf2f1688bfa917d906be4ab604f170ccb1461ca9e6c5a4d1b679ca69a93281d0fc4a8a4866fcd92d3c1b775bf441fa6fe032 SHA512 dcfeac4a9018389e24d2c990b8a30b64fd19a4a8fe1b2ab6d36dad27e915dbf0d9f813449ad5d32fa7c03a5f8fd966b2d49c1c287dfaf3bdfea23f3c7fc832e2 +DIST firefox-99.0-oc.xpi 556561 BLAKE2B bece32306c3e031da7c9a1c034344485623329b82608328c9d28a7fc04489a1261ad95771c6ab5991ab16bfb5497ba98a05bfe9bb630eb0d5139bb39618a0847 SHA512 68b6d986c5e00458a9934e249fd22fa8adde0201563f2c933f888132615f0159c4267b934084c80d68a4705e4b003b34245cc68e886b97d30fb91c1796af8f01 +DIST firefox-99.0-pa-IN.xpi 596224 BLAKE2B 5fa139210ac7e4c6988704c8d3ac0ac2a009a0b3006b695a7b94ce0bcde3043cf1bdb8af63436f13641e6f79978e7d696ff23fa45c0ae8750f1b0081bb8f7ba4 SHA512 d054e99739ae43a400077f52ffff3d0668584f6e389a20ede84a81252c3ffa61fea00219d4014e5d8fe64b8dc44aa83ebdc38b2d525f2330d216589926634368 +DIST firefox-99.0-pl.xpi 562209 BLAKE2B 191cc9583e8f8d7e7af7fd7e49aafd47c4eda88f2ccc798c9c0341b7dbbcfa53539b52abc12ae4a146c3fc0ca6e77762ecac7f6685ad94f941944ea03cc304d9 SHA512 59eef155da48abe70e1dd43ee5b366c9d4d28b76b4e81122618af985dc2c5e5ca577142c777cc009c7f61cb7278e03716c68461ea60ee1a62cfb07fd174b75db +DIST firefox-99.0-pt-BR.xpi 547403 BLAKE2B 2dd54d092ed0a368b48c9625884c4ada27378123de8327a66ffb2a63ae4b9d82995137d5219a67203747ec90003f91589e665e39f3ecaf9b68e210fea277d80d SHA512 0faf2c222e72a53b032f3373dbff2370d6bc7d76d97fcf0d148118a45f96145a4cf0e433839b498cdf98bd41ef8b6eee5256af4fab364e8cb1cb58b4fe7c2f86 +DIST firefox-99.0-pt-PT.xpi 550893 BLAKE2B 18755dbf84d38f7e093e3aa3b703a2ed4f3ae5362c7679b12e0304cce0bfb04f7251e40431d275f4779593526cdb6ed39ac18a834c55913901520c822110c673 SHA512 5025e133227fef149da7e21d6a19115439a6e18aabe88ebeb7a90b2ec2c3be01b25808846636d242cbac62c5dedea2c463419456c9fd91f8c849d9851295ae7b +DIST firefox-99.0-rm.xpi 541758 BLAKE2B e5219dc337e3f1ab281c51f778b97c02bc23ef4a8f105cecb6fe4698e2f600e6f4d2dec9eb009d3841b5dae579f8643035fde84f4605a79ef01dac95b1870dc1 SHA512 01a9b16f2afc275a2d2407cc8bfe40fe4260fe306bcef3038ce1ff5f3a128eba4a6bd47fe996bec248e6f9fa04cde077e9b54731a3027ade9bb2e133002bd4a1 +DIST firefox-99.0-ro.xpi 528428 BLAKE2B 65875e722cbe25b60fe07b3472f09d46486622dfd71a28c6162e5fad035592d275dd37194493620ca96b48d866f3949daffe6de01c3d8d05a89f81e4d8a84c75 SHA512 8a4c4625cafa702887788b4d17db360ed55cd1d475805ca2da129ee173601f09415b682f6215034a3db0c217eafadbe1a27f5026a7965971c07cf415c333caca +DIST firefox-99.0-ru.xpi 632943 BLAKE2B 4b4d76783db0ebfd22d7e3968d9a6afb44702b7066b51e4f93693ebe5b86345aff9fadc22a18c8f7824f0e53562c6801659057a84dc9ad9fe896e1a55c46f04c SHA512 be90923a0f89462d74dd2b646995c841a27f366806905e125ca8ca355c092aaaec2c0406668ceda7b89ded53fd43a07da0c4867436ed89f02a3f61f8ffb955cc +DIST firefox-99.0-sco.xpi 501405 BLAKE2B 188eece514b7ff9e4120aa9663f45d94617786f4196f435b1ef84adeda6779f10813178fc7654ad1aab3e5bd42fb5344ad7567db965c2e3c0a496642b65200ba SHA512 cdcd16d91e448fd060dd1a60429805ad0523b2c3df64488e649f5dca9800b4518c9d5da4373c38157c34b8c55b7b8b2892602f33b240cbb7f19bb4d8a5c4a78b +DIST firefox-99.0-si.xpi 481964 BLAKE2B 12c0b5f93519cd780567a1a145cfa13b938e764aee7d53cf2bfc1ec4702b0df3d72179e3bf598082281d3366fa684ea09ce2641c5a23edf9648b638edf11f096 SHA512 b0d177677d3d4ae671d7ea5135c6014b51827c65982d5ab39c01d217f1f2382c03556bffe0919b0f4900cee9c86baa72527c9bc3d7c3347e2488215095c4bc90 +DIST firefox-99.0-sk.xpi 571721 BLAKE2B a7c04150015bc7eea53ceadeb4eb9b3d17a7601dd7327ce7c0c48082cb7118486bdf06139f148ea07d83a90b036cc29b43750800c091fa613bb98e9afd80bf89 SHA512 59242d700d28882b5fb1015a8cabb828d99a2091fb1825cba681488b431edc830b169a58557c337a98388679dabde5a43d80bb0f4b70b68c112ec8ebd2ce377f +DIST firefox-99.0-sl.xpi 541738 BLAKE2B 9453cb7c0b839319b430f066e1606cc0569d889627ffed849969f8676e0229b5af395b427e3b347567bfc3f9ff1c11e9059c6c1afe536973121a2d6439b69e46 SHA512 8b62c7a6f0682bdd7b979a95e2189f5328f0d1bf6409079a2d518d266b28f68dc60935f89c736797fd7c1d998d2f5cfddd532906e94198fd54cbad5ca2039471 +DIST firefox-99.0-son.xpi 417249 BLAKE2B 243ddb54fb38be924a3d6049996d80a8de6622e4eefce5fc7f432afbcc4b87fd1552b1275b7c0d3f4b489c115906ce716abfb22ed49bb92ac37a94309e2c25a1 SHA512 725ad6fc929fa931fe207b6c484d7f9593b2efb69aa58c41fe09657934f020f8b7a538dacf159213a168994eafe07fce12afbd91487f0028f92a0c4ce01b745a +DIST firefox-99.0-sq.xpi 558047 BLAKE2B ceaec9a13ff7eaa68331372cec7f706b525d6f3a727211831c41a0074f70b90cfdb65c573b86e838db7783097b77736b4e85b660d80f51badbf9856cc580485c SHA512 c207f4574d4d84bc0c0ac7e630e7d766eb75b941e8a5ffd99ba6158536680821798cabeac2fae8399246603f6423c53925c309db8946dda0b6f686b3395d906f +DIST firefox-99.0-sr.xpi 585311 BLAKE2B f07d84e4b30ebcdcf409ab5e850c9101012921e0762f35940365ed22709386895e2b9e76fa935ab0f4777933fdb4c2e031d82cd812ebd0b01f057b389fdddc75 SHA512 92726ddc990055aec76824e2ab50f169c2132dbdc784d517cfc873994a83c040cc68e059f659cbad8272a38f5135c50e998b53badbf63b946b827dbd1c6f0f45 +DIST firefox-99.0-sv-SE.xpi 544644 BLAKE2B 936712407f7b65fe41bb7e1e819f797afe27380018a298da9f159e9f360ef997387f806f84b8d9b7c9f8aad5964b1b21f62b33aedadaf4bd5f2edcdf9fdc3ce3 SHA512 a25702a257a20302aa0c4af4d8505bb4ba3a34a9e47cac8b50edbd3918ca0e3480bdd7a728680cea729acd1cc945c724c5fec4609cca9ab0ca6d585395aaaec8 +DIST firefox-99.0-szl.xpi 504193 BLAKE2B 412b0dfd773431bb6187350ec4f33717a9390944dccbc96613e6aac00e54be5501b0cd3e55ccaa8247ffdbb541e5d0a40c21ebce8268a706047f2b7ab75caa04 SHA512 4c785d14217928711ff85e6ecc64888fb530c27d98d36d404d52651b2f880d9db5d08174f27343df5e7050eda70d0e7c6f4affb8ce5212755c1fc95a3d06205b +DIST firefox-99.0-ta.xpi 508914 BLAKE2B 253dbedaffe4994b8402089a44c3813f9de4fba3044ba71e73b507d3a2c35be1e56985e11ac05c4679fbfa342ccc9cecaec1d0008de235c920cb4edb8cebf634 SHA512 9ef9bf609351407ad642a8d843abf1a12ed632939a5cf40d2c901df841a3fff04a2963ebae8bf6482d2cd4a8247b037a478b94983f3e38ffe6b02776b45380a8 +DIST firefox-99.0-te.xpi 547027 BLAKE2B 41f22125ae1049f4094028a682affcc41edaaf04c6b2abce6c623e4492245f0c90e5cb8e683ef5fc9a98e966b673dcee26e562cfef79ac39aa97f89dc71d385a SHA512 2af967333317b929fb410d4e1906b8417b82d240457df0499f80a66c36d979ed2b356d3842272ae2c6fb669addc5b4f54e82cb3f68997c95917fc1f35093a1e2 +DIST firefox-99.0-th.xpi 610969 BLAKE2B 457d959adf5e222ed316086b34df90a2e5aa5b15f5f8204a8541608dd1ef09ea18041c453902850e21dd222e4669e77b99a4cb17e12ee7f911bd076e34fe772e SHA512 688667925a8f939e3ef076be62704c4ddaac37e327a3462fc66520b085c33c0da79613eb239b52b9a2122adb985c48f64e5dd1a8113ff1da46a04575647fdea8 +DIST firefox-99.0-tl.xpi 518541 BLAKE2B 9ea4a91e98fffad6d78c8f047c603168b40d3c6b22744d2fc6155e0885509bd3a9da3abac629ce8e3474aeb7bd3370c4786e9a9182adf971fdf673a2a55af074 SHA512 805253a6f6419345141eee84a19893476112ca0e2ae171560851477142565e4b147611ae89b6dcf748fd4ae7b1bb7934f86350515bb22e712bab7ac0f5ec7b64 +DIST firefox-99.0-tr.xpi 556441 BLAKE2B b7304ff0f1f869461dbc8a5ca4107dbd628187d537314dcd4e2e9a415abafce839acd4bcca1086d4fd2d571803db6598b24840d50fb64067a831b4232bb86ecc SHA512 1bb6b66a0306bf233e1c14d5ff927019f5238962ead7206da1b43b8c759289570c25799a61ae44378895e6065fa282e66997b5ef744163007d2ebc627846c654 +DIST firefox-99.0-trs.xpi 487536 BLAKE2B 951a737aedaa3de550d69a5b5a98858e8d1ec19c772f2ff393bd1ff94c7765bbbc2aa16c8b4c5ddeb96e9924dc418023b885a23d66870503900ee0e2f936e535 SHA512 fd63b3cc5311cc2d69f386e46e4413ea37354425f1674f465436828ae3f1101e51f275919cc1ed1955c6949f99ed0970bb9ac15f34fe9cd39d93a4f0108ddf20 +DIST firefox-99.0-uk.xpi 626610 BLAKE2B 63d28aa806d82f3043529ba9918b2d9ea2c86c5bbc1e99e18030adfb213b81e17f6b3248061d37a8e5a084856f5e12164a754e5ffc443972ba5d108b530e6d1c SHA512 cad87433958e966427e7de4b3ca89fded6f8dcf062776f5ed3961fea16e3e244f22246a7099caaac8db6f573eba1996be0182b96157bd5d43e79b1e9a4a31569 +DIST firefox-99.0-ur.xpi 557230 BLAKE2B 1676b3946b48587fdd7b7f1ec9038565af3acb6f612fc7f270fd1e7802e3f7cd40f953a92dd0c20f90b38ec7e46a5fd97e9f05dcab1099839be3b4f00e015322 SHA512 54f05b07d1534a75744aa53b8dc5222953e67a5956bca8dfc847e062c666dbe7aad500ac39bee67a03a6ab80052a88f0bb3d07a3959996bd8e99928e5841216d +DIST firefox-99.0-uz.xpi 473991 BLAKE2B af8bc282a42e985fce7c07d80d49f60d591407a72ddc7f48025d93aba1d5c5a6485b743d7342ffb463cf306d75858578badd1ec8b37156558b4ae3b42103dfde SHA512 ddc15b990472fa0fc5da5d29424ee3ab4a5edd12b276460dc0ead4d3556cd1f015f0157bbe0f4cb636a8f09d024ffd7c7e9062ff4ceee02613a520b3925c0275 +DIST firefox-99.0-vi.xpi 578293 BLAKE2B 0723be60c68ee442114807fccac9043de9e6f7469dcd41411b4d6da71d5e037acb5d5d135e982917f86acef4ee381353462cdceb3aa92e8236738055f9e95320 SHA512 e9f1768560eb22675ae16b1e4022bdcfa8054952d90eaaa63a60077934104ce5ae8bed5d2fb124678e437fcf52138c769612902fe05caca77ed4dbc7223c7cbd +DIST firefox-99.0-xh.xpi 419421 BLAKE2B 525a613ee2a7e8a8707ea9eec2dfd581bb6be8d852e90b8363711ab16f152048599fc304e9fa3a5d9d691e35aa1bcc4d9f18a8817ac23cf26e2bf462bbe005ca SHA512 a894a2694d7eb6c684bcf3cef95873439beafd1d474deb76d6deda1723f5ea470aafe4c9a7c1793e5ae67a2d25acdeaa0226842151a62920936812b5713b5dbb +DIST firefox-99.0-zh-CN.xpi 579051 BLAKE2B 8a8aa9cb70c90ea4ed54efc328728b0be1d892479669acd0c00a004340b3565267dea004256e2d121a96bc3bfdb556edf68560a44a033bf63b4a0fdf4e38e2bd SHA512 75aa7422fb008f872f6ab011de3dab131dd8f1ac38af48d1a91a7624332838717da7c88d0ebb53ed152d23e0661c1194e016f50ea16108eabaf327d5e0ba83e9 +DIST firefox-99.0-zh-TW.xpi 581404 BLAKE2B a9c4387bead7208590b0befcea8d1c3fba17f7b5c3b872ecdbabf3759494c542508c63cfb6e26b9712f0b48283ebe054f25e67391ab3ca29d7166a6d92685306 SHA512 331f92554b28283c6906b560e700aa5a8ad1c0d31f16fcef6f18e2812c129b088d51e3783fcfa1d354970fa8e152d978cd72956eb28758e59df8e1931b60537a +DIST firefox-99.0.source.tar.xz 486210264 BLAKE2B a8eda24a8919aa7fa3d5dc00b5c645ea69a3e5d0f07b8fa211707195fab3626b390f1e551955d438d37821fd3b5d923fcb285df26ad30a77cf4409557d6bff7c SHA512 08f6d5a668140c4275aba6df463ed3af596043dfe5f27573583afbc1e9f6b27ebca79a52ce2c9598261c631b400b5378744e9e70f51ef9c4098b419e9904aa7c diff --git a/www-client/firefox/firefox-99.0.ebuild b/www-client/firefox/firefox-99.0.ebuild new file mode 100644 index 000000000000..e54e0111654c --- /dev/null +++ b/www-client/firefox/firefox-99.0.ebuild @@ -0,0 +1,1258 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +FIREFOX_PATCHSET="firefox-99-patches-01j.tar.xz" + +LLVM_MAX_SLOT=13 + +PYTHON_COMPAT=( python3_{8..10} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +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" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~{juippis,polynomial-c,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +SLOT="rapid" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp" +IUSE+=" wayland wifi" + +# Firefox-only IUSE +IUSE+=" geckodriver" +IUSE+=" +gmp-autoupdate" +IUSE+=" screencast" + +REQUIRED_USE="debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +# Firefox-only REQUIRED_USE flags +REQUIRED_USE+=" screencast? ( wayland )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.19.0 + >=net-libs/nodejs-10.23.1 + virtual/pkgconfig + >=virtual/rust-1.57.0 + || ( + ( + sys-devel/clang:13 + sys-devel/llvm:13 + clang? ( + =sys-devel/lld-13* + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] ) + ) + ) + ( + sys-devel/clang:12 + sys-devel/llvm:12 + clang? ( + =sys-devel/lld-12* + pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] ) + ) + ) + ( + sys-devel/clang:11 + sys-devel/llvm:11 + clang? ( + =sys-devel/lld-11* + pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 )" + +COMMON_DEPEND=" + >=dev-libs/nss-3.76 + >=dev-libs/nspr-4.32 + dev-libs/atk + dev-libs/expat + media-libs/alsa-lib + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.9 + virtual/freedesktop-icon-theme + >=x11-libs/pixman-0.19.2 + >=dev-libs/glib-2.42:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-3.4.0:3[X] + x11-libs/gdk-pixbuf + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst + x11-libs/libxcb:= + >=x11-libs/pango-1.22.0 + dbus? ( + sys-apps/dbus + dev-libs/dbus-glib + ) + libproxy? ( net-libs/libproxy ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-0.9.3:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + >=media-gfx/graphite2-1.3.13 + ) + system-icu? ( >=dev-libs/icu-70.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wifi? ( + kernel_linux? ( + sys-apps/dbus + dev-libs/dbus-glib + net-misc/networkmanager + ) + ) + jack? ( virtual/jack ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( media-sound/sndio )" + +RDEPEND="${COMMON_DEPEND} + !www-client/firefox:0 + !www-client/firefox:esr + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + ) + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${COMMON_DEPEND} + x11-libs/libICE + x11-libs/libSM + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) + amd64? ( virtual/opengl ) + x86? ( virtual/opengl )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# 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 "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( 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+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6500M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \ + && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then + # bug 792705 + eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)." + die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}." + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clearing checksums where we have applied patches + moz_clear_vendor_checksums target-lexicon-0.9.0 + + # 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_src_prepare +} + +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 && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + AS=llvm-as + CC=${CHOST}-clang + CXX=${CHOST}-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 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-install-strip \ + --disable-minify \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --enable-dom-streams \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${SYSROOT}${EPREFIX}/usr/include" \ + --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + if use ppc64; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + 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-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + mozconfig_use_enable jack + + mozconfig_use_enable pulseaudio + # force the deprecated alsa sound code if pulseaudio is disabled + if use kernel_linux && ! use pulseaudio ; then + mozconfig_add_options_ac '-pulseaudio' --enable-alsa + fi + + mozconfig_use_enable sndio + + mozconfig_use_enable wifi necko-wifi + + if use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland + else + mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld when using clang + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export MACH_USE_SYSTEM_PYTHON=1 + export MACH_SYSTEM_ASSERTED_COMPATIBLE_WITH_MACH_SITE=1 + export MACH_SYSTEM_ASSERTED_COMPATIBLE_WITH_BUILD_SITE=1 + export PIP_NO_CACHE_DIR=off + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + local -x GDK_BACKEND=x11 + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r1 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + 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 supported 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 +}