diff options
author | V3n3RiX <venerix@koprulu.sector> | 2021-11-03 06:47:15 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2021-11-03 06:47:15 +0000 |
commit | fc2f1018fc323ef2c6572734a9b130427cba76a6 (patch) | |
tree | f834bdc9a67923ce75297c09d00d1e7b90791d26 /www-client/firefox | |
parent | 162945d2a91899b637bbb9e163b406350de12906 (diff) |
gentoo resync : 03.11.2021
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 200 | ||||
-rw-r--r-- | www-client/firefox/firefox-91.3.0.ebuild | 1162 | ||||
-rw-r--r-- | www-client/firefox/firefox-94.0.ebuild | 1163 |
3 files changed, 2525 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 6e4bd3f54879..ccd5982a6c79 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -106,6 +106,105 @@ DIST firefox-78.15.0esr-zh-CN.xpi 564764 BLAKE2B df0b207411e7731c9238dd069fd42e4 DIST firefox-78.15.0esr-zh-TW.xpi 564733 BLAKE2B dfcc1df31227d62486a8a36428c413523e2b6a81f96fc91481fc35fa65744bdb06f92ec1b259a1b79d1e5b43f1cb16c6fefb0a74fe2d4b33538783755b165453 SHA512 b5b9c3c6a4d717fef8ca250e6ccc636be2de0b22988f3f1da634266622ee0304b59a10a194f424d2b6693ce3262658172fe2a015474de600e1686950f8b90370 DIST firefox-78.15.0esr.source.tar.xz 330819568 BLAKE2B dc8785613c2f72c55d484642c89c2545765a9efbd609bc7c2cf57b4a3a06a2ea22e6959e42b5b8af867db782e8b2097a67dec858796b744e47008a8e575e2316 SHA512 ac3de735b246ce4f0e1619cd2664321ffa374240ce6843e785d79a350dc30c967996bbcc5e3b301cb3d822ca981cbea116758fc4122f1738d75ddfd1165b6378 DIST firefox-78esr-patches-19.tar.xz 88424 BLAKE2B fdc7bf8f28b3e799551a70f1cec7a695f52c4712f3b28733648fcd7dac5a599613f4c3d2cfa169266dc62b65619b7f28c0e06d32317adb8ec0056ca79c87e9f6 SHA512 3c81dadc9bf74207c4e361605127ef6141d77700c5c54f1f9cd5ad3be13df9f73c6eec2f51d779558e4bdad1e7395c6aa8943a93415bd1786d461042bc03550a +DIST firefox-91.3.0esr-ach.xpi 465504 BLAKE2B bba9ecb26423405f8a89c2f736e761e3726b13b430dc697be9e3ef7daa8de476a588fac47f3ec3c8f217744a33d9b62f7c8de919ed851044b97ea05292720912 SHA512 4f645517df27da2c02d59c752e1893ecb289d9213a6d4d0ab6b199c2562c8e16b14ee3a2cbfc70846cfe8e4a6fd4ccdf7e47e2963823b38a8fd2f70eef4c3421 +DIST firefox-91.3.0esr-af.xpi 433476 BLAKE2B 15e53cc1f41e4bc7b139a098d200a4cb2feae696101f9fef473edd5fb3a1e1789d4566d1d2b45c7fd8313a9aba8462c37adc32bf784142310541db7976a85b32 SHA512 0ccf4a8a6862676e84f001b62e76a07deaf0acf17477a1d880ae77d76925dda5e009f61c317475bad7b44908d1dcd2b4d57eb3618116106eb9f843abe988235c +DIST firefox-91.3.0esr-an.xpi 516389 BLAKE2B 6149b95aa8b23753beaad6da38e808bdf8f2e2003e3b311901613651db53dd09bd99c16a05fce0be9c9927f54ac554bdbd885c0744a672dcb587a0607c1cfca7 SHA512 9539510ac122a856d0949e6ada18d69c59c4f2b57afe3a00bca71def119d34ec7342dcfa78128bb8eaa9bafb1b413404e2667dfc732a97c7f3ab544c97be028f +DIST firefox-91.3.0esr-ar.xpi 575196 BLAKE2B 8061ac755ab45bd6aa29a15e9e1f005b576ab5338c7283af51bcb38d437f468f466ff5e2e979a21af917f42d6a92be731bd76fd1abb5acdea88e4f7675b05d4c SHA512 13736873b2bf2475885fddd0a806a45c6392df24e19198a74ad8222d1bad37cdf1713aec7db1e0b090fd66d2508a770ee04534f79ec8ac823a93fcf78d2020e2 +DIST firefox-91.3.0esr-ast.xpi 503834 BLAKE2B 78a7bfd02c844dc0e3d2611c395a9a337751707e31f3524d599b7ceeb740a818bdcde991320e9ac7634a840afdae6e4f34ba84aafcc8a4294f692231cfc86bcc SHA512 1d3b56ee24692071ba5377c157e42c7de8e8511cb5c4414b0918c2a16a06be42984d9a3d5aeb2ed99403d45eee1878862b550a922572834e7d71b48d13a54643 +DIST firefox-91.3.0esr-az.xpi 501266 BLAKE2B 7d2396b76b79467cc2702201adf1514ae9ce76aa8a7a2057decc1ab764830fbb77d29e2793f223feba9777b5acfbb3b9fad38c8520e9fd7d83ec8334f54f73ce SHA512 23719ddad4c82ae8cfcf6d7664affe46fc2fabdaa9352152ddba537e1a08ef724c4c5e51209eb3684cfe735cd6b4f0df80e5f0c8717152ee4b97957127103baa +DIST firefox-91.3.0esr-be.xpi 631737 BLAKE2B 582375c5fc70712de533cc2475f1da53be5162adbafe0c808509dfcc58c21fd9e885e7538803ac41def37898ee3a41591633db9acafb276148eb7d9e3de9b6d5 SHA512 c7b3cb3792fbd45502e14d6f1d4d501f477204e73743bb61997fb778f047be286e4b112ecf65fe41f5dd00f8f48c0408e0fc7cb6a6579774a29a76dbe5d8ddc8 +DIST firefox-91.3.0esr-bg.xpi 585450 BLAKE2B 5a0d2f0dd9219a067bf91ea6b48d8f6c236483d6b08d626c78bfc6886a9b0044a6506be30fda219dee519aaaececefb00f896d4a76ef3d4b277e9993d3ee6a6e SHA512 c1059741da643937c50a5d2be9016cc5ad5260240ef020b38a5f7029e593e67ad0cc0136fe53353b1278faf55f5de91ab004e517c048f89a86db940242197b1d +DIST firefox-91.3.0esr-bn.xpi 576657 BLAKE2B fd14c81b08a8328634abe5190a978a768550bfa6fd9e899995302c5e870c7ac875ae27a16267e9cab88d51a3703f95aae80061ac572aeaf6f09a8ca32f4d72b5 SHA512 71f2e15c69e3fefdeba61b29a1cbac4a8ee11d2427b898df21da9615ff72566da62e7192662310ccb8345a5afe971aaa4df2f08e5bb0e253112ca6aa02b64611 +DIST firefox-91.3.0esr-br.xpi 535048 BLAKE2B 1e48fbc6d8c1ec1b6e469c910c0ef3c6c4e4bca402c98b7aa249e47be6a94e64c4284b2ba248c475cb8429d751f6e43789fbf667423666dee089c5f05b72b459 SHA512 58dd2fbf4fcd0440448acf1e69569b69beeeb2212f2e585fec85e2da74d9d356af2a3838d98f13ed5bcb6f3aa6d9798a370f9d5ee9d590e76492586654a2d73c +DIST firefox-91.3.0esr-bs.xpi 473386 BLAKE2B 01acc36f92e495d1cc4aed1521e733375215368a93a0a404de0b02644bccde69c99a01c0b6fcd93a248f94dd2ab696237f45821705ecd72246f8ac69f9051aa3 SHA512 739d6b139f848c56680f033c133098e369b01d7a28f4184f3b6bfdfc417db16c99a49136eeee219a5831e6cabd866253932c7996b1c0a0ea2b46229ff0e52125 +DIST firefox-91.3.0esr-ca-valencia.xpi 543528 BLAKE2B 4009e37882e4b7911d0766a848f6c0d5a60261ba3b4fec54a3cee352e512025d382ba547dacd795e2014ed6571ce2f3500a13ce665ae73fe2bdc50239d38876e SHA512 38233e4bf456e22d5108f8f1d6976bc2dc0ded61452ee61d5592c916344fd7705a5bcd9cc8b1d42472fbfef75e3bf7fe820fa0bf40c102e692d592919a3d86db +DIST firefox-91.3.0esr-ca.xpi 542008 BLAKE2B 79412ad6a22f88b81e7b4bdff6fb4f0749d441b1f92b58c29143495c84ae3daa2f9d025dcd61e54792f7e6f15edcc505991110c5c08d98d0aa7f4aa4c5025b59 SHA512 bc730ee37a0ba57f9ed000be64b823fe22a97179aeacca9bc0a2b7e70c782fe49bec17a33dacf26308c0d12d0516788de3c5f07185d667dd56270263ebe95cf0 +DIST firefox-91.3.0esr-cak.xpi 568379 BLAKE2B b042574decb02ec495df059dc17540f026c7111c9318f95c0b7c1e54164ec37e235c766add4e69c79960e02d2793c1e0f296b7e09a0bd603963927a877447372 SHA512 42ef318eb9de709fe8ed8f6d844bebd1a81fa7245d3422e6d98441f02858167a4b83105fc4a95df8325c0ad831abfe4793c7b0b84b870dbaabe85613c00a551b +DIST firefox-91.3.0esr-cs.xpi 572928 BLAKE2B dd95dc8d17ddfd5e019bca2808dd9a1c97ed747405b01384512c048c63738b4a61ac1a44ca141f8a6afa5139274d9eccd29b7391d6493254e7f4ce9b8580ce96 SHA512 83108345a1b0929c2fc147123d86cb84596880549363cfe9c821b209b20d4c5ad034850028b64794c4302364cd163685819a6c2d5753c05014cd23e75b6bd859 +DIST firefox-91.3.0esr-cy.xpi 549207 BLAKE2B 670df1ce98132291e2f8a2a956af0c30f8cab319023191acc13995e31d2a16c8536d54c91781d6a1e4f5f75fab4b399a23f79482f8687352709720882d143ff7 SHA512 c96f65d351331ca01f2ec6398202257280d6c0d1bca554ce677a83500572b5628e6394974b65e1ff11fd65dd2abed2f100091c43392f316e23cf8c2a631f44f6 +DIST firefox-91.3.0esr-da.xpi 540828 BLAKE2B a69ce9ca6e8eb34bcf8e3df380f383eaaaed9f0c4520373ee209f9fd704fb319fb079ba22df2983259885fb7f0831bb2bef91471d0f323d0fae917dc9f330df2 SHA512 c13211f36e19ae03b9b2c80df891720b86fd070c11d257aea87ff6c47abe905caebd2db3e7d8b7d5ee9cd7e7f64cdef12d0cd6e6fd12aff11e34112e7f929f83 +DIST firefox-91.3.0esr-de.xpi 561498 BLAKE2B 1527caf596272a2e532491b3cd1614871a1e312ae05769049c333f33bfe9b66417e22acc796bdaf0cfd21833e49c767254859f86cbfb92fbd5822aa367f8d03b SHA512 f42dd3e8a9365c709ad39e8ca96dfac475c3aa48ef5b554f240b95b9ece27353d7fa640b5321b05a44a7382601367346128a1e00c8f010bdcb4d52f30724b9af +DIST firefox-91.3.0esr-dsb.xpi 574176 BLAKE2B a40133c5575b6ac80a500d7e4d6c8abb0ae3084cd9b926345b043b66c85320c08f15842fc316110f0d5a413a5688106779211df2b1d55e8fc9fab7250d737297 SHA512 091fb20d42b60c3a73e0b8cada6069b4d168de66751d72a5bd878cb19d8b1e222ede057bfbed72c4a16175bdc9d62dcba20ff60220ab63b562e3565b862c553c +DIST firefox-91.3.0esr-el.xpi 647258 BLAKE2B 585223a672140f88e63f39b26669dcf5d738ce03975838425698dc78d16464302c6b3f7eed76476e343cd9d86f89ae2928d2b664c71c1411f1fac750a351b266 SHA512 d76784d0fbe38cd0e438bc9ca86f218afdb8264d3850fba72909c69158624cc5d98018c9588adca3f44a1593191835d4eae8716721a33d114964e55b3efddbf1 +DIST firefox-91.3.0esr-en-CA.xpi 516472 BLAKE2B 2248530d7b3226fe9c9ab2c32769cc9419f1eec81696961469bee9bebefe44e45ea6b1b6f063f657fc0f7062e738d78fdffe3775e08fbdda0a7f44f28fc44c16 SHA512 e720fc864b9f2a6a1e00383fa3e84ad7bc9d6a7cb1104e172bca6acf89c829e5cbf638be3acb47d2eee2d029fe49349b1cf6fcececd8c2b8a51a344b91135b5e +DIST firefox-91.3.0esr-en-GB.xpi 517069 BLAKE2B d7cac13741d46b7c39f5b812406aae16caa3f6a3f2e67b7d52a85fa84f144e04a913cb2cbf9efbaf2fca3809391aae94bad79b00658a210e45d671b5593a923f SHA512 4aa91264a254076404d066779badbe57fa9128f74c410308a3c637a4d684544b14110a8ba402ef5c8849f679e83bb92438cda470107ba1f00fdbc875299498c0 +DIST firefox-91.3.0esr-eo.xpi 542949 BLAKE2B 24f79414c1b4519d288fba4015e3242ed0f758d067c91bb38ee23178637745e03f622fb640f9edce0d9e3c31c59840f7d4d333ce678bdfa51e62caeb6bf438f0 SHA512 3c9119b00b56ed0ce80c5dc96a56aa852715c2512ef779dcaea192efdb348e05e2478f9681681b456038591295be059e86f51517e536aca38a65b8c17efd1523 +DIST firefox-91.3.0esr-es-AR.xpi 554544 BLAKE2B 3e00c260c9d7cb2dd51c7676ae3251ee280bb68068b7b4fedba83194e021d6bd6934c6302d5393b32fe510f6bcdd92790b467b1476a21f27469e8798c02ff9b2 SHA512 4d1b5ed49025cdeb3c9187c54aa8cad3517bf9e2fbad6ea9e279a1603a81e582837abf87990a6e8621a18bfa13f3d70ca2c1903a3b46fdb5060bd4d0529a3067 +DIST firefox-91.3.0esr-es-CL.xpi 553849 BLAKE2B bdb3803e846117dacb8e0eec2e2ee19e409b2186c39d9eff242edb7ad5ddff15249ab8bbbf75876e7f3d18f108e6d0bc2d5573a0cb3e5fc740777fccc7f4bc99 SHA512 7628ae3ffd00a980bb74690180fbda6d0de3c4c664c404e93d3c61796b0351e71a22195d36a41bb9a2de182d192a0fa5c6692914bf3f85c50e30dbc052895ae5 +DIST firefox-91.3.0esr-es-ES.xpi 542847 BLAKE2B 915a85467ed5b7778df38436325c0cf6faf1d4ec208a8327c08d87788b6fd0f2fe12c9d6554c48e891c92ab33ddc0816b1f7527bab3786b46171ceae07bd93c5 SHA512 5f6e62752e9373445352ab1c52dc71f03c4cb97cbc0dcc246063ced993465b518c5cc30e6d66eaa4249f46078df7b86540100213c6d90497840c224d63133ee1 +DIST firefox-91.3.0esr-es-MX.xpi 556754 BLAKE2B fd611f581571eb90c5c8be76a5be36d2a9208bc9af5b50dca2a1f5248e47f0b3b31fed7ff8df83c97bcfeb1a0906dd90f7c8bdfb09ec5bcc3f9161c0a8756d22 SHA512 5e6cb4e59f083d34cfc035967e349a2e25f24a443499dfdb06da3f059df3c22a52eb5fe996eafeb2f374e04f130c18e18848aee9188a76a230f9c74d30f99b14 +DIST firefox-91.3.0esr-et.xpi 494584 BLAKE2B b00cc101d67003d8cfff27194224fef4a05f7dd3d9bb6ec5adb8fbecd846ae13abf86641deac6b7471a4b9251e4a8519a05c4c2b07e0ae1861879e082306feba SHA512 38e2c8bd90000122f7437f1a282e6d62dcd48ae6aa209016f3ddaf42c0cfeeb914cc41a0b3231e8b8bbce23139d5664d971e2c27fb5c7f68d74df62c482e1aeb +DIST firefox-91.3.0esr-eu.xpi 539373 BLAKE2B cd47d852c57f93bf415f047639094c4d5193c81b69c65d743eac9c17510a6e64907fb753cba55f6e75ae4b748b8fdeaa77d9c9262ef91a3dcc218c3061a0a334 SHA512 ef6d06fd530c38d5ea224db08c849c4583d6901a528e918e9bea3162cb4a73fc3839dc45592c1a56efe3808f7d1938d02399859251edb17354db575980a3b360 +DIST firefox-91.3.0esr-fa.xpi 570986 BLAKE2B c98f1b4aacf241d4e479fa2e8826511d5e1b97b92c8b148bb518abbe50c0cfb44d44bad89c2717fdb13ef2e84a6fedbc6dd6216d60ccbc204255852a3702c967 SHA512 6411e81d81f394c89be6f2df9dfcd9185c3c2b00f5bf9f163281e9d5db1e51a79009c5b753c0d739eec94f07fee0b82c91c2974b0f6e7182ae0baadcda1e27f8 +DIST firefox-91.3.0esr-ff.xpi 486054 BLAKE2B 45fa8a6fa3f3c257c122b5d09b982efe57282ead478e5cb74728ef10c1e0339d67f033c23daf3d20fb851f25bf64265720c1b4f6ae67bc787e19f4be212ce5bb SHA512 ae8f4bce9833b73afdbb71116f24ff1895fd3d5f077b165314743bf0156d2eb697f1a26972272499bb70447336c376c6b1a4e8af9f19f347df1d999af12ecb03 +DIST firefox-91.3.0esr-fi.xpi 540701 BLAKE2B c39cce82a73c14a1a5adbd2d1e2a489f9ce383874db569498afd956e61e3d1e9ba84f98928b73b31dd85147642f098dd8633325a5f2f7a1c6c6227f82fbb36dc SHA512 6ddff885638217fe6935bd8e63cf9efef0d675bd50b368e22906b360965684033e98f73f66ed152db3af6439d4626b7aaa1a765ee2a49721163986f7cbc904c3 +DIST firefox-91.3.0esr-fr.xpi 565634 BLAKE2B 81c5125436f1e29373cf2a93927faa2c7f8cb4d04302e358889966ee98c4fb11748e3755ca04b4709686a3444a664cf8d7f38aba70c734fdbcdab7c78940586b SHA512 88d259d80760cac53f9fa6162843d39d46020dc52dc27bd63b72c80b20876a0a255a42686f67e21f526f79300e4258275ab3b7490fd936f386908fe432047972 +DIST firefox-91.3.0esr-fy-NL.xpi 549525 BLAKE2B 45bde4730b56bce4119943ea3a62d8f298a38e0b9abf5f8be76f5a9f81b71dc1fc15fb997cf996926bdccd38b106ef267583e7ee4c7fd3f186fc7dcad003f896 SHA512 d6a6801e25d5ed19f2c14b7d5914a5057d2c8099d01874b703357206a3b41c888a7e190fbdb36f6c2facb8fec7cd44e3cafdd45187712e80d28d7113f570b563 +DIST firefox-91.3.0esr-ga-IE.xpi 471091 BLAKE2B e72490b6d6a66b42acbe60027b78fa49900a8dd5197f94e839e49cc75c94408c5287bbaabf3fc29a2402849e3c4f6500298754e9b11a1dd5cebc8e2b253705e5 SHA512 d515fe37ea675e18f853b762d0723f1e96d2a2ad2fbc8a367b791533a6879625d4f6d1b664a4f8d80432306127c6058a7120d6ff674bbc7e5c52269267d3d27a +DIST firefox-91.3.0esr-gd.xpi 545671 BLAKE2B 99ef84187f3af2b5a1f93ab20b54df7ab9827d352dbe85d6f720cecda0d1e4fb2c0b433e68fce6e7c83f05bc1c3d3b308fde9b1440cb181698386488d2824b30 SHA512 77b88c58e129e76944c74dfd000d1ccf01980ce04829693f94949dda709c4b11cd01d6ab6517521d36f95fd049a8e08c943da4fbdf598d638511b4b640207b66 +DIST firefox-91.3.0esr-gl.xpi 548590 BLAKE2B b41ddc999b13fd51d6333c7e2d19759602420b92099c0180b672ec750ffe1b7741df3c41cba7529333986e498f5b951f24768ba9df83b2d78d5fa220cf4d5c7f SHA512 e0ab44d7fcb4baa364a6f74aae02ed1de97c32c9b738ad7a0bb7ea16925ed7e808485bfc2a8aff98db5ce965420a0af09080f3f0976989c40e591ef94de81019 +DIST firefox-91.3.0esr-gn.xpi 566594 BLAKE2B 4465cdf59dc74823ba58c8c947e63e3ea863b75e04e3bbe19fefcbf6dbccaf390dc5ffc8f55328bc4f0e6daa575377a3d26a7d78bc65254e6853bae7a35a7d60 SHA512 f3d4d2cde4a4120d1c5ef323e5b2d8ce0109c0d2be32cc56bd3068dab10bdd762a1728e9c8014204658a5af21f763c0d6bc96ab11d9d6f1265bce3de3f648f6b +DIST firefox-91.3.0esr-gu-IN.xpi 544926 BLAKE2B 04eba9c891297d1545bdf7f466ab366bfe41f89db178f9315fd161d14569cd836005b2730c8e2fc73a0cac873b3c3d71373fff00d14a26d1fdcf5e12052b27a4 SHA512 d21da8323368b989cc0a5b372e86fd3a7df52d0b29fe5448d0a10d2d43ea7bbc5d6ce137a1974d3f19040416510a7a9b75f264429cb6e56e4a072bac471491f4 +DIST firefox-91.3.0esr-he.xpi 563925 BLAKE2B 47409cab870b7976a51a6f128dc7ce1a323f0c9ed4a8c0dc00632087dd06ced8b7dd2ea22e7393ad2eb12f4b1e9eb61f6cd3c404dd57be3ed2327736cdb94fe1 SHA512 af138a527cf815ba6e9b9dea93a5ec1d6348a3eedbb6dca15fa3b4672bcd122b64785746d5823f661c631773af74f4a12ef8d2c98dbcf7e81988bc74db0df1e0 +DIST firefox-91.3.0esr-hi-IN.xpi 575956 BLAKE2B fc7f15f06b7d16e66b73ea6aae0e87bee13ab280d4a8298b45b270555c70bc661267dd587d1424f50b07d535bb6fa24ff67423c8913bd2a17ce1a459bd3abecd SHA512 04563b192bb50d580dae0d8ebf576328e785f3bf971f54e4abb3ed52f1edcfe7154283396daea15af72cea075426013acb4eeb13eada1c06afc69f7bf16d21ce +DIST firefox-91.3.0esr-hr.xpi 544690 BLAKE2B efebd168624b686678e5cea3122b4eed6993b1b001ae807e677c71fa6b354dc86d69b5dd52bc462a359ca256053c117afb609ce58a7090a9216937f70771cdf1 SHA512 03a10939a2949ae3a4ce0fd637f892bfa163adc172121c45ce85a68e49055b7f84117d8dfabe974f5e114fb31e0d63a50cf6116c23e2cd131c583c01f78beda8 +DIST firefox-91.3.0esr-hsb.xpi 570287 BLAKE2B 801e6dd924e9987bbfbcf61dbfec8fd026ada2e0a8f439165a93b15783a749cbe911cab7746cdf7c62e255918399f988e8febcba383a0b25e4f3fa2e65d0729b SHA512 2717cb31d6bdca52098b14e8cb640f437ca2d8084968283639f8cf08d8d1ae9887891d4276d8619da2d01a03ee5be8d4212b1b0691b53e1e9a08a462ea4e3790 +DIST firefox-91.3.0esr-hu.xpi 574172 BLAKE2B 829fe11f64d78da1972d3405e636bfae83456a797414aa992422cb455e17ef9cfbcc608212b99e312b6509786dcf60b941517721ad5029f60e903fd9b126d1c2 SHA512 5dd972b42c1f58601bdfa2bba3e9ea8d2358624428754994ac61fa7b31dce0e0a76b320fe36324950a31bc5d9770e52acf627d7dcf7771af6b4b820df8c11f95 +DIST firefox-91.3.0esr-hy-AM.xpi 599321 BLAKE2B 02f3a479176e71f9c225bdb4448c9e4da1cf111b854bf0342617a08906429a101bbef29cc24717ebd71549feaff378e22d526318f58a67bad4026e8b6484edb3 SHA512 1e986afb36a0f28d44735700192727645ad8116a77d06cefb79883e7e223c8cff5f8721bf218dbee05e078cd355ac6683a143a7c717456fd96c91411b5401cbd +DIST firefox-91.3.0esr-ia.xpi 539816 BLAKE2B af6e24bdb46fb7ef6fa4806c4a191f90e2431fbbe377c5d1ee0fefb33d71005f1a79b24b201df34d1bef9a233103cb42162643274f7ce77bca149a27c34b2434 SHA512 7478a1c90d05b800dbc8cbdf286c1b55e6377511e7a479fdd64bc02d5d8c4ba256aee30a84626a3ddd3ea81a795eed826f85246a1cbe2272523578bbf913d896 +DIST firefox-91.3.0esr-id.xpi 534169 BLAKE2B 1efcfd47aaac2a053a3bf5bb86b1dded26ebe572dfd1e3a8ad431aeb0191b1adf09cd1908d87696eee7c35404b20cac3c5159b3b61abc346595bc678945f786f SHA512 e9df4affb1fae3fcaae299a8953fbfa0c703123bbd75519d1c20668e64d7cc0e50705379871a1587aa0a8ac274e3fd37118bf36adabee75e0b884e04aa151131 +DIST firefox-91.3.0esr-is.xpi 481673 BLAKE2B 490f43b879857ab81daed8996389910547cde64eb97a60e69d138b19a971a5a85079f299eeaf6d423ccc3dc483d5a888e20404cda2d7f5863b8027a69a88b613 SHA512 70f3245bcc3302c59471c3e781ad07ff076e56ae24affe06280bbe817ae0255a816aef85d958b3ff873e9f52954186460f102d5172271d78609790da6ae15e63 +DIST firefox-91.3.0esr-it.xpi 467592 BLAKE2B 58faaca1155250686f459623d2dc16748575795bc589edd2487df734802dba00755bd9dd191f91dab97461746a04c160730fae6956e8004445243e712a5f48b6 SHA512 7d5b1ef7677d735267d81d9923212ce89e44fa39511a0cc8ce947c59517e5acf43ea498d23fdfe52625390a031a7eb347a2aa625ab46de97d17c6203192d7e51 +DIST firefox-91.3.0esr-ja.xpi 599763 BLAKE2B 51cdfeb9f96f2555c5abe129a1685494fd845a75a2924a602a4f29346cccda2214107bd7cebd1f3e13b39af3c088321c556e00b3b1cc25237397cbc82989f0cd SHA512 dc124952e98ac7aa56dde4621737d5ed10faa520508de67de940ff45488582bddd920017700c8879c6147542e493457cafed536cb7f3feeb1e2e05cab186a7ef +DIST firefox-91.3.0esr-ka.xpi 601252 BLAKE2B 84a8430f902b8bcc919459d26f7bc1f5b669dcf8791b6d966bca09fb35fbfa9be29368e24a64b16c89052386c14ebf3a7441efdd7447b535fbfd0ee8ca8da004 SHA512 06338fb80b444589c4e01630b015b79d0fb1589b19e067d54e03aad81245561aa9659ed9ea1b5fe016fef74a93c315ab199d13c3379386fb73958a429ca2b043 +DIST firefox-91.3.0esr-kab.xpi 558644 BLAKE2B 652537fce44914933ac544ca261315bdf7f6897c7fe56ea985bf5c4abd8df868aec5ed4a2e77f5c61586d3881374909ed43196a3d00f6f3b809a259b582e8112 SHA512 413d0c4937beb8348e034d133e10d13e47d5bc2dc72b901d7a2e8d74364735465b90187cd23d455f78db30f48c94f531851c8e9e8a026ba6e61e3d18c19170bc +DIST firefox-91.3.0esr-kk.xpi 615023 BLAKE2B c261060b04c2f815e57b0334e6a39c8d230fe04f80759e790857505d3cc21956c886de892c9c73136d53b3ff5d7ae02b7892d5a333c021cdf8dae1bd01fd31c2 SHA512 fdd4430f4eb6c1a4bc3ffc0bd91732286b7656637eb1b88b2fe8da99dc450b10971ae46caa08bc864048f801bf715c3a8be9d65f7b99f34b1e68a80cae0657e1 +DIST firefox-91.3.0esr-km.xpi 545289 BLAKE2B dec98240d0a2077b4b8171260cbabf8be624dddc114e37c886211a98b7d15b0af09865f0d1a7641217f62bd0d3addb0ef35d410f3eb136e2da87b6b05655908e SHA512 48ad4e4eca64f38830867475bd6eab317f086530f1baa9e4be8212913876cb57b29b715689d2a6dd2706c0fab73fd82f5ff0d09a788a2c67f351cb89b834eb2f +DIST firefox-91.3.0esr-kn.xpi 508936 BLAKE2B d00c95eff39a028ee5462505133f1dd691115b7879c6d32db0f4cb998b33ffe0cb0dfe095af6bd0b721156acccf8ac68ff72d6cc3915e414c710ee66d1810126 SHA512 17491cf459f0a71e2b14b05ca36472854a9b379605c034f69ea868e751e6ccabad779384c5c3b755ed13f6b672957788334cbac7e8c4bcbeb585085f7638e48b +DIST firefox-91.3.0esr-ko.xpi 585482 BLAKE2B 715cb964601375bd2676a456b01b20c5e0cc7aba9bffb94a455fff9e3a07413c2c7ff47e88706b7f100fe33ff15437a1e0274575b061d00b254208a3a5b7fbe6 SHA512 9921b4b07cb25d799130f9cbe469025dad111dc774399c86dce39e84541030f46ba3f3c25ea7ddde072e4796902856741ebe97acaf85acacc22a18eb9cc2add4 +DIST firefox-91.3.0esr-lij.xpi 482099 BLAKE2B 0526982b5cefcbd5d1d3772504315672f66744d4cc99c4b3afe9d338cad436b06f58a5197754ca87a68832859cb8e4e41947db5c4197efa08b263d1db664c860 SHA512 9c445535c6de513c7911b273f4ef3849ea5e87e58e81b10e07f6c041d255af95578f7f09100fccec92488a47e1039d2ad4f10b05834e61829524c2d64fa2e647 +DIST firefox-91.3.0esr-lt.xpi 567966 BLAKE2B 7df84a326c101085dc0169bb259de3df4cb1855d361dda6ba794556def3821f49a8f77a0bc8339c2c84a077f04c38c38ad24dec1fd6b472a25bc90401587242b SHA512 c1f1c5a29a915815bc16dda84e38b1f325361f1e859df5bc746a49196cbb6b30094f9a57a6a2f5b6eb6ca4568c8d94ca51456af601eb45181e17aa5d0df42951 +DIST firefox-91.3.0esr-lv.xpi 473686 BLAKE2B 44f92e2d9f24b5737237b09c280fd4543dd161ce8ef5832eabeb1e68bc1f3df564cec96e73fb30e4a7febfd9a5556c134f8927b965793b7eccce4d0464e59dfa SHA512 336efcb898c957412bdb4daaedae7988e35a03e32ea489e15e1060bbbce21c26d486c52626313245e03de41d19bcf35063dcf367bb490a40171322e7ebed597b +DIST firefox-91.3.0esr-mk.xpi 473756 BLAKE2B c161f1103edbf0a62d4d8abc3ceb5145382761110157dd8e8c7b894dea1c11cda876df0f3e74fd2ba022e9627991f62c65df6e27d022f6b92d13bd83b662b1af SHA512 ee4c6a00c2af8b53267e560ed57665996d0668a2dec42eb960dcff5d474557738485f31796c014d3d613a624e805adcf29a94c38290c0ec62150db07cafe09fa +DIST firefox-91.3.0esr-mr.xpi 547134 BLAKE2B d61d0ab6787f5c51039df91313950dcae2d3d0bc6364171e4f361f13b62fe483a0c3aad4ac3bdfe23b9dc764affc95f51592140a98b03f8084d318c0e77d6656 SHA512 130998d5d61d892cb60aa375d8164cd562b328145b110ee5b637ff7e642fbc644825fe7e45f5c11bbb198a51d034ae63143c8a968a9747f0dc7bcb4778f81053 +DIST firefox-91.3.0esr-ms.xpi 457537 BLAKE2B 7dc872a84e97b0ca1b93891f6c372146129926906171f9923b2d3fbebfc29b01448ac213af699a86f20bc8249f8871cee3d5135868a27a582c771bc6abaed035 SHA512 1688eca7a9a82c13ff3e8d539097ac5342b3399fc5c057f39cbae2377a3dadc641240ba2814745a47936abf0f4527e5da21d7cf2ea26939029a448318d7f812b +DIST firefox-91.3.0esr-my.xpi 530545 BLAKE2B 7df234a0b9759c44aedb8b04e66a5a9b60b0e611111bf3c078a7f22100592b2b1d04890b500846dddf1f77a2f4931d9059e42c649c92920c1cd57ddfc7162af5 SHA512 5e6e9a4649fd5008024ac45ef8161d6115446aca480a018599b154f0cc806ea737e515769fc28065b6bd48824e4dc88a88468946b9c6bb49ee6a405979ec834e +DIST firefox-91.3.0esr-nb-NO.xpi 536416 BLAKE2B d0001f96738bcd509fd71a093308ee7091e604acc7544d0ca57f7dfd25f21445b338f53e77f334b4186c4f9b545e5a00e0e97adc3c748ad8ad99bd24c0d22954 SHA512 1bccd54f8c0f0481535ad276da2ac52231f2ad425e8fced16b8e17010a30142162f266d089c9fc2a57e4b1c8e056a2babc970d56c4e4f64952f6b4b36e7f066c +DIST firefox-91.3.0esr-ne-NP.xpi 486609 BLAKE2B ffcb6c7af30e0b9c87985956668b2b1679d9befa51eeae7d7eb4b90ff9dec5ee10395f290a9da3dd3e54e171bdc8b1bc2c9afabf8e13d212471094e9e033a558 SHA512 06296bd9d8eab79b19c3bf636a04354fd96d4c2fe1903343c48f290aa9bf43fd8b2d175e37e6ee6a9a6ace1d60b7494a33187a94e70d884541af3a08b26c7567 +DIST firefox-91.3.0esr-nl.xpi 544349 BLAKE2B 95be5d0652cd9af9a263f800f08e0d1da7b7f20b88f18fb6249b397d37e2989de07723bdbeddf6beea79a513cc3a9fe35664e7868d3a42ea08ecc1839f7f8d38 SHA512 3c608305a915693abe99a99d03d0bcd96ec5a580f9545e061f1e9c2438c79506445310f216c65b4d62f0cb507467fd5e9f06e128eccd10270b2a9a172b40b6e4 +DIST firefox-91.3.0esr-nn-NO.xpi 539202 BLAKE2B 4dc36634d372292efc74d82a0b28edb1c35ed52107048c3ce9153950254cdc18c82f5b7e6ca2c463232d3a7b3cb1a2752b710a6f4dfdd8169232bea34ed23f0b SHA512 e4bb708b1eab90c28deca352898956908bd0fddb5c9f5f3718156b53f6498a3d3608b6e614f7f09f11ac2a7d86e4da483ef431cba23c51381799377900d04436 +DIST firefox-91.3.0esr-oc.xpi 560173 BLAKE2B b89c674524e093378442092444491724faaaf388f47ea99ad5e02c15b8aea32256f517c83acbea59a04cd1832eea26fe2db7a0c2861b4643bc65be858835ceaa SHA512 fd30f7884ffc3c5d202ebc033762d8cdc03118eedfec888f2c399d182707ff8600e4189776f9815e5782478859656c1adc2c8b080e914c01928343dd70fb8ab4 +DIST firefox-91.3.0esr-pa-IN.xpi 605327 BLAKE2B b877537f8cb8b381be25358bb18dbc8b89df4d00765af9c26e9fcb4aa4051cc95c5cf281f0a1ddeba8ec8fbc6f646bd7ace0d9cbd1e49c1f694e942dd186aa08 SHA512 6b6d5cda222b073a8e3dbc61b68f4460661f21686d03d81a30b59430ff41b32a3190d14f5b011e5b251edbf881d42d673c4adf32d7f75205772fee2a2f2f68d7 +DIST firefox-91.3.0esr-pl.xpi 564260 BLAKE2B 3a6de18dc86f1232579b72d45d17daf60ce75b014495d0412fe39df6bcc83a420a527a3c9ba7af5c105b2ed1f33ba1de8a8f4fe9e20a07eb0f1fbc776cf887b9 SHA512 6be4b84817d4406b74d339050ab2fc73e7213bacc54e111a01edf9e79839d4513f5b8e5e8d2bab33af9914905a56b56fd5e4be9545f2a51ccaa256a8ba2ad5ff +DIST firefox-91.3.0esr-pt-BR.xpi 550106 BLAKE2B feccbe76d93838c309dea0284c2d3767e4c224a44a9fdfd009f47260b32db25327435e7ee437dc269baf0ab1fbffc594178414679cae152d2d68fd925bd4371e SHA512 660d7d293fec0d434dd5184176e41a4d8096b2d245206741c3a997674e6ad55c0c1ec604683e9419d5627dc3932c624ccd160eeb535a097d419b0d9d23d4d599 +DIST firefox-91.3.0esr-pt-PT.xpi 553474 BLAKE2B 138281c56c435734cdfb59ee50c19958aaba73f53abc32ad565bbae0b2eec42cb697d48f742b979019a7995b39fb07f6b531de9f682e97503c89013967966f93 SHA512 6855854c6a7cd009e7a5f17833cb09a1c85e2a56a333e662252d15ab0eac38b20ac61822bcb23ac389ac6967497211e20bffd22047ea15241bfe98b9d3cce111 +DIST firefox-91.3.0esr-rm.xpi 544478 BLAKE2B 7df044279ac4de819ababa59600420ae2eb8d8d8dd76fb9f76a01e82436d4d592e2010149bd7d89f1ebbe21616577af2dff799f6afac5aa86050281d54465b22 SHA512 bb8dd03ce00c41c6986e6b21d16f1df40ba31b21b6aa42366745c0cc616ca7fc1a9780f11e588796e5a1c4cbdb05984f933caaacbc274182fd3a88000821d66f +DIST firefox-91.3.0esr-ro.xpi 545828 BLAKE2B a24d75cd7336f3b3387322425930fae6443d748f3dc32f4fb45c772f60e3961fad98bfd53418559a3ac32a799bd1480c85660cf99a16d19853fcda0cb85f2811 SHA512 831957527688f21c45ffcbb5993d11a7ace7d60ef3383850c5c03811e876ac4bb768766b3f5d132210656ee19acb3748bb5216ba105bc61682b7a7efed9153e9 +DIST firefox-91.3.0esr-ru.xpi 636051 BLAKE2B 266ac362c40d49f8077fd96ba8f95b9825426dae681ae7975f644c8f06a1f7fc676daca67a972e96313a867f4f2a9d89164dacdeb76dd63e4e75fda469367ee7 SHA512 51c47c04d9ee5890ff3a9656a964f96ee1eadb81dc88e2fd38fccdc9e052ea560c74d95a5778999906a508c8e3bf6fd748d5fece40ccab507c08262c14bacf3e +DIST firefox-91.3.0esr-sco.xpi 513233 BLAKE2B 33fc884e104d8e2044dffbe60f765aaf443555b498b2527cf7ea22d54572117fe94e478151d5201927fc3a24e1c370d6a171c4c05093bafe6c6ba4fa4848389f SHA512 8b6108c41f45eeb1bb357bd1003c96c7e93248b9cbe10e8fac1efd28052128d08952c061fea66d8374ed01b90945a6c7b317eac8ced9fd03781d2850b7d366ee +DIST firefox-91.3.0esr-si.xpi 497218 BLAKE2B 2729a8ff6ee4687c7c7cd9a917c20d01dc49f8ba5ac12c4abed541104c8f505814db86b6f3542be1add8ddf170996e8dfdc1b4fdce7fc011b56767124fbc12c4 SHA512 42ba20d16c92b49f5c165715b67ad9d3d686c08238040def58ecf2874b3b5e3ef26c4c3d2afc248c4ae658922c0b5c0bf75b9f097850cf56d6d7e5b26209d76c +DIST firefox-91.3.0esr-sk.xpi 573547 BLAKE2B f14711ddef612ea1dffbdabea0f545928f2c3cff5cc6a5fa8a325495e619a8bd49f1dc10cb980b95f8d5394eab6052f660a39ed52e59a9f24a920ba80073fe92 SHA512 bd096c518c13914457abd0720eeb5c48202ba9efedde512325ac9004d778034694c0ed6543f893639588aaecff2caa93dfdedc228be744f54a873f9d92fd77b6 +DIST firefox-91.3.0esr-sl.xpi 543046 BLAKE2B f9c44c70835f8fa7c9355c0ba8cc49a79e126569bcfa3d6d794cafe3efe6d804d8bdac9d2efdbd88b38f4b01140aaeb43ab434de985475daf387dc86f0ed3a0e SHA512 6f3561bbe6a2e8a4862fde0e65ba735086b181f30ae61386a391460d844e2b88b73c969d4ad963efca7f2cc96e1fc42d9adaf2de13490dec445f9af538975b72 +DIST firefox-91.3.0esr-son.xpi 433071 BLAKE2B deef2d272dd6df94fbe37cb76f00e4c657c2df7d96e6477972819f92f22750c77ebf9525974106156650cf2dd90914a2009a0c5c3368959e02af050d4537880b SHA512 97dd89f0e188f8227b88982b203ce627a39ed844377337c9959a51aa72a10166811b50cd58e2bd9b7692d39a6000e3d95f6139b017f92e9c6044f74874aba50d +DIST firefox-91.3.0esr-sq.xpi 562512 BLAKE2B f1feb2531d4670cdc6011deec368e906f71dcfcab56bf7662a5802beeef1d5b8b5e7ef82d765a4baf6b37e54a245fd6fbb41bc57e2dea18939cf0d2b1bed1273 SHA512 0bf7b349b13e86d5e08741fd12df0f0894f1da560830c381b16f50925ad3c67ecea448c115cc7338915e77415b706b6b52001af48561a1403b6274612a5a4c36 +DIST firefox-91.3.0esr-sr.xpi 601681 BLAKE2B 0eb9dbe2de8b9e23cb44ac07a2073a2f7de350c0ce26e5ce7d36efabb906e5fe063f5a63ba91cd32a9176788e74c6c5c26aa90280ef6b4f71872f095453c4b18 SHA512 37a9c7171560b39834617c1444b84a6e748aee3b503a6def9c3d53ef659eb0bda32ca560b71c7eb822f18934feb55e208e9c77397dbbc9d330b8dce77caff31d +DIST firefox-91.3.0esr-sv-SE.xpi 547621 BLAKE2B 08bd3b771cf6eeeb153d95e7d23665b1f0edbb16fd5430a4aeba3198609eaf2534e8ad4d93cb5e9da030eabfcb0688268392cefbc62b10df5202e0f5f83ce2f2 SHA512 d93d452135010f1cfc2d18f1f25f15977ad1a9fe08fe5a1efc6ce5a3f3518b5148f47022fbe004aef40ae0269beab20d39a6bfcff4eb33456e7c3ad6b3c07548 +DIST firefox-91.3.0esr-szl.xpi 522616 BLAKE2B a6844fbd36a56840c2ae480ec830ecc8a963805c7c135b05f6099df59d10bfbca4074421d4d41f4cd2a90b942e70ffec6dc0d0eafe9f110d5feffdddc09494c1 SHA512 8aa238e140e1e9c9a64103b61fc3497dfc17c97b13a0878d4dc573deaa70c80681726c9d26a92b0cdafadeaa34242bf3a72b4a7502aefe4ed6886ff23341b4e9 +DIST firefox-91.3.0esr-ta.xpi 525427 BLAKE2B a87bfb00781a1de250b00a5006d5a500a5e84e540bda38609bde9a596cfcb70d798295ca4b28153dbeae93af63dfa0631365991d89a5489ea9f2405f71cc893b SHA512 97070e3d1eeab0ac44cc6bdaf3de361e28be5041b58fc97a2c403cab948842a6a4a0efa4d80b6804d9ba67020f23291cc82ada5e843207d804c2cbcdc2d79cb9 +DIST firefox-91.3.0esr-te.xpi 565913 BLAKE2B b3be6348add4cad303525b90ae55a7681bf05d44ce4cd3b8ec1281143133bf8c29cb215d5ed1a0376689a5a434ee1c2989867d4ece8aff0994e9dceccc8c4af3 SHA512 72f0b5cd8a5b177be66fd6294521c555125be670aefff330c2703cdea7fff738decd7803989c07f307dc84f7ecf25142e4cd847a406edc672ac03b796f178195 +DIST firefox-91.3.0esr-th.xpi 614796 BLAKE2B ab5b057ffd367c917af6afb1b0959df87121bc8fd37dd8eb3dbb34f66508f0004df81d031382a55a2ace4669e36af823d2d6c73a5d0c27f48cec358d73716651 SHA512 95c3986a1baeac27266ff004631f4a4f0ff298f5c06eb364282f4c90856df6d356aa9aa0d04640d80c06ff8e13ddf7169e64641bdae16bdf219eb81bcc3d0b4f +DIST firefox-91.3.0esr-tl.xpi 531783 BLAKE2B 066b2146125f9a5dddc544752b9955661168c5d1616ecede7ffd4ca4553aed22c343230a5d15a3a1de908e82456f6bddddac4b1342ecd3b8a7666adfdcb36ead SHA512 33a89f900e388f2ad1372f32b4e726fbcbeca11e25783ebf3aed5153b557cea05885f36436aae9dc268c0de83a9449446c73b1405cc1fcf56c8dfae3e438ceaa +DIST firefox-91.3.0esr-tr.xpi 560033 BLAKE2B 6b13f234a86d38a5c4dd4eb46e82fac3d37845a909cfee19df634dc52b24333c8a78e6643715474615a6d6e2a2d62915b8fbf86496517b404400e484d82e2847 SHA512 f508ddcee0e1c423ee437bbf20b98d96a7f40d70311df05efab9b467d56c0bb9ec5030cef0a3f206b787b15e3baa0fe649bc9bd8ba03ce9e050278929c572c85 +DIST firefox-91.3.0esr-trs.xpi 503925 BLAKE2B 11b9fe4f1a914038e9ac82247957fbff539c2d19aa7fec681ccdf7ce4c721a96c6d1f445bb007bb17780bb5b0fc69840fb6f7d39bf0e57ed2168321603003477 SHA512 42ccf89c4ab2b02d015b6a5d5b81185409a1b49d837c6d8da743fa1f6d6935564a9a28fbfc185ee56161903ca5f39987b15be54a63461cbf349a0e27a1daabe1 +DIST firefox-91.3.0esr-uk.xpi 630023 BLAKE2B a65d6e9d1a04b357b2848687762dca572729a057ca534d8bc1c7b75f3c9aaa49bb5f5a29c6ff1a77428cfe6d788f7ac78fa2fdb65a339f0fa533da152cc8c6bb SHA512 ee66098a00bc371ecc4883ddb022bca5960e324349bca047abaf11fcc795075e532cb075160899fd25c86357e865a5dc70548a777eb393b82ed15d7d98819692 +DIST firefox-91.3.0esr-ur.xpi 573052 BLAKE2B 8bf7de96591f439196803a89e5eb02e37ec7747ade75b1d1f313f09073b2e7a0a482d3ac6bccaf4863aa74768ad86efa7922f6f35606ea71aa33f9db286a5686 SHA512 01f8a4fff5f425f25ef498a9f99dd65d9ecaaadf205237becba0d52a0e8054b5203104cc3e19a11e68bc19a57f62a4f72fb8aecfc1450fe39dfaef30768495b8 +DIST firefox-91.3.0esr-uz.xpi 481199 BLAKE2B 9313487f4a8a59ef28645dd9fe1bb81a77fd05ebf5402b442ac4c1cd2f533917f9a0a8a20fa442a48a60fdb40e4111993659ba907230af98d98eda8087025201 SHA512 9d71b314ee860809aac0deb903363f8db1151cdb21792c1524593ed0a86a36c9a132d4760cb749e6f99d22e5fa75f243efe85cd7ece395e7779d9197612b80b5 +DIST firefox-91.3.0esr-vi.xpi 581328 BLAKE2B 596dd95b4a8573c4d0dc0434be2ee5eff4ac5caaeee263f95838ee9e7e607ef9a4adeb5d08f9302235f91715a819ca90c04d16cfbdb2d611540aaa55dfb274a1 SHA512 dcb4d1ef7746844c2d25d9362868bd776cffac08aae936091d043a6b09f1f15cf66f2698eacfda957c4b0cf8576ad7a8191249201a604b13442541c984b874f8 +DIST firefox-91.3.0esr-xh.xpi 435358 BLAKE2B 96c7c7f452184145ef154126b6c2fe6216faa90b62267a0946871951547c13d86612066696549b06b99a0776a88911b26432758e9b32cb73715a73d415e82c2b SHA512 6cc4acd79aabf3f062811578bd4ec98a26520fd05af7c878fe3fec699fdc86da760332fac5c0a6d814abfa1fb2919ed869ef8f0dc5b1c5f0b582dfee4f0bbd74 +DIST firefox-91.3.0esr-zh-CN.xpi 583248 BLAKE2B 3caf831df6288ec5c1025f20c1834b6993fb5f50349d9b8715e6e020ebe5e1dcb0bf62592f800e03066cf1564a8bcfe0cddc8e90f72f6d7e3298e1ecc97c71b3 SHA512 95044ccbd6ef200deec8e4d3143a3989277fa309182248d8bf3941c25778841243f525410c391d49aee33a6bfc9d6d625ea45ce96ab7df9e2d70264ce1a3a438 +DIST firefox-91.3.0esr-zh-TW.xpi 583430 BLAKE2B 848ba2ff85a16105153a1810594ec9c76f4376aed110a896cb2de21b8a98574ed6d8ef1b5b290a2c650cac072e4bc7420405263595225170d51682fd5a0b8fd3 SHA512 0d4ab413bda98207f76d4b8ff5f895dbe2e42e67856a93027de18175927e24f7b3d1eb4beb6c1902f2dbd6bdd4e6e3ac164a7a1061de77acd43331b1dbc1d68a +DIST firefox-91.3.0esr.source.tar.xz 381117132 BLAKE2B 316ac4c7e673eb1db88da9e7c1ea7eea6c3f6b6ca4d4066100c165512e52374c84f637aed1fd5037b126ce2cf51945a5a6276a4974f557ed1da7ffe1674135f2 SHA512 7cf6efd165acc134bf576715580c103a2fc10ab928ede4c18f69908c62a04eb0f60affa8ceafd5883b393c31b85cae6821d0ae063c9e78117456d475947deaa9 +DIST firefox-91esr-patches-01.tar.xz 20768 BLAKE2B 22ebd261b445f1920448d9243e3e15ed2e4d393099552bf43f26c9705dd00f8b87b5720e94fc43a31dd96c3a88398e17da80f81953f0bf9658d75e4a85a31fc9 SHA512 5935545535366abf8681286a9bd745f95f83ebf0d69ba5ce600ae513a4391fc16ea7eb4addbe8ad27f97eae3c1fcb05a78e2fc0fbd4cbf7798a83b778b5e1535 DIST firefox-93-patches-02.tar.xz 32064 BLAKE2B a99ebed6fb2e3af8c3d1ef60182e56636f68c596fcddb0450853eaca7b65fa786ce3187dae9d1c5fbce0b9d8de0b2a60d441b38a26d6b1dcad8881c46c11d913 SHA512 7f51f30815dc2386afa1349f512d156d2da3cb2a50cd9c14e763cfdf00535c78bff82f25820977252c3e5c086fe31d59a753dce2d3758ebe4f30dcda7a41056b DIST firefox-93.0-ach.xpi 452270 BLAKE2B c7fd81469026d99e21553ec59d0d005e906915483b3765898beba694cf31c02aef3c15789a5c2e2e2d1ee242aef323ca7fa1c142912917ec2ca02a8cb9c604fa SHA512 9a4c7f880801eb1c4391a57107e88e3d43e6ce0a1bd617ba4d11951957e2d62116f102e55bb62db22378460c68d2ecb3a9b9b0285951c46846920ae02360749b DIST firefox-93.0-af.xpi 425657 BLAKE2B 8f0f1df2ddc330f386d831696dbbbd15f639b0d95ae4d85b268924116f93f1bce22adc10b6053873f0ed6d69f9067515774b7904f7595c89a25edffde2e25e97 SHA512 f8c122c624c139c0afea5920f063b981665771ae107d32b654206dc0d00a8173230a357ca72649bc636d02825f1af90d291b5e09f9b7044d05b4af1ce39f6e6f @@ -205,6 +304,107 @@ DIST firefox-93.0-xh.xpi 426899 BLAKE2B d089a23aa56a881db5a5092bf6da2133c001802c DIST firefox-93.0-zh-CN.xpi 567752 BLAKE2B f21d32140357de5cb98da2c75f5d8511c4d98e8405178b7c54553bfeb043aa372c796a79ac6b33704a64427edafa511ce40f69d8b7267d72f4c2037199972f20 SHA512 17c1f6cb48fec384a61ad60b0da4a93648bbd6da9a752be8db1f076dab13efaf5c22fbf539b89b4106427cb310e26aa0f708164f8eb13e045cfeba4e30d048cd DIST firefox-93.0-zh-TW.xpi 568218 BLAKE2B 4d842b6492967fa0a4e5cfd2fd46091e5f683df3b0cbc4dd13b4693023e79652a21eda449690acbced52df9e302e50ea32533420929baf76ca70cad416fc1a13 SHA512 11baeb65242512faccb1f4e813b62de681647e246268af1c0763e5a801e8d73dd741eb58b30a0a368f354f4a708dac88f7a1ad32a0497e98b67eb57ab0ef654d DIST firefox-93.0.source.tar.xz 382181136 BLAKE2B f4315a81ea5709fbf622ea39a4b259e44e8bafad95468d3f41fa8413dd1d5d92e260f549aacafe8b6af04f0c036fb9d59fe8531f0e2fa8de5dffcc403b33f2e1 SHA512 b29890e331819d47201b599b9feaaa7eaa0b02088fcbf980efc4f289d43da4f73970bf35ba2f763a2a892fd5318deb68cb9a66e71e9bc0c603642434c7e32e91 +DIST firefox-94-patches-01.tar.xz 20776 BLAKE2B f117db17c24431db7284b1f78538dd9fa83c4985914f5a56fd2d4463dd0a4f5c456b412880478951dc27dfa792e8b680987ed428b8f4ccc4b312dec175588a59 SHA512 4a8dcea0754188cddadc44385ab64074c8c2eff7b42ef4278d08d419e5f524545ef2fc6cac7fbfb896ab430426b9a8adcb16a88705309c650471f4cbbc638c2b +DIST firefox-94.0-ach.xpi 446929 BLAKE2B cadcdc877a4a7a8c52fcf296957b5cece4a70944d138529c042f0a91d0f955f78918852dc3d0711bc86a4f5b9c308bd2ebca40a1c3999309903b4de8dd22f719 SHA512 68712b5d1d427f2be8b875d3339010ff1159de68400963eca476de0675f5ee28d6a2b0fa5254ea15505e4734acdec5595fa10bb9db176b758d502519d10b4a80 +DIST firefox-94.0-af.xpi 418381 BLAKE2B 1a812192fbdb962d00b104b954d77ffeb9fc98846ae18d08202eb7e7e5516d3c8b0afb7a7d7ff3e1bcc8fc4f95570664159c230f9a73553e6b42c5719301ca7a SHA512 d06a946fb8d26449e1cecff988c053e2e0e4d9aeae52a456c306a465f8d55b9afdb8f4779585df9b4393b91d0c5a45ed7f63d954a03491b7e8b69b28f6ccbcf5 +DIST firefox-94.0-an.xpi 494159 BLAKE2B 3c91e01ecc3bd5fecca68bd3f3a0de83ab735b0c6808f3cf7557b94d0e3f7aff5ef801bc3d76891c3b5ac67d976e6d9677a4194ab19f9c3d69db6bcb37d0e1d1 SHA512 f51a206408de03bae5b2c5b26778f206ed79d8396e3b805d47173271f96ecb6effaab434f9a9e8b1dd24233d299570ecbcb1feb007fb0a4918f2a935decfc3e1 +DIST firefox-94.0-ar.xpi 552880 BLAKE2B b0bb09a7a06515875beaa966aa94e1357204a088edf59a756bb9a5ff0b0bef7b69b2b1c55585cd5d8b9fa5016a9067821c03614c9ead962d714f33e4739223ca SHA512 489d61121ab6991eca8d4e2e6440aa38f8b06c45b9b829b0e4e58e07a1870e95873a31b2d7513fb9fe7c1a638ee21dbcfc9d1a654fba52315338fa6493fb3c13 +DIST firefox-94.0-ast.xpi 492496 BLAKE2B 1615af33cdcf7dfb46e447763ca39ad19cf02a454957a97ed6df567a6eb1204a0a459c0ea8f4adea6af2dc17b0e1b739276c6a1f5da58b7388504fa5dac3a6f1 SHA512 3b9fb3394b991e01dc3a06d8c260fb46751663275ad2d1eec2c0c6fb81bf394b6062b470e02bbf171267645fedf82ca2bf1833c98261358bacaee75bee1e53f7 +DIST firefox-94.0-az.xpi 482624 BLAKE2B f546e39f453fb075bdfd8f48876bc0ae2795d0d1548793291f48071e8516b4dd86aa3984a482b5ed4fde09091e0807203efe153e35f0f9fdf932ce6a25afe944 SHA512 411d100a2aaecfdefb563a4170e96d1c548a24e7bf3736e472f24114b858459fa4b6e243a02f3bcf853172c2931986bb7532ca180c01336aff37e53b1edd5a86 +DIST firefox-94.0-be.xpi 611836 BLAKE2B ec34477a19bea5ed81e0e1bc8a0ad6fd9b805fff357078c2b83b158c7b6adca350d1831a902636379b448da336e9aaa3aeeb350ab2a1338a93c11c45654ebeb5 SHA512 331b4283c3fccaa3ac1b9699f8c4c0b50981f1b93df4652c3e828d2d3a6914e3f4b8856d080f52a9948675aa2a98560cde5d2b054d37afd5016df2958591ec2e +DIST firefox-94.0-bg.xpi 561273 BLAKE2B 03a15d0d7bff358dcd86ecd1c0ec7ada4be3f77818e84081f9fbd760abd9174443ce7cf785a57df198754b41ca2db873db87f27fcbd118673d138a0631ab2cb2 SHA512 6e1cfd9616d67972d4d19b838a244d0a1dcf35d699defea229287a7dfa0a3b89e0e4adf1453a49b7fd790448e8cf193b573a6aec94acef8ca55b6fcfba302746 +DIST firefox-94.0-bn.xpi 549314 BLAKE2B e1b007557cb930a3080a169c15e0330d8bf0ca423f3b57e0abae5e052ed5df4bd198f4f932b3bf2531e97bade1849996048bb83e2539f3dc9a984ea615fbb3fd SHA512 0c9bc3df94c53406f2286d7cf2fdab9536fa5342868eed23b4c9b1b60a9389b342c558569cb40539edcdbda4ed7fa7a67e13396a2eb3181cfa77fc80350ba9cf +DIST firefox-94.0-br.xpi 518584 BLAKE2B 26de8e4f744fc2a4fe42992aa94ecfa82939ddf6e07d20d2adbe5f94abbcbe825eea4c8696b9fa83a2a1e0df7b603550bcc5d65917bc1a6228bb17d76c3aa70a SHA512 0853d0bfb53b391b58f8a21169ef5d7f2520649006a51b04d2f69348f5029beea799beabf22b5c6c3abc8e112a3676ec2da1f4e990a2ea4fabf3ea3a886099ab +DIST firefox-94.0-bs.xpi 457395 BLAKE2B dfbfb17d82fe8586cbdc0027bfdc91f7507a8f0bbb9a8983ce7f28f2ac6109616ab6f56bd91895afba4f4bfe4150e95bad7724ef180c6b6379ee9ad210886e2f SHA512 ecd86035a1fc9a39a88d972709722479865f11466bba7f0d4689e26950dcdc41ee67a4ab11a3e9084d4b525c7d783b31fb3417d323e770c08033cf3ba187a5bb +DIST firefox-94.0-ca-valencia.xpi 522750 BLAKE2B 3d6ad18c10d4693b700919961c734cea1f4d0484b7a913a9aad7eb0f4c3b6f91c0df839d77f650eb077ff89ca7822af547f4da0d23f8c111c7875c8d1f1c2030 SHA512 d8743d698498491378c5b19a71e799675a2234f1a73419d60791da4f49bc48d7aad36a78b85f29b6e4ccea5e9363abdde3b175d5b9f128e030277f79fcd6bb7f +DIST firefox-94.0-ca.xpi 523365 BLAKE2B ab9cf0c8ac61d908434527e10dca9675a4f72f8f056708ff73146ae35a56be124133d2835b4cc236a1576145810672cd77405d19f6643edb7d65ac9c91d6f066 SHA512 8b1ba49a465436aa1af66c52f5a539a49c50fc9cb6b14d25a64c048549226675bf173a4c1e70f6f975bf2eb7eeeccf539e5ceb0d0ff6ee04f2ce866e955b9f4d +DIST firefox-94.0-cak.xpi 546837 BLAKE2B bb487d955a48c1ca65576bb1d6a2d915a252c498af3deb5a5c6a8b4b74076504fa2cef03e17df45dc165e0b32f0bac2d357bc7fcdd398e993b926bb557d14606 SHA512 80529c5af340a5927b0d6e2b22fe61498d6c792344e6f5339d8566ac4bb7c9f8bd6f9a0fec30749f60a2d5911fb45c54e632b78145147e50ac6a1927c8dca821 +DIST firefox-94.0-cs.xpi 554906 BLAKE2B 18a991387d47d93c11afaf92913cbe2fa72895869bfe8d09d33ede6c003b118e54f178602f415414800fc5be1d6d28df16917cff52a8bebb82fe978db071ee66 SHA512 0e8e3ed65eb099027c96d57ee85c164d99a60ba9f2df946c3d8a33c177bf55de5d941797e3675ba23924867a09fbe5fea5071c742998ff998b5aeb148766b511 +DIST firefox-94.0-cy.xpi 533294 BLAKE2B 17170da6d82a8576e55115d794dc283ef615ced653c4b77058fed0703234e173527c7ae8ef4383125abc3cb08c13965631316e0d4c4ab40e1acd4ae6f92a6913 SHA512 580983d58404f176d7dde5aff705616189968ee5ba5056c5be1a1b6875e71b935dc78acecb8f7b76174bb912b7c1e8d412a86f7ef403ef46e8dca8da3f8c832c +DIST firefox-94.0-da.xpi 525179 BLAKE2B 5fa775427d920d596b45bd50af869368a9c2d8838d856bd6e5dc8b968b1a69536f8e5bee31660c9dc6cf1b1c911de1f7ec795ddbbecd463ea795fa51bc7c73b2 SHA512 a8b8437b614324809946aee1e78a5ab05ec7fb5f85c615aaf564e5a3074ea15bfaaec782add4f8452365098dc2b44f118911bce67948fbe916713f228eeb2c25 +DIST firefox-94.0-de.xpi 544130 BLAKE2B b01cd37cf5209575e902209ec498f60300ccd3a0487905ed8a93a783bd86b0a2944b3302843ae0595f8e61a0678caed96f5c14bb8ce33858f41062386bdb431c SHA512 3a47a95eaaa1c9f2c15c4c999c1e058311b2fca95497290d46d5c07b897d776ba31d22e59f9ba4b8c02688a25d17c29a574e7a2d35ebb6bdcf7ffbc16f9f0a58 +DIST firefox-94.0-dsb.xpi 556677 BLAKE2B 57d60b1b4f6202d613f70c0f8b87362f6845a70602438c7d20224f292ab8cd3aad91fcb9aba91bd12801109214ea2f4eb8728ef110b7e4ffa124c7a43deac7df SHA512 dc59c7fd279d2824d9211cc619423b8f088c7b35bfbdd8813ac31a4351aa4c7a2b16d44850d6ffa0b720f8be5592fc4734734f30ca8a8c19415a845d531cfd47 +DIST firefox-94.0-el.xpi 628432 BLAKE2B 86b75aff518f774e64c20a0fd1c3c456786fee806ed49ea92b6e85aafd701063fe506510ea8258595e6f6b512b142caa097234e175d066b0ef8ebbf914e5f931 SHA512 89eacb70327503143e22a38d7c1fbf150984e29976e8d2cc47d78a6933ea9ba945199c3b533b14b5b908cd3dcc5d0b4107cc93a5d98f1a30d5ae8e1ad61fb19a +DIST firefox-94.0-en-CA.xpi 501775 BLAKE2B b3f0dddbeb0af47e5785a13636d1080b92ee2cc1e6b8a5dd4f1becd7ec6188ff2ff5112d2434e9e6cc176ee33cc79a45dca44ec3fc56857690c917b04b46ed27 SHA512 35696e7886f3fec06db4370df39e3ec913e4ba6fa79c2c631076db566fd368777f8382040a2ea8de822c1d7378f8322186df64a28d663d76d7c35dc48b550dbf +DIST firefox-94.0-en-GB.xpi 502275 BLAKE2B e846073baba6b15e2df84c77ae4bdbb27707a0adaae4c757b885bdadac4b6b1e324d84df4a04b2f8ee78cda767a090e457863a066790aae4ea8bf6b4cf6f6cc9 SHA512 2a851196c251ceabfc0ddbc42ac82ee36287f63c8d6b43efa11c11ecc2ac5045f9ef61e7b74f90a0fd885e2d81ac34cbd129decbd0ccfdab6024dfb32a91a8c5 +DIST firefox-94.0-eo.xpi 524226 BLAKE2B f2824ba3ee872cb17c40c7773e8a2145f3aa404450e51d80bfa9958fbd4f1cc822a5f8951ac2b5682105a454e327a3dd85c938ba3129d6584b9909e3fd8adb36 SHA512 f71bb5b16284a1b250b5f23541c76d70cc923a896292fc22d744ad175cd3750c74dc460b0e297a2decc5e8b47d17cb4036e29f5d8c1c4fb38dea0a203642852f +DIST firefox-94.0-es-AR.xpi 537698 BLAKE2B 43e9bf4cc96b55fd8f2474995f86e6e640f7568d10fb100b4eb115ba02083740a9dd404cdbff3ae8bb72a9721e0fe3fc9ce62f94a3efe590568bee43ff4c0d8d SHA512 f593dfd1f5fe2f173ad983e630b8a81835aec3cc0657ebf71a6c9cf63b16804f0951cdf6cabcf9a14766e3697466a9b867c35589ab82896bc2e3cabf075f49a6 +DIST firefox-94.0-es-CL.xpi 537216 BLAKE2B 144f0b3ff8552d7e55f22f398411790234932fa566ad9f2a58ff31900fc4e1fc6ead5481170fdc7677e5c85dd294d85e821bbb4fee138ca71c31d4cd8061ba68 SHA512 7080e4145f2b43a276a8168beac578585f6b27e3da3b974fcf1af8471d41534c886b67dae07e82d3028c3c5a2df672de864b83cac624e52b10e56d03d1d8ad71 +DIST firefox-94.0-es-ES.xpi 528002 BLAKE2B 1a3b0db3a2985641274353ed574a3a396b237c61eeafbb0dd91e441564eca6f231973363a15908d82e159ff17c650aff4c4441fdde54d20ad7824f01bab79186 SHA512 81027fcd5d1b8841c951dc40d92db2b22acbc1e746c28d094486634effba98041ec2a5d7067d0a9150647935b4fc0c7e289b514cc1b3beaa598f94c83876f638 +DIST firefox-94.0-es-MX.xpi 537413 BLAKE2B 16609c472da7cf08618a68e6bf1fc776a5f8f3a4bcaab469c77beefb9bb92d5343ad3f128d95082f7117de0b6488c5a5f5e5856b6e7d253be242feeb84315539 SHA512 3c5499d347c7d1c31236c4e526648bc89bf4f8678ce61c906d5e25983ef5087eb6c2fa9e913928903d55d4129d7ea09a8c13f7ed01d88cf02223dee8d77a22f1 +DIST firefox-94.0-et.xpi 475967 BLAKE2B dae63ff0e366546fce68aadedcd2eff0292e44921b6bf329c35c27e33acc070fc9157d2d0f3e1283542b91dce1aa97251d37fbd3569ba5a465ae86d2b34e51ee SHA512 64dfa10ed9802f9100211b11ffc4943f6842ae5e952c6be63b927f8140bcd83ff84f06e9f0a5b214b3e0eabdc15b95503e0d863a717b14628c2c989f145537e5 +DIST firefox-94.0-eu.xpi 527560 BLAKE2B b4b6d9cbf33e8296f55eed59fc21d388bec1e912ec8d42fa69d6638051e019029817ec87fbffb287eb538a07cecd79bd5ed322000634f5e99b9262034410173b SHA512 ba1c46467bdc760f70ac308f9b8b87629be77573863165263e87725b7ac74706209da69f445a4b7e9d3e7200a8fcbd5806514ab324ac1c8f95ae57a3ebdfbb04 +DIST firefox-94.0-fa.xpi 549175 BLAKE2B 2bb607c7c1814bf65ba44bd914062f304c81eab4fe0074906bd75e9347a9b8a29e6583b24e4621f03feb842685a1ddf0ff58f9b6b48226ade6d4d706b995c9fe SHA512 ce8df645ec089c73e5f699863b955bbd46678c55527af9c6bb85504abe63d6455b9a48f15534805cdbc89d581e3ebbcbc044dcc5e6002e5f80179c29f1e23042 +DIST firefox-94.0-ff.xpi 464854 BLAKE2B 27685a8513a97129d6234a62d8eeec30435422186b7f94d88447e8282c8f9bdaf0cea3079c0f61582c8a63c23c3f40696ffcca50f0f27a4f633ce49292ef01fb SHA512 784ad1f33f1a18a723136d5bdcb9eecd73ac2d87c52077875e1b7be940f8ed34a3116df3ebefd1d777a3e607441b11330cf707228516547d77ff0979836cc79b +DIST firefox-94.0-fi.xpi 521624 BLAKE2B e044a3e374b2ce7d28cad2693d0552bc83109e7508ff9cf94c9a1541b09ee7f78a205a71cfe9d22c89d8067741ce067ca7d6e91d859fb841e6fb76c388fc6abd SHA512 90eb3f98d85c142cfa9b3bce9fbbd9e607be097de16c4a70914b1f509bed02292d0626714a1050c6fa1db3ed5cfb2a5e144197561d5e208b5eb6830c6b7802e7 +DIST firefox-94.0-fr.xpi 548390 BLAKE2B 562a0d83f003c7dfef31dd4f5cf244311977948dd8252678a10341bca255572c5bbec3fa5e21c999829f50f3e3d5d2300be74971ff4905909a1787580d41932a SHA512 362e7288975cd7ff5bd0b8f3736fbe09af81ea8e735e1a66cdd5bd746fd6bf0081202750938add753992fe42db1d2b9bbd13001d913cb066bb10963aa997e760 +DIST firefox-94.0-fy-NL.xpi 534125 BLAKE2B a646f8e922ad0c24082cdd154c11b98c372a24c9127255678acbf52803c646d318ae3053dfbcf2f8b8260c5fb5641ca87d69bf8dc694a8a916f946684ee85051 SHA512 a2d40196541c22e35b077dba113dd3164351a12ad54d98eec1e88c2add1c39dd658d75a4714592e6406947d08d0db32c4a84a3b5ce1a13935e277028b604cf09 +DIST firefox-94.0-ga-IE.xpi 453036 BLAKE2B abf27aed8e4f6da7f112498a79cd2501de033f6511ff88ab7635b4b83b3a4820e816f0cd2b27638aaff5f856ac0cbac28e1538b61e0b5025ce907cc6f55697f4 SHA512 251bbd87efba55d94d37029ec0830603505b3ffe3ad1035f8a3285ba667514e1ceff03483590cf3dbc8cc37aa59c4e77bc3fbf65c163a1a92f0d159232bd1311 +DIST firefox-94.0-gd.xpi 525192 BLAKE2B 629f9e6f67a23e660cb4a5d0719f37a1125b6bf41e1b10fe994db1833a565acef8ffb7e7e5d700163ed3c1e54ce5e3b705686ccc5d6f9b415731dc92937f997a SHA512 21b16dfd63a4628ef7363b071467bb6e418875db3be3a0a735af58116c484f1b04c76350303ce5e23b724ef2881a369c67e90d7c269ce6e4c4e749d6ce1e67b0 +DIST firefox-94.0-gl.xpi 532752 BLAKE2B 048a6b21d77f1cda8dc189ff3a903fc699877c01330ca4e9538a4af0cb47857a5da048115136c71211ca8d8d35c8c35d9ecbcfb9ebe6510059051a17e6f9e55d SHA512 61368347cfe1ce7689cf2efa85b8bdb18dc44ae2f530641216ba341dacda4c9f103e8a2fd253c63e606e35f589cf83980c521900baa21efec66266332dd87a37 +DIST firefox-94.0-gn.xpi 548780 BLAKE2B 8f72949ac158db9997ce2913eed0f923e9113117cd0cc05b0ca1caf8ac4020c04d4b3cbfb01449830714dd3ad39baf00cf075eae3eca9d25b396d89ba8739494 SHA512 6393e32b926259dd1787cca1463b3d00bada93b7caca8d2cc1d5415cf1194d70f67234bd74f8c273d6c8a7e695b21ece1334b08ee17ce39ec7310f94600f7255 +DIST firefox-94.0-gu-IN.xpi 521993 BLAKE2B dca90cc34d3d9a4e14b4f0877bd70c5232ada0a19c3351160e9971c22ddf22fde4974801d439ddd74109f0988ce4352cad668ad04cb1842ee33bd4f9c613c1ee SHA512 267658f7e7158deecabda41828573c12d506692635df072f704cabffc992fddea937e8fe7cd4ece2525c29f7f4c0527605a3b7bb88980da12c06c188221ac976 +DIST firefox-94.0-he.xpi 548088 BLAKE2B c06bc253e9f4a6a6c1a6e89df9db8fa22a147a5d26d10872d60f4d4f3a2b2ddc40634a89b84bb07048551f804fc82c5902d05b87dc621d326ed64ce6c8a2a833 SHA512 1ae1b47a24c5b65a5d5bd0c96c3bc2001e3c28aca417daf2d06aad71cea9071cafa1af853de3a39c9f79cf79f38c553bcce85994efb7be5302fc60985cafc435 +DIST firefox-94.0-hi-IN.xpi 549627 BLAKE2B b4dca16a609bc081add9620b1815c29b3f27551abdb72a3d3025c0ad9ba33b7e96c8ed25a79a9d6eeae1128c3d3b7a5dcbe42566c5e2ffe717f5bed812b639d9 SHA512 2931449d56622eecce2c99beb5e022dfbd2a552b166cc9eed6a9e66392a02fd192535b584ad081974f2f590393b3aaffa83ed560848120517ab2caac396fbbf3 +DIST firefox-94.0-hr.xpi 524158 BLAKE2B d18a723b0510669ee33af590b0aae56eecb536f78f7fd3f556f5114e72b7a59ea07a80bec9b3bde1d57fdb293b1a26b6b5805ffb915953a415d519f9beb6e6ea SHA512 56d049e10a1db1365507e230e4ca387169b34be5c07032fe5e3987bc2b18841b7fb22191af21022f341bf7d66fcef6dbd83d005628f76a87afa8db3da8c6924a +DIST firefox-94.0-hsb.xpi 552757 BLAKE2B 803083a7e269a78688b2719f8c55510e6f9e1ebcb4b9642477e7f241d65ab9caadd44b0ecbee48655a27bea489b776bbdbe2cfd84a70c0e0db22d4e4221287b4 SHA512 8e398333d5d78518c6f7551bde0d73843b5876e75231286b7378524a1f3e8856c367de0033fdc44faf79fb5f8970a9cab49e39f0c71c409b0f491053644d44a7 +DIST firefox-94.0-hu.xpi 556535 BLAKE2B bfb59b70427e22e42d94eab63455ffb683f002372e6dba3826e02d677eaad02f8d3b8c552f07924f7a72ec590dbd3e18fd2478e6249f1b22e9f4c84d61cc54b2 SHA512 b81fadd7050c6e7a6a8be6f44208baf4ec2b42554d3ba0b5ae2d4cdee6111bc221ac1b0e26307735c9e658b519abc9ae32b7af0959c56a249c3f5135e638df3c +DIST firefox-94.0-hy-AM.xpi 571518 BLAKE2B 0fe678107dcb4ea53d15fffe40bd86d66b0c24b1c7cd83b13964823ff0cc0211f587f8ca0d14e0dc3ba0e3e816b28845362a549ae134d9cb854ddc76f8db6a54 SHA512 74b100b486dc7ce3d837c5ab050d286bc774671915e8eacf9fac0c8f59315be2bb25bd0e4f6ff4eb316d7b92b2dc377b778ba77306bfefa53d0413e9aa5fa22d +DIST firefox-94.0-ia.xpi 523402 BLAKE2B f0e2808610af6d2cde52c1daf3c9339712fd92e3461c638176a23a3e40a7cca1d03b8115835a9be1d46a343546cd38ac7e92dc7365d601d2b772ef280d06bb5c SHA512 6102730b2a1a7bbeeb33c57e6cbc20af94b26276afcd2778ab183b5c5720dafa7c3a8b5b693e141130e9f176c278000a3bcd65b4bd61e7cba0f5a74b4c9469f5 +DIST firefox-94.0-id.xpi 514260 BLAKE2B 80f40ef170c8ef8151ffa53ca0b5a657fc93b0a7d1c6490644e165d5605181a1885a52228cf034836f472a404ca727552f98039aa7af756919ffaa9da5aee9ec SHA512 d0759dad08ed747822ef57afecdbf1e90b831b5d9b6f6f982c3160f5afbc669674f6d8100b23112da9a0ce52773b95f2229625ccadf1cd29c60dad080b8edbaf +DIST firefox-94.0-is.xpi 463534 BLAKE2B 663e2317996b922b79923939e1882292091278bf9ea6991d569acd99b06237aaed70b99af7201aaf2000a43161095df3782e78b1b8a081aa19483ccf971edfcc SHA512 9794e60e9080529d9c40e57b05707dd5527bc5c8b3df8706b3a483d273ef8d4fddef5fb56d7b95e8c8deb8507cfe9df0c1ed870b13683a1e44524a9d029c7bc9 +DIST firefox-94.0-it.xpi 451920 BLAKE2B 9bc8035ada6e4a7a504787785891dddccf08905f25b1de9e92f12d1776ffe023dce977ebab167696e941f69abf0753929642caac30aae0e0353da6b23014c287 SHA512 dccfba41bc0ed6e8e8e5c710d00fa2e2393177ba4151c082f802dcf2b1ab3f65add7477bff87d8e1df88dbc17dd7a140a4bf0e217e57a2771c4a9b2e88f2eee2 +DIST firefox-94.0-ja.xpi 578385 BLAKE2B 02f59df92c3ff73ba26c2ed2a9200d232dd5d034da5e8b38d7c4d6033539ec5580976b245ae0644c0af7f6130108b39dcde00c83a2afd48b9622813c20b8a3a3 SHA512 7640bf6129393001b940a374772d6bde37d71f6bc1af064e97058398c4d1683fefda00e879da1817d817b10215eee264981be24e66ded3ea40b670bc12b72ed0 +DIST firefox-94.0-ka.xpi 577168 BLAKE2B 48ac1ca6386dad7d31035b3884f76ae8022babff610df3aab481912473abc2ee71fd2034664e2f1fe10807577814af2fca4c6f0e6115e8fbf754c8afd9437b0c SHA512 0af9d8bf0ca2f561a48cc5f2b7e105156717df03f2c8bdd35dbfdb54d8f1568dfbf2d0b4495c3f9c7475c8e872ab966d7668edd20f2f1a8dae121c6cb7eaf166 +DIST firefox-94.0-kab.xpi 537772 BLAKE2B 14d324e9b5b6ea40228d922da78e62e13fdbfe75cbe4b9d8428aac7d8f97947a870e2281c185996beace7415a93d7480f3d47c2d683b792db9bedbe4f482905e SHA512 849c7a27c4e815cf9c3a0ec5b044da642d385b84fb673d645cc837663ad12395d4c4320cd906fe0c73ac737e7d1801c7eb5b33dddd5d6caa741769915b4cc71d +DIST firefox-94.0-kk.xpi 597267 BLAKE2B f00a1ccb11def8e7421fbd90080c6dd0f5c64964b13c879f2735323781eda01b1765e4597fce6c1b81f98c15784c1182aea3d00ef5929d5a13ed89483a8c2e1e SHA512 8b538953ef00d75b7a887d8cf8880f8b4c40805d4410a4293cc382d65bd6ba7394278344c26796d2eea33142710a53d1c26cf02037f992574cb0f4458e215f6e +DIST firefox-94.0-km.xpi 525206 BLAKE2B 0a8c7b10640f078914672f06cc4aaf3f01f7ab36854a8339df9feea686e10437de9efc04d2353bfc19571fb1e19a24631c06db089edca026981d6e2f74842303 SHA512 83b0f6fea01a34927707dfad1e60534cbe5f11dae487aa5fab869f158449ef519fc964c14ba3d8a41f6f4c7c64faed2179cbc12e33fa43e7978a84a579fee44b +DIST firefox-94.0-kn.xpi 490301 BLAKE2B b5ee315471500bf9b110765046406eb71054e72faf6e1523e8e1d0f2360a06b4ecb33e723780287f933ad1a0fe6419a6a523b4f1aa613a52e66d58ffeac211bf SHA512 309e75b64bc8b43daf56b480e6982da4db0c40ba8fd6116df6519efce10c4195b2cdf644926b85cd892d87550051e3bb6940123f7bb248cdc021fcc8649e392b +DIST firefox-94.0-ko.xpi 569343 BLAKE2B 091e68d4dfcefcbe9ef4f0ba45740eca3df606c8ef7cce7ab7a8db8267b7901857ecbec622a160d7298efed24ea3e82ce66b50db1c0fd219fcc14589627993a8 SHA512 d07cb3fd592be34bbace4b2fae03b5d536c073fff1d9e87a549944a338d87604db5966c24b6984daa08c9d6ad07f5338ff4f3dbe61d65f8bbe0257cf623355a1 +DIST firefox-94.0-lij.xpi 463827 BLAKE2B 522a1defd39e16468d204fdb34ab5c65c5eba79e2f848db81c8d7cff3867a199def6457131b74d293073b606477a649e5cea91a271f365f9c35c3ab769e3744a SHA512 b8a288d6cda6c41b449483e1dd70c49d67675d3fb8e288f47bda11b3e23093b28e9d6c267af6827cddbb0a8499e81d33852ff5fbd047758319b61cebc75ab1b1 +DIST firefox-94.0-lt.xpi 551271 BLAKE2B 4b02985400cb20f79721044005438e5db8d4d2b4658d847b7a21b2b51f44fdf99c08ce1834b4fe746a248714f23c24ed4c631fdbef41c309384e65a2a45856fd SHA512 0b76f799cbaf2ed2ce610ab432bc8e35bc4f7c244704c8e671b115b530a411dfdbe159417949150c9ec06f4874e4392875a57f70faa947be1db9e490e9919923 +DIST firefox-94.0-lv.xpi 455635 BLAKE2B 9faf704da87b4a430a1ce2af4567fadbbd9e08e3e7094ddb781fc4db4eb0f864894d657e88f5085f148d128267ddad054fc662ebccb507240d2b286f73e45005 SHA512 79a002f3b068b452fd771c18ab38cab67c35449d2094bba7a59d359dc33fd25e16089f543a28f2513c2d43e588b68f9eff96511336caac65578761da1dd00589 +DIST firefox-94.0-mk.xpi 457667 BLAKE2B e10548292cfa3eb8f905975cc197d215ff80fe6a802eafeea2fbf63d9a8f1df8bde13c6073b523325cb012e0845cb516f912459ddc885f625a54d0d4851a9527 SHA512 7408c93c8c24b3d81183427bdef84b436d9b636a1fc77913864f79d500906361e33ab003f362009f24100cb9ae15041ec78da1615b8121b5c180f8a62574ea87 +DIST firefox-94.0-mr.xpi 524926 BLAKE2B 8c97f00bd6a8e6a0d95841f1d44edf4d1d59f5aa305360b103e202139b0a4045b4f5396e29ab0330b08db55eaeca13a3766cf4506386c2ecf786a62106b07640 SHA512 785115dc974ed86e3bd9a49ebe660ca69a6963e7671bf0fa12b0b2eea611d01445ba910bacccb951c2aa51a95bfc7e74cb9e6495ecf647f35ec930591fd6bc2e +DIST firefox-94.0-ms.xpi 440740 BLAKE2B 918e8deacdd19016d475035b6685891590292b9fe256107c3820dd9a250dd95207782ad24c4f55234e2028f8a7f1b3dddaad3b2db829be4c7a0950350e75d0e9 SHA512 00cba0d6232ac1ac3a5603e720e90eaaf1cbd24f6a8b4a620fb6ec5c6f254e6e508cdc647f4ab9f725db84cb0a4c9c2be7d2cf9f07a6e38fa7b526e51039820b +DIST firefox-94.0-my.xpi 509186 BLAKE2B 46b595fed0d3a39ed53bb59dc21b04da9a24537a40eff91395a19d5bec654d49feebb939a0a42bd2e8a1fe11985918883043a7d931f43b4c6e1b16e5cecf9456 SHA512 85f17e57c032618e37ece3667d070f9537cc9ff0f0299373a74d678aafbc144697773d85ee72554f56f70096f3dcb95034ea4c5b6a3b49e7d4a170edf8ed5749 +DIST firefox-94.0-nb-NO.xpi 520733 BLAKE2B 00052b88231db8989406887d79e37be678d167ad3bbc7289152906099a581fe24f0c4eb137025f7f841f678f2df8e9d7c618e591476a17643f552cc4e34b3bb2 SHA512 1754754a7f1077173a235460fc58fa59fbbb7b9b7fc37059d216a89bef87d4a72df67eb393ea9a7a3646c85f8ce16ab5815465d2d7a62a91a4b29dc7bcb8fcc4 +DIST firefox-94.0-ne-NP.xpi 468604 BLAKE2B 3ec863871e29f442cfea90d56fdeda941bae8e911e3dab397c5b83f7ab2c942b4fd7bdf5b9dba400958bfae96318b6cb1c5888edb5b12a6fd91833a7075a6a26 SHA512 c97778e0f7d8ede6f416fbe0eda7fe5fd43719d446bdb2268262f2db52b430018057325835c287f7c073a61ea0de8c0f0183664cd52690b6aea6eca4f626cd85 +DIST firefox-94.0-nl.xpi 528251 BLAKE2B c5ad900bae877a34557e47a95662f4a4f138fa593ef5549978151329a1426934c66efa30849cb2432a89c9b203631bae1ac327197a27af246ef75da48e2a0598 SHA512 b0883ff9484c0fdec1a18651a3d032872d7c08e2684cff157f8cc494b7450465e899357e529df23ea531ad61e2fe5b5aad6a47cbeba84e5b447b25535e597208 +DIST firefox-94.0-nn-NO.xpi 522080 BLAKE2B 8a7781d2ff29740b7e90c947da2eb8591a1858f6ac35b5c7f41a66548ec564ed98119608ea80c6bf99a6c6ecc506268d91c0b08cfa58162ec7e8923247219cd4 SHA512 a9a12e79e8cd57bb94ef0404d12afcf3b91259988a25c5a918f650ea5038e30944f5316fb46f083452bd0d89f93a7186480b5ce88a0843b473bbbd9758146b95 +DIST firefox-94.0-oc.xpi 543830 BLAKE2B 2412359c4ba0611a88e86b075210ef07e88505c4f924d1479c2c85fe43097de6d6838fb83c2f81dba3457286c2285727d740956ac3a4fe1519e207fdc0d6bb7c SHA512 3ea68dd71a83d31420f9ff5b0b6788fdb225bb0709c2deede6b3424ec02c973b702c456def9ecfc2966014cf08dc53d28944d3a502a2537324c3065556029f81 +DIST firefox-94.0-pa-IN.xpi 584012 BLAKE2B 80cd83cc454a918f84b587fa0e18dd678807098727eb7de8c0daf340b8e8f8c2020772130f269e24dbb123464c7dcdc814a1b5b03191d5282914582da5404ef9 SHA512 f2f29ba3e4cf035b1da1dc0855dbae8d450434615b69fbdd0dea661807a435c73f08e0d6db071e5b0875514decddfda288f8e77f711e11bd65671d5949f1d7b6 +DIST firefox-94.0-pl.xpi 547602 BLAKE2B f26999651674ff64ff7cb6d8242f16890037eed53b30480a155ab27387a3848493b1db2e3fa749bee2a36c88fb38cac7d409fb762da320323e894dde33f96ccc SHA512 ac7d2168b307a1a60f701889566f458204c44a5a6874156e47f5c82e65292f6d1145e8ac98a786e41931b1d919535627c51b1ecd30a35a8e98fb8a318a8bcc25 +DIST firefox-94.0-pt-BR.xpi 533492 BLAKE2B 98777f5341a217445e5bbdf5c01627d9a6904e24dba1acf61cee96762a65837cf4b19142f7856a466cd5b6e46ccc6e6412e7f82cd01b0c72db3d018949a4d177 SHA512 90d6cba8619181d8b84c1264e7ba18563e4bd3441140546084c3d7683ed2e3c06dee883611b48deb6fd7617a979d831d5b15e42651dac4d0a947b746a412710e +DIST firefox-94.0-pt-PT.xpi 537143 BLAKE2B ccf60f894b602183491daa3b79e39af0e8da06b7b5bf717a6f8a47980eec3a63dfd6cf6188fb98ebc4cc2e99f2272c484472b7d4bc47e6ad6b9b0ead23e37598 SHA512 66ad39f7eabbe47058a1de5ae9f5132715c63618b8f453689030bd8ad0c2494c46a461152650706ca6ff9828fda0cb18e577ea0848a3e367bdd1fcb7c74d8843 +DIST firefox-94.0-rm.xpi 528030 BLAKE2B 0f94c9856bfeccc2922560f8bfe43feb1dd483d05d71e0a570a8e4b4d90e698153d779a56b4b90cb0baa076d60fd24b8c9f438905568d9eb4a31086b4b014b5b SHA512 2716634a29e455bf47fd6cdc4aff7bbc8cceed967c463d73c83283e3860e50e8c6fabba3e50fa27c9c494101962f84917d5ff2e437c71980b4fc38311b560f70 +DIST firefox-94.0-ro.xpi 522825 BLAKE2B 2cf1137f569f229c360ba6dddd8062da366c7ff97af03f434c0538a2819c27b7a4c4c3cf6e6bf41ab0614436ba3342ac8b195870c665ee55103d23c4fbed72f8 SHA512 ed40207d633ee20e37f12afaa3b6544735f353eaa35ee73f9d447145c19f19ac808e1100bff13f8cd1842bf99553a7d0f26639c1955c610168ceeb2046c2c2e4 +DIST firefox-94.0-ru.xpi 616582 BLAKE2B 8afe50907e84154ab4f504fc24f1313d68653816d67b4aed2df7673684e02df0c6931a85703a14313aad400fb655f75b65debb95bdf2360d638261bba841e248 SHA512 86e3a46acb10015f4cda5e17699a2f54fa9032b6d5902fb3dc70710567b5665b26ae1ac74af00c84518a73b476eae11fd6647207fb5b3f2221ccfe489414dccc +DIST firefox-94.0-sco.xpi 499123 BLAKE2B 1ec3e17f1543c4a7737223149e456c912cef69c4ddabbe08f955dc5627bd6b7a0c2edaeb3f0c8b19ef653ead6ff4b2a920f5869144152858d9040bb0d9b760e9 SHA512 1b782533b443e5d00a53c18ee521934e8adc8bd4f65cce6ea0d0e42d3d35266651933ab6129c82ffade4ad26de9895c895fac7702933421f1a6deb9c272763f5 +DIST firefox-94.0-si.xpi 480462 BLAKE2B 92261a69a20535381b7b238729ff97a086acb8f49702e6df145ee3604a7820895a8301378d8432d1926238789d9487492a9ef201a122a6000886ad17dff6616b SHA512 4dc80d56ed0bcd8934493cf8f8f6203487389c2d11aad8571a05cf25cdfe5739ed6146ebeaf6677e39ee4c8d1ac6c32fde5498bf77950a7eaa832eae2db14132 +DIST firefox-94.0-sk.xpi 556808 BLAKE2B 612dacf7c801984b3011befdfefb74ea3fd157832dafc3736a018b78052ca06ae73b12674f7aa818771dddfec51327bf237e16eaf904a5afe06a1d5966bed58c SHA512 5ef3fa73de62c6b32aaa090d13d011e78379db95f41e0ca72d4b21c2ab4d0ebf950f0a5afe4e670266bcc0a875af710b4d0b127c194cc9846c6da247c57ab8b7 +DIST firefox-94.0-sl.xpi 525781 BLAKE2B f4f9d1050eac788900189ee3bdb3a095c2a8fbeb1842b783789c54dfc2a72583fad758fa62c65dc50ba925ff5285ced7f89f91d4eed443e0b318076f8e18a9ef SHA512 1dc9c9bf0999bd0112069521c5c1d246f5014abb5efb2a2af1fceda3c5e355d3e6a1634763a77acda709b7386fb64a4bdd445ab132a762927ee195689cfa400f +DIST firefox-94.0-son.xpi 417362 BLAKE2B 71be6c261b3cfad2e282f02debe508d75fcbf677a203f2d405ece4a5776c9f35544f3caeec6629e0e6bb4d53f518b2fb6d6d252e005ed03bc3102b97c4068755 SHA512 384128472d0071898eaed2b2a29c6c8fede0b97bdb9237dd24394057bd7dd82d6be417ab2d509e9ac34b9932e758380f59ba0e44822e04fd9363daa22306e905 +DIST firefox-94.0-sq.xpi 540827 BLAKE2B 4afd4e62e5880febcf5eec2e60939a7b6c0496536f157dcba46e4d74c17c3e53a052fe41b34436ff1e76326ded77df90b125f3aa30a068d1b3b82e1b2aef7b02 SHA512 f926089fb22e4e4b82c5a255241b33edf81c6c2344fd9235e8fee1dcde023eba088f5733fe0a60a036d8664d7d922c67be0d48bb0e902209bb6357457b1748e8 +DIST firefox-94.0-sr.xpi 578101 BLAKE2B 9d579edd8aa7de026313a649ea837d11d07884ace27c80d1478dab537e733656340d26417cfd5ed580f52c72c3ded28f7f7e15acc618dd61ef680033ce3b0668 SHA512 9e8cb18d4f9539d0899cb236731e629889b6f8c4489b87b8b9c7331b6ee62e142229f2910354ac0a2c1c35e1f40f1ca11809d4620dd6d45316ae4ff780213e18 +DIST firefox-94.0-sv-SE.xpi 531031 BLAKE2B 2ff0ce610f97bde58d07de58496c465b16d3430cfd29cc2d082852e661b6596d491250657b59742a2085786d6c076fe5fee96c8895209b12ad36338ceef68354 SHA512 324ccc85b6d4cb842e7d74528223814f332e11cd278a74065be3be07da727f438b3e88c06468692495aa62f422a76b80532dabfb27ad7265ab6a30ee90081cf0 +DIST firefox-94.0-szl.xpi 503794 BLAKE2B 3960ed7d8de6a5b6acf592e0ac99f93aac400c4e7990ea58a75bf8103fbd7e2231caab17cb98c766bfc38b88736639b4ce04a62e7076b7229dcefa5dd548c227 SHA512 948e71f608109bcc6a24f6a54041a36a2e1b4b1c58d190c3ed3a3ac5ab0704c60b0e0869d2fc349c70b3bffbc0fe1bc5411084785e25be0244e76e3497c42a4a +DIST firefox-94.0-ta.xpi 504703 BLAKE2B 5437c3b20815af5eb8dee09d4d976090a5394d78fe8ee009c7e5b8a5f51ba3bfc441b65bbdd6c186f18ff2468555f9c0af8eaf668914898e46136300970868fa SHA512 b291487cd4b9820d9d4cdf1d36e74086de8949c5e9237ac1588def96c753ee4d99dd533f474fd51236da1ff45d312fd0cb1c248fbef347a81169f1d53e09f069 +DIST firefox-94.0-te.xpi 543088 BLAKE2B 318ab87aa16529bf32a0251aa797a6ed295a7306d45aeab13c33e7c1d0f432ddba06ef3325ea864a51aa2ee32f1365d07b0c519b41e979bc1dfa6d4af713bc01 SHA512 f0d5109e810f87cf188881f52567be5352327a58ad4690e51f7c57eb240763d7e8b0079515af4930dc71d54abf1a6a880456fab2707c80fb9292b47ecbfced36 +DIST firefox-94.0-th.xpi 592797 BLAKE2B e16bfd49642a8712e4b9c6d56fc0fc95c3cc7ead2cbd17b5204e7ce19d70da1711a05f7e1717d5392a33e217792c752a02c85958fd94c7d8dcc28c4b6d36c991 SHA512 9962644d83c4e37c6008e52f54c9237c6cc684ac553f99160ca1fe05847c4289e1d86d23bf02a0b4829dff84982a8e37f85092a6477380340190fd6aa760ab4e +DIST firefox-94.0-tl.xpi 509581 BLAKE2B 01cfad56841fab8f3a1fa2bb4719350bdd8b1a72d24cfe3d524167409de494e019fd5049b31efde4dbcd72905286b119959925c6bf8d7d41e123e3c6121d6770 SHA512 f46b59be49ce092d405662b8b1e779c6f8015e2672f12d3b4d0dd29124d44cc12c52fa773636a1707ea24823e26305eabfa7cbb9ca9df356da2030686a26ce65 +DIST firefox-94.0-tr.xpi 543227 BLAKE2B 4c9d94bbb8c749bfa33391054db605ea1398aefc6a0878c6030837b4d2150c9a0c88f1fcd2f15c14721e7b2416041c420ba9a28cbe69fed72f606288784b905d SHA512 35c4f596259e8325f98afe095a19261580d16fbcfac5135223a14e7b4d393d62a26e01d8405436b9ecde8bf8ff9acdeb4ff26c44f3e92d497480ca5d9c52975a +DIST firefox-94.0-trs.xpi 484034 BLAKE2B 2bc511fe447f61c9fd1fb0a25b6e807b15bd85f4dc70f3468838219cdf4127765fd21abd8ba6f74af370f74c2bc790e3d88db4ad6f198c02893e5e2508ec792e SHA512 8c7fbd89f0e39d0a0413320a0ce333e6bcb3fcaf1a2035ec75837b41244f8018033d5ebec9cba682f95ea46c10c0bdeb572fe4d9a8c2f1594786466462706123 +DIST firefox-94.0-uk.xpi 610071 BLAKE2B 255a2c7c47ce3d6bb838ff2051628aa32c5ec9a277cfc50e29bdca7f0b232cbd7d01ee63335e2014cd69833444299c748ae5017fcf6b80d4fdb53482640f50a5 SHA512 110c73a8d3e4c1025fd3206afe351a3cd45b855c4bc3402d2092eafdd7c6c3da230a6f4d95db4e0964600be366b29d4c3ddb70ad983daf0d67c4815ee8b12773 +DIST firefox-94.0-ur.xpi 549590 BLAKE2B 0084da30e9fe23de58e2dc99fedf3d10eb2d16dc908bf2f7513e8b1185edaf705ab7bcbb82565de4c1a34fd9e9a76d68e5b89c62d1c2ed05ae9c6265353ffb98 SHA512 0501a20ed8fd67d70acbc73b84361b9d95f19a911e18ce417cdb435a005b2d4e6a9a233bd3467975a58cc6ff8a8ebbe42a14ce019a9a56c71ad14aaf7c400997 +DIST firefox-94.0-uz.xpi 460394 BLAKE2B b25e87efca1e7d0d0cf3c739091faa17f5ec5c05d90c7998185edf16f793521a7763c2e60544e59b51c7ada8a24563371cb8de5b9a6ce03b946404213bdcee56 SHA512 ddd1f79ec8140b9296c5c3caa86eedcf9896ab927bf710c750a98546d8305d292e3483879b1fad758d1ca2cd69b32d5f40a8ed15d25e91ba01f0ec4e61f26654 +DIST firefox-94.0-vi.xpi 564311 BLAKE2B e28926ea1e95a85541fbd0dcea4a920b5aede166dcaa9a3da062ade4386d6f7c5aadcae4bcb8418c15ae0ef8104323d10aab04ca4b4e3cffb046e13fc54bd0cf SHA512 68847cbe384d84ad3bca572bc6315ae059af73044809a2e90870e16b48fbb53c87b1aa32965fda9619ed3fc9da2cbdd683a66588947ea2fa32ff344aa39c4ba8 +DIST firefox-94.0-xh.xpi 420854 BLAKE2B 604d096543c2765a761f25150e3bff66a9542fd37fdf034d59505e722b68cbd804a4779fa834fc91727832f2e755be9f81a21a10791db804e67633092bf139d4 SHA512 39394ee0bb2790ab05bec2749d52869517f98d79e88e8e3326c100f89790057e4afdeb100481d62157bb764a1c203f9c624ad59bbd5cf63a006106db00a439de +DIST firefox-94.0-zh-CN.xpi 565918 BLAKE2B 247e2c0d451bedec51c4e015cde9d954876ea5be18fc972de75d8ee880f79804129bf9c6465fb1b5568275562843ebb864bf3a83a4a61eedce765a4ee375bb21 SHA512 4398ef98cca5382aefa03a822cbd0cb508d6169189f074093c85c0f12ced4a32510a13339a57af3d7c3c8135607edd52d8aaf634aa302790aece2cf67495d05f +DIST firefox-94.0-zh-TW.xpi 566575 BLAKE2B ef942cc3262a8600d4e0a7cbb73dc44bbe371234a2b4844ede9aeae0bfdd1391e9b34eb04cb7aa8c2b57d0137a6e38ffc5f99c39cbf3a19165338ed112947234 SHA512 c53ed001cbf60ba69f0ead669100ea21253cf0e716661d7f81589100fc23c62d4059a83e2cedc519a65f40af8756dceaf5dcf42c06e6743aae79bb469cf5e51e +DIST firefox-94.0.source.tar.xz 379590880 BLAKE2B 024bf40f379c72c4f12e322915e07dcd4dd7f6a8e7a725efc10d9b4afb6cd67093df7001fa93f4b9757eb22403da5cf8e2738440326234702816647fa497e2ad SHA512 5eb65450a0f1842d28d73235f3ef95fa1dbf8cf1467c354f13df51313bd227aaf5a48b741ee49b13378aaaf054bff52004c1dd5a274eddef4a3cf1b913ef7071 EBUILD firefox-78.15.0.ebuild 34443 BLAKE2B 568b5626c717137be77371545016e0bfbe22e0b362eb3a6d8654f838c323b48e1f62581f7e90d6d40ae2bdbe13826acefd52c7d426587f8fb1f9b7070fb105bf SHA512 9e8cf9e5f4977dfe4cb0dfeb2a82e481b87a7a6bf3b1ef250966a3c07dee6e43dc44fade1b45e46af8e2eadf6758ed2170214529823654ac83030d14de7d63f9 +EBUILD firefox-91.3.0.ebuild 33839 BLAKE2B 93930df1cd8869f4703e130c7d85cc7c8f9953c06c5b183bc0bc452686d583e3d06295377bf18fcfe8d3e3dfb67e1808f11f28300d0a9e0e93a4d8b06cae2a11 SHA512 614c7d6c5e0484f2a138c33b23a5b8bd81e9b1e517a5194213aaa349cec321547c36a16c74c00472d29f6dfdf059c0237826f026867d097e47d8e50c3a7d2c19 EBUILD firefox-93.0.ebuild 33813 BLAKE2B ef1d5db89c7e39ff7313f922c5a77007553ee3dccc6f4585e3ac9d23f6ea5be7abec9da0464ff2b45ee9a076e3edbbd59a7c5428a0f9b6968f7eb9da1f4e1f79 SHA512 6d1177807e810d75fee3de1bdf3e6c9dcbfb0a66f5fbef1415644707946e6bba292eecb4201ec9d51f3de74e8fd8b30e129902bf7785ac0f3c567fe5946aca78 +EBUILD firefox-94.0.ebuild 33850 BLAKE2B 30b11625fd8f8e27b8d0a0a737019565a43adbc08f09ef38abc615ccc7d3f2ae56b620fed8adc70b606400e5446ee3259f32f866eb32bc5f6ed675d7a1c9c9ce SHA512 d82f657770be9074b3ac35a035b809657cfeaf9c189f56c40545a5b8d3660dbf110fcac519ea1684ed93a30028d75b6196d097cc469520177c363460e29e8158 MISC metadata.xml 2151 BLAKE2B 0dd5df0e78dee99abb7d7fc5a384126ac9920f8f39e886932c894328ab4c235aabf0e7fe401c6859973bb8c55f29bb64ec8cc571b58aa427325cd4b98a89fbf4 SHA512 14e367bb16402e3c3efbed5ed6cf2acd776fd725f4f29f5cbf20f4351ddbb59c89103b9d051fb56912bea461f994fe47741afb6da3b072710eaead0004da2c58 diff --git a/www-client/firefox/firefox-91.3.0.ebuild b/www-client/firefox/firefox-91.3.0.ebuild new file mode 100644 index 000000000000..7764b7c4a09b --- /dev/null +++ b/www-client/firefox/firefox-91.3.0.ebuild @@ -0,0 +1,1162 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +FIREFOX_PATCHSET="firefox-91esr-patches-01.tar.xz" + +LLVM_MAX_SLOT=13 + +PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +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/~{axs,polynomial-c,whissi}/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="0/esr$(ver_cut 1)" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate + hardened hwaccel jack lto +openh264 pgo pulseaudio screencast sndio selinux + +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent + +system-libvpx +system-webp wayland wifi" + +REQUIRED_USE="debug? ( !system-av1 ) + 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.51.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] ) + ) + ) + ( + sys-devel/clang:10 + sys-devel/llvm:10 + clang? ( + =sys-devel/lld-10* + pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.13 ) + x86? ( >=dev-lang/nasm-2.13 )" + +CDEPEND=" + >=dev-libs/nss-3.68 + >=dev-libs/nspr-4.32 + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-3.4.0:3[X] + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/libpng-1.6.35:0=[apng] + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + virtual/freedesktop-icon-theme + >=x11-libs/pixman-0.19.2 + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrender + dbus? ( + sys-apps/dbus + dev-libs/dbus-glib + ) + screencast? ( media-video/pipewire:0/0.3 ) + system-av1? ( + >=media-libs/dav1d-0.8.1:= + >=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-69.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-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="${CDEPEND} + 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="${CDEPEND} + 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=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk sl son sq sr sv-SE szl ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +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="6400M" + 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!" + + # temp fix for https://bugs.gentoo.org/768543 + # we can assume that rust 1.{49,50}.0 always uses llvm 11 + local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') + [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") + [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" + + if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then + local version_llvm_rust="11" + else + 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!" + fi + + 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 ! 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 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 + 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-strip \ + --disable-updater \ + --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 \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-png \ + --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 + + 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 system-libevent "${SYSROOT}${EPREFIX}/usr" + mozconfig_use_with system-libvpx + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + + 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 + 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 tc-ld-is-gold || 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 + + # 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 all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.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 \ + >>"${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 show_normandy_information 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 firefox-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla Firefox shortcut." + elog "If you still want to be able to select between running Mozilla Firefox" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi +} diff --git a/www-client/firefox/firefox-94.0.ebuild b/www-client/firefox/firefox-94.0.ebuild new file mode 100644 index 000000000000..5c7cbe52269c --- /dev/null +++ b/www-client/firefox/firefox-94.0.ebuild @@ -0,0 +1,1163 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +FIREFOX_PATCHSET="firefox-94-patches-01.tar.xz" + +LLVM_MAX_SLOT=13 + +PYTHON_COMPAT=( python3_{7..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/~{axs,polynomial-c,whissi}/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="0/$(ver_cut 1)" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate + hardened hwaccel jack lto +openh264 pgo pulseaudio screencast sndio selinux + +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent + +system-libvpx +system-webp wayland wifi" + +REQUIRED_USE="debug? ( !system-av1 ) + 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.51.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] ) + ) + ) + ( + sys-devel/clang:10 + sys-devel/llvm:10 + clang? ( + =sys-devel/lld-10* + pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.13 ) + x86? ( >=dev-lang/nasm-2.13 )" + +CDEPEND=" + >=dev-libs/nss-3.71 + >=dev-libs/nspr-4.32 + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-3.4.0:3[X] + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/libpng-1.6.35:0=[apng] + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + virtual/freedesktop-icon-theme + >=x11-libs/pixman-0.19.2 + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXrender + dbus? ( + sys-apps/dbus + dev-libs/dbus-glib + ) + screencast? ( media-video/pipewire:0/0.3 ) + system-av1? ( + >=media-libs/dav1d-0.8.1:= + >=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-69.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-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="${CDEPEND} + 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="${CDEPEND} + 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=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk sl son sq sr sv-SE szl ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +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="6400M" + 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!" + + # temp fix for https://bugs.gentoo.org/768543 + # we can assume that rust 1.{49,50}.0 always uses llvm 11 + local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') + [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") + [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" + + if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then + local version_llvm_rust="11" + else + 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!" + fi + + 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 ! 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 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 + 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-strip \ + --disable-updater \ + --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 \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-png \ + --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 + + 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 system-libevent "${SYSROOT}${EPREFIX}/usr" + mozconfig_use_with system-libvpx + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + + 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 + 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 tc-ld-is-gold || 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 + + # 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 all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.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 \ + >>"${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 show_normandy_information 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 firefox-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla Firefox shortcut." + elog "If you still want to be able to select between running Mozilla Firefox" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi +} |