diff options
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 199 | ||||
-rw-r--r-- | www-client/firefox/firefox-103.0.ebuild | 1282 | ||||
-rw-r--r-- | www-client/firefox/firefox-91.12.0.ebuild | 1236 |
3 files changed, 2717 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 4fd7eaf0845b..6d2762931af9 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -106,6 +106,105 @@ DIST firefox-102.0.1-xh.xpi 418245 BLAKE2B 98dd31f5e54089e623e9fb3f27be33b8e1fd2 DIST firefox-102.0.1-zh-CN.xpi 566194 BLAKE2B aa405e8beb475726c1a041afc455858ecc52a2f9a26b98b730bc88d51f8067eec1bf9772c361de47d9c1a6147302c8e5f05f266417b49c6bbaad9d21fa8356e9 SHA512 f408b895ab5fbde63fd764a030ca6b54c387aab2bfd106eb146802378130a15fa867ede47e9e7afb5934488a648777b21eda493e9aa2189b3a03b3b4378f020f DIST firefox-102.0.1-zh-TW.xpi 567164 BLAKE2B ae898adb1bba36de80168f2a589affebc9e78c9db67cb3d26bade74686b5349bf214f2e7b1b7818f758c14c4ca6c10bea4beffc85ca9eaed40774808947f1bb6 SHA512 fd38490ebf8d4ce2479d943e840a30b246f54a8fc4cc804b39a7286355f37b55a20c857ad4752b71d1266784fff5a7cd196048a9447f9e65fdc2580c252cfa1d DIST firefox-102.0.1.source.tar.xz 477609884 BLAKE2B 20ff263286f5e14b3c69e09e40fd102a726b7396f5d04a5ae982a41212f4e1cd07d21435631fd655698bf03071118555a3dc53c4a889a323b9d11be2c993ec74 SHA512 a930d359fb81e473b963a93f6db5110871e9fd57f6d0f352513047d363d930dd4811e8dd786c2f6f3541c3871eb1c0169b718652d9ee076fd13a20f52af30417 +DIST firefox-103-patches-01j.tar.xz 17936 BLAKE2B 64c4f74c7e5a78bf9107e343384868084a0d75181d8068db1a5f782434f884ac03b33e03666fa53b9a48f89cb6ce8ae6d83a903c66e928bdca99d24f6554937d SHA512 1b9fd0dfbfffebd8c43c5ae80cb5fc5caa5a1658a3f287342709dcb7a92b9586c3c2c7c33d6dc68dc4eedd8a2d5444f4a2d6f58a510b74e144481e33dd88e54b +DIST firefox-103.0-ach.xpi 454180 BLAKE2B e67d540246e321dca27cc7bad4f7f7e537d1da2c8db5c54143045a47568f6dc0b298d2cbd07dd9a6aa2aeee62f00759e8cbefeb17fd34399bf5ff0ad33424b9a SHA512 9d0bc239526b0ecb4f920b184fdc7682ec8dda7fb43b96dfb199ae94db9041326598fafc2676ce8e9f48c49f459f4ad6bbc5ad4166f3deb465cd6673cac6f84b +DIST firefox-103.0-af.xpi 419562 BLAKE2B 85518c77505ebfd1a038f811b69052454e7675f5ce99b7708532925b6a246d3e28fc35946a91e529da093b6e4f75665163e4a89841f65e4fa6167fe49895687b SHA512 c4582ef1254141aeccc5e93f6ff9b1405e7f742e5d766c6ea83ee68ac9f2cb4e9ff5960cda5b92ce9da6a933aa71ab00e40ee00e006640129e69463fd7f53e73 +DIST firefox-103.0-an.xpi 498026 BLAKE2B 13ac12f537bf2ad7762841dfb6da5fd0a33445b2e2e5043a02cde7a74fe802492849607516ac3529746865986ba14d156958a30d47454a5b0af737ae05688eed SHA512 7f4fe332a6b33c4da9aa20c3a51de759fccfd47e051751b32473b9803319587c7cb2593e6d6ed02d702e317d59efa3e255ec3a10671e3257d7299644dd66003f +DIST firefox-103.0-ar.xpi 561675 BLAKE2B fc6a5a854c978447e14049f6634acfa42cb197945027c94d99289104a74d77d740199e25bffef6631e0ed284504217e5f9d351497bc73c9c1dc75457e35acb7a SHA512 147870082d90ca54afa470fb9397d98ea04f6106f9c7ff610395b4964f4707ed0a01b28a8893b2ef68a51e4219d042fea3e9633d0cb4f540b7d0b3bd3df79204 +DIST firefox-103.0-ast.xpi 494286 BLAKE2B 1e345030fb9ceea95f501524f65c23fb27c445974c28085f22e99a3e47008e8e6bcee3f78ab4275c5257109adfbc8bf4c1f70892654528a2de26da5dd43a9889 SHA512 2eba14b4c83bf55c1b03943e5bb25d1401c659809a4b5d186917274ba91a54a6801b05a18eb517ab672c7d7e2491573674e6c62d6b61426f0d0578c3217147c6 +DIST firefox-103.0-az.xpi 485452 BLAKE2B ae5246f5fec480702c88268f2249c6110d472f885e743923c5b11c4ea970c88d0d6bc75a17f42170a024636c15af6ae461571292c6a7ccfa42d7f79b6ff44a8b SHA512 de5807ea5e3c240691a63632bb6be5d30d7b1087a33230108a8a5041427cb1787d0ee45b2831399c600574ec5f208b076493804d8af8ee5e791090d4941d6502 +DIST firefox-103.0-be.xpi 625932 BLAKE2B 92f1450d7e3f59b840ed37b4fa6f433e5f393811288bfb42c8bc9fb7229696ce44cab476d6b018941dd1f9e7e28106233b7c747f365b3b4d406470ef5d46f1fa SHA512 0a29dddf1df17985016e180e2e6f12b137486599602a2eca7bd856ef0003b226d48a94163a97bbc6f7bf4cf271a29aea98ed9c529447ed9d9689079da19ea356 +DIST firefox-103.0-bg.xpi 574190 BLAKE2B a92ff339c6f6fcd7e9400e110db89162e7273d1389d3592fbc9b9bf0fb0c13d03984120cb796fa0398155b24a8c194307f0b3d8b8037ec7da9456c8ad1629c1b SHA512 90fc1140a9c50b5626d43574caa87db93449449411b00f25bf05ff3d63f4a4d718b3bab27b7edfa1474d3eb90b257c3cd6c784a0c7c06bd98705a8d83acb2096 +DIST firefox-103.0-bn.xpi 576225 BLAKE2B d5cd81a37225d644eb64e42404505de27b498688db48c5fbec1674079844cb2c12c61ab136e75499df32ef7c5378e9a90773ac6ad8eb479c5224807e5c5a5343 SHA512 0ccc915b43f3e93da06036a3fd87714436feccbe8a0f6a33bbcc52b6eb3be4c6391fe29a783515097e35632e24bd8bb075d22e5ee5330d935af5300354fd303c +DIST firefox-103.0-br.xpi 532117 BLAKE2B 0dcc378b81b001343b422e6474162057fa9801883fc032c0052b66c16beaeecd4db39bced3858bcfd25447d1d21508b8d8916c7fdb5d663583ac80e2a1069ce7 SHA512 ab977195985135b55e975eee10402319b328b605deb9d70b7e13a13657aaefe80f5d69083b28b8d02c65322fc8d2ab4889d1b0214afcc98a4d6c2ae0f9d2ec05 +DIST firefox-103.0-bs.xpi 462888 BLAKE2B fe4b442c255492a9dfb8221263efe26055c1b271aa95f5d0e3046b3641f07be1b6c4f765df72d83aa1da3777852772b41cfb26f797484693e94d98014fe58adf SHA512 dc1c28187793c6096461b0095235082e73178aa3b5e12016f107351758a62c6598fc6557141408a80bb6212e0f5b19d3cb6c575f032cd1fcff501a522546ad35 +DIST firefox-103.0-ca-valencia.xpi 537345 BLAKE2B 73b92fd25e8b6285e06faab9f2de71aeb9d631ce4fdc103b4dbdc49f8b362ea5a2a586d0dae24339d289f5dfece3e063f548fec9c47a1ba858686f936cc60574 SHA512 9ad4c3f268d3c9508ae417a0b36c26532116a3dc6572cfd4382aafb540b3843d1c724ce79695d7110f03808d64642ef52d1a646cc121f25689ba6ff438ad0189 +DIST firefox-103.0-ca.xpi 534085 BLAKE2B 695a9fe0084b3d395f4b2a26a0c11f8a45008b7fa1cf6869a78a74e2ac8499f7b26b06591cdf167863f07d78891b3ca326c4038214b299832d7f5002bdf9ccd4 SHA512 d9d12048c87058bdf87c54400bdf286cb7c6b78debf69d45e35c67aeebbcbcbf8541db9ca2b9c0050d847b35121041ed5a06f384fcfe107a95a6cab3cf3be52a +DIST firefox-103.0-cak.xpi 550800 BLAKE2B b7b165e902490ed79f6b25e7a2a63e40cfdb66f7080ef679ea98eaeba6a911ef4503342d7d892d25a6db7a50908cf4d2a3a31e527f8b0df9d2ef9e4c748a8a4f SHA512 fe47dbac7e41da05207b104fdff2535cd136194e0c53bb81ca3c63f9eddafd83128362c77f033d00dc31308881e896d53760348d41905714ad63385f183068e3 +DIST firefox-103.0-cs.xpi 567604 BLAKE2B 3b4a003cbbfa848562a84cd18c1b144089528fce57b2687ad2b25fdf60cc4f8084aa0bed30c17cadb4ab60333d333f28b18b4aa561b898007633b75f71052c5a SHA512 b8a0c94e903500eb37e51bd26e3f664707db5a15690a3a1dd66b6945c80662de82ca25c7f58bfb8cea3064b8b7456f8297224b30f66825f318bc873d378f270b +DIST firefox-103.0-cy.xpi 545481 BLAKE2B b55d663b1fbd28a66c45ea34fd7cc67afc99f02e28330298d91bc37da81e876a9028019103a9f3e9745aae600812cff8488323eca70b8c522816f6a6679514a9 SHA512 24c415505ac11c632c383ead10223db392352f9501093e0b46f83861dea1cda23a27508da4990388e254d76c248e62aa42c1312af06988fb02afb1d1440d7df3 +DIST firefox-103.0-da.xpi 535882 BLAKE2B b377ee1c25c2d9d405080cd307e9f6db242d47b4468e8ae83c335961be312b87f37235d2465fc794c1794dc2f86e7fd89ef29008b0673877f675c988dbd3b2e7 SHA512 c05de859cbc20f1d68c5cc3361857000f9aaf31f358795ca8e6167263fe1bea9911a0acfc8a82352edbad940d9822b3d1d734c9760a3d4e208b0eb9a71f0777a +DIST firefox-103.0-de.xpi 555983 BLAKE2B 7a3c54b5dfb20c1f87971ecf820ee42cd94ffd65666509fb8ee0a30e06dfd61e829c40330d74444f90b5379a7563d37eee7f1308a156024332035c1252da56f4 SHA512 72e7bc5e8f6e91e080a03849c781fbd21d580ad1629f700528defd62992e34a66f3fbc00be59cf5da2514587adb57dc375ec23d9fa000ff23f9a33c615acf8df +DIST firefox-103.0-dsb.xpi 569470 BLAKE2B f52b4920e1e0d800bd77959656b74ddcb547de8fdbaee1c53a9c82eec6d3892c2929f4d146cef1c8110bdab88d963a0952a11b0e0e40f977c2a65603ae219f6d SHA512 7d3ca48b6a90689d7d103c0fbf376cb5b606eaac99d6e9589760929372ece770fa51bf88a12250191452cd48cf86916748febabdb65e4b0b25401c37a359d2db +DIST firefox-103.0-el.xpi 640794 BLAKE2B 3c9f5443340d0e40834ea8d469ee52afd1e92742089ec696886e6a868240e787ba83c073c6126d1bb8daa9eeb28e770059d880acc6d21ffa56a029a01e9350f0 SHA512 e6e87c4cd6c4538397a735ce98f84a9fdd43a3eb1f6dfd56115bbe004d297032acc8011e1d8f1fcd20ae538b2b5ab49c6b047a4393e8395c475cd9381a6ebdec +DIST firefox-103.0-en-CA.xpi 513837 BLAKE2B 4f7ec3418d14d8ed12ffb32be4dd28517db12228002f6391b4878759af828501ae1d4b61f3dc1b35cd9fa978b96252b3bafdd225ad23b6152aff121dccfa0394 SHA512 dd3de690ab566997fe566ad8c04f416f924d038e094c33e5d9c30eb18b3b848c74c89c7c4b47893a4e64196e724a1cf8c0d9ed5cfdeea2ddbf8439daebacaf07 +DIST firefox-103.0-en-GB.xpi 514045 BLAKE2B 312b6bc40c7e191cbd81844730f89c4a704b6cf8fd1e213a0294e346ab93af3c7422ab396c4fc2d61f3fc0b2899b29b468fe521cb353c096188298f1c865d698 SHA512 1b27aa14acd2280080e416dc41961f0d1793ae434561d030c415c8611d7dfb59dc1cedeed40dde36a1f4b0a8c47ab67ea66a6993008b5f858cc56dc228635eab +DIST firefox-103.0-eo.xpi 540156 BLAKE2B f91e41612fee0788724573e8efc58c701efd5cb0e8e6f3a83651e986ab25968365576c70387c6dec479db8427b3cc9cc9d0ed3fddd3f384de075023b45a73048 SHA512 356b1bdd1eb8492c0ff468e90d248c2efe6804209e55ee1bfd8aeac4d746631492a6c83c6b9973450cda711937eff1f40d7dca8136266be6e6705b57552dc61a +DIST firefox-103.0-es-AR.xpi 550478 BLAKE2B 41a9ddfd6cd8f8f713ecc294f0369fc32faa681f765f8f57443dab0c25b0bdea52e4c166a6c8eb640f4391581c5d08f1f3795abfa7ef834826ac2224b1311e87 SHA512 653de5a93825d88a5be1595b988e99ef07d2c381ffbe4b638cbc9329addfd8756129ced971242bee2c7daa8232092b989e46aee04e4361d25b504dfd3e0929c2 +DIST firefox-103.0-es-CL.xpi 549850 BLAKE2B d12ebb50e46e9535da5fb940a980808a3ba96539b14e2a4cf9893eff004edbda1fbfe40fc067a236eba99cd78b9c3df66ac919deb8f616974d810353b41a9ecf SHA512 34c3842f7d5d8ec80a7e4c18622e64371b2f5aa59c7e43b72885c96fa58c184896ed1f31e8d20be06184bdb6067e2a7a6bf987f17fd8cde4481f3654402d6d0a +DIST firefox-103.0-es-ES.xpi 541257 BLAKE2B 300dec6f29c24d4b89e96be4f564faaa4b17473e81afc1463f606ddb9c49c2ca2cf0bda555f911c3eb44dedece7704999811cceaba50c4091e722a924385c522 SHA512 7c67f146ad6cc9e07dea938e77a07e7b2d3bb6e76efc93304c1fd4ff6bb62d111232b1a2949122572b00b4092de50dfb10e3a4593467c1c14a7e3901990eab33 +DIST firefox-103.0-es-MX.xpi 553698 BLAKE2B 64695b2e2cf0fe2e7b749eea46e7d7ed88651cd58511efae5de09a3e59c16cde9bb92e01fe9a8b6e4472010c067f4ce9b3d7d4f853b33fd3976863b320c49a86 SHA512 3c0c987d2452d0f0113ec804045e9e8e18fbc74907ea5b2d90420f509a8c393cd8b6923aff6c6c9df17d039d4127d405c92b4cdd64015ee7a8e0170f687bdae6 +DIST firefox-103.0-et.xpi 530726 BLAKE2B cc205ec3cd951b8533580d7c5a08d30c7fdaf47a57cbea7cc627c0ea86a24b06443a02841e4fe56423c7a838d42de69169cd1aea836cb7dd754250f31c27d840 SHA512 4292aed7788599d90d61fa90977e855a1a565d8dbe8ae7c524fd0c937bd1d724d3b16cf02430de7c59816bb0f66b251dd2c6592693127be8616526f196c2eaf5 +DIST firefox-103.0-eu.xpi 540016 BLAKE2B af25871d271d7dc1ae12d525dbb6b41fe8f67d9557d04c58b4fdf29c8a3836cc0947fc9fd17b0d47b4aba94232e8b0b2a818afcdb686aee05e84d19e0bc9bd7c SHA512 b0ee85a92e55d02716f6169b15402a8de671bad3ed9f18d01fb960009ab7b4cb19a99c84cc4483bc2ead90c953d28e54f29c7085b2cd036c7fdce89f4f8db396 +DIST firefox-103.0-fa.xpi 561838 BLAKE2B 8ddc0c3e21e89ab4b5766d53e8fba9fe597aefaf76d88a9b090d7fcb1421f304f9ad1e744060908dcb75d43c70e9860751b5c9e710d68929f501de4ff23b01cc SHA512 0c946530f45391661b9f38f7eb056c27b7b744843f8b51d0178862b575b1f5fe1c338c7ca27f40dbe49ef4a05056468d5495d47e6e39705d766a7de9b56b10cb +DIST firefox-103.0-ff.xpi 472341 BLAKE2B 27c0fd7335ae606ede1fe6f21aaa340d21b2abd342e692b5d1f34d5b781c8128cab2d7a4bba98b4dee9ca081dd599f29b141cd9ba269acd69ed6f418dade4c3e SHA512 b5fb20b90c3c5468aeb32112e2cdf902bcffdad1bb45834db97a34d10fef2df1af5467b37729268c018cf3a2b715bf8b31312b9fdcc2046f2af620f691da9640 +DIST firefox-103.0-fi.xpi 534459 BLAKE2B b737b96e20151cbf722b400e63ceb22a9506168acd1359b750ba885743903b3fdfc816abe74834980fe3d05758dec1ef2c5a3910f4383d6f6c0824e97b4036ba SHA512 4a056b54f20943d9e7e41ecbefac43921ab39e4a80b0d272821b3d41e2229a102b4acf2633306bc2fcb7122c656f6fadfe369da6949d53ea3a7dbf8a9cfd8e01 +DIST firefox-103.0-fr.xpi 561671 BLAKE2B a31e688462d777e5f5d622130dbd626786e4cc718a9ef6025bc341c17527b0c3b94d1d30ed9fc8cee548a06d46d3d463adacafba3e3831a49cc1ed6be9e741c8 SHA512 a766ecf77d8806fe04253c4d3abb4c03b25c118d357b6bae5ccbfc47afe68ebdf03fab7342d1f34ac8d6e31557566852cc4e0e899f53eb0f947abc16ca2f099a +DIST firefox-103.0-fy-NL.xpi 546740 BLAKE2B 78a2cbcf9925db0c1d22ceb365268e57c67b913ad0889d93cce63fa543923f3895b3802e9178c9f7db4a75c41a2d30a86d21880dfeec46bce3482c0dc6bfac88 SHA512 3c0a6eee201c68b3a0a9d3c199d8c3ca0136ee72d4ca81f9b1827ae3cf372edf97f852786a15599c89aacedaa188d08d35cc5f283be9ce7e3800e81a936e4efa +DIST firefox-103.0-ga-IE.xpi 471798 BLAKE2B 952b792cddd7d3a29e9a263a6597a0a3a144905c26f5fe3e1d00ec7720936b77a3a706451c36e22b017c933af2e0f3013c27e33d02c37cbfffc82a0ee6f58bb0 SHA512 8fa4e6d1a56f9ea72197206995d02725b07ba92d0f75570ca082817e3f00795bd74709cf29f9ae660635897588d72ac2b8314bde816fc0218ae5db25f96b931d +DIST firefox-103.0-gd.xpi 533651 BLAKE2B 46828b2f74ad2214620fd5ca21ed014817e9ea03c84d2e3d60626b8a72220717b6bf95088e624c5e87c8eaab9bc89eb3794feb7f8504c6db3a628c869858661d SHA512 d907598e8dc90f5253ced27dc113b41aecb9395a945ff2b750e9eb673bcfb0450120ab4e4b7b746fd97dd16d0d7a9549728839670b9d3185a5ea69079c39f6ba +DIST firefox-103.0-gl.xpi 540047 BLAKE2B fa2c466c86e4f914685fc4379aa7a733bcd21360318acc7a350777380f82c4864410b29e84f8c6d42e158e363ebc79a54f57767b71cb48f8fb1077362a7bac4d SHA512 c6ee320a99ee02044f1a82cdc9b6e8fb4da859e96e9384b6277dd8f4ffe4b995c708f277fb8ce9957a754885cfe15712d15e7bb213c17a7b1ce074e6e8f8c737 +DIST firefox-103.0-gn.xpi 561557 BLAKE2B 0d6749ba29b5c863487a69cadbf2d6714e63716af9916a3a95f2cf759c2339c2655a91dca9480fb4a6f4a1e89efacd1bb47376e2e093b1b74dcc248e2255c013 SHA512 b1951cb10000b01f2112c4565ea6174ea8015d035cc61ee1c83e6a9c93fbfcb60a5c4f5c4a10649b47d8da5c9e15dc38488317e659862c9ae83535a06acc5642 +DIST firefox-103.0-gu-IN.xpi 526876 BLAKE2B 927890b272bce0398d94db6e235d1e2422313be87e3f7fbce20df750be936d48b55089a769d20486cb87ede4c04b690604ee003409b235a05300439b623abd2f SHA512 58b0fa54bc18ffc190b51647d364f55f9c863bc703bba1ff192c248d24db2c76d4caf4d06a2c9c103f69f0e12525d79f1160162b44b0a39927d9f52bbd24b93c +DIST firefox-103.0-he.xpi 559703 BLAKE2B b47faa07309fd02bf180c817f2e2d8a68a313a00f8716d398d495dd560dbbb123424a3f25203f7973aea96dd3111c486222b28b11e4100a20364bbfe34d80d6d SHA512 b1bd5f66bf574280a62e7804f554c6dc3856110993a318bac54c4384b434ac328208df131d9a055a4a1acaafc6c53dfdd58b383f432fb9dba2f71a2a25c134b8 +DIST firefox-103.0-hi-IN.xpi 556912 BLAKE2B e5484dbbf59a07fee9114e4579a6c8d88c5c7a6b3972436c295debb67b67d1af15d9a317ecb6aa440f8f1bdaf44028350a9edc30c0f3e51c5fe667cd0f98e0f7 SHA512 cfb5d1daf75a6a6bac34660dd7481b3ff5e5be52fefc2430e3aa2a1ea44eda5bbfbbcfdda436df688fb1f236fc098d36236b6a7437eda088bf2dab828bcaf492 +DIST firefox-103.0-hr.xpi 530621 BLAKE2B 3a3e2fc003edcc1d50978aee740db6bc3659f4ee62d172fe0d8d89adaf96b0d63a78f3a62911f020af11e37a1a971c17adc350931cb3de94b62f7d5cc24fbfb5 SHA512 56d767e848ee25bff34940d32de802e988337f38fe96b2e382d44eaf70f4560f234bf56d5a7c0e5960a7a91d00abafc80d4e75eb9f6ef4a3d2c792894b4c44fe +DIST firefox-103.0-hsb.xpi 565689 BLAKE2B 5d1d12e96b70369aab0ddd7124bbdd45f3753c8b8680b536cdd6f0d858e9fe1d696c8f28edbbbb8e2f2b24b45a30c2db265930a48344bf6d766284ddc80530ed SHA512 f5f24fa35977621fa2e7d77bdc0f09fdd0bbb1155b3cdef044ad3cc4fab2223e76e875a9fdff430f50080de15a8dcd200e81597436a17df213a3c931f043efe1 +DIST firefox-103.0-hu.xpi 568980 BLAKE2B 39c6c6c2e8c2d409cf8413065e431bc4400fb3598cec426c7a073d336a367ebe93f16cd014a7594ee0ff04854d7d1a594e8088a3c76b992da7e942d0ecee0423 SHA512 bba1a371adcabf60a8c12bd2f4357199b5119d369c220e002c8d123d96c65c9102a9bbeebd3d16b1246443f0f7c5c32ba04ad9025163370251d7a18430fc027e +DIST firefox-103.0-hy-AM.xpi 581564 BLAKE2B ee4d4eed161ab315fffbe33d71470719e29ad45954a8f998d440fae0514952b648fb6772dc9e0534ca3cd33286edb9e28e6dfcc3c5e660deef149efa27b080b6 SHA512 e98eddc8f1103508b2989ba71261d62052aa8c27e22445976854fbb8a01af0eb7d09aafe35cdc18bfd978a50bc55ed393bc1b56ff0e5d8e2981c3cd13195edcf +DIST firefox-103.0-ia.xpi 535623 BLAKE2B 346cc6a85b6e22b5a7df02dffaba86884e50ca2dd4907ff0b6f7fd1174f5e1e3d6f22c52482441fd582d6e28b6e26eee22f4fda1c3e769897d76cfa69c9abda1 SHA512 2bb51dee578c5de7b48fc4854b2747008aa15bd1b7a43405135992891ce8b5df8b7412cd520731ff73ef900c6a601bb42c392a7064c5c116d04cf52e26419902 +DIST firefox-103.0-id.xpi 532809 BLAKE2B 3da30cbde94c11227ddef07f9d7b70071a5759956fc262f1fc8f9b837b412006b7814655dbbe72378fc3e6e15cd015e500f7c9a8b8b74498bbad0a63f7e2e2f8 SHA512 4702d910e67f544087a0565b15c9c89b8758a923c9e465e7d00a4e3c3b65d978b9bd8386509f182ed5994715905bbdd2f4dc8ddf1c8b52daa5aba41632a7cf30 +DIST firefox-103.0-is.xpi 540838 BLAKE2B 523023110ff656f1dd9d0fabd3443d8a4fc31a5b1f3736b2ee2a688d7aa58934bab934069174ae24aed68de78de3032d41cec07b63aa4f2c37b9917c06f9bc54 SHA512 a0795f691c67f1cd049fce8b8aa531ad3b69adadc57f8ccca866e4f56c30bfc20187103dedc7223448bbb346166cc431d945196264d79abae20d54f0d35db61c +DIST firefox-103.0-it.xpi 454424 BLAKE2B a2fa1d2f39e2bced7487fb9df947a290da17cb7d90ce10109e1601404a4d880dd49e1fbb2494dc76b8de67ac81cf2b8ae2ed7c5149492c055cc242a310f0c84e SHA512 8c7d3af04c4417134cc0c7dd9389710827c8f2f727449e1f3f288fffe20e32fa50e048733d5c69265c8b6513dcb7935f719aaef1ab3c7f4fbc622cbbd1604bf8 +DIST firefox-103.0-ja.xpi 574511 BLAKE2B 1f08655891bc86256e08c95354c14f43f4a4e74f31352de7bcf7caf79dd2caa897417ac541e98cfea86997f996ce7d3b94aff5193400cfe3d05cfd88a442172d SHA512 b6b643876d983513a40df16f7ccfde7a28cd01dadf812eb7e1d1cae74ba8c5148df294ba031d38e2c402850614df82f7b7626d526d55960bc16a979da6aa214c +DIST firefox-103.0-ka.xpi 594026 BLAKE2B 60faf9dc9aaafdd108402daa8788d9dbe78596a68f7344c0a99cc9d07d78c5af32288d01a175addf026bfd95b8e0bad07dcd611bf0b3b61b9708aba846dfdc7e SHA512 2b68beda724ac86a87ca4dcc643166deda7f0273bb63bcfeb739a856f2852a6581c2c1fdcb02214fd80203e34e1d8dac305030ce29ebb236eb064ccc1dbfe4bd +DIST firefox-103.0-kab.xpi 554258 BLAKE2B 5792132babd2ba98591d73b0e1e9d65a630e418e5315e4baadf57eda3b9e9fe998701245c723c9f6340708efcb8da4f695400997bacea59bf4b69174671e8081 SHA512 dc2610292133539e4872be1a9b43b8544cf08ffbb698d471898a35f073dda64024a50d67d88e676b1f2db365b98726ea3a020fd1d41e0147d1144dfe94ac37a5 +DIST firefox-103.0-kk.xpi 616958 BLAKE2B 3388a8dd6ea0d13f4e7621047a44fb9a6d569ef4ff035a4bdd5b5659d03ee1351bae2eb92d8b169431e8d10f867b9ab24c1ee4c3b79213366169463e02465835 SHA512 c628986d69bc92e4313a8c3e85cd981a07f7dad119296aeeee3d53749bf3c07f62205935c36b29e4ad1cbb15108375b9c5093f59a684d62f6362101b4d6edd07 +DIST firefox-103.0-km.xpi 531380 BLAKE2B d09be94f66cfba85c66a89028818563fdf49ae8fcea38a1dcaf7a11371642578b532b71cab1219e5afbcf2bf83b3cc6409279a8545af85af283fe12eb65a15f0 SHA512 ca456664a58e09b30e1b1157f286348c23832f9637611bface4da58cda910a9fe52f0b783db69279e501d04c2c6df66c00865024ba322dd4f7e204eb2f356f09 +DIST firefox-103.0-kn.xpi 497490 BLAKE2B 16227ec4b20da8544d8a3418545b84eadeb8a14958effeeb2f68eada668565f1de34e9e7e6bc5170b065346a0ac283ef016ee1ecaa086f7690bdad3a5e434315 SHA512 2291597d181e80409c9b14de933a10ff2d61053b66a8e03783293c087c00d1e443c7d46f2bd1e914fa0556c838d3e3a00855749abfd7a3822acadf51a5a25ab2 +DIST firefox-103.0-ko.xpi 581111 BLAKE2B de034001a123a4da2efaa3af8ce08325a1b5e59a3bcbdcdfe61aabc072b728ffa953b6dc96b0a533f5a56719dc57ad62fbe264a08cfe347b72223a164389160e SHA512 435df17768947439b0af7e46d49d3c702d2ca800798fe7861e8f9c9922d5bacbad8e0f49db250130d9536bdfbfd86709021e4a62628084a86eb61eb2ca2d9a99 +DIST firefox-103.0-lij.xpi 470241 BLAKE2B 14d3d1cb1354bbe38b529676b1b75c0ae8bff484e5194368a7cbbfa0213e645f6a4b8279f5cdaea4734a8a7bdb2e791c9d786782bb7d127aa2af216923828887 SHA512 0e6dcf9f2ebb097a7893b5134f762614495b3c5c25cd2a81180fc9dc653ba94ef952d85a4ea0424c9547f565c976a1deebd237408dac1b9c03143675de16e100 +DIST firefox-103.0-lt.xpi 562005 BLAKE2B 0e68193284dd1924ad5df392b3f4d839fc0a0d7470d9bd904ac43e9d374318027eb8671b8b9a046ffed2e74484607fdb3f7674c8cd2328fc32e37bc00ef6c77a SHA512 32ffa868ee98251b04f14484905fda22b47ee882e21566db8fde6908806ef5b9e1f6ae7bce0fe4cd1d23bd5a6f52b31ab7654b647dd80da50a9132e5a7f3f612 +DIST firefox-103.0-lv.xpi 463412 BLAKE2B 3fe7a2d1f8ebcecb75b48e6db1c0471c4556054b09b34ea3d4dad4ee7ac199df5c9b814d6cfc2b97586c821955fd78560f6bf90f30f691bc41487f2a48812094 SHA512 1ff45cf9f49ea4603efdf1411f010536041920a76a44e38902171d45938631a3d499e1b5ed1aabfc5188d41d538e5117f5e79bac6ec3e95a45e91fc555a0574d +DIST firefox-103.0-mk.xpi 474768 BLAKE2B 2dd37eecacae7a8b171ee050d0741ea2b6ef4d470ac182bfb9b92e14671e575d6190b0f6291451eb972aebac5c29b18d1a69c9c61f95006e3876b838b29f9727 SHA512 0769cb8f7d842422e27afc24aadfb728b7a0953e845759fb44531e554aaa9f2724394d3388f95563798db536ca0a67bf838ea23778db42e76a24c1c483f52a69 +DIST firefox-103.0-mr.xpi 530630 BLAKE2B 93cd5d476acfa393b9ebcb116f55f6883e54139158af1315ed2355b28d5d7b75b335a21773e1913727163d8989932f1859665068eb6b0492101e916d2caef03e SHA512 60c472c7764692355d81b3ea54b16a985b653f59067d320a13117ae93e816abd64e84babf8a3a02d9154798709803c7adfd9fbc074fa4df069526fe31779c7ca +DIST firefox-103.0-ms.xpi 448408 BLAKE2B a0f2f1bcf85abfd595886b47728e6470d2700cd037130c313bd644806ac2dd316a12f7475799d57fe9814576cbb3fc1425b2e039617cc9debc696ee684c4a15a SHA512 602d031fe939b64f37eadefaf26313b7125cb8f9096ae4b96107cfeff04a2bf9ad3a8b442ba274493565d43e41234d7316bfed74c08f0782b29dde464e95094f +DIST firefox-103.0-my.xpi 510283 BLAKE2B ef084c5e04a9fc54516f95d18a6bd3f2ab16313e61b5d784999cb0d317b4647f3764c34edb4e5f48f3f9e243d4e77df9e525a48b36b5e9c12934211f45533d86 SHA512 b6b1bfc7ef95b6b3f9f79d4999902dd382c4a753719bd8bf782dcf70563c255d0b04e764d67154891f0aba30c568c4cb6b80b3ff316ef63beece06ea82eb4769 +DIST firefox-103.0-nb-NO.xpi 533222 BLAKE2B 41d138d029a20fdbdcd39b91d7eba90c579db9e7ed6937f4f20aaf4bb21510e2209ee821160e03fc10b8023eecc191a902a89f5299419385a4edf2d5e761e1ac SHA512 d2960991952a886f34f0d3a1cf9c37363d37ba5f9ba99f7219dc75ea6297aaee2b5905ff5e2190f69cb545bee65e0f065e346d1d86150057e0b573897c244bf7 +DIST firefox-103.0-ne-NP.xpi 489026 BLAKE2B 170ae14a33d9bbb29c9c0675e0b0d38a9a23e7cfa46aec58fdd9d776fcc184856f2dc5073dcbd43bff43cc122431a0c29a7f784d8d921ed5e0758c6cca4ccc85 SHA512 0c7a58e36dfddf5b11875af33472a5fd8bd3f2580291380fdf39781978c2459cfc374ab85cfdde5cf6b5934d4d72194f3df71314b370dd573d9dec7a8eb15c98 +DIST firefox-103.0-nl.xpi 541038 BLAKE2B a4375b84cdfb5217408f3045436713f1769bc0419ad5a040aed13e4e79c57794847e328589af107cb2d815aba425bbe8d6e7f9c204bcb5e5220f7cf744c63adc SHA512 0111a5d245f8ccb5f53b6d855d1122a9fdd5163c4405c5b936ee42fa987c5cd10e42d9782531b89bf2b86e990bd011cd9c7a8020c812e1328274ddf755274524 +DIST firefox-103.0-nn-NO.xpi 535170 BLAKE2B 3e29bcca2eaac42300499139625048ce5e0523db03bb3f34c30e61a38dcd2223b0fe436113957a5e337a412351fdd16e4df33c0b943e934791f412cc39418c5a SHA512 4518489e3b12f3c91acca6d408c279e7394e5814f063510c48d4c34397436ee740e4a89f2df1af6b4fb03b0e300ef8b8895ad960d3dbf8d7c257b364bc501310 +DIST firefox-103.0-oc.xpi 556224 BLAKE2B c991eb07e41605c9e2d8ec8bb6ba9a7e43199ed53ba05e84cec3d4d7a9bdf1306f3bbe49fd616f275db4d17541d56d00263165ed7077fe29823b3751e3a2de69 SHA512 217d89393072e4eb782c8c1b391aa85009c93e24fc63ec66a8c62f00a9aa3f393478e7066cf8749743ce54750eded8b0d8291e0c5c5462fa8b93f36a0a279c9b +DIST firefox-103.0-pa-IN.xpi 599783 BLAKE2B 4df8e9ff8f4f40f17019281fc1482999625bd48b32b2d864ea864415afd0ab4146778038a3f19f3bafb5a7d78f353e73fc734459e596c41cf9068a0832916fd1 SHA512 5f5310c72ca2906de6521240240c5df29154b2a5345e6fe3d7f13b7881912e0faf1427ff95686fb576742b59069f7107478e871f59cd74cd1dbf08168a89a7da +DIST firefox-103.0-pl.xpi 560469 BLAKE2B a405409d1e627fb7e9cc7685c99d1b10a65e2145085622c53f5abdeb6eeac7281a6dcdf9771e7603d4b3613999ba80a6b313d4502a00ef1b5da7d62c2b42eda4 SHA512 22a5360c7cdc2338df224c188e8ebab66a0ecfe914c2be1be11ac977b48fa2797a91fc673a28d5fb6c2c4d47942e48c667523ace29f18a2359a1f06e111f4f45 +DIST firefox-103.0-pt-BR.xpi 545993 BLAKE2B 0b8785c60a616e1add399426715ae6ef639409b735af10d69f0a196f94562255d17059611bdeffecb71370fe66acb350c739d3f56ac6434e6371dc2b87607170 SHA512 f8cdeb1190190f33d176bf946bb4e6ceaa5512c4240d6b5569431f1ab6f05c8fbf408ee654dfc7c2aa8ceee9bcb18adbacf38639b077f05cf5810edd6be07193 +DIST firefox-103.0-pt-PT.xpi 550405 BLAKE2B b744bb3fc09f75c0241d61e10a9de04049e6d4cd7fd1836bf33ed1294ad4268af292714f5e05a0ab8fb2d7fb820bbeb867dab19831c72d2c6518c296782f8965 SHA512 e475de833d1dcaefcebce330bba28eb3c8414b37394210e6eb7120fe47a56054380c0873448977830e01800dcae912178ef9096abdc465ec9f817a0ea093ad30 +DIST firefox-103.0-rm.xpi 539552 BLAKE2B 9a43853cb41ecc64dc00ab345e897884cf1bfa675ea4ba73545b639902ea3bb9c767677e8ef44d9a5b780167928aa435d055a328911d5d0c54bd670d2fe58c10 SHA512 1aef703589b4fd169dcf775dde432fa7982a4d662b45bf8631afee2fea4d06cc4c83307b5b4fb0265b0e0c5369f10bb3572128a6126adbb5dfd3239f274bc9a8 +DIST firefox-103.0-ro.xpi 528566 BLAKE2B 15ff8468ac0df29ab478553c7e18e4268f92d4303e074864271b2f098e88391bba9a4588fdaa30ee5bb0581bdf501625c47718166c93ab4d598aa03d72a78c06 SHA512 d27207dd29c485bf3797254f4c1704afce261f9d10a4240fd6852dd84c86c9360dcf07031d1e837a0035c564c3074c004b978e0ab048087fcd2bbb2ecad9def3 +DIST firefox-103.0-ru.xpi 630081 BLAKE2B 9ea8332c316ee53044327f1b2c42ae576b8c463c780e77bc9902bab1a16a95ff1aeac601ab14f357e785d98ac38d6675167943a4e0ceab5bf62af08e9456bc3a SHA512 948169bb81be21dacb96d47803532e894dc4bd5d2d5df25a1487c8265ca074eb18981a069fe58d89489dbfc73d036f890f028410a60fb265a65ae334b3b38fde +DIST firefox-103.0-sco.xpi 496686 BLAKE2B 35a0165e8ba7a06d809a860c0f2adda3c44aa2d4365ac735aade885f886404dc49666af1ca8f6322d0992b57dd8a7b1a6e37d5ee8ab728fb33064a337be3c8a8 SHA512 206c43f76ceda1d25928f31c30b1db93b2f8604e8f740c906f254020141134293d3e950629e91f782ef8ee984118ca71bc7727d24a613be9efb939a700e135e4 +DIST firefox-103.0-si.xpi 485250 BLAKE2B 2a3460279152b5cbec65baadc9df5af9c0239234c9d1c7e31f56906260a66b2d53507e43f6046a4352de2fb228ab1b5551820356c1d1665d9730f6955595a3b1 SHA512 17374ce03c2c4e8241a15a9f512d3142d9e38ae71dde1d3e592336784aecf49aa597e641188275da97da5eb0769412681b28f69c222f60bf53ae518e9930e196 +DIST firefox-103.0-sk.xpi 569080 BLAKE2B 497005662be62a57e207388ef182f046501b84b5fb6ee4aa46d0c939c7b34b51d264bf2b2f317c14f60d08619f6da991705a10dac37ba79b4ad98ec3fb3b784a SHA512 2a45647583019483f8041a2ad83a211fa612772cd23aaadb36ee8e69bc2043dd663479fca564f702402ab2171325c7ac13cdd232109f706fa2a08ca679fd1fd5 +DIST firefox-103.0-sl.xpi 542270 BLAKE2B 7a1abf6d84cab18f84e63a4311073a9092c3733a016d8d4698ef755d04f5ca208727e0da60974efc8a3add1deffa2443d18e0872a721a4677010eecb6f128c18 SHA512 e17f58a756e993e24ae8f822d36555513a54008ab5778b0929212c8fe0a2d3d0d272a14d45f00631bc4a4e93c4b277c0be3539e394f5168f6dbf7b45831a124c +DIST firefox-103.0-son.xpi 426217 BLAKE2B 0c252ae8e28ca80113f109a5f6a761a5fd0b7f2455d409e03f3352b767c413c74be7ae053915738f12fbe47209552f4a62637c29c5c211958ec4acc0905a3a2d SHA512 25360b5e636b56f45de6377944f8038124c49b28ab0ec975580b0eb0fb0d4e5940f134672151dad38569d66b67bdd82301f4ea3c4e33d0017a6805136b459d0c +DIST firefox-103.0-sq.xpi 557260 BLAKE2B f3dd19957d99d73b02ede2b6e28d9061691c037d7a066e27855bbb0f7251d7a46d9d1b3d1f198136452fd2c3530a0933f9654ce063cefb9800d119a8c1dcd75b SHA512 6ed08c308e5f5b150f95f281a0196a576f57653a6c12717aef07fbb0a34ee3e1c65644e86b4fc147d21827c8b3aa6d7dbd92ab72e565078b3e13b32c6bcdf413 +DIST firefox-103.0-sr.xpi 582542 BLAKE2B 4bc38b8454874f1ad087b6cc2b8142178f1ccdefc88fa589a4542faa7c9a75bec9d1b019e4ea16aa0e110a62c95b6348275f868d170ba16eb4c7e844a42f5196 SHA512 763a27867a57aa1af4934e727465c6032179bc77b0d183f89ebeffbc61a3154e147ca2ae35c2c3afd36e0e69f8cc2bc66dc86aa973b9c21ae101c6ae58af3787 +DIST firefox-103.0-sv-SE.xpi 542868 BLAKE2B b7d23979e497f3365a30f6cd74a5ede2011d27e02f6b6f09a42152aa5093f9dcf1f76ce1108a2ed425ac289973c24f1bc5bc4138f3c61ddce08ffcc85728f490 SHA512 353fa3c14f3434ec9a973f7fd0f935e41421ad98698604703e856012d88f363e8c1c4871c3120e951dbbd46d40999dc744fe0bd15bf8e14c675419dbc1a88e85 +DIST firefox-103.0-szl.xpi 508459 BLAKE2B 09d32fb4e47512881535a167d4a5296b82001e250fefffe36a9d560d6bdc33f958673c90895009e13abf7632dc02dd4ee98b9df390422050ac9257890c17f52b SHA512 bd456e0b6cf17f20de93fc6336522aed8c2eae9cd2cbfdcea2ae86c28779dd64e60a65d64439e4b38c3f89d77b49d793f8d5ac29f8915ff657323b7c2eeb3230 +DIST firefox-103.0-ta.xpi 510669 BLAKE2B 669681718b5e0b21026113f002cfbb8a91fd6548a97bde855762722bc58ec86967f2a97eb4fe9658998ec9c8e98746873f7153af8930103303e4c9c75bd2190b SHA512 d85ddb313acd2781b4868ff6a9a91f191da7a41c1d28be528167d59b39bd206f01887bdacf95a9d5f1af483a8dd499eaa71b49b1dd7cd52aeb62ba64411231f2 +DIST firefox-103.0-te.xpi 551777 BLAKE2B c0feec32f074c0f730ed0c087f3ad5af96ef688f9bfe4ae1068117e80f8f77f41e59b167a3a29f389ebec26ab627b69d080620d4b1acbc5fdfc504348b9fa95b SHA512 2bef973f42f44fabe1d280c6f2c0f0061d910f06f2d015750366f480a8e98afae5bf0b23db2d4ed765fd6827a34d9a5e6e8711f80b5af54178182fff81b48d41 +DIST firefox-103.0-th.xpi 610634 BLAKE2B 1ef6900e8bbdcf012c1230a588e4452bd352d7d8a5d9238e251f09d3deab77fd18327d5ebea422cace5ec8b326f2a28a4f95a01f26f746ade6a78085a0a56432 SHA512 91aeeb628b71c309ea9c838975a4f235188d61144bc334550cfc0ee77f8527d18c75d390cf2fd2c890122cb09fe5d361149aa9ee4e839f2cba53d21e726056a6 +DIST firefox-103.0-tl.xpi 518725 BLAKE2B 2dc449dae967fe01ea0bb2a3ce530940cb961ada3613c8ddd63423df9d654aa21ea4100ee7e824358072c80797b1b3833e1603c2d292ca583cf5db7e174c2338 SHA512 fd3e3d822ef987eb6a2bef1af06d5b532b02bfab9f30b2a943303dff94e035e4e00cc4a0b0894684e0bbd166ad93f1660b39a198c21e52e455a2c8939d552302 +DIST firefox-103.0-tr.xpi 555670 BLAKE2B b94e7df7dc36fc1ce95054d9b7e5f98c776ebad41c0732c3ad04cb1ed5867fe48287ac34b770b17a82ab65fb93e445da57fe0995b150fcef9e7c2bad45e7d989 SHA512 d7fe1c053f904e3ce278ffac760c3efdd280954e7ba923094e2e646a51fe8aafc432a1e1764259d6f4a69f57713b35e97d6a86ef140a43d31a289d2cbf239864 +DIST firefox-103.0-trs.xpi 488884 BLAKE2B 9067507b2929b91f2038640b5685f3111b27ccfa612fd575e4c794678a1bd1bf714b8ae6e35f6c1448e13c78f73c0175f47b9c7e18da1139ac756fd63527ccdb SHA512 f5ec6c01fbf0d951e851a794ccccad3909a7c8ff46aa8af19a4068acfeb1843985d801aa355130d52e37c1050ec4746a8042010bfc26c9dbda89a93bde786e3a +DIST firefox-103.0-uk.xpi 623499 BLAKE2B 0964ea78a573d514a27e398e819a0e5b7d4efee7c55daa26b2416deef2afe064d950b34c8c4aeefe5161b0268e4aa3b5929fab410e53460d59425c45ad699d01 SHA512 f55a1149c6f117317ea2b57841818b2281860d917b4a3e5c6783820443eb2d2a092654fabfcd07b47fcdbd6d0ea2e5545e31d833b795560b4301ecbd47351e74 +DIST firefox-103.0-ur.xpi 558759 BLAKE2B 19f8c0c4fa9fd3d2ad2b9ff1b71b13d446fbc0228450ee0e5bf5b691fcdc2ed7f2c78d7b56103ff123bbb12a0b1a9c29e9d8557508f5fcccca10092775eaa368 SHA512 4365a741d6703032ad87af674de9840c6b5648bbfee75a4714c039a0fb34d390e5a4f9158c64b45adab7186b0a8ced81c73242832e1eef0359bc869a87986821 +DIST firefox-103.0-uz.xpi 478414 BLAKE2B 37c096e036ee43b8208394e5b46e8a3e364321e8788a488fcf735c86f6c118a1a75c899e45af726818d14b9a31f0e75611e8d279b6ac85b76b22839178bc1def SHA512 9791dd946560239a0bd788e9595ea5f3b3d7698dbe75aaf6e3a60a0eb72cd269dcd30aaef4018c5cde03f2897d7bf1e17cce267869119086b87f89495f9d795d +DIST firefox-103.0-vi.xpi 576268 BLAKE2B c1d15f1c5997414bd966b1e4e30519814170c71f4ceecf94eaafe0a71733e6caa4bd41e58494f132997e3111e213aa96a26d3708cff7b1aaf4d099873ea231ea SHA512 3dd86163abcab3f081fda8845441d43aa51d4dfdfab1158c32504289c7e71d80fada058e6cc223843dada71464e236dd1a044411919b918ff0a5288a5a2c3d4e +DIST firefox-103.0-xh.xpi 429255 BLAKE2B 939711d49643893b976cc5aae107150e20bb241cf607b984fd5270161ff7738bca1302d4e722f1f7d0bce4b305e87ab223d9494e0806657380cd96367f9fe74c SHA512 7bbbd031be037b13f327bbf35314e8d1539589251abc830695b0e5d9938a968bed449202e7d3e77139303ff920d948e3313432f9b27dda118f15c3ad86cfe795 +DIST firefox-103.0-zh-CN.xpi 577420 BLAKE2B 00a60f769b3cb57ab9afc2465ee7b5eb90d53ac624aa4276397cb0fb41df5e6e17f55297940d686ca7c1eb453ad85d65b8c1a5138583ea4e358672f7098ccdc3 SHA512 8a45b12ff2a46265f4a7838417abc3afc1e8f23c32dc7cff3304d3812d575f914bcd4affe0a8240a92cce7ca42e4a61a5b7d1a79505a7f5792e69fd52b54b7fc +DIST firefox-103.0-zh-TW.xpi 578009 BLAKE2B d5ce598183b1e8fe76d96ac291b7bfa4f15d19e8abe5f048e28c5d6e7ab2db62c255902fbde43ab65342f6c1933246e3d284f8818f8b3be7b08c22bdcc4f5ff9 SHA512 17591afa03fda1ce3212a27f1521327f96607a8705d8354002f7c30f108d46adc7d9f1ed56c9aebf3a92f08e956d77b55d2e76bc4970fa9b1dc75e90719f7211 +DIST firefox-103.0.source.tar.xz 475708060 BLAKE2B a8f34699e0cb3a1ffe8823f33484c7646bbc6e2cd16608c74b36b0fa287534beb0aca88008fcb2482737e53edfaa989ebabee53555d2bd06b128fac513733815 SHA512 016c2f276fb94e5174626f7d8b1a821b2de0f5a07f8a10f00a7ea4d4285591b0c23dd3ef45306579de79b3dfa99ccc527224c33f3319f61cf088b1f4bd097f9e DIST firefox-91.11.0esr-ach.xpi 453206 BLAKE2B f639628151e4891ee209548962ca86de34f4ea124703db73ebb14fa266b2fd74282c256b74c8cb9b2f4fb0b4d41998f3d7b3447be4cf6cb45dbb231fe6b57ce4 SHA512 515e8424da6d1505480f15451c56363bf72471fa4d0e47b3e43b4cac261b088b82a85ad2f3234edfb8499beabf392e0636b227d0d7cc7285e544b1e2bdcdf395 DIST firefox-91.11.0esr-af.xpi 426914 BLAKE2B 1b999eb321f8bf49fc73bfe399030bdc167ba2822ed32e9ebcec3c6648a2c960dc4469a1dc9fc3553db8f3bf65efe5444aaa220bf50fa4d890c89b2542cdf25e SHA512 04bcc68b861a7c9b2e18fc4fdfde0247ff51879f04e8dba9c2998e0cd93ca156f8cf56fb63de63bcf92c56c92da9b7e0379ed0847d251faade20b9e1df968d60 DIST firefox-91.11.0esr-an.xpi 499896 BLAKE2B 115adbb6a2a916fb3281c2b352f29b560308fed65dfa7b215e3e2f35f7a90f527a7ef16d6066731cc2f802acf60d6d53f299e2c703d079ea344ff3c6fffe2182 SHA512 7f8f56d3334bbecb3be2f780a60304df06313a6d7dbd0fc3af2e6d5b0c93fe787c36f7a4e62364893f53a03815d7845006263b1000db56d817fed8be5903b3fd @@ -204,7 +303,107 @@ DIST firefox-91.11.0esr-xh.xpi 428173 BLAKE2B 80aff8feb3a94d9a2d8c12ae88c86a4e6b DIST firefox-91.11.0esr-zh-CN.xpi 575372 BLAKE2B 0a12fb1a693d232f8a7dae937efc226445887ca28333ecb619e1028fb83deadacb94326c412649c20f984a1bb926f46eacfb9bbc3d56980dc5fb9196b5ba6ac7 SHA512 7582eafae88d1e502429706ad888c16d6cf8eacf52632ae6344226be6098b88bef2b15bcb8ac0d64cb56f5e547233cabc2baa7ff8f34a65c30c3740d926317f1 DIST firefox-91.11.0esr-zh-TW.xpi 576229 BLAKE2B 5ef736cb63f040f40519bf1a267115b030294ed13a7d2ac49082f1aaae78a1335eb04b26ad840f74f459932ea88d9b6819bd49920f5815975dce70ccca550dee SHA512 2c2868a086d2e693cd157e68bd9594277381221c94ce56c9cb318bca382e6961daa2afc01386327676b384eaf9d28247ea7945b968caa66bc8d46c0ec00ce60d DIST firefox-91.11.0esr.source.tar.xz 384459848 BLAKE2B cff327378a1712d0dfb99e1a67bd63e958987e3147279af5f98ee9318fe91f42823bbc9afb0308638e42de789451b04ea895320a8c674cc221e0d4b0b1d80f38 SHA512 bff3a399c03bd1cdaaec0b6963b1558aa35b6338b6c02042ffd65fec0aedd344d01718692e881332f5f352c32da15ba09a20a09ee072200b47ae840bc0585a96 +DIST firefox-91.12.0esr-ach.xpi 453218 BLAKE2B 72fe82032f20ab6c58af380d52b996b1dfccbb53341483fcb787619801e707840110490e3d5d44c2e326fb15acd02b6970f70ce3cfed34a4094da0355f415a2a SHA512 e2d6200ad969b5ff1c0b5b12b5735cc2ed9e0a8d6ef3ea1152aa72b7e57c85d5cc756e304197560f9b38e6f41390ce19ab4c6613a7e3b4c48f55af7fc28b7235 +DIST firefox-91.12.0esr-af.xpi 426916 BLAKE2B f73e9822680474ff2ea982184e009adb9c2cc8cb9bf357241a142c4b5e178fd1cf3b59b5f14e60d5fc76b6477574b1f1742853e292c47cdd65cb185715e4bb52 SHA512 b818e45b0245dca391503a1a75a49fc4d376df6cac6e2edd7744fe2e8b91dfd7ac31e3125a6b0df530ca67200deeb38d29269622dc1fa8b120af207346bb9418 +DIST firefox-91.12.0esr-an.xpi 499897 BLAKE2B 037a56ed04712009c4b593996068a6d7b462d600d1c35aefa68c1ba6f05a0d12195a4889e8f8cdb5d3c5953a244ee0cb9da49aa48d85ec0d328c0cacdb8e1796 SHA512 6b849d10a4c567109d0cd7b8c0ce3392e25d26cc91f29136f5c83d59306ab2f5b34c101b48b11748fb6472329cd031933676618b3f1fee251457243109f47979 +DIST firefox-91.12.0esr-ar.xpi 559662 BLAKE2B 805478af34de8f943143958bf94383373430536fb10d3e900add7d802067cbe0cd8127e7f36506be3a909234d7e0ef0353211fd10d3234cbecd99f5b10f7a549 SHA512 a9303c4c9778155e9f45b25e334aa98aee7feca9b12b27a7be2f38198c0ad5e7c77a4d213bf291cbe9137218e3e43da7780dc83cd9ae9d32b1161705807a823b +DIST firefox-91.12.0esr-ast.xpi 498573 BLAKE2B e5a1f96664426a3b03d16968e39b6bd7b5139da10f7c62113abeacbff754c56ae3b4f6ea212d70c92fa22396508a4dd1dedb0fb2afb60690973572f6a3847b57 SHA512 a7046e41e905ea6f85cb1ff147c8f5c8292d45b7098d8c26fc5ba0748312b86c44ebbaba942351546454c2fd6c9267cc6a90a225fa66cf4ec7339d7a2464e731 +DIST firefox-91.12.0esr-az.xpi 489425 BLAKE2B fa34468fc501f9637cb6ef60f65c8fd43a253dd29311ab21943e846f7ca1fdb3f09e1e115e81034da2ed3de9bb4269a0e3dfdd84b50266ba698c73518e4cb9d4 SHA512 7d0285d68b068a3c54b14abaf01969978fb8a2e33bb7d34c277b967387c220c8e6bab815fb7de810f182db838ac464adcd615ca061153264eb38184abb2dbcf0 +DIST firefox-91.12.0esr-be.xpi 622614 BLAKE2B 1d9187fc8d0252f0fc0a548be2a4533e548e0e5fd6dc434490b3adb0f3d86fb763dc93548c71652c65507cba003a616a729f108ef1b1e7048180e3a2fd3714da SHA512 e447bcc92ff63050faef058c83cd5241ffa86f8fda18083e3f0b25c6643d6dd646b8e005a8b714da87314f3e92568bde36b10c13f88b541fae66a1127f87f32b +DIST firefox-91.12.0esr-bg.xpi 567636 BLAKE2B fa99f318dd05290f0e08b1aabd1bf9469f1c8995a23fa5a6254365db087f0383569c20e26b22a2862fa457b4c9c77b45a5e8e6d7a630469df68c3f620ca46731 SHA512 a2572075dd899cd9d5a8419dfaae834a9f34354ffb130a2cf93242346af08b48804bb7e56543667f0795908cde335df905572aa65a1f15886d2fd1b71292c7e5 +DIST firefox-91.12.0esr-bn.xpi 556815 BLAKE2B bed515a6af1edb3ec70c85ecd8c70126c48698482025deed2865aa412c8fa384105db1ddd287f71e4c30375ef334f855d07f0c0d53fa848ae1e56536187d0e35 SHA512 72f1cccce15d9c747d9d1505e6cf80093a0061e0d34921deb96680dae50bae48e9cf43808baa8181dd6852440f33ebcfca3c3ab8c4e9b3054abca8f6347d5e09 +DIST firefox-91.12.0esr-br.xpi 526252 BLAKE2B efa0046f6800736587092f638f90294ffe9e5309c011f80bf9b25fc168fd594e7bd036d57001d42fe4e4884ce5fd2f65a50c7082f166edd2998f77c1e8356cca SHA512 b915790d63bc4fd35fa2fcc900d9e49b482ad7fd3ce5f4fc187f016e06bdafed34ef7f877519af3382ab9c6440fc4875766e8830929aec9c1261e2594b6e3d60 +DIST firefox-91.12.0esr-bs.xpi 463561 BLAKE2B dcc4c816dfaab596a886e9951080a3d026c217bc5723522c28262a3dede92ef23931cf359f758d5a85b7b803b8b4762dc4439852257b9545ce5bb5bc4c6b30a6 SHA512 d8540c57610711be8bfc3dfc25faeafb362d918a0582a98543f6cf04d8cf4978286db29401fac88677d511a6749360a36b83ac6b9e25c4b3366f6eb166d9b2e8 +DIST firefox-91.12.0esr-ca-valencia.xpi 529382 BLAKE2B 6ed31c1029479122292575b398a3e22db192812920dc670ed34b7fed90cd09a9740d5f56cb5014bd084c111c9abb2aebd0c7581537a471bf3facb4162a4a7dec SHA512 930cf1de5b1e5897219f2886532dab77af75313496766dcc51dace1cffcb67191df1df52d8a67f6d974dcc12df4f5d24b7e048a8b5ade16f84f0910a8caccb5a +DIST firefox-91.12.0esr-ca.xpi 532480 BLAKE2B 9262f9ec50caf9f6d1940126392e5ef7e61666949d7713be1b0b26846d2cb501c84a278960414e222f39bf5c7902ee9b12271be975f3639513281bbe537ffe4c SHA512 c1d0b591b53a2a94cf8f18e757d8fcf30cee2e7c55039675825fbaa0ce68c9dd9b34fab78aa42f997f61b568f7dc974ce41aa826d81bf292e2277d8490fea94e +DIST firefox-91.12.0esr-cak.xpi 552602 BLAKE2B a8a3871b3857b63813039096a37a35a7ea47bd4c3a2ea4cb8244e81f7935ca0e4b1a24bb313136d065e3885dabe6290aab06448fa998e547dfaeb9dc45d99dab SHA512 668bcba3f44ea024dd58a57fee65af53271ea7c4977df86727cbc720a496d1833d6d404c46cf929fe7732f30771ae922ef812378664413b4e1cd7868e623ec01 +DIST firefox-91.12.0esr-cs.xpi 563172 BLAKE2B 6d9fa32d1fdaaed444c68b16de6cad246737a89a15285e674b8412136825f7aba1496fc613272f93ffdae1aa8775519e92817b7f2ad7cf9070906834892320a0 SHA512 f103444e360f8f21088a6027d8e18ee9ccd71cf08f91b6ed00d115abd477ef6de981ee9b7bb0587c348fbaeddb6c7e81954544ae151e9a2bddc054d81ed86d87 +DIST firefox-91.12.0esr-cy.xpi 542218 BLAKE2B f5ec6467a8be2f8244080ad84d0bd797f685c739767100c250588e8d08af0875548f37997ba1438b9e5f5894f8663082d286f8be821e635fa9944b94847574c7 SHA512 0274b71aed896fde39eb04aa07e14676b7d1f01fa9f7c52243901bd24c5a16166936321068c3cc1a32aad0341d1ad23ba068621c9320bfaecbe37692edadd0e0 +DIST firefox-91.12.0esr-da.xpi 534160 BLAKE2B 17cdb3f81d5728737d39eef356e665738166d75912b2d8429d096365cbc19392f13a408dca7a0f094128291ea5b25abf07a587b7f0fcf777831820bf46aa8076 SHA512 b2ddbf5eac669941781e432d3c389de6527f1c2ae1fa4b7d9410c94ebaabaf1703e2783e5e244a6ffd7ad3c07a209a7421eeea946727a3fd1cff683204fc7a7b +DIST firefox-91.12.0esr-de.xpi 553582 BLAKE2B cce17bb13a2f2b8405b55524c630a50a87ce68d3fd6fc708644b5851fd550c08402fab6ffd323803865cb53944e740b11d351088d93836907139d023c00bac84 SHA512 040675e95c46a8562b97f8a2d3769382513e09a52b205faee0ca3a99cd10d716267275cb562fde3ba3ae60eea57eddbe52139f726f1bf9f567d091cd2d666599 +DIST firefox-91.12.0esr-dsb.xpi 566485 BLAKE2B aa0e85e53a7e7c0fd77cd655e323ff8c66b58be24477e617d414ce1786548dcd2a6ef6bbf0dd0593f15909a7bd695b761d397cdc153e5d94f45833b0a1cc029d SHA512 ecc5e3f6e25c05035e6bd3729001836c3afa08ad9be826ca19905eb79768c768e671f1296223f114847e4bd1907a94e15262e7e06c46c090f3260b2ee32ab591 +DIST firefox-91.12.0esr-el.xpi 639149 BLAKE2B 384f2f3581e866a6f179c566423dedba1c47b3683f05a0d98d3c5cb99cb8eef12d05779a7ff851ea53e5d2e1fad16ed600dfa2cfb97f8de6dacb940a6fdf2575 SHA512 5f0c37e01484901ee82f7cc62d3c58825aae692c6f9dec2b511b0e98cae524dd73a47306e85ad8e0207e3cc8ed6824826f54f2e0fde859dd7fdfa74ab52d4051 +DIST firefox-91.12.0esr-en-CA.xpi 509567 BLAKE2B 0c262c21a7c0d6558b3cd3584e659321c4b24e2775c26d3f76a0422bba648c41fb9083a8528bfc737278883a4ac42129c29893637f339547b3b4514ea76d8e78 SHA512 71e0fd1880fccd81f13749d9ec1d1fc3dc6257d5b967625592261c1253a6284ada129690a4b69e77bc711fe38124f1d49aedf2b55fb61a61a2562eea8809016c +DIST firefox-91.12.0esr-en-GB.xpi 510585 BLAKE2B 1678d48a78b342e8bf89de66b726f726259e2d20a05b550dae1ce44de34f090e188762f3e309977880776f45dcb1a101096546e5eb595acc988d9e8ee3397939 SHA512 a32c2e640423f6d182c589165bdc2a9fcb2abae70aa398325607a75f28224a65d18e89b04fa18561e345c4ad74c59fe8a11fc43d7b452155ff941f0b54536d41 +DIST firefox-91.12.0esr-eo.xpi 534805 BLAKE2B cea8489b663cfbf22cf2cff758304cc0d8531ffb1d83372de99a1c5241d4b8dd16827e7a060ec670d00dfb9b33be5b7e546b69a8a2c03a8456b5fbd1d3027774 SHA512 1d40046d6dde18ad9dcc60e1fce6991765351312da2515c9aa54738091c5adf127cd27d89528b638b466b44aa74812bef9edf9d7d98416f6ef3b441b3bfb5490 +DIST firefox-91.12.0esr-es-AR.xpi 546670 BLAKE2B e2670cca857e1b879c18eed82f0f7150ea52d9b513483dd5139ad2863c52a0eb852c9f86a2c2dfbd8904784125a862f2d0e0676d39b2f000a78a988a1ef8d555 SHA512 8bc83f9cb51f063e9b81d59cdb80c22f3733120fd4d9fa69d0e1d768ceccc7f5fbbf50afffb5bf5acf6a870728cfa0851a62377404e376cf25413d6e0a2e02bf +DIST firefox-91.12.0esr-es-CL.xpi 546375 BLAKE2B 78854277e45bec223ae62519bf71dbe347c3e6a77608169055feee051032b6742852a4228339aac0f3d4955af72225431aff8d8146c97b347768361eb729505c SHA512 cfa27bc70a37591a738c2eedf802cff9d03cf21ec4e416792f4f916f6a1560b2157dfb22354b4668f8cd8b32700622476b3bacf518687ec6736c7004d39aebeb +DIST firefox-91.12.0esr-es-ES.xpi 537066 BLAKE2B 5a2023869699a803ad759225d7851b0f3862d76b07662b5a9f67386c012528767ec960c9131354f54a5f4fb0ddae099574d133a6349ed36a4e366defeb571b98 SHA512 9a7960e3ac62d3dc118cc8472b9857818c443fa04e45fdd4b805fa48bd3fdac6cda267efa8bfdb7f332a25c6430ee98cd7a05edb97ef53b3f88508c02a772c6a +DIST firefox-91.12.0esr-es-MX.xpi 549996 BLAKE2B d70884a6e461183dcc7944bf0b3c722af68922609a41193178b29f2f13fd20bf64c506fccb72b6a59e18a0a49c76fb369f2f95594084f6f0b39ac845e6b7b68a SHA512 d57ee1912aa9909487298fb9ca4c7b318b606de3cc2be44236eb6bbc392808aeb7f03c5ad37644007724dd69ed40c86c17f02ecd0ce5174497d8e6881ca3af77 +DIST firefox-91.12.0esr-et.xpi 506661 BLAKE2B 35b5cb288fcac59bacdd56526a7296c27c93fb06f2aa9260be541e1c9670f127f14f9eae81ebcb36d896b9d68e4720271e5eb564ee1eb1f314ea436979e04741 SHA512 7f41558af927bbfa52b7ed194e30b9d11f2c0d506867293dcc51fd32623ce4bf6f6bac86ce15d1ca65b563e81ec34af1ae09a1b082ea852b41571f56a70e1cdc +DIST firefox-91.12.0esr-eu.xpi 536327 BLAKE2B 30324c3787980b58dbcd61639a6d6147c2043d2f3382a28a28ea483bbc03f320ea6cad4b08b7d019141550b5bc16e326b50eab361fd7aa379184a1b328ab53a5 SHA512 80e55b59bb91e0cc643123763c869fd934d7b07aa3ed6cf16862575b88b6793cfaf9cb27f27b3a119dec7a8da91fa6aaaf057cf8a8beaa1cf3bda660582e0dc6 +DIST firefox-91.12.0esr-fa.xpi 559383 BLAKE2B 29d3af17d045f8b7e956f01e8100bcca1912d62952c65df97522568e7244db9dd1ed02576485676cd1b5347bd34f8d9cad070d14dd67055b647eb8ea9881628d SHA512 89353b8d1edeb9618fd3ddac5759a41b0d36af72837a4a25d35dc2caf6ac1799ac591515b9e4b00cb5f16af3c66471647781798b3ffe1404a5c6e849d4c23b64 +DIST firefox-91.12.0esr-ff.xpi 471861 BLAKE2B af95810c7b51bfb7e556c48a60e13ecbda8cbd709fb34ed882b9ab3e6c2d19c631e3d0a9916754df1bd3b87daa466e36bc309717420982addf53cd101781e3ca SHA512 90f55cb433d6591f376d224d59bf5173dbd0fc03a4f85abfe2ac2854a382373cc06fbb47b971dc969989492a7bc3b1b0cb8fc93f7f70d6e1e62bfdd3c862aa8a +DIST firefox-91.12.0esr-fi.xpi 531485 BLAKE2B c17f4817c69508eb0ed60905c1d3d16361f72a4c3118acf41974558f2786e5186368857e67f06870e1b0575fc5e1175100401c1cf3f1506be09d053eb487f5cf SHA512 7f3e2180cddad46e4141de849260409e0e056c9bffbfee65993692debdafe7c27fdb4bab76dc0967fcd2bb2c64d0fb0d17b85baaa74b35d9353d678f669b5d02 +DIST firefox-91.12.0esr-fr.xpi 557616 BLAKE2B 5585178a3ee7c0cd31bfbab43def30e6b1f0783a9b42f9f6e16de56c4df746757af915442b0d3eb3e7099ed4fd3ad34223fb1d6ccbe260f657a4ec5c79f80996 SHA512 c4196ad703a69d1f5d1151dcefb2dd2cbac73845793c8b52561b9ccb4160ebf5a7ff94589312b4c24458f59f23d71d4ecfa5088851e2c4c8bc852ad0f5f36317 +DIST firefox-91.12.0esr-fy-NL.xpi 543303 BLAKE2B 0bbf9f997b5da7211cf369ae521a85d20d904d7eb6426e3c56f80ac54cc5d12cb52d70277b9ffffe124cd87d6853739be602ea178384aecc8fdf468c66146c15 SHA512 11435e7e768b063cf91ae0c0c7382e5e93ae906de04fce7b79668a95d3ab9852db1063c881e02ecddd234157d876302253303d8010e47115f5eb2898ef5b7e55 +DIST firefox-91.12.0esr-ga-IE.xpi 459833 BLAKE2B adff14a667d2aae1772883d368fec7f066e68e44c03a5d9999c49f448a830e43b59359b0b4b7d0b1f5647ba77b42ae58787b73063d4ad55d42cd1bebc7374761 SHA512 7f6501f308a56f2569411dce130ca0f8f91547367f186c84f53ca6461b9813778d946d5fe278861c1aa84257d7da358cf8b5a871cffc8ba32bfe6e398138c398 +DIST firefox-91.12.0esr-gd.xpi 530841 BLAKE2B 0863aed1ba55eafa2f6344c5d5cadae0cf5e83d112242655c2bdde349dfb3a0787067155c060b893e082da85af5c52ab78ed9f0bdbdb597d157060af77c38f8a SHA512 38ee9f677bbc9b45bbe04e7857cb74ff3d2558b9399ef551214d5b41d31521cc05b2ef2c4086d9e2437794b0edae8d03024f5f6177ecb82c6a464993a3399087 +DIST firefox-91.12.0esr-gl.xpi 541294 BLAKE2B 07cc856766b94ae9e0783eb0966801760e689a608a5565ed31d2de8399fb1be77fd5ab83fee26762bf84508cef282b6a1c36480996b359d830b91f5cf61609b4 SHA512 eda5600c1247b176d3073561c0b4040cbc0bb967d04a8dbcf463ccc84851ea4cc3d70bd86b40e812705bcee628490e606ea38100111a3ca47fb6035d15dd28cb +DIST firefox-91.12.0esr-gn.xpi 557608 BLAKE2B 287d8bfd6b7e6ac604aa628e1fbfed2f28bfa8d0b9d2cbe2d2701607af61b3fa713fc36370c1b586ede52d70eadebb36a0346b5d9e40abee072add84f7c651ac SHA512 ecf21732a00f988de28b9017562c830b2611870591f17c9e23a6b4a34d9bf45ab1e4f1f4a48a907dc15d8398fbdd800a5a900353cde2625f4efd61908c68b167 +DIST firefox-91.12.0esr-gu-IN.xpi 529545 BLAKE2B f8b5f51e32f1d6005b2690abae0cb1a0e76d7718e96f73e49aa5be1cc5f573d5b0a5c6cf7e18b96623cf27bf9006e7fd935e5b964d63ba251112c59793dbe9c1 SHA512 37129a5ce6e99a2365d27aa16ec895db35446717135e58d6b4ac580ac26b45f21dcd1f0208451cdb1083f8edb2ef708bd815da0a87354fdf7f7ef1c592c4dade +DIST firefox-91.12.0esr-he.xpi 557205 BLAKE2B fe6c27bc40ee01bfcb60f82285154b869d3246c656ac46d09cf811685df55154a4721c64a4fe9a5670375aef5b4c4f30e9ac551fcb01fa39b200c4ae8dcc8b9e SHA512 e80d505a44c4d7c8bb5b75714c0faec284567e96e66b2484d0388911e5093e9a96dce036cd4a8d52c350daa55394a0101578682f3b7cbc551df984e26a357230 +DIST firefox-91.12.0esr-hi-IN.xpi 560652 BLAKE2B 3fc9fcedcb03f32621ed83a96898a83393b67d6e2eaf068c7a7cca99ff2cddde7ecb0dcba42502f76bb002a51ad729d09f50d06d3cc538226cfdfaab4dc069b9 SHA512 3847068de04ae05825a9458784bcdc71c6554cbd2eda44a3a1d52a7964a1ca4bd88a5a3ba654eb00a7ef6a785609d340714d218d2093a62ed245e825cedf2276 +DIST firefox-91.12.0esr-hr.xpi 530047 BLAKE2B 7aec6fb497b8c0149169e37fd6196c616904278856bcd57fc8676753e6cc34d09f935d14067373934f0ea64decb4c88da0f45cd13111d0540f754dba2e1fc704 SHA512 cc844f45ee509962608cb27da2713c604bf4c0e69b1131bf45fb75e0542228602a35db43911a333628f724c8b922c71af71ce9279ff76b399351e7b169b9caae +DIST firefox-91.12.0esr-hsb.xpi 562618 BLAKE2B e5861a877dbd6da9640f0e549d184949bb455fde5262f7804195830b914aa9e08a891f19a1cf37f439cb112c29f9d21f363760e83982ab3bffad0278835768b8 SHA512 cd99d4f7d1ed3ef253240f01ad1b2a560e8f19b87901d2e784629d350ff52017a2e69fb59f48b5d64044328efb9b10f288a51c69f79781a2b814330d7ba80fc8 +DIST firefox-91.12.0esr-hu.xpi 566078 BLAKE2B 3316951af0b091cbbb99e323c0f284292b5e2ee3a54f56d8165606e6809cb92cd6d36e66d9e5102da908f84eaae54d481718ecfca75c4057dd5de1f40c559fc6 SHA512 c5fd702c4ed3ed2d9039985b3a505e30f6330d77672ca01eb34884c9d8adec5d25e3b3616e16b48e0f1efcf41a505a73ac7f1189aaa958913f674cc855ab5004 +DIST firefox-91.12.0esr-hy-AM.xpi 579765 BLAKE2B c40eabc26bca36b9f32f832af38d54f20667c9dd8701fa6f97f4921a137e26819b61e4e2905a7abc1168e5e5f5aac3e1a8455a1337f904f8ac6a085d829c8801 SHA512 ff7bbba953bb955bb1303f63eec215ad5e8f31dd5ff0efbbb237695b66d1fb8772fbeaa24f7cf8f232bd065c817edbc1df02a1ed9268c40ebd6e5e1fa1ba7f46 +DIST firefox-91.12.0esr-ia.xpi 532143 BLAKE2B 084a25d5dd0de45a9478c8934ea548a1386b4df66754267458655478a0d25ea695e95608840248bc8163d3eb16ca6b52e666b1bfa066bec33cda7a0b6bf0da2a SHA512 0fd5967a3b2da9884a03adb09245014c5422be397cc78b398d8d9fa8aafa32c28b9ba0242b9b3f19c66ddf3d9180560c26b380cd97d5942220f0ff4b87ecd5b4 +DIST firefox-91.12.0esr-id.xpi 519827 BLAKE2B a73b1ddba1fa0d115d08f479c86cab40313ebffafd0b5d1b410a7ef1a2f91a7c5e5114a98d6e38dd6d3c27c93452079b375ac046f0b9ccb5fb6998187c12a851 SHA512 ea72f174d205c40fdbdf7197995424263d4cc27d2e53d6da0cff5760ef91ceb4cd95dd4b6519fb8600841e164dffe89341f364e455facf68fb004acb36708df8 +DIST firefox-91.12.0esr-is.xpi 470225 BLAKE2B 08126364a90d84ae251ce520594efb9108f2cf6898a91a328aa718316fa8b635dd240182f8ecf4f20f96460ec5b53bc15bb3d7352cb92b7088f933bf2f63343f SHA512 2c983b4594a52b34aa675ccaa30ce27aaf18af6f102d3933f58863cea33726df3b816e4d871f8a5f98ed23411a532c6be0118f10b50ab1590fa1ec761592ae04 +DIST firefox-91.12.0esr-it.xpi 459085 BLAKE2B 7d9fa03eaa1eb82e8c8cefccc272543e0c31699aab880f2c4b489e8d5cf2f8b2e1462a83d2e6ac8063bca8c04bf7648a097f116c861ad8d0e23da676942175f9 SHA512 a60473ae9b99cb8824984e972f183498d1a2718351e7564db272b2fedc57ceb31f3c9384247deb6b6bdaeca64664f2e2a5067206f98f5c07b8cb3ef0d0816f83 +DIST firefox-91.12.0esr-ja.xpi 588081 BLAKE2B 42f130de9f8a74bb00e4dde107f0152eab5ea8738277425a187c604ab8d48952ae89a4f9fa6ea6a789ac1f2bc134deb1141dc255c71411b06facb7e6b0b7fc96 SHA512 0e51945f975713712d7f334ecf1c15af802e4482984208ae663487c0d24ed1bbf0c0fc47d5de95f8046701177870af216da69e1a8229e0b3a2850a5f9c079ec7 +DIST firefox-91.12.0esr-ka.xpi 592256 BLAKE2B 2d4a7d24678b4f763e3bcb946fde74fd8da89a835e14ffea6b5a126641654556f0464927c8a7e5570657e84d41839b783fc7e03ff6c8376eac8c156873a6dc9d SHA512 07a7c0ddb92b7e3475efbdbdcebad2f38624e0363a912e95b9909393531bd6da5b13b51e9882a6aeb259a43c252b86654e77657160d1ca692fdb1ad3297d9897 +DIST firefox-91.12.0esr-kab.xpi 545031 BLAKE2B d2ef69334eb6508716ce8e62826dffc95f7518a4e987c53ee5534cbeeaefc3e71005cce7f8e8ea0e37421735e7c35df88fd3db346f9c64097ded6e7a7d325091 SHA512 35a74000d8ebdcecdeaee1b23d7902d6b8f308f32bd6b36a1892257283451bebd806cb5793550041fb235afb98a503276a87f945a61bcd1ab5880e750b258b58 +DIST firefox-91.12.0esr-kk.xpi 605558 BLAKE2B 9a653b9edcc517353c2d85fdd450b568d5fc92f5f889454818ccf66fbf5151007ad31276e688893e3fc3c990d8f8debc92f8e17d1646ffbea6e9538d25c03342 SHA512 dbfcbe0f76e191fb6d8cce41d2c3787d3afde43c606ef2e0b2113d7fa4cbe3c7db746ff68048955f851ab77837143a35f87b08785ab5f46cc93bd8ede03252f7 +DIST firefox-91.12.0esr-km.xpi 533115 BLAKE2B 7e530c5bdac1889eaf6e19b943c3ca378fd9c07814e2fe6fdc36924efce84b14c3703179393ad1c73c01eca4813f141bc096acdf9973ce4387d76707e1467883 SHA512 c76f2b47ec06cde33c639e87717308ba19d9a3677ed1c3918bb27f08a10a5fc273fbbf69d9e20aeb3d9d483f59cccb05b7b3260e39138f8cdd5befe4b7ed0155 +DIST firefox-91.12.0esr-kn.xpi 498974 BLAKE2B 9ef3dec5f06f8c6afa0707f696fe0ae98c8709c95c47bbdfe7483e94762a092f1fbcd27273a3acb95570aaaf06df4155bd301429f4b7cd446e59e6ae681d71ff SHA512 8084472b2a5e4b1d8a8ad1fdffe8820b23e04b5e0dfbc793fee0baac75ca3b35a3db84f32dd137a41d503bc0438f6e01245b87163fa442d46414b94e1baf4c80 +DIST firefox-91.12.0esr-ko.xpi 579060 BLAKE2B 4d3188c99cb5179cd4c0a6a421eacc63ddc7da2371c6e0c9eb0e4555d1da47c1e718fd5a3998696fab5c065deb996703743c32e1d343279d8661c7910dee7b31 SHA512 5f1b2446371380df82cdd83278744c5eb26139eeb5e824c107ab5dbe0a29cc85668bf02806c728c8938d1c62a65aca7e9cf886ddc47ce5f2d802cf0f2b48f057 +DIST firefox-91.12.0esr-lij.xpi 470178 BLAKE2B 14bb3f22d9dba41f226c9e2ddf61456c88d1e910366a4bff515e2f97d09434d66cfa24e6dd76ebfabc466f91c8e47c39d31fdb37832c3f19ce28079ab9b9a58b SHA512 983643d20de4cddf7e4c08b30d31db5ab51314ca91e112b5047110c1a3f880205e82ac35ad57921f1e79fa458394e72c2359f349b59ef46e920c1b97f93cb36c +DIST firefox-91.12.0esr-lt.xpi 560115 BLAKE2B 249bffff4cab87908e7781ebba9b498193dfc658c4cb98114a9a82e3c048c3d69ed600f79d65c3a0c358b10bd7e9e2535f05d6eb8fbfa638d891ef0102b1bb02 SHA512 8471dac9f2e92093e4948ef4e28d7b15e308761710aa101673d42ca00831ab7210751734cde48e32d8139a6bb0f52c2163a62b4f8fb2ddec2c1f56be456f1a30 +DIST firefox-91.12.0esr-lv.xpi 462451 BLAKE2B 1d0dee14d62a7c16e878b2617341fb0a31bb80ad0004ab062ab8f0414c196872e082d256b08c842c21f8b6045ac656081b4ae5443dace05995e3375a2252abe2 SHA512 d0a468cf015fed9d38654f404774374c07364aab1faed1f8a56ae885264555eab9c2a003d5e5a87357491d141ae528e97159e46aec13223aba45bfe66ae30cf6 +DIST firefox-91.12.0esr-mk.xpi 465346 BLAKE2B 9c57c8bc4d8254ad5ca03faea53dbe755dffe6f805d879348321cdd0d87f17c70047c806016a9d8c717395827d0f0aca7fbce893a5e4d745c725e59986b851aa SHA512 330b8118f8eba899f5d9bfe88640e093869541969d0792fba096bbeeb5ecc798d9759b1d6283c535e6808ec423e395f7b66d71c5ffc9999d74e470369a1b8ce2 +DIST firefox-91.12.0esr-mr.xpi 532123 BLAKE2B f2cf21b5ae16a52f53bedd98f872e29c570ee9390f7fe606a49eb3be89734e31d04f1cbbaa9bfb2c23fd8eef5fccc6dd5668dd14e57bfc4d5f59f96577ef83c7 SHA512 62446a95b555ecfb856a2bb0b136f2ca11df93f2a01ff71f1e4485bc997e60665391febbd129b97d8c8961eb8b881e0b76c91b50ea0b0b121151b545e65905a9 +DIST firefox-91.12.0esr-ms.xpi 447335 BLAKE2B c2530f6ffc7bc48d60a7cc16db131b8557b57817c7ac8b10c13efa5359eadd0f4c24aaffae84cfd86f8a22253b70aa74b887ee186b3a630780d58e3d6683e6dd SHA512 94b3e367307150dda78649202bcec3e897bda093b5a1ef2157b73a81cbcb0b2b92a019d22a649d05ed691c720ef5be1c8effc55eaa5eb596afa555740024cc72 +DIST firefox-91.12.0esr-my.xpi 516301 BLAKE2B 0ce70280c69e2c3705a381f3ad28d7102466049fa753f6adde66908cd0ab0f77edb607b10e5b34c4fb0b4dd6b57fccf0f8bc7af7d6195c2db9bc5a8b73ade5bf SHA512 850a3e2f9e9c790790a31395bd601349837a93abb70949c7753fec8ec2cebb8098bfbe3f9dbe85b6f3eb296c3e7d7bcc2ffcdb04cc5fc737e03894306e17262c +DIST firefox-91.12.0esr-nb-NO.xpi 529429 BLAKE2B c7dadee67876bfcd4fb272404fd73df43fcb6247ded6480d6d5f06204211c968557f9b46e7e770b7e90fdacc034ca1776d9c6114d95fe7d57bf2a2099ece825d SHA512 d09034482ff131e4386f5f695de6c3549fbe188d51dc5a133e5f6d3fe9179c9512655f017f07a1b720de19df4cba8ef6356ff3b5d68e857a8d5d9cbb6fe3fee2 +DIST firefox-91.12.0esr-ne-NP.xpi 485208 BLAKE2B e49e28f6d7f8ac98e16890d48ec21a70ced67e0393ef8461b2523c30c49a7994ff17fc2a49266728af2da36070edf616e9694945e58105864748b2da74887f5a SHA512 bce2ed6100889ec0663e4d5a96e7ed467207f079468a8ff1f36a456252e1170d384f37e01150899de84272a090a317360894b661840a003ed0f3314a80579a29 +DIST firefox-91.12.0esr-nl.xpi 537387 BLAKE2B f24b516317f5c8a99b5cbdcc776376384ec4b6c4ab46a4c56cefffa6b5f45af30e9bc16d1cb1524ef606f211ea65e2a0e3af326f6c406be4d7db65cf71debf1c SHA512 92ce8061c333e5c1421a950469015f39b04517f90f8bdf71f68e59bb9064fbbc42e135c657594d081bc80cb03e75042a68e5d873ca656722ac26f52102e2e6c3 +DIST firefox-91.12.0esr-nn-NO.xpi 531683 BLAKE2B 8aae11de609d2548bd48fe594674cbe991e960e7135c509112d421a3ea3b7e1fa61ac1cfe5392388bbc5270e406556883ad0196d2a5876aadd666fb4edeee671 SHA512 a65621097f0795e044decd580ece7d29cce3b7df44123881f63dd17ba583c2a0efb516894dfec3bd64310556609c5f9f5d96bbf209d8a18f66da859eb95d78fc +DIST firefox-91.12.0esr-oc.xpi 552959 BLAKE2B 182074bce69ddc28ce274d43288ca27681f7178913e78123b4aa30e71acb2bc9fcb1ec29e1e16476162ce4a19aeeb3a51025cbad8c98e8a9b82694d3d31de45b SHA512 70fbe851576425b35f52448aa0648b760463410fa771590324af7e70f9f5810ab73f80ede20011e6bbfa133b09421b1736fc7a033b9451098c7f801b63177f05 +DIST firefox-91.12.0esr-pa-IN.xpi 595978 BLAKE2B 4a1d8f374bf22c95f014eecd244996ed5fac004dbb74bd6552d86ffbd7b5612b39e6860855fc1c5313e393dda88de6ab721362124742ae658d57319bfefaeed9 SHA512 096c4fd0d88059c1cae7d0dd9ebfe09b137559c62c113732837c55bae7ea91877d7bf744e4b6eee1d62998d355aaa489d5c0c656bc53d6860782b940204c6c4d +DIST firefox-91.12.0esr-pl.xpi 555622 BLAKE2B f63e0743dda5b7d24f312960c486db0f0713349265fd4d9ed97387e37cf5fd4c1b7efbc528572a2481f5c4178c600433b34d9831aa982256ce35c54984b37262 SHA512 6daed99e7965f646fcdb9e176532a3e7999d497829fc8123fb828c91c55357a1d29bba8bb0416c550ffd6e99726e066c2e79316e04ff3c9e60673e0cf85965a0 +DIST firefox-91.12.0esr-pt-BR.xpi 542613 BLAKE2B 0cb0e3eb20b0e665268ee576142595e5346801d7e421d0232d253301a739c2c01e7adf1ab287849a795fe1d54cd0ddbe161f00bd41caa7a28eb2892750adc32e SHA512 5e46cc772b4a4c1a31dddd8ef4c6e9392a84480d9296df4ea9976ec862f7740d8aa7fe7ddba053a084edc391ab3e6a8eb0b84b15a8d956c17bd0baeb197ec5b4 +DIST firefox-91.12.0esr-pt-PT.xpi 546343 BLAKE2B 08a337874a31dbe6ffc98d76c80f6aa5f6c6e2a92b34488475c456efa3c164f71e72985075270111839166c116fe66eb422ee49bb91b94ee4d77fff2be9b4cd7 SHA512 6a151bcd06c239a8acc8f22e4639525fea6e0b9259a2d591c9a22af48858441e18c571bbff4a42cb92d456f92bf522279254aafdac06a5835345d1d59430b172 +DIST firefox-91.12.0esr-rm.xpi 537363 BLAKE2B 425ca2af1cd42f06015b64e1d6a371f3ecb12a10cd2872fc4f40e95008a61273c16ee1be84a5e7cab02d9e47c1ebe86af586926a8b137407a1ef56900b1c7f6e SHA512 9aa8e0c938c652d4ce5190baa431df006e2a2512cd03eaf8133bdfc643001bee163a6a6bb696af9d07a55dfb8e47a9804b6c9f006fb00b2f47ee4c90df6766db +DIST firefox-91.12.0esr-ro.xpi 529335 BLAKE2B 2bcc4b1b83ddb35188f73174afa0d1d804845b916ed99edc4abeb04c675c0da0310622f4e19d192010c84487bff25c795c58d321a71b3c32e4d955763fb46d07 SHA512 d28ec2f77340c617f138acec45e498163c91d2a8c49969f9e1fee0fea609232dd6d9bb3aa3ceaa1a19737546f4bcf4b62252d7edd839d2c19c8e1c38749900e5 +DIST firefox-91.12.0esr-ru.xpi 627112 BLAKE2B a4f56ba16700d7c5c8551d5d789719022926fdface9ac2a2a4aa93ebae6763c7685f901e8e7c0bb470efc0e27fa17910a87f4f5cb22597ebd0aebccd0ee063c8 SHA512 e446d8657f1b766e3c17e318b1d48b6987d3befcfb515da4e28ada6cecd0d3b68b8368f47277cf81964ea5112b1c03196f5d677113fa44cc0185507b17ab7a68 +DIST firefox-91.12.0esr-sco.xpi 504858 BLAKE2B 651bb97c4076692f1cd446f3705e7b1484359a535a1272fd7d378f0e46e75ac7a9a8c06a98daf469ce076f144ea99d40334374b6d2b57d369837bb51747d8254 SHA512 8064c19ee2161738c54d0c2fbd830293e37855dc39d9af1939e37a7a180816035663da75e0bc2b43582a41599814413dc65f04de3b4ca25e97f8ac9e71a790de +DIST firefox-91.12.0esr-si.xpi 487949 BLAKE2B 3c960959c20ab47f9ab1b4edb3b6218788734eecebc92a29b8b62f6b83cb80d2876d840604a47de53c7f8eb9a4df274082ec4fb50a90b63e996844c2aace7f84 SHA512 43393395ddf230a260a83f687632e8a6a277344a6eacb7859e9cf2c40d27801f3183676e35ecf5738999a221bf18423b4ccde9b59da94a9ff2109a03e6a1e209 +DIST firefox-91.12.0esr-sk.xpi 566492 BLAKE2B 948ae7219674d57e39c3db4e8e9245fcade60d62ba819006bb35da37f65821c185ab39a64e4d5b400aa85adcb4c2acaba6504e3e7ceae5552acd2acb466261fe SHA512 92abad05b6617168e3f3417b1e1207c7c3e4beb413655c14fc326fc26914ffb3eabb90e83361ef350a91a46aca4cf0c69acaaaad8cb225c9b548b6a887932e2b +DIST firefox-91.12.0esr-sl.xpi 538017 BLAKE2B 8efb6e5f5e5c734a819d1c3ff7191b5702e2e12282bec44f52a626e2b1004308180935bda922a55e07883c0a805f0d8570bfe4fadc68dcf67180186f7529cbc5 SHA512 b6bc1aa39d35682ac9bea032ed45b3b700e319ba790cbccfeb12f30879e86f3b1bde5bf68771f9faa567a108b6ddbe73532fee28f3acccdf56dceb21d986e29f +DIST firefox-91.12.0esr-son.xpi 425997 BLAKE2B 040b2df75261028217725da8f2865c3c4c97daacb368ba94e28cc0b69511a301942f6a318b1ac81295b5873b9343747446463a8d8a9743e83eea045db92236ce SHA512 e596e5dfd2a79287bbc55367022ed4a3bbec869df8f057a166b1570af76f2c3c7e73c46e1ccfb88f59cf5db45604ff40afd038f3b366c877af864f8c6e56693e +DIST firefox-91.12.0esr-sq.xpi 555991 BLAKE2B deaa28595b801f8dbb8dc4421d459f0f74965e2721649d99c7e305c61623dec4bc1a853da764b60c928d4dc7c784c9c80f3075c0a26749c570f32e9b965e2d3b SHA512 653519495712f4c9051765a532dc6ee9bd778f5d1b5009a5b49623c95ed667855bc252a81e614cc0d53c506b2723f141b581194f48cb0a3bb7c49a9631eb2791 +DIST firefox-91.12.0esr-sr.xpi 586068 BLAKE2B 941edbdc039a99fca5af47b0c01b45d2b790dc2429d58c6ab19e8babad0e93b0b36fa04a38ef0d4f59c016b5adc5616930b6c8433f5a88cee6efc0f66abb690e SHA512 2ba9255819960fb953397b0f3d36958afc7ae7a24497b86fb8da7927376278ecf36406c1bc1e224080186bea4f3ba9e044558bbcd1087dd2d847f3d29990c610 +DIST firefox-91.12.0esr-sv-SE.xpi 539961 BLAKE2B d760d26be6568623d45928cdedc6449d1024cd63371a8ef3a1c3de4c4284529ee08ddd2fc5a318c5cfbb7a0e153115b232d8d3b15427c271f92208f3ab128201 SHA512 e879f5451a2a23b40ecf03dc7a643e6d47905b358f339623393ac79cd1a55af7df4df5900a942f2dba5d5099d76876b573471b76970a87cdbd608028192ceead +DIST firefox-91.12.0esr-szl.xpi 509806 BLAKE2B 82628191c8bc889b6c8ae1bf2490e4139f2a458fac2ca266786234919616d3974b91db8bda121fc629648957ea30e9fae0aad9b3a8cecb84406f273274b1e2a7 SHA512 0d3102afe1dcd219edd37632da90899b6640daf42b947f7d8e057fe604d3c0d1f48151389af5a1fc00ccb50ef5200193131f073473c888dd17cff05a6e4fb4c8 +DIST firefox-91.12.0esr-ta.xpi 513810 BLAKE2B 14f09d2785a64f6b740a7826fe03e55ccaac2eb9f9e7cb6714f1a26e4e503a2590cfb3f454708e9f426cf953336a3a2d8c412f39724ab3e739b3b1c2dc3879d9 SHA512 6c2db787ea30228854fffe2168e90b0ccc4121895be460ff3e435aec466e9078810ac1ac152f839ef452416fbf197053e0051ef5a17c9b788a4747e43c0743e7 +DIST firefox-91.12.0esr-te.xpi 549951 BLAKE2B 512d571f4e0769d22dcfe796c5c5dad9560bdb85ab6013f3b8f681ce72b977f5497ec377b32bfd8025a3fa969707c997b031ec6b398764fc89fde7fe7a14362d SHA512 2e2c6553401b098a5800c0ff0650dca2197e7900897a2c49e42c52b446b25fc24797b743e6b5bd43340c17701530cee84ccfc4de1cc10bee4a5d778c201ac62c +DIST firefox-91.12.0esr-th.xpi 607070 BLAKE2B 398e56fe48d06bdefcf4f5746cefa18d72f2e16f3288054b6728f1d0a6040bf545fa59e640f19a8414a03021f8fd2cc12b80311b6e78059557ff986d0f7b5e91 SHA512 9898d4a7a447d724bfbff7a7ecd0611575e3f5e08d74bcab05f098d4dc0d7f2331a5d08bb0793294076353cc79e513631a5c590fa70b90a0fd0fea9d7f1a3994 +DIST firefox-91.12.0esr-tl.xpi 516126 BLAKE2B 0fb1f0bc2aacae535e16af19c87930bc3b3e79fbe43f6c6a3797015698ae6368a526226c58e94fd8d95964ea1819265e56a08a1f0d4f7a2aa821c115cb6f283c SHA512 d5121917f141b93afa4c930ed77331f821483868ae4e05e9bad2eddcf40d58cf6e82f0f9004bfaaf014f265e8bb748b845621531dfc5730249de51d8f9d051a9 +DIST firefox-91.12.0esr-tr.xpi 553683 BLAKE2B f0f86aeae44f87c16b659f549c318abf035481773202cf75ebcb8c9afc81699ceef332e53b0a611abd7fc182209b5783a3deaf356436958822706fbf441098b1 SHA512 95409c1782d9a3bf49bed2c7ca7c72fb87d8641652b35efb44546d216ecf58cd5de83a94f6636cf3df4d0382a064a769715bb27763ed2480e9aa89eb21239878 +DIST firefox-91.12.0esr-trs.xpi 491082 BLAKE2B b86387444faa6abbcdc58424fd41a55667418b1c0bd14a7b2e29ab9f8c7cb78e492bf455b82c83a022a63fbcdba4398cc3556022564d699740d080808cb00b8a SHA512 8e151067bcb26eade46c8b76d3eef8f4a558f21329aeb1e619aea582c75c59b61e6a10c28af1f786297de863f4f35f04c1449eb5c1f003c76427cd58df954e24 +DIST firefox-91.12.0esr-uk.xpi 620508 BLAKE2B 8357e5ed1172c00d5268d65d386201a677faa4bf5ac869b7fadcc38097cc2ba248342a2de59ccf0c881c6e653260f596430742983de28caaa5b98b5c0436b2d0 SHA512 a145e573db2946a13c49243fe249d154294244b64a07e2023aaeeceb24a2f9e9abbcb514f4e09a325a4a683f9e6f368eb26ddff3accc4e38911c6ec424cb8185 +DIST firefox-91.12.0esr-ur.xpi 557319 BLAKE2B 8b7d136d1d065807e47ed86314a918fb8975e8b61d0e64a5e953432c2df494caf013a9a739882b85f9570332e08aa4506522aa454264c36de76b8d676ebdfefb SHA512 1faae5df96108c648826fe3ea1325b611f5827c5842ffd945364644768ff9a16616bed3f238feb3c3806941e1ff8d8fcaef971d412a69d405d5c55e23d052e4a +DIST firefox-91.12.0esr-uz.xpi 466861 BLAKE2B ab8168cb1664d491c209afca3691682ddfa8398f0147d5e12c2e167081bf0ee27891c362604397e526576ade2a6b1b2a52242f2eff5db3c82f9003584be6ca66 SHA512 c53b2e47cbe55928ff2f092e0e057933c44b48df3e05480888f4702da952c7d0c5b3e245dc205f6f3d09c70637a4b1ce4c537cb506f33c7daf46577652f4a0ef +DIST firefox-91.12.0esr-vi.xpi 573482 BLAKE2B 3b46a4e06875de1146c48ce30da1381d9f62e00cdb2b67f3f515ca43565fb23d69efbf8b6b8831741214f0e6ab4aafcace887c4ab353736126425a559293d2de SHA512 9ee8aca24b0c183339e6961901a46abdebcf1edbba2551b164d04654ff41fada446002605c73defe6c69b99808f89832bccdb34a84b80c4d20850b937a99bed2 +DIST firefox-91.12.0esr-xh.xpi 428165 BLAKE2B 4804dc685629f92188a707d91395e35f58578e5a6286568a12c2fb6315a0e8ff53c2381c6b72bcba8ebb97103863200c2c57eafb02b23b8bcf57a812af05acf9 SHA512 0fd03cc06be5e414b7d0d6b241fe43839a177ddb80bcf4cec41b9f729339510f50af01c784d6459544a4286ccc1c6da217cba48427980ad9556374e79d846a74 +DIST firefox-91.12.0esr-zh-CN.xpi 575372 BLAKE2B 2dedd69253e46f9469ed4169f9e2976b2c9b8e6fb521650cab851261d93605c9b12f20296afa4509234a985d5e073a6f24e75ce2cbee61b5235b15e41f214a71 SHA512 caa56ddcadd16b76d14414d72f23bb9c41b56bb130fc8ae22cc0e357d977a763bd32ffc0216a97fef203951193a780e8f446023281b269345a9b0cc1c6463078 +DIST firefox-91.12.0esr-zh-TW.xpi 576228 BLAKE2B 07d720b6b4d84fb298b56bb4f05f114a0d1fcfb6536a2eb085f4eabcf4dcc56eb33a4ae96d7e444ac54893657ff39bd116b2e8b68481624751cf0f0e6fed7c49 SHA512 289f8505be00278b79237cce58e966c0bc4a729b05d3b043b8225f1266540ffe58f0983081fed7f92e93bee26dca777b81e8944ccc350c659d0e296b129d4613 +DIST firefox-91.12.0esr.source.tar.xz 379877004 BLAKE2B c00e5cc219c59d8347a69e5236a4a4f439d9caae6ab7dabc3ed8c8f9a096ded26ec1ffb53b015b86481f1d43ec4f263bb8acbd841ebf36e8a741d73e12a0a914 SHA512 323fb752488b45872b40f0b0ee1d8c1dffa16874dbff2afde19a54286c824ef48177233e029faeafa5946184e71c31c6bc5ba7ec17a571e21af64fc5f7334042 DIST firefox-91esr-patches-10j.tar.xz 18320 BLAKE2B ec882411eed19bafab8676e3d79f4ae43947bb97c44571c1497bb93a44fcfec99de06ebacbdf8c4944dcecdf949e4f684908d7ce4226cdcec60241e62e75810e SHA512 670a14d852bb74b9074c3fef9310650f71ce1c56314109c49aea02a7a69acc836af60a8beab11da53e21b10a8e6da341fcfa18b68a1dfd33b26978dd63758e9c EBUILD firefox-102.0.1.ebuild 37139 BLAKE2B 1ed14a48c14bbebfc23e6327b8d63e1ca76d28a5a6274d21b18735fd5d914e43e2f46e81b2ac17476818027eeb86e2a5c3806281a516923ac66d9fc47baec95c SHA512 39fd9d8b90a5bb9951856c66dc7681d5d3f5febdcc5d142128258c81b15f9d0f887167a552682fab18e8f3af2a1954c7764e737c1548c2f0e867c59553db65f2 +EBUILD firefox-103.0.ebuild 36855 BLAKE2B 88ec61ec98cb4066beb0094dadd8214067e5cb89c4d8709a167ad9321946ea7e0a1e5ff3bf0b6442a47efa21e4260748b80427761ec541314dc276fa839566fa SHA512 a6d7a07e88b8c4b090fa195aeeb59b64de1e63cf4d986cc61d044c28f4f5f27f82457ef0cc392355c9cc562c127e3b18e3c5cb9a927eba70d21d0b4744af862e EBUILD firefox-91.11.0.ebuild 35732 BLAKE2B 34ac3cd27fa40eb44411c4f0604cc89997dcab84dffbae6548da01f6f98b6f51896916d73072d27c8c958273550290646c3e68df8794199517750b72745c2727 SHA512 8e213ae366600e1fbb130d720177db03bfbd133a35fedfbfbf45d0721f4851534831b43b752404f682e9001def063484791707c1e4a421266fb88a7327b3fd88 +EBUILD firefox-91.12.0.ebuild 35572 BLAKE2B f8c1710695587f7cd8fa6eb3c8cf5da36335702ddb010a47acfd8b52761df4f72c242a794b75162b97db908ef54928275bd5eef955f1d21e2d6f64fd429955ad SHA512 61249bc344270e6a462c04bfbef152e2eed5bdc244a7425a5c790dcf2a88c849978cd40dfe305e1fa44abb491a58d4b31de316f67e9e0e13743b0bb59aacf52a MISC metadata.xml 2275 BLAKE2B 8c145b0b5014acda00fe3839889f7805aa78b65a18eb59135576e861e0882c9966a3f91adb10a7b5afc0ee80548da9f0d7b8a0edd6ab88d9cddbcaef6f9619dd SHA512 187618848f28f201e8a554e938a37b21c5d16619e76ca7cc53c227f9f1f76b9c9c46781b3b0c31bc78bc0e52865e95e56a3741a0e623cccf104eb936b4f22beb diff --git a/www-client/firefox/firefox-103.0.ebuild b/www-client/firefox/firefox-103.0.ebuild new file mode 100644 index 000000000000..61a5b0bb828b --- /dev/null +++ b/www-client/firefox/firefox-103.0.ebuild @@ -0,0 +1,1282 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +FIREFOX_PATCHSET="firefox-103-patches-01j.tar.xz" + +LLVM_MAX_SLOT=14 + +PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +SLOT="rapid" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" wayland wifi" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast +X" + +REQUIRED_USE="debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +# Firefox-only REQUIRED_USE flags +REQUIRED_USE+=" || ( X wayland )" +REQUIRED_USE+=" pgo? ( X )" +REQUIRED_USE+=" screencast? ( wayland )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + virtual/rust + || ( + ( + sys-devel/clang:14 + sys-devel/llvm:14 + clang? ( + =sys-devel/lld-14* + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] ) + ) + ) + ( + sys-devel/clang:13 + sys-devel/llvm:13 + clang? ( + =sys-devel/lld-13* + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 )" + +COMMON_DEPEND=" + dev-libs/atk + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.80 + >=dev-libs/nspr-4.34 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + sys-apps/dbus + ) + jack? ( virtual/jack ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-0.9.3:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-71.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + x11-libs/libdrm + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon[X] + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + )" + +RDEPEND="${COMMON_DEPEND} + !www-client/firefox:0 + !www-client/firefox:esr + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + ) + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${COMMON_DEPEND} + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + X? ( + x11-libs/libICE + x11-libs/libSM + )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \ + && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then + # bug 792705 + eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)." + die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}." + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + AS=llvm-as + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + if use ppc64; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld when using clang + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + if ! use X && use wayland; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not supported the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + elog + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using " + elog "useragent checks. To temporarily fix this, enter about:config and modify " + elog "network.http.useragent.forceVersion preference to \"99\"." + elog "Or install an addon to change your useragent." + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100" + elog +} diff --git a/www-client/firefox/firefox-91.12.0.ebuild b/www-client/firefox/firefox-91.12.0.ebuild new file mode 100644 index 000000000000..a904025dae8b --- /dev/null +++ b/www-client/firefox/firefox-91.12.0.ebuild @@ -0,0 +1,1236 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +FIREFOX_PATCHSET="firefox-91esr-patches-10j.tar.xz" + +LLVM_MAX_SLOT=14 + +PYTHON_COMPAT=( python3_{8..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/~{juippis,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="esr" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp" +IUSE+=" wayland wifi" + +# Firefox-only IUSE +IUSE+=" geckodriver" +IUSE+=" +gmp-autoupdate" +IUSE+=" screencast" + +REQUIRED_USE="debug? ( !system-av1 ) + pgo? ( lto ) + wifi? ( dbus )" + +# Firefox-only REQUIRED_USE flags +REQUIRED_USE+=" screencast? ( wayland )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.0 + >=net-libs/nodejs-10.23.1 + virtual/pkgconfig + >=virtual/rust-1.51.0 + || ( + ( + sys-devel/clang:14 + sys-devel/llvm:14 + clang? ( + =sys-devel/lld-14* + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] ) + sys-devel/clang:14 + ) + ) + ( + sys-devel/clang:13 + sys-devel/llvm:13 + clang? ( + =sys-devel/lld-13* + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.13 ) + x86? ( >=dev-lang/nasm-2.13 )" + +COMMON_DEPEND=" + >=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/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 + x11-libs/libXt + dbus? ( + sys-apps/dbus + dev-libs/dbus-glib + ) + screencast? ( media-video/pipewire:= ) + 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-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wifi? ( + kernel_linux? ( + sys-apps/dbus + dev-libs/dbus-glib + net-misc/networkmanager + ) + ) + jack? ( virtual/jack ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( media-sound/sndio )" + +RDEPEND="${COMMON_DEPEND} + !www-client/firefox:0 + !www-client/firefox:rapid + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + ) + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${COMMON_DEPEND} + x11-libs/libICE + x11-libs/libSM + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) + amd64? ( virtual/opengl ) + x86? ( virtual/opengl )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="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!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \ + && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then + # bug 792705 + eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)." + die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}." + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + if use system-av1 && has_version "<media-libs/dav1d-1.0.0"; then + rm -v "${WORKDIR}"/firefox-patches/0033-bgo-835788-dav1d-1.0.0-support.patch || die + elog "<media-libs/dav1d-1.0.0 detected, removing 1.0.0 compat patch." + elif ! use system-av1; then + rm -v "${WORKDIR}"/firefox-patches/0033-bgo-835788-dav1d-1.0.0-support.patch || die + elog "-system-av1 USE flag detected, removing 1.0.0 compat patch." + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # 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_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang && ! 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-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --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 "${ESYSROOT}/usr" + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + 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 + # ld.gold is known to fail: + # /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld.gold: internal error in set_xindex, at /var/tmp/portage/sys-devel/binutils-2.37_p1-r1/work/binutils-2.37/gold/object.h:1050 + + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif 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 + export PIP_NO_CACHE_DIR=off + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + local -x GDK_BACKEND=x11 + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi +} |